From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22141 invoked by alias); 9 Jun 2004 19:06:59 -0000 Mailing-List: contact rhdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: rhdb-owner@sources.redhat.com Received: (qmail 22023 invoked from network); 9 Jun 2004 19:06:52 -0000 Received: from unknown (HELO web61108.mail.yahoo.com) (216.155.196.110) by sourceware.org with SMTP; 9 Jun 2004 19:06:52 -0000 Message-ID: <20040609190651.65409.qmail@web61108.mail.yahoo.com> Received: from [66.185.84.69] by web61108.mail.yahoo.com via HTTP; Wed, 09 Jun 2004 15:06:51 EDT Date: Wed, 09 Jun 2004 19:06:00 -0000 From: Deepak B Subject: Re: Final set of changes to Administrator 2.0 (Java) for PostgreSQL 7.4 series. To: rhdb@sources.redhat.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1680272154-1086808011=:64186" X-SW-Source: 2004-q2/txt/msg00005.txt.bz2 --0-1680272154-1086808011=:64186 Content-Type: text/plain; charset=us-ascii Content-Id: Content-Disposition: inline Content-length: 431 Sorry, this should be the last one! I just noticed that privileges part for the CREATE TABLE dialog was missed in previous patch due to its isolated nature. It's a minor fix and here it is. Since previous patch is not in the trunk yet, all changes will go in as one commit. Incremental diff attached. Deepak ______________________________________________________________________ Post your free ad now! http://personals.yahoo.ca --0-1680272154-1086808011=:64186 Content-Type: application/octet-stream; name=incr-diff Content-Transfer-Encoding: base64 Content-Description: incr-diff Content-Disposition: attachment; filename=incr-diff Content-length: 47158 ZGlmZiAtY3IgcmhkYi1hZG1pbi9DaGFuZ2VMb2cgcmhkYi1hZG1pbi5pbmNy L0NoYW5nZUxvZwoqKiogcmhkYi1hZG1pbi9DaGFuZ2VMb2cJMjAwNC0wNi0w OSAwMTozNDo0Ny4wMDAwMDAwMDAgLTA0MDAKLS0tIHJoZGItYWRtaW4uaW5j ci9DaGFuZ2VMb2cJMjAwNC0wNi0wOSAxNTowMToxNy4wMDAwMDAwMDAgLTA0 MDAKKioqKioqKioqKioqKioqCioqKiAyLDcgKioqKgotLS0gMiwxOCAtLS0t CiAgCiAgCSogc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9DaGVja0JveFBh bmVsLmphdmE6IEFkZGVkIGludGlhbGl6YXRpb24KICAJY29kZSBmb3IgY2hl Y2tib3gvYm9vbGVhbiBhcnJheXMgdG8gcHJldmVudCBOdWxsUG9pbnRlckV4 Y2VwdGlvbidzLiAgCisgCSogc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9D cmVhdGVUYWJsZURpYWxvZy5mb3JtOiBDaGFuZ2VkIGJ5IHRoZQorIAlJREUu CisgCSogc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9DcmVhdGVUYWJsZURp YWxvZy5qYXZhOiBSZXBsYWNlZAorIAlpbmRpdmlkdWFsIHByaXZpbGVnZSBj aGVja2JveGVzIHdpdGggdGhlIG5ldyBQcml2aWxlZ2VzQ2hlY2tCb3hQYW5l bC4KKyAJKGFkanVzdFByaXZpbGVnZUJveGVzKTogU2NhZmZvbGRpbmcgZnVu Y3Rpb24uIEVuYWJsZWQvZGlzYWJsZXMKKyAJcHJpdmlsZWdlIGNoZWNrYm94 ZXMgYXMgbmVlZGVkLgorIAkoYWRqdXN0V2l0aEdyYW50Qm94ZXMpOiBTY2Fm Zm9sZGluZyBmdW5jdGlvbi4gRW5hYmxlZC9kaXNhYmxlcworIAlXSVRIIEdS QU5UIE9QVElPTiBjaGVja2JveGVzIChpZiB2aXNpYmxlKSBhcyBuZWVkZWQu CisgCShhZGRQcml2aWxlZ2VEZWYpOiBDaGFuZ2UgZnVuY3Rpb24gdG8gd29y ayB3aXRoIHRoZSBuZXcKKyAJUHJpdmlsZWdlc0NoZWNrQm94UGFuZWwgd2lk Z2V0LgorIAkob2tBY3Rpb24pOiBEaXR0by4KICAJKiBzcmMvY29tL3JlZGhh dC9yaGRiL2FkbWluL0VkaXRQcml2aWxlZ2VzRGlhbG9nLmZvcm06IENoYW5n ZWQgYnkgdGhlCiAgCUlERS4KICAJKiBzcmMvY29tL3JlZGhhdC9yaGRiL2Fk bWluL0VkaXRQcml2aWxlZ2VzRGlhbG9nLmphdmE6IEFkZGVkCioqKioqKioq KioqKioqKgoqKiogNjgsNzMgKioqKgotLS0gNzksODYgLS0tLQogIAkoZ2V0 VXBkYXRlRGF0YWJhc2VQcml2U3RyaW5nKTogRGl0dG8uCiAgCShnZXRVcGRh dGVTY2hlbWFQcml2U3RyaW5nKTogRGl0dG8uCiAgCShnZXRVcGRhdGVUYWJs ZVByaXZTdHJpbmcpOiBEaXR0by4KKyAJKiBzcmMvY29tL3JlZGhhdC9yaGRi L2FkbWluL1RhYmxlVXBkYXRlLmphdmEgKGNyZWF0ZVRhYmxlKTogRml4ZWQK KyAJZnVuY3Rpb24gdG8gd29yayB3aXRoIHRoZSBuZXcgV0lUSCBHUkFOVCBP UFRJT04gb3B0aW9uLgogIAkqIHNyYy9jb20vcmVkaGF0L3JoZGIvYWRtaW4v cGdzcWwvQWJzdHJhY3RSaGRiNzNEYXRhYmFzZU1ldGFEYXRhLmphdmEKICAJ KGdldERhdGFiYXNlUHJpdmlsZWdlcyk6IENoYW5nZSBmdW5jdGlvbiB0byBy ZXR1cm4gMiBtb3JlIGZpZWxkcywKICAJR1JBTlRPUiBhbmQgSVNfR1JBTlRB QkxFIChhcyBkZWZpbmVkIGluIEpEQkMgc3BlY3MgZm9yCmRpZmYgLWNyIHJo ZGItYWRtaW4vc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9DcmVhdGVUYWJs ZURpYWxvZy5mb3JtIHJoZGItYWRtaW4uaW5jci9zcmMvY29tL3JlZGhhdC9y aGRiL2FkbWluL0NyZWF0ZVRhYmxlRGlhbG9nLmZvcm0KKioqIHJoZGItYWRt aW4vc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9DcmVhdGVUYWJsZURpYWxv Zy5mb3JtCTIwMDQtMDEtMTMgMTk6NTM6NTAuMDAwMDAwMDAwIC0wNTAwCi0t LSByaGRiLWFkbWluLmluY3Ivc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9D cmVhdGVUYWJsZURpYWxvZy5mb3JtCTIwMDQtMDYtMDkgMTQ6Mjc6NTQuMDAw MDAwMDAwIC0wNDAwCioqKioqKioqKioqKioqKgoqKiogMTIxMywxMjE4ICoq KioKLS0tIDEyMTMsMTIyMSAtLS0tCiAgICAgICAgICAgICAgICAgICAgICAg IDxDb25uZWN0aW9uIGNvZGU9IkFkbWluUmVzb3VyY2VzLmdldFN0cmluZyhB ZG1pblJlc291cmNlcy5QUklWSUxFR0VfUFVCTElDKSIgdHlwZT0iY29kZSIv PgogICAgICAgICAgICAgICAgICAgICAgPC9Qcm9wZXJ0eT4KICAgICAgICAg ICAgICAgICAgICA8L1Byb3BlcnRpZXM+CisgICAgICAgICAgICAgICAgICAg PEV2ZW50cz4KKyAgICAgICAgICAgICAgICAgICAgIDxFdmVudEhhbmRsZXIg ZXZlbnQ9ImFjdGlvblBlcmZvcm1lZCIgbGlzdGVuZXI9ImphdmEuYXd0LmV2 ZW50LkFjdGlvbkxpc3RlbmVyIiBwYXJhbWV0ZXJzPSJqYXZhLmF3dC5ldmVu dC5BY3Rpb25FdmVudCIgaGFuZGxlcj0iamNiUHJpdmlsZWdlc1B1YmxpY0Fj dGlvblBlcmZvcm1lZCIvPgorICAgICAgICAgICAgICAgICAgIDwvRXZlbnRz PgogICAgICAgICAgICAgICAgICAgIDxDb25zdHJhaW50cz4KICAgICAgICAg ICAgICAgICAgICAgIDxDb25zdHJhaW50IGxheW91dENsYXNzPSJvcmcubmV0 YmVhbnMubW9kdWxlcy5mb3JtLmNvbXBhdDIubGF5b3V0cy5EZXNpZ25Hcmlk QmFnTGF5b3V0IiB2YWx1ZT0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5j b21wYXQyLmxheW91dHMuRGVzaWduR3JpZEJhZ0xheW91dCRHcmlkQmFnQ29u c3RyYWludHNEZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAg IDxHcmlkQmFnQ29uc3RyYWludHMgZ3JpZFg9Ii0xIiBncmlkWT0iLTEiIGdy aWRXaWR0aD0iMSIgZ3JpZEhlaWdodD0iMSIgZmlsbD0iMCIgaXBhZFg9IjAi IGlwYWRZPSIwIiBpbnNldHNUb3A9IjMiIGluc2V0c0xlZnQ9IjAiIGluc2V0 c0JvdHRvbT0iMyIgaW5zZXRzUmlnaHQ9IjAiIGFuY2hvcj0iMTciIHdlaWdo dFg9IjAuMCIgd2VpZ2h0WT0iMC4wIi8+CioqKioqKioqKioqKioqKgoqKiog MTIzMywxMjM4ICoqKioKLS0tIDEyMzYsMTI0NCAtLS0tCiAgICAgICAgICAg ICAgICAgICAgICAgICAgPFByb3BlcnR5IG5hbWU9InZhbHVlSXNBZGp1c3Rp bmciIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CiAgICAgICAgICAg ICAgICAgICAgICAgICAgPFByb3BlcnR5IG5hbWU9ImF1dG9zY3JvbGxzIiB0 eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KICAgICAgICAgICAgICAg ICAgICAgICAgPC9Qcm9wZXJ0aWVzPgorICAgICAgICAgICAgICAgICAgICAg ICA8RXZlbnRzPgorICAgICAgICAgICAgICAgICAgICAgICAgIDxFdmVudEhh bmRsZXIgZXZlbnQ9InZhbHVlQ2hhbmdlZCIgbGlzdGVuZXI9ImphdmF4LnN3 aW5nLmV2ZW50Lkxpc3RTZWxlY3Rpb25MaXN0ZW5lciIgcGFyYW1ldGVycz0i amF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkV2ZW50IiBoYW5kbGVy PSJqbHN0UHJpdmlsZWdlc1VzZXJzVmFsdWVDaGFuZ2VkIi8+CisgICAgICAg ICAgICAgICAgICAgICAgIDwvRXZlbnRzPgogICAgICAgICAgICAgICAgICAg ICAgPC9Db21wb25lbnQ+CiAgICAgICAgICAgICAgICAgICAgPC9TdWJDb21w b25lbnRzPgogICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj4KKioqKioq KioqKioqKioqCioqKiAxMjUwLDEyNTUgKioqKgotLS0gMTI1NiwxMjY0IC0t LS0KICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvcGVydHkgbmFtZT0i dmFsdWVJc0FkanVzdGluZyIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUi Lz4KICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvcGVydHkgbmFtZT0i YXV0b3Njcm9sbHMiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgog ICAgICAgICAgICAgICAgICAgICAgICA8L1Byb3BlcnRpZXM+CisgICAgICAg ICAgICAgICAgICAgICAgIDxFdmVudHM+CisgICAgICAgICAgICAgICAgICAg ICAgICAgPEV2ZW50SGFuZGxlciBldmVudD0idmFsdWVDaGFuZ2VkIiBsaXN0 ZW5lcj0iamF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkxpc3RlbmVy IiBwYXJhbWV0ZXJzPSJqYXZheC5zd2luZy5ldmVudC5MaXN0U2VsZWN0aW9u RXZlbnQiIGhhbmRsZXI9Impsc3RQcml2aWxlZ2VzR3JvdXBzVmFsdWVDaGFu Z2VkIi8+CisgICAgICAgICAgICAgICAgICAgICAgIDwvRXZlbnRzPgogICAg ICAgICAgICAgICAgICAgICAgPC9Db21wb25lbnQ+CiAgICAgICAgICAgICAg ICAgICAgPC9TdWJDb21wb25lbnRzPgogICAgICAgICAgICAgICAgICA8L0Nv bnRhaW5lcj4KKioqKioqKioqKioqKioqCioqKiAxMjYyLDEzNTEgKioqKgog IAogICAgICAgICAgICAgICAgICAgIDxMYXlvdXQgY2xhc3M9Im9yZy5uZXRi ZWFucy5tb2R1bGVzLmZvcm0uY29tcGF0Mi5sYXlvdXRzLkRlc2lnbkdyaWRC YWdMYXlvdXQiLz4KICAgICAgICAgICAgICAgICAgICA8U3ViQ29tcG9uZW50 cz4KISAgICAgICAgICAgICAgICAgICAgIDxDb21wb25lbnQgY2xhc3M9Imph dmF4LnN3aW5nLkpDaGVja0JveCIgbmFtZT0iamNiUHJpdmlsZWdlc1NlbGVj dCI+CiEgICAgICAgICAgICAgICAgICAgICAgIDxQcm9wZXJ0aWVzPgohICAg ICAgICAgICAgICAgICAgICAgICAgIDxQcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB0 eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiBlZGl0b3I9Im9yZy5uZXRiZWFucy5t b2R1bGVzLmZvcm0uUkFEQ29ubmVjdGlvblByb3BlcnR5RWRpdG9yIj4KISAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxDb25uZWN0aW9uIGNvZGU9IkFk bWluUmVzb3VyY2VzLmdldFN0cmluZyhBZG1pblJlc291cmNlcy5QUklWSUxF R0VfU0VMRUNUKSIgdHlwZT0iY29kZSIvPgohICAgICAgICAgICAgICAgICAg ICAgICAgIDwvUHJvcGVydHk+CiEgICAgICAgICAgICAgICAgICAgICAgIDwv UHJvcGVydGllcz4KISAgICAgICAgICAgICAgICAgICAgICAgPENvbnN0cmFp bnRzPgohICAgICAgICAgICAgICAgICAgICAgICAgIDxDb25zdHJhaW50IGxh eW91dENsYXNzPSJvcmcubmV0YmVhbnMubW9kdWxlcy5mb3JtLmNvbXBhdDIu bGF5b3V0cy5EZXNpZ25HcmlkQmFnTGF5b3V0IiB2YWx1ZT0ib3JnLm5ldGJl YW5zLm1vZHVsZXMuZm9ybS5jb21wYXQyLmxheW91dHMuRGVzaWduR3JpZEJh Z0xheW91dCRHcmlkQmFnQ29uc3RyYWludHNEZXNjcmlwdGlvbiI+CiEgICAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEJhZ0NvbnN0cmFpbnRzIGdy aWRYPSIwIiBncmlkWT0iMCIgZ3JpZFdpZHRoPSIxIiBncmlkSGVpZ2h0PSIx IiBmaWxsPSIxIiBpcGFkWD0iMCIgaXBhZFk9IjAiIGluc2V0c1RvcD0iMCIg aW5zZXRzTGVmdD0iMjAiIGluc2V0c0JvdHRvbT0iMCIgaW5zZXRzUmlnaHQ9 IjEwIiBhbmNob3I9IjE3IiB3ZWlnaHRYPSIwLjAiIHdlaWdodFk9IjAuMCIv PgohICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29uc3RyYWludD4KISAg ICAgICAgICAgICAgICAgICAgICAgPC9Db25zdHJhaW50cz4KISAgICAgICAg ICAgICAgICAgICAgIDwvQ29tcG9uZW50PgohICAgICAgICAgICAgICAgICAg ICAgPENvbXBvbmVudCBjbGFzcz0iamF2YXguc3dpbmcuSkNoZWNrQm94IiBu YW1lPSJqY2JQcml2aWxlZ2VzSW5zZXJ0Ij4KISAgICAgICAgICAgICAgICAg ICAgICAgPFByb3BlcnRpZXM+CiEgICAgICAgICAgICAgICAgICAgICAgICAg PFByb3BlcnR5IG5hbWU9InRleHQiIHR5cGU9ImphdmEubGFuZy5TdHJpbmci IGVkaXRvcj0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5SQURDb25uZWN0 aW9uUHJvcGVydHlFZGl0b3IiPgohICAgICAgICAgICAgICAgICAgICAgICAg ICAgPENvbm5lY3Rpb24gY29kZT0iQWRtaW5SZXNvdXJjZXMuZ2V0U3RyaW5n KEFkbWluUmVzb3VyY2VzLlBSSVZJTEVHRV9JTlNFUlQpIiB0eXBlPSJjb2Rl Ii8+CiEgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9wZXJ0eT4KISAg ICAgICAgICAgICAgICAgICAgICAgPC9Qcm9wZXJ0aWVzPgogICAgICAgICAg ICAgICAgICAgICAgICA8Q29uc3RyYWludHM+CiAgICAgICAgICAgICAgICAg ICAgICAgICAgPENvbnN0cmFpbnQgbGF5b3V0Q2xhc3M9Im9yZy5uZXRiZWFu cy5tb2R1bGVzLmZvcm0uY29tcGF0Mi5sYXlvdXRzLkRlc2lnbkdyaWRCYWdM YXlvdXQiIHZhbHVlPSJvcmcubmV0YmVhbnMubW9kdWxlcy5mb3JtLmNvbXBh dDIubGF5b3V0cy5EZXNpZ25HcmlkQmFnTGF5b3V0JEdyaWRCYWdDb25zdHJh aW50c0Rlc2NyaXB0aW9uIj4KISAgICAgICAgICAgICAgICAgICAgICAgICAg IDxHcmlkQmFnQ29uc3RyYWludHMgZ3JpZFg9IjAiIGdyaWRZPSIxIiBncmlk V2lkdGg9IjEiIGdyaWRIZWlnaHQ9IjEiIGZpbGw9IjEiIGlwYWRYPSIwIiBp cGFkWT0iMCIgaW5zZXRzVG9wPSIxIiBpbnNldHNMZWZ0PSIyMCIgaW5zZXRz Qm90dG9tPSIwIiBpbnNldHNSaWdodD0iMTAiIGFuY2hvcj0iMTciIHdlaWdo dFg9IjAuMCIgd2VpZ2h0WT0iMC4wIi8+CiAgICAgICAgICAgICAgICAgICAg ICAgICAgPC9Db25zdHJhaW50PgogICAgICAgICAgICAgICAgICAgICAgICA8 L0NvbnN0cmFpbnRzPgohICAgICAgICAgICAgICAgICAgICAgPC9Db21wb25l bnQ+CiEgICAgICAgICAgICAgICAgICAgICA8Q29tcG9uZW50IGNsYXNzPSJq YXZheC5zd2luZy5KQ2hlY2tCb3giIG5hbWU9ImpjYlByaXZpbGVnZXNVcGRh dGUiPgohICAgICAgICAgICAgICAgICAgICAgICA8UHJvcGVydGllcz4KISAg ICAgICAgICAgICAgICAgICAgICAgICA8UHJvcGVydHkgbmFtZT0idGV4dCIg dHlwZT0iamF2YS5sYW5nLlN0cmluZyIgZWRpdG9yPSJvcmcubmV0YmVhbnMu bW9kdWxlcy5mb3JtLlJBRENvbm5lY3Rpb25Qcm9wZXJ0eUVkaXRvciI+CiEg ICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29ubmVjdGlvbiBjb2RlPSJB ZG1pblJlc291cmNlcy5nZXRTdHJpbmcoQWRtaW5SZXNvdXJjZXMuUFJJVklM RUdFX1VQREFURSkiIHR5cGU9ImNvZGUiLz4KISAgICAgICAgICAgICAgICAg ICAgICAgICA8L1Byb3BlcnR5PgohICAgICAgICAgICAgICAgICAgICAgICA8 L1Byb3BlcnRpZXM+CiEgICAgICAgICAgICAgICAgICAgICAgIDxDb25zdHJh aW50cz4KISAgICAgICAgICAgICAgICAgICAgICAgICA8Q29uc3RyYWludCBs YXlvdXRDbGFzcz0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5jb21wYXQy LmxheW91dHMuRGVzaWduR3JpZEJhZ0xheW91dCIgdmFsdWU9Im9yZy5uZXRi ZWFucy5tb2R1bGVzLmZvcm0uY29tcGF0Mi5sYXlvdXRzLkRlc2lnbkdyaWRC YWdMYXlvdXQkR3JpZEJhZ0NvbnN0cmFpbnRzRGVzY3JpcHRpb24iPgohICAg ICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRCYWdDb25zdHJhaW50cyBn cmlkWD0iMCIgZ3JpZFk9IjIiIGdyaWRXaWR0aD0iMSIgZ3JpZEhlaWdodD0i MSIgZmlsbD0iMSIgaXBhZFg9IjAiIGlwYWRZPSIwIiBpbnNldHNUb3A9IjEi IGluc2V0c0xlZnQ9IjIwIiBpbnNldHNCb3R0b209IjAiIGluc2V0c1JpZ2h0 PSIxMCIgYW5jaG9yPSIxNyIgd2VpZ2h0WD0iMC4wIiB3ZWlnaHRZPSIwLjAi Lz4KISAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnN0cmFpbnQ+CiEg ICAgICAgICAgICAgICAgICAgICAgIDwvQ29uc3RyYWludHM+CiEgICAgICAg ICAgICAgICAgICAgICA8L0NvbXBvbmVudD4KISAgICAgICAgICAgICAgICAg ICAgIDxDb21wb25lbnQgY2xhc3M9ImphdmF4LnN3aW5nLkpDaGVja0JveCIg bmFtZT0iamNiUHJpdmlsZWdlc0RlbGV0ZSI+CiEgICAgICAgICAgICAgICAg ICAgICAgIDxQcm9wZXJ0aWVzPgohICAgICAgICAgICAgICAgICAgICAgICAg IDxQcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5n IiBlZGl0b3I9Im9yZy5uZXRiZWFucy5tb2R1bGVzLmZvcm0uUkFEQ29ubmVj dGlvblByb3BlcnR5RWRpdG9yIj4KISAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxDb25uZWN0aW9uIGNvZGU9IkFkbWluUmVzb3VyY2VzLmdldFN0cmlu ZyhBZG1pblJlc291cmNlcy5QUklWSUxFR0VfREVMRVRFKSIgdHlwZT0iY29k ZSIvPgohICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvcGVydHk+CiEg ICAgICAgICAgICAgICAgICAgICAgIDwvUHJvcGVydGllcz4KISAgICAgICAg ICAgICAgICAgICAgICAgPENvbnN0cmFpbnRzPgohICAgICAgICAgICAgICAg ICAgICAgICAgIDxDb25zdHJhaW50IGxheW91dENsYXNzPSJvcmcubmV0YmVh bnMubW9kdWxlcy5mb3JtLmNvbXBhdDIubGF5b3V0cy5EZXNpZ25HcmlkQmFn TGF5b3V0IiB2YWx1ZT0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5jb21w YXQyLmxheW91dHMuRGVzaWduR3JpZEJhZ0xheW91dCRHcmlkQmFnQ29uc3Ry YWludHNEZXNjcmlwdGlvbiI+CiEgICAgICAgICAgICAgICAgICAgICAgICAg ICA8R3JpZEJhZ0NvbnN0cmFpbnRzIGdyaWRYPSIwIiBncmlkWT0iMyIgZ3Jp ZFdpZHRoPSIxIiBncmlkSGVpZ2h0PSIxIiBmaWxsPSIxIiBpcGFkWD0iMCIg aXBhZFk9IjAiIGluc2V0c1RvcD0iMSIgaW5zZXRzTGVmdD0iMjAiIGluc2V0 c0JvdHRvbT0iMCIgaW5zZXRzUmlnaHQ9IjEwIiBhbmNob3I9IjE3IiB3ZWln aHRYPSIwLjAiIHdlaWdodFk9IjAuMCIvPgohICAgICAgICAgICAgICAgICAg ICAgICAgIDwvQ29uc3RyYWludD4KISAgICAgICAgICAgICAgICAgICAgICAg PC9Db25zdHJhaW50cz4KISAgICAgICAgICAgICAgICAgICAgIDwvQ29tcG9u ZW50PgohICAgICAgICAgICAgICAgICAgICAgPENvbXBvbmVudCBjbGFzcz0i amF2YXguc3dpbmcuSkNoZWNrQm94IiBuYW1lPSJqY2JQcml2aWxlZ2VzUnVs ZSI+CiEgICAgICAgICAgICAgICAgICAgICAgIDxQcm9wZXJ0aWVzPgohICAg ICAgICAgICAgICAgICAgICAgICAgIDxQcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB0 eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiBlZGl0b3I9Im9yZy5uZXRiZWFucy5t b2R1bGVzLmZvcm0uUkFEQ29ubmVjdGlvblByb3BlcnR5RWRpdG9yIj4KISAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxDb25uZWN0aW9uIGNvZGU9IkFk bWluUmVzb3VyY2VzLmdldFN0cmluZyhBZG1pblJlc291cmNlcy5QUklWSUxF R0VfUlVMRSkiIHR5cGU9ImNvZGUiLz4KISAgICAgICAgICAgICAgICAgICAg ICAgICA8L1Byb3BlcnR5PgohICAgICAgICAgICAgICAgICAgICAgICA8L1By b3BlcnRpZXM+CiEgICAgICAgICAgICAgICAgICAgICAgIDxDb25zdHJhaW50 cz4KISAgICAgICAgICAgICAgICAgICAgICAgICA8Q29uc3RyYWludCBsYXlv dXRDbGFzcz0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5jb21wYXQyLmxh eW91dHMuRGVzaWduR3JpZEJhZ0xheW91dCIgdmFsdWU9Im9yZy5uZXRiZWFu cy5tb2R1bGVzLmZvcm0uY29tcGF0Mi5sYXlvdXRzLkRlc2lnbkdyaWRCYWdM YXlvdXQkR3JpZEJhZ0NvbnN0cmFpbnRzRGVzY3JpcHRpb24iPgohICAgICAg ICAgICAgICAgICAgICAgICAgICAgPEdyaWRCYWdDb25zdHJhaW50cyBncmlk WD0iMCIgZ3JpZFk9IjQiIGdyaWRXaWR0aD0iMSIgZ3JpZEhlaWdodD0iMSIg ZmlsbD0iMSIgaXBhZFg9IjAiIGlwYWRZPSIwIiBpbnNldHNUb3A9IjEiIGlu c2V0c0xlZnQ9IjIwIiBpbnNldHNCb3R0b209IjAiIGluc2V0c1JpZ2h0PSIx MCIgYW5jaG9yPSIxNyIgd2VpZ2h0WD0iMC4wIiB3ZWlnaHRZPSIwLjAiLz4K ISAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnN0cmFpbnQ+CiEgICAg ICAgICAgICAgICAgICAgICAgIDwvQ29uc3RyYWludHM+CiEgICAgICAgICAg ICAgICAgICAgICA8L0NvbXBvbmVudD4KISAgICAgICAgICAgICAgICAgICAg IDxDb21wb25lbnQgY2xhc3M9ImphdmF4LnN3aW5nLkpDaGVja0JveCIgbmFt ZT0iamNiUHJpdmlsZWdlc1JlZmVyZW5jZXMiPgohICAgICAgICAgICAgICAg ICAgICAgICA8UHJvcGVydGllcz4KISAgICAgICAgICAgICAgICAgICAgICAg ICA8UHJvcGVydHkgbmFtZT0idGV4dCIgdHlwZT0iamF2YS5sYW5nLlN0cmlu ZyIgZWRpdG9yPSJvcmcubmV0YmVhbnMubW9kdWxlcy5mb3JtLlJBRENvbm5l Y3Rpb25Qcm9wZXJ0eUVkaXRvciI+CiEgICAgICAgICAgICAgICAgICAgICAg ICAgICA8Q29ubmVjdGlvbiBjb2RlPSJBZG1pblJlc291cmNlcy5nZXRTdHJp bmcoQWRtaW5SZXNvdXJjZXMuUFJJVklMRUdFX1JFRkVSRU5DRVMpIiB0eXBl PSJjb2RlIi8+CiEgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9wZXJ0 eT4KISAgICAgICAgICAgICAgICAgICAgICAgPC9Qcm9wZXJ0aWVzPgohICAg ICAgICAgICAgICAgICAgICAgICA8Q29uc3RyYWludHM+CiEgICAgICAgICAg ICAgICAgICAgICAgICAgPENvbnN0cmFpbnQgbGF5b3V0Q2xhc3M9Im9yZy5u ZXRiZWFucy5tb2R1bGVzLmZvcm0uY29tcGF0Mi5sYXlvdXRzLkRlc2lnbkdy aWRCYWdMYXlvdXQiIHZhbHVlPSJvcmcubmV0YmVhbnMubW9kdWxlcy5mb3Jt LmNvbXBhdDIubGF5b3V0cy5EZXNpZ25HcmlkQmFnTGF5b3V0JEdyaWRCYWdD b25zdHJhaW50c0Rlc2NyaXB0aW9uIj4KISAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxHcmlkQmFnQ29uc3RyYWludHMgZ3JpZFg9IjAiIGdyaWRZPSI1 IiBncmlkV2lkdGg9IjEiIGdyaWRIZWlnaHQ9IjEiIGZpbGw9IjIiIGlwYWRY PSIwIiBpcGFkWT0iMCIgaW5zZXRzVG9wPSIxIiBpbnNldHNMZWZ0PSIyMCIg aW5zZXRzQm90dG9tPSIwIiBpbnNldHNSaWdodD0iMTAiIGFuY2hvcj0iMTci IHdlaWdodFg9IjAuMCIgd2VpZ2h0WT0iMC4wIi8+CiEgICAgICAgICAgICAg ICAgICAgICAgICAgPC9Db25zdHJhaW50PgohICAgICAgICAgICAgICAgICAg ICAgICA8L0NvbnN0cmFpbnRzPgohICAgICAgICAgICAgICAgICAgICAgPC9D b21wb25lbnQ+CiEgICAgICAgICAgICAgICAgICAgICA8Q29tcG9uZW50IGNs YXNzPSJqYXZheC5zd2luZy5KQ2hlY2tCb3giIG5hbWU9ImpjYlByaXZpbGVn ZXNUcmlnZ2VyIj4KISAgICAgICAgICAgICAgICAgICAgICAgPFByb3BlcnRp ZXM+CiEgICAgICAgICAgICAgICAgICAgICAgICAgPFByb3BlcnR5IG5hbWU9 InRleHQiIHR5cGU9ImphdmEubGFuZy5TdHJpbmciIGVkaXRvcj0ib3JnLm5l dGJlYW5zLm1vZHVsZXMuZm9ybS5SQURDb25uZWN0aW9uUHJvcGVydHlFZGl0 b3IiPgohICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbm5lY3Rpb24g Y29kZT0iQWRtaW5SZXNvdXJjZXMuZ2V0U3RyaW5nKEFkbWluUmVzb3VyY2Vz LlBSSVZJTEVHRV9UUklHR0VSKSIgdHlwZT0iY29kZSIvPgohICAgICAgICAg ICAgICAgICAgICAgICAgIDwvUHJvcGVydHk+CiEgICAgICAgICAgICAgICAg ICAgICAgIDwvUHJvcGVydGllcz4KISAgICAgICAgICAgICAgICAgICAgICAg PENvbnN0cmFpbnRzPgohICAgICAgICAgICAgICAgICAgICAgICAgIDxDb25z dHJhaW50IGxheW91dENsYXNzPSJvcmcubmV0YmVhbnMubW9kdWxlcy5mb3Jt LmNvbXBhdDIubGF5b3V0cy5EZXNpZ25HcmlkQmFnTGF5b3V0IiB2YWx1ZT0i b3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5jb21wYXQyLmxheW91dHMuRGVz aWduR3JpZEJhZ0xheW91dCRHcmlkQmFnQ29uc3RyYWludHNEZXNjcmlwdGlv biI+CiEgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEJhZ0NvbnN0 cmFpbnRzIGdyaWRYPSIwIiBncmlkWT0iNiIgZ3JpZFdpZHRoPSIxIiBncmlk SGVpZ2h0PSIxIiBmaWxsPSIyIiBpcGFkWD0iMCIgaXBhZFk9IjAiIGluc2V0 c1RvcD0iMSIgaW5zZXRzTGVmdD0iMjAiIGluc2V0c0JvdHRvbT0iMCIgaW5z ZXRzUmlnaHQ9IjEwIiBhbmNob3I9IjE4IiB3ZWlnaHRYPSIwLjAiIHdlaWdo dFk9IjAuMCIvPgohICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29uc3Ry YWludD4KISAgICAgICAgICAgICAgICAgICAgICAgPC9Db25zdHJhaW50cz4K ISAgICAgICAgICAgICAgICAgICAgIDwvQ29tcG9uZW50PgogICAgICAgICAg ICAgICAgICAgIDwvU3ViQ29tcG9uZW50cz4KICAgICAgICAgICAgICAgICAg PC9Db250YWluZXI+CiAgICAgICAgICAgICAgICAgIDxDb21wb25lbnQgY2xh c3M9ImphdmF4LnN3aW5nLkpMYWJlbCIgbmFtZT0iamxQcml2aWxlZ2VzVXNl cnMiPgotLS0gMTI3MSwxMjg4IC0tLS0KICAKICAgICAgICAgICAgICAgICAg ICA8TGF5b3V0IGNsYXNzPSJvcmcubmV0YmVhbnMubW9kdWxlcy5mb3JtLmNv bXBhdDIubGF5b3V0cy5EZXNpZ25HcmlkQmFnTGF5b3V0Ii8+CiAgICAgICAg ICAgICAgICAgICAgPFN1YkNvbXBvbmVudHM+CiEgICAgICAgICAgICAgICAg ICAgICA8Q29udGFpbmVyIGNsYXNzPSJjb20ucmVkaGF0LnJoZGIuYWRtaW4u UHJpdmlsZWdlc0NoZWNrQm94UGFuZWwiIG5hbWU9InBjYnBQcml2Ij4KISAg ICAgICAgICAgICAgICAgICAgICAgPEF1eFZhbHVlcz4KISAgICAgICAgICAg ICAgICAgICAgICAgICA8QXV4VmFsdWUgbmFtZT0iSmF2YUNvZGVHZW5lcmF0 b3JfQ3JlYXRlQ29kZUN1c3RvbSIgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIg dmFsdWU9Im5ldyBQcml2aWxlZ2VzQ2hlY2tCb3hQYW5lbCh2YWxpZFByaXZp bGVnZXMsICZxdW90OyZxdW90OywgZ3JhbnRPcHRpb25TdHJpbmcpOyIvPgoh ICAgICAgICAgICAgICAgICAgICAgICA8L0F1eFZhbHVlcz4KICAgICAgICAg ICAgICAgICAgICAgICAgPENvbnN0cmFpbnRzPgogICAgICAgICAgICAgICAg ICAgICAgICAgIDxDb25zdHJhaW50IGxheW91dENsYXNzPSJvcmcubmV0YmVh bnMubW9kdWxlcy5mb3JtLmNvbXBhdDIubGF5b3V0cy5EZXNpZ25HcmlkQmFn TGF5b3V0IiB2YWx1ZT0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5jb21w YXQyLmxheW91dHMuRGVzaWduR3JpZEJhZ0xheW91dCRHcmlkQmFnQ29uc3Ry YWludHNEZXNjcmlwdGlvbiI+CiEgICAgICAgICAgICAgICAgICAgICAgICAg ICA8R3JpZEJhZ0NvbnN0cmFpbnRzIGdyaWRYPSItMSIgZ3JpZFk9Ii0xIiBn cmlkV2lkdGg9IjEiIGdyaWRIZWlnaHQ9IjAiIGZpbGw9IjEiIGlwYWRYPSIw IiBpcGFkWT0iMCIgaW5zZXRzVG9wPSI1IiBpbnNldHNMZWZ0PSI1IiBpbnNl dHNCb3R0b209IjUiIGluc2V0c1JpZ2h0PSI1IiBhbmNob3I9IjEwIiB3ZWln aHRYPSIwLjAiIHdlaWdodFk9IjAuMCIvPgogICAgICAgICAgICAgICAgICAg ICAgICAgIDwvQ29uc3RyYWludD4KICAgICAgICAgICAgICAgICAgICAgICAg PC9Db25zdHJhaW50cz4KISAKISAgICAgICAgICAgICAgICAgICAgICAgPExh eW91dCBjbGFzcz0ib3JnLm5ldGJlYW5zLm1vZHVsZXMuZm9ybS5jb21wYXQy LmxheW91dHMuRGVzaWduRmxvd0xheW91dCIvPgohICAgICAgICAgICAgICAg ICAgICAgPC9Db250YWluZXI+CiAgICAgICAgICAgICAgICAgICAgPC9TdWJD b21wb25lbnRzPgogICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj4KICAg ICAgICAgICAgICAgICAgPENvbXBvbmVudCBjbGFzcz0iamF2YXguc3dpbmcu SkxhYmVsIiBuYW1lPSJqbFByaXZpbGVnZXNVc2VycyI+CmRpZmYgLWNyIHJo ZGItYWRtaW4vc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9DcmVhdGVUYWJs ZURpYWxvZy5qYXZhIHJoZGItYWRtaW4uaW5jci9zcmMvY29tL3JlZGhhdC9y aGRiL2FkbWluL0NyZWF0ZVRhYmxlRGlhbG9nLmphdmEKKioqIHJoZGItYWRt aW4vc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9DcmVhdGVUYWJsZURpYWxv Zy5qYXZhCTIwMDMtMTEtMjEgMTM6MzA6MjIuMDAwMDAwMDAwIC0wNTAwCi0t LSByaGRiLWFkbWluLmluY3Ivc3JjL2NvbS9yZWRoYXQvcmhkYi9hZG1pbi9D cmVhdGVUYWJsZURpYWxvZy5qYXZhCTIwMDQtMDYtMDkgMTQ6Mjc6NTQuMDAw MDAwMDAwIC0wNDAwCioqKioqKioqKioqKioqKgoqKiogNDMsNDggKioqKgot LS0gNDMsNjEgLS0tLQogIAkJb2tBY3Rpb24gPSBhZi5nZXRBY3Rpb24oQWN0 aW9uRmFjdG9yeS5BQ1RJT05fT0spOwogIAkJY2FuY2VsQWN0aW9uID0gYWYu Z2V0QWN0aW9uKEFjdGlvbkZhY3RvcnkuQUNUSU9OX0NBTkNFTCk7CiAgCisg CQlBZG1pbkRhdGFiYXNlTWV0YURhdGEgZGJtZDsKKyAKKyAJCXRyeSB7Cisg CQkJZGJtZCA9IGJhY2tlbmRDbGllbnQuZ2V0QWRtaW5EYXRhYmFzZU1ldGFE YXRhKG5vZGUuZ2V0UGFyZW50Q2x1c3Rlck5hbWUoKSwgbm9kZS5nZXRQYXJl bnREYXRhYmFzZU5hbWUoKSk7CisgCQkJdmFsaWRQcml2aWxlZ2VzID0gZGJt ZC5nZXRWYWxpZFRhYmxlUHJpdmlsZWdlcygpOworIAkJCWdyYW50T3B0aW9u U3RyaW5nID0gZGJtZC5nZXRHcmFudE9wdGlvblN0cmluZygpOworIAkJfSBj YXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAJCQkKKyAJCQljbG9zZURpYWxvZygp OworIAkJCWUucHJpbnRTdGFja1RyYWNlKCk7CisgCQkJdGhyb3cgbmV3IERp YWxvZ1JhaXNlRXhjZXB0aW9uKGludm9jYXRpb25Ob2RlLCBlKTsKKyAJCX0K KyAKICAJCWluaXRDb21wb25lbnRzKCk7CiAgCQkKICAJCS8vIEFkZCB0aGUg bGlzdGJveCB3aXRoIDMgYnV0dG9ucy4uLgoqKioqKioqKioqKioqKioKKioq IDcwLDc2ICoqKioKICAJCQogIAkJLy8gUG9wdWxhdGUgdGhlIGZpZWxkcyBp biB0aGUgZGlhbG9nCiAgCQkKLSAJCUFkbWluRGF0YWJhc2VNZXRhRGF0YSBk Ym1kOwogIAkJU2NoZW1hUXVhbGlmaWVkU2VsZWN0aW9uQm94TW9kZWwgdGFi TW9kZWwgPSBuZXcgRGVmYXVsdFNjaGVtYVF1YWxpZmllZFNlbGVjdGlvbkJv eE1vZGVsKCk7CiAgCQlTY2hlbWFRdWFsaWZpZWRTZWxlY3Rpb25Cb3hNb2Rl bCB0eXBNb2RlbCA9IG5ldyBEZWZhdWx0U2NoZW1hUXVhbGlmaWVkU2VsZWN0 aW9uQm94TW9kZWwoKTsKICAJCQotLS0gODMsODggLS0tLQoqKioqKioqKioq KioqKioKKioqIDM2OCwzODAgKioqKgogICAgICAgICAganNwUHJpdmlsZWdl c0dyb3VwcyA9IG5ldyBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZSgpOwogICAg ICAgICAgamxzdFByaXZpbGVnZXNHcm91cHMgPSBuZXcgamF2YXguc3dpbmcu Skxpc3QoKTsKICAgICAgICAgIGpwUHJpdmlsZWdlc1ByaXZpbGVnZVR5cGVz ID0gbmV3IGphdmF4LnN3aW5nLkpQYW5lbCgpOwohICAgICAgICAgamNiUHJp dmlsZWdlc1NlbGVjdCA9IG5ldyBqYXZheC5zd2luZy5KQ2hlY2tCb3goKTsK ISAgICAgICAgIGpjYlByaXZpbGVnZXNJbnNlcnQgPSBuZXcgamF2YXguc3dp bmcuSkNoZWNrQm94KCk7CiEgICAgICAgICBqY2JQcml2aWxlZ2VzVXBkYXRl ID0gbmV3IGphdmF4LnN3aW5nLkpDaGVja0JveCgpOwohICAgICAgICAgamNi UHJpdmlsZWdlc0RlbGV0ZSA9IG5ldyBqYXZheC5zd2luZy5KQ2hlY2tCb3go KTsKISAgICAgICAgIGpjYlByaXZpbGVnZXNSdWxlID0gbmV3IGphdmF4LnN3 aW5nLkpDaGVja0JveCgpOwohICAgICAgICAgamNiUHJpdmlsZWdlc1JlZmVy ZW5jZXMgPSBuZXcgamF2YXguc3dpbmcuSkNoZWNrQm94KCk7CiEgICAgICAg ICBqY2JQcml2aWxlZ2VzVHJpZ2dlciA9IG5ldyBqYXZheC5zd2luZy5KQ2hl Y2tCb3goKTsKICAgICAgICAgIGpsUHJpdmlsZWdlc1VzZXJzID0gbmV3IGph dmF4LnN3aW5nLkpMYWJlbCgpOwogICAgICAgICAgamxQcml2aWxlZ2VzR3Jv dXBzID0gbmV3IGphdmF4LnN3aW5nLkpMYWJlbCgpOwogICAgICAgICAgamJQ cml2aWxlZ2VzQWRkUHJpdmlsZWdlcyA9IG5ldyBqYXZheC5zd2luZy5KQnV0 dG9uKCk7Ci0tLSAzODAsMzg2IC0tLS0KICAgICAgICAgIGpzcFByaXZpbGVn ZXNHcm91cHMgPSBuZXcgamF2YXguc3dpbmcuSlNjcm9sbFBhbmUoKTsKICAg ICAgICAgIGpsc3RQcml2aWxlZ2VzR3JvdXBzID0gbmV3IGphdmF4LnN3aW5n LkpMaXN0KCk7CiAgICAgICAgICBqcFByaXZpbGVnZXNQcml2aWxlZ2VUeXBl cyA9IG5ldyBqYXZheC5zd2luZy5KUGFuZWwoKTsKISAgICAgICAgIHBjYnBQ cml2ID0gbmV3IFByaXZpbGVnZXNDaGVja0JveFBhbmVsKHZhbGlkUHJpdmls ZWdlcywgIiIsIGdyYW50T3B0aW9uU3RyaW5nKTsKICAgICAgICAgIGpsUHJp dmlsZWdlc1VzZXJzID0gbmV3IGphdmF4LnN3aW5nLkpMYWJlbCgpOwogICAg ICAgICAgamxQcml2aWxlZ2VzR3JvdXBzID0gbmV3IGphdmF4LnN3aW5nLkpM YWJlbCgpOwogICAgICAgICAgamJQcml2aWxlZ2VzQWRkUHJpdmlsZWdlcyA9 IG5ldyBqYXZheC5zd2luZy5KQnV0dG9uKCk7CioqKioqKioqKioqKioqKgoq KiogMTMwNiwxMzExICoqKioKLS0tIDEzMTIsMTMyMyAtLS0tCiAgCiAgICAg ICAgICBqcFByaXZpbGVnZXNQcml2VG9HcmFudC5zZXRCb3JkZXIobmV3IGph dmF4LnN3aW5nLmJvcmRlci5UaXRsZWRCb3JkZXIoQWRtaW5SZXNvdXJjZXMu Z2V0U3RyaW5nKEFkbWluUmVzb3VyY2VzLkRMR19DUkVBVEVfVEFCTEVfUFJJ VklMRUdFU19QUklWX1RPX0dSQU5UKSkpOwogICAgICAgICAgamNiUHJpdmls ZWdlc1B1YmxpYy5zZXRUZXh0KEFkbWluUmVzb3VyY2VzLmdldFN0cmluZyhB ZG1pblJlc291cmNlcy5QUklWSUxFR0VfUFVCTElDKSk7CisgICAgICAgICBq Y2JQcml2aWxlZ2VzUHVibGljLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBqYXZh LmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICBw dWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoamF2YS5hd3QuZXZlbnQuQWN0 aW9uRXZlbnQgZXZ0KSB7CisgICAgICAgICAgICAgICAgIGpjYlByaXZpbGVn ZXNQdWJsaWNBY3Rpb25QZXJmb3JtZWQoZXZ0KTsKKyAgICAgICAgICAgICB9 CisgICAgICAgICB9KTsKKyAKICAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50 cyA9IG5ldyBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWludHMoKTsKICAgICAg ICAgIGdyaWRCYWdDb25zdHJhaW50cy5hbmNob3IgPSBqYXZhLmF3dC5Hcmlk QmFnQ29uc3RyYWludHMuV0VTVDsKICAgICAgICAgIGdyaWRCYWdDb25zdHJh aW50cy5pbnNldHMgPSBuZXcgamF2YS5hd3QuSW5zZXRzKDMsIDAsIDMsIDAp OwoqKioqKioqKioqKioqKioKKioqIDEzMTMsMTMxOCAqKioqCi0tLSAxMzI1 LDEzMzYgLS0tLQogIAogICAgICAgICAgamxzdFByaXZpbGVnZXNVc2Vycy5z ZXRWYWx1ZUlzQWRqdXN0aW5nKHRydWUpOwogICAgICAgICAgamxzdFByaXZp bGVnZXNVc2Vycy5zZXRBdXRvc2Nyb2xscyhmYWxzZSk7CisgICAgICAgICBq bHN0UHJpdmlsZWdlc1VzZXJzLmFkZExpc3RTZWxlY3Rpb25MaXN0ZW5lcihu ZXcgamF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkxpc3RlbmVyKCkg eworICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZhbHVlQ2hhbmdlZChqYXZh eC5zd2luZy5ldmVudC5MaXN0U2VsZWN0aW9uRXZlbnQgZXZ0KSB7CisgICAg ICAgICAgICAgICAgIGpsc3RQcml2aWxlZ2VzVXNlcnNWYWx1ZUNoYW5nZWQo ZXZ0KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9KTsKKyAKICAgICAg ICAgIGpzcFByaXZpbGVnZXNVc2Vycy5zZXRWaWV3cG9ydFZpZXcoamxzdFBy aXZpbGVnZXNVc2Vycyk7CiAgCiAgICAgICAgICBncmlkQmFnQ29uc3RyYWlu dHMgPSBuZXcgamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CioqKioq KioqKioqKioqKgoqKiogMTMyNiwxMzMxICoqKioKLS0tIDEzNDQsMTM1NSAt LS0tCiAgCiAgICAgICAgICBqbHN0UHJpdmlsZWdlc0dyb3Vwcy5zZXRWYWx1 ZUlzQWRqdXN0aW5nKHRydWUpOwogICAgICAgICAgamxzdFByaXZpbGVnZXNH cm91cHMuc2V0QXV0b3Njcm9sbHMoZmFsc2UpOworICAgICAgICAgamxzdFBy aXZpbGVnZXNHcm91cHMuYWRkTGlzdFNlbGVjdGlvbkxpc3RlbmVyKG5ldyBq YXZheC5zd2luZy5ldmVudC5MaXN0U2VsZWN0aW9uTGlzdGVuZXIoKSB7Cisg ICAgICAgICAgICAgcHVibGljIHZvaWQgdmFsdWVDaGFuZ2VkKGphdmF4LnN3 aW5nLmV2ZW50Lkxpc3RTZWxlY3Rpb25FdmVudCBldnQpIHsKKyAgICAgICAg ICAgICAgICAgamxzdFByaXZpbGVnZXNHcm91cHNWYWx1ZUNoYW5nZWQoZXZ0 KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9KTsKKyAKICAgICAgICAg IGpzcFByaXZpbGVnZXNHcm91cHMuc2V0Vmlld3BvcnRWaWV3KGpsc3RQcml2 aWxlZ2VzR3JvdXBzKTsKICAKICAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50 cyA9IG5ldyBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWludHMoKTsKKioqKioq KioqKioqKioqCioqKiAxMzM5LDE0MDYgKioqKgogIAogICAgICAgICAganBQ cml2aWxlZ2VzUHJpdmlsZWdlVHlwZXMuc2V0TGF5b3V0KG5ldyBqYXZhLmF3 dC5HcmlkQmFnTGF5b3V0KCkpOwogIAotICAgICAgICAgamNiUHJpdmlsZWdl c1NlbGVjdC5zZXRUZXh0KEFkbWluUmVzb3VyY2VzLmdldFN0cmluZyhBZG1p blJlc291cmNlcy5QUklWSUxFR0VfU0VMRUNUKSk7CiAgICAgICAgICBncmlk QmFnQ29uc3RyYWludHMgPSBuZXcgamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFp bnRzKCk7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuZ3JpZHggPSAw OwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmdyaWR5ID0gMDsKISAg ICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5maWxsID0gamF2YS5hd3QuR3Jp ZEJhZ0NvbnN0cmFpbnRzLkJPVEg7CiEgICAgICAgICBncmlkQmFnQ29uc3Ry YWludHMuYW5jaG9yID0gamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzLldF U1Q7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuaW5zZXRzID0gbmV3 IGphdmEuYXd0Lkluc2V0cygwLCAyMCwgMCwgMTApOwohICAgICAgICAganBQ cml2aWxlZ2VzUHJpdmlsZWdlVHlwZXMuYWRkKGpjYlByaXZpbGVnZXNTZWxl Y3QsIGdyaWRCYWdDb25zdHJhaW50cyk7CiEgCiEgICAgICAgICBqY2JQcml2 aWxlZ2VzSW5zZXJ0LnNldFRleHQoQWRtaW5SZXNvdXJjZXMuZ2V0U3RyaW5n KEFkbWluUmVzb3VyY2VzLlBSSVZJTEVHRV9JTlNFUlQpKTsKISAgICAgICAg IGdyaWRCYWdDb25zdHJhaW50cyA9IG5ldyBqYXZhLmF3dC5HcmlkQmFnQ29u c3RyYWludHMoKTsKISAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5ncmlk eCA9IDA7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuZ3JpZHkgPSAx OwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmZpbGwgPSBqYXZhLmF3 dC5HcmlkQmFnQ29uc3RyYWludHMuQk9USDsKISAgICAgICAgIGdyaWRCYWdD b25zdHJhaW50cy5hbmNob3IgPSBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWlu dHMuV0VTVDsKISAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5pbnNldHMg PSBuZXcgamF2YS5hd3QuSW5zZXRzKDEsIDIwLCAwLCAxMCk7CiEgICAgICAg ICBqcFByaXZpbGVnZXNQcml2aWxlZ2VUeXBlcy5hZGQoamNiUHJpdmlsZWdl c0luc2VydCwgZ3JpZEJhZ0NvbnN0cmFpbnRzKTsKISAKISAgICAgICAgIGpj YlByaXZpbGVnZXNVcGRhdGUuc2V0VGV4dChBZG1pblJlc291cmNlcy5nZXRT dHJpbmcoQWRtaW5SZXNvdXJjZXMuUFJJVklMRUdFX1VQREFURSkpOwohICAg ICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzID0gbmV3IGphdmEuYXd0LkdyaWRC YWdDb25zdHJhaW50cygpOwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRz LmdyaWR4ID0gMDsKISAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5ncmlk eSA9IDI7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuZmlsbCA9IGph dmEuYXd0LkdyaWRCYWdDb25zdHJhaW50cy5CT1RIOwohICAgICAgICAgZ3Jp ZEJhZ0NvbnN0cmFpbnRzLmFuY2hvciA9IGphdmEuYXd0LkdyaWRCYWdDb25z dHJhaW50cy5XRVNUOwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmlu c2V0cyA9IG5ldyBqYXZhLmF3dC5JbnNldHMoMSwgMjAsIDAsIDEwKTsKISAg ICAgICAgIGpwUHJpdmlsZWdlc1ByaXZpbGVnZVR5cGVzLmFkZChqY2JQcml2 aWxlZ2VzVXBkYXRlLCBncmlkQmFnQ29uc3RyYWludHMpOwohIAohICAgICAg ICAgamNiUHJpdmlsZWdlc0RlbGV0ZS5zZXRUZXh0KEFkbWluUmVzb3VyY2Vz LmdldFN0cmluZyhBZG1pblJlc291cmNlcy5QUklWSUxFR0VfREVMRVRFKSk7 CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMgPSBuZXcgamF2YS5hd3Qu R3JpZEJhZ0NvbnN0cmFpbnRzKCk7CiEgICAgICAgICBncmlkQmFnQ29uc3Ry YWludHMuZ3JpZHggPSAwOwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRz LmdyaWR5ID0gMzsKICAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5maWxs ID0gamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzLkJPVEg7CiEgICAgICAg ICBncmlkQmFnQ29uc3RyYWludHMuYW5jaG9yID0gamF2YS5hd3QuR3JpZEJh Z0NvbnN0cmFpbnRzLldFU1Q7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWlu dHMuaW5zZXRzID0gbmV3IGphdmEuYXd0Lkluc2V0cygxLCAyMCwgMCwgMTAp OwohICAgICAgICAganBQcml2aWxlZ2VzUHJpdmlsZWdlVHlwZXMuYWRkKGpj YlByaXZpbGVnZXNEZWxldGUsIGdyaWRCYWdDb25zdHJhaW50cyk7CiEgCiEg ICAgICAgICBqY2JQcml2aWxlZ2VzUnVsZS5zZXRUZXh0KEFkbWluUmVzb3Vy Y2VzLmdldFN0cmluZyhBZG1pblJlc291cmNlcy5QUklWSUxFR0VfUlVMRSkp OwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzID0gbmV3IGphdmEuYXd0 LkdyaWRCYWdDb25zdHJhaW50cygpOwohICAgICAgICAgZ3JpZEJhZ0NvbnN0 cmFpbnRzLmdyaWR4ID0gMDsKISAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50 cy5ncmlkeSA9IDQ7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuZmls bCA9IGphdmEuYXd0LkdyaWRCYWdDb25zdHJhaW50cy5CT1RIOwohICAgICAg ICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmFuY2hvciA9IGphdmEuYXd0LkdyaWRC YWdDb25zdHJhaW50cy5XRVNUOwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFp bnRzLmluc2V0cyA9IG5ldyBqYXZhLmF3dC5JbnNldHMoMSwgMjAsIDAsIDEw KTsKISAgICAgICAgIGpwUHJpdmlsZWdlc1ByaXZpbGVnZVR5cGVzLmFkZChq Y2JQcml2aWxlZ2VzUnVsZSwgZ3JpZEJhZ0NvbnN0cmFpbnRzKTsKISAKISAg ICAgICAgIGpjYlByaXZpbGVnZXNSZWZlcmVuY2VzLnNldFRleHQoQWRtaW5S ZXNvdXJjZXMuZ2V0U3RyaW5nKEFkbWluUmVzb3VyY2VzLlBSSVZJTEVHRV9S RUZFUkVOQ0VTKSk7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMgPSBu ZXcgamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzKCk7CiEgICAgICAgICBn cmlkQmFnQ29uc3RyYWludHMuZ3JpZHggPSAwOwohICAgICAgICAgZ3JpZEJh Z0NvbnN0cmFpbnRzLmdyaWR5ID0gNTsKISAgICAgICAgIGdyaWRCYWdDb25z dHJhaW50cy5maWxsID0gamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzLkhP UklaT05UQUw7CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuYW5jaG9y ID0gamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzLldFU1Q7CiEgICAgICAg ICBncmlkQmFnQ29uc3RyYWludHMuaW5zZXRzID0gbmV3IGphdmEuYXd0Lklu c2V0cygxLCAyMCwgMCwgMTApOwohICAgICAgICAganBQcml2aWxlZ2VzUHJp dmlsZWdlVHlwZXMuYWRkKGpjYlByaXZpbGVnZXNSZWZlcmVuY2VzLCBncmlk QmFnQ29uc3RyYWludHMpOwohIAohICAgICAgICAgamNiUHJpdmlsZWdlc1Ry aWdnZXIuc2V0VGV4dChBZG1pblJlc291cmNlcy5nZXRTdHJpbmcoQWRtaW5S ZXNvdXJjZXMuUFJJVklMRUdFX1RSSUdHRVIpKTsKISAgICAgICAgIGdyaWRC YWdDb25zdHJhaW50cyA9IG5ldyBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWlu dHMoKTsKISAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5ncmlkeCA9IDA7 CiEgICAgICAgICBncmlkQmFnQ29uc3RyYWludHMuZ3JpZHkgPSA2OwohICAg ICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmZpbGwgPSBqYXZhLmF3dC5Hcmlk QmFnQ29uc3RyYWludHMuSE9SSVpPTlRBTDsKISAgICAgICAgIGdyaWRCYWdD b25zdHJhaW50cy5hbmNob3IgPSBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWlu dHMuTk9SVEhXRVNUOwohICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmlu c2V0cyA9IG5ldyBqYXZhLmF3dC5JbnNldHMoMSwgMjAsIDAsIDEwKTsKISAg ICAgICAgIGpwUHJpdmlsZWdlc1ByaXZpbGVnZVR5cGVzLmFkZChqY2JQcml2 aWxlZ2VzVHJpZ2dlciwgZ3JpZEJhZ0NvbnN0cmFpbnRzKTsKICAKICAgICAg ICAgIGdyaWRCYWdDb25zdHJhaW50cyA9IG5ldyBqYXZhLmF3dC5HcmlkQmFn Q29uc3RyYWludHMoKTsKICAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5n cmlkeCA9IDI7Ci0tLSAxMzYzLDEzNzMgLS0tLQogIAogICAgICAgICAganBQ cml2aWxlZ2VzUHJpdmlsZWdlVHlwZXMuc2V0TGF5b3V0KG5ldyBqYXZhLmF3 dC5HcmlkQmFnTGF5b3V0KCkpOwogIAogICAgICAgICAgZ3JpZEJhZ0NvbnN0 cmFpbnRzID0gbmV3IGphdmEuYXd0LkdyaWRCYWdDb25zdHJhaW50cygpOwoh ICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmdyaWRoZWlnaHQgPSBqYXZh LmF3dC5HcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSOwogICAgICAgICAg Z3JpZEJhZ0NvbnN0cmFpbnRzLmZpbGwgPSBqYXZhLmF3dC5HcmlkQmFnQ29u c3RyYWludHMuQk9USDsKISAgICAgICAgIGdyaWRCYWdDb25zdHJhaW50cy5p bnNldHMgPSBuZXcgamF2YS5hd3QuSW5zZXRzKDUsIDUsIDUsIDUpOwohICAg ICAgICAganBQcml2aWxlZ2VzUHJpdmlsZWdlVHlwZXMuYWRkKHBjYnBQcml2 LCBncmlkQmFnQ29uc3RyYWludHMpOwogIAogICAgICAgICAgZ3JpZEJhZ0Nv bnN0cmFpbnRzID0gbmV3IGphdmEuYXd0LkdyaWRCYWdDb25zdHJhaW50cygp OwogICAgICAgICAgZ3JpZEJhZ0NvbnN0cmFpbnRzLmdyaWR4ID0gMjsKKioq KioqKioqKioqKioqCioqKiAxNTMzLDE1MzggKioqKgotLS0gMTUwMCwxNTQ1 IC0tLS0KICAgICAgICAgIHNldEJvdW5kcygoc2NyZWVuU2l6ZS53aWR0aC04 MDApLzIsIChzY3JlZW5TaXplLmhlaWdodC02MzUpLzIsIDgwMCwgNjM1KTsK ICAgICAgfS8vR0VOLUVORDppbml0Q29tcG9uZW50cwogIAorIAlwcml2YXRl IHZvaWQgamxzdFByaXZpbGVnZXNVc2Vyc1ZhbHVlQ2hhbmdlZChqYXZheC5z d2luZy5ldmVudC5MaXN0U2VsZWN0aW9uRXZlbnQgZXZ0KSB7Ly9HRU4tRklS U1Q6ZXZlbnRfamxzdFByaXZpbGVnZXNVc2Vyc1ZhbHVlQ2hhbmdlZAorIAkJ YWRqdXN0V2l0aEdyYW50Qm94ZXMoKTsKKyAJCWFkanVzdFByaXZpbGVnZUJv eGVzKCk7CisgCX0vL0dFTi1MQVNUOmV2ZW50X2psc3RQcml2aWxlZ2VzVXNl cnNWYWx1ZUNoYW5nZWQKKyAKKyAJcHJpdmF0ZSB2b2lkIGpjYlByaXZpbGVn ZXNQdWJsaWNBY3Rpb25QZXJmb3JtZWQoamF2YS5hd3QuZXZlbnQuQWN0aW9u RXZlbnQgZXZ0KSB7Ly9HRU4tRklSU1Q6ZXZlbnRfamNiUHJpdmlsZWdlc1B1 YmxpY0FjdGlvblBlcmZvcm1lZAorIAkJYWRqdXN0V2l0aEdyYW50Qm94ZXMo KTsKKyAJCWFkanVzdFByaXZpbGVnZUJveGVzKCk7CisgCX0vL0dFTi1MQVNU OmV2ZW50X2pjYlByaXZpbGVnZXNQdWJsaWNBY3Rpb25QZXJmb3JtZWQKKyAK KyAJcHJpdmF0ZSB2b2lkIGpsc3RQcml2aWxlZ2VzR3JvdXBzVmFsdWVDaGFu Z2VkKGphdmF4LnN3aW5nLmV2ZW50Lkxpc3RTZWxlY3Rpb25FdmVudCBldnQp IHsvL0dFTi1GSVJTVDpldmVudF9qbHN0UHJpdmlsZWdlc0dyb3Vwc1ZhbHVl Q2hhbmdlZAorIAkJYWRqdXN0V2l0aEdyYW50Qm94ZXMoKTsKKyAJCWFkanVz dFByaXZpbGVnZUJveGVzKCk7CisgCX0vL0dFTi1MQVNUOmV2ZW50X2psc3RQ cml2aWxlZ2VzR3JvdXBzVmFsdWVDaGFuZ2VkCisgCisgCS8qKgorIAkgKiBB ZGp1c3RzIHByaXZpbGVnZSBib3hlcyAoZGlzYWJsZXMgaWYgbm8gdXNlci9n cm91cC9wdWJsaWMgaXMgc2VsZWN0ZWQpCisgCSAqLworIAkKKyAJcHJpdmF0 ZSB2b2lkIGFkanVzdFByaXZpbGVnZUJveGVzKCkgeworIAkJaWYgKCFqY2JQ cml2aWxlZ2VzUHVibGljLmlzU2VsZWN0ZWQoKSAmJiAKKyAJCQlqbHN0UHJp dmlsZWdlc0dyb3Vwcy5nZXRTZWxlY3RlZEluZGljZXMoKS5sZW5ndGggPT0g MCAmJgorIAkJCWpsc3RQcml2aWxlZ2VzVXNlcnMuZ2V0U2VsZWN0ZWRJbmRp Y2VzKCkubGVuZ3RoID09IDApIHsKKyAJCQkJcGNicFByaXYuc2V0RW5hYmxl ZChmYWxzZSk7CisgCQl9IGVsc2UgeworIAkJCXBjYnBQcml2LnNldEVuYWJs ZWQodHJ1ZSk7CisgCQl9CisgCX0KKyAJCisgCS8qKgorIAkgKiBBZGp1c3Rz IHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIFdJVEggR1JBTlQgT1BUSU9OIGNo ZWNrYm94ZXMuCisgCSAqLworIAkKKyAJcHJpdmF0ZSB2b2lkIGFkanVzdFdp dGhHcmFudEJveGVzKCkgeworIAkJaWYgKGpjYlByaXZpbGVnZXNQdWJsaWMu aXNTZWxlY3RlZCgpIHx8IGpsc3RQcml2aWxlZ2VzR3JvdXBzLmdldFNlbGVj dGVkSW5kaWNlcygpLmxlbmd0aCA+IDApCisgCQkJcGNicFByaXYuc2V0U2Vj b25kYXJ5Q0JFbmFibGVkKGZhbHNlKTsKKyAJCWVsc2UKKyAJCQlwY2JwUHJp di5zZXRTZWNvbmRhcnlDQkVuYWJsZWQodHJ1ZSk7CisgCX0KKyAJCiAgICAg IHByaXZhdGUgdm9pZCBjbGVhckNvbnN0cmFpbnRGaWVsZHMoamF2YS5hd3Qu ZXZlbnQuQWN0aW9uRXZlbnQgZXZ0KSB7Ly9HRU4tRklSU1Q6ZXZlbnRfY2xl YXJDb25zdHJhaW50RmllbGRzCiAgICAgICAgICAvLyBBZGQgeW91ciBoYW5k bGluZyBjb2RlIGhlcmU6CiAgICAgICAgICByZXNldEFsbFRDRmllbGRzKCk7 CioqKioqKioqKioqKioqKgoqKiogMTY0MSwxNjg1ICoqKioKICAJcHJpdmF0 ZSBpbnQgYWRkUHJpdmlsZWdlRGVmKGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2 ZW50IGV2dCkgey8vR0VOLUZJUlNUOmV2ZW50X2FkZFByaXZpbGVnZURlZgog IAkJCiAgCQlTdHJpbmcgc2VsZWN0ZWRQcml2aWxlZ2VzID0gIiI7CiAgCQli b29sZWFuIG1pblByaXZSZWNlaXZlcnNTcGVjaWZpZWQgPSBmYWxzZTsKICAJ CQohIAkJaWYgKGpjYlByaXZpbGVnZXNTZWxlY3QuaXNTZWxlY3RlZCgpKSB7 CiEgCQkJc2VsZWN0ZWRQcml2aWxlZ2VzICs9ICIgU0VMRUNUIjsKISAJCX0K ISAJCQohIAkJaWYgKGpjYlByaXZpbGVnZXNJbnNlcnQuaXNTZWxlY3RlZCgp KSB7CiEgCQkJc2VsZWN0ZWRQcml2aWxlZ2VzICs9ICIgSU5TRVJUIjsKISAJ CX0KISAJCQohIAkJaWYgKGpjYlByaXZpbGVnZXNVcGRhdGUuaXNTZWxlY3Rl ZCgpKSB7CiEgCQkJc2VsZWN0ZWRQcml2aWxlZ2VzICs9ICIgVVBEQVRFIjsK ISAJCX0KICAJCQohIAkJaWYgKGpjYlByaXZpbGVnZXNEZWxldGUuaXNTZWxl Y3RlZCgpKSB7CiEgCQkJc2VsZWN0ZWRQcml2aWxlZ2VzICs9ICIgREVMRVRF IjsKISAJCX0KICAJCQohIAkJaWYgKGpjYlByaXZpbGVnZXNSdWxlLmlzU2Vs ZWN0ZWQoKSkgewohIAkJCXNlbGVjdGVkUHJpdmlsZWdlcyArPSAiIFJVTEUi OwogIAkJfQogIAkJCiEgCQlpZiAoamNiUHJpdmlsZWdlc1JlZmVyZW5jZXMu aXNTZWxlY3RlZCgpKSB7CiEgCQkJc2VsZWN0ZWRQcml2aWxlZ2VzICs9ICIg UkVGRVJFTkNFUyI7CiEgCQl9CiAgCQkKISAJCWlmIChqY2JQcml2aWxlZ2Vz VHJpZ2dlci5pc1NlbGVjdGVkKCkpIHsKISAJCQlzZWxlY3RlZFByaXZpbGVn ZXMgKz0gIiBUUklHR0VSIjsKICAJCX0KICAJCQohICAgICAgICAgICAgICAg ICAvLyByZXR1cm4gaWYgbm8gcHJpdmlsZWdlcyBoYXZlIGJlZW4gc2VsZWN0 ZWQKISAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkUHJpdmlsZWdlcy5s ZW5ndGgoKSA9PSAwKSB7CiEgICAgICAgICAgICAgICAgICAgICBNZXNzYWdl Qm94LmVycm9yKHRoaXMsIEFkbWluUmVzb3VyY2VzLmdldFN0cmluZyhBZG1p blJlc291cmNlcy5XT1JEX0VSUk9SKSwgQWRtaW5SZXNvdXJjZXMuZ2V0U3Ry aW5nKEFkbWluUmVzb3VyY2VzLkRMR19DUkVBVEVfVEFCTEVfRVJSX1BMU19T RUxFQ1RfUFJJVklMRUdFX1RPX0FERCkpOwogIAkJCXJldHVybiAtMTsKICAJ CX0KISAgICAgICAgICAgICAgICAgCiAgCQlmb3IgKGludCBpPTA7IGkgPCBq bHN0UHJpdmlsZWdlc1VzZXJzLmdldFNlbGVjdGVkVmFsdWVzKCkubGVuZ3Ro OyBpKyspIHsKISAJCQlTdHJpbmcgdG9BZGQgPSBBZG1pbk1pc2NGdW5jdGlv bnMuZ2V0RG91YmxlUXVvdGVkSWRlbnRpZmllcigoU3RyaW5nKSBqbHN0UHJp dmlsZWdlc1VzZXJzLmdldFNlbGVjdGVkVmFsdWVzKClbaV0pICsgIigiICsg c2VsZWN0ZWRQcml2aWxlZ2VzICsgIikiOwohIAkJCSgoRGVmYXVsdExpc3RN b2RlbCkgamxzdFByaXZpbGVnZXMuZ2V0TW9kZWwoKSkuYWRkRWxlbWVudCh0 b0FkZCk7CiAgCQkJbWluUHJpdlJlY2VpdmVyc1NwZWNpZmllZCA9IHRydWU7 CiAgCQl9CiAgCQkKLS0tIDE2NDgsMTY5NSAtLS0tCiAgCXByaXZhdGUgaW50 IGFkZFByaXZpbGVnZURlZihqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudCBl dnQpIHsvL0dFTi1GSVJTVDpldmVudF9hZGRQcml2aWxlZ2VEZWYKICAJCQog IAkJU3RyaW5nIHNlbGVjdGVkUHJpdmlsZWdlcyA9ICIiOworIAkJU3RyaW5n IHNlbGVjdGVkd2l0aEdyYW50UHJpdmlsZWdlcyA9ICIiOwogIAkJYm9vbGVh biBtaW5Qcml2UmVjZWl2ZXJzU3BlY2lmaWVkID0gZmFsc2U7CiAgCQkKISAJ CVN0cmluZ1tdIHNlbGVjdGVkUHJpdlN0cmluZ3M7CiAgCQkKISAJCXNlbGVj dGVkUHJpdlN0cmluZ3MgPSBwY2JwUHJpdi5nZXRQcmltYXJ5T25seVNlbGVj dGVkQm94ZXMoKTsKICAJCQohIAkJZm9yIChpbnQgaT0wOyBpIDwgc2VsZWN0 ZWRQcml2U3RyaW5ncy5sZW5ndGg7IGkrKykgewohIAkJCXNlbGVjdGVkUHJp dmlsZWdlcyArPSBzZWxlY3RlZFByaXZTdHJpbmdzW2ldOwohIAkJCQohIAkJ CWlmIChpIDwgc2VsZWN0ZWRQcml2U3RyaW5ncy5sZW5ndGgtMSkKISAJCQkJ c2VsZWN0ZWRQcml2aWxlZ2VzICs9ICIgIjsKICAJCX0KICAJCQohIAkJc2Vs ZWN0ZWRQcml2U3RyaW5ncyA9IHBjYnBQcml2LmdldFNlbGVjdGVkU2Vjb25k YXJ5Qm94ZXMoKTsKICAJCQohIAkJZm9yIChpbnQgaT0wOyBpIDwgc2VsZWN0 ZWRQcml2U3RyaW5ncy5sZW5ndGg7IGkrKykgewohIAkJCXNlbGVjdGVkd2l0 aEdyYW50UHJpdmlsZWdlcyArPSBzZWxlY3RlZFByaXZTdHJpbmdzW2ldOwoh IAkJCQohIAkJCWlmIChpIDwgc2VsZWN0ZWRQcml2U3RyaW5ncy5sZW5ndGgt MSkKISAJCQkJc2VsZWN0ZWR3aXRoR3JhbnRQcml2aWxlZ2VzICs9ICIgIjsK ICAJCX0KICAJCQohIAkJLy8gcmV0dXJuIGlmIG5vIHByaXZpbGVnZXMgaGF2 ZSBiZWVuIHNlbGVjdGVkCiEgCQlpZiAoc2VsZWN0ZWRQcml2aWxlZ2VzLmxl bmd0aCgpICsgc2VsZWN0ZWR3aXRoR3JhbnRQcml2aWxlZ2VzLmxlbmd0aCgp ID09IDApIHsKISAJCQlNZXNzYWdlQm94LmVycm9yKHRoaXMsIEFkbWluUmVz b3VyY2VzLmdldFN0cmluZyhBZG1pblJlc291cmNlcy5XT1JEX0VSUk9SKSwg QWRtaW5SZXNvdXJjZXMuZ2V0U3RyaW5nKEFkbWluUmVzb3VyY2VzLkRMR19D UkVBVEVfVEFCTEVfRVJSX1BMU19TRUxFQ1RfUFJJVklMRUdFX1RPX0FERCkp OwogIAkJCXJldHVybiAtMTsKICAJCX0KISAKICAJCWZvciAoaW50IGk9MDsg aSA8IGpsc3RQcml2aWxlZ2VzVXNlcnMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKS5s ZW5ndGg7IGkrKykgewohIAkJCVN0cmluZyB0b0FkZDsKISAJCQkKISAJCQlp ZiAoc2VsZWN0ZWRQcml2aWxlZ2VzLmxlbmd0aCgpID4gMCkgewohIAkJCQl0 b0FkZCA9IEFkbWluTWlzY0Z1bmN0aW9ucy5nZXREb3VibGVRdW90ZWRJZGVu dGlmaWVyKChTdHJpbmcpIGpsc3RQcml2aWxlZ2VzVXNlcnMuZ2V0U2VsZWN0 ZWRWYWx1ZXMoKVtpXSkgKyAiKCIgKyBzZWxlY3RlZFByaXZpbGVnZXMgKyAi KSI7CiEgCQkJCSgoRGVmYXVsdExpc3RNb2RlbCkgamxzdFByaXZpbGVnZXMu Z2V0TW9kZWwoKSkuYWRkRWxlbWVudCh0b0FkZCk7CiEgCQkJfQohIAohIAkJ CWlmIChzZWxlY3RlZHdpdGhHcmFudFByaXZpbGVnZXMubGVuZ3RoKCkgPiAw KSB7CiEgCQkJCXRvQWRkID0gQWRtaW5NaXNjRnVuY3Rpb25zLmdldERvdWJs ZVF1b3RlZElkZW50aWZpZXIoKFN0cmluZykgamxzdFByaXZpbGVnZXNVc2Vy cy5nZXRTZWxlY3RlZFZhbHVlcygpW2ldKSArICIoV0lUSCBHUkFOVCBPUFRJ T04gIiArIHNlbGVjdGVkd2l0aEdyYW50UHJpdmlsZWdlcyArICIpIjsKISAJ CQkJKChEZWZhdWx0TGlzdE1vZGVsKSBqbHN0UHJpdmlsZWdlcy5nZXRNb2Rl bCgpKS5hZGRFbGVtZW50KHRvQWRkKTsKISAJCQl9CiEgCQkJCiAgCQkJbWlu UHJpdlJlY2VpdmVyc1NwZWNpZmllZCA9IHRydWU7CiAgCQl9CiAgCQkKKioq KioqKioqKioqKioqCioqKiAxNzAyLDE3MjAgKioqKgogIAkJCiAgCQkvLyBD bGVhciBhbGwgdGhlIGNoZWNrYm94ZXMKICAJCQogIAkJamNiUHJpdmlsZWdl c1B1YmxpYy5zZXRTZWxlY3RlZChmYWxzZSk7Ci0gCQlqY2JQcml2aWxlZ2Vz U2VsZWN0LnNldFNlbGVjdGVkKGZhbHNlKTsKLSAJCWpjYlByaXZpbGVnZXNV cGRhdGUuc2V0U2VsZWN0ZWQoZmFsc2UpOwotIAkJamNiUHJpdmlsZWdlc0lu c2VydC5zZXRTZWxlY3RlZChmYWxzZSk7Ci0gCQlqY2JQcml2aWxlZ2VzRGVs ZXRlLnNldFNlbGVjdGVkKGZhbHNlKTsKLSAJCWpjYlByaXZpbGVnZXNSdWxl LnNldFNlbGVjdGVkKGZhbHNlKTsKLSAJCWpjYlByaXZpbGVnZXNSZWZlcmVu Y2VzLnNldFNlbGVjdGVkKGZhbHNlKTsKLSAJCWpjYlByaXZpbGVnZXNUcmln Z2VyLnNldFNlbGVjdGVkKGZhbHNlKTsKICAJCWpsc3RQcml2aWxlZ2VzVXNl cnMuZ2V0U2VsZWN0aW9uTW9kZWwoKS5jbGVhclNlbGVjdGlvbigpOwogIAkJ amxzdFByaXZpbGVnZXNHcm91cHMuZ2V0U2VsZWN0aW9uTW9kZWwoKS5jbGVh clNlbGVjdGlvbigpOwogIAkJCiAgCQlyZXR1cm4gMDsKISAKICAJfS8vR0VO LUxBU1Q6ZXZlbnRfYWRkUHJpdmlsZWdlRGVmCiAgCiAgCXByaXZhdGUgdm9p ZCBlbmFibGVUQ0ZvcmVpZ25LZXlGaWVsZHMoamF2YS5hd3QuZXZlbnQuSXRl bUV2ZW50IGV2dCkgey8vR0VOLUZJUlNUOmV2ZW50X2VuYWJsZVRDRm9yZWln bktleUZpZWxkcwotLS0gMTcxMiwxNzI0IC0tLS0KICAJCQogIAkJLy8gQ2xl YXIgYWxsIHRoZSBjaGVja2JveGVzCiAgCQkKKyAJCXBjYnBQcml2LnJlc2V0 KCk7CiAgCQlqY2JQcml2aWxlZ2VzUHVibGljLnNldFNlbGVjdGVkKGZhbHNl KTsKICAJCWpsc3RQcml2aWxlZ2VzVXNlcnMuZ2V0U2VsZWN0aW9uTW9kZWwo KS5jbGVhclNlbGVjdGlvbigpOwogIAkJamxzdFByaXZpbGVnZXNHcm91cHMu Z2V0U2VsZWN0aW9uTW9kZWwoKS5jbGVhclNlbGVjdGlvbigpOwogIAkJCiAg CQlyZXR1cm4gMDsKISAJCQogIAl9Ly9HRU4tTEFTVDpldmVudF9hZGRQcml2 aWxlZ2VEZWYKICAKICAJcHJpdmF0ZSB2b2lkIGVuYWJsZVRDRm9yZWlnbktl eUZpZWxkcyhqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQgZXZ0KSB7Ly9HRU4t RklSU1Q6ZXZlbnRfZW5hYmxlVENGb3JlaWduS2V5RmllbGRzCioqKioqKioq KioqKioqKgoqKiogMjM1MywyMzYxICoqKioKICAJCiAgCQkvLyBpZiBwcml2 aWxlZ2VzIGFyZSBkZWZpbmVkIGJ1dCBub3QgYWRkZWQgCiAgCQkKISAJCWlm IChqY2JQcml2aWxlZ2VzU2VsZWN0LmlzU2VsZWN0ZWQoKSB8fCBqY2JQcml2 aWxlZ2VzSW5zZXJ0LmlzU2VsZWN0ZWQoKSB8fCBqY2JQcml2aWxlZ2VzVXBk YXRlLmlzU2VsZWN0ZWQoKSB8fCBqY2JQcml2aWxlZ2VzRGVsZXRlLmlzU2Vs ZWN0ZWQoKQohIAkJCXx8IGpjYlByaXZpbGVnZXNSdWxlLmlzU2VsZWN0ZWQo KSB8fCBqY2JQcml2aWxlZ2VzUmVmZXJlbmNlcy5pc1NlbGVjdGVkKCkgfHwg amNiUHJpdmlsZWdlc1RyaWdnZXIuaXNTZWxlY3RlZCgpKSB7CiEgCQkKICAJ CQkKICAJCQlpbnQgaT0gSk9wdGlvblBhbmUuc2hvd0NvbmZpcm1EaWFsb2co CiAgCQkJCQl0aGlzLAotLS0gMjM1NywyMzYzIC0tLS0KICAJCiAgCQkvLyBp ZiBwcml2aWxlZ2VzIGFyZSBkZWZpbmVkIGJ1dCBub3QgYWRkZWQgCiAgCQkK ISAJCWlmIChwY2JwUHJpdi5nZXRQcmltYXJ5T25seVNlbGVjdGVkQm94ZXMo KS5sZW5ndGggKyBwY2JwUHJpdi5nZXRTZWxlY3RlZFNlY29uZGFyeUJveGVz KCkubGVuZ3RoICE9IDApIHsKICAJCQkKICAJCQlpbnQgaT0gSk9wdGlvblBh bmUuc2hvd0NvbmZpcm1EaWFsb2coCiAgCQkJCQl0aGlzLAoqKioqKioqKioq KioqKioKKioqIDI4OTUsMjkwMCAqKioqCi0tLSAyODk3LDI5MDUgLS0tLQog IAlDb25zdHJhaW50Q29sdW1uQ2hvb3NlckRpYWxvZyBjY2NkVENQS0NvbnND b2xDaG9vc2VyOwogIAlDb25zdHJhaW50Q29sdW1uQ2hvb3NlckRpYWxvZyBj Y2NkVENVQ29uc0NvbENob29zZXI7CiAgCQorIAlTdHJpbmdbXSB2YWxpZFBy aXZpbGVnZXMgPSBuZXcgU3RyaW5nWzBdOworIAlTdHJpbmcgZ3JhbnRPcHRp b25TdHJpbmcgPSAiIjsKKyAJCiAgICAgIC8vIFZhcmlhYmxlcyBkZWNsYXJh dGlvbiAtIGRvIG5vdCBtb2RpZnkvL0dFTi1CRUdJTjp2YXJpYWJsZXMKICAg ICAgcHJpdmF0ZSBjb20ucmVkaGF0LnJoZGIuYWRtaW4uQWRtaW5Db21ib0Jv eCBhY2JDQ0NoZWNrVGltZTsKICAgICAgcHJpdmF0ZSBjb20ucmVkaGF0LnJo ZGIuYWRtaW4uQWRtaW5Db21ib0JveCBhY2JDQ0RlZmVycmFibGU7CioqKioq KioqKioqKioqKgoqKiogMjkyMywyOTM2ICoqKioKICAgICAgcHJpdmF0ZSBq YXZheC5zd2luZy5KQnV0dG9uIGpiVENBZGRUQzsKICAgICAgcHJpdmF0ZSBq YXZheC5zd2luZy5KQnV0dG9uIGpiVENDbGVhckZpZWxkczsKICAgICAgcHJp dmF0ZSBqYXZheC5zd2luZy5KQnV0dG9uIGpiVW5pcXVlOwotICAgICBwcml2 YXRlIGphdmF4LnN3aW5nLkpDaGVja0JveCBqY2JQcml2aWxlZ2VzRGVsZXRl OwotICAgICBwcml2YXRlIGphdmF4LnN3aW5nLkpDaGVja0JveCBqY2JQcml2 aWxlZ2VzSW5zZXJ0OwogICAgICBwcml2YXRlIGphdmF4LnN3aW5nLkpDaGVj a0JveCBqY2JQcml2aWxlZ2VzUHVibGljOwotICAgICBwcml2YXRlIGphdmF4 LnN3aW5nLkpDaGVja0JveCBqY2JQcml2aWxlZ2VzUmVmZXJlbmNlczsKLSAg ICAgcHJpdmF0ZSBqYXZheC5zd2luZy5KQ2hlY2tCb3ggamNiUHJpdmlsZWdl c1J1bGU7Ci0gICAgIHByaXZhdGUgamF2YXguc3dpbmcuSkNoZWNrQm94IGpj YlByaXZpbGVnZXNTZWxlY3Q7Ci0gICAgIHByaXZhdGUgamF2YXguc3dpbmcu SkNoZWNrQm94IGpjYlByaXZpbGVnZXNUcmlnZ2VyOwotICAgICBwcml2YXRl IGphdmF4LnN3aW5nLkpDaGVja0JveCBqY2JQcml2aWxlZ2VzVXBkYXRlOwog ICAgICBwcml2YXRlIGphdmF4LnN3aW5nLkpMYWJlbCBqbENDQ2hlY2tUaW1l OwogICAgICBwcml2YXRlIGphdmF4LnN3aW5nLkpMYWJlbCBqbENDQ29uc3Ry YWludE5hbWU7CiAgICAgIHByaXZhdGUgamF2YXguc3dpbmcuSkxhYmVsIGps Q0NEZWZlcnJhYmxlOwotLS0gMjkyOCwyOTM0IC0tLS0KKioqKioqKioqKioq KioqCioqKiAzMDA5LDMwMTQgKioqKgotLS0gMzAwNywzMDEzIC0tLS0KICAg ICAgcHJpdmF0ZSBqYXZheC5zd2luZy5KVGV4dEZpZWxkIGp0ZlRDUHJpbWFy eUtleTsKICAgICAgcHJpdmF0ZSBqYXZheC5zd2luZy5KVGV4dEZpZWxkIGp0 ZlRDVW5pcXVlOwogICAgICBwcml2YXRlIGphdmF4LnN3aW5nLkpUYWJiZWRQ YW5lIGp0cENyZWF0ZU9wdGlvblRhYnM7CisgICAgIHByaXZhdGUgY29tLnJl ZGhhdC5yaGRiLmFkbWluLlByaXZpbGVnZXNDaGVja0JveFBhbmVsIHBjYnBQ cml2OwogICAgICBwcml2YXRlIGNvbS5yZWRoYXQucmhkYi5hZG1pbi5TY2hl bWFRdWFsaWZpZWRTZWxlY3Rpb25Cb3ggc3FzYkNDUmVmVGFibGU7CiAgICAg IHByaXZhdGUgY29tLnJlZGhhdC5yaGRiLmFkbWluLlNjaGVtYVF1YWxpZmll ZFNlbGVjdGlvbkJveCBzcXNiRGF0YVR5cGU7CiAgICAgIHByaXZhdGUgY29t LnJlZGhhdC5yaGRiLmFkbWluLlNjaGVtYVF1YWxpZmllZFNlbGVjdGlvbkJv eCBzcXNiVENSZWZUYWJsZTsKZGlmZiAtY3IgcmhkYi1hZG1pbi9zcmMvY29t L3JlZGhhdC9yaGRiL2FkbWluL1ByaXZpbGVnZXNDaGVja0JveFBhbmVsLmph dmEgcmhkYi1hZG1pbi5pbmNyL3NyYy9jb20vcmVkaGF0L3JoZGIvYWRtaW4v UHJpdmlsZWdlc0NoZWNrQm94UGFuZWwuamF2YQoqKiogcmhkYi1hZG1pbi9z cmMvY29tL3JlZGhhdC9yaGRiL2FkbWluL1ByaXZpbGVnZXNDaGVja0JveFBh bmVsLmphdmEJMjAwNC0wNi0wOSAwMTo1MTo0MS4wMDAwMDAwMDAgLTA0MDAK LS0tIHJoZGItYWRtaW4uaW5jci9zcmMvY29tL3JlZGhhdC9yaGRiL2FkbWlu L1ByaXZpbGVnZXNDaGVja0JveFBhbmVsLmphdmEJMjAwNC0wNi0wOSAxMzo0 NzoxMC4wMDAwMDAwMDAgLTA0MDAKKioqKioqKioqKioqKioqCioqKiA1MzEs NTM3ICoqKioKICAJCWhhc1NlY29uZGFyeUNCRW5hYmxlZCA9IGVuYWJsZWQ7 CiAgCQlmb3IgKGludCBpPTA7IGkgPCBqY2hTZWNvbmRhcnlCdXR0b25zLmxl bmd0aDsgaSsrKSB7CiAgCQkJamNoU2Vjb25kYXJ5QnV0dG9uc1tpXS5zZXRT ZWxlY3RlZChmYWxzZSk7CiEgCQkJamNoU2Vjb25kYXJ5QnV0dG9uc1tpXS5z ZXRFbmFibGVkKGVuYWJsZWQpOwogIAkJfQogIAl9CiAgCQotLS0gNTMxLDUz NyAtLS0tCiAgCQloYXNTZWNvbmRhcnlDQkVuYWJsZWQgPSBlbmFibGVkOwog IAkJZm9yIChpbnQgaT0wOyBpIDwgamNoU2Vjb25kYXJ5QnV0dG9ucy5sZW5n dGg7IGkrKykgewogIAkJCWpjaFNlY29uZGFyeUJ1dHRvbnNbaV0uc2V0U2Vs ZWN0ZWQoZmFsc2UpOwohIAkJCWpjaFNlY29uZGFyeUJ1dHRvbnNbaV0uc2V0 RW5hYmxlZChqY2hCdXR0b25zW2ldLmlzU2VsZWN0ZWQoKSAmJiBlbmFibGVk KTsKICAJCX0KICAJfQogIAkKZGlmZiAtY3IgcmhkYi1hZG1pbi9zcmMvY29t L3JlZGhhdC9yaGRiL2FkbWluL1RhYmxlVXBkYXRlLmphdmEgcmhkYi1hZG1p bi5pbmNyL3NyYy9jb20vcmVkaGF0L3JoZGIvYWRtaW4vVGFibGVVcGRhdGUu amF2YQoqKiogcmhkYi1hZG1pbi9zcmMvY29tL3JlZGhhdC9yaGRiL2FkbWlu L1RhYmxlVXBkYXRlLmphdmEJMjAwNC0wNS0wNCAxMzowNzo1Ny4wMDAwMDAw MDAgLTA0MDAKLS0tIHJoZGItYWRtaW4uaW5jci9zcmMvY29tL3JlZGhhdC9y aGRiL2FkbWluL1RhYmxlVXBkYXRlLmphdmEJMjAwNC0wNi0wOSAxNDozMzoy NC4wMDAwMDAwMDAgLTA0MDAKKioqKioqKioqKioqKioqCioqKiAxMTcsMTIz ICoqKioKICAJCQkKICAJCQlTdHJpbmcgdXNlciA9IGdyYW50TGluZS5zdWJz dHJpbmcoMCwgZ3JhbnRMaW5lLmxhc3RJbmRleE9mKCcoJykpOwogIAkJCVN0 cmluZyBwcml2aWxlZ2VzVG9HcmFudCA9IGdyYW50TGluZS5zdWJzdHJpbmco KGdyYW50TGluZS5sYXN0SW5kZXhPZignKCcpICsgMSksIChncmFudExpbmUu bGVuZ3RoKCkgLSAxKSk7CiEgCQkJU3RyaW5nW10gcHJpdmlsZWdlQ29tcG9u ZW50cyA9IHByaXZpbGVnZXNUb0dyYW50LnRyaW0oKS5zcGxpdCgiICIpOwog IAkJCQogIAkJCWlmIChwcml2aWxlZ2VDb21wb25lbnRzLmxlbmd0aCA9PSAw IHx8IHByaXZpbGVnZUNvbXBvbmVudHNbMF0uZXF1YWxzKCIiKSkKICAJCQkJ Y29udGludWU7Ci0tLSAxMTcsMTQxIC0tLS0KICAJCQkKICAJCQlTdHJpbmcg dXNlciA9IGdyYW50TGluZS5zdWJzdHJpbmcoMCwgZ3JhbnRMaW5lLmxhc3RJ bmRleE9mKCcoJykpOwogIAkJCVN0cmluZyBwcml2aWxlZ2VzVG9HcmFudCA9 IGdyYW50TGluZS5zdWJzdHJpbmcoKGdyYW50TGluZS5sYXN0SW5kZXhPZign KCcpICsgMSksIChncmFudExpbmUubGVuZ3RoKCkgLSAxKSk7CiEgCQkJYm9v bGVhbiBpc1dpdGhHcmFudCA9IGZhbHNlOwohIAkJCVN0cmluZyBncmFudE9w dGlvblN0cmluZyA9ICIiOwohIAkJCVN0cmluZ1tdIHByaXZpbGVnZUNvbXBv bmVudHM7CiEgCQkJCiEgCQkJLy8gV0lUSCBHUkFOVCBPUFRJT04gbWFya2Vy CiEgCQkJCiEgCQkJU3RyaW5nIHdpdGhHcmFudE9wdGlvbk1hcmtlciA9ICJX SVRIIEdSQU5UIE9QVElPTiAiOwohIAohIAkJCWlzV2l0aEdyYW50ID0gcHJp dmlsZWdlc1RvR3JhbnQuc3RhcnRzV2l0aCh3aXRoR3JhbnRPcHRpb25NYXJr ZXIpOwohIAohIAkJCWlmIChpc1dpdGhHcmFudCkgewohIAkJCQkvLyBTa2lw IHRoZSAiV0lUSCBHUkFOVCBPUFRJT04iIG1hcmtlcgohIAohIAkJCQlwcml2 aWxlZ2VzVG9HcmFudCA9IHByaXZpbGVnZXNUb0dyYW50LnN1YnN0cmluZyh3 aXRoR3JhbnRPcHRpb25NYXJrZXIubGVuZ3RoKCkpOwohIAkJCQlncmFudE9w dGlvblN0cmluZyA9ICIgV0lUSCBHUkFOVCBPUFRJT04gIjsKISAJCQkJcHJp dmlsZWdlQ29tcG9uZW50cyA9IHByaXZpbGVnZXNUb0dyYW50LnRyaW0oKS5z cGxpdCgiICIpOwohIAkJCX0gZWxzZSB7CiEgCQkJCXByaXZpbGVnZUNvbXBv bmVudHMgPSBwcml2aWxlZ2VzVG9HcmFudC50cmltKCkuc3BsaXQoIiAiKTsJ CQkJCiEgCQkJfQogIAkJCQogIAkJCWlmIChwcml2aWxlZ2VDb21wb25lbnRz Lmxlbmd0aCA9PSAwIHx8IHByaXZpbGVnZUNvbXBvbmVudHNbMF0uZXF1YWxz KCIiKSkKICAJCQkJY29udGludWU7CioqKioqKioqKioqKioqKgoqKiogMTI3 LDEzNSAqKioqCiAgCQkJZm9yIChpbnQgaj0xOyBqIDwgcHJpdmlsZWdlQ29t cG9uZW50cy5sZW5ndGg7IGorKykKICAJCQkJcHJpdmlsZWdlc0dyYW50U3Ry aW5nICs9ICIsICIgKyBwcml2aWxlZ2VDb21wb25lbnRzW2pdOwogIAkJCQoh IAkJCXByaXZpbGVnZXNTdHJpbmcgKz0gIiBHUkFOVCAiICsgcHJpdmlsZWdl c0dyYW50U3RyaW5nICsgIiBPTiBUQUJMRSAiICsgdGFibGVOYW1lICsgIiBU TyAiICsgdXNlciArICI7XG4iOwogIAkJfQohIAkJCiAgCQl0cnkgewogIAkJ CWNsaWVudC5wZXJmb3JtVXBkYXRlKChTdHJpbmcpIHBhcmFtZXRlcnMuZ2V0 KFBBUkFNX0NMVVNURVJfTkFNRSksIChTdHJpbmcpIHBhcmFtZXRlcnMuZ2V0 KFBBUkFNX0RCX05BTUUpLCAiQkVHSU4iKTsKICAJCQkKLS0tIDE0NSwxNTMg LS0tLQogIAkJCWZvciAoaW50IGo9MTsgaiA8IHByaXZpbGVnZUNvbXBvbmVu dHMubGVuZ3RoOyBqKyspCiAgCQkJCXByaXZpbGVnZXNHcmFudFN0cmluZyAr PSAiLCAiICsgcHJpdmlsZWdlQ29tcG9uZW50c1tqXTsKICAJCQkKISAJCQlw cml2aWxlZ2VzU3RyaW5nICs9ICIgR1JBTlQgIiArIHByaXZpbGVnZXNHcmFu dFN0cmluZyArICIgT04gVEFCTEUgIiArIHRhYmxlTmFtZSArICIgVE8gIiAr IHVzZXIgKyBncmFudE9wdGlvblN0cmluZyArICI7XG4iOwogIAkJfQohIAog IAkJdHJ5IHsKICAJCQljbGllbnQucGVyZm9ybVVwZGF0ZSgoU3RyaW5nKSBw YXJhbWV0ZXJzLmdldChQQVJBTV9DTFVTVEVSX05BTUUpLCAoU3RyaW5nKSBw YXJhbWV0ZXJzLmdldChQQVJBTV9EQl9OQU1FKSwgIkJFR0lOIik7CiAgCQkJ Cg== --0-1680272154-1086808011=:64186--