From owner-freebsd-toolchain@freebsd.org Wed Jul 29 17:03:06 2015 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92C979ACEB9 for ; Wed, 29 Jul 2015 17:03:06 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) by mx1.freebsd.org (Postfix) with ESMTP id 7CD521A5E for ; Wed, 29 Jul 2015 17:03:06 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.isc.freebsd.org (Postfix, from userid 1346) id 784BB9FFC; Wed, 29 Jul 2015 17:03:06 +0000 (UTC) Date: Wed, 29 Jul 2015 17:03:06 +0000 To: freebsd-toolchain@freebsd.org From: "emaste (Ed Maste)" Reply-to: D3237+334+69ead51bad8cf2b5@reviews.freebsd.org Subject: [Differential] [Request, 25 lines] D3237: Fix ar default deterministic mode for -x Message-ID: X-Priority: 3 Thread-Topic: D3237: Fix ar default deterministic mode for -x X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: Thread-Index: ZjZmNTFiYzZhOGY5YmYzYzlkNGVkOGQ0YmFl Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_bd48a8bb23acfa48e2533338ce90c80a" X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2015 17:03:06 -0000 --b1_bd48a8bb23acfa48e2533338ce90c80a Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit emaste created this revision. emaste added reviewers: jhibbits, bapt, brooks. emaste added subscribers: freebsd-toolchain-list, jhibbits. REVISION SUMMARY Reported by: @jhibbits REVISION DETAIL https://reviews.freebsd.org/D3237 AFFECTED FILES usr.bin/ar/ar.c CHANGE DETAILS diff --git a/usr.bin/ar/ar.c b/usr.bin/ar/ar.c --- a/usr.bin/ar/ar.c +++ b/usr.bin/ar/ar.c @@ -101,11 +101,12 @@ char *p; size_t len; int i, opt; + int Dflag, Uflag; bsdar = &bsdar_storage; memset(bsdar, 0, sizeof(*bsdar)); - /* Enable deterministic mode by default. */ - bsdar->options |= AR_D; + Dflag = 0; + Uflag = 0; if ((bsdar->progname = getprogname()) == NULL) bsdar->progname = "ar"; @@ -122,10 +123,12 @@ /* Ignored. */ break; case 'D': - bsdar->options |= AR_D; + Dflag = 1; + Uflag = 0; break; case 'U': - bsdar->options &= ~AR_D; + Uflag = 1; + Dflag = 0; break; case 'V': ranlib_version(); @@ -182,7 +185,8 @@ set_mode(bsdar, opt); break; case 'D': - bsdar->options |= AR_D; + Dflag = 1; + Uflag = 0; break; case 'f': case 'T': @@ -222,7 +226,8 @@ set_mode(bsdar, opt); break; case 'U': - bsdar->options &= ~AR_D; + Uflag = 1; + Dflag = 0; break; case 'u': bsdar->options |= AR_U; @@ -275,16 +280,22 @@ argv++; } + /* Set determinstic mode for -D, and by default without -U. */ + if (Dflag || (Uflag == 0 && (bsdar->mode == 'q' || bsdar->mode == 'r'))) + bsdar->options |= AR_D; + if (bsdar->options & AR_A) only_mode(bsdar, "-a", "mqr"); if (bsdar->options & AR_B) only_mode(bsdar, "-b", "mqr"); if (bsdar->options & AR_C) only_mode(bsdar, "-c", "qr"); if (bsdar->options & AR_CC) only_mode(bsdar, "-C", "x"); - if (bsdar->options & AR_D) + if (Dflag) only_mode(bsdar, "-D", "qr"); + if (Uflag) + only_mode(bsdar, "-U", "qr"); if (bsdar->options & AR_O) only_mode(bsdar, "-o", "x"); if (bsdar->options & AR_SS) EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: emaste, jhibbits, bapt, brooks Cc: jhibbits, freebsd-toolchain-list --b1_bd48a8bb23acfa48e2533338ce90c80a Content-Type: text/x-patch; charset=utf-8; name="D3237.7472.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D3237.7472.patch" ZGlmZiAtLWdpdCBhL3Vzci5iaW4vYXIvYXIuYyBiL3Vzci5iaW4vYXIvYXIuYwotLS0gYS91c3Iu YmluL2FyL2FyLmMKKysrIGIvdXNyLmJpbi9hci9hci5jCkBAIC0xMDEsMTEgKzEwMSwxMiBAQAog CWNoYXIJCSpwOwogCXNpemVfdAkJIGxlbjsKIAlpbnQJCSBpLCBvcHQ7CisJaW50CQkgRGZsYWcs IFVmbGFnOwogCiAJYnNkYXIgPSAmYnNkYXJfc3RvcmFnZTsKIAltZW1zZXQoYnNkYXIsIDAsIHNp emVvZigqYnNkYXIpKTsKLQkvKiBFbmFibGUgZGV0ZXJtaW5pc3RpYyBtb2RlIGJ5IGRlZmF1bHQu ICovCi0JYnNkYXItPm9wdGlvbnMgfD0gQVJfRDsKKwlEZmxhZyA9IDA7CisJVWZsYWcgPSAwOwog CiAJaWYgKChic2Rhci0+cHJvZ25hbWUgPSBnZXRwcm9nbmFtZSgpKSA9PSBOVUxMKQogCQlic2Rh ci0+cHJvZ25hbWUgPSAiYXIiOwpAQCAtMTIyLDEwICsxMjMsMTIgQEAKIAkJCQkvKiBJZ25vcmVk LiAqLwogCQkJCWJyZWFrOwogCQkJY2FzZSAnRCc6Ci0JCQkJYnNkYXItPm9wdGlvbnMgfD0gQVJf RDsKKwkJCQlEZmxhZyA9IDE7CisJCQkJVWZsYWcgPSAwOwogCQkJCWJyZWFrOwogCQkJY2FzZSAn VSc6Ci0JCQkJYnNkYXItPm9wdGlvbnMgJj0gfkFSX0Q7CisJCQkJVWZsYWcgPSAxOworCQkJCURm bGFnID0gMDsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ1YnOgogCQkJCXJhbmxpYl92ZXJzaW9uKCk7 CkBAIC0xODIsNyArMTg1LDggQEAKIAkJCXNldF9tb2RlKGJzZGFyLCBvcHQpOwogCQkJYnJlYWs7 CiAJCWNhc2UgJ0QnOgotCQkJYnNkYXItPm9wdGlvbnMgfD0gQVJfRDsKKwkJCURmbGFnID0gMTsK KwkJCVVmbGFnID0gMDsKIAkJCWJyZWFrOwogCQljYXNlICdmJzoKIAkJY2FzZSAnVCc6CkBAIC0y MjIsNyArMjI2LDggQEAKIAkJCXNldF9tb2RlKGJzZGFyLCBvcHQpOwogCQkJYnJlYWs7CiAJCWNh c2UgJ1UnOgotCQkJYnNkYXItPm9wdGlvbnMgJj0gfkFSX0Q7CisJCQlVZmxhZyA9IDE7CisJCQlE ZmxhZyA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSAndSc6CiAJCQlic2Rhci0+b3B0aW9ucyB8PSBB Ul9VOwpAQCAtMjc1LDE2ICsyODAsMjIgQEAKIAkJYXJndisrOwogCX0KIAorCS8qIFNldCBkZXRl cm1pbnN0aWMgbW9kZSBmb3IgLUQsIGFuZCBieSBkZWZhdWx0IHdpdGhvdXQgLVUuICovCisJaWYg KERmbGFnIHx8IChVZmxhZyA9PSAwICYmIChic2Rhci0+bW9kZSA9PSAncScgfHwgYnNkYXItPm1v ZGUgPT0gJ3InKSkpCisJCWJzZGFyLT5vcHRpb25zIHw9IEFSX0Q7CisKIAlpZiAoYnNkYXItPm9w dGlvbnMgJiBBUl9BKQogCQlvbmx5X21vZGUoYnNkYXIsICItYSIsICJtcXIiKTsKIAlpZiAoYnNk YXItPm9wdGlvbnMgJiBBUl9CKQogCQlvbmx5X21vZGUoYnNkYXIsICItYiIsICJtcXIiKTsKIAlp ZiAoYnNkYXItPm9wdGlvbnMgJiBBUl9DKQogCQlvbmx5X21vZGUoYnNkYXIsICItYyIsICJxciIp OwogCWlmIChic2Rhci0+b3B0aW9ucyAmIEFSX0NDKQogCQlvbmx5X21vZGUoYnNkYXIsICItQyIs ICJ4Iik7Ci0JaWYgKGJzZGFyLT5vcHRpb25zICYgQVJfRCkKKwlpZiAoRGZsYWcpCiAJCW9ubHlf bW9kZShic2RhciwgIi1EIiwgInFyIik7CisJaWYgKFVmbGFnKQorCQlvbmx5X21vZGUoYnNkYXIs ICItVSIsICJxciIpOwogCWlmIChic2Rhci0+b3B0aW9ucyAmIEFSX08pCiAJCW9ubHlfbW9kZShi c2RhciwgIi1vIiwgIngiKTsKIAlpZiAoYnNkYXItPm9wdGlvbnMgJiBBUl9TUykKCg== --b1_bd48a8bb23acfa48e2533338ce90c80a-- From owner-freebsd-toolchain@freebsd.org Wed Jul 29 20:08:36 2015 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCEB89ADA99 for ; Wed, 29 Jul 2015 20:08:36 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) by mx1.freebsd.org (Postfix) with ESMTP id B02781AE4 for ; Wed, 29 Jul 2015 20:08:36 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.isc.freebsd.org (Postfix, from userid 1346) id AA51396DE; Wed, 29 Jul 2015 20:08:36 +0000 (UTC) Date: Wed, 29 Jul 2015 20:08:36 +0000 To: freebsd-toolchain@freebsd.org From: "emaste (Ed Maste)" Reply-to: D3238+334+c2b1542ed61fa517@reviews.freebsd.org Subject: [Differential] [Request, 2, 362 lines] D3238: Remove old GNU Binutils tools now provided by ELF Tool Chain Message-ID: X-Priority: 3 Thread-Topic: D3238: Remove old GNU Binutils tools now provided by ELF Tool Chain X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: Thread-Index: YTY3NTViZGNhMzg3ODNjOWYxZDllNTJkNWQ1 Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_67ec10c8936061913117e0db8037e460" X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2015 20:08:37 -0000 --b1_67ec10c8936061913117e0db8037e460 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit emaste created this revision. emaste added reviewers: bapt, brooks, imp. emaste added a subscriber: freebsd-toolchain-list. REVISION SUMMARY Posting for comment, review and testing. REVISION DETAIL https://reviews.freebsd.org/D3238 AFFECTED FILES UPDATING gnu/usr.bin/binutils/Makefile gnu/usr.bin/binutils/addr2line/Makefile gnu/usr.bin/binutils/addr2line/Makefile.depend gnu/usr.bin/binutils/addr2line/addr2line.1 gnu/usr.bin/binutils/ar/Makefile.depend gnu/usr.bin/binutils/nm/Makefile gnu/usr.bin/binutils/nm/Makefile.depend gnu/usr.bin/binutils/nm/nm.1 gnu/usr.bin/binutils/ranlib/Makefile.depend gnu/usr.bin/binutils/readelf/Makefile gnu/usr.bin/binutils/readelf/Makefile.depend gnu/usr.bin/binutils/readelf/readelf.1 gnu/usr.bin/binutils/size/Makefile gnu/usr.bin/binutils/size/Makefile.depend gnu/usr.bin/binutils/size/size.1 gnu/usr.bin/binutils/strings/Makefile gnu/usr.bin/binutils/strings/Makefile.depend gnu/usr.bin/binutils/strings/strings.1 gnu/usr.bin/binutils/strip/Makefile gnu/usr.bin/binutils/strip/Makefile.depend gnu/usr.bin/binutils/strip/strip.1 gnu/usr.bin/cc/Makefile gnu/usr.bin/cc/c++filt/Makefile gnu/usr.bin/cc/c++filt/Makefile.depend tools/build/mk/OptionalObsoleteFiles.inc tools/build/options/WITHOUT_BINUTILS tools/build/options/WITHOUT_ELFTOOLCHAIN_TOOLS EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: emaste, bapt, brooks, imp Cc: freebsd-toolchain-list --b1_67ec10c8936061913117e0db8037e460 Content-Type: text/x-patch; charset=utf-8; name="D3238.7481.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D3238.7481.patch" ZGlmZiAtLWdpdCBhL3Rvb2xzL2J1aWxkL29wdGlvbnMvV0lUSE9VVF9FTEZUT09MQ0hBSU5fVE9P TFMgYi90b29scy9idWlsZC9vcHRpb25zL1dJVEhPVVRfRUxGVE9PTENIQUlOX1RPT0xTCi0tLSBh L3Rvb2xzL2J1aWxkL29wdGlvbnMvV0lUSE9VVF9FTEZUT09MQ0hBSU5fVE9PTFMKKysrIGIvdG9v bHMvYnVpbGQvb3B0aW9ucy9XSVRIT1VUX0VMRlRPT0xDSEFJTl9UT09MUwpAQCAtMSwxMSArMSwx MCBAQAogLlwiICRGcmVlQlNEJAotU2V0IHRvIHVzZQorU2V0IHRvIGF2b2lkIGJ1aWxkaW5nIEVM RiBUb29sIENoYWluIHRvb2xzCiAuWHIgYWRkcjJsaW5lIDEgLAogLlhyIGMrK2ZpbHQgMSAsCiAu WHIgbm0gMSAsCiAuWHIgcmVhZGVsZiAxICwKIC5YciBzaXplIDEgLAogLlhyIHN0cmluZ3MgMSAs CiBhbmQKLS5YciBzdHJpcCAxCi1mcm9tIEdOVSBiaW51dGlscyBpbnN0ZWFkIG9mIHRoZSBFTEYg VG9vbCBDaGFpbiBwcm9qZWN0LgorLlhyIHN0cmlwIDEgLgpkaWZmIC0tZ2l0IGEvdG9vbHMvYnVp bGQvb3B0aW9ucy9XSVRIT1VUX0JJTlVUSUxTIGIvdG9vbHMvYnVpbGQvb3B0aW9ucy9XSVRIT1VU X0JJTlVUSUxTCi0tLSBhL3Rvb2xzL2J1aWxkL29wdGlvbnMvV0lUSE9VVF9CSU5VVElMUworKysg Yi90b29scy9idWlsZC9vcHRpb25zL1dJVEhPVVRfQklOVVRJTFMKQEAgLTEsNSArMSw0IEBACiAu XCIgJEZyZWVCU0QkCi1TZXQgdG8gbm90IGJ1aWxkIG9yIGluc3RhbGwgYmludXRpbHMgKGFzLCBj KystZmlsdCwKLWxkLCBubSwgb2JqY29weSwgb2JqZHVtcCwgcmVhZGVsZiwgc2l6ZSBhbmQgc3Ry aXApIGFzIHBhcnQKK1NldCB0byBub3QgYnVpbGQgb3IgaW5zdGFsbCBiaW51dGlscyAoYXMsIGxk LCBvYmpjb3B5LCBhbmQgb2JqZHVtcCApIGFzIHBhcnQKIG9mIHRoZSBub3JtYWwgc3lzdGVtIGJ1 aWxkLgogVGhlIHJlc3VsdGluZyBzeXN0ZW0gY2Fubm90IGJ1aWxkIHByb2dyYW1zIGZyb20gc291 cmNlLgpkaWZmIC0tZ2l0IGEvdG9vbHMvYnVpbGQvbWsvT3B0aW9uYWxPYnNvbGV0ZUZpbGVzLmlu YyBiL3Rvb2xzL2J1aWxkL21rL09wdGlvbmFsT2Jzb2xldGVGaWxlcy5pbmMKLS0tIGEvdG9vbHMv YnVpbGQvbWsvT3B0aW9uYWxPYnNvbGV0ZUZpbGVzLmluYworKysgYi90b29scy9idWlsZC9tay9P cHRpb25hbE9ic29sZXRlRmlsZXMuaW5jCkBAIC0xMDI1LDkgKzEwMjUsNiBAQAogLmlmICR7TUtf Q1hYfSA9PSBubwogT0xEX0ZJTEVTKz11c3IvYmluL0NDCiBPTERfRklMRVMrPXVzci9iaW4vYysr Ci0uaWYgJHtNS19FTEZUT09MQ0hBSU5fVE9PTFN9ID09IG5vCi1PTERfRklMRVMrPXVzci9iaW4v YysrZmlsdAotLmVuZGlmCiBPTERfRklMRVMrPXVzci9iaW4vZysrCiBPTERfRklMRVMrPXVzci9s aWJleGVjL2NjMXBsdXMKIC5lbmRpZgpAQCAtMTY1NiwxNCArMTY1MywxNiBAQAogT0xEX0ZJTEVT Kz11c3Ivc2hhcmUvbWFuL21hbjEvZWxmY29weS4xLmd6CiAuZW5kaWYKIAotLmlmICR7TUtfRUxG VE9PTENIQUlOX1RPT0xTfSA9PSBubyAmJiAke01LX0JJTlVUSUxTfSA9PSBubworLmlmICR7TUtf RUxGVE9PTENIQUlOX1RPT0xTfSA9PSBubwogT0xEX0ZJTEVTKz11c3IvYmluL2FkZHIybGluZQor T0xEX0ZJTEVTKz11c3IvYmluL2MrK2ZpbHQKIE9MRF9GSUxFUys9dXNyL2Jpbi9ubQogT0xEX0ZJ TEVTKz11c3IvYmluL3JlYWRlbGYKIE9MRF9GSUxFUys9dXNyL2Jpbi9zaXplCiBPTERfRklMRVMr PXVzci9iaW4vc3RyaW5ncwogT0xEX0ZJTEVTKz11c3IvYmluL3N0cmlwCiBPTERfRklMRVMrPXVz ci9zaGFyZS9tYW4vbWFuMS9hZGRyMmxpbmUuMS5negorT0xEX0ZJTEVTKz11c3Ivc2hhcmUvbWFu L21hbjEvYysrZmlsdC4xLmd6CiBPTERfRklMRVMrPXVzci9zaGFyZS9tYW4vbWFuMS9ubS4xLmd6 CiBPTERfRklMRVMrPXVzci9zaGFyZS9tYW4vbWFuMS9yZWFkZWxmLjEuZ3oKIE9MRF9GSUxFUys9 dXNyL3NoYXJlL21hbi9tYW4xL3NpemUuMS5negpAQCAtMTc1Myw5ICsxNzUyLDYgQEAKIC5lbmRp ZgogCiAuaWYgJHtNS19HQ0N9ID09IG5vCi0uaWYgJHtNS19FTEZUT09MQ0hBSU5fVE9PTFN9ID09 IG5vCi1PTERfRklMRVMrPXVzci9iaW4vYysrZmlsdAotLmVuZGlmCiBPTERfRklMRVMrPXVzci9i aW4vZysrCiBPTERfRklMRVMrPXVzci9iaW4vZ2NjCiBPTERfRklMRVMrPXVzci9iaW4vZ2Nvdgpk aWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4vY2MvYysrZmlsdC9NYWtlZmlsZS5kZXBlbmQgYi9nbnUv dXNyLmJpbi9jYy9jKytmaWx0L01ha2VmaWxlLmRlcGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKLS0tIGEvZ251L3Vzci5iaW4vY2MvYysrZmlsdC9NYWtlZmlsZS5kZXBlbmQKKysrIC9kZXYv bnVsbApAQCAtMSwyMyArMCwwIEBACi0jICRGcmVlQlNEJAotIyBBdXRvZ2VuZXJhdGVkIC0gZG8g Tk9UIGVkaXQhCi0KLURFUF9SRUxESVIgOj0gJHtfUEFSU0VESVI6Uywke1NSQ1RPUH0vLCx9Ci0K LURJUkRFUFMgPSBcCi0JZ251L2xpYi9jc3UgXAotCWdudS9saWIvbGliZ2NjIFwKLQlnbnUvdXNy LmJpbi9jYy9jY190b29scyBcCi0JZ251L3Vzci5iaW4vY2MvbGliaWJlcnR5IFwKLQlpbmNsdWRl IFwKLQlpbmNsdWRlL3hsb2NhbGUgXAotCWxpYi8ke0NTVV9ESVJ9IFwKLQlsaWIvbGliYyBcCi0J bGliL2xpYmNfbm9uc2hhcmVkIFwKLQlsaWIvbGliY29tcGlsZXJfcnQgXAotCi0KLS5pbmNsdWRl IDxkaXJkZXBzLm1rPgotCi0uaWYgJHtERVBfUkVMRElSfSA9PSAke19ERVBfUkVMRElSfQotIyBs b2NhbCBkZXBlbmRlbmNpZXMgLSBuZWVkZWQgZm9yIC1qTiBpbiBjbGVhbiB0cmVlCi0uZW5kaWYK ZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2NjL2MrK2ZpbHQvTWFrZWZpbGUgYi9nbnUvdXNyLmJp bi9jYy9jKytmaWx0L01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotLS0gYS9nbnUv dXNyLmJpbi9jYy9jKytmaWx0L01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBA QAotIyAkRnJlZUJTRCQKLQotTUFOPQotLmluY2x1ZGUgPGJzZC5vd24ubWs+Ci0KLS5pbmNsdWRl ICIuLi9NYWtlZmlsZS5pbmMiCi0uaW5jbHVkZSAiLi4vTWFrZWZpbGUuZmUiCi0KLS5QQVRIOiAk e0dDQ0xJQn0vbGliaWJlcnR5Ci0KLVBST0c9CWMrK2ZpbHQKLVNSQ1M9CWNwLWRlbWFuZ2xlLmMK LQotQ0ZMQUdTKz0gLURTVEFOREFMT05FX0RFTUFOR0xFUiAtRFZFUlNJT049XCIkKEdDQ19WRVJT SU9OKVwiCi0KLURQQUREPQkke0xJQklCRVJUWX0KLUxEQUREPQkke0xJQklCRVJUWX0KLQotLmlu Y2x1ZGUgPGJzZC5wcm9nLm1rPgpkaWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4vY2MvTWFrZWZpbGUg Yi9nbnUvdXNyLmJpbi9jYy9NYWtlZmlsZQotLS0gYS9nbnUvdXNyLmJpbi9jYy9NYWtlZmlsZQor KysgYi9nbnUvdXNyLmJpbi9jYy9NYWtlZmlsZQpAQCAtMTMsOSArMTMsNiBAQAogCiAuaWYgJHtN S19DWFh9ICE9ICJubyIKIFNVQkRJUis9IGNjMXBsdXMgYysrCi0uaWYgJHtNS19FTEZUT09MQ0hB SU5fVE9PTFN9ID09ICJubyIKLVNVQkRJUis9IGMrK2ZpbHQKLS5lbmRpZgogLmVuZGlmCiAKIC5p ZiAke01LX0dDT1Z9ICE9ICJubyIKZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2JpbnV0aWxzL3N0 cmlwL3N0cmlwLjEgYi9nbnUvdXNyLmJpbi9iaW51dGlscy9zdHJpcC9zdHJpcC4xCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAotLS0gYS9nbnUvdXNyLmJpbi9iaW51dGlscy9zdHJpcC9zdHJpcC4x CisrKyAvZGV2L251bGwKQEAgLTEsMzkyICswLDAgQEAKLS5cIiAkRnJlZUJTRCQKLS5cIiBBdXRv bWF0aWNhbGx5IGdlbmVyYXRlZCBieSBQb2Q6Ok1hbiAyLjIzIChQb2Q6OlNpbXBsZSAzLjE0KQot LlwiCi0uXCIgU3RhbmRhcmQgcHJlYW1ibGU6Ci0uXCIgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0uZGUgU3Ag XCIgVmVydGljYWwgc3BhY2UgKHdoZW4gd2UgY2FuJ3QgdXNlIC5QUCkKLS5pZiB0IC5zcCAuNXYK LS5pZiBuIC5zcAotLi4KLS5kZSBWYiBcIiBCZWdpbiB2ZXJiYXRpbSB0ZXh0Ci0uZnQgQ1cKLS5u ZgotLm5lIFxcJDEKLS4uCi0uZGUgVmUgXCIgRW5kIHZlcmJhdGltIHRleHQKLS5mdCBSCi0uZmkK LS4uCi0uXCIgU2V0IHVwIHNvbWUgY2hhcmFjdGVyIHRyYW5zbGF0aW9ucyBhbmQgcHJlZGVmaW5l ZCBzdHJpbmdzLiAgXCooLS0gd2lsbAotLlwiIGdpdmUgYW4gdW5icmVha2FibGUgZGFzaCwgXCoo UEkgd2lsbCBnaXZlIHBpLCBcKihMIiB3aWxsIGdpdmUgYSBsZWZ0Ci0uXCIgZG91YmxlIHF1b3Rl LCBhbmQgXCooUiIgd2lsbCBnaXZlIGEgcmlnaHQgZG91YmxlIHF1b3RlLiAgXCooQysgd2lsbAot LlwiIGdpdmUgYSBuaWNlciBDKysuICBDYXBpdGFsIG9tZWdhIGlzIHVzZWQgdG8gZG8gdW5icmVh a2FibGUgZGFzaGVzIGFuZAotLlwiIHRoZXJlZm9yZSB3b24ndCBiZSBhdmFpbGFibGUuICBcKihD YCBhbmQgXCooQycgZXhwYW5kIHRvIGAnIGluIG5yb2ZmLAotLlwiIG5vdGhpbmcgaW4gdHJvZmYs IGZvciB1c2Ugd2l0aCBDPD4uCi0udHIgXCgqVy0KLS5kcyBDKyBDXHYnLS4xdidcaCctMXAnXHMt MitcaCctMXAnK1xzMFx2Jy4xdidcaCctMXAnCi0uaWUgbiBce1wKLS4gICAgZHMgLS0gXCgqVy0K LS4gICAgZHMgUEkgcGkKLS4gICAgaWYgKFxuKC5IPTR1KSYoMW09MjR1KSAuZHMgLS0gXCgqV1xo Jy0xMnUnXCgqV1xoJy0xMnUnLVwiIGRpYWJsbyAxMCBwaXRjaAotLiAgICBpZiAoXG4oLkg9NHUp JigxbT0yMHUpIC5kcyAtLSBcKCpXXGgnLTEydSdcKCpXXGgnLTh1Jy1cIiAgZGlhYmxvIDEyIHBp dGNoCi0uICAgIGRzIEwiICIiCi0uICAgIGRzIFIiICIiCi0uICAgIGRzIENgICIiCi0uICAgIGRz IEMnICIiCi0nYnJcfQotLmVsXHtcCi0uICAgIGRzIC0tIFx8XChlbVx8Ci0uICAgIGRzIFBJIFwo KnAKLS4gICAgZHMgTCIgYGAKLS4gICAgZHMgUiIgJycKLSdiclx9Ci0uXCIKLS5cIiBFc2NhcGUg c2luZ2xlIHF1b3RlcyBpbiBsaXRlcmFsIHN0cmluZ3MgZnJvbSBncm9mZidzIFVuaWNvZGUgdHJh bnNmb3JtLgotLmllIFxuKC5nIC5kcyBBcSBcKGFxCi0uZWwgICAgICAgLmRzIEFxICcKLS5cIgot LlwiIElmIHRoZSBGIHJlZ2lzdGVyIGlzIHR1cm5lZCBvbiwgd2UnbGwgZ2VuZXJhdGUgaW5kZXgg ZW50cmllcyBvbiBzdGRlcnIgZm9yCi0uXCIgdGl0bGVzICguVEgpLCBoZWFkZXJzICguU0gpLCBz dWJzZWN0aW9ucyAoLlNTKSwgaXRlbXMgKC5JcCksIGFuZCBpbmRleAotLlwiIGVudHJpZXMgbWFy a2VkIHdpdGggWDw+IGluIFBPRC4gIE9mIGNvdXJzZSwgeW91J2xsIGhhdmUgdG8gcHJvY2VzcyB0 aGUKLS5cIiBvdXRwdXQgeW91cnNlbGYgaW4gc29tZSBtZWFuaW5nZnVsIGZhc2hpb24uCi0uaWUg XG5GIFx7XAotLiAgICBkZSBJWAotLiAgICB0bSBJbmRleDpcXCQxXHRcXG4lXHQiXFwkMiIKLS4u Ci0uICAgIG5yICUgMAotLiAgICByciBGCi0uXH0KLS5lbCBce1wKLS4gICAgZGUgSVgKLS4uCi0u XH0KLS5cIgotLlwiIEFjY2VudCBtYXJrIGRlZmluaXRpb25zIChAKCMpbXMuYWNjIDEuNSA4OC8w Mi8wOCBTTUk7IGZyb20gVUNCIDQuMikuCi0uXCIgRmVhci4gIFJ1bi4gIFNhdmUgeW91cnNlbGYu ICBObyB1c2VyLXNlcnZpY2VhYmxlIHBhcnRzLgotLiAgICBcIiBmdWRnZSBmYWN0b3JzIGZvciBu cm9mZiBhbmQgdHJvZmYKLS5pZiBuIFx7XAotLiAgICBkcyAjSCAwCi0uICAgIGRzICNWIC44bQot LiAgICBkcyAjRiAuM20KLS4gICAgZHMgI1sgXGYxCi0uICAgIGRzICNdIFxmUAotLlx9Ci0uaWYg dCBce1wKLS4gICAgZHMgI0ggKCgxdS0oXFxcXG4oLmZ1JTJ1KSkqLjEzbSkKLS4gICAgZHMgI1Yg LjZtCi0uICAgIGRzICNGIDAKLS4gICAgZHMgI1sgXCYKLS4gICAgZHMgI10gXCYKLS5cfQotLiAg ICBcIiBzaW1wbGUgYWNjZW50cyBmb3IgbnJvZmYgYW5kIHRyb2ZmCi0uaWYgbiBce1wKLS4gICAg ZHMgJyBcJgotLiAgICBkcyBgIFwmCi0uICAgIGRzIF4gXCYKLS4gICAgZHMgLCBcJgotLiAgICBk cyB+IH4KLS4gICAgZHMgLwotLlx9Ci0uaWYgdCBce1wKLS4gICAgZHMgJyBcXGs6XGgnLShcXG4o Lnd1KjgvMTAtXCooI0gpJ1wnXGgifFxcbjp1IgotLiAgICBkcyBgIFxcazpcaCctKFxcbigud3Uq OC8xMC1cKigjSCknXGBcaCd8XFxuOnUnCi0uICAgIGRzIF4gXFxrOlxoJy0oXFxuKC53dSoxMC8x MS1cKigjSCknXlxoJ3xcXG46dScKLS4gICAgZHMgLCBcXGs6XGgnLShcXG4oLnd1KjgvMTApJyxc aCd8XFxuOnUnCi0uICAgIGRzIH4gXFxrOlxoJy0oXFxuKC53dS1cKigjSC0uMW0pJ35caCd8XFxu OnUnCi0uICAgIGRzIC8gXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKSdcelwoc2xcaCd8XFxu OnUnCi0uXH0KLS4gICAgXCIgdHJvZmYgYW5kIChkYWlzeS13aGVlbCkgbnJvZmYgYWNjZW50cwot LmRzIDogXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKy4xbStcKigjRiknXHYnLVwqKCNWJ1x6 LlxoJy4ybStcKigjRicuXGgnfFxcbjp1J1x2J1wqKCNWJwotLmRzIDggXGgnXCooI0gnXCgqYlxo Jy1cKigjSCcKLS5kcyBvIFxcazpcaCctKFxcbigud3UrXHcnXChkZSd1LVwqKCNIKS8ydSdcdict LjNuJ1wqKCNbXHpcKGRlXHYnLjNuJ1xoJ3xcXG46dSdcKigjXQotLmRzIGQtIFxoJ1wqKCNIJ1wo cGRcaCctXHcnfid1J1x2Jy0uMjVtJ1xmMlwoaHlcZlBcdicuMjVtJ1xoJy1cKigjSCcKLS5kcyBE LSBEXFxrOlxoJy1cdydEJ3UnXHYnLS4xMW0nXHpcKGh5XHYnLjExbSdcaCd8XFxuOnUnCi0uZHMg dGggXCooI1tcdicuM20nXHMrMUlccy0xXHYnLS4zbSdcaCctKFx3J0kndSoyLzMpJ1xzLTFvXHMr MVwqKCNdCi0uZHMgVGggXCooI1tccysySVxzLTJcaCctXHcnSSd1KjMvNSdcdictLjNtJ29cdicu M20nXCooI10KLS5kcyBhZSBhXGgnLShcdydhJ3UqNC8xMCknZQotLmRzIEFlIEFcaCctKFx3J0En dSo0LzEwKSdFCi0uICAgIFwiIGNvcnJlY3Rpb25zIGZvciB2cm9mZgotLmlmIHYgLmRzIH4gXFxr OlxoJy0oXFxuKC53dSo5LzEwLVwqKCNIKSdccy0yXHV+XGRccysyXGgnfFxcbjp1JwotLmlmIHYg LmRzIF4gXFxrOlxoJy0oXFxuKC53dSoxMC8xMS1cKigjSCknXHYnLS40bSdeXHYnLjRtJ1xoJ3xc XG46dScKLS4gICAgXCIgZm9yIGxvdyByZXNvbHV0aW9uIGRldmljZXMgKGNydCBhbmQgbHByKQot LmlmIFxuKC5IPjIzIC5pZiBcbiguVj4xOSBcCi1ce1wKLS4gICAgZHMgOiBlCi0uICAgIGRzIDgg c3MKLS4gICAgZHMgbyBhCi0uICAgIGRzIGQtIGRcaCctMSdcKGdhCi0uICAgIGRzIEQtIERcaCct MSdcKGh5Ci0uICAgIGRzIHRoIFxvJ2JwJwotLiAgICBkcyBUaCBcbydMUCcKLS4gICAgZHMgYWUg YWUKLS4gICAgZHMgQWUgQUUKLS5cfQotLnJtICNbICNdICNIICNWICNGIEMKLS5cIiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS5cIgotLklYIFRpdGxlICJTVFJJUCAxIgotLlRIIFNUUklQIDEgIjIwMTAtMTAt MzAiICJiaW51dGlscy0yLjE3LjUwIiAiR05VIERldmVsb3BtZW50IFRvb2xzIgotLlwiIEZvciBu cm9mZiwgdHVybiBvZmYganVzdGlmaWNhdGlvbi4gIEFsd2F5cyB0dXJuIG9mZiBoeXBoZW5hdGlv bjsgaXQgbWFrZXMKLS5cIiB3YXkgdG9vIG1hbnkgbWlzdGFrZXMgaW4gdGVjaG5pY2FsIGRvY3Vt ZW50cy4KLS5pZiBuIC5hZCBsCi0ubmgKLS5TSCAiTkFNRSIKLXN0cmlwIFwtIERpc2NhcmQgc3lt Ym9scyBmcm9tIG9iamVjdCBmaWxlcwotLlNIICJTWU5PUFNJUyIKLS5JWCBIZWFkZXIgIlNZTk9Q U0lTIgotc3RyaXAgW1xmQlwtRlxmUiBcZkliZmRuYW1lXGZSIHxcZkJcLVwtdGFyZ2V0PVxmUlxm SWJmZG5hbWVcZlJdCi0gICAgICBbXGZCXC1JXGZSIFxmSWJmZG5hbWVcZlIgfFxmQlwtXC1pbnB1 dFwtdGFyZ2V0PVxmUlxmSWJmZG5hbWVcZlJdCi0gICAgICBbXGZCXC1PXGZSIFxmSWJmZG5hbWVc ZlIgfFxmQlwtXC1vdXRwdXRcLXRhcmdldD1cZlJcZkliZmRuYW1lXGZSXQotICAgICAgW1xmQlwt c1xmUnxcZkJcLVwtc3RyaXBcLWFsbFxmUl0KLSAgICAgIFtcZkJcLVNcZlJ8XGZCXC1nXGZSfFxm QlwtZFxmUnxcZkJcLVwtc3RyaXBcLWRlYnVnXGZSXQotICAgICAgW1xmQlwtS1xmUiBcZklzeW1i b2xuYW1lXGZSIHxcZkJcLVwta2VlcFwtc3ltYm9sPVxmUlxmSXN5bWJvbG5hbWVcZlJdCi0gICAg ICBbXGZCXC1OXGZSIFxmSXN5bWJvbG5hbWVcZlIgfFxmQlwtXC1zdHJpcFwtc3ltYm9sPVxmUlxm SXN5bWJvbG5hbWVcZlJdCi0gICAgICBbXGZCXC13XGZSfFxmQlwtXC13aWxkY2FyZFxmUl0KLSAg ICAgIFtcZkJcLXhcZlJ8XGZCXC1cLWRpc2NhcmRcLWFsbFxmUl0gW1xmQlwtWFxmUiB8XGZCXC1c LWRpc2NhcmRcLWxvY2Fsc1xmUl0KLSAgICAgIFtcZkJcLVJcZlIgXGZJc2VjdGlvbm5hbWVcZlIg fFxmQlwtXC1yZW1vdmVcLXNlY3Rpb249XGZSXGZJc2VjdGlvbm5hbWVcZlJdCi0gICAgICBbXGZC XC1vXGZSIFxmSWZpbGVcZlJdIFtcZkJcLXBcZlJ8XGZCXC1cLXByZXNlcnZlXC1kYXRlc1xmUl0K LSAgICAgIFtcZkJcLVwta2VlcFwtZmlsZVwtc3ltYm9sc1xmUl0KLSAgICAgIFtcZkJcLVwtb25s eVwta2VlcFwtZGVidWdcZlJdCi0gICAgICBbXGZCXC12XGZSIHxcZkJcLVwtdmVyYm9zZVxmUl0g W1xmQlwtVlxmUnxcZkJcLVwtdmVyc2lvblxmUl0KLSAgICAgIFtcZkJcLVwtaGVscFxmUl0gW1xm QlwtXC1pbmZvXGZSXQotICAgICAgXGZJb2JqZmlsZVxmUi4uLgotLlNIICJERVNDUklQVElPTiIK LS5JWCBIZWFkZXIgIkRFU0NSSVBUSU9OIgotXCZccy0xR05VXHMwIFxmQnN0cmlwXGZSIGRpc2Nh cmRzIGFsbCBzeW1ib2xzIGZyb20gb2JqZWN0IGZpbGVzCi1cJlxmSW9iamZpbGVcZlIuICBUaGUg bGlzdCBvZiBvYmplY3QgZmlsZXMgbWF5IGluY2x1ZGUgYXJjaGl2ZXMuCi1BdCBsZWFzdCBvbmUg b2JqZWN0IGZpbGUgbXVzdCBiZSBnaXZlbi4KLS5QUAotXCZcZkJzdHJpcFxmUiBtb2RpZmllcyB0 aGUgZmlsZXMgbmFtZWQgaW4gaXRzIGFyZ3VtZW50LAotcmF0aGVyIHRoYW4gd3JpdGluZyBtb2Rp ZmllZCBjb3BpZXMgdW5kZXIgZGlmZmVyZW50IG5hbWVzLgotLlNIICJPUFRJT05TIgotLklYIEhl YWRlciAiT1BUSU9OUyIKLS5JUCAiXGZCXC1GXGZSIFxmSWJmZG5hbWVcZlIiIDQKLS5JWCBJdGVt ICItRiBiZmRuYW1lIgotLlBEIDAKLS5JUCAiXGZCXC1cLXRhcmdldD1cZlJcZkliZmRuYW1lXGZS IiA0Ci0uSVggSXRlbSAiLS10YXJnZXQ9YmZkbmFtZSIKLS5QRAotVHJlYXQgdGhlIG9yaWdpbmFs IFxmSW9iamZpbGVcZlIgYXMgYSBmaWxlIHdpdGggdGhlIG9iamVjdAotY29kZSBmb3JtYXQgXGZJ YmZkbmFtZVxmUiwgYW5kIHJld3JpdGUgaXQgaW4gdGhlIHNhbWUgZm9ybWF0LgotLklQICJcZkJc LVwtaGVscFxmUiIgNAotLklYIEl0ZW0gIi0taGVscCIKLVNob3cgYSBzdW1tYXJ5IG9mIHRoZSBv cHRpb25zIHRvIFxmQnN0cmlwXGZSIGFuZCBleGl0LgotLklQICJcZkJcLVwtaW5mb1xmUiIgNAot LklYIEl0ZW0gIi0taW5mbyIKLURpc3BsYXkgYSBsaXN0IHNob3dpbmcgYWxsIGFyY2hpdGVjdHVy ZXMgYW5kIG9iamVjdCBmb3JtYXRzIGF2YWlsYWJsZS4KLS5JUCAiXGZCXC1JXGZSIFxmSWJmZG5h bWVcZlIiIDQKLS5JWCBJdGVtICItSSBiZmRuYW1lIgotLlBEIDAKLS5JUCAiXGZCXC1cLWlucHV0 XC10YXJnZXQ9XGZSXGZJYmZkbmFtZVxmUiIgNAotLklYIEl0ZW0gIi0taW5wdXQtdGFyZ2V0PWJm ZG5hbWUiCi0uUEQKLVRyZWF0IHRoZSBvcmlnaW5hbCBcZklvYmpmaWxlXGZSIGFzIGEgZmlsZSB3 aXRoIHRoZSBvYmplY3QKLWNvZGUgZm9ybWF0IFxmSWJmZG5hbWVcZlIuCi0uSVAgIlxmQlwtT1xm UiBcZkliZmRuYW1lXGZSIiA0Ci0uSVggSXRlbSAiLU8gYmZkbmFtZSIKLS5QRCAwCi0uSVAgIlxm QlwtXC1vdXRwdXRcLXRhcmdldD1cZlJcZkliZmRuYW1lXGZSIiA0Ci0uSVggSXRlbSAiLS1vdXRw dXQtdGFyZ2V0PWJmZG5hbWUiCi0uUEQKLVJlcGxhY2UgXGZJb2JqZmlsZVxmUiB3aXRoIGEgZmls ZSBpbiB0aGUgb3V0cHV0IGZvcm1hdCBcZkliZmRuYW1lXGZSLgotLklQICJcZkJcLVJcZlIgXGZJ c2VjdGlvbm5hbWVcZlIiIDQKLS5JWCBJdGVtICItUiBzZWN0aW9ubmFtZSIKLS5QRCAwCi0uSVAg IlxmQlwtXC1yZW1vdmVcLXNlY3Rpb249XGZSXGZJc2VjdGlvbm5hbWVcZlIiIDQKLS5JWCBJdGVt ICItLXJlbW92ZS1zZWN0aW9uPXNlY3Rpb25uYW1lIgotLlBECi1SZW1vdmUgYW55IHNlY3Rpb24g bmFtZWQgXGZJc2VjdGlvbm5hbWVcZlIgZnJvbSB0aGUgb3V0cHV0IGZpbGUuICBUaGlzCi1vcHRp b24gbWF5IGJlIGdpdmVuIG1vcmUgdGhhbiBvbmNlLiAgTm90ZSB0aGF0IHVzaW5nIHRoaXMgb3B0 aW9uCi1pbmFwcHJvcHJpYXRlbHkgbWF5IG1ha2UgdGhlIG91dHB1dCBmaWxlIHVudXNhYmxlLgot LklQICJcZkJcLXNcZlIiIDQKLS5JWCBJdGVtICItcyIKLS5QRCAwCi0uSVAgIlxmQlwtXC1zdHJp cFwtYWxsXGZSIiA0Ci0uSVggSXRlbSAiLS1zdHJpcC1hbGwiCi0uUEQKLVJlbW92ZSBhbGwgc3lt Ym9scy4KLS5JUCAiXGZCXC1nXGZSIiA0Ci0uSVggSXRlbSAiLWciCi0uUEQgMAotLklQICJcZkJc LVNcZlIiIDQKLS5JWCBJdGVtICItUyIKLS5JUCAiXGZCXC1kXGZSIiA0Ci0uSVggSXRlbSAiLWQi Ci0uSVAgIlxmQlwtXC1zdHJpcFwtZGVidWdcZlIiIDQKLS5JWCBJdGVtICItLXN0cmlwLWRlYnVn IgotLlBECi1SZW1vdmUgZGVidWdnaW5nIHN5bWJvbHMgb25seS4KLS5JUCAiXGZCXC1cLXN0cmlw XC11bm5lZWRlZFxmUiIgNAotLklYIEl0ZW0gIi0tc3RyaXAtdW5uZWVkZWQiCi1SZW1vdmUgYWxs IHN5bWJvbHMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgcmVsb2NhdGlvbiBwcm9jZXNzaW5nLgot LklQICJcZkJcLUtcZlIgXGZJc3ltYm9sbmFtZVxmUiIgNAotLklYIEl0ZW0gIi1LIHN5bWJvbG5h bWUiCi0uUEQgMAotLklQICJcZkJcLVwta2VlcFwtc3ltYm9sPVxmUlxmSXN5bWJvbG5hbWVcZlIi IDQKLS5JWCBJdGVtICItLWtlZXAtc3ltYm9sPXN5bWJvbG5hbWUiCi0uUEQKLVdoZW4gc3RyaXBw aW5nIHN5bWJvbHMsIGtlZXAgc3ltYm9sIFxmSXN5bWJvbG5hbWVcZlIgZXZlbiBpZiBpdCB3b3Vs ZAotbm9ybWFsbHkgYmUgc3RyaXBwZWQuICBUaGlzIG9wdGlvbiBtYXkgYmUgZ2l2ZW4gbW9yZSB0 aGFuIG9uY2UuCi0uSVAgIlxmQlwtTlxmUiBcZklzeW1ib2xuYW1lXGZSIiA0Ci0uSVggSXRlbSAi LU4gc3ltYm9sbmFtZSIKLS5QRCAwCi0uSVAgIlxmQlwtXC1zdHJpcFwtc3ltYm9sPVxmUlxmSXN5 bWJvbG5hbWVcZlIiIDQKLS5JWCBJdGVtICItLXN0cmlwLXN5bWJvbD1zeW1ib2xuYW1lIgotLlBE Ci1SZW1vdmUgc3ltYm9sIFxmSXN5bWJvbG5hbWVcZlIgZnJvbSB0aGUgc291cmNlIGZpbGUuIFRo aXMgb3B0aW9uIG1heSBiZQotZ2l2ZW4gbW9yZSB0aGFuIG9uY2UsIGFuZCBtYXkgYmUgY29tYmlu ZWQgd2l0aCBzdHJpcCBvcHRpb25zIG90aGVyIHRoYW4KLVwmXGZCXC1LXGZSLgotLklQICJcZkJc LW9cZlIgXGZJZmlsZVxmUiIgNAotLklYIEl0ZW0gIi1vIGZpbGUiCi1QdXQgdGhlIHN0cmlwcGVk IG91dHB1dCBpbiBcZklmaWxlXGZSLCByYXRoZXIgdGhhbiByZXBsYWNpbmcgdGhlCi1leGlzdGlu ZyBmaWxlLiAgV2hlbiB0aGlzIGFyZ3VtZW50IGlzIHVzZWQsIG9ubHkgb25lIFxmSW9iamZpbGVc ZlIKLWFyZ3VtZW50IG1heSBiZSBzcGVjaWZpZWQuCi0uSVAgIlxmQlwtcFxmUiIgNAotLklYIEl0 ZW0gIi1wIgotLlBEIDAKLS5JUCAiXGZCXC1cLXByZXNlcnZlXC1kYXRlc1xmUiIgNAotLklYIEl0 ZW0gIi0tcHJlc2VydmUtZGF0ZXMiCi0uUEQKLVByZXNlcnZlIHRoZSBhY2Nlc3MgYW5kIG1vZGlm aWNhdGlvbiBkYXRlcyBvZiB0aGUgZmlsZS4KLS5JUCAiXGZCXC13XGZSIiA0Ci0uSVggSXRlbSAi LXciCi0uUEQgMAotLklQICJcZkJcLVwtd2lsZGNhcmRcZlIiIDQKLS5JWCBJdGVtICItLXdpbGRj YXJkIgotLlBECi1QZXJtaXQgcmVndWxhciBleHByZXNzaW9ucyBpbiBcZklzeW1ib2xuYW1lXGZS cyB1c2VkIGluIG90aGVyIGNvbW1hbmQKLWxpbmUgb3B0aW9ucy4gIFRoZSBxdWVzdGlvbiBtYXJr ICg/KSwgYXN0ZXJpc2sgKCopLCBiYWNrc2xhc2ggKFxlKSBhbmQKLXNxdWFyZSBicmFja2V0cyAo W10pIG9wZXJhdG9ycyBjYW4gYmUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgc3ltYm9sCi1uYW1lLiAg SWYgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgc3ltYm9sIG5hbWUgaXMgdGhlIGV4Y2xhbWF0 aW9uCi1wb2ludCAoISkgdGhlbiB0aGUgc2Vuc2Ugb2YgdGhlIHN3aXRjaCBpcyByZXZlcnNlZCBm b3IgdGhhdCBzeW1ib2wuCi1Gb3IgZXhhbXBsZToKLS5TcAotLlZiIDEKLVwmICAgICAgICAgIFwt dyBcLUsgIWZvbyBcLUsgZm8qCi0uVmUKLS5TcAotd291bGQgY2F1c2Ugc3RyaXAgdG8gb25seSBr ZWVwIHN5bWJvbHMgdGhhdCBzdGFydCB3aXRoIHRoZSBsZXR0ZXJzCi1cJlwqKEwiZm9cKihSIiwg YnV0IHRvIGRpc2NhcmQgdGhlIHN5bWJvbCBcKihMImZvb1wqKFIiLgotLklQICJcZkJcLXhcZlIi IDQKLS5JWCBJdGVtICIteCIKLS5QRCAwCi0uSVAgIlxmQlwtXC1kaXNjYXJkXC1hbGxcZlIiIDQK LS5JWCBJdGVtICItLWRpc2NhcmQtYWxsIgotLlBECi1SZW1vdmUgbm9uLWdsb2JhbCBzeW1ib2xz LgotLklQICJcZkJcLVhcZlIiIDQKLS5JWCBJdGVtICItWCIKLS5QRCAwCi0uSVAgIlxmQlwtXC1k aXNjYXJkXC1sb2NhbHNcZlIiIDQKLS5JWCBJdGVtICItLWRpc2NhcmQtbG9jYWxzIgotLlBECi1S ZW1vdmUgY29tcGlsZXItZ2VuZXJhdGVkIGxvY2FsIHN5bWJvbHMuCi0oVGhlc2UgdXN1YWxseSBz dGFydCB3aXRoIFxmQkxcZlIgb3IgXGZCLlxmUi4pCi0uSVAgIlxmQlwtXC1rZWVwXC1maWxlXC1z eW1ib2xzXGZSIiA0Ci0uSVggSXRlbSAiLS1rZWVwLWZpbGUtc3ltYm9scyIKLVdoZW4gc3RyaXBw aW5nIGEgZmlsZSwgcGVyaGFwcyB3aXRoIFxmQlwtXC1zdHJpcFwtZGVidWdcZlIgb3IKLVwmXGZC XC1cLXN0cmlwXC11bm5lZWRlZFxmUiwgcmV0YWluIGFueSBzeW1ib2xzIHNwZWNpZnlpbmcgc291 cmNlIGZpbGUgbmFtZXMsCi13aGljaCB3b3VsZCBvdGhlcndpc2UgZ2V0IHN0cmlwcGVkLgotLklQ ICJcZkJcLVwtb25seVwta2VlcFwtZGVidWdcZlIiIDQKLS5JWCBJdGVtICItLW9ubHkta2VlcC1k ZWJ1ZyIKLVN0cmlwIGEgZmlsZSwgcmVtb3ZpbmcgY29udGVudHMgb2YgYW55IHNlY3Rpb25zIHRo YXQgd291bGQgbm90IGJlCi1zdHJpcHBlZCBieSBcZkJcLVwtc3RyaXBcLWRlYnVnXGZSIGFuZCBs ZWF2aW5nIHRoZSBkZWJ1Z2dpbmcgc2VjdGlvbnMKLWludGFjdC4gIEluIFxzLTFFTEZcczAgZmls ZXMsIHRoaXMgcHJlc2VydmVzIGFsbCBub3RlIHNlY3Rpb25zIGluIHRoZSBvdXRwdXQuCi0uU3AK LVRoZSBpbnRlbnRpb24gaXMgdGhhdCB0aGlzIG9wdGlvbiB3aWxsIGJlIHVzZWQgaW4gY29uanVu Y3Rpb24gd2l0aAotXCZcZkJcLVwtYWRkXC1nbnVcLWRlYnVnbGlua1xmUiB0byBjcmVhdGUgYSB0 d28gcGFydCBleGVjdXRhYmxlLiAgT25lIGEKLXN0cmlwcGVkIGJpbmFyeSB3aGljaCB3aWxsIG9j Y3VweSBsZXNzIHNwYWNlIGluIFxzLTFSQU1cczAgYW5kIGluIGEKLWRpc3RyaWJ1dGlvbiBhbmQg dGhlIHNlY29uZCBhIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmaWxlIHdoaWNoIGlzIG9ubHkKLW5l ZWRlZCBpZiBkZWJ1Z2dpbmcgYWJpbGl0aWVzIGFyZSByZXF1aXJlZC4gIFRoZSBzdWdnZXN0ZWQg cHJvY2VkdXJlCi10byBjcmVhdGUgdGhlc2UgZmlsZXMgaXMgYXMgZm9sbG93czoKLS5SUyA0Ci0u SVAgIjEuPExpbmsgdGhlIGV4ZWN1dGFibGUgYXMgbm9ybWFsLiAgQXNzdW1pbmcgdGhhdCBpdCBp cyBjYWxsZWQ+IiA0Ci0uSVggSXRlbSAiMS48TGluayB0aGUgZXhlY3V0YWJsZSBhcyBub3JtYWwu ICBBc3N1bWluZyB0aGF0IGl0IGlzIGNhbGxlZD4iCi1cJlxmKENXXCooQ2Bmb29cKihDJ1xmUiB0 aGVuLi4uCi0uaWUgbiAuSVAgIjEuPFJ1biAiIm9iamNvcHkgXC1cLW9ubHlcLWtlZXBcLWRlYnVn IGZvbyBmb28uZGJnIiIgdG8+IiA0Ci0uZWwgLklQICIxLjxSdW4gXGYoQ1dvYmpjb3B5IFwtXC1v bmx5XC1rZWVwXC1kZWJ1ZyBmb28gZm9vLmRiZ1xmUiB0bz4iIDQKLS5JWCBJdGVtICIxLjxSdW4g b2JqY29weSAtLW9ubHkta2VlcC1kZWJ1ZyBmb28gZm9vLmRiZyB0bz4iCi1jcmVhdGUgYSBmaWxl IGNvbnRhaW5pbmcgdGhlIGRlYnVnZ2luZyBpbmZvLgotLmllIG4gLklQICIxLjxSdW4gIiJvYmpj b3B5IFwtXC1zdHJpcFwtZGVidWcgZm9vIiIgdG8gY3JlYXRlIGE+IiA0Ci0uZWwgLklQICIxLjxS dW4gXGYoQ1dvYmpjb3B5IFwtXC1zdHJpcFwtZGVidWcgZm9vXGZSIHRvIGNyZWF0ZSBhPiIgNAot LklYIEl0ZW0gIjEuPFJ1biBvYmpjb3B5IC0tc3RyaXAtZGVidWcgZm9vIHRvIGNyZWF0ZSBhPiIK LXN0cmlwcGVkIGV4ZWN1dGFibGUuCi0uaWUgbiAuSVAgIjEuPFJ1biAiIm9iamNvcHkgXC1cLWFk ZFwtZ251XC1kZWJ1Z2xpbms9Zm9vLmRiZyBmb28iIj4iIDQKLS5lbCAuSVAgIjEuPFJ1biBcZihD V29iamNvcHkgXC1cLWFkZFwtZ251XC1kZWJ1Z2xpbms9Zm9vLmRiZyBmb29cZlI+IiA0Ci0uSVgg SXRlbSAiMS48UnVuIG9iamNvcHkgLS1hZGQtZ251LWRlYnVnbGluaz1mb28uZGJnIGZvbz4iCi10 byBhZGQgYSBsaW5rIHRvIHRoZSBkZWJ1Z2dpbmcgaW5mbyBpbnRvIHRoZSBzdHJpcHBlZCBleGVj dXRhYmxlLgotLlJFCi0uUlMgNAotLlNwCi1Ob3RlIFwtIHRoZSBjaG9pY2Ugb2YgXGYoQ1dcKihD YC5kYmdcKihDJ1xmUiBhcyBhbiBleHRlbnNpb24gZm9yIHRoZSBkZWJ1ZyBpbmZvCi1maWxlIGlz IGFyYml0cmFyeS4gIEFsc28gdGhlIFxmKENXXCooQ2BcLVwtb25seVwta2VlcFwtZGVidWdcKihD J1xmUiBzdGVwIGlzCi1vcHRpb25hbC4gIFlvdSBjb3VsZCBpbnN0ZWFkIGRvIHRoaXM6Ci0uSVAg IjEuPExpbmsgdGhlIGV4ZWN1dGFibGUgYXMgbm9ybWFsLj4iIDQKLS5JWCBJdGVtICIxLjxMaW5r IHRoZSBleGVjdXRhYmxlIGFzIG5vcm1hbC4+IgotLlBEIDAKLS5pZSBuIC5JUCAiMS48Q29weSAi ImZvbyIiIHRvICAiImZvby5mdWxsIiI+IiA0Ci0uZWwgLklQICIxLjxDb3B5IFxmKENXZm9vXGZS IHRvICBcZihDV2Zvby5mdWxsXGZSPiIgNAotLklYIEl0ZW0gIjEuPENvcHkgZm9vIHRvICBmb28u ZnVsbD4iCi0uaWUgbiAuSVAgIjEuPFJ1biAiInN0cmlwIFwtXC1zdHJpcFwtZGVidWcgZm9vIiI+ IiA0Ci0uZWwgLklQICIxLjxSdW4gXGYoQ1dzdHJpcCBcLVwtc3RyaXBcLWRlYnVnIGZvb1xmUj4i IDQKLS5JWCBJdGVtICIxLjxSdW4gc3RyaXAgLS1zdHJpcC1kZWJ1ZyBmb28+IgotLmllIG4gLklQ ICIxLjxSdW4gIiJvYmpjb3B5IFwtXC1hZGRcLWdudVwtZGVidWdsaW5rPWZvby5mdWxsIGZvbyIi PiIgNAotLmVsIC5JUCAiMS48UnVuIFxmKENXb2JqY29weSBcLVwtYWRkXC1nbnVcLWRlYnVnbGlu az1mb28uZnVsbCBmb29cZlI+IiA0Ci0uSVggSXRlbSAiMS48UnVuIG9iamNvcHkgLS1hZGQtZ251 LWRlYnVnbGluaz1mb28uZnVsbCBmb28+IgotLlJFCi0uUlMgNAotLlBECi0uU3AKLWllIHRoZSBm aWxlIHBvaW50ZWQgdG8gYnkgdGhlIFxmQlwtXC1hZGRcLWdudVwtZGVidWdsaW5rXGZSIGNhbiBi ZSB0aGUKLWZ1bGwgZXhlY3V0YWJsZS4gIEl0IGRvZXMgbm90IGhhdmUgdG8gYmUgYSBmaWxlIGNy ZWF0ZWQgYnkgdGhlCi1cJlxmQlwtXC1vbmx5XC1rZWVwXC1kZWJ1Z1xmUiBzd2l0Y2guCi0uU3AK LU5vdGUgXC0gdGhpcyBzd2l0Y2ggaXMgb25seSBpbnRlbmRlZCBmb3IgdXNlIG9uIGZ1bGx5IGxp bmtlZCBmaWxlcy4gIEl0Ci1kb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHVzZSBpdCBvbiBvYmplY3Qg ZmlsZXMgd2hlcmUgdGhlIGRlYnVnZ2luZwotaW5mb3JtYXRpb24gbWF5IGJlIGluY29tcGxldGUu ICBCZXNpZGVzIHRoZSBnbnVfZGVidWdsaW5rIGZlYXR1cmUKLWN1cnJlbnRseSBvbmx5IHN1cHBv cnRzIHRoZSBwcmVzZW5jZSBvZiBvbmUgZmlsZW5hbWUgY29udGFpbmluZwotZGVidWdnaW5nIGlu Zm9ybWF0aW9uLCBub3QgbXVsdGlwbGUgZmlsZW5hbWVzIG9uIGEgb25lLXBlci1vYmplY3QtZmls ZQotYmFzaXMuCi0uUkUKLS5JUCAiXGZCXC1WXGZSIiA0Ci0uSVggSXRlbSAiLVYiCi0uUEQgMAot LklQICJcZkJcLVwtdmVyc2lvblxmUiIgNAotLklYIEl0ZW0gIi0tdmVyc2lvbiIKLS5QRAotU2hv dyB0aGUgdmVyc2lvbiBudW1iZXIgZm9yIFxmQnN0cmlwXGZSLgotLklQICJcZkJcLXZcZlIiIDQK LS5JWCBJdGVtICItdiIKLS5QRCAwCi0uSVAgIlxmQlwtXC12ZXJib3NlXGZSIiA0Ci0uSVggSXRl bSAiLS12ZXJib3NlIgotLlBECi1WZXJib3NlIG91dHB1dDogbGlzdCBhbGwgb2JqZWN0IGZpbGVz IG1vZGlmaWVkLiAgSW4gdGhlIGNhc2Ugb2YKLWFyY2hpdmVzLCBcZkJzdHJpcCBcLXZcZlIgbGlz dHMgYWxsIG1lbWJlcnMgb2YgdGhlIGFyY2hpdmUuCi0uSVAgIlxmQkBcZlJcZklmaWxlXGZSIiA0 Ci0uSVggSXRlbSAiQGZpbGUiCi1SZWFkIGNvbW1hbmQtbGluZSBvcHRpb25zIGZyb20gXGZJZmls ZVxmUi4gIFRoZSBvcHRpb25zIHJlYWQgYXJlCi1pbnNlcnRlZCBpbiBwbGFjZSBvZiB0aGUgb3Jp Z2luYWwgQFxmSWZpbGVcZlIgb3B0aW9uLiAgSWYgXGZJZmlsZVxmUgotZG9lcyBub3QgZXhpc3Qs IG9yIGNhbm5vdCBiZSByZWFkLCB0aGVuIHRoZSBvcHRpb24gd2lsbCBiZSB0cmVhdGVkCi1saXRl cmFsbHksIGFuZCBub3QgcmVtb3ZlZC4KLS5TcAotT3B0aW9ucyBpbiBcZklmaWxlXGZSIGFyZSBz ZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gIEEgd2hpdGVzcGFjZQotY2hhcmFjdGVyIG1heSBiZSBp bmNsdWRlZCBpbiBhbiBvcHRpb24gYnkgc3Vycm91bmRpbmcgdGhlIGVudGlyZQotb3B0aW9uIGlu IGVpdGhlciBzaW5nbGUgb3IgZG91YmxlIHF1b3Rlcy4gIEFueSBjaGFyYWN0ZXIgKGluY2x1ZGlu ZyBhCi1iYWNrc2xhc2gpIG1heSBiZSBpbmNsdWRlZCBieSBwcmVmaXhpbmcgdGhlIGNoYXJhY3Rl ciB0byBiZSBpbmNsdWRlZAotd2l0aCBhIGJhY2tzbGFzaC4gIFRoZSBcZklmaWxlXGZSIG1heSBp dHNlbGYgY29udGFpbiBhZGRpdGlvbmFsCi1AXGZJZmlsZVxmUiBvcHRpb25zOyBhbnkgc3VjaCBv cHRpb25zIHdpbGwgYmUgcHJvY2Vzc2VkIHJlY3Vyc2l2ZWx5LgotLlNIICJTRUUgQUxTTyIKLS5J WCBIZWFkZXIgIlNFRSBBTFNPIgotdGhlIEluZm8gZW50cmllcyBmb3IgXGZJYmludXRpbHNcZlIu Ci0uU0ggIkNPUFlSSUdIVCIKLS5JWCBIZWFkZXIgIkNPUFlSSUdIVCIKLUNvcHlyaWdodCAoYykg MTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLTIw MDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0uUFAKLVBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBk aXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1bWVudAotdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBccy0xR05VXHMwIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMQot b3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247Ci13aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgd2l0aCBubyBGcm9udC1Db3ZlciBU ZXh0cywgYW5kIHdpdGggbm8KLUJhY2stQ292ZXIgVGV4dHMuICBBIGNvcHkgb2YgdGhlIGxpY2Vu c2UgaXMgaW5jbHVkZWQgaW4gdGhlCi1zZWN0aW9uIGVudGl0bGVkIFwqKEwiXHMtMUdOVVxzMCBG cmVlIERvY3VtZW50YXRpb24gTGljZW5zZVwqKFIiLgpkaWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4v YmludXRpbHMvc3RyaXAvTWFrZWZpbGUuZGVwZW5kIGIvZ251L3Vzci5iaW4vYmludXRpbHMvc3Ry aXAvTWFrZWZpbGUuZGVwZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotLS0gYS9nbnUvdXNy LmJpbi9iaW51dGlscy9zdHJpcC9NYWtlZmlsZS5kZXBlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwy MSArMCwwIEBACi0jICRGcmVlQlNEJAotIyBBdXRvZ2VuZXJhdGVkIC0gZG8gTk9UIGVkaXQhCi0K LURJUkRFUFMgPSBcCi0JZ251L2xpYi9jc3UgXAotCWdudS9saWIvbGliZ2NjIFwKLQlnbnUvdXNy LmJpbi9iaW51dGlscy9saWJiZmQgXAotCWdudS91c3IuYmluL2JpbnV0aWxzL2xpYmJpbnV0aWxz IFwKLQlnbnUvdXNyLmJpbi9iaW51dGlscy9saWJpYmVydHkgXAotCWluY2x1ZGUgXAotCWluY2x1 ZGUveGxvY2FsZSBcCi0JbGliLyR7Q1NVX0RJUn0gXAotCWxpYi9saWJjIFwKLQlsaWIvbGliY29t cGlsZXJfcnQgXAotCi0KLS5pbmNsdWRlIDxkaXJkZXBzLm1rPgotCi0uaWYgJHtERVBfUkVMRElS fSA9PSAke19ERVBfUkVMRElSfQotIyBsb2NhbCBkZXBlbmRlbmNpZXMgLSBuZWVkZWQgZm9yIC1q TiBpbiBjbGVhbiB0cmVlCi0uZW5kaWYKZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2JpbnV0aWxz L3N0cmlwL01ha2VmaWxlIGIvZ251L3Vzci5iaW4vYmludXRpbHMvc3RyaXAvTWFrZWZpbGUKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL3N0cmlwL01h a2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotIyAkRnJlZUJTRCQKLQotLmlu Y2x1ZGUgIi4uL01ha2VmaWxlLmluYzAiCi0KLS5QQVRIOiAke1NSQ0RJUn0vYmludXRpbHMgJHtT UkNESVJ9L2JpbnV0aWxzL2RvYwotCi1QUk9HPQlzdHJpcAotU1JDUz0Jb2JqY29weS5jIGlzLXN0 cmlwLmMKLUNGTEFHUys9IC1EX0dOVV9TT1VSQ0UKLUNGTEFHUys9IC1JJHsuQ1VSRElSfS8ke1JF TFRPUH0vbGliYmludXRpbHMKLUNGTEFHUys9IC1JJHtTUkNESVJ9L2JpbnV0aWxzIC1JJHtTUkNE SVJ9L2JmZAotRFBBREQ9CSR7UkVMVE9QfS9saWJiaW51dGlscy9saWJiaW51dGlscy5hCi1EUEFE RCs9CSR7UkVMVE9QfS9saWJiZmQvbGliYmZkLmEKLURQQUREKz0JJHtSRUxUT1B9L2xpYmliZXJ0 eS9saWJpYmVydHkuYQotTERBREQ9CSR7RFBBRER9Ci1JTlNUQUxMRkxBR1M9IC1TCi0KLS5pbmNs dWRlIDxic2QucHJvZy5taz4KZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2JpbnV0aWxzL3N0cmlu Z3Mvc3RyaW5ncy4xIGIvZ251L3Vzci5iaW4vYmludXRpbHMvc3RyaW5ncy9zdHJpbmdzLjEKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL3N0cmluZ3Mv c3RyaW5ncy4xCisrKyAvZGV2L251bGwKQEAgLTEsMjU0ICswLDAgQEAKLS5cIiAkRnJlZUJTRCQK LS5cIiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBQb2Q6Ok1hbiAyLjIzIChQb2Q6OlNpbXBs ZSAzLjE0KQotLlwiCi0uXCIgU3RhbmRhcmQgcHJlYW1ibGU6Ci0uXCIgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0uZGUgU3AgXCIgVmVydGljYWwgc3BhY2UgKHdoZW4gd2UgY2FuJ3QgdXNlIC5QUCkKLS5pZiB0 IC5zcCAuNXYKLS5pZiBuIC5zcAotLi4KLS5kZSBWYiBcIiBCZWdpbiB2ZXJiYXRpbSB0ZXh0Ci0u ZnQgQ1cKLS5uZgotLm5lIFxcJDEKLS4uCi0uZGUgVmUgXCIgRW5kIHZlcmJhdGltIHRleHQKLS5m dCBSCi0uZmkKLS4uCi0uXCIgU2V0IHVwIHNvbWUgY2hhcmFjdGVyIHRyYW5zbGF0aW9ucyBhbmQg cHJlZGVmaW5lZCBzdHJpbmdzLiAgXCooLS0gd2lsbAotLlwiIGdpdmUgYW4gdW5icmVha2FibGUg ZGFzaCwgXCooUEkgd2lsbCBnaXZlIHBpLCBcKihMIiB3aWxsIGdpdmUgYSBsZWZ0Ci0uXCIgZG91 YmxlIHF1b3RlLCBhbmQgXCooUiIgd2lsbCBnaXZlIGEgcmlnaHQgZG91YmxlIHF1b3RlLiAgXCoo Qysgd2lsbAotLlwiIGdpdmUgYSBuaWNlciBDKysuICBDYXBpdGFsIG9tZWdhIGlzIHVzZWQgdG8g ZG8gdW5icmVha2FibGUgZGFzaGVzIGFuZAotLlwiIHRoZXJlZm9yZSB3b24ndCBiZSBhdmFpbGFi bGUuICBcKihDYCBhbmQgXCooQycgZXhwYW5kIHRvIGAnIGluIG5yb2ZmLAotLlwiIG5vdGhpbmcg aW4gdHJvZmYsIGZvciB1c2Ugd2l0aCBDPD4uCi0udHIgXCgqVy0KLS5kcyBDKyBDXHYnLS4xdidc aCctMXAnXHMtMitcaCctMXAnK1xzMFx2Jy4xdidcaCctMXAnCi0uaWUgbiBce1wKLS4gICAgZHMg LS0gXCgqVy0KLS4gICAgZHMgUEkgcGkKLS4gICAgaWYgKFxuKC5IPTR1KSYoMW09MjR1KSAuZHMg LS0gXCgqV1xoJy0xMnUnXCgqV1xoJy0xMnUnLVwiIGRpYWJsbyAxMCBwaXRjaAotLiAgICBpZiAo XG4oLkg9NHUpJigxbT0yMHUpIC5kcyAtLSBcKCpXXGgnLTEydSdcKCpXXGgnLTh1Jy1cIiAgZGlh YmxvIDEyIHBpdGNoCi0uICAgIGRzIEwiICIiCi0uICAgIGRzIFIiICIiCi0uICAgIGRzIENgICIi Ci0uICAgIGRzIEMnICIiCi0nYnJcfQotLmVsXHtcCi0uICAgIGRzIC0tIFx8XChlbVx8Ci0uICAg IGRzIFBJIFwoKnAKLS4gICAgZHMgTCIgYGAKLS4gICAgZHMgUiIgJycKLSdiclx9Ci0uXCIKLS5c IiBFc2NhcGUgc2luZ2xlIHF1b3RlcyBpbiBsaXRlcmFsIHN0cmluZ3MgZnJvbSBncm9mZidzIFVu aWNvZGUgdHJhbnNmb3JtLgotLmllIFxuKC5nIC5kcyBBcSBcKGFxCi0uZWwgICAgICAgLmRzIEFx ICcKLS5cIgotLlwiIElmIHRoZSBGIHJlZ2lzdGVyIGlzIHR1cm5lZCBvbiwgd2UnbGwgZ2VuZXJh dGUgaW5kZXggZW50cmllcyBvbiBzdGRlcnIgZm9yCi0uXCIgdGl0bGVzICguVEgpLCBoZWFkZXJz ICguU0gpLCBzdWJzZWN0aW9ucyAoLlNTKSwgaXRlbXMgKC5JcCksIGFuZCBpbmRleAotLlwiIGVu dHJpZXMgbWFya2VkIHdpdGggWDw+IGluIFBPRC4gIE9mIGNvdXJzZSwgeW91J2xsIGhhdmUgdG8g cHJvY2VzcyB0aGUKLS5cIiBvdXRwdXQgeW91cnNlbGYgaW4gc29tZSBtZWFuaW5nZnVsIGZhc2hp b24uCi0uaWUgXG5GIFx7XAotLiAgICBkZSBJWAotLiAgICB0bSBJbmRleDpcXCQxXHRcXG4lXHQi XFwkMiIKLS4uCi0uICAgIG5yICUgMAotLiAgICByciBGCi0uXH0KLS5lbCBce1wKLS4gICAgZGUg SVgKLS4uCi0uXH0KLS5cIgotLlwiIEFjY2VudCBtYXJrIGRlZmluaXRpb25zIChAKCMpbXMuYWNj IDEuNSA4OC8wMi8wOCBTTUk7IGZyb20gVUNCIDQuMikuCi0uXCIgRmVhci4gIFJ1bi4gIFNhdmUg eW91cnNlbGYuICBObyB1c2VyLXNlcnZpY2VhYmxlIHBhcnRzLgotLiAgICBcIiBmdWRnZSBmYWN0 b3JzIGZvciBucm9mZiBhbmQgdHJvZmYKLS5pZiBuIFx7XAotLiAgICBkcyAjSCAwCi0uICAgIGRz ICNWIC44bQotLiAgICBkcyAjRiAuM20KLS4gICAgZHMgI1sgXGYxCi0uICAgIGRzICNdIFxmUAot Llx9Ci0uaWYgdCBce1wKLS4gICAgZHMgI0ggKCgxdS0oXFxcXG4oLmZ1JTJ1KSkqLjEzbSkKLS4g ICAgZHMgI1YgLjZtCi0uICAgIGRzICNGIDAKLS4gICAgZHMgI1sgXCYKLS4gICAgZHMgI10gXCYK LS5cfQotLiAgICBcIiBzaW1wbGUgYWNjZW50cyBmb3IgbnJvZmYgYW5kIHRyb2ZmCi0uaWYgbiBc e1wKLS4gICAgZHMgJyBcJgotLiAgICBkcyBgIFwmCi0uICAgIGRzIF4gXCYKLS4gICAgZHMgLCBc JgotLiAgICBkcyB+IH4KLS4gICAgZHMgLwotLlx9Ci0uaWYgdCBce1wKLS4gICAgZHMgJyBcXGs6 XGgnLShcXG4oLnd1KjgvMTAtXCooI0gpJ1wnXGgifFxcbjp1IgotLiAgICBkcyBgIFxcazpcaCct KFxcbigud3UqOC8xMC1cKigjSCknXGBcaCd8XFxuOnUnCi0uICAgIGRzIF4gXFxrOlxoJy0oXFxu KC53dSoxMC8xMS1cKigjSCknXlxoJ3xcXG46dScKLS4gICAgZHMgLCBcXGs6XGgnLShcXG4oLnd1 KjgvMTApJyxcaCd8XFxuOnUnCi0uICAgIGRzIH4gXFxrOlxoJy0oXFxuKC53dS1cKigjSC0uMW0p J35caCd8XFxuOnUnCi0uICAgIGRzIC8gXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKSdcelwo c2xcaCd8XFxuOnUnCi0uXH0KLS4gICAgXCIgdHJvZmYgYW5kIChkYWlzeS13aGVlbCkgbnJvZmYg YWNjZW50cwotLmRzIDogXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKy4xbStcKigjRiknXHYn LVwqKCNWJ1x6LlxoJy4ybStcKigjRicuXGgnfFxcbjp1J1x2J1wqKCNWJwotLmRzIDggXGgnXCoo I0gnXCgqYlxoJy1cKigjSCcKLS5kcyBvIFxcazpcaCctKFxcbigud3UrXHcnXChkZSd1LVwqKCNI KS8ydSdcdictLjNuJ1wqKCNbXHpcKGRlXHYnLjNuJ1xoJ3xcXG46dSdcKigjXQotLmRzIGQtIFxo J1wqKCNIJ1wocGRcaCctXHcnfid1J1x2Jy0uMjVtJ1xmMlwoaHlcZlBcdicuMjVtJ1xoJy1cKigj SCcKLS5kcyBELSBEXFxrOlxoJy1cdydEJ3UnXHYnLS4xMW0nXHpcKGh5XHYnLjExbSdcaCd8XFxu OnUnCi0uZHMgdGggXCooI1tcdicuM20nXHMrMUlccy0xXHYnLS4zbSdcaCctKFx3J0kndSoyLzMp J1xzLTFvXHMrMVwqKCNdCi0uZHMgVGggXCooI1tccysySVxzLTJcaCctXHcnSSd1KjMvNSdcdict LjNtJ29cdicuM20nXCooI10KLS5kcyBhZSBhXGgnLShcdydhJ3UqNC8xMCknZQotLmRzIEFlIEFc aCctKFx3J0EndSo0LzEwKSdFCi0uICAgIFwiIGNvcnJlY3Rpb25zIGZvciB2cm9mZgotLmlmIHYg LmRzIH4gXFxrOlxoJy0oXFxuKC53dSo5LzEwLVwqKCNIKSdccy0yXHV+XGRccysyXGgnfFxcbjp1 JwotLmlmIHYgLmRzIF4gXFxrOlxoJy0oXFxuKC53dSoxMC8xMS1cKigjSCknXHYnLS40bSdeXHYn LjRtJ1xoJ3xcXG46dScKLS4gICAgXCIgZm9yIGxvdyByZXNvbHV0aW9uIGRldmljZXMgKGNydCBh bmQgbHByKQotLmlmIFxuKC5IPjIzIC5pZiBcbiguVj4xOSBcCi1ce1wKLS4gICAgZHMgOiBlCi0u ICAgIGRzIDggc3MKLS4gICAgZHMgbyBhCi0uICAgIGRzIGQtIGRcaCctMSdcKGdhCi0uICAgIGRz IEQtIERcaCctMSdcKGh5Ci0uICAgIGRzIHRoIFxvJ2JwJwotLiAgICBkcyBUaCBcbydMUCcKLS4g ICAgZHMgYWUgYWUKLS4gICAgZHMgQWUgQUUKLS5cfQotLnJtICNbICNdICNIICNWICNGIEMKLS5c IiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS5cIgotLklYIFRpdGxlICJTVFJJTkdTIDEiCi0uVEggU1RSSU5H UyAxICIyMDEwLTEwLTMwIiAiYmludXRpbHMtMi4xNy41MCIgIkdOVSBEZXZlbG9wbWVudCBUb29s cyIKLS5cIiBGb3IgbnJvZmYsIHR1cm4gb2ZmIGp1c3RpZmljYXRpb24uICBBbHdheXMgdHVybiBv ZmYgaHlwaGVuYXRpb247IGl0IG1ha2VzCi0uXCIgd2F5IHRvbyBtYW55IG1pc3Rha2VzIGluIHRl Y2huaWNhbCBkb2N1bWVudHMuCi0uaWYgbiAuYWQgbAotLm5oCi0uU0ggIk5BTUUiCi1zdHJpbmdz IFwtIHByaW50IHRoZSBzdHJpbmdzIG9mIHByaW50YWJsZSBjaGFyYWN0ZXJzIGluIGZpbGVzLgot LlNIICJTWU5PUFNJUyIKLS5JWCBIZWFkZXIgIlNZTk9QU0lTIgotc3RyaW5ncyBbXGZCXC1hZm92 XGZSXSBbXGZCXC1cZlJcZkltaW4tbGVuXGZSXQotICAgICAgICBbXGZCXC1uXGZSIFxmSW1pbi1s ZW5cZlJdIFtcZkJcLVwtYnl0ZXM9XGZSXGZJbWluLWxlblxmUl0KLSAgICAgICAgW1xmQlwtdFxm UiBcZklyYWRpeFxmUl0gW1xmQlwtXC1yYWRpeD1cZlJcZklyYWRpeFxmUl0KLSAgICAgICAgW1xm QlwtZVxmUiBcZkllbmNvZGluZ1xmUl0gW1xmQlwtXC1lbmNvZGluZz1cZlJcZkllbmNvZGluZ1xm Ul0KLSAgICAgICAgW1xmQlwtXGZSXSBbXGZCXC1cLWFsbFxmUl0gW1xmQlwtXC1wcmludFwtZmls ZVwtbmFtZVxmUl0KLSAgICAgICAgW1xmQlwtVFxmUiBcZkliZmRuYW1lXGZSXSBbXGZCXC1cLXRh cmdldD1cZlJcZkliZmRuYW1lXGZSXQotICAgICAgICBbXGZCXC1cLWhlbHBcZlJdIFtcZkJcLVwt dmVyc2lvblxmUl0gXGZJZmlsZVxmUi4uLgotLlNIICJERVNDUklQVElPTiIKLS5JWCBIZWFkZXIg IkRFU0NSSVBUSU9OIgotRm9yIGVhY2ggXGZJZmlsZVxmUiBnaXZlbiwgXHMtMUdOVVxzMCBcZkJz dHJpbmdzXGZSIHByaW50cyB0aGUgcHJpbnRhYmxlCi1jaGFyYWN0ZXIgc2VxdWVuY2VzIHRoYXQg YXJlIGF0IGxlYXN0IDQgY2hhcmFjdGVycyBsb25nIChvciB0aGUgbnVtYmVyCi1naXZlbiB3aXRo IHRoZSBvcHRpb25zIGJlbG93KSBhbmQgYXJlIGZvbGxvd2VkIGJ5IGFuIHVucHJpbnRhYmxlCi1j aGFyYWN0ZXIuICBCeSBkZWZhdWx0LCBpdCBvbmx5IHByaW50cyB0aGUgc3RyaW5ncyBmcm9tIHRo ZSBpbml0aWFsaXplZAotYW5kIGxvYWRlZCBzZWN0aW9ucyBvZiBvYmplY3QgZmlsZXM7IGZvciBv dGhlciB0eXBlcyBvZiBmaWxlcywgaXQgcHJpbnRzCi10aGUgc3RyaW5ncyBmcm9tIHRoZSB3aG9s ZSBmaWxlLgotLlBQCi1cJlxmQnN0cmluZ3NcZlIgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgZGV0ZXJt aW5pbmcgdGhlIGNvbnRlbnRzIG9mIG5vbi10ZXh0Ci1maWxlcy4KLS5TSCAiT1BUSU9OUyIKLS5J WCBIZWFkZXIgIk9QVElPTlMiCi0uSVAgIlxmQlwtYVxmUiIgNAotLklYIEl0ZW0gIi1hIgotLlBE IDAKLS5JUCAiXGZCXC1cLWFsbFxmUiIgNAotLklYIEl0ZW0gIi0tYWxsIgotLklQICJcZkJcLVxm UiIgNAotLklYIEl0ZW0gIi0iCi0uUEQKLURvIG5vdCBzY2FuIG9ubHkgdGhlIGluaXRpYWxpemVk IGFuZCBsb2FkZWQgc2VjdGlvbnMgb2Ygb2JqZWN0IGZpbGVzOwotc2NhbiB0aGUgd2hvbGUgZmls ZXMuCi0uSVAgIlxmQlwtZlxmUiIgNAotLklYIEl0ZW0gIi1mIgotLlBEIDAKLS5JUCAiXGZCXC1c LXByaW50XC1maWxlXC1uYW1lXGZSIiA0Ci0uSVggSXRlbSAiLS1wcmludC1maWxlLW5hbWUiCi0u UEQKLVByaW50IHRoZSBuYW1lIG9mIHRoZSBmaWxlIGJlZm9yZSBlYWNoIHN0cmluZy4KLS5JUCAi XGZCXC1cLWhlbHBcZlIiIDQKLS5JWCBJdGVtICItLWhlbHAiCi1QcmludCBhIHN1bW1hcnkgb2Yg dGhlIHByb2dyYW0gdXNhZ2Ugb24gdGhlIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLS5JUCAi XGZCXC1cZlJcZkltaW4tbGVuXGZSIiA0Ci0uSVggSXRlbSAiLW1pbi1sZW4iCi0uUEQgMAotLklQ ICJcZkJcLW5cZlIgXGZJbWluLWxlblxmUiIgNAotLklYIEl0ZW0gIi1uIG1pbi1sZW4iCi0uSVAg IlxmQlwtXC1ieXRlcz1cZlJcZkltaW4tbGVuXGZSIiA0Ci0uSVggSXRlbSAiLS1ieXRlcz1taW4t bGVuIgotLlBECi1QcmludCBzZXF1ZW5jZXMgb2YgY2hhcmFjdGVycyB0aGF0IGFyZSBhdCBsZWFz dCBcZkltaW4tbGVuXGZSIGNoYXJhY3RlcnMKLWxvbmcsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQg NC4KLS5JUCAiXGZCXC1vXGZSIiA0Ci0uSVggSXRlbSAiLW8iCi1MaWtlIFxmQlwtdCBvXGZSLiAg U29tZSBvdGhlciB2ZXJzaW9ucyBvZiBcZkJzdHJpbmdzXGZSIGhhdmUgXGZCXC1vXGZSCi1hY3Qg bGlrZSBcZkJcLXQgZFxmUiBpbnN0ZWFkLiAgU2luY2Ugd2UgY2FuIG5vdCBiZSBjb21wYXRpYmxl IHdpdGggYm90aAotd2F5cywgd2Ugc2ltcGx5IGNob3NlIG9uZS4KLS5JUCAiXGZCXC10XGZSIFxm SXJhZGl4XGZSIiA0Ci0uSVggSXRlbSAiLXQgcmFkaXgiCi0uUEQgMAotLklQICJcZkJcLVwtcmFk aXg9XGZSXGZJcmFkaXhcZlIiIDQKLS5JWCBJdGVtICItLXJhZGl4PXJhZGl4IgotLlBECi1Qcmlu dCB0aGUgb2Zmc2V0IHdpdGhpbiB0aGUgZmlsZSBiZWZvcmUgZWFjaCBzdHJpbmcuICBUaGUgc2lu Z2xlCi1jaGFyYWN0ZXIgYXJndW1lbnQgc3BlY2lmaWVzIHRoZSByYWRpeCBvZiB0aGUgb2Zmc2V0 XC1cLVwtXGZCb1xmUiBmb3IKLW9jdGFsLCBcZkJ4XGZSIGZvciBoZXhhZGVjaW1hbCwgb3IgXGZC ZFxmUiBmb3IgZGVjaW1hbC4KLS5JUCAiXGZCXC1lXGZSIFxmSWVuY29kaW5nXGZSIiA0Ci0uSVgg SXRlbSAiLWUgZW5jb2RpbmciCi0uUEQgMAotLklQICJcZkJcLVwtZW5jb2Rpbmc9XGZSXGZJZW5j b2RpbmdcZlIiIDQKLS5JWCBJdGVtICItLWVuY29kaW5nPWVuY29kaW5nIgotLlBECi1TZWxlY3Qg dGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgc3RyaW5ncyB0aGF0IGFyZSB0byBiZSBmb3Vu ZC4KLVBvc3NpYmxlIHZhbHVlcyBmb3IgXGZJZW5jb2RpbmdcZlIgYXJlOiBcZkJzXGZSID0gc2lu Z2xlXC03XC1iaXRcLWJ5dGUKLWNoYXJhY3RlcnMgKFxzLTFBU0NJSVxzMCwgXHMtMUlTT1xzMCA4 ODU5LCBldGMuLCBkZWZhdWx0KSwgXGZCU1xmUiA9Ci1zaW5nbGVcLThcLWJpdFwtYnl0ZSBjaGFy YWN0ZXJzLCBcZkJiXGZSID0gMTZcLWJpdCBiaWdlbmRpYW4sIFxmQmxcZlIgPQotMTZcLWJpdCBs aXR0bGVlbmRpYW4sIFxmQkJcZlIgPSAzMlwtYml0IGJpZ2VuZGlhbiwgXGZCTFxmUiA9IDMyXC1i aXQKLWxpdHRsZWVuZGlhbi4gVXNlZnVsIGZvciBmaW5kaW5nIHdpZGUgY2hhcmFjdGVyIHN0cmlu Z3MuCi0uSVAgIlxmQlwtVFxmUiBcZkliZmRuYW1lXGZSIiA0Ci0uSVggSXRlbSAiLVQgYmZkbmFt ZSIKLS5QRCAwCi0uSVAgIlxmQlwtXC10YXJnZXQ9XGZSXGZJYmZkbmFtZVxmUiIgNAotLklYIEl0 ZW0gIi0tdGFyZ2V0PWJmZG5hbWUiCi0uUEQKLVNwZWNpZnkgYW4gb2JqZWN0IGNvZGUgZm9ybWF0 IG90aGVyIHRoYW4geW91ciBzeXN0ZW0ncyBkZWZhdWx0IGZvcm1hdC4KLS5JUCAiXGZCXC12XGZS IiA0Ci0uSVggSXRlbSAiLXYiCi0uUEQgMAotLklQICJcZkJcLVwtdmVyc2lvblxmUiIgNAotLklY IEl0ZW0gIi0tdmVyc2lvbiIKLS5QRAotUHJpbnQgdGhlIHByb2dyYW0gdmVyc2lvbiBudW1iZXIg b24gdGhlIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLS5JUCAiXGZCQFxmUlxmSWZpbGVcZlIi IDQKLS5JWCBJdGVtICJAZmlsZSIKLVJlYWQgY29tbWFuZC1saW5lIG9wdGlvbnMgZnJvbSBcZklm aWxlXGZSLiAgVGhlIG9wdGlvbnMgcmVhZCBhcmUKLWluc2VydGVkIGluIHBsYWNlIG9mIHRoZSBv cmlnaW5hbCBAXGZJZmlsZVxmUiBvcHRpb24uICBJZiBcZklmaWxlXGZSCi1kb2VzIG5vdCBleGlz dCwgb3IgY2Fubm90IGJlIHJlYWQsIHRoZW4gdGhlIG9wdGlvbiB3aWxsIGJlIHRyZWF0ZWQKLWxp dGVyYWxseSwgYW5kIG5vdCByZW1vdmVkLgotLlNwCi1PcHRpb25zIGluIFxmSWZpbGVcZlIgYXJl IHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLiAgQSB3aGl0ZXNwYWNlCi1jaGFyYWN0ZXIgbWF5IGJl IGluY2x1ZGVkIGluIGFuIG9wdGlvbiBieSBzdXJyb3VuZGluZyB0aGUgZW50aXJlCi1vcHRpb24g aW4gZWl0aGVyIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzLiAgQW55IGNoYXJhY3RlciAoaW5jbHVk aW5nIGEKLWJhY2tzbGFzaCkgbWF5IGJlIGluY2x1ZGVkIGJ5IHByZWZpeGluZyB0aGUgY2hhcmFj dGVyIHRvIGJlIGluY2x1ZGVkCi13aXRoIGEgYmFja3NsYXNoLiAgVGhlIFxmSWZpbGVcZlIgbWF5 IGl0c2VsZiBjb250YWluIGFkZGl0aW9uYWwKLUBcZklmaWxlXGZSIG9wdGlvbnM7IGFueSBzdWNo IG9wdGlvbnMgd2lsbCBiZSBwcm9jZXNzZWQgcmVjdXJzaXZlbHkuCi0uU0ggIlNFRSBBTFNPIgot LklYIEhlYWRlciAiU0VFIEFMU08iCi1cJlxmSWFyXGZSXHwoMSksIFxmSW5tXGZSXHwoMSksIFxm SW9iamR1bXBcZlJcfCgxKSwgXGZJcmFubGliXGZSXHwoMSksIFxmSXJlYWRlbGZcZlJcfCgxKQot YW5kIHRoZSBJbmZvIGVudHJpZXMgZm9yIFxmSWJpbnV0aWxzXGZSLgotLlNIICJDT1BZUklHSFQi Ci0uSVggSGVhZGVyICJDT1BZUklHSFQiCi1Db3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIsIDE5OTMs IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0yMDAwLCAyMDAxLCAyMDAyLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotLlBQCi1QZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3Ig bW9kaWZ5IHRoaXMgZG9jdW1lbnQKLXVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgXHMtMUdOVVxzMCBG cmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjEKLW9yIGFueSBsYXRlciB2ZXJz aW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOwotd2l0aCBubyBJ bnZhcmlhbnQgU2VjdGlvbnMsIHdpdGggbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCB3aXRoIG5v Ci1CYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlIGlzIGluY2x1ZGVkIGlu IHRoZQotc2VjdGlvbiBlbnRpdGxlZCBcKihMIlxzLTFHTlVcczAgRnJlZSBEb2N1bWVudGF0aW9u IExpY2Vuc2VcKihSIi4KZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2JpbnV0aWxzL3N0cmluZ3Mv TWFrZWZpbGUuZGVwZW5kIGIvZ251L3Vzci5iaW4vYmludXRpbHMvc3RyaW5ncy9NYWtlZmlsZS5k ZXBlbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxz L3N0cmluZ3MvTWFrZWZpbGUuZGVwZW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAot IyAkRnJlZUJTRCQKLSMgQXV0b2dlbmVyYXRlZCAtIGRvIE5PVCBlZGl0IQotCi1ESVJERVBTID0g XAotCWdudS9saWIvY3N1IFwKLQlnbnUvbGliL2xpYmdjYyBcCi0JZ251L3Vzci5iaW4vYmludXRp bHMvbGliYmZkIFwKLQlnbnUvdXNyLmJpbi9iaW51dGlscy9saWJiaW51dGlscyBcCi0JZ251L3Vz ci5iaW4vYmludXRpbHMvbGliaWJlcnR5IFwKLQlpbmNsdWRlIFwKLQlpbmNsdWRlL3hsb2NhbGUg XAotCWxpYi8ke0NTVV9ESVJ9IFwKLQlsaWIvbGliYyBcCi0JbGliL2xpYmNvbXBpbGVyX3J0IFwK LQotCi0uaW5jbHVkZSA8ZGlyZGVwcy5taz4KLQotLmlmICR7REVQX1JFTERJUn0gPT0gJHtfREVQ X1JFTERJUn0KLSMgbG9jYWwgZGVwZW5kZW5jaWVzIC0gbmVlZGVkIGZvciAtak4gaW4gY2xlYW4g dHJlZQotLmVuZGlmCmRpZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGlscy9zdHJpbmdzL01h a2VmaWxlIGIvZ251L3Vzci5iaW4vYmludXRpbHMvc3RyaW5ncy9NYWtlZmlsZQpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKLS0tIGEvZ251L3Vzci5iaW4vYmludXRpbHMvc3RyaW5ncy9NYWtlZmls ZQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLSMgJEZyZWVCU0QkCi0KLS5pbmNsdWRl ICIuLi9NYWtlZmlsZS5pbmMwIgotCi0uUEFUSDogJHtTUkNESVJ9L2JpbnV0aWxzICR7U1JDRElS fS9iaW51dGlscy9kb2MKLQotUFJPRz0Jc3RyaW5ncwotU1JDUz0Jc3RyaW5ncy5jCi1DRkxBR1Mr PSAtRF9HTlVfU09VUkNFCi1DRkxBR1MrPSAtSSR7LkNVUkRJUn0vJHtSRUxUT1B9L2xpYmJpbnV0 aWxzCi1DRkxBR1MrPSAtSSR7U1JDRElSfS9iaW51dGlscwotRFBBREQ9CSR7UkVMVE9QfS9saWJi aW51dGlscy9saWJiaW51dGlscy5hCi1EUEFERCs9CSR7UkVMVE9QfS9saWJiZmQvbGliYmZkLmEK LURQQUREKz0JJHtSRUxUT1B9L2xpYmliZXJ0eS9saWJpYmVydHkuYQotTERBREQ9CSR7RFBBRER9 Ci0KLS5pbmNsdWRlIDxic2QucHJvZy5taz4KZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2JpbnV0 aWxzL3NpemUvc2l6ZS4xIGIvZ251L3Vzci5iaW4vYmludXRpbHMvc2l6ZS9zaXplLjEKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL3NpemUvc2l6ZS4x CisrKyAvZGV2L251bGwKQEAgLTEsMjYzICswLDAgQEAKLS5cIiAkRnJlZUJTRCQKLS5cIiBBdXRv bWF0aWNhbGx5IGdlbmVyYXRlZCBieSBQb2Q6Ok1hbiAyLjIzIChQb2Q6OlNpbXBsZSAzLjE0KQot LlwiCi0uXCIgU3RhbmRhcmQgcHJlYW1ibGU6Ci0uXCIgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0uZGUgU3Ag XCIgVmVydGljYWwgc3BhY2UgKHdoZW4gd2UgY2FuJ3QgdXNlIC5QUCkKLS5pZiB0IC5zcCAuNXYK LS5pZiBuIC5zcAotLi4KLS5kZSBWYiBcIiBCZWdpbiB2ZXJiYXRpbSB0ZXh0Ci0uZnQgQ1cKLS5u ZgotLm5lIFxcJDEKLS4uCi0uZGUgVmUgXCIgRW5kIHZlcmJhdGltIHRleHQKLS5mdCBSCi0uZmkK LS4uCi0uXCIgU2V0IHVwIHNvbWUgY2hhcmFjdGVyIHRyYW5zbGF0aW9ucyBhbmQgcHJlZGVmaW5l ZCBzdHJpbmdzLiAgXCooLS0gd2lsbAotLlwiIGdpdmUgYW4gdW5icmVha2FibGUgZGFzaCwgXCoo UEkgd2lsbCBnaXZlIHBpLCBcKihMIiB3aWxsIGdpdmUgYSBsZWZ0Ci0uXCIgZG91YmxlIHF1b3Rl LCBhbmQgXCooUiIgd2lsbCBnaXZlIGEgcmlnaHQgZG91YmxlIHF1b3RlLiAgXCooQysgd2lsbAot LlwiIGdpdmUgYSBuaWNlciBDKysuICBDYXBpdGFsIG9tZWdhIGlzIHVzZWQgdG8gZG8gdW5icmVh a2FibGUgZGFzaGVzIGFuZAotLlwiIHRoZXJlZm9yZSB3b24ndCBiZSBhdmFpbGFibGUuICBcKihD YCBhbmQgXCooQycgZXhwYW5kIHRvIGAnIGluIG5yb2ZmLAotLlwiIG5vdGhpbmcgaW4gdHJvZmYs IGZvciB1c2Ugd2l0aCBDPD4uCi0udHIgXCgqVy0KLS5kcyBDKyBDXHYnLS4xdidcaCctMXAnXHMt MitcaCctMXAnK1xzMFx2Jy4xdidcaCctMXAnCi0uaWUgbiBce1wKLS4gICAgZHMgLS0gXCgqVy0K LS4gICAgZHMgUEkgcGkKLS4gICAgaWYgKFxuKC5IPTR1KSYoMW09MjR1KSAuZHMgLS0gXCgqV1xo Jy0xMnUnXCgqV1xoJy0xMnUnLVwiIGRpYWJsbyAxMCBwaXRjaAotLiAgICBpZiAoXG4oLkg9NHUp JigxbT0yMHUpIC5kcyAtLSBcKCpXXGgnLTEydSdcKCpXXGgnLTh1Jy1cIiAgZGlhYmxvIDEyIHBp dGNoCi0uICAgIGRzIEwiICIiCi0uICAgIGRzIFIiICIiCi0uICAgIGRzIENgICIiCi0uICAgIGRz IEMnICIiCi0nYnJcfQotLmVsXHtcCi0uICAgIGRzIC0tIFx8XChlbVx8Ci0uICAgIGRzIFBJIFwo KnAKLS4gICAgZHMgTCIgYGAKLS4gICAgZHMgUiIgJycKLSdiclx9Ci0uXCIKLS5cIiBFc2NhcGUg c2luZ2xlIHF1b3RlcyBpbiBsaXRlcmFsIHN0cmluZ3MgZnJvbSBncm9mZidzIFVuaWNvZGUgdHJh bnNmb3JtLgotLmllIFxuKC5nIC5kcyBBcSBcKGFxCi0uZWwgICAgICAgLmRzIEFxICcKLS5cIgot LlwiIElmIHRoZSBGIHJlZ2lzdGVyIGlzIHR1cm5lZCBvbiwgd2UnbGwgZ2VuZXJhdGUgaW5kZXgg ZW50cmllcyBvbiBzdGRlcnIgZm9yCi0uXCIgdGl0bGVzICguVEgpLCBoZWFkZXJzICguU0gpLCBz dWJzZWN0aW9ucyAoLlNTKSwgaXRlbXMgKC5JcCksIGFuZCBpbmRleAotLlwiIGVudHJpZXMgbWFy a2VkIHdpdGggWDw+IGluIFBPRC4gIE9mIGNvdXJzZSwgeW91J2xsIGhhdmUgdG8gcHJvY2VzcyB0 aGUKLS5cIiBvdXRwdXQgeW91cnNlbGYgaW4gc29tZSBtZWFuaW5nZnVsIGZhc2hpb24uCi0uaWUg XG5GIFx7XAotLiAgICBkZSBJWAotLiAgICB0bSBJbmRleDpcXCQxXHRcXG4lXHQiXFwkMiIKLS4u Ci0uICAgIG5yICUgMAotLiAgICByciBGCi0uXH0KLS5lbCBce1wKLS4gICAgZGUgSVgKLS4uCi0u XH0KLS5cIgotLlwiIEFjY2VudCBtYXJrIGRlZmluaXRpb25zIChAKCMpbXMuYWNjIDEuNSA4OC8w Mi8wOCBTTUk7IGZyb20gVUNCIDQuMikuCi0uXCIgRmVhci4gIFJ1bi4gIFNhdmUgeW91cnNlbGYu ICBObyB1c2VyLXNlcnZpY2VhYmxlIHBhcnRzLgotLiAgICBcIiBmdWRnZSBmYWN0b3JzIGZvciBu cm9mZiBhbmQgdHJvZmYKLS5pZiBuIFx7XAotLiAgICBkcyAjSCAwCi0uICAgIGRzICNWIC44bQot LiAgICBkcyAjRiAuM20KLS4gICAgZHMgI1sgXGYxCi0uICAgIGRzICNdIFxmUAotLlx9Ci0uaWYg dCBce1wKLS4gICAgZHMgI0ggKCgxdS0oXFxcXG4oLmZ1JTJ1KSkqLjEzbSkKLS4gICAgZHMgI1Yg LjZtCi0uICAgIGRzICNGIDAKLS4gICAgZHMgI1sgXCYKLS4gICAgZHMgI10gXCYKLS5cfQotLiAg ICBcIiBzaW1wbGUgYWNjZW50cyBmb3IgbnJvZmYgYW5kIHRyb2ZmCi0uaWYgbiBce1wKLS4gICAg ZHMgJyBcJgotLiAgICBkcyBgIFwmCi0uICAgIGRzIF4gXCYKLS4gICAgZHMgLCBcJgotLiAgICBk cyB+IH4KLS4gICAgZHMgLwotLlx9Ci0uaWYgdCBce1wKLS4gICAgZHMgJyBcXGs6XGgnLShcXG4o Lnd1KjgvMTAtXCooI0gpJ1wnXGgifFxcbjp1IgotLiAgICBkcyBgIFxcazpcaCctKFxcbigud3Uq OC8xMC1cKigjSCknXGBcaCd8XFxuOnUnCi0uICAgIGRzIF4gXFxrOlxoJy0oXFxuKC53dSoxMC8x MS1cKigjSCknXlxoJ3xcXG46dScKLS4gICAgZHMgLCBcXGs6XGgnLShcXG4oLnd1KjgvMTApJyxc aCd8XFxuOnUnCi0uICAgIGRzIH4gXFxrOlxoJy0oXFxuKC53dS1cKigjSC0uMW0pJ35caCd8XFxu OnUnCi0uICAgIGRzIC8gXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKSdcelwoc2xcaCd8XFxu OnUnCi0uXH0KLS4gICAgXCIgdHJvZmYgYW5kIChkYWlzeS13aGVlbCkgbnJvZmYgYWNjZW50cwot LmRzIDogXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKy4xbStcKigjRiknXHYnLVwqKCNWJ1x6 LlxoJy4ybStcKigjRicuXGgnfFxcbjp1J1x2J1wqKCNWJwotLmRzIDggXGgnXCooI0gnXCgqYlxo Jy1cKigjSCcKLS5kcyBvIFxcazpcaCctKFxcbigud3UrXHcnXChkZSd1LVwqKCNIKS8ydSdcdict LjNuJ1wqKCNbXHpcKGRlXHYnLjNuJ1xoJ3xcXG46dSdcKigjXQotLmRzIGQtIFxoJ1wqKCNIJ1wo cGRcaCctXHcnfid1J1x2Jy0uMjVtJ1xmMlwoaHlcZlBcdicuMjVtJ1xoJy1cKigjSCcKLS5kcyBE LSBEXFxrOlxoJy1cdydEJ3UnXHYnLS4xMW0nXHpcKGh5XHYnLjExbSdcaCd8XFxuOnUnCi0uZHMg dGggXCooI1tcdicuM20nXHMrMUlccy0xXHYnLS4zbSdcaCctKFx3J0kndSoyLzMpJ1xzLTFvXHMr MVwqKCNdCi0uZHMgVGggXCooI1tccysySVxzLTJcaCctXHcnSSd1KjMvNSdcdictLjNtJ29cdicu M20nXCooI10KLS5kcyBhZSBhXGgnLShcdydhJ3UqNC8xMCknZQotLmRzIEFlIEFcaCctKFx3J0En dSo0LzEwKSdFCi0uICAgIFwiIGNvcnJlY3Rpb25zIGZvciB2cm9mZgotLmlmIHYgLmRzIH4gXFxr OlxoJy0oXFxuKC53dSo5LzEwLVwqKCNIKSdccy0yXHV+XGRccysyXGgnfFxcbjp1JwotLmlmIHYg LmRzIF4gXFxrOlxoJy0oXFxuKC53dSoxMC8xMS1cKigjSCknXHYnLS40bSdeXHYnLjRtJ1xoJ3xc XG46dScKLS4gICAgXCIgZm9yIGxvdyByZXNvbHV0aW9uIGRldmljZXMgKGNydCBhbmQgbHByKQot LmlmIFxuKC5IPjIzIC5pZiBcbiguVj4xOSBcCi1ce1wKLS4gICAgZHMgOiBlCi0uICAgIGRzIDgg c3MKLS4gICAgZHMgbyBhCi0uICAgIGRzIGQtIGRcaCctMSdcKGdhCi0uICAgIGRzIEQtIERcaCct MSdcKGh5Ci0uICAgIGRzIHRoIFxvJ2JwJwotLiAgICBkcyBUaCBcbydMUCcKLS4gICAgZHMgYWUg YWUKLS4gICAgZHMgQWUgQUUKLS5cfQotLnJtICNbICNdICNIICNWICNGIEMKLS5cIiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS5cIgotLklYIFRpdGxlICJTSVpFIDEiCi0uVEggU0laRSAxICIyMDEwLTEwLTMw IiAiYmludXRpbHMtMi4xNy41MCIgIkdOVSBEZXZlbG9wbWVudCBUb29scyIKLS5cIiBGb3IgbnJv ZmYsIHR1cm4gb2ZmIGp1c3RpZmljYXRpb24uICBBbHdheXMgdHVybiBvZmYgaHlwaGVuYXRpb247 IGl0IG1ha2VzCi0uXCIgd2F5IHRvbyBtYW55IG1pc3Rha2VzIGluIHRlY2huaWNhbCBkb2N1bWVu dHMuCi0uaWYgbiAuYWQgbAotLm5oCi0uU0ggIk5BTUUiCi1zaXplIFwtIGxpc3Qgc2VjdGlvbiBz aXplcyBhbmQgdG90YWwgc2l6ZQotLlNIICJTWU5PUFNJUyIKLS5JWCBIZWFkZXIgIlNZTk9QU0lT Igotc2l6ZSBbXGZCXC1BXGZSfFxmQlwtQlxmUnxcZkJcLVwtZm9ybWF0PVxmUlxmSWNvbXBhdGli aWxpdHlcZlJdCi0gICAgIFtcZkJcLVwtaGVscFxmUl0KLSAgICAgW1xmQlwtZFxmUnxcZkJcLW9c ZlJ8XGZCXC14XGZSfFxmQlwtXC1yYWRpeD1cZlJcZkludW1iZXJcZlJdCi0gICAgIFtcZkJcLXRc ZlJ8XGZCXC1cLXRvdGFsc1xmUl0KLSAgICAgW1xmQlwtXC10YXJnZXQ9XGZSXGZJYmZkbmFtZVxm Ul0gW1xmQlwtVlxmUnxcZkJcLVwtdmVyc2lvblxmUl0KLSAgICAgW1xmSW9iamZpbGVcZlIuLi5d Ci0uU0ggIkRFU0NSSVBUSU9OIgotLklYIEhlYWRlciAiREVTQ1JJUFRJT04iCi1UaGUgXHMtMUdO VVxzMCBcZkJzaXplXGZSIHV0aWxpdHkgbGlzdHMgdGhlIHNlY3Rpb24gc2l6ZXNcLVwtXC1hbmQg dGhlIHRvdGFsCi1zaXplXC1cLVwtZm9yIGVhY2ggb2YgdGhlIG9iamVjdCBvciBhcmNoaXZlIGZp bGVzIFxmSW9iamZpbGVcZlIgaW4gaXRzCi1hcmd1bWVudCBsaXN0LiAgQnkgZGVmYXVsdCwgb25l IGxpbmUgb2Ygb3V0cHV0IGlzIGdlbmVyYXRlZCBmb3IgZWFjaAotb2JqZWN0IGZpbGUgb3IgZWFj aCBtb2R1bGUgaW4gYW4gYXJjaGl2ZS4KLS5QUAotXCZcZklvYmpmaWxlXGZSLi4uIGFyZSB0aGUg b2JqZWN0IGZpbGVzIHRvIGJlIGV4YW1pbmVkLgotSWYgbm9uZSBhcmUgc3BlY2lmaWVkLCB0aGUg ZmlsZSBcZihDV1wqKENgYS5vdXRcKihDJ1xmUiB3aWxsIGJlIHVzZWQuCi0uU0ggIk9QVElPTlMi Ci0uSVggSGVhZGVyICJPUFRJT05TIgotVGhlIGNvbW1hbmQgbGluZSBvcHRpb25zIGhhdmUgdGhl IGZvbGxvd2luZyBtZWFuaW5nczoKLS5JUCAiXGZCXC1BXGZSIiA0Ci0uSVggSXRlbSAiLUEiCi0u UEQgMAotLklQICJcZkJcLUJcZlIiIDQKLS5JWCBJdGVtICItQiIKLS5JUCAiXGZCXC1cLWZvcm1h dD1cZlJcZkljb21wYXRpYmlsaXR5XGZSIiA0Ci0uSVggSXRlbSAiLS1mb3JtYXQ9Y29tcGF0aWJp bGl0eSIKLS5QRAotVXNpbmcgb25lIG9mIHRoZXNlIG9wdGlvbnMsIHlvdSBjYW4gY2hvb3NlIHdo ZXRoZXIgdGhlIG91dHB1dCBmcm9tIFxzLTFHTlVcczAKLVwmXGZCc2l6ZVxmUiByZXNlbWJsZXMg b3V0cHV0IGZyb20gU3lzdGVtIFYgXGZCc2l6ZVxmUiAodXNpbmcgXGZCXC1BXGZSLAotb3IgXGZC XC1cLWZvcm1hdD1zeXN2XGZSKSwgb3IgQmVya2VsZXkgXGZCc2l6ZVxmUiAodXNpbmcgXGZCXC1C XGZSLCBvcgotXCZcZkJcLVwtZm9ybWF0PWJlcmtlbGV5XGZSKS4gIFRoZSBkZWZhdWx0IGlzIHRo ZSBvbmUtbGluZSBmb3JtYXQgc2ltaWxhciB0bwotQmVya2VsZXkncy4KLS5TcAotSGVyZSBpcyBh biBleGFtcGxlIG9mIHRoZSBCZXJrZWxleSAoZGVmYXVsdCkgZm9ybWF0IG9mIG91dHB1dCBmcm9t Ci1cJlxmQnNpemVcZlI6Ci0uU3AKLS5WYiA0Ci1cJiAgICAgICAgJCBzaXplIFwtXC1mb3JtYXQ9 QmVya2VsZXkgcmFubGliIHNpemUKLVwmICAgICAgICB0ZXh0ICAgIGRhdGEgICAgYnNzICAgICBk ZWMgICAgIGhleCAgICAgZmlsZW5hbWUKLVwmICAgICAgICAyOTQ4ODAgIDgxOTIwICAgMTE1OTIg ICAzODgzOTIgIDVlZDI4ICAgcmFubGliCi1cJiAgICAgICAgMjk0ODgwICA4MTkyMCAgIDExODg4 ICAgMzg4Njg4ICA1ZWU1MCAgIHNpemUKLS5WZQotLlNwCi1UaGlzIGlzIHRoZSBzYW1lIGRhdGEs IGJ1dCBkaXNwbGF5ZWQgY2xvc2VyIHRvIFN5c3RlbSBWIGNvbnZlbnRpb25zOgotLlNwCi0uVmIg NwotXCYgICAgICAgICQgc2l6ZSBcLVwtZm9ybWF0PVN5c1YgcmFubGliIHNpemUKLVwmICAgICAg ICByYW5saWIgIDoKLVwmICAgICAgICBzZWN0aW9uICAgICAgICAgc2l6ZSAgICAgICAgIGFkZHIK LVwmICAgICAgICAudGV4dCAgICAgICAgIDI5NDg4MCAgICAgICAgIDgxOTIKLVwmICAgICAgICAu ZGF0YSAgICAgICAgICA4MTkyMCAgICAgICAzMDMxMDQKLVwmICAgICAgICAuYnNzICAgICAgICAg ICAxMTU5MiAgICAgICAzODUwMjQKLVwmICAgICAgICBUb3RhbCAgICAgICAgIDM4ODM5MgotXCYg ICAgICAgIAotXCYgICAgICAgIAotXCYgICAgICAgIHNpemUgIDoKLVwmICAgICAgICBzZWN0aW9u ICAgICAgICAgc2l6ZSAgICAgICAgIGFkZHIKLVwmICAgICAgICAudGV4dCAgICAgICAgIDI5NDg4 MCAgICAgICAgIDgxOTIKLVwmICAgICAgICAuZGF0YSAgICAgICAgICA4MTkyMCAgICAgICAzMDMx MDQKLVwmICAgICAgICAuYnNzICAgICAgICAgICAxMTg4OCAgICAgICAzODUwMjQKLVwmICAgICAg ICBUb3RhbCAgICAgICAgIDM4ODY4OAotLlZlCi0uSVAgIlxmQlwtXC1oZWxwXGZSIiA0Ci0uSVgg SXRlbSAiLS1oZWxwIgotU2hvdyBhIHN1bW1hcnkgb2YgYWNjZXB0YWJsZSBhcmd1bWVudHMgYW5k IG9wdGlvbnMuCi0uSVAgIlxmQlwtZFxmUiIgNAotLklYIEl0ZW0gIi1kIgotLlBEIDAKLS5JUCAi XGZCXC1vXGZSIiA0Ci0uSVggSXRlbSAiLW8iCi0uSVAgIlxmQlwteFxmUiIgNAotLklYIEl0ZW0g Ii14IgotLklQICJcZkJcLVwtcmFkaXg9XGZSXGZJbnVtYmVyXGZSIiA0Ci0uSVggSXRlbSAiLS1y YWRpeD1udW1iZXIiCi0uUEQKLVVzaW5nIG9uZSBvZiB0aGVzZSBvcHRpb25zLCB5b3UgY2FuIGNv bnRyb2wgd2hldGhlciB0aGUgc2l6ZSBvZiBlYWNoCi1zZWN0aW9uIGlzIGdpdmVuIGluIGRlY2lt YWwgKFxmQlwtZFxmUiwgb3IgXGZCXC1cLXJhZGl4PTEwXGZSKTsgb2N0YWwKLShcZkJcLW9cZlIs IG9yIFxmQlwtXC1yYWRpeD04XGZSKTsgb3IgaGV4YWRlY2ltYWwgKFxmQlwteFxmUiwgb3IKLVwm XGZCXC1cLXJhZGl4PTE2XGZSKS4gIEluIFxmQlwtXC1yYWRpeD1cZlJcZkludW1iZXJcZlIsIG9u bHkgdGhlIHRocmVlCi12YWx1ZXMgKDgsIDEwLCAxNikgYXJlIHN1cHBvcnRlZC4gIFRoZSB0b3Rh bCBzaXplIGlzIGFsd2F5cyBnaXZlbiBpbiB0d28KLXJhZGljZXM7IGRlY2ltYWwgYW5kIGhleGFk ZWNpbWFsIGZvciBcZkJcLWRcZlIgb3IgXGZCXC14XGZSIG91dHB1dCwgb3IKLW9jdGFsIGFuZCBo ZXhhZGVjaW1hbCBpZiB5b3UncmUgdXNpbmcgXGZCXC1vXGZSLgotLklQICJcZkJcLXRcZlIiIDQK LS5JWCBJdGVtICItdCIKLS5QRCAwCi0uSVAgIlxmQlwtXC10b3RhbHNcZlIiIDQKLS5JWCBJdGVt ICItLXRvdGFscyIKLS5QRAotU2hvdyB0b3RhbHMgb2YgYWxsIG9iamVjdHMgbGlzdGVkIChCZXJr ZWxleSBmb3JtYXQgbGlzdGluZyBtb2RlIG9ubHkpLgotLklQICJcZkJcLVwtdGFyZ2V0PVxmUlxm SWJmZG5hbWVcZlIiIDQKLS5JWCBJdGVtICItLXRhcmdldD1iZmRuYW1lIgotU3BlY2lmeSB0aGF0 IHRoZSBvYmplY3QtY29kZSBmb3JtYXQgZm9yIFxmSW9iamZpbGVcZlIgaXMKLVwmXGZJYmZkbmFt ZVxmUi4gIFRoaXMgb3B0aW9uIG1heSBub3QgYmUgbmVjZXNzYXJ5OyBcZkJzaXplXGZSIGNhbgot YXV0b21hdGljYWxseSByZWNvZ25pemUgbWFueSBmb3JtYXRzLgotLklQICJcZkJcLVZcZlIiIDQK LS5JWCBJdGVtICItViIKLS5QRCAwCi0uSVAgIlxmQlwtXC12ZXJzaW9uXGZSIiA0Ci0uSVggSXRl bSAiLS12ZXJzaW9uIgotLlBECi1EaXNwbGF5IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBcZkJzaXpl XGZSLgotLklQICJcZkJAXGZSXGZJZmlsZVxmUiIgNAotLklYIEl0ZW0gIkBmaWxlIgotUmVhZCBj b21tYW5kLWxpbmUgb3B0aW9ucyBmcm9tIFxmSWZpbGVcZlIuICBUaGUgb3B0aW9ucyByZWFkIGFy ZQotaW5zZXJ0ZWQgaW4gcGxhY2Ugb2YgdGhlIG9yaWdpbmFsIEBcZklmaWxlXGZSIG9wdGlvbi4g IElmIFxmSWZpbGVcZlIKLWRvZXMgbm90IGV4aXN0LCBvciBjYW5ub3QgYmUgcmVhZCwgdGhlbiB0 aGUgb3B0aW9uIHdpbGwgYmUgdHJlYXRlZAotbGl0ZXJhbGx5LCBhbmQgbm90IHJlbW92ZWQuCi0u U3AKLU9wdGlvbnMgaW4gXGZJZmlsZVxmUiBhcmUgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuICBB IHdoaXRlc3BhY2UKLWNoYXJhY3RlciBtYXkgYmUgaW5jbHVkZWQgaW4gYW4gb3B0aW9uIGJ5IHN1 cnJvdW5kaW5nIHRoZSBlbnRpcmUKLW9wdGlvbiBpbiBlaXRoZXIgc2luZ2xlIG9yIGRvdWJsZSBx dW90ZXMuICBBbnkgY2hhcmFjdGVyIChpbmNsdWRpbmcgYQotYmFja3NsYXNoKSBtYXkgYmUgaW5j bHVkZWQgYnkgcHJlZml4aW5nIHRoZSBjaGFyYWN0ZXIgdG8gYmUgaW5jbHVkZWQKLXdpdGggYSBi YWNrc2xhc2guICBUaGUgXGZJZmlsZVxmUiBtYXkgaXRzZWxmIGNvbnRhaW4gYWRkaXRpb25hbAot QFxmSWZpbGVcZlIgb3B0aW9uczsgYW55IHN1Y2ggb3B0aW9ucyB3aWxsIGJlIHByb2Nlc3NlZCBy ZWN1cnNpdmVseS4KLS5TSCAiU0VFIEFMU08iCi0uSVggSGVhZGVyICJTRUUgQUxTTyIKLVwmXGZJ YXJcZlJcfCgxKSwgXGZJb2JqZHVtcFxmUlx8KDEpLCBcZklyZWFkZWxmXGZSXHwoMSksIGFuZCB0 aGUgSW5mbyBlbnRyaWVzIGZvciBcZkliaW51dGlsc1xmUi4KLS5TSCAiQ09QWVJJR0hUIgotLklY IEhlYWRlciAiQ09QWVJJR0hUIgotQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyLCAxOTkzLCAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAotMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLS5Q UAotUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlm eSB0aGlzIGRvY3VtZW50Ci11bmRlciB0aGUgdGVybXMgb2YgdGhlIFxzLTFHTlVcczAgRnJlZSBE b2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4xCi1vciBhbnkgbGF0ZXIgdmVyc2lvbiBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsKLXdpdGggbm8gSW52YXJp YW50IFNlY3Rpb25zLCB3aXRoIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQgd2l0aCBubwotQmFj ay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUK LXNlY3Rpb24gZW50aXRsZWQgXCooTCJccy0xR05VXHMwIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNl bnNlXCooUiIuCmRpZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGlscy9zaXplL01ha2VmaWxl LmRlcGVuZCBiL2dudS91c3IuYmluL2JpbnV0aWxzL3NpemUvTWFrZWZpbGUuZGVwZW5kCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAotLS0gYS9nbnUvdXNyLmJpbi9iaW51dGlscy9zaXplL01ha2Vm aWxlLmRlcGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLSMgJEZyZWVCU0QkCi0j IEF1dG9nZW5lcmF0ZWQgLSBkbyBOT1QgZWRpdCEKLQotRElSREVQUyA9IFwKLQlnbnUvbGliL2Nz dSBcCi0JZ251L2xpYi9saWJnY2MgXAotCWdudS91c3IuYmluL2JpbnV0aWxzL2xpYmJmZCBcCi0J Z251L3Vzci5iaW4vYmludXRpbHMvbGliYmludXRpbHMgXAotCWdudS91c3IuYmluL2JpbnV0aWxz L2xpYmliZXJ0eSBcCi0JaW5jbHVkZSBcCi0JaW5jbHVkZS94bG9jYWxlIFwKLQlsaWIvJHtDU1Vf RElSfSBcCi0JbGliL2xpYmMgXAotCWxpYi9saWJjb21waWxlcl9ydCBcCi0KLQotLmluY2x1ZGUg PGRpcmRlcHMubWs+Ci0KLS5pZiAke0RFUF9SRUxESVJ9ID09ICR7X0RFUF9SRUxESVJ9Ci0jIGxv Y2FsIGRlcGVuZGVuY2llcyAtIG5lZWRlZCBmb3IgLWpOIGluIGNsZWFuIHRyZWUKLS5lbmRpZgpk aWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4vYmludXRpbHMvc2l6ZS9NYWtlZmlsZSBiL2dudS91c3Iu YmluL2JpbnV0aWxzL3NpemUvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSBh L2dudS91c3IuYmluL2JpbnV0aWxzL3NpemUvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwx NyArMCwwIEBACi0jICRGcmVlQlNEJAotCi0uaW5jbHVkZSAiLi4vTWFrZWZpbGUuaW5jMCIKLQot LlBBVEg6ICR7U1JDRElSfS9iaW51dGlscyAke1NSQ0RJUn0vYmludXRpbHMvZG9jCi0KLVBST0c9 CXNpemUKLVNSQ1M9CXNpemUuYwotQ0ZMQUdTKz0gLURfR05VX1NPVVJDRQotQ0ZMQUdTKz0gLUkk ey5DVVJESVJ9LyR7UkVMVE9QfS9saWJiaW51dGlscwotQ0ZMQUdTKz0gLUkke1NSQ0RJUn0vYmlu dXRpbHMKLURQQUREPQkke1JFTFRPUH0vbGliYmludXRpbHMvbGliYmludXRpbHMuYQotRFBBREQr PQkke1JFTFRPUH0vbGliYmZkL2xpYmJmZC5hCi1EUEFERCs9CSR7UkVMVE9QfS9saWJpYmVydHkv bGliaWJlcnR5LmEKLUxEQUREPQkke0RQQUREfQotCi0uaW5jbHVkZSA8YnNkLnByb2cubWs+CmRp ZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGlscy9yZWFkZWxmL3JlYWRlbGYuMSBiL2dudS91 c3IuYmluL2JpbnV0aWxzL3JlYWRlbGYvcmVhZGVsZi4xCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAotLS0gYS9nbnUvdXNyLmJpbi9iaW51dGlscy9yZWFkZWxmL3JlYWRlbGYuMQorKysgL2Rldi9u dWxsCkBAIC0xLDM3NyArMCwwIEBACi0uXCIgJEZyZWVCU0QkCi0uXCIgQXV0b21hdGljYWxseSBn ZW5lcmF0ZWQgYnkgUG9kOjpNYW4gMi4yMyAoUG9kOjpTaW1wbGUgMy4xNCkKLS5cIgotLlwiIFN0 YW5kYXJkIHByZWFtYmxlOgotLlwiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLmRlIFNwIFwiIFZlcnRpY2Fs IHNwYWNlICh3aGVuIHdlIGNhbid0IHVzZSAuUFApCi0uaWYgdCAuc3AgLjV2Ci0uaWYgbiAuc3AK LS4uCi0uZGUgVmIgXCIgQmVnaW4gdmVyYmF0aW0gdGV4dAotLmZ0IENXCi0ubmYKLS5uZSBcXCQx Ci0uLgotLmRlIFZlIFwiIEVuZCB2ZXJiYXRpbSB0ZXh0Ci0uZnQgUgotLmZpCi0uLgotLlwiIFNl dCB1cCBzb21lIGNoYXJhY3RlciB0cmFuc2xhdGlvbnMgYW5kIHByZWRlZmluZWQgc3RyaW5ncy4g IFwqKC0tIHdpbGwKLS5cIiBnaXZlIGFuIHVuYnJlYWthYmxlIGRhc2gsIFwqKFBJIHdpbGwgZ2l2 ZSBwaSwgXCooTCIgd2lsbCBnaXZlIGEgbGVmdAotLlwiIGRvdWJsZSBxdW90ZSwgYW5kIFwqKFIi IHdpbGwgZ2l2ZSBhIHJpZ2h0IGRvdWJsZSBxdW90ZS4gIFwqKEMrIHdpbGwKLS5cIiBnaXZlIGEg bmljZXIgQysrLiAgQ2FwaXRhbCBvbWVnYSBpcyB1c2VkIHRvIGRvIHVuYnJlYWthYmxlIGRhc2hl cyBhbmQKLS5cIiB0aGVyZWZvcmUgd29uJ3QgYmUgYXZhaWxhYmxlLiAgXCooQ2AgYW5kIFwqKEMn IGV4cGFuZCB0byBgJyBpbiBucm9mZiwKLS5cIiBub3RoaW5nIGluIHRyb2ZmLCBmb3IgdXNlIHdp dGggQzw+LgotLnRyIFwoKlctCi0uZHMgQysgQ1x2Jy0uMXYnXGgnLTFwJ1xzLTIrXGgnLTFwJytc czBcdicuMXYnXGgnLTFwJwotLmllIG4gXHtcCi0uICAgIGRzIC0tIFwoKlctCi0uICAgIGRzIFBJ IHBpCi0uICAgIGlmIChcbiguSD00dSkmKDFtPTI0dSkgLmRzIC0tIFwoKldcaCctMTJ1J1woKldc aCctMTJ1Jy1cIiBkaWFibG8gMTAgcGl0Y2gKLS4gICAgaWYgKFxuKC5IPTR1KSYoMW09MjB1KSAu ZHMgLS0gXCgqV1xoJy0xMnUnXCgqV1xoJy04dSctXCIgIGRpYWJsbyAxMiBwaXRjaAotLiAgICBk cyBMIiAiIgotLiAgICBkcyBSIiAiIgotLiAgICBkcyBDYCAiIgotLiAgICBkcyBDJyAiIgotJ2Jy XH0KLS5lbFx7XAotLiAgICBkcyAtLSBcfFwoZW1cfAotLiAgICBkcyBQSSBcKCpwCi0uICAgIGRz IEwiIGBgCi0uICAgIGRzIFIiICcnCi0nYnJcfQotLlwiCi0uXCIgRXNjYXBlIHNpbmdsZSBxdW90 ZXMgaW4gbGl0ZXJhbCBzdHJpbmdzIGZyb20gZ3JvZmYncyBVbmljb2RlIHRyYW5zZm9ybS4KLS5p ZSBcbiguZyAuZHMgQXEgXChhcQotLmVsICAgICAgIC5kcyBBcSAnCi0uXCIKLS5cIiBJZiB0aGUg RiByZWdpc3RlciBpcyB0dXJuZWQgb24sIHdlJ2xsIGdlbmVyYXRlIGluZGV4IGVudHJpZXMgb24g c3RkZXJyIGZvcgotLlwiIHRpdGxlcyAoLlRIKSwgaGVhZGVycyAoLlNIKSwgc3Vic2VjdGlvbnMg KC5TUyksIGl0ZW1zICguSXApLCBhbmQgaW5kZXgKLS5cIiBlbnRyaWVzIG1hcmtlZCB3aXRoIFg8 PiBpbiBQT0QuICBPZiBjb3Vyc2UsIHlvdSdsbCBoYXZlIHRvIHByb2Nlc3MgdGhlCi0uXCIgb3V0 cHV0IHlvdXJzZWxmIGluIHNvbWUgbWVhbmluZ2Z1bCBmYXNoaW9uLgotLmllIFxuRiBce1wKLS4g ICAgZGUgSVgKLS4gICAgdG0gSW5kZXg6XFwkMVx0XFxuJVx0IlxcJDIiCi0uLgotLiAgICBuciAl IDAKLS4gICAgcnIgRgotLlx9Ci0uZWwgXHtcCi0uICAgIGRlIElYCi0uLgotLlx9Ci0uXCIKLS5c IiBBY2NlbnQgbWFyayBkZWZpbml0aW9ucyAoQCgjKW1zLmFjYyAxLjUgODgvMDIvMDggU01JOyBm cm9tIFVDQiA0LjIpLgotLlwiIEZlYXIuICBSdW4uICBTYXZlIHlvdXJzZWxmLiAgTm8gdXNlci1z ZXJ2aWNlYWJsZSBwYXJ0cy4KLS4gICAgXCIgZnVkZ2UgZmFjdG9ycyBmb3IgbnJvZmYgYW5kIHRy b2ZmCi0uaWYgbiBce1wKLS4gICAgZHMgI0ggMAotLiAgICBkcyAjViAuOG0KLS4gICAgZHMgI0Yg LjNtCi0uICAgIGRzICNbIFxmMQotLiAgICBkcyAjXSBcZlAKLS5cfQotLmlmIHQgXHtcCi0uICAg IGRzICNIICgoMXUtKFxcXFxuKC5mdSUydSkpKi4xM20pCi0uICAgIGRzICNWIC42bQotLiAgICBk cyAjRiAwCi0uICAgIGRzICNbIFwmCi0uICAgIGRzICNdIFwmCi0uXH0KLS4gICAgXCIgc2ltcGxl IGFjY2VudHMgZm9yIG5yb2ZmIGFuZCB0cm9mZgotLmlmIG4gXHtcCi0uICAgIGRzICcgXCYKLS4g ICAgZHMgYCBcJgotLiAgICBkcyBeIFwmCi0uICAgIGRzICwgXCYKLS4gICAgZHMgfiB+Ci0uICAg IGRzIC8KLS5cfQotLmlmIHQgXHtcCi0uICAgIGRzICcgXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwq KCNIKSdcJ1xoInxcXG46dSIKLS4gICAgZHMgYCBcXGs6XGgnLShcXG4oLnd1KjgvMTAtXCooI0gp J1xgXGgnfFxcbjp1JwotLiAgICBkcyBeIFxcazpcaCctKFxcbigud3UqMTAvMTEtXCooI0gpJ15c aCd8XFxuOnUnCi0uICAgIGRzICwgXFxrOlxoJy0oXFxuKC53dSo4LzEwKScsXGgnfFxcbjp1Jwot LiAgICBkcyB+IFxcazpcaCctKFxcbigud3UtXCooI0gtLjFtKSd+XGgnfFxcbjp1JwotLiAgICBk cyAvIFxcazpcaCctKFxcbigud3UqOC8xMC1cKigjSCknXHpcKHNsXGgnfFxcbjp1JwotLlx9Ci0u ICAgIFwiIHRyb2ZmIGFuZCAoZGFpc3ktd2hlZWwpIG5yb2ZmIGFjY2VudHMKLS5kcyA6IFxcazpc aCctKFxcbigud3UqOC8xMC1cKigjSCsuMW0rXCooI0YpJ1x2Jy1cKigjVidcei5caCcuMm0rXCoo I0YnLlxoJ3xcXG46dSdcdidcKigjVicKLS5kcyA4IFxoJ1wqKCNIJ1woKmJcaCctXCooI0gnCi0u ZHMgbyBcXGs6XGgnLShcXG4oLnd1K1x3J1woZGUndS1cKigjSCkvMnUnXHYnLS4zbidcKigjW1x6 XChkZVx2Jy4zbidcaCd8XFxuOnUnXCooI10KLS5kcyBkLSBcaCdcKigjSCdcKHBkXGgnLVx3J34n dSdcdictLjI1bSdcZjJcKGh5XGZQXHYnLjI1bSdcaCctXCooI0gnCi0uZHMgRC0gRFxcazpcaCct XHcnRCd1J1x2Jy0uMTFtJ1x6XChoeVx2Jy4xMW0nXGgnfFxcbjp1JwotLmRzIHRoIFwqKCNbXHYn LjNtJ1xzKzFJXHMtMVx2Jy0uM20nXGgnLShcdydJJ3UqMi8zKSdccy0xb1xzKzFcKigjXQotLmRz IFRoIFwqKCNbXHMrMklccy0yXGgnLVx3J0kndSozLzUnXHYnLS4zbSdvXHYnLjNtJ1wqKCNdCi0u ZHMgYWUgYVxoJy0oXHcnYSd1KjQvMTApJ2UKLS5kcyBBZSBBXGgnLShcdydBJ3UqNC8xMCknRQot LiAgICBcIiBjb3JyZWN0aW9ucyBmb3IgdnJvZmYKLS5pZiB2IC5kcyB+IFxcazpcaCctKFxcbigu d3UqOS8xMC1cKigjSCknXHMtMlx1flxkXHMrMlxoJ3xcXG46dScKLS5pZiB2IC5kcyBeIFxcazpc aCctKFxcbigud3UqMTAvMTEtXCooI0gpJ1x2Jy0uNG0nXlx2Jy40bSdcaCd8XFxuOnUnCi0uICAg IFwiIGZvciBsb3cgcmVzb2x1dGlvbiBkZXZpY2VzIChjcnQgYW5kIGxwcikKLS5pZiBcbiguSD4y MyAuaWYgXG4oLlY+MTkgXAotXHtcCi0uICAgIGRzIDogZQotLiAgICBkcyA4IHNzCi0uICAgIGRz IG8gYQotLiAgICBkcyBkLSBkXGgnLTEnXChnYQotLiAgICBkcyBELSBEXGgnLTEnXChoeQotLiAg ICBkcyB0aCBcbydicCcKLS4gICAgZHMgVGggXG8nTFAnCi0uICAgIGRzIGFlIGFlCi0uICAgIGRz IEFlIEFFCi0uXH0KLS5ybSAjWyAjXSAjSCAjViAjRiBDCi0uXCIgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0u XCIKLS5JWCBUaXRsZSAiUkVBREVMRiAxIgotLlRIIFJFQURFTEYgMSAiMjAxMC0xMC0zMCIgImJp bnV0aWxzLTIuMTcuNTAiICJHTlUgRGV2ZWxvcG1lbnQgVG9vbHMiCi0uXCIgRm9yIG5yb2ZmLCB0 dXJuIG9mZiBqdXN0aWZpY2F0aW9uLiAgQWx3YXlzIHR1cm4gb2ZmIGh5cGhlbmF0aW9uOyBpdCBt YWtlcwotLlwiIHdheSB0b28gbWFueSBtaXN0YWtlcyBpbiB0ZWNobmljYWwgZG9jdW1lbnRzLgot LmlmIG4gLmFkIGwKLS5uaAotLlNIICJOQU1FIgotcmVhZGVsZiBcLSBEaXNwbGF5cyBpbmZvcm1h dGlvbiBhYm91dCBFTEYgZmlsZXMuCi0uU0ggIlNZTk9QU0lTIgotLklYIEhlYWRlciAiU1lOT1BT SVMiCi1yZWFkZWxmIFtcZkJcLWFcZlJ8XGZCXC1cLWFsbFxmUl0KLSAgICAgICAgW1xmQlwtaFxm UnxcZkJcLVwtZmlsZVwtaGVhZGVyXGZSXQotICAgICAgICBbXGZCXC1sXGZSfFxmQlwtXC1wcm9n cmFtXC1oZWFkZXJzXGZSfFxmQlwtXC1zZWdtZW50c1xmUl0KLSAgICAgICAgW1xmQlwtU1xmUnxc ZkJcLVwtc2VjdGlvblwtaGVhZGVyc1xmUnxcZkJcLVwtc2VjdGlvbnNcZlJdCi0gICAgICAgIFtc ZkJcLWdcZlJ8XGZCXC1cLXNlY3Rpb25cLWdyb3Vwc1xmUl0KLSAgICAgICAgW1xmQlwtdFxmUnxc ZkJcLVwtc2VjdGlvblwtZGV0YWlsc1xmUl0KLSAgICAgICAgW1xmQlwtZVxmUnxcZkJcLVwtaGVh ZGVyc1xmUl0KLSAgICAgICAgW1xmQlwtc1xmUnxcZkJcLVwtc3ltc1xmUnxcZkJcLVwtc3ltYm9s c1xmUl0KLSAgICAgICAgW1xmQlwtblxmUnxcZkJcLVwtbm90ZXNcZlJdCi0gICAgICAgIFtcZkJc LXJcZlJ8XGZCXC1cLXJlbG9jc1xmUl0KLSAgICAgICAgW1xmQlwtdVxmUnxcZkJcLVwtdW53aW5k XGZSXQotICAgICAgICBbXGZCXC1kXGZSfFxmQlwtXC1keW5hbWljXGZSXQotICAgICAgICBbXGZC XC1WXGZSfFxmQlwtXC12ZXJzaW9uXC1pbmZvXGZSXQotICAgICAgICBbXGZCXC1BXGZSfFxmQlwt XC1hcmNoXC1zcGVjaWZpY1xmUl0KLSAgICAgICAgW1xmQlwtRFxmUnxcZkJcLVwtdXNlXC1keW5h bWljXGZSXQotICAgICAgICBbXGZCXC14XGZSIDxudW1iZXIgb3IgbmFtZT58XGZCXC1cLWhleFwt ZHVtcD1cZlI8bnVtYmVyIG9yIG5hbWU+XQotICAgICAgICBbXGZCXC13W2xpYXBybWZGc29SXVxm UnwKLSAgICAgICAgIFxmQlwtXC1kZWJ1Z1wtZHVtcFxmUls9bGluZSw9aW5mbyw9YWJicmV2LD1w dWJuYW1lcyw9YXJhbmdlcyw9bWFjcm8sPWZyYW1lcyw9ZnJhbWVzXC1pbnRlcnAsPXN0ciw9bG9j LD1SYW5nZXNdXQotICAgICAgICBbXGZCXC1JXGZSfFxmQlwtaGlzdG9ncmFtXGZSXQotICAgICAg ICBbXGZCXC12XGZSfFxmQlwtXC12ZXJzaW9uXGZSXQotICAgICAgICBbXGZCXC1XXGZSfFxmQlwt XC13aWRlXGZSXQotICAgICAgICBbXGZCXC1IXGZSfFxmQlwtXC1oZWxwXGZSXQotICAgICAgICBc ZkllbGZmaWxlXGZSLi4uCi0uU0ggIkRFU0NSSVBUSU9OIgotLklYIEhlYWRlciAiREVTQ1JJUFRJ T04iCi1cJlxmQnJlYWRlbGZcZlIgZGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgb25lIG9yIG1v cmUgXHMtMUVMRlxzMCBmb3JtYXQgb2JqZWN0Ci1maWxlcy4gIFRoZSBvcHRpb25zIGNvbnRyb2wg d2hhdCBwYXJ0aWN1bGFyIGluZm9ybWF0aW9uIHRvIGRpc3BsYXkuCi0uUFAKLVwmXGZJZWxmZmls ZVxmUi4uLiBhcmUgdGhlIG9iamVjdCBmaWxlcyB0byBiZSBleGFtaW5lZC4gIDMyXC1iaXQgYW5k Ci02NFwtYml0IFxzLTFFTEZcczAgZmlsZXMgYXJlIHN1cHBvcnRlZCwgYXMgYXJlIGFyY2hpdmVz IGNvbnRhaW5pbmcgXHMtMUVMRlxzMCBmaWxlcy4KLS5QUAotVGhpcyBwcm9ncmFtIHBlcmZvcm1z IGEgc2ltaWxhciBmdW5jdGlvbiB0byBcZkJvYmpkdW1wXGZSIGJ1dCBpdAotZ29lcyBpbnRvIG1v cmUgZGV0YWlsIGFuZCBpdCBleGlzdHMgaW5kZXBlbmRlbnRseSBvZiB0aGUgXHMtMUJGRFxzMAot bGlicmFyeSwgc28gaWYgdGhlcmUgaXMgYSBidWcgaW4gXHMtMUJGRFxzMCB0aGVuIHJlYWRlbGYg d2lsbCBub3QgYmUKLWFmZmVjdGVkLgotLlNIICJPUFRJT05TIgotLklYIEhlYWRlciAiT1BUSU9O UyIKLVRoZSBsb25nIGFuZCBzaG9ydCBmb3JtcyBvZiBvcHRpb25zLCBzaG93biBoZXJlIGFzIGFs dGVybmF0aXZlcywgYXJlCi1lcXVpdmFsZW50LiAgQXQgbGVhc3Qgb25lIG9wdGlvbiBiZXNpZGVz IFxmQlwtdlxmUiBvciBcZkJcLUhcZlIgbXVzdCBiZQotZ2l2ZW4uCi0uSVAgIlxmQlwtYVxmUiIg NAotLklYIEl0ZW0gIi1hIgotLlBEIDAKLS5JUCAiXGZCXC1cLWFsbFxmUiIgNAotLklYIEl0ZW0g Ii0tYWxsIgotLlBECi1FcXVpdmFsZW50IHRvIHNwZWNpZnlpbmcgXGZCXC1cLWZpbGVcLWhlYWRl clxmUiwKLVwmXGZCXC1cLXByb2dyYW1cLWhlYWRlcnNcZlIsIFxmQlwtXC1zZWN0aW9uc1xmUiwg XGZCXC1cLXN5bWJvbHNcZlIsCi1cJlxmQlwtXC1yZWxvY3NcZlIsIFxmQlwtXC1keW5hbWljXGZS LCBcZkJcLVwtbm90ZXNcZlIgYW5kCi1cJlxmQlwtXC12ZXJzaW9uXC1pbmZvXGZSLgotLklQICJc ZkJcLWhcZlIiIDQKLS5JWCBJdGVtICItaCIKLS5QRCAwCi0uSVAgIlxmQlwtXC1maWxlXC1oZWFk ZXJcZlIiIDQKLS5JWCBJdGVtICItLWZpbGUtaGVhZGVyIgotLlBECi1EaXNwbGF5cyB0aGUgaW5m b3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBccy0xRUxGXHMwIGhlYWRlciBhdCB0aGUgc3RhcnQg b2YgdGhlCi1maWxlLgotLklQICJcZkJcLWxcZlIiIDQKLS5JWCBJdGVtICItbCIKLS5QRCAwCi0u SVAgIlxmQlwtXC1wcm9ncmFtXC1oZWFkZXJzXGZSIiA0Ci0uSVggSXRlbSAiLS1wcm9ncmFtLWhl YWRlcnMiCi0uSVAgIlxmQlwtXC1zZWdtZW50c1xmUiIgNAotLklYIEl0ZW0gIi0tc2VnbWVudHMi Ci0uUEQKLURpc3BsYXlzIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhlIGZpbGUncyBz ZWdtZW50IGhlYWRlcnMsIGlmIGl0Ci1oYXMgYW55LgotLklQICJcZkJcLVNcZlIiIDQKLS5JWCBJ dGVtICItUyIKLS5QRCAwCi0uSVAgIlxmQlwtXC1zZWN0aW9uc1xmUiIgNAotLklYIEl0ZW0gIi0t c2VjdGlvbnMiCi0uSVAgIlxmQlwtXC1zZWN0aW9uXC1oZWFkZXJzXGZSIiA0Ci0uSVggSXRlbSAi LS1zZWN0aW9uLWhlYWRlcnMiCi0uUEQKLURpc3BsYXlzIHRoZSBpbmZvcm1hdGlvbiBjb250YWlu ZWQgaW4gdGhlIGZpbGUncyBzZWN0aW9uIGhlYWRlcnMsIGlmIGl0Ci1oYXMgYW55LgotLklQICJc ZkJcLWdcZlIiIDQKLS5JWCBJdGVtICItZyIKLS5QRCAwCi0uSVAgIlxmQlwtXC1zZWN0aW9uXC1n cm91cHNcZlIiIDQKLS5JWCBJdGVtICItLXNlY3Rpb24tZ3JvdXBzIgotLlBECi1EaXNwbGF5cyB0 aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBmaWxlJ3Mgc2VjdGlvbiBncm91cHMsIGlm IGl0Ci1oYXMgYW55LgotLklQICJcZkJcLXRcZlIiIDQKLS5JWCBJdGVtICItdCIKLS5QRCAwCi0u SVAgIlxmQlwtXC1zZWN0aW9uXC1kZXRhaWxzXGZSIiA0Ci0uSVggSXRlbSAiLS1zZWN0aW9uLWRl dGFpbHMiCi0uUEQKLURpc3BsYXlzIHRoZSBkZXRhaWxlZCBzZWN0aW9uIGluZm9ybWF0aW9uLiBJ bXBsaWVzIFxmQlwtU1xmUi4KLS5JUCAiXGZCXC1zXGZSIiA0Ci0uSVggSXRlbSAiLXMiCi0uUEQg MAotLklQICJcZkJcLVwtc3ltYm9sc1xmUiIgNAotLklYIEl0ZW0gIi0tc3ltYm9scyIKLS5JUCAi XGZCXC1cLXN5bXNcZlIiIDQKLS5JWCBJdGVtICItLXN5bXMiCi0uUEQKLURpc3BsYXlzIHRoZSBl bnRyaWVzIGluIHN5bWJvbCB0YWJsZSBzZWN0aW9uIG9mIHRoZSBmaWxlLCBpZiBpdCBoYXMgb25l LgotLklQICJcZkJcLWVcZlIiIDQKLS5JWCBJdGVtICItZSIKLS5QRCAwCi0uSVAgIlxmQlwtXC1o ZWFkZXJzXGZSIiA0Ci0uSVggSXRlbSAiLS1oZWFkZXJzIgotLlBECi1EaXNwbGF5IGFsbCB0aGUg aGVhZGVycyBpbiB0aGUgZmlsZS4gIEVxdWl2YWxlbnQgdG8gXGZCXC1oIFwtbCBcLVNcZlIuCi0u SVAgIlxmQlwtblxmUiIgNAotLklYIEl0ZW0gIi1uIgotLlBEIDAKLS5JUCAiXGZCXC1cLW5vdGVz XGZSIiA0Ci0uSVggSXRlbSAiLS1ub3RlcyIKLS5QRAotRGlzcGxheXMgdGhlIGNvbnRlbnRzIG9m IHRoZSBccy0xTk9URVxzMCBzZWdtZW50cyBhbmQvb3Igc2VjdGlvbnMsIGlmIGFueS4KLS5JUCAi XGZCXC1yXGZSIiA0Ci0uSVggSXRlbSAiLXIiCi0uUEQgMAotLklQICJcZkJcLVwtcmVsb2NzXGZS IiA0Ci0uSVggSXRlbSAiLS1yZWxvY3MiCi0uUEQKLURpc3BsYXlzIHRoZSBjb250ZW50cyBvZiB0 aGUgZmlsZSdzIHJlbG9jYXRpb24gc2VjdGlvbiwgaWYgaXQgaGFzIG9uZS4KLS5JUCAiXGZCXC11 XGZSIiA0Ci0uSVggSXRlbSAiLXUiCi0uUEQgMAotLklQICJcZkJcLVwtdW53aW5kXGZSIiA0Ci0u SVggSXRlbSAiLS11bndpbmQiCi0uUEQKLURpc3BsYXlzIHRoZSBjb250ZW50cyBvZiB0aGUgZmls ZSdzIHVud2luZCBzZWN0aW9uLCBpZiBpdCBoYXMgb25lLiAgT25seQotdGhlIHVud2luZCBzZWN0 aW9ucyBmb3IgXHMtMUlBNjRcczAgXHMtMUVMRlxzMCBmaWxlcyBhcmUgY3VycmVudGx5IHN1cHBv cnRlZC4KLS5JUCAiXGZCXC1kXGZSIiA0Ci0uSVggSXRlbSAiLWQiCi0uUEQgMAotLklQICJcZkJc LVwtZHluYW1pY1xmUiIgNAotLklYIEl0ZW0gIi0tZHluYW1pYyIKLS5QRAotRGlzcGxheXMgdGhl IGNvbnRlbnRzIG9mIHRoZSBmaWxlJ3MgZHluYW1pYyBzZWN0aW9uLCBpZiBpdCBoYXMgb25lLgot LklQICJcZkJcLVZcZlIiIDQKLS5JWCBJdGVtICItViIKLS5QRCAwCi0uSVAgIlxmQlwtXC12ZXJz aW9uXC1pbmZvXGZSIiA0Ci0uSVggSXRlbSAiLS12ZXJzaW9uLWluZm8iCi0uUEQKLURpc3BsYXlz IHRoZSBjb250ZW50cyBvZiB0aGUgdmVyc2lvbiBzZWN0aW9ucyBpbiB0aGUgZmlsZSwgaXQgdGhl eQotZXhpc3QuCi0uSVAgIlxmQlwtQVxmUiIgNAotLklYIEl0ZW0gIi1BIgotLlBEIDAKLS5JUCAi XGZCXC1cLWFyY2hcLXNwZWNpZmljXGZSIiA0Ci0uSVggSXRlbSAiLS1hcmNoLXNwZWNpZmljIgot LlBECi1EaXNwbGF5cyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgaW5mb3JtYXRpb24gaW4gdGhlIGZp bGUsIGlmIHRoZXJlCi1pcyBhbnkuCi0uSVAgIlxmQlwtRFxmUiIgNAotLklYIEl0ZW0gIi1EIgot LlBEIDAKLS5JUCAiXGZCXC1cLXVzZVwtZHluYW1pY1xmUiIgNAotLklYIEl0ZW0gIi0tdXNlLWR5 bmFtaWMiCi0uUEQKLVdoZW4gZGlzcGxheWluZyBzeW1ib2xzLCB0aGlzIG9wdGlvbiBtYWtlcyBc ZkJyZWFkZWxmXGZSIHVzZSB0aGUKLXN5bWJvbCB0YWJsZSBpbiB0aGUgZmlsZSdzIGR5bmFtaWMg c2VjdGlvbiwgcmF0aGVyIHRoYW4gdGhlIG9uZSBpbiB0aGUKLXN5bWJvbHMgc2VjdGlvbi4KLS5J UCAiXGZCXC14IDxudW1iZXIgb3IgbmFtZT5cZlIiIDQKLS5JWCBJdGVtICIteCA8bnVtYmVyIG9y IG5hbWU+IgotLlBEIDAKLS5JUCAiXGZCXC1cLWhleFwtZHVtcD08bnVtYmVyIG9yIG5hbWU+XGZS IiA0Ci0uSVggSXRlbSAiLS1oZXgtZHVtcD08bnVtYmVyIG9yIG5hbWU+IgotLlBECi1EaXNwbGF5 cyB0aGUgY29udGVudHMgb2YgdGhlIGluZGljYXRlZCBzZWN0aW9uIGFzIGEgaGV4YWRlY2ltYWwg ZHVtcC4KLUEgbnVtYmVyIGlkZW50aWZpZXMgYSBwYXJ0aWN1bGFyIHNlY3Rpb24gYnkgaW5kZXgg aW4gdGhlIHNlY3Rpb24gdGFibGU7Ci1hbnkgb3RoZXIgc3RyaW5nIGlkZW50aWZpZXMgYWxsIHNl Y3Rpb25zIHdpdGggdGhhdCBuYW1lIGluIHRoZSBvYmplY3QgZmlsZS4KLS5JUCAiXGZCXC13W2xp YXBybWZGc29SXVxmUiIgNAotLklYIEl0ZW0gIi13W2xpYXBybWZGc29SXSIKLS5QRCAwCi0uSVAg IlxmQlwtXC1kZWJ1Z1wtZHVtcFs9bGluZSw9aW5mbyw9YWJicmV2LD1wdWJuYW1lcyw9YXJhbmdl cyw9bWFjcm8sPWZyYW1lcyw9ZnJhbWVzXC1pbnRlcnAsPXN0ciw9bG9jLD1SYW5nZXNdXGZSIiA0 Ci0uSVggSXRlbSAiLS1kZWJ1Zy1kdW1wWz1saW5lLD1pbmZvLD1hYmJyZXYsPXB1Ym5hbWVzLD1h cmFuZ2VzLD1tYWNybyw9ZnJhbWVzLD1mcmFtZXMtaW50ZXJwLD1zdHIsPWxvYyw9UmFuZ2VzXSIK LS5QRAotRGlzcGxheXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBkZWJ1ZyBzZWN0aW9ucyBpbiB0aGUg ZmlsZSwgaWYgYW55IGFyZQotcHJlc2VudC4gIElmIG9uZSBvZiB0aGUgb3B0aW9uYWwgbGV0dGVy cyBvciB3b3JkcyBmb2xsb3dzIHRoZSBzd2l0Y2gKLXRoZW4gb25seSBkYXRhIGZvdW5kIGluIHRo b3NlIHNwZWNpZmljIHNlY3Rpb25zIHdpbGwgYmUgZHVtcGVkLgotLklQICJcZkJcLUlcZlIiIDQK LS5JWCBJdGVtICItSSIKLS5QRCAwCi0uSVAgIlxmQlwtXC1oaXN0b2dyYW1cZlIiIDQKLS5JWCBJ dGVtICItLWhpc3RvZ3JhbSIKLS5QRAotRGlzcGxheSBhIGhpc3RvZ3JhbSBvZiBidWNrZXQgbGlz dCBsZW5ndGhzIHdoZW4gZGlzcGxheWluZyB0aGUgY29udGVudHMKLW9mIHRoZSBzeW1ib2wgdGFi bGVzLgotLklQICJcZkJcLXZcZlIiIDQKLS5JWCBJdGVtICItdiIKLS5QRCAwCi0uSVAgIlxmQlwt XC12ZXJzaW9uXGZSIiA0Ci0uSVggSXRlbSAiLS12ZXJzaW9uIgotLlBECi1EaXNwbGF5IHRoZSB2 ZXJzaW9uIG51bWJlciBvZiByZWFkZWxmLgotLklQICJcZkJcLVdcZlIiIDQKLS5JWCBJdGVtICIt VyIKLS5QRCAwCi0uSVAgIlxmQlwtXC13aWRlXGZSIiA0Ci0uSVggSXRlbSAiLS13aWRlIgotLlBE Ci1Eb24ndCBicmVhayBvdXRwdXQgbGluZXMgdG8gZml0IGludG8gODAgY29sdW1ucy4gQnkgZGVm YXVsdAotXCZcZkJyZWFkZWxmXGZSIGJyZWFrcyBzZWN0aW9uIGhlYWRlciBhbmQgc2VnbWVudCBs aXN0aW5nIGxpbmVzIGZvcgotNjRcLWJpdCBccy0xRUxGXHMwIGZpbGVzLCBzbyB0aGF0IHRoZXkg Zml0IGludG8gODAgY29sdW1ucy4gVGhpcyBvcHRpb24gY2F1c2VzCi1cJlxmQnJlYWRlbGZcZlIg dG8gcHJpbnQgZWFjaCBzZWN0aW9uIGhlYWRlciByZXNwLiBlYWNoIHNlZ21lbnQgb25lIGEKLXNp bmdsZSBsaW5lLCB3aGljaCBpcyBmYXIgbW9yZSByZWFkYWJsZSBvbiB0ZXJtaW5hbHMgd2lkZXIg dGhhbiA4MCBjb2x1bW5zLgotLklQICJcZkJcLUhcZlIiIDQKLS5JWCBJdGVtICItSCIKLS5QRCAw Ci0uSVAgIlxmQlwtXC1oZWxwXGZSIiA0Ci0uSVggSXRlbSAiLS1oZWxwIgotLlBECi1EaXNwbGF5 IHRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucyB1bmRlcnN0b29kIGJ5IFxmQnJlYWRlbGZcZlIuCi0u SVAgIlxmQkBcZlJcZklmaWxlXGZSIiA0Ci0uSVggSXRlbSAiQGZpbGUiCi1SZWFkIGNvbW1hbmQt bGluZSBvcHRpb25zIGZyb20gXGZJZmlsZVxmUi4gIFRoZSBvcHRpb25zIHJlYWQgYXJlCi1pbnNl cnRlZCBpbiBwbGFjZSBvZiB0aGUgb3JpZ2luYWwgQFxmSWZpbGVcZlIgb3B0aW9uLiAgSWYgXGZJ ZmlsZVxmUgotZG9lcyBub3QgZXhpc3QsIG9yIGNhbm5vdCBiZSByZWFkLCB0aGVuIHRoZSBvcHRp b24gd2lsbCBiZSB0cmVhdGVkCi1saXRlcmFsbHksIGFuZCBub3QgcmVtb3ZlZC4KLS5TcAotT3B0 aW9ucyBpbiBcZklmaWxlXGZSIGFyZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gIEEgd2hpdGVz cGFjZQotY2hhcmFjdGVyIG1heSBiZSBpbmNsdWRlZCBpbiBhbiBvcHRpb24gYnkgc3Vycm91bmRp bmcgdGhlIGVudGlyZQotb3B0aW9uIGluIGVpdGhlciBzaW5nbGUgb3IgZG91YmxlIHF1b3Rlcy4g IEFueSBjaGFyYWN0ZXIgKGluY2x1ZGluZyBhCi1iYWNrc2xhc2gpIG1heSBiZSBpbmNsdWRlZCBi eSBwcmVmaXhpbmcgdGhlIGNoYXJhY3RlciB0byBiZSBpbmNsdWRlZAotd2l0aCBhIGJhY2tzbGFz aC4gIFRoZSBcZklmaWxlXGZSIG1heSBpdHNlbGYgY29udGFpbiBhZGRpdGlvbmFsCi1AXGZJZmls ZVxmUiBvcHRpb25zOyBhbnkgc3VjaCBvcHRpb25zIHdpbGwgYmUgcHJvY2Vzc2VkIHJlY3Vyc2l2 ZWx5LgotLlNIICJTRUUgQUxTTyIKLS5JWCBIZWFkZXIgIlNFRSBBTFNPIgotXCZcZklvYmpkdW1w XGZSXHwoMSksIGFuZCB0aGUgSW5mbyBlbnRyaWVzIGZvciBcZkliaW51dGlsc1xmUi4KLS5TSCAi Q09QWVJJR0hUIgotLklYIEhlYWRlciAiQ09QWVJJR0hUIgotQ29weXJpZ2h0IChjKSAxOTkxLCAx OTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAotMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLS5QUAotUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1 dGUgYW5kL29yIG1vZGlmeSB0aGlzIGRvY3VtZW50Ci11bmRlciB0aGUgdGVybXMgb2YgdGhlIFxz LTFHTlVcczAgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4xCi1vciBhbnkg bGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsK LXdpdGggbm8gSW52YXJpYW50IFNlY3Rpb25zLCB3aXRoIG5vIEZyb250LUNvdmVyIFRleHRzLCBh bmQgd2l0aCBubwotQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBp bmNsdWRlZCBpbiB0aGUKLXNlY3Rpb24gZW50aXRsZWQgXCooTCJccy0xR05VXHMwIEZyZWUgRG9j dW1lbnRhdGlvbiBMaWNlbnNlXCooUiIuCmRpZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGls cy9yZWFkZWxmL01ha2VmaWxlLmRlcGVuZCBiL2dudS91c3IuYmluL2JpbnV0aWxzL3JlYWRlbGYv TWFrZWZpbGUuZGVwZW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotLS0gYS9nbnUvdXNyLmJp bi9iaW51dGlscy9yZWFkZWxmL01ha2VmaWxlLmRlcGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIx ICswLDAgQEAKLSMgJEZyZWVCU0QkCi0jIEF1dG9nZW5lcmF0ZWQgLSBkbyBOT1QgZWRpdCEKLQot RElSREVQUyA9IFwKLQlnbnUvbGliL2NzdSBcCi0JZ251L2xpYi9saWJnY2MgXAotCWdudS91c3Iu YmluL2JpbnV0aWxzL2xpYmJmZCBcCi0JZ251L3Vzci5iaW4vYmludXRpbHMvbGliYmludXRpbHMg XAotCWdudS91c3IuYmluL2JpbnV0aWxzL2xpYmliZXJ0eSBcCi0JaW5jbHVkZSBcCi0JaW5jbHVk ZS94bG9jYWxlIFwKLQlsaWIvJHtDU1VfRElSfSBcCi0JbGliL2xpYmMgXAotCWxpYi9saWJjb21w aWxlcl9ydCBcCi0KLQotLmluY2x1ZGUgPGRpcmRlcHMubWs+Ci0KLS5pZiAke0RFUF9SRUxESVJ9 ID09ICR7X0RFUF9SRUxESVJ9Ci0jIGxvY2FsIGRlcGVuZGVuY2llcyAtIG5lZWRlZCBmb3IgLWpO IGluIGNsZWFuIHRyZWUKLS5lbmRpZgpkaWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4vYmludXRpbHMv cmVhZGVsZi9NYWtlZmlsZSBiL2dudS91c3IuYmluL2JpbnV0aWxzL3JlYWRlbGYvTWFrZWZpbGUK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL3JlYWRl bGYvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0jICRGcmVlQlNEJAot Ci0uaW5jbHVkZSAiLi4vTWFrZWZpbGUuaW5jMCIKLQotLlBBVEg6ICR7U1JDRElSfS9iaW51dGls cyAke1NSQ0RJUn0vYmludXRpbHMvZG9jCi0KLSMgTm8gYS5vdXQgdnMuIEVMRiB2ZXJzaW9uIHNv IGRvbid0IGluc3RhbGwgaW4gL3Vzci9saWJleGVjL2VsZgotQklORElSPS91c3IvYmluCi0KLVBS T0c9CXJlYWRlbGYKLVNSQ1M9CSR7UFJPR30uYwotQ0ZMQUdTKz0gLURfR05VX1NPVVJDRQotQ0ZM QUdTKz0gLUkkey5DVVJESVJ9LyR7UkVMVE9QfS9saWJiaW51dGlscyAtSSR7U1JDRElSfS9iaW51 dGlscwotCi1EUEFERD0JJHtSRUxUT1B9L2xpYmJpbnV0aWxzL2xpYmJpbnV0aWxzLmEKLURQQURE Kz0JJHtSRUxUT1B9L2xpYmJmZC9saWJiZmQuYQotRFBBREQrPQkke1JFTFRPUH0vbGliaWJlcnR5 L2xpYmliZXJ0eS5hCi1MREFERD0JJHtEUEFERH0KLQotLmluY2x1ZGUgPGJzZC5wcm9nLm1rPgpk aWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4vYmludXRpbHMvcmFubGliL01ha2VmaWxlLmRlcGVuZCBi L2dudS91c3IuYmluL2JpbnV0aWxzL3JhbmxpYi9NYWtlZmlsZS5kZXBlbmQKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL3JhbmxpYi9NYWtlZmlsZS5k ZXBlbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICRGcmVlQlNEJAotIyBBdXRv Z2VuZXJhdGVkIC0gZG8gTk9UIGVkaXQhCi0KLURFUF9SRUxESVIgOj0gJHtfUEFSU0VESVI6Uywk e1NSQ1RPUH0vLCx9Ci0KLURJUkRFUFMgPSBcCi0JZ251L3Vzci5iaW4vYmludXRpbHMvbGliYmZk IFwKLQlnbnUvdXNyLmJpbi9iaW51dGlscy9saWJiaW51dGlscyBcCi0JZ251L3Vzci5iaW4vYmlu dXRpbHMvbGliaWJlcnR5IFwKLQlpbmNsdWRlIFwKLQlpbmNsdWRlL3hsb2NhbGUgXAotCWxpYi8k e0NTVV9ESVJ9IFwKLQlsaWIvbGliYyBcCi0JbGliL2xpYmNvbXBpbGVyX3J0IFwKLQotCi0uaW5j bHVkZSA8ZGlyZGVwcy5taz4KLQotLmlmICR7REVQX1JFTERJUn0gPT0gJHtfREVQX1JFTERJUn0K LSMgbG9jYWwgZGVwZW5kZW5jaWVzIC0gbmVlZGVkIGZvciAtak4gaW4gY2xlYW4gdHJlZQotLmVu ZGlmCmRpZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGlscy9ubS9ubS4xIGIvZ251L3Vzci5i aW4vYmludXRpbHMvbm0vbm0uMQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLS0tIGEvZ251L3Vz ci5iaW4vYmludXRpbHMvbm0vbm0uMQorKysgL2Rldi9udWxsCkBAIC0xLDQ1MCArMCwwIEBACi0u XCIgJEZyZWVCU0QkCi0uXCIgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUG9kOjpNYW4gMi4y MyAoUG9kOjpTaW1wbGUgMy4xNCkKLS5cIgotLlwiIFN0YW5kYXJkIHByZWFtYmxlOgotLlwiID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLmRlIFNwIFwiIFZlcnRpY2FsIHNwYWNlICh3aGVuIHdlIGNhbid0IHVz ZSAuUFApCi0uaWYgdCAuc3AgLjV2Ci0uaWYgbiAuc3AKLS4uCi0uZGUgVmIgXCIgQmVnaW4gdmVy YmF0aW0gdGV4dAotLmZ0IENXCi0ubmYKLS5uZSBcXCQxCi0uLgotLmRlIFZlIFwiIEVuZCB2ZXJi YXRpbSB0ZXh0Ci0uZnQgUgotLmZpCi0uLgotLlwiIFNldCB1cCBzb21lIGNoYXJhY3RlciB0cmFu c2xhdGlvbnMgYW5kIHByZWRlZmluZWQgc3RyaW5ncy4gIFwqKC0tIHdpbGwKLS5cIiBnaXZlIGFu IHVuYnJlYWthYmxlIGRhc2gsIFwqKFBJIHdpbGwgZ2l2ZSBwaSwgXCooTCIgd2lsbCBnaXZlIGEg bGVmdAotLlwiIGRvdWJsZSBxdW90ZSwgYW5kIFwqKFIiIHdpbGwgZ2l2ZSBhIHJpZ2h0IGRvdWJs ZSBxdW90ZS4gIFwqKEMrIHdpbGwKLS5cIiBnaXZlIGEgbmljZXIgQysrLiAgQ2FwaXRhbCBvbWVn YSBpcyB1c2VkIHRvIGRvIHVuYnJlYWthYmxlIGRhc2hlcyBhbmQKLS5cIiB0aGVyZWZvcmUgd29u J3QgYmUgYXZhaWxhYmxlLiAgXCooQ2AgYW5kIFwqKEMnIGV4cGFuZCB0byBgJyBpbiBucm9mZiwK LS5cIiBub3RoaW5nIGluIHRyb2ZmLCBmb3IgdXNlIHdpdGggQzw+LgotLnRyIFwoKlctCi0uZHMg QysgQ1x2Jy0uMXYnXGgnLTFwJ1xzLTIrXGgnLTFwJytcczBcdicuMXYnXGgnLTFwJwotLmllIG4g XHtcCi0uICAgIGRzIC0tIFwoKlctCi0uICAgIGRzIFBJIHBpCi0uICAgIGlmIChcbiguSD00dSkm KDFtPTI0dSkgLmRzIC0tIFwoKldcaCctMTJ1J1woKldcaCctMTJ1Jy1cIiBkaWFibG8gMTAgcGl0 Y2gKLS4gICAgaWYgKFxuKC5IPTR1KSYoMW09MjB1KSAuZHMgLS0gXCgqV1xoJy0xMnUnXCgqV1xo Jy04dSctXCIgIGRpYWJsbyAxMiBwaXRjaAotLiAgICBkcyBMIiAiIgotLiAgICBkcyBSIiAiIgot LiAgICBkcyBDYCAiIgotLiAgICBkcyBDJyAiIgotJ2JyXH0KLS5lbFx7XAotLiAgICBkcyAtLSBc fFwoZW1cfAotLiAgICBkcyBQSSBcKCpwCi0uICAgIGRzIEwiIGBgCi0uICAgIGRzIFIiICcnCi0n YnJcfQotLlwiCi0uXCIgRXNjYXBlIHNpbmdsZSBxdW90ZXMgaW4gbGl0ZXJhbCBzdHJpbmdzIGZy b20gZ3JvZmYncyBVbmljb2RlIHRyYW5zZm9ybS4KLS5pZSBcbiguZyAuZHMgQXEgXChhcQotLmVs ICAgICAgIC5kcyBBcSAnCi0uXCIKLS5cIiBJZiB0aGUgRiByZWdpc3RlciBpcyB0dXJuZWQgb24s IHdlJ2xsIGdlbmVyYXRlIGluZGV4IGVudHJpZXMgb24gc3RkZXJyIGZvcgotLlwiIHRpdGxlcyAo LlRIKSwgaGVhZGVycyAoLlNIKSwgc3Vic2VjdGlvbnMgKC5TUyksIGl0ZW1zICguSXApLCBhbmQg aW5kZXgKLS5cIiBlbnRyaWVzIG1hcmtlZCB3aXRoIFg8PiBpbiBQT0QuICBPZiBjb3Vyc2UsIHlv dSdsbCBoYXZlIHRvIHByb2Nlc3MgdGhlCi0uXCIgb3V0cHV0IHlvdXJzZWxmIGluIHNvbWUgbWVh bmluZ2Z1bCBmYXNoaW9uLgotLmllIFxuRiBce1wKLS4gICAgZGUgSVgKLS4gICAgdG0gSW5kZXg6 XFwkMVx0XFxuJVx0IlxcJDIiCi0uLgotLiAgICBuciAlIDAKLS4gICAgcnIgRgotLlx9Ci0uZWwg XHtcCi0uICAgIGRlIElYCi0uLgotLlx9Ci0uXCIKLS5cIiBBY2NlbnQgbWFyayBkZWZpbml0aW9u cyAoQCgjKW1zLmFjYyAxLjUgODgvMDIvMDggU01JOyBmcm9tIFVDQiA0LjIpLgotLlwiIEZlYXIu ICBSdW4uICBTYXZlIHlvdXJzZWxmLiAgTm8gdXNlci1zZXJ2aWNlYWJsZSBwYXJ0cy4KLS4gICAg XCIgZnVkZ2UgZmFjdG9ycyBmb3IgbnJvZmYgYW5kIHRyb2ZmCi0uaWYgbiBce1wKLS4gICAgZHMg I0ggMAotLiAgICBkcyAjViAuOG0KLS4gICAgZHMgI0YgLjNtCi0uICAgIGRzICNbIFxmMQotLiAg ICBkcyAjXSBcZlAKLS5cfQotLmlmIHQgXHtcCi0uICAgIGRzICNIICgoMXUtKFxcXFxuKC5mdSUy dSkpKi4xM20pCi0uICAgIGRzICNWIC42bQotLiAgICBkcyAjRiAwCi0uICAgIGRzICNbIFwmCi0u ICAgIGRzICNdIFwmCi0uXH0KLS4gICAgXCIgc2ltcGxlIGFjY2VudHMgZm9yIG5yb2ZmIGFuZCB0 cm9mZgotLmlmIG4gXHtcCi0uICAgIGRzICcgXCYKLS4gICAgZHMgYCBcJgotLiAgICBkcyBeIFwm Ci0uICAgIGRzICwgXCYKLS4gICAgZHMgfiB+Ci0uICAgIGRzIC8KLS5cfQotLmlmIHQgXHtcCi0u ICAgIGRzICcgXFxrOlxoJy0oXFxuKC53dSo4LzEwLVwqKCNIKSdcJ1xoInxcXG46dSIKLS4gICAg ZHMgYCBcXGs6XGgnLShcXG4oLnd1KjgvMTAtXCooI0gpJ1xgXGgnfFxcbjp1JwotLiAgICBkcyBe IFxcazpcaCctKFxcbigud3UqMTAvMTEtXCooI0gpJ15caCd8XFxuOnUnCi0uICAgIGRzICwgXFxr OlxoJy0oXFxuKC53dSo4LzEwKScsXGgnfFxcbjp1JwotLiAgICBkcyB+IFxcazpcaCctKFxcbigu d3UtXCooI0gtLjFtKSd+XGgnfFxcbjp1JwotLiAgICBkcyAvIFxcazpcaCctKFxcbigud3UqOC8x MC1cKigjSCknXHpcKHNsXGgnfFxcbjp1JwotLlx9Ci0uICAgIFwiIHRyb2ZmIGFuZCAoZGFpc3kt d2hlZWwpIG5yb2ZmIGFjY2VudHMKLS5kcyA6IFxcazpcaCctKFxcbigud3UqOC8xMC1cKigjSCsu MW0rXCooI0YpJ1x2Jy1cKigjVidcei5caCcuMm0rXCooI0YnLlxoJ3xcXG46dSdcdidcKigjVicK LS5kcyA4IFxoJ1wqKCNIJ1woKmJcaCctXCooI0gnCi0uZHMgbyBcXGs6XGgnLShcXG4oLnd1K1x3 J1woZGUndS1cKigjSCkvMnUnXHYnLS4zbidcKigjW1x6XChkZVx2Jy4zbidcaCd8XFxuOnUnXCoo I10KLS5kcyBkLSBcaCdcKigjSCdcKHBkXGgnLVx3J34ndSdcdictLjI1bSdcZjJcKGh5XGZQXHYn LjI1bSdcaCctXCooI0gnCi0uZHMgRC0gRFxcazpcaCctXHcnRCd1J1x2Jy0uMTFtJ1x6XChoeVx2 Jy4xMW0nXGgnfFxcbjp1JwotLmRzIHRoIFwqKCNbXHYnLjNtJ1xzKzFJXHMtMVx2Jy0uM20nXGgn LShcdydJJ3UqMi8zKSdccy0xb1xzKzFcKigjXQotLmRzIFRoIFwqKCNbXHMrMklccy0yXGgnLVx3 J0kndSozLzUnXHYnLS4zbSdvXHYnLjNtJ1wqKCNdCi0uZHMgYWUgYVxoJy0oXHcnYSd1KjQvMTAp J2UKLS5kcyBBZSBBXGgnLShcdydBJ3UqNC8xMCknRQotLiAgICBcIiBjb3JyZWN0aW9ucyBmb3Ig dnJvZmYKLS5pZiB2IC5kcyB+IFxcazpcaCctKFxcbigud3UqOS8xMC1cKigjSCknXHMtMlx1flxk XHMrMlxoJ3xcXG46dScKLS5pZiB2IC5kcyBeIFxcazpcaCctKFxcbigud3UqMTAvMTEtXCooI0gp J1x2Jy0uNG0nXlx2Jy40bSdcaCd8XFxuOnUnCi0uICAgIFwiIGZvciBsb3cgcmVzb2x1dGlvbiBk ZXZpY2VzIChjcnQgYW5kIGxwcikKLS5pZiBcbiguSD4yMyAuaWYgXG4oLlY+MTkgXAotXHtcCi0u ICAgIGRzIDogZQotLiAgICBkcyA4IHNzCi0uICAgIGRzIG8gYQotLiAgICBkcyBkLSBkXGgnLTEn XChnYQotLiAgICBkcyBELSBEXGgnLTEnXChoeQotLiAgICBkcyB0aCBcbydicCcKLS4gICAgZHMg VGggXG8nTFAnCi0uICAgIGRzIGFlIGFlCi0uICAgIGRzIEFlIEFFCi0uXH0KLS5ybSAjWyAjXSAj SCAjViAjRiBDCi0uXCIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0uXCIKLS5JWCBUaXRsZSAiTk0gMSIKLS5U SCBOTSAxICIyMDEwLTEwLTMwIiAiYmludXRpbHMtMi4xNy41MCIgIkdOVSBEZXZlbG9wbWVudCBU b29scyIKLS5cIiBGb3IgbnJvZmYsIHR1cm4gb2ZmIGp1c3RpZmljYXRpb24uICBBbHdheXMgdHVy biBvZmYgaHlwaGVuYXRpb247IGl0IG1ha2VzCi0uXCIgd2F5IHRvbyBtYW55IG1pc3Rha2VzIGlu IHRlY2huaWNhbCBkb2N1bWVudHMuCi0uaWYgbiAuYWQgbAotLm5oCi0uU0ggIk5BTUUiCi1ubSBc LSBsaXN0IHN5bWJvbHMgZnJvbSBvYmplY3QgZmlsZXMKLS5TSCAiU1lOT1BTSVMiCi0uSVggSGVh ZGVyICJTWU5PUFNJUyIKLW5tIFtcZkJcLWFcZlJ8XGZCXC1cLWRlYnVnXC1zeW1zXGZSXSBbXGZC XC1nXGZSfFxmQlwtXC1leHRlcm5cLW9ubHlcZlJdCi0gICBbXGZCXC1CXGZSXSBbXGZCXC1DXGZS fFxmQlwtXC1kZW1hbmdsZVxmUls9XGZJc3R5bGVcZlJdXSBbXGZCXC1EXGZSfFxmQlwtXC1keW5h bWljXGZSXQotICAgW1xmQlwtU1xmUnxcZkJcLVwtcHJpbnRcLXNpemVcZlJdIFtcZkJcLXNcZlJ8 XGZCXC1cLXByaW50XC1hcm1hcFxmUl0KLSAgIFtcZkJcLUFcZlJ8XGZCXC1vXGZSfFxmQlwtXC1w cmludFwtZmlsZVwtbmFtZVxmUl1bXGZCXC1cLXNwZWNpYWxcLXN5bXNcZlJdCi0gICBbXGZCXC1u XGZSfFxmQlwtdlxmUnxcZkJcLVwtbnVtZXJpY1wtc29ydFxmUl0gW1xmQlwtcFxmUnxcZkJcLVwt bm9cLXNvcnRcZlJdCi0gICBbXGZCXC1yXGZSfFxmQlwtXC1yZXZlcnNlXC1zb3J0XGZSXSBbXGZC XC1cLXNpemVcLXNvcnRcZlJdIFtcZkJcLXVcZlJ8XGZCXC1cLXVuZGVmaW5lZFwtb25seVxmUl0K LSAgIFtcZkJcLXRcZlIgXGZJcmFkaXhcZlJ8XGZCXC1cLXJhZGl4PVxmUlxmSXJhZGl4XGZSXSBb XGZCXC1QXGZSfFxmQlwtXC1wb3J0YWJpbGl0eVxmUl0KLSAgIFtcZkJcLVwtdGFyZ2V0PVxmUlxm SWJmZG5hbWVcZlJdIFtcZkJcLWZcZlJcZklmb3JtYXRcZlJ8XGZCXC1cLWZvcm1hdD1cZlJcZklm b3JtYXRcZlJdCi0gICBbXGZCXC1cLWRlZmluZWRcLW9ubHlcZlJdIFtcZkJcLWxcZlJ8XGZCXC1c LWxpbmVcLW51bWJlcnNcZlJdIFtcZkJcLVwtbm9cLWRlbWFuZ2xlXGZSXQotICAgW1xmQlwtVlxm UnxcZkJcLVwtdmVyc2lvblxmUl0gW1xmQlwtWCAzMl82NFxmUl0gW1xmQlwtXC1oZWxwXGZSXSAg W1xmSW9iamZpbGVcZlIuLi5dCi0uU0ggIkRFU0NSSVBUSU9OIgotLklYIEhlYWRlciAiREVTQ1JJ UFRJT04iCi1cJlxzLTFHTlVcczAgXGZCbm1cZlIgbGlzdHMgdGhlIHN5bWJvbHMgZnJvbSBvYmpl Y3QgZmlsZXMgXGZJb2JqZmlsZVxmUi4uLi4KLUlmIG5vIG9iamVjdCBmaWxlcyBhcmUgbGlzdGVk IGFzIGFyZ3VtZW50cywgXGZCbm1cZlIgYXNzdW1lcyB0aGUgZmlsZQotXCZcZklhLm91dFxmUi4K LS5QUAotRm9yIGVhY2ggc3ltYm9sLCBcZkJubVxmUiBzaG93czoKLS5JUCAiXChidSIgNAotVGhl IHN5bWJvbCB2YWx1ZSwgaW4gdGhlIHJhZGl4IHNlbGVjdGVkIGJ5IG9wdGlvbnMgKHNlZSBiZWxv dyksIG9yCi1oZXhhZGVjaW1hbCBieSBkZWZhdWx0LgotLklQICJcKGJ1IiA0Ci1UaGUgc3ltYm9s IHR5cGUuICBBdCBsZWFzdCB0aGUgZm9sbG93aW5nIHR5cGVzIGFyZSB1c2VkOyBvdGhlcnMgYXJl LCBhcwotd2VsbCwgZGVwZW5kaW5nIG9uIHRoZSBvYmplY3QgZmlsZSBmb3JtYXQuICBJZiBsb3dl cmNhc2UsIHRoZSBzeW1ib2wgaXMKLWxvY2FsOyBpZiB1cHBlcmNhc2UsIHRoZSBzeW1ib2wgaXMg Z2xvYmFsIChleHRlcm5hbCkuCi0uUlMgNAotLmllIG4gLklQICIiIkEiIiIgNAotLmVsIC5JUCAi XGYoQ1dBXGZSIiA0Ci0uSVggSXRlbSAiQSIKLVRoZSBzeW1ib2wncyB2YWx1ZSBpcyBhYnNvbHV0 ZSwgYW5kIHdpbGwgbm90IGJlIGNoYW5nZWQgYnkgZnVydGhlcgotbGlua2luZy4KLS5pZSBuIC5J UCAiIiJCIiIiIDQKLS5lbCAuSVAgIlxmKENXQlxmUiIgNAotLklYIEl0ZW0gIkIiCi1UaGUgc3lt Ym9sIGlzIGluIHRoZSB1bmluaXRpYWxpemVkIGRhdGEgc2VjdGlvbiAoa25vd24gYXMgXHMtMUJT U1xzMCkuCi0uaWUgbiAuSVAgIiIiQyIiIiA0Ci0uZWwgLklQICJcZihDV0NcZlIiIDQKLS5JWCBJ dGVtICJDIgotVGhlIHN5bWJvbCBpcyBjb21tb24uICBDb21tb24gc3ltYm9scyBhcmUgdW5pbml0 aWFsaXplZCBkYXRhLiAgV2hlbgotbGlua2luZywgbXVsdGlwbGUgY29tbW9uIHN5bWJvbHMgbWF5 IGFwcGVhciB3aXRoIHRoZSBzYW1lIG5hbWUuICBJZiB0aGUKLXN5bWJvbCBpcyBkZWZpbmVkIGFu eXdoZXJlLCB0aGUgY29tbW9uIHN5bWJvbHMgYXJlIHRyZWF0ZWQgYXMgdW5kZWZpbmVkCi1yZWZl cmVuY2VzLgotLmllIG4gLklQICIiIkQiIiIgNAotLmVsIC5JUCAiXGYoQ1dEXGZSIiA0Ci0uSVgg SXRlbSAiRCIKLVRoZSBzeW1ib2wgaXMgaW4gdGhlIGluaXRpYWxpemVkIGRhdGEgc2VjdGlvbi4K LS5pZSBuIC5JUCAiIiJHIiIiIDQKLS5lbCAuSVAgIlxmKENXR1xmUiIgNAotLklYIEl0ZW0gIkci Ci1UaGUgc3ltYm9sIGlzIGluIGFuIGluaXRpYWxpemVkIGRhdGEgc2VjdGlvbiBmb3Igc21hbGwg b2JqZWN0cy4gIFNvbWUKLW9iamVjdCBmaWxlIGZvcm1hdHMgcGVybWl0IG1vcmUgZWZmaWNpZW50 IGFjY2VzcyB0byBzbWFsbCBkYXRhIG9iamVjdHMsCi1zdWNoIGFzIGEgZ2xvYmFsIGludCB2YXJp YWJsZSBhcyBvcHBvc2VkIHRvIGEgbGFyZ2UgZ2xvYmFsIGFycmF5LgotLmllIG4gLklQICIiIkki IiIgNAotLmVsIC5JUCAiXGYoQ1dJXGZSIiA0Ci0uSVggSXRlbSAiSSIKLVRoZSBzeW1ib2wgaXMg YW4gaW5kaXJlY3QgcmVmZXJlbmNlIHRvIGFub3RoZXIgc3ltYm9sLiAgVGhpcyBpcyBhIFxzLTFH TlVcczAKLWV4dGVuc2lvbiB0byB0aGUgYS5vdXQgb2JqZWN0IGZpbGUgZm9ybWF0IHdoaWNoIGlz IHJhcmVseSB1c2VkLgotLmllIG4gLklQICIiIk4iIiIgNAotLmVsIC5JUCAiXGYoQ1dOXGZSIiA0 Ci0uSVggSXRlbSAiTiIKLVRoZSBzeW1ib2wgaXMgYSBkZWJ1Z2dpbmcgc3ltYm9sLgotLmllIG4g LklQICIiIlIiIiIgNAotLmVsIC5JUCAiXGYoQ1dSXGZSIiA0Ci0uSVggSXRlbSAiUiIKLVRoZSBz eW1ib2wgaXMgaW4gYSByZWFkIG9ubHkgZGF0YSBzZWN0aW9uLgotLmllIG4gLklQICIiIlMiIiIg NAotLmVsIC5JUCAiXGYoQ1dTXGZSIiA0Ci0uSVggSXRlbSAiUyIKLVRoZSBzeW1ib2wgaXMgaW4g YW4gdW5pbml0aWFsaXplZCBkYXRhIHNlY3Rpb24gZm9yIHNtYWxsIG9iamVjdHMuCi0uaWUgbiAu SVAgIiIiVCIiIiA0Ci0uZWwgLklQICJcZihDV1RcZlIiIDQKLS5JWCBJdGVtICJUIgotVGhlIHN5 bWJvbCBpcyBpbiB0aGUgdGV4dCAoY29kZSkgc2VjdGlvbi4KLS5pZSBuIC5JUCAiIiJVIiIiIDQK LS5lbCAuSVAgIlxmKENXVVxmUiIgNAotLklYIEl0ZW0gIlUiCi1UaGUgc3ltYm9sIGlzIHVuZGVm aW5lZC4KLS5pZSBuIC5JUCAiIiJWIiIiIDQKLS5lbCAuSVAgIlxmKENXVlxmUiIgNAotLklYIEl0 ZW0gIlYiCi1UaGUgc3ltYm9sIGlzIGEgd2VhayBvYmplY3QuICBXaGVuIGEgd2VhayBkZWZpbmVk IHN5bWJvbCBpcyBsaW5rZWQgd2l0aAotYSBub3JtYWwgZGVmaW5lZCBzeW1ib2wsIHRoZSBub3Jt YWwgZGVmaW5lZCBzeW1ib2wgaXMgdXNlZCB3aXRoIG5vIGVycm9yLgotV2hlbiBhIHdlYWsgdW5k ZWZpbmVkIHN5bWJvbCBpcyBsaW5rZWQgYW5kIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQsCi10 aGUgdmFsdWUgb2YgdGhlIHdlYWsgc3ltYm9sIGJlY29tZXMgemVybyB3aXRoIG5vIGVycm9yLgot LmllIG4gLklQICIiIlciIiIgNAotLmVsIC5JUCAiXGYoQ1dXXGZSIiA0Ci0uSVggSXRlbSAiVyIK LVRoZSBzeW1ib2wgaXMgYSB3ZWFrIHN5bWJvbCB0aGF0IGhhcyBub3QgYmVlbiBzcGVjaWZpY2Fs bHkgdGFnZ2VkIGFzIGEKLXdlYWsgb2JqZWN0IHN5bWJvbC4gIFdoZW4gYSB3ZWFrIGRlZmluZWQg c3ltYm9sIGlzIGxpbmtlZCB3aXRoIGEgbm9ybWFsCi1kZWZpbmVkIHN5bWJvbCwgdGhlIG5vcm1h bCBkZWZpbmVkIHN5bWJvbCBpcyB1c2VkIHdpdGggbm8gZXJyb3IuCi1XaGVuIGEgd2VhayB1bmRl ZmluZWQgc3ltYm9sIGlzIGxpbmtlZCBhbmQgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCwKLXRo ZSB2YWx1ZSBvZiB0aGUgc3ltYm9sIGlzIGRldGVybWluZWQgaW4gYSBzeXN0ZW0tc3BlY2lmaWMg bWFubmVyIHdpdGhvdXQKLWVycm9yLiAgT24gc29tZSBzeXN0ZW1zLCB1cHBlcmNhc2UgaW5kaWNh dGVzIHRoYXQgYSBkZWZhdWx0IHZhbHVlIGhhcyBiZWVuCi1zcGVjaWZpZWQuCi0uaWUgbiAuSVAg IiIiXC0iIiIgNAotLmVsIC5JUCAiXGYoQ1dcLVxmUiIgNAotLklYIEl0ZW0gIi0iCi1UaGUgc3lt Ym9sIGlzIGEgc3RhYnMgc3ltYm9sIGluIGFuIGEub3V0IG9iamVjdCBmaWxlLiAgSW4gdGhpcyBj YXNlLCB0aGUKLW5leHQgdmFsdWVzIHByaW50ZWQgYXJlIHRoZSBzdGFicyBvdGhlciBmaWVsZCwg dGhlIHN0YWJzIGRlc2MgZmllbGQsIGFuZAotdGhlIHN0YWIgdHlwZS4gIFN0YWJzIHN5bWJvbHMg YXJlIHVzZWQgdG8gaG9sZCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uCi0uaWUgbiAuSVAgIiIiPyIi IiA0Ci0uZWwgLklQICJcZihDVz9cZlIiIDQKLS5JWCBJdGVtICI/IgotVGhlIHN5bWJvbCB0eXBl IGlzIHVua25vd24sIG9yIG9iamVjdCBmaWxlIGZvcm1hdCBzcGVjaWZpYy4KLS5SRQotLlJTIDQK LS5SRQotLklQICJcKGJ1IiA0Ci1UaGUgc3ltYm9sIG5hbWUuCi0uU0ggIk9QVElPTlMiCi0uSVgg SGVhZGVyICJPUFRJT05TIgotVGhlIGxvbmcgYW5kIHNob3J0IGZvcm1zIG9mIG9wdGlvbnMsIHNo b3duIGhlcmUgYXMgYWx0ZXJuYXRpdmVzLCBhcmUKLWVxdWl2YWxlbnQuCi0uSVAgIlxmQlwtQVxm UiIgNAotLklYIEl0ZW0gIi1BIgotLlBEIDAKLS5JUCAiXGZCXC1vXGZSIiA0Ci0uSVggSXRlbSAi LW8iCi0uSVAgIlxmQlwtXC1wcmludFwtZmlsZVwtbmFtZVxmUiIgNAotLklYIEl0ZW0gIi0tcHJp bnQtZmlsZS1uYW1lIgotLlBECi1QcmVjZWRlIGVhY2ggc3ltYm9sIGJ5IHRoZSBuYW1lIG9mIHRo ZSBpbnB1dCBmaWxlIChvciBhcmNoaXZlIG1lbWJlcikKLWluIHdoaWNoIGl0IHdhcyBmb3VuZCwg cmF0aGVyIHRoYW4gaWRlbnRpZnlpbmcgdGhlIGlucHV0IGZpbGUgb25jZSBvbmx5LAotYmVmb3Jl IGFsbCBvZiBpdHMgc3ltYm9scy4KLS5JUCAiXGZCXC1hXGZSIiA0Ci0uSVggSXRlbSAiLWEiCi0u UEQgMAotLklQICJcZkJcLVwtZGVidWdcLXN5bXNcZlIiIDQKLS5JWCBJdGVtICItLWRlYnVnLXN5 bXMiCi0uUEQKLURpc3BsYXkgYWxsIHN5bWJvbHMsIGV2ZW4gZGVidWdnZXItb25seSBzeW1ib2xz OyBub3JtYWxseSB0aGVzZSBhcmUgbm90Ci1saXN0ZWQuCi0uSVAgIlxmQlwtQlxmUiIgNAotLklY IEl0ZW0gIi1CIgotVGhlIHNhbWUgYXMgXGZCXC1cLWZvcm1hdD1ic2RcZlIgKGZvciBjb21wYXRp YmlsaXR5IHdpdGggdGhlIFxzLTFNSVBTXHMwIFxmQm5tXGZSKS4KLS5JUCAiXGZCXC1DXGZSIiA0 Ci0uSVggSXRlbSAiLUMiCi0uUEQgMAotLklQICJcZkJcLVwtZGVtYW5nbGVbPVxmUlxmSXN0eWxl XGZSXGZCXVxmUiIgNAotLklYIEl0ZW0gIi0tZGVtYW5nbGVbPXN0eWxlXSIKLS5QRAotRGVjb2Rl IChcZklkZW1hbmdsZVxmUikgbG93LWxldmVsIHN5bWJvbCBuYW1lcyBpbnRvIHVzZXItbGV2ZWwg bmFtZXMuCi1CZXNpZGVzIHJlbW92aW5nIGFueSBpbml0aWFsIHVuZGVyc2NvcmUgcHJlcGVuZGVk IGJ5IHRoZSBzeXN0ZW0sIHRoaXMKLW1ha2VzIFwqKEMrIGZ1bmN0aW9uIG5hbWVzIHJlYWRhYmxl LiBEaWZmZXJlbnQgY29tcGlsZXJzIGhhdmUgZGlmZmVyZW50Ci1tYW5nbGluZyBzdHlsZXMuIFRo ZSBvcHRpb25hbCBkZW1hbmdsaW5nIHN0eWxlIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvCi1jaG9v c2UgYW4gYXBwcm9wcmlhdGUgZGVtYW5nbGluZyBzdHlsZSBmb3IgeW91ciBjb21waWxlci4KLS5J UCAiXGZCXC1cLW5vXC1kZW1hbmdsZVxmUiIgNAotLklYIEl0ZW0gIi0tbm8tZGVtYW5nbGUiCi1E byBub3QgZGVtYW5nbGUgbG93LWxldmVsIHN5bWJvbCBuYW1lcy4gIFRoaXMgaXMgdGhlIGRlZmF1 bHQuCi0uSVAgIlxmQlwtRFxmUiIgNAotLklYIEl0ZW0gIi1EIgotLlBEIDAKLS5JUCAiXGZCXC1c LWR5bmFtaWNcZlIiIDQKLS5JWCBJdGVtICItLWR5bmFtaWMiCi0uUEQKLURpc3BsYXkgdGhlIGR5 bmFtaWMgc3ltYm9scyByYXRoZXIgdGhhbiB0aGUgbm9ybWFsIHN5bWJvbHMuICBUaGlzIGlzCi1v bmx5IG1lYW5pbmdmdWwgZm9yIGR5bmFtaWMgb2JqZWN0cywgc3VjaCBhcyBjZXJ0YWluIHR5cGVz IG9mIHNoYXJlZAotbGlicmFyaWVzLgotLklQICJcZkJcLWZcZlIgXGZJZm9ybWF0XGZSIiA0Ci0u SVggSXRlbSAiLWYgZm9ybWF0IgotLlBEIDAKLS5JUCAiXGZCXC1cLWZvcm1hdD1cZlJcZklmb3Jt YXRcZlIiIDQKLS5JWCBJdGVtICItLWZvcm1hdD1mb3JtYXQiCi0uUEQKLVVzZSB0aGUgb3V0cHV0 IGZvcm1hdCBcZklmb3JtYXRcZlIsIHdoaWNoIGNhbiBiZSBcZihDV1wqKENgYnNkXCooQydcZlIs Ci1cJlxmKENXXCooQ2BzeXN2XCooQydcZlIsIG9yIFxmKENXXCooQ2Bwb3NpeFwqKEMnXGZSLiAg VGhlIGRlZmF1bHQgaXMgXGYoQ1dcKihDYGJzZFwqKEMnXGZSLgotT25seSB0aGUgZmlyc3QgY2hh cmFjdGVyIG9mIFxmSWZvcm1hdFxmUiBpcyBzaWduaWZpY2FudDsgaXQgY2FuIGJlCi1laXRoZXIg dXBwZXIgb3IgbG93ZXIgY2FzZS4KLS5JUCAiXGZCXC1nXGZSIiA0Ci0uSVggSXRlbSAiLWciCi0u UEQgMAotLklQICJcZkJcLVwtZXh0ZXJuXC1vbmx5XGZSIiA0Ci0uSVggSXRlbSAiLS1leHRlcm4t b25seSIKLS5QRAotRGlzcGxheSBvbmx5IGV4dGVybmFsIHN5bWJvbHMuCi0uSVAgIlxmQlwtbFxm UiIgNAotLklYIEl0ZW0gIi1sIgotLlBEIDAKLS5JUCAiXGZCXC1cLWxpbmVcLW51bWJlcnNcZlIi IDQKLS5JWCBJdGVtICItLWxpbmUtbnVtYmVycyIKLS5QRAotRm9yIGVhY2ggc3ltYm9sLCB1c2Ug ZGVidWdnaW5nIGluZm9ybWF0aW9uIHRvIHRyeSB0byBmaW5kIGEgZmlsZW5hbWUgYW5kCi1saW5l IG51bWJlci4gIEZvciBhIGRlZmluZWQgc3ltYm9sLCBsb29rIGZvciB0aGUgbGluZSBudW1iZXIg b2YgdGhlCi1hZGRyZXNzIG9mIHRoZSBzeW1ib2wuICBGb3IgYW4gdW5kZWZpbmVkIHN5bWJvbCwg bG9vayBmb3IgdGhlIGxpbmUKLW51bWJlciBvZiBhIHJlbG9jYXRpb24gZW50cnkgd2hpY2ggcmVm ZXJzIHRvIHRoZSBzeW1ib2wuICBJZiBsaW5lIG51bWJlcgotaW5mb3JtYXRpb24gY2FuIGJlIGZv dW5kLCBwcmludCBpdCBhZnRlciB0aGUgb3RoZXIgc3ltYm9sIGluZm9ybWF0aW9uLgotLklQICJc ZkJcLW5cZlIiIDQKLS5JWCBJdGVtICItbiIKLS5QRCAwCi0uSVAgIlxmQlwtdlxmUiIgNAotLklY IEl0ZW0gIi12IgotLklQICJcZkJcLVwtbnVtZXJpY1wtc29ydFxmUiIgNAotLklYIEl0ZW0gIi0t bnVtZXJpYy1zb3J0IgotLlBECi1Tb3J0IHN5bWJvbHMgbnVtZXJpY2FsbHkgYnkgdGhlaXIgYWRk cmVzc2VzLCByYXRoZXIgdGhhbiBhbHBoYWJldGljYWxseQotYnkgdGhlaXIgbmFtZXMuCi0uSVAg IlxmQlwtcFxmUiIgNAotLklYIEl0ZW0gIi1wIgotLlBEIDAKLS5JUCAiXGZCXC1cLW5vXC1zb3J0 XGZSIiA0Ci0uSVggSXRlbSAiLS1uby1zb3J0IgotLlBECi1EbyBub3QgYm90aGVyIHRvIHNvcnQg dGhlIHN5bWJvbHMgaW4gYW55IG9yZGVyOyBwcmludCB0aGVtIGluIHRoZSBvcmRlcgotZW5jb3Vu dGVyZWQuCi0uSVAgIlxmQlwtUFxmUiIgNAotLklYIEl0ZW0gIi1QIgotLlBEIDAKLS5JUCAiXGZC XC1cLXBvcnRhYmlsaXR5XGZSIiA0Ci0uSVggSXRlbSAiLS1wb3J0YWJpbGl0eSIKLS5QRAotVXNl IHRoZSBccy0xUE9TSVhcczAuMiBzdGFuZGFyZCBvdXRwdXQgZm9ybWF0IGluc3RlYWQgb2YgdGhl IGRlZmF1bHQgZm9ybWF0LgotRXF1aXZhbGVudCB0byBcZkJcLWYgcG9zaXhcZlIuCi0uSVAgIlxm QlwtU1xmUiIgNAotLklYIEl0ZW0gIi1TIgotLlBEIDAKLS5JUCAiXGZCXC1cLXByaW50XC1zaXpl XGZSIiA0Ci0uSVggSXRlbSAiLS1wcmludC1zaXplIgotLlBECi1QcmludCBzaXplLCBub3QgdGhl IHZhbHVlLCBvZiBkZWZpbmVkIHN5bWJvbHMgZm9yIHRoZSBcZihDV1wqKENgYnNkXCooQydcZlIg b3V0cHV0IGZvcm1hdC4KLS5JUCAiXGZCXC1zXGZSIiA0Ci0uSVggSXRlbSAiLXMiCi0uUEQgMAot LklQICJcZkJcLVwtcHJpbnRcLWFybWFwXGZSIiA0Ci0uSVggSXRlbSAiLS1wcmludC1hcm1hcCIK LS5QRAotV2hlbiBsaXN0aW5nIHN5bWJvbHMgZnJvbSBhcmNoaXZlIG1lbWJlcnMsIGluY2x1ZGUg dGhlIGluZGV4OiBhIG1hcHBpbmcKLShzdG9yZWQgaW4gdGhlIGFyY2hpdmUgYnkgXGZCYXJcZlIg b3IgXGZCcmFubGliXGZSKSBvZiB3aGljaCBtb2R1bGVzCi1jb250YWluIGRlZmluaXRpb25zIGZv ciB3aGljaCBuYW1lcy4KLS5JUCAiXGZCXC1yXGZSIiA0Ci0uSVggSXRlbSAiLXIiCi0uUEQgMAot LklQICJcZkJcLVwtcmV2ZXJzZVwtc29ydFxmUiIgNAotLklYIEl0ZW0gIi0tcmV2ZXJzZS1zb3J0 IgotLlBECi1SZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgc29ydCAod2hldGhlciBudW1lcmljIG9y IGFscGhhYmV0aWMpOyBsZXQgdGhlCi1sYXN0IGNvbWUgZmlyc3QuCi0uSVAgIlxmQlwtXC1zaXpl XC1zb3J0XGZSIiA0Ci0uSVggSXRlbSAiLS1zaXplLXNvcnQiCi1Tb3J0IHN5bWJvbHMgYnkgc2l6 ZS4gIFRoZSBzaXplIGlzIGNvbXB1dGVkIGFzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KLXRoZSB2 YWx1ZSBvZiB0aGUgc3ltYm9sIGFuZCB0aGUgdmFsdWUgb2YgdGhlIHN5bWJvbCB3aXRoIHRoZSBu ZXh0IGhpZ2hlcgotdmFsdWUuICBJZiB0aGUgXGYoQ1dcKihDYGJzZFwqKEMnXGZSIG91dHB1dCBm b3JtYXQgaXMgdXNlZCB0aGUgc2l6ZSBvZiB0aGUgc3ltYm9sCi1pcyBwcmludGVkLCByYXRoZXIg dGhhbiB0aGUgdmFsdWUsIGFuZCBcZkJcLVNcZlIgbXVzdCBiZSB1c2VkIGluIG9yZGVyCi1ib3Ro IHNpemUgYW5kIHZhbHVlIHRvIGJlIHByaW50ZWQuCi0uSVAgIlxmQlwtXC1zcGVjaWFsXC1zeW1z XGZSIiA0Ci0uSVggSXRlbSAiLS1zcGVjaWFsLXN5bXMiCi1EaXNwbGF5IHN5bWJvbHMgd2hpY2gg aGF2ZSBhIHRhcmdldC1zcGVjaWZpYyBzcGVjaWFsIG1lYW5pbmcuICBUaGVzZQotc3ltYm9scyBh cmUgdXN1YWxseSB1c2VkIGJ5IHRoZSB0YXJnZXQgZm9yIHNvbWUgc3BlY2lhbCBwcm9jZXNzaW5n IGFuZAotYXJlIG5vdCBub3JtYWxseSBoZWxwZnVsIHdoZW4gaW5jbHVkZWQgaW5jbHVkZWQgaW4g dGhlIG5vcm1hbCBzeW1ib2wKLWxpc3RzLiAgRm9yIGV4YW1wbGUgZm9yIFxzLTFBUk1cczAgdGFy Z2V0cyB0aGlzIG9wdGlvbiB3b3VsZCBza2lwIHRoZSBtYXBwaW5nCi1zeW1ib2xzIHVzZWQgdG8g bWFyayB0cmFuc2l0aW9ucyBiZXR3ZWVuIFxzLTFBUk1cczAgY29kZSwgXHMtMVRIVU1CXHMwIGNv ZGUgYW5kCi1kYXRhLgotLklQICJcZkJcLXRcZlIgXGZJcmFkaXhcZlIiIDQKLS5JWCBJdGVtICIt dCByYWRpeCIKLS5QRCAwCi0uSVAgIlxmQlwtXC1yYWRpeD1cZlJcZklyYWRpeFxmUiIgNAotLklY IEl0ZW0gIi0tcmFkaXg9cmFkaXgiCi0uUEQKLVVzZSBcZklyYWRpeFxmUiBhcyB0aGUgcmFkaXgg Zm9yIHByaW50aW5nIHRoZSBzeW1ib2wgdmFsdWVzLiAgSXQgbXVzdCBiZQotXCZcZkJkXGZSIGZv ciBkZWNpbWFsLCBcZkJvXGZSIGZvciBvY3RhbCwgb3IgXGZCeFxmUiBmb3IgaGV4YWRlY2ltYWwu Ci0uSVAgIlxmQlwtXC10YXJnZXQ9XGZSXGZJYmZkbmFtZVxmUiIgNAotLklYIEl0ZW0gIi0tdGFy Z2V0PWJmZG5hbWUiCi1TcGVjaWZ5IGFuIG9iamVjdCBjb2RlIGZvcm1hdCBvdGhlciB0aGFuIHlv dXIgc3lzdGVtJ3MgZGVmYXVsdCBmb3JtYXQuCi0uSVAgIlxmQlwtdVxmUiIgNAotLklYIEl0ZW0g Ii11IgotLlBEIDAKLS5JUCAiXGZCXC1cLXVuZGVmaW5lZFwtb25seVxmUiIgNAotLklYIEl0ZW0g Ii0tdW5kZWZpbmVkLW9ubHkiCi0uUEQKLURpc3BsYXkgb25seSB1bmRlZmluZWQgc3ltYm9scyAo dGhvc2UgZXh0ZXJuYWwgdG8gZWFjaCBvYmplY3QgZmlsZSkuCi0uSVAgIlxmQlwtXC1kZWZpbmVk XC1vbmx5XGZSIiA0Ci0uSVggSXRlbSAiLS1kZWZpbmVkLW9ubHkiCi1EaXNwbGF5IG9ubHkgZGVm aW5lZCBzeW1ib2xzIGZvciBlYWNoIG9iamVjdCBmaWxlLgotLklQICJcZkJcLVZcZlIiIDQKLS5J WCBJdGVtICItViIKLS5QRCAwCi0uSVAgIlxmQlwtXC12ZXJzaW9uXGZSIiA0Ci0uSVggSXRlbSAi LS12ZXJzaW9uIgotLlBECi1TaG93IHRoZSB2ZXJzaW9uIG51bWJlciBvZiBcZkJubVxmUiBhbmQg ZXhpdC4KLS5JUCAiXGZCXC1YXGZSIiA0Ci0uSVggSXRlbSAiLVgiCi1UaGlzIG9wdGlvbiBpcyBp Z25vcmVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIFxzLTFBSVhcczAgdmVyc2lvbiBvZgot XCZcZkJubVxmUi4gIEl0IHRha2VzIG9uZSBwYXJhbWV0ZXIgd2hpY2ggbXVzdCBiZSB0aGUgc3Ry aW5nCi1cJlxmQjMyXzY0XGZSLiAgVGhlIGRlZmF1bHQgbW9kZSBvZiBccy0xQUlYXHMwIFxmQm5t XGZSIGNvcnJlc3BvbmRzCi10byBcZkJcLVggMzJcZlIsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQg YnkgXHMtMUdOVVxzMCBcZkJubVxmUi4KLS5JUCAiXGZCXC1cLWhlbHBcZlIiIDQKLS5JWCBJdGVt ICItLWhlbHAiCi1TaG93IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byBcZkJubVxmUiBhbmQg ZXhpdC4KLS5JUCAiXGZCQFxmUlxmSWZpbGVcZlIiIDQKLS5JWCBJdGVtICJAZmlsZSIKLVJlYWQg Y29tbWFuZC1saW5lIG9wdGlvbnMgZnJvbSBcZklmaWxlXGZSLiAgVGhlIG9wdGlvbnMgcmVhZCBh cmUKLWluc2VydGVkIGluIHBsYWNlIG9mIHRoZSBvcmlnaW5hbCBAXGZJZmlsZVxmUiBvcHRpb24u ICBJZiBcZklmaWxlXGZSCi1kb2VzIG5vdCBleGlzdCwgb3IgY2Fubm90IGJlIHJlYWQsIHRoZW4g dGhlIG9wdGlvbiB3aWxsIGJlIHRyZWF0ZWQKLWxpdGVyYWxseSwgYW5kIG5vdCByZW1vdmVkLgot LlNwCi1PcHRpb25zIGluIFxmSWZpbGVcZlIgYXJlIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLiAg QSB3aGl0ZXNwYWNlCi1jaGFyYWN0ZXIgbWF5IGJlIGluY2x1ZGVkIGluIGFuIG9wdGlvbiBieSBz dXJyb3VuZGluZyB0aGUgZW50aXJlCi1vcHRpb24gaW4gZWl0aGVyIHNpbmdsZSBvciBkb3VibGUg cXVvdGVzLiAgQW55IGNoYXJhY3RlciAoaW5jbHVkaW5nIGEKLWJhY2tzbGFzaCkgbWF5IGJlIGlu Y2x1ZGVkIGJ5IHByZWZpeGluZyB0aGUgY2hhcmFjdGVyIHRvIGJlIGluY2x1ZGVkCi13aXRoIGEg YmFja3NsYXNoLiAgVGhlIFxmSWZpbGVcZlIgbWF5IGl0c2VsZiBjb250YWluIGFkZGl0aW9uYWwK LUBcZklmaWxlXGZSIG9wdGlvbnM7IGFueSBzdWNoIG9wdGlvbnMgd2lsbCBiZSBwcm9jZXNzZWQg cmVjdXJzaXZlbHkuCi0uU0ggIlNFRSBBTFNPIgotLklYIEhlYWRlciAiU0VFIEFMU08iCi1cJlxm SWFyXGZSXHwoMSksIFxmSW9iamR1bXBcZlJcfCgxKSwgXGZJcmFubGliXGZSXHwoMSksIGFuZCB0 aGUgSW5mbyBlbnRyaWVzIGZvciBcZkliaW51dGlsc1xmUi4KLS5TSCAiQ09QWVJJR0hUIgotLklY IEhlYWRlciAiQ09QWVJJR0hUIgotQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyLCAxOTkzLCAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAotMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLS5Q UAotUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlm eSB0aGlzIGRvY3VtZW50Ci11bmRlciB0aGUgdGVybXMgb2YgdGhlIFxzLTFHTlVcczAgRnJlZSBE b2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4xCi1vciBhbnkgbGF0ZXIgdmVyc2lvbiBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsKLXdpdGggbm8gSW52YXJp YW50IFNlY3Rpb25zLCB3aXRoIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQgd2l0aCBubwotQmFj ay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUK LXNlY3Rpb24gZW50aXRsZWQgXCooTCJccy0xR05VXHMwIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNl bnNlXCooUiIuCmRpZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGlscy9ubS9NYWtlZmlsZS5k ZXBlbmQgYi9nbnUvdXNyLmJpbi9iaW51dGlscy9ubS9NYWtlZmlsZS5kZXBlbmQKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL25tL01ha2VmaWxlLmRl cGVuZAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLSMgJEZyZWVCU0QkCi0jIEF1dG9n ZW5lcmF0ZWQgLSBkbyBOT1QgZWRpdCEKLQotRElSREVQUyA9IFwKLQlnbnUvbGliL2NzdSBcCi0J Z251L2xpYi9saWJnY2MgXAotCWdudS91c3IuYmluL2JpbnV0aWxzL2xpYmJmZCBcCi0JZ251L3Vz ci5iaW4vYmludXRpbHMvbGliYmludXRpbHMgXAotCWdudS91c3IuYmluL2JpbnV0aWxzL2xpYmli ZXJ0eSBcCi0JaW5jbHVkZSBcCi0JaW5jbHVkZS94bG9jYWxlIFwKLQlsaWIvJHtDU1VfRElSfSBc Ci0JbGliL2xpYmMgXAotCWxpYi9saWJjb21waWxlcl9ydCBcCi0KLQotLmluY2x1ZGUgPGRpcmRl cHMubWs+Ci0KLS5pZiAke0RFUF9SRUxESVJ9ID09ICR7X0RFUF9SRUxESVJ9Ci0jIGxvY2FsIGRl cGVuZGVuY2llcyAtIG5lZWRlZCBmb3IgLWpOIGluIGNsZWFuIHRyZWUKLS5lbmRpZgpkaWZmIC0t Z2l0IGEvZ251L3Vzci5iaW4vYmludXRpbHMvbm0vTWFrZWZpbGUgYi9nbnUvdXNyLmJpbi9iaW51 dGlscy9ubS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLS0tIGEvZ251L3Vzci5i aW4vYmludXRpbHMvbm0vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0j ICRGcmVlQlNEJAotCi0uaW5jbHVkZSAiLi4vTWFrZWZpbGUuaW5jMCIKLQotLlBBVEg6ICR7U1JD RElSfS9iaW51dGlscyAke1NSQ0RJUn0vYmludXRpbHMvZG9jCi0KLVBST0c9CW5tCi1TUkNTPQlu bS5jCi1DRkxBR1MrPSAtRF9HTlVfU09VUkNFCi1DRkxBR1MrPSAtSSR7LkNVUkRJUn0vJHtSRUxU T1B9L2xpYmJpbnV0aWxzCi1DRkxBR1MrPSAtSSR7U1JDRElSfS9iZmQKLUNGTEFHUys9IC1JJHtT UkNESVJ9L2JpbnV0aWxzCi1EUEFERD0JJHtSRUxUT1B9L2xpYmJpbnV0aWxzL2xpYmJpbnV0aWxz LmEKLURQQUREKz0JJHtSRUxUT1B9L2xpYmJmZC9saWJiZmQuYQotRFBBREQrPQkke1JFTFRPUH0v bGliaWJlcnR5L2xpYmliZXJ0eS5hCi1MREFERD0JJHtEUEFERH0KLQotLmluY2x1ZGUgPGJzZC5w cm9nLm1rPgpkaWZmIC0tZ2l0IGEvZ251L3Vzci5iaW4vYmludXRpbHMvYXIvTWFrZWZpbGUuZGVw ZW5kIGIvZ251L3Vzci5iaW4vYmludXRpbHMvYXIvTWFrZWZpbGUuZGVwZW5kCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAotLS0gYS9nbnUvdXNyLmJpbi9iaW51dGlscy9hci9NYWtlZmlsZS5kZXBl bmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICRGcmVlQlNEJAotIyBBdXRvZ2Vu ZXJhdGVkIC0gZG8gTk9UIGVkaXQhCi0KLURFUF9SRUxESVIgOj0gJHtfUEFSU0VESVI6Uywke1NS Q1RPUH0vLCx9Ci0KLURJUkRFUFMgPSBcCi0JZ251L3Vzci5iaW4vYmludXRpbHMvbGliYmZkIFwK LQlnbnUvdXNyLmJpbi9iaW51dGlscy9saWJiaW51dGlscyBcCi0JZ251L3Vzci5iaW4vYmludXRp bHMvbGliaWJlcnR5IFwKLQlpbmNsdWRlIFwKLQlpbmNsdWRlL3hsb2NhbGUgXAotCWxpYi8ke0NT VV9ESVJ9IFwKLQlsaWIvbGliYyBcCi0JbGliL2xpYmNvbXBpbGVyX3J0IFwKLQotCi0uaW5jbHVk ZSA8ZGlyZGVwcy5taz4KLQotLmlmICR7REVQX1JFTERJUn0gPT0gJHtfREVQX1JFTERJUn0KLSMg bG9jYWwgZGVwZW5kZW5jaWVzIC0gbmVlZGVkIGZvciAtak4gaW4gY2xlYW4gdHJlZQotLmVuZGlm CmRpZmYgLS1naXQgYS9nbnUvdXNyLmJpbi9iaW51dGlscy9hZGRyMmxpbmUvYWRkcjJsaW5lLjEg Yi9nbnUvdXNyLmJpbi9iaW51dGlscy9hZGRyMmxpbmUvYWRkcjJsaW5lLjEKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL2FkZHIybGluZS9hZGRyMmxp bmUuMQorKysgL2Rldi9udWxsCkBAIC0xLDI2NiArMCwwIEBACi0uXCIgJEZyZWVCU0QkCi0uXCIg QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUG9kOjpNYW4gMi4yMyAoUG9kOjpTaW1wbGUgMy4x NCkKLS5cIgotLlwiIFN0YW5kYXJkIHByZWFtYmxlOgotLlwiID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLmRl IFNwIFwiIFZlcnRpY2FsIHNwYWNlICh3aGVuIHdlIGNhbid0IHVzZSAuUFApCi0uaWYgdCAuc3Ag LjV2Ci0uaWYgbiAuc3AKLS4uCi0uZGUgVmIgXCIgQmVnaW4gdmVyYmF0aW0gdGV4dAotLmZ0IENX Ci0ubmYKLS5uZSBcXCQxCi0uLgotLmRlIFZlIFwiIEVuZCB2ZXJiYXRpbSB0ZXh0Ci0uZnQgUgot LmZpCi0uLgotLlwiIFNldCB1cCBzb21lIGNoYXJhY3RlciB0cmFuc2xhdGlvbnMgYW5kIHByZWRl ZmluZWQgc3RyaW5ncy4gIFwqKC0tIHdpbGwKLS5cIiBnaXZlIGFuIHVuYnJlYWthYmxlIGRhc2gs IFwqKFBJIHdpbGwgZ2l2ZSBwaSwgXCooTCIgd2lsbCBnaXZlIGEgbGVmdAotLlwiIGRvdWJsZSBx dW90ZSwgYW5kIFwqKFIiIHdpbGwgZ2l2ZSBhIHJpZ2h0IGRvdWJsZSBxdW90ZS4gIFwqKEMrIHdp bGwKLS5cIiBnaXZlIGEgbmljZXIgQysrLiAgQ2FwaXRhbCBvbWVnYSBpcyB1c2VkIHRvIGRvIHVu YnJlYWthYmxlIGRhc2hlcyBhbmQKLS5cIiB0aGVyZWZvcmUgd29uJ3QgYmUgYXZhaWxhYmxlLiAg XCooQ2AgYW5kIFwqKEMnIGV4cGFuZCB0byBgJyBpbiBucm9mZiwKLS5cIiBub3RoaW5nIGluIHRy b2ZmLCBmb3IgdXNlIHdpdGggQzw+LgotLnRyIFwoKlctCi0uZHMgQysgQ1x2Jy0uMXYnXGgnLTFw J1xzLTIrXGgnLTFwJytcczBcdicuMXYnXGgnLTFwJwotLmllIG4gXHtcCi0uICAgIGRzIC0tIFwo KlctCi0uICAgIGRzIFBJIHBpCi0uICAgIGlmIChcbiguSD00dSkmKDFtPTI0dSkgLmRzIC0tIFwo KldcaCctMTJ1J1woKldcaCctMTJ1Jy1cIiBkaWFibG8gMTAgcGl0Y2gKLS4gICAgaWYgKFxuKC5I PTR1KSYoMW09MjB1KSAuZHMgLS0gXCgqV1xoJy0xMnUnXCgqV1xoJy04dSctXCIgIGRpYWJsbyAx MiBwaXRjaAotLiAgICBkcyBMIiAiIgotLiAgICBkcyBSIiAiIgotLiAgICBkcyBDYCAiIgotLiAg ICBkcyBDJyAiIgotJ2JyXH0KLS5lbFx7XAotLiAgICBkcyAtLSBcfFwoZW1cfAotLiAgICBkcyBQ SSBcKCpwCi0uICAgIGRzIEwiIGBgCi0uICAgIGRzIFIiICcnCi0nYnJcfQotLlwiCi0uXCIgRXNj YXBlIHNpbmdsZSBxdW90ZXMgaW4gbGl0ZXJhbCBzdHJpbmdzIGZyb20gZ3JvZmYncyBVbmljb2Rl IHRyYW5zZm9ybS4KLS5pZSBcbiguZyAuZHMgQXEgXChhcQotLmVsICAgICAgIC5kcyBBcSAnCi0u XCIKLS5cIiBJZiB0aGUgRiByZWdpc3RlciBpcyB0dXJuZWQgb24sIHdlJ2xsIGdlbmVyYXRlIGlu ZGV4IGVudHJpZXMgb24gc3RkZXJyIGZvcgotLlwiIHRpdGxlcyAoLlRIKSwgaGVhZGVycyAoLlNI KSwgc3Vic2VjdGlvbnMgKC5TUyksIGl0ZW1zICguSXApLCBhbmQgaW5kZXgKLS5cIiBlbnRyaWVz IG1hcmtlZCB3aXRoIFg8PiBpbiBQT0QuICBPZiBjb3Vyc2UsIHlvdSdsbCBoYXZlIHRvIHByb2Nl c3MgdGhlCi0uXCIgb3V0cHV0IHlvdXJzZWxmIGluIHNvbWUgbWVhbmluZ2Z1bCBmYXNoaW9uLgot LmllIFxuRiBce1wKLS4gICAgZGUgSVgKLS4gICAgdG0gSW5kZXg6XFwkMVx0XFxuJVx0IlxcJDIi Ci0uLgotLiAgICBuciAlIDAKLS4gICAgcnIgRgotLlx9Ci0uZWwgXHtcCi0uICAgIGRlIElYCi0u LgotLlx9Ci0uXCIKLS5cIiBBY2NlbnQgbWFyayBkZWZpbml0aW9ucyAoQCgjKW1zLmFjYyAxLjUg ODgvMDIvMDggU01JOyBmcm9tIFVDQiA0LjIpLgotLlwiIEZlYXIuICBSdW4uICBTYXZlIHlvdXJz ZWxmLiAgTm8gdXNlci1zZXJ2aWNlYWJsZSBwYXJ0cy4KLS4gICAgXCIgZnVkZ2UgZmFjdG9ycyBm b3IgbnJvZmYgYW5kIHRyb2ZmCi0uaWYgbiBce1wKLS4gICAgZHMgI0ggMAotLiAgICBkcyAjViAu OG0KLS4gICAgZHMgI0YgLjNtCi0uICAgIGRzICNbIFxmMQotLiAgICBkcyAjXSBcZlAKLS5cfQot LmlmIHQgXHtcCi0uICAgIGRzICNIICgoMXUtKFxcXFxuKC5mdSUydSkpKi4xM20pCi0uICAgIGRz ICNWIC42bQotLiAgICBkcyAjRiAwCi0uICAgIGRzICNbIFwmCi0uICAgIGRzICNdIFwmCi0uXH0K LS4gICAgXCIgc2ltcGxlIGFjY2VudHMgZm9yIG5yb2ZmIGFuZCB0cm9mZgotLmlmIG4gXHtcCi0u ICAgIGRzICcgXCYKLS4gICAgZHMgYCBcJgotLiAgICBkcyBeIFwmCi0uICAgIGRzICwgXCYKLS4g ICAgZHMgfiB+Ci0uICAgIGRzIC8KLS5cfQotLmlmIHQgXHtcCi0uICAgIGRzICcgXFxrOlxoJy0o XFxuKC53dSo4LzEwLVwqKCNIKSdcJ1xoInxcXG46dSIKLS4gICAgZHMgYCBcXGs6XGgnLShcXG4o Lnd1KjgvMTAtXCooI0gpJ1xgXGgnfFxcbjp1JwotLiAgICBkcyBeIFxcazpcaCctKFxcbigud3Uq MTAvMTEtXCooI0gpJ15caCd8XFxuOnUnCi0uICAgIGRzICwgXFxrOlxoJy0oXFxuKC53dSo4LzEw KScsXGgnfFxcbjp1JwotLiAgICBkcyB+IFxcazpcaCctKFxcbigud3UtXCooI0gtLjFtKSd+XGgn fFxcbjp1JwotLiAgICBkcyAvIFxcazpcaCctKFxcbigud3UqOC8xMC1cKigjSCknXHpcKHNsXGgn fFxcbjp1JwotLlx9Ci0uICAgIFwiIHRyb2ZmIGFuZCAoZGFpc3ktd2hlZWwpIG5yb2ZmIGFjY2Vu dHMKLS5kcyA6IFxcazpcaCctKFxcbigud3UqOC8xMC1cKigjSCsuMW0rXCooI0YpJ1x2Jy1cKigj Vidcei5caCcuMm0rXCooI0YnLlxoJ3xcXG46dSdcdidcKigjVicKLS5kcyA4IFxoJ1wqKCNIJ1wo KmJcaCctXCooI0gnCi0uZHMgbyBcXGs6XGgnLShcXG4oLnd1K1x3J1woZGUndS1cKigjSCkvMnUn XHYnLS4zbidcKigjW1x6XChkZVx2Jy4zbidcaCd8XFxuOnUnXCooI10KLS5kcyBkLSBcaCdcKigj SCdcKHBkXGgnLVx3J34ndSdcdictLjI1bSdcZjJcKGh5XGZQXHYnLjI1bSdcaCctXCooI0gnCi0u ZHMgRC0gRFxcazpcaCctXHcnRCd1J1x2Jy0uMTFtJ1x6XChoeVx2Jy4xMW0nXGgnfFxcbjp1Jwot LmRzIHRoIFwqKCNbXHYnLjNtJ1xzKzFJXHMtMVx2Jy0uM20nXGgnLShcdydJJ3UqMi8zKSdccy0x b1xzKzFcKigjXQotLmRzIFRoIFwqKCNbXHMrMklccy0yXGgnLVx3J0kndSozLzUnXHYnLS4zbSdv XHYnLjNtJ1wqKCNdCi0uZHMgYWUgYVxoJy0oXHcnYSd1KjQvMTApJ2UKLS5kcyBBZSBBXGgnLShc dydBJ3UqNC8xMCknRQotLiAgICBcIiBjb3JyZWN0aW9ucyBmb3IgdnJvZmYKLS5pZiB2IC5kcyB+ IFxcazpcaCctKFxcbigud3UqOS8xMC1cKigjSCknXHMtMlx1flxkXHMrMlxoJ3xcXG46dScKLS5p ZiB2IC5kcyBeIFxcazpcaCctKFxcbigud3UqMTAvMTEtXCooI0gpJ1x2Jy0uNG0nXlx2Jy40bSdc aCd8XFxuOnUnCi0uICAgIFwiIGZvciBsb3cgcmVzb2x1dGlvbiBkZXZpY2VzIChjcnQgYW5kIGxw cikKLS5pZiBcbiguSD4yMyAuaWYgXG4oLlY+MTkgXAotXHtcCi0uICAgIGRzIDogZQotLiAgICBk cyA4IHNzCi0uICAgIGRzIG8gYQotLiAgICBkcyBkLSBkXGgnLTEnXChnYQotLiAgICBkcyBELSBE XGgnLTEnXChoeQotLiAgICBkcyB0aCBcbydicCcKLS4gICAgZHMgVGggXG8nTFAnCi0uICAgIGRz IGFlIGFlCi0uICAgIGRzIEFlIEFFCi0uXH0KLS5ybSAjWyAjXSAjSCAjViAjRiBDCi0uXCIgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0uXCIKLS5JWCBUaXRsZSAiQUREUjJMSU5FIDEiCi0uVEggQUREUjJMSU5F IDEgIjIwMTAtMTAtMzAiICJiaW51dGlscy0yLjE3LjUwIiAiR05VIERldmVsb3BtZW50IFRvb2xz IgotLlwiIEZvciBucm9mZiwgdHVybiBvZmYganVzdGlmaWNhdGlvbi4gIEFsd2F5cyB0dXJuIG9m ZiBoeXBoZW5hdGlvbjsgaXQgbWFrZXMKLS5cIiB3YXkgdG9vIG1hbnkgbWlzdGFrZXMgaW4gdGVj aG5pY2FsIGRvY3VtZW50cy4KLS5pZiBuIC5hZCBsCi0ubmgKLS5TSCAiTkFNRSIKLWFkZHIybGlu ZSBcLSBjb252ZXJ0IGFkZHJlc3NlcyBpbnRvIGZpbGUgbmFtZXMgYW5kIGxpbmUgbnVtYmVycwot LlNIICJTWU5PUFNJUyIKLS5JWCBIZWFkZXIgIlNZTk9QU0lTIgotYWRkcjJsaW5lIFtcZkJcLWJc ZlIgXGZJYmZkbmFtZVxmUnxcZkJcLVwtdGFyZ2V0PVxmUlxmSWJmZG5hbWVcZlJdCi0gICAgICAg ICAgW1xmQlwtQ1xmUnxcZkJcLVwtZGVtYW5nbGVcZlJbPVxmSXN0eWxlXGZSXV0KLSAgICAgICAg ICBbXGZCXC1lXGZSIFxmSWZpbGVuYW1lXGZSfFxmQlwtXC1leGU9XGZSXGZJZmlsZW5hbWVcZlJd Ci0gICAgICAgICAgW1xmQlwtZlxmUnxcZkJcLVwtZnVuY3Rpb25zXGZSXSBbXGZCXC1zXGZSfFxm QlwtXC1iYXNlbmFtZVxmUl0KLSAgICAgICAgICBbXGZCXC1pXGZSfFxmQlwtXC1pbmxpbmVzXGZS XQotICAgICAgICAgIFtcZkJcLWpcZlJ8XGZCXC1cLXNlY3Rpb249XGZSXGZJbmFtZVxmUl0KLSAg ICAgICAgICBbXGZCXC1IXGZSfFxmQlwtXC1oZWxwXGZSXSBbXGZCXC1WXGZSfFxmQlwtXC12ZXJz aW9uXGZSXQotICAgICAgICAgIFthZGRyIGFkZHIgLi4uXQotLlNIICJERVNDUklQVElPTiIKLS5J WCBIZWFkZXIgIkRFU0NSSVBUSU9OIgotXCZcZkJhZGRyMmxpbmVcZlIgdHJhbnNsYXRlcyBhZGRy ZXNzZXMgaW50byBmaWxlIG5hbWVzIGFuZCBsaW5lIG51bWJlcnMuCi1HaXZlbiBhbiBhZGRyZXNz IGluIGFuIGV4ZWN1dGFibGUgb3IgYW4gb2Zmc2V0IGluIGEgc2VjdGlvbiBvZiBhIHJlbG9jYXRh YmxlCi1vYmplY3QsIGl0IHVzZXMgdGhlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiB0byBmaWd1cmUg b3V0IHdoaWNoIGZpbGUgbmFtZSBhbmQKLWxpbmUgbnVtYmVyIGFyZSBhc3NvY2lhdGVkIHdpdGgg aXQuCi0uUFAKLVRoZSBleGVjdXRhYmxlIG9yIHJlbG9jYXRhYmxlIG9iamVjdCB0byB1c2UgaXMg c3BlY2lmaWVkIHdpdGggdGhlIFxmQlwtZVxmUgotb3B0aW9uLiAgVGhlIGRlZmF1bHQgaXMgdGhl IGZpbGUgXGZJYS5vdXRcZlIuICBUaGUgc2VjdGlvbiBpbiB0aGUgcmVsb2NhdGFibGUKLW9iamVj dCB0byB1c2UgaXMgc3BlY2lmaWVkIHdpdGggdGhlIFxmQlwtalxmUiBvcHRpb24uCi0uUFAKLVwm XGZCYWRkcjJsaW5lXGZSIGhhcyB0d28gbW9kZXMgb2Ygb3BlcmF0aW9uLgotLlBQCi1JbiB0aGUg Zmlyc3QsIGhleGFkZWNpbWFsIGFkZHJlc3NlcyBhcmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5k IGxpbmUsCi1hbmQgXGZCYWRkcjJsaW5lXGZSIGRpc3BsYXlzIHRoZSBmaWxlIG5hbWUgYW5kIGxp bmUgbnVtYmVyIGZvciBlYWNoCi1hZGRyZXNzLgotLlBQCi1JbiB0aGUgc2Vjb25kLCBcZkJhZGRy MmxpbmVcZlIgcmVhZHMgaGV4YWRlY2ltYWwgYWRkcmVzc2VzIGZyb20KLXN0YW5kYXJkIGlucHV0 LCBhbmQgcHJpbnRzIHRoZSBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIGZvciBlYWNoCi1hZGRy ZXNzIG9uIHN0YW5kYXJkIG91dHB1dC4gIEluIHRoaXMgbW9kZSwgXGZCYWRkcjJsaW5lXGZSIG1h eSBiZSB1c2VkCi1pbiBhIHBpcGUgdG8gY29udmVydCBkeW5hbWljYWxseSBjaG9zZW4gYWRkcmVz c2VzLgotLlBQCi1UaGUgZm9ybWF0IG9mIHRoZSBvdXRwdXQgaXMgXGZCXHMtMUZJTEVOQU1FOkxJ TkVOT1xzMFxmUi4gIFRoZSBmaWxlIG5hbWUgYW5kCi1saW5lIG51bWJlciBmb3IgZWFjaCBhZGRy ZXNzIGlzIHByaW50ZWQgb24gYSBzZXBhcmF0ZSBsaW5lLiAgSWYgdGhlCi1cJlxmQlwtZlxmUiBv cHRpb24gaXMgdXNlZCwgdGhlbiBlYWNoIFxmQlxzLTFGSUxFTkFNRTpMSU5FTk9cczBcZlIgbGlu ZSBpcwotcHJlY2VkZWQgYnkgYSBcZkJccy0xRlVOQ1RJT05OQU1FXHMwXGZSIGxpbmUgd2hpY2gg aXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uCi1jb250YWluaW5nIHRoZSBhZGRyZXNzLgotLlBQ Ci1JZiB0aGUgZmlsZSBuYW1lIG9yIGZ1bmN0aW9uIG5hbWUgY2FuIG5vdCBiZSBkZXRlcm1pbmVk LAotXCZcZkJhZGRyMmxpbmVcZlIgd2lsbCBwcmludCB0d28gcXVlc3Rpb24gbWFya3MgaW4gdGhl aXIgcGxhY2UuICBJZiB0aGUKLWxpbmUgbnVtYmVyIGNhbiBub3QgYmUgZGV0ZXJtaW5lZCwgXGZC YWRkcjJsaW5lXGZSIHdpbGwgcHJpbnQgMC4KLS5TSCAiT1BUSU9OUyIKLS5JWCBIZWFkZXIgIk9Q VElPTlMiCi1UaGUgbG9uZyBhbmQgc2hvcnQgZm9ybXMgb2Ygb3B0aW9ucywgc2hvd24gaGVyZSBh cyBhbHRlcm5hdGl2ZXMsIGFyZQotZXF1aXZhbGVudC4KLS5JUCAiXGZCXC1iXGZSIFxmSWJmZG5h bWVcZlIiIDQKLS5JWCBJdGVtICItYiBiZmRuYW1lIgotLlBEIDAKLS5JUCAiXGZCXC1cLXRhcmdl dD1cZlJcZkliZmRuYW1lXGZSIiA0Ci0uSVggSXRlbSAiLS10YXJnZXQ9YmZkbmFtZSIKLS5QRAot U3BlY2lmeSB0aGF0IHRoZSBvYmplY3QtY29kZSBmb3JtYXQgZm9yIHRoZSBvYmplY3QgZmlsZXMg aXMKLVwmXGZJYmZkbmFtZVxmUi4KLS5JUCAiXGZCXC1DXGZSIiA0Ci0uSVggSXRlbSAiLUMiCi0u UEQgMAotLklQICJcZkJcLVwtZGVtYW5nbGVbPVxmUlxmSXN0eWxlXGZSXGZCXVxmUiIgNAotLklY IEl0ZW0gIi0tZGVtYW5nbGVbPXN0eWxlXSIKLS5QRAotRGVjb2RlIChcZklkZW1hbmdsZVxmUikg bG93LWxldmVsIHN5bWJvbCBuYW1lcyBpbnRvIHVzZXItbGV2ZWwgbmFtZXMuCi1CZXNpZGVzIHJl bW92aW5nIGFueSBpbml0aWFsIHVuZGVyc2NvcmUgcHJlcGVuZGVkIGJ5IHRoZSBzeXN0ZW0sIHRo aXMKLW1ha2VzIFwqKEMrIGZ1bmN0aW9uIG5hbWVzIHJlYWRhYmxlLiAgRGlmZmVyZW50IGNvbXBp bGVycyBoYXZlIGRpZmZlcmVudAotbWFuZ2xpbmcgc3R5bGVzLiBUaGUgb3B0aW9uYWwgZGVtYW5n bGluZyBzdHlsZSBhcmd1bWVudCBjYW4gYmUgdXNlZCB0bwotY2hvb3NlIGFuIGFwcHJvcHJpYXRl IGRlbWFuZ2xpbmcgc3R5bGUgZm9yIHlvdXIgY29tcGlsZXIuCi0uSVAgIlxmQlwtZVxmUiBcZklm aWxlbmFtZVxmUiIgNAotLklYIEl0ZW0gIi1lIGZpbGVuYW1lIgotLlBEIDAKLS5JUCAiXGZCXC1c LWV4ZT1cZlJcZklmaWxlbmFtZVxmUiIgNAotLklYIEl0ZW0gIi0tZXhlPWZpbGVuYW1lIgotLlBE Ci1TcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBleGVjdXRhYmxlIGZvciB3aGljaCBhZGRyZXNzZXMg c2hvdWxkIGJlCi10cmFuc2xhdGVkLiAgVGhlIGRlZmF1bHQgZmlsZSBpcyBcZklhLm91dFxmUi4K LS5JUCAiXGZCXC1mXGZSIiA0Ci0uSVggSXRlbSAiLWYiCi0uUEQgMAotLklQICJcZkJcLVwtZnVu Y3Rpb25zXGZSIiA0Ci0uSVggSXRlbSAiLS1mdW5jdGlvbnMiCi0uUEQKLURpc3BsYXkgZnVuY3Rp b24gbmFtZXMgYXMgd2VsbCBhcyBmaWxlIGFuZCBsaW5lIG51bWJlciBpbmZvcm1hdGlvbi4KLS5J UCAiXGZCXC1zXGZSIiA0Ci0uSVggSXRlbSAiLXMiCi0uUEQgMAotLklQICJcZkJcLVwtYmFzZW5h bWVzXGZSIiA0Ci0uSVggSXRlbSAiLS1iYXNlbmFtZXMiCi0uUEQKLURpc3BsYXkgb25seSB0aGUg YmFzZSBvZiBlYWNoIGZpbGUgbmFtZS4KLS5JUCAiXGZCXC1pXGZSIiA0Ci0uSVggSXRlbSAiLWki Ci0uUEQgMAotLklQICJcZkJcLVwtaW5saW5lc1xmUiIgNAotLklYIEl0ZW0gIi0taW5saW5lcyIK LS5QRAotSWYgdGhlIGFkZHJlc3MgYmVsb25ncyB0byBhIGZ1bmN0aW9uIHRoYXQgd2FzIGlubGlu ZWQsIHRoZSBzb3VyY2UKLWluZm9ybWF0aW9uIGZvciBhbGwgZW5jbG9zaW5nIHNjb3BlcyBiYWNr IHRvIHRoZSBmaXJzdCBub24taW5saW5lZAotZnVuY3Rpb24gd2lsbCBhbHNvIGJlIHByaW50ZWQu ICBGb3IgZXhhbXBsZSwgaWYgXGYoQ1dcKihDYG1haW5cKihDJ1xmUiBpbmxpbmVzCi1cJlxmKENX XCooQ2BjYWxsZWUxXCooQydcZlIgd2hpY2ggaW5saW5lcyBcZihDV1wqKENgY2FsbGVlMlwqKEMn XGZSLCBhbmQgYWRkcmVzcyBpcyBmcm9tCi1cJlxmKENXXCooQ2BjYWxsZWUyXCooQydcZlIsIHRo ZSBzb3VyY2UgaW5mb3JtYXRpb24gZm9yIFxmKENXXCooQ2BjYWxsZWUxXCooQydcZlIgYW5kIFxm KENXXCooQ2BtYWluXCooQydcZlIKLXdpbGwgYWxzbyBiZSBwcmludGVkLgotLklQICJcZkJcLWpc ZlIiIDQKLS5JWCBJdGVtICItaiIKLS5QRCAwCi0uSVAgIlxmQlwtXC1zZWN0aW9uXGZSIiA0Ci0u SVggSXRlbSAiLS1zZWN0aW9uIgotLlBECi1SZWFkIG9mZnNldHMgcmVsYXRpdmUgdG8gdGhlIHNw ZWNpZmllZCBzZWN0aW9uIGluc3RlYWQgb2YgYWJzb2x1dGUgYWRkcmVzc2VzLgotLklQICJcZkJA XGZSXGZJZmlsZVxmUiIgNAotLklYIEl0ZW0gIkBmaWxlIgotUmVhZCBjb21tYW5kLWxpbmUgb3B0 aW9ucyBmcm9tIFxmSWZpbGVcZlIuICBUaGUgb3B0aW9ucyByZWFkIGFyZQotaW5zZXJ0ZWQgaW4g cGxhY2Ugb2YgdGhlIG9yaWdpbmFsIEBcZklmaWxlXGZSIG9wdGlvbi4gIElmIFxmSWZpbGVcZlIK LWRvZXMgbm90IGV4aXN0LCBvciBjYW5ub3QgYmUgcmVhZCwgdGhlbiB0aGUgb3B0aW9uIHdpbGwg YmUgdHJlYXRlZAotbGl0ZXJhbGx5LCBhbmQgbm90IHJlbW92ZWQuCi0uU3AKLU9wdGlvbnMgaW4g XGZJZmlsZVxmUiBhcmUgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UuICBBIHdoaXRlc3BhY2UKLWNo YXJhY3RlciBtYXkgYmUgaW5jbHVkZWQgaW4gYW4gb3B0aW9uIGJ5IHN1cnJvdW5kaW5nIHRoZSBl bnRpcmUKLW9wdGlvbiBpbiBlaXRoZXIgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZXMuICBBbnkgY2hh cmFjdGVyIChpbmNsdWRpbmcgYQotYmFja3NsYXNoKSBtYXkgYmUgaW5jbHVkZWQgYnkgcHJlZml4 aW5nIHRoZSBjaGFyYWN0ZXIgdG8gYmUgaW5jbHVkZWQKLXdpdGggYSBiYWNrc2xhc2guICBUaGUg XGZJZmlsZVxmUiBtYXkgaXRzZWxmIGNvbnRhaW4gYWRkaXRpb25hbAotQFxmSWZpbGVcZlIgb3B0 aW9uczsgYW55IHN1Y2ggb3B0aW9ucyB3aWxsIGJlIHByb2Nlc3NlZCByZWN1cnNpdmVseS4KLS5T SCAiU0VFIEFMU08iCi0uSVggSGVhZGVyICJTRUUgQUxTTyIKLUluZm8gZW50cmllcyBmb3IgXGZJ YmludXRpbHNcZlIuCi0uU0ggIkNPUFlSSUdIVCIKLS5JWCBIZWFkZXIgIkNPUFlSSUdIVCIKLUNv cHlyaWdodCAoYykgMTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwKLTIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0uUFAKLVBlcm1pc3Npb24gaXMgZ3JhbnRl ZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1bWVudAotdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBccy0xR05VXHMwIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBW ZXJzaW9uIDEuMQotb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247Ci13aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgd2l0aCBubyBG cm9udC1Db3ZlciBUZXh0cywgYW5kIHdpdGggbm8KLUJhY2stQ292ZXIgVGV4dHMuICBBIGNvcHkg b2YgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlCi1zZWN0aW9uIGVudGl0bGVkIFwqKEwi XHMtMUdOVVxzMCBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZVwqKFIiLgpkaWZmIC0tZ2l0IGEv Z251L3Vzci5iaW4vYmludXRpbHMvYWRkcjJsaW5lL01ha2VmaWxlLmRlcGVuZCBiL2dudS91c3Iu YmluL2JpbnV0aWxzL2FkZHIybGluZS9NYWtlZmlsZS5kZXBlbmQKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0Ci0tLSBhL2dudS91c3IuYmluL2JpbnV0aWxzL2FkZHIybGluZS9NYWtlZmlsZS5kZXBl bmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jICRGcmVlQlNEJAotIyBBdXRvZ2Vu ZXJhdGVkIC0gZG8gTk9UIGVkaXQhCi0KLURJUkRFUFMgPSBcCi0JZ251L2xpYi9jc3UgXAotCWdu dS9saWIvbGliZ2NjIFwKLQlnbnUvdXNyLmJpbi9iaW51dGlscy9saWJiZmQgXAotCWdudS91c3Iu YmluL2JpbnV0aWxzL2xpYmJpbnV0aWxzIFwKLQlnbnUvdXNyLmJpbi9iaW51dGlscy9saWJpYmVy dHkgXAotCWluY2x1ZGUgXAotCWluY2x1ZGUveGxvY2FsZSBcCi0JbGliLyR7Q1NVX0RJUn0gXAot CWxpYi9saWJjIFwKLQlsaWIvbGliY29tcGlsZXJfcnQgXAotCi0KLS5pbmNsdWRlIDxkaXJkZXBz Lm1rPgotCi0uaWYgJHtERVBfUkVMRElSfSA9PSAke19ERVBfUkVMRElSfQotIyBsb2NhbCBkZXBl bmRlbmNpZXMgLSBuZWVkZWQgZm9yIC1qTiBpbiBjbGVhbiB0cmVlCi0uZW5kaWYKZGlmZiAtLWdp dCBhL2dudS91c3IuYmluL2JpbnV0aWxzL2FkZHIybGluZS9NYWtlZmlsZSBiL2dudS91c3IuYmlu L2JpbnV0aWxzL2FkZHIybGluZS9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLS0t IGEvZ251L3Vzci5iaW4vYmludXRpbHMvYWRkcjJsaW5lL01ha2VmaWxlCisrKyAvZGV2L251bGwK QEAgLTEsMTcgKzAsMCBAQAotIyAkRnJlZUJTRCQKLQotLmluY2x1ZGUgIi4uL01ha2VmaWxlLmlu YzAiCi0KLS5QQVRIOiAke1NSQ0RJUn0vYmludXRpbHMgJHtTUkNESVJ9L2JpbnV0aWxzL2RvYwot Ci1QUk9HPQlhZGRyMmxpbmUKLVNSQ1M9CWFkZHIybGluZS5jCi1DRkxBR1MrPSAtRF9HTlVfU09V UkNFCi1DRkxBR1MrPSAtSSR7LkNVUkRJUn0vJHtSRUxUT1B9L2xpYmJpbnV0aWxzCi1DRkxBR1Mr PSAtSSR7U1JDRElSfS9iaW51dGlscwotRFBBREQ9CSR7UkVMVE9QfS9saWJiaW51dGlscy9saWJi aW51dGlscy5hCi1EUEFERCs9CSR7UkVMVE9QfS9saWJiZmQvbGliYmZkLmEKLURQQUREKz0JJHtS RUxUT1B9L2xpYmliZXJ0eS9saWJpYmVydHkuYQotTERBREQ9CSR7RFBBRER9Ci0KLS5pbmNsdWRl IDxic2QucHJvZy5taz4KZGlmZiAtLWdpdCBhL2dudS91c3IuYmluL2JpbnV0aWxzL01ha2VmaWxl IGIvZ251L3Vzci5iaW4vYmludXRpbHMvTWFrZWZpbGUKLS0tIGEvZ251L3Vzci5iaW4vYmludXRp bHMvTWFrZWZpbGUKKysrIGIvZ251L3Vzci5iaW4vYmludXRpbHMvTWFrZWZpbGUKQEAgLTcsMjUg KzcsMTEgQEAKIAlsaWJiZmQgXAogCWxpYm9wY29kZXMgXAogCWxpYmJpbnV0aWxzIFwKLQkke19h ZGRyMmxpbmV9IFwKIAlhcyBcCiAJbGQgXAotCSR7X25tfSBcCiAJJHtfb2JqY29weX0gXAogCW9i amR1bXAgXAotCSR7X3JlYWRlbGZ9IFwKLQkke19zaXplfSBcCi0JJHtfc3RyaW5nc30gXAotCSR7 X3N0cmlwfQogCi0uaWYgJHtNS19FTEZUT09MQ0hBSU5fVE9PTFN9ID09ICJubyIKLV9hZGRyMmxp bmU9CWFkZHIybGluZQotX25tPQkJbm0KLV9yZWFkZWxmPQlyZWFkZWxmCi1fc2l6ZT0JCXNpemUK LV9zdHJpbmdzPQlzdHJpbmdzCi1fc3RyaXA9CQlzdHJpcAotLmVuZGlmCiAuaWYgJHtNS19FTEZU T09MQ0hBSU5fVE9PTFN9ID09ICJubyIgfHwgJHtNS19FTEZDT1BZX0FTX09CSkNPUFl9ID09ICJu byIKIF9vYmpjb3B5PQlvYmpjb3B5CiAuZW5kaWYKZGlmZiAtLWdpdCBhL1VQREFUSU5HIGIvVVBE QVRJTkcKLS0tIGEvVVBEQVRJTkcKKysrIGIvVVBEQVRJTkcKQEAgLTMxLDYgKzMxLDEyIEBACiAJ ZGlzYWJsZSB0aGUgbW9zdCBleHBlbnNpdmUgZGVidWdnaW5nIGZ1bmN0aW9uYWxpdHkgcnVuCiAJ ImxuIC1zICdhYm9ydDpmYWxzZSxqdW5rOmZhbHNlJyAvZXRjL21hbGxvYy5jb25mIi4pCiAKKzIw MVhYWFhYOgorCUdOVSBCaW51dGlscyB2ZXJzaW9ucyBvZiBhZGRyMmxpbmUsIGMrK2ZpbHQsIG5t LCBvYmpjb3B5LCByZWFkZWxmLAorCXNpemUsIHN0cmluZ3MgYW5kIHN0cmlwIGhhdmUgYmVlbiBy ZW1vdmVkLiBTZXR0aW5nIHRoZSBzcmMuY29uZig1KQorCWtub2IgV0lUSE9VVF9FTEZUT09MQ0hB SU5fVE9PTFMgd2lsbCBsZWF2ZSB0aGUgc3lzdGVtIHdpdGhvdXQgdGhlc2UKKwl0b29scy4KKwog MjAxNTA3Mjg6CiAJQXMgWkZTIHJlcXVpcmVzIG1vcmUga2VybmVsIHN0YWNrIHBhZ2VzIHRoYW4g aXMgdGhlIGRlZmF1bHQgb24gc29tZQogCWFyY2hpdGVjdHVyZXMgZS5nLiBpMzg2LCBpdCBub3cg d2FybnMgaWYgS1NUQUNLX1BBR0VTIGlzIGxlc3MgdGhhbgpAQCAtMjIzLDggKzIyOSw2IEBACiAJ RUxGIHRvb2xzIGFkZHIybGluZSwgZWxmY29weSAoc3RyaXApLCBubSwgc2l6ZSwgYW5kIHN0cmlu Z3MgYXJlIG5vdwogCXRha2VuIGZyb20gdGhlIEVMRiBUb29sIENoYWluIHByb2plY3QgcmF0aGVy IHRoYW4gR05VIGJpbnV0aWxzLiBUaGV5CiAJc2hvdWxkIGJlIGRyb3AtaW4gcmVwbGFjZW1lbnRz LCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBhcm02NCBzdXBwb3J0LgotCVRoZSBXSVRIT1VUX0VMRlRP T0xDSEFJTl9UT09MUz0ga25vYiBtYXkgYmUgdXNlZCB0byBvYnRhaW4gdGhlCi0JYmludXRpbHMg dG9vbHMsIGlmIG5lY2Vzc2FyeS4KIAogMjAxNTAxMDU6CiAJVGhlIGRlZmF1bHQgVW5ib3VuZCBj b25maWd1cmF0aW9uIG5vdyBlbmFibGVzIHJlbW90ZSBjb250cm9sCgo= --b1_67ec10c8936061913117e0db8037e460-- From owner-freebsd-toolchain@freebsd.org Thu Jul 30 18:01:19 2015 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 902F49AFCDD for ; Thu, 30 Jul 2015 18:01:19 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm42-vm5.bullet.mail.bf1.yahoo.com (nm42-vm5.bullet.mail.bf1.yahoo.com [216.109.114.204]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 153642F0 for ; Thu, 30 Jul 2015 18:01:18 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1438279269; bh=nSJNGTJF2JVUjhOWQ74ljp9xyNFnZCST7VweRevghJk=; h=Date:From:To:Subject:From:Subject; b=F/5EVJmvYZGtYLogP293k6DBo0gTjE8Fxf+Iorw4hmbQFs+kCzAVrcZnEKPAijCF9srkNLctftr7Ly85l8O+IBFyvesOpBhqxBcVT5NihCYoXYdU3oNedUMWl63mPX1kZ0+ZK+0FPRxHcP9qHuhS3AFyW47qRkX+i+Sy8WiVDDZLbqG362EzImy9V9bzAQwwNZC8K1ZZwHzWBdtQxU8fl1fXDzG48Pct+L8mXMQ2hixJ77pZTJA5KA5QEgIeN9lz/YndakFt1uR9Bxf3ND9TfoJcQ2CfGQXg5qJ/rMrhb17Vn7j2mq8hmZbeR1lkWQAxZHOb7cMVJEm5XHQzkXJE9Q== Received: from [98.139.215.143] by nm42.bullet.mail.bf1.yahoo.com with NNFMP; 30 Jul 2015 18:01:09 -0000 Received: from [68.142.230.75] by tm14.bullet.mail.bf1.yahoo.com with NNFMP; 30 Jul 2015 18:01:09 -0000 Received: from [127.0.0.1] by smtp232.mail.bf1.yahoo.com with NNFMP; 30 Jul 2015 18:01:09 -0000 X-Yahoo-Newman-Id: 175274.23666.bm@smtp232.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: gFp35IMVM1mjjxYJBU.NCbJ1G8hcr2Eek4nOCJi9vzBfNdq iF9DUVvFXKGsiuT3HlCqudE9425LlTWmaTYuE85BkAmo4ysuXGQCMGbIw4kS v1Hb4UKV1wOBh.K4GMeWD5heUNT9BPEWap3hs1AqW78_DdaY_Av.e6McST6_ R06OAbprYuamWmQAomATf4TQP_PFowB5W9bzoG18acIXp2H4OT_mA3UlYbzU GalpYty.rVTtlS_Gg4YiUAzrp5F.hFwCwi_AHvgkyEEbNkUvXhpEmkV_F.Rr PoXgDU8K0IoWk5Q4nBO1vvsIa3op65DkNx9g6UBZELNNjiokYtKReIRZzIfu yZ9Ha3yNxj_YQjMycU1so_9sCcjZC5DRqEj2TpHRr9m_etkgXFREPVQlL_RD b7V.BE3hdbRtC1XG_qJctpl9dI0UsIEoYx3Lms4vvfEUWX2EKP9FoQvRaUAD beQ_SNGSKOh_2AwygjeZF4MZW1lwaxG5OB9aVm3yC4r9YZg66pfIX_DtfJK3 n22LFD9BynyXPvkxfR7TaPVChKtgaMmb8 X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Message-ID: <55BA666D.7080709@FreeBSD.org> Date: Thu, 30 Jul 2015 13:01:17 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: freebsd-toolchain@FreeBSD.org Subject: [CFR] FORTIFY_SOURCE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2015 18:01:19 -0000 Dear developers; As part of this year's Google Summer of Code [1] Oliver Pinter and I have been working on implementing the FORTIFY_SOURCE libc extension. The idea, initially implemented in GNU libc is to use the gcc's __builtin_object_size to replace many common string functions with bounds checking variants, therefore limiting the possibility of buffer overflows. So far the implementation is basically finished and we merged elements of the from both NetBSD and bionic's libc. Our implementation is non-invasive and very effective; it works with both clang and gcc (tested with our base compilers). The code would initially be off by default and there are still some small issues to figure out but we would welcome wider review: https://reviews.freebsd.org/D3043 I will also be requesting and exp-run on the ports tree soon. [1] https://wiki.freebsd.org/SummerOfCode2015/FreeBSDLibcSecurityExtensions