From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1MAAnp-0007IC-R6 for garchives@archives.gentoo.org; Fri, 29 May 2009 22:44:02 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3F8F5E02B8; Fri, 29 May 2009 22:43:52 +0000 (UTC) Received: from mail-ew0-f213.google.com (mail-ew0-f213.google.com [209.85.219.213]) by pigeon.gentoo.org (Postfix) with ESMTP id 67740E02B8 for ; Fri, 29 May 2009 22:43:51 +0000 (UTC) Received: by ewy9 with SMTP id 9so6043510ewy.34 for ; Fri, 29 May 2009 15:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=N/o7iTaxUR5kcXUIJcqtpcKghXxLXdZT1nUIL1i0LIg=; b=flap/0UvPeRgYQb9D0u9n9+2SQfYzbkLKCwllgdcnPAF16nHuT9UI0+uZLPvVQXXHw iIe1j94zRRWQbNqyEM+2PCx5tlnGZJKk6vlMHzCaHzhWXN/gC3MktSVq8eLJgfPGgXCV xaMgELEuB03LlrplqcR71jLuci8JpmotIZ0e0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=wXm/B6miYEEDbwSziHag9WOYDsn8SFIeSucz7EgUfzHiSaN1bJPeK2Tk7SRjG+b25s cZL4pu9rxU4pL/CLEB28ur6Y8aVXHaCCvZkQSElKKXg5nahIPa2xPh/gBY/ObtKcSsNT 5zoRo1Kwjetq+MhCPTD9Gs0DvjhY76xxNa6BU= Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 Received: by 10.216.47.204 with SMTP id t54mr1102810web.75.1243637030587; Fri, 29 May 2009 15:43:50 -0700 (PDT) Date: Fri, 29 May 2009 22:43:49 +0000 Message-ID: <93d30e950905291543o1aea72c3h254edb1425d4f98@mail.gmail.com> Subject: [gentoo-user] pdftk emerge error From: Marco To: gentoo-user@lists.gentoo.org Content-Type: multipart/mixed; boundary=001485f724f0703166046b14cf78 X-Archives-Salt: 94549073-22b8-49a4-b5fd-d996d18b4a81 X-Archives-Hash: be6a65487693da255149ab3f18c0e58c --001485f724f0703166046b14cf78 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi all, I am trying to emerge pdftk on my amd64 machine. After re-emerging gcc with gcj, compilation fails with: * ERROR: app-text/pdftk-1.12 failed. * Call stack: * ebuild.sh, line 48: Called src_compile * environment, line 2238: Called die * The specific snippet of code: * make -f Makefile.Generic || die "Compilation failed." * The die message: * Compilation failed. I also attached the build log and the ebuild environment file. Any suggestions on how to solve this problem? Kind of urgent cause I need to finish my job-application... Thanks in advance! -- Regards, Marco --001485f724f0703166046b14cf78 Content-Type: application/octet-stream; name="build.log" Content-Disposition: attachment; filename="build.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fvbligve0 Pj4+IFVucGFja2luZyBzb3VyY2UuLi4KPj4+IFVucGFja2luZyBwZGZ0a18xLjEyLTExLmRpZmYu Z3ogdG8gL3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEyL3dvcmsKPj4+IFVucGFj a2luZyBwZGZ0ay0xLjEyLnRhci5neiB0byAvdmFyL3RtcC9wb3J0YWdlL2FwcC10ZXh0L3BkZnRr LTEuMTIvd29yawogG1szMjswMW0qG1swbSBBcHBseWluZyBwZGZ0a18xLjEyLTExLmRpZmYgLi4u ChtbQRtbOTNDICAbWzM0OzAxbVsgG1szMjswMW1vaxtbMzQ7MDFtIF0bWzBtCj4+PiBTb3VyY2Ug dW5wYWNrZWQgaW4gL3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEyL3dvcmsKPj4+ IENvbXBpbGluZyBzb3VyY2UgaW4gL3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEy L3dvcmsvcGRmdGstMS4xMi9wZGZ0ayAuLi4KbWFrZSAtQyAuLi9qYXZhX2xpYnMKbWFrZVsxXTog RW50ZXJpbmcgZGlyZWN0b3J5IGAvdmFyL3RtcC9wb3J0YWdlL2FwcC10ZXh0L3BkZnRrLTEuMTIv d29yay9wZGZ0ay0xLjEyL2phdmFfbGlicycKbWFrZSAtQyAiL3Zhci90bXAvcG9ydGFnZS9hcHAt dGV4dC9wZGZ0ay0xLjEyL3dvcmsvcGRmdGstMS4xMi9qYXZhX2xpYnMvZ251X2xvY2FsL2phdmEv c2VjdXJpdHkiOwptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC92YXIvdG1wL3BvcnRhZ2Uv YXBwLXRleHQvcGRmdGstMS4xMi93b3JrL3BkZnRrLTEuMTIvamF2YV9saWJzL2dudV9sb2NhbC9q YXZhL3NlY3VyaXR5JwpnY2ogIC0tZW5jb2Rpbmc9VVRGLTggLUkiL3Zhci90bXAvcG9ydGFnZS9h cHAtdGV4dC9wZGZ0ay0xLjEyL3dvcmsvcGRmdGstMS4xMi9qYXZhX2xpYnMiIC1jIEVuZ2luZS5q YXZhIC1vIEVuZ2luZS5vCkVuZ2luZS5qYXZhOjE1ODogd2FybmluZzogQ2xhc3MgaXMgYSByYXcg dHlwZS4gUmVmZXJlbmNlcyB0byBnZW5lcmljIHR5cGUgQ2xhc3M8VD4gc2hvdWxkIGJlIHBhcmFt ZXRlcml6ZWQKCUNsYXNzIGNsYXp6ID0gbnVsbDsKCV5eXl5eCkVuZ2luZS5qYXZhOjE2MDogd2Fy bmluZzogQ29uc3RydWN0b3IgaXMgYSByYXcgdHlwZS4gUmVmZXJlbmNlcyB0byBnZW5lcmljIHR5 cGUgQ29uc3RydWN0b3I8VD4gc2hvdWxkIGJlIHBhcmFtZXRlcml6ZWQKCUNvbnN0cnVjdG9yIGNv bnN0cnVjdG9yID0gbnVsbDsKCV5eXl5eXl5eXl5eCkVuZ2luZS5qYXZhOjIxMzogd2FybmluZzog Q29uc3RydWN0b3IgaXMgYSByYXcgdHlwZS4gUmVmZXJlbmNlcyB0byBnZW5lcmljIHR5cGUgQ29u c3RydWN0b3I8VD4gc2hvdWxkIGJlIHBhcmFtZXRlcml6ZWQKCXByaXZhdGUgc3RhdGljIENvbnN0 cnVjdG9yIGdldENvbXBhdGlibGVDb25zdHJ1Y3RvcihDbGFzcyBjbGF6eiwKCSAgICAgICAgICAg ICAgIF5eXl5eXl5eXl5eCkVuZ2luZS5qYXZhOjIxMzogd2FybmluZzogQ2xhc3MgaXMgYSByYXcg dHlwZS4gUmVmZXJlbmNlcyB0byBnZW5lcmljIHR5cGUgQ2xhc3M8VD4gc2hvdWxkIGJlIHBhcmFt ZXRlcml6ZWQKCXByaXZhdGUgc3RhdGljIENvbnN0cnVjdG9yIGdldENvbXBhdGlibGVDb25zdHJ1 Y3RvcihDbGFzcyBjbGF6eiwKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeXl5eXgpFbmdpbmUuamF2YToyMTc6IHdhcm5pbmc6IENvbnN0cnVjdG9y IGlzIGEgcmF3IHR5cGUuIFJlZmVyZW5jZXMgdG8gZ2VuZXJpYyB0eXBlIENvbnN0cnVjdG9yPFQ+ IHNob3VsZCBiZSBwYXJhbWV0ZXJpemVkCglDb25zdHJ1Y3RvcltdIGMgPSBjbGF6ei5nZXRDb25z dHJ1Y3RvcnMoKTsKCV5eXl5eXl5eXl5eCkVuZ2luZS5qYXZhOjIyMDogd2FybmluZzogQ2xhc3Mg aXMgYSByYXcgdHlwZS4gUmVmZXJlbmNlcyB0byBnZW5lcmljIHR5cGUgQ2xhc3M8VD4gc2hvdWxk IGJlIHBhcmFtZXRlcml6ZWQKCUNsYXNzW10gYXJnVHlwZXMgPSBjW2ldLmdldFBhcmFtZXRlclR5 cGVzKCk7CgleXl5eXgpFbmdpbmUuamF2YToyMjY6IHdhcm5pbmc6IFR5cGUgc2FmZXR5OiBUaGUg bWV0aG9kIGlzQXNzaWduYWJsZUZyb20oQ2xhc3MpIGJlbG9uZ3MgdG8gdGhlIHJhdyB0eXBlIENs YXNzLiBSZWZlcmVuY2VzIHRvIGdlbmVyaWMgdHlwZSBDbGFzczxUPiBzaG91bGQgYmUgcGFyYW1l dGVyaXplZAoJIWFyZ1R5cGVzW2pdLmlzQXNzaWduYWJsZUZyb20oaW5pdEFyZ3Nbal0uZ2V0Q2xh c3MoKSkpCgkgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXgo3IHByb2JsZW1zICg3IHdhcm5pbmdzKQphciBycyBzZWN1cml0eS5hICBFbmdpbmUubzsK YXI6IGNyZWF0aW5nIHNlY3VyaXR5LmEKZ2NqICAtLWVuY29kaW5nPVVURi04IC1JIi92YXIvdG1w L3BvcnRhZ2UvYXBwLXRleHQvcGRmdGstMS4xMi93b3JrL3BkZnRrLTEuMTIvamF2YV9saWJzIiAt QyBFbmdpbmUuamF2YQpFbmdpbmUuamF2YToxNTg6IHdhcm5pbmc6IENsYXNzIGlzIGEgcmF3IHR5 cGUuIFJlZmVyZW5jZXMgdG8gZ2VuZXJpYyB0eXBlIENsYXNzPFQ+IHNob3VsZCBiZSBwYXJhbWV0 ZXJpemVkCglDbGFzcyBjbGF6eiA9IG51bGw7CgleXl5eXgpFbmdpbmUuamF2YToxNjA6IHdhcm5p bmc6IENvbnN0cnVjdG9yIGlzIGEgcmF3IHR5cGUuIFJlZmVyZW5jZXMgdG8gZ2VuZXJpYyB0eXBl IENvbnN0cnVjdG9yPFQ+IHNob3VsZCBiZSBwYXJhbWV0ZXJpemVkCglDb25zdHJ1Y3RvciBjb25z dHJ1Y3RvciA9IG51bGw7CgleXl5eXl5eXl5eXgpFbmdpbmUuamF2YToyMTM6IHdhcm5pbmc6IENv bnN0cnVjdG9yIGlzIGEgcmF3IHR5cGUuIFJlZmVyZW5jZXMgdG8gZ2VuZXJpYyB0eXBlIENvbnN0 cnVjdG9yPFQ+IHNob3VsZCBiZSBwYXJhbWV0ZXJpemVkCglwcml2YXRlIHN0YXRpYyBDb25zdHJ1 Y3RvciBnZXRDb21wYXRpYmxlQ29uc3RydWN0b3IoQ2xhc3MgY2xhenosCgkgICAgICAgICAgICAg ICBeXl5eXl5eXl5eXgpFbmdpbmUuamF2YToyMTM6IHdhcm5pbmc6IENsYXNzIGlzIGEgcmF3IHR5 cGUuIFJlZmVyZW5jZXMgdG8gZ2VuZXJpYyB0eXBlIENsYXNzPFQ+IHNob3VsZCBiZSBwYXJhbWV0 ZXJpemVkCglwcml2YXRlIHN0YXRpYyBDb25zdHJ1Y3RvciBnZXRDb21wYXRpYmxlQ29uc3RydWN0 b3IoQ2xhc3MgY2xhenosCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXl5eXl4KRW5naW5lLmphdmE6MjE3OiB3YXJuaW5nOiBDb25zdHJ1Y3RvciBp cyBhIHJhdyB0eXBlLiBSZWZlcmVuY2VzIHRvIGdlbmVyaWMgdHlwZSBDb25zdHJ1Y3RvcjxUPiBz aG91bGQgYmUgcGFyYW1ldGVyaXplZAoJQ29uc3RydWN0b3JbXSBjID0gY2xhenouZ2V0Q29uc3Ry dWN0b3JzKCk7CgleXl5eXl5eXl5eXgpFbmdpbmUuamF2YToyMjA6IHdhcm5pbmc6IENsYXNzIGlz IGEgcmF3IHR5cGUuIFJlZmVyZW5jZXMgdG8gZ2VuZXJpYyB0eXBlIENsYXNzPFQ+IHNob3VsZCBi ZSBwYXJhbWV0ZXJpemVkCglDbGFzc1tdIGFyZ1R5cGVzID0gY1tpXS5nZXRQYXJhbWV0ZXJUeXBl cygpOwoJXl5eXl4KRW5naW5lLmphdmE6MjI2OiB3YXJuaW5nOiBUeXBlIHNhZmV0eTogVGhlIG1l dGhvZCBpc0Fzc2lnbmFibGVGcm9tKENsYXNzKSBiZWxvbmdzIHRvIHRoZSByYXcgdHlwZSBDbGFz cy4gUmVmZXJlbmNlcyB0byBnZW5lcmljIHR5cGUgQ2xhc3M8VD4gc2hvdWxkIGJlIHBhcmFtZXRl cml6ZWQKCSFhcmdUeXBlc1tqXS5pc0Fzc2lnbmFibGVGcm9tKGluaXRBcmdzW2pdLmdldENsYXNz KCkpKQoJIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl4KNyBwcm9ibGVtcyAoNyB3YXJuaW5ncykKZ2NqaCBFbmdpbmU7CkV4Y2VwdGlvbiBpbiB0aHJl YWQgIm1haW4iIGphdmEuaW8uSU9FeGNlcHRpb246IGNhbid0IGZpbmQgY2xhc3MgZmlsZSBFbmdp bmUuY2xhc3MgaW4gamF2YS5uZXQuVVJMQ2xhc3NMb2FkZXJ7dXJscz1bZmlsZTovdXNyL3NoYXJl L2djYy1kYXRhL3g4Nl82NC1wYy1saW51eC1nbnUvNC4zLjIvamF2YS9saWJnY2otNC4zLjIuamFy XSwgcGFyZW50PWdudS5nY2oucnVudGltZS5TeXN0ZW1DbGFzc0xvYWRlcnt1cmxzPVtmaWxlOi4v XSwgcGFyZW50PWdudS5nY2oucnVudGltZS5FeHRlbnNpb25DbGFzc0xvYWRlcnt1cmxzPVtdLCBw YXJlbnQ9bnVsbH19fQogICBhdCBnbnUuY2xhc3NwYXRoLnRvb2xzLmphdmFoLk1haW4uZ2V0Q2xh c3MobGliZ2NqLXRvb2xzLnNvLjkpCiAgIGF0IGdudS5jbGFzc3BhdGgudG9vbHMuamF2YWguTWFp bi5ydW4obGliZ2NqLXRvb2xzLnNvLjkpCiAgIGF0IGdudS5jbGFzc3BhdGgudG9vbHMuamF2YWgu R2NqaE1haW4ubWFpbihsaWJnY2otdG9vbHMuc28uOSkKbWFrZVsyXTogKioqIFtFbmdpbmUuaF0g RXJyb3IgMQpybSBFbmdpbmUuY2xhc3MKbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgYC92YXIv dG1wL3BvcnRhZ2UvYXBwLXRleHQvcGRmdGstMS4xMi93b3JrL3BkZnRrLTEuMTIvamF2YV9saWJz L2dudV9sb2NhbC9qYXZhL3NlY3VyaXR5JwptYWtlWzFdOiAqKiogW2xpYmdjal9sb2NhbF0gRXJy b3IgMgptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4 dC9wZGZ0ay0xLjEyL3dvcmsvcGRmdGstMS4xMi9qYXZhX2xpYnMnCm1ha2U6ICoqKiBbamF2YV9s aWJzXSBFcnJvciAyCiAbWzMxOzAxbSobWzBtIAogG1szMTswMW0qG1swbSBFUlJPUjogYXBwLXRl eHQvcGRmdGstMS4xMiBmYWlsZWQuCiAbWzMxOzAxbSobWzBtIENhbGwgc3RhY2s6CiAbWzMxOzAx bSobWzBtICAgICAgICAgICAgICAgZWJ1aWxkLnNoLCBsaW5lICAgNDg6ICBDYWxsZWQgc3JjX2Nv bXBpbGUKIBtbMzE7MDFtKhtbMG0gICAgICAgICAgICAgZW52aXJvbm1lbnQsIGxpbmUgMjIzODog IENhbGxlZCBkaWUKIBtbMzE7MDFtKhtbMG0gVGhlIHNwZWNpZmljIHNuaXBwZXQgb2YgY29kZToK IBtbMzE7MDFtKhtbMG0gICAgICAgbWFrZSAtZiBNYWtlZmlsZS5HZW5lcmljIHx8IGRpZSAiQ29t cGlsYXRpb24gZmFpbGVkLiIKIBtbMzE7MDFtKhtbMG0gIFRoZSBkaWUgbWVzc2FnZToKIBtbMzE7 MDFtKhtbMG0gICBDb21waWxhdGlvbiBmYWlsZWQuCiAbWzMxOzAxbSobWzBtIAogG1szMTswMW0q G1swbSBJZiB5b3UgbmVlZCBzdXBwb3J0LCBwb3N0IHRoZSB0b3Btb3N0IGJ1aWxkIGVycm9yLCBh bmQgdGhlIGNhbGwgc3RhY2sgaWYgcmVsZXZhbnQuCiAbWzMxOzAxbSobWzBtIEEgY29tcGxldGUg YnVpbGQgbG9nIGlzIGxvY2F0ZWQgYXQgJy92YXIvdG1wL3BvcnRhZ2UvYXBwLXRleHQvcGRmdGst MS4xMi90ZW1wL2J1aWxkLmxvZycuCiAbWzMxOzAxbSobWzBtIFRoZSBlYnVpbGQgZW52aXJvbm1l bnQgZmlsZSBpcyBsb2NhdGVkIGF0ICcvdmFyL3RtcC9wb3J0YWdlL2FwcC10ZXh0L3BkZnRrLTEu MTIvdGVtcC9lbnZpcm9ubWVudCcuCiAbWzMxOzAxbSobWzBtIAo= --001485f724f0703166046b14cf78 Content-Type: application/octet-stream; name=environment Content-Disposition: attachment; filename=environment Content-Transfer-Encoding: base64 X-Attachment-Id: f_fvbljbye1 QUJJPWFtZDY0CkFMU0FfQ0FSRFM9CkFMU0FfUENNX1BMVUdJTlM9J2FkcGNtIGFsYXcgYXN5bSBj b3B5IGRtaXggZHNoYXJlIGRzbm9vcCBlbXB0eSBleHRwbHVnIGZpbGUgaG9va3MgaWVjOTU4IGlv cGx1ZyBsYWRzcGEgbGZsb2F0IGxpbmVhciBtZXRlciBtbWFwX2VtdWwgbXVsYXcgbXVsdGkgbnVs bCBwbHVnIHJhdGUgcm91dGUgc2hhcmUgc2htIHNvZnR2b2wnCkFQQUNIRTJfTU9EVUxFUz0nYWN0 aW9ucyBhbGlhcyBhdXRoX2Jhc2ljIGF1dGhuX2FsaWFzIGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1 dGhuX2RlZmF1bHQgYXV0aG5fZmlsZSBhdXRoel9kYm0gYXV0aHpfZGVmYXVsdCBhdXRoel9ncm91 cGZpbGUgYXV0aHpfaG9zdCBhdXRoel9vd25lciBhdXRoel91c2VyIGF1dG9pbmRleCBjYWNoZSBk YXYgZGF2X2ZzIGRhdl9sb2NrIGRlZmxhdGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0 X2ZpbHRlciBmaWxlX2NhY2hlIGZpbHRlciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmln IGxvZ2lvIG1lbV9jYWNoZSBtaW1lIG1pbWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRl bnZpZiBzcGVsaW5nIHN0YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxp YXMnCkFSQ0g9YW1kNjQKQVNGTEFHU194ODY9LS0zMgpDQlVJTEQ9eDg2XzY0LXBjLWxpbnV4LWdu dQpDREVGSU5FX2FtZDY0PV9feDg2XzY0X18KQ0RFRklORV9kZWZhdWx0PV9fdW5peF9fCkNERUZJ TkVfeDg2PV9faTM4Nl9fCkNGTEFHUz0nLW1hcmNoPW5vY29uYSAtTzIgLXBpcGUnCkNGTEFHU19k ZWZhdWx0PQpDRkxBR1NfeDg2PS1tMzIKQ0hPU1Q9eDg2XzY0LXBjLWxpbnV4LWdudQpDSE9TVF9h bWQ2ND14ODZfNjQtcGMtbGludXgtZ251CkNIT1NUX2RlZmF1bHQ9eDg2XzY0LXBjLWxpbnV4LWdu dQpDSE9TVF94ODY9aTY4Ni1wYy1saW51eC1nbnUKQ09MT1JGR0JHPScxNTswJwpDUk9TU0NPTVBJ TEVfT1BUUz0KQ1RBUkdFVF9kZWZhdWx0PXg4Nl82NC1wYy1saW51eC1nbnUKQ1ZTX1JTSD1zc2gK Q1hYRkxBR1M9Jy1tYXJjaD1ub2NvbmEgLU8yIC1waXBlJwpERUZBVUxUX0FCST1hbWQ2NApERVBF TkQ9Jz49c3lzLWRldmVsL2djYy0zLjMgJwpERVNDUklQVElPTj0nQSB0b29sIGZvciBtYW5pcHVs YXRpbmcgUERGIGRvY3VtZW50cycKREVTVFRSRUU9L3VzcgpESVJPUFRJT05TPS1tMDc1NQpFQVBJ PTAKRUxJQkM9Z2xpYmMKRVBBVENIX0VYQ0xVREU9CkVQQVRDSF9GT1JDRT1ubwpFUEFUQ0hfTVVM VElfTVNHPSdBcHBseWluZyB2YXJpb3VzIHBhdGNoZXMgKGJ1Z2ZpeGVzL3VwZGF0ZXMpIC4uLicK RVBBVENIX09QVFM9Jy1nMCAtRSAtLW5vLWJhY2t1cC1pZi1taXNtYXRjaCcKRVBBVENIX1NJTkdM RV9NU0c9CkVQQVRDSF9TT1VSQ0U9L3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEy L3dvcmsvcGF0Y2gKRVBBVENIX1NVRkZJWD1wYXRjaC5iejIKRVhFT1BUSU9OUz0tbTA3NTUKRkVB VFVSRVM9J2Rpc3Rsb2NrcyBmaXhwYWNrYWdlcyBwYXJhbGxlbC1mZXRjaCBwcm90ZWN0LW93bmVk IHNhbmRib3ggc2ZwZXJtcyBzdHJpY3QgdW5tZXJnZS1vcnBoYW5zIHVzZXJmZXRjaCcKR0NDX1NQ RUNTPQpHREtfVVNFX1hGVD0xCkhPTUVQQUdFPWh0dHA6Ly93d3cuYWNjZXNzcGRmLmNvbS9wZGZ0 awpJTkhFUklURUQ9J3Rvb2xjaGFpbi1mdW5jcyBtdWx0aWxpYiBwb3J0YWJpbGl0eSBldXRpbHMn CklOUFVUX0RFVklDRVM9J2tleWJvYXJkIG1vdXNlIHN5bmFwdGljcyBldmRldicKSU5TREVTVFRS RUU9CklOU09QVElPTlM9LW0wNjQ0CklVU0U9J25vZHJtICcKSkFWQUM9L2V0Yy9qYXZhLWNvbmZp Zy0yL2N1cnJlbnQtc3lzdGVtLXZtL2Jpbi9qYXZhYwpKQVZBX0hPTUU9L2V0Yy9qYXZhLWNvbmZp Zy0yL2N1cnJlbnQtc3lzdGVtLXZtCkpES19IT01FPS9ldGMvamF2YS1jb25maWctMi9jdXJyZW50 LXN5c3RlbS12bQpLRVJORUw9bGludXgKS0VSTkVMX0FCST1hbWQ2NApLRVlXT1JEUz0nYW1kNjQg cHBjIHBwYzY0IHg4NicKS1Y9Mi42LjI3LWdlbnRvby1yOApMQ0RfREVWSUNFUz0KTERGTEFHUz0t V2wsLU8xCkxERkxBR1NfZGVmYXVsdD0KTERGTEFHU194ODY9Jy1tIGVsZl9pMzg2JwpMSUJESVJf YW1kNjQ9bGliNjQKTElCRElSX2FtZDY0X2Zic2Q9bGliNjQKTElCRElSX2RlZmF1bHQ9bGliCkxJ QkRJUl9wcGM9bGliMzIKTElCRElSX3BwYzY0PWxpYjY0CkxJQkRJUl9zcGFyYzMyPWxpYjMyCkxJ QkRJUl9zcGFyYzY0PWxpYjY0CkxJQkRJUl94ODY9bGliMzIKTElCRElSX3g4Nl9mYnNkPWxpYjMy CkxJQk9QVElPTlM9LW0wNjQ0CkxJQ0VOU0U9R1BMLTIKTElOR1VBUz0nZW4gZGUnCk1VTFRJTElC X0FCSVM9J2FtZDY0IHg4NicKTVVMVElMSUJfU1RSSUNUX0RFTlk9JzY0LWJpdC4qc2hhcmVkIG9i amVjdCcKTVVMVElMSUJfU1RSSUNUX0RJUlM9Jy9saWIzMiAvbGliIC91c3IvbGliMzIgL3Vzci9s aWIgL3Vzci9rZGUvKi9saWIzMiAvdXNyL2tkZS8qL2xpYiAvdXNyL3F0LyovbGliMzIgL3Vzci9x dC8qL2xpYiAvdXNyL1gxMVI2L2xpYjMyIC91c3IvWDExUjYvbGliJwpNVUxUSUxJQl9TVFJJQ1Rf RVhFTVBUPScocGVybDV8Z2NjfGdjYy1saWJ8YmludXRpbHN8ZWNsaXBzZS0zfGRlYnVnfHBvcnRh Z2UpJwpORVRCRUFOUz0nYXBpc3VwcG9ydCBjbmQgZ3Jvb3Z5IGdzZiBoYXJuZXNzIGlkZSBpZGVu dGl0eSBqMmVlIGphdmEgbW9iaWxpdHkgbmIgcGhwIHByb2ZpbGVyIHNvYSB2aXN1YWx3ZWIgd2Vi Y29tbW9uIHdlYnN2Y2NvbW1vbiB4bWwnCk9QRU5HTF9QUk9GSUxFPW52aWRpYQpQREVQRU5EPScg JwpQS0dfQ09ORklHX1BBVEg9L3Vzci9xdC8zL2xpYjY0L3BrZ2NvbmZpZwpQT1JUQUdFX0NPTVBS RVNTX0VYQ0xVREVfU1VGRklYRVM9J2NzcyBnaWYgaHRtW2xdPyBqcFtlXT9nIGpzIHBkZiBwbmcn ClBST0ZJTEVfT05MWV9WQVJJQUJMRVM9J0FSQ0ggRUxJQkMgS0VSTkVMIFVTRVJMQU5EJwpQUk9Q RVJUSUVTPQpQUk9WSURFPQpRTUFLRVNQRUM9bGludXgtZysrClFURElSPS91c3IvcXQvMwpSREVQ RU5EPSc+PXN5cy1kZXZlbC9nY2MtMy4zICcKUkVTVFJJQ1Q9ClM9L3Zhci90bXAvcG9ydGFnZS9h cHAtdGV4dC9wZGZ0ay0xLjEyL3dvcmsvcGRmdGstMS4xMi9wZGZ0awpTQU5EQk9YX0RFTlk9L2V0 Yy9sZC5zby5wcmVsb2FkClNBTkRCT1hfUFJFRElDVD0vZGV2L2NvbnNvbGU6L2Rldi9yYW5kb206 L3Byb2Mvc2VsZi9tYXBzOi91c3IvbGliL3B5dGhvbjIuMC86L3Vzci9saWIvcHl0aG9uMi4xLzov dXNyL2xpYi9weXRob24yLjIvOi91c3IvbGliL3B5dGhvbjIuMy86L3Vzci9saWIvcHl0aG9uMi40 LzovdXNyL2xpYi9weXRob24yLjUvOi91c3IvbGliL3B5dGhvbjMuMC86L3Zhci9kYi9hbGlhc2Vz LmRiOi92YXIvZGIvZXRoZXJzLmRiOi92YXIvZGIvZ3JvdXAuZGI6L3Zhci9kYi9ob3N0cy5kYjov dmFyL2RiL25ldGdyb3VwLmRiOi92YXIvZGIvbmV0bWFza3MuZGI6L3Zhci9kYi9uZXR3b3Jrcy5k YjovdmFyL2RiL3Bhc3N3ZC5kYjovdmFyL2RiL3Byb3RvY29scy5kYjovdmFyL2RiL3JwYy5kYjov dmFyL2RiL3NlcnZpY2VzLmRiOi92YXIvdG1wL3BvcnRhZ2UvYXBwLXRleHQvcGRmdGstMS4xMi9o b21lZGlyLy4KU0FOREJPWF9SRUFEPS86L2Rldi9zaG06L2Rldi9zdGRpbjovdmFyL3RtcApTQU5E Qk9YX1dSSVRFPTovZGV2L2NvbnNvbGU6L2Rldi9mZDovZGV2L251bGw6L2Rldi9wdHMvOi9kZXYv cHR5Oi9kZXYvc2htOi9kZXYvc2htL25ncHQ6L2Rldi9zdGRlcnI6L2Rldi9zdGRvdXQ6L2Rldi90 dHM6L2Rldi90dHk6L2Rldi92Yy86L2Rldi96ZXJvOi9wcm9jL3NlbGYvZmQ6L3RtcDovdG1wLzov dXNyL2xpYi9jZjovdXNyL2xpYi9jb25mdGVzdDovdXNyL2xpYjMyL2NmOi91c3IvbGliMzIvY29u ZnRlc3Q6L3Vzci9saWI2NC9jZjovdXNyL2xpYjY0L2NvbmZ0ZXN0Oi91c3IvdG1wL2NmOi91c3Iv dG1wL2NvbmZ0ZXN0Oi92YXIvbG9nL3Njcm9sbGtlZXBlci5sb2c6L3Zhci90bXA6L3Zhci90bXAv Oi92YXIvdG1wL3BvcnRhZ2UvYXBwLXRleHQvcGRmdGstMS4xMi9ob21lZGlyLy5iYXNoX2hpc3Rv cnk6L3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEyL2hvbWVkaXIvLmdjb25mZC9s b2NrClNMT1Q9MApTUkNfVVJJPSQnaHR0cDovL3d3dy5wZGZoYWNrcy5jb20vcGRmdGsvcGRmdGst MS4xMi50YXIuZ3pcblx0bWlycm9yOi8vZGViaWFuL3Bvb2wvbWFpbi9wL3BkZnRrL3BkZnRrXzEu MTItMTEuZGlmZi5neicKU1RBR0UxX1VTRT0nbXVsdGlsaWIgbnB0bCBucHRsb25seSB1bmljb2Rl JwpTWU1MSU5LX0xJQj15ZXMKVEVSTUlORk89L3Vzci9zaGFyZS90ZXJtaW5mbwpVU0U9J2FtZDY0 IGVsaWJjX2dsaWJjIGtlcm5lbF9saW51eCBtdWx0aWxpYiB1c2VybGFuZF9HTlUnClVTRVJMQU5E PUdOVQpWSURFT19DQVJEUz0KV0lORE9XSUQ9MjA5NzE1MjMKXz1QS0dfSU5TVEFMTF9NQVNLCl9F X0RPQ0RFU1RUUkVFXz0KX0VfRVhFREVTVFRSRUVfPQpfX19FQ0xBU1NfUkVDVVJfTVVMVElMSUI9 eWVzCl9fX0VDTEFTU19SRUNVUl9UT09MQ0hBSU5fRlVOQ1M9eWVzCl9waXBlc3RhdHVzPScwIDAn CmNvbmY9cGRmdGstMS4xMi1yMApfY2Ryb21fbG9jYXRlX2ZpbGVfb25fY2QgKCkgCnsgCiAgICBs b2NhbCBtbGluZT0iIjsKICAgIGxvY2FsIHNob3dlZG1zZz0wIHNob3dqb2xpZXRtc2c9MDsKICAg IHdoaWxlIFtbIC16ICR7Q0RST01fUk9PVH0gXV07IGRvCiAgICAgICAgbG9jYWwgaT0wOwogICAg ICAgIGxvY2FsIC1hIGNkc2V0PSgkeyovLzovIH0pOwogICAgICAgIGlmIFtbIC1uICR7Q0RST01f U0VUfSBdXTsgdGhlbgogICAgICAgICAgICBjZHNldD0oJHtjZHNldFske0NEUk9NX1NFVH1dfSk7 CiAgICAgICAgZmk7CiAgICAgICAgd2hpbGUgW1sgLW4gJHtjZHNldFske2l9XX0gXV07IGRvCiAg ICAgICAgICAgIGxvY2FsIGRpcj0kKGRpcm5hbWUgJHtjZHNldFske2l9XX0pOwogICAgICAgICAg ICBsb2NhbCBmaWxlPSQoYmFzZW5hbWUgJHtjZHNldFske2l9XX0pOwogICAgICAgICAgICBsb2Nh bCBwb2ludD0gbm9kZT0gZnM9IGZvbz07CiAgICAgICAgICAgIHdoaWxlIHJlYWQgcG9pbnQgbm9k ZSBmcyBmb287IGRvCiAgICAgICAgICAgICAgICBbWyAiIGNkOTY2MCBpc285NjYwIHVkZiAiICE9 ICoiICR7ZnN9ICIqIF1dICYmICEgW1sgJHtmc30gPT0gInN1YmZzIiAmJiAiLCR7b3B0c30sIiA9 PSAqIixmcz1jZGZzcywiKiBdXSAmJiBjb250aW51ZTsKICAgICAgICAgICAgICAgIHBvaW50PSR7 cG9pbnQvL1wwNDAvIH07CiAgICAgICAgICAgICAgICBbWyAhIC1kICR7cG9pbnR9LyR7ZGlyfSBd XSAmJiBjb250aW51ZTsKICAgICAgICAgICAgICAgIFtbIC16ICQoZmluZCAiJHtwb2ludH0vJHtk aXJ9IiAtbWF4ZGVwdGggMSAtaW5hbWUgIiR7ZmlsZX0iKSBdXSAmJiBjb250aW51ZTsKICAgICAg ICAgICAgICAgIGV4cG9ydCBDRFJPTV9ST09UPSR7cG9pbnR9OwogICAgICAgICAgICAgICAgZXhw b3J0IENEUk9NX1NFVD0ke2l9OwogICAgICAgICAgICAgICAgZXhwb3J0IENEUk9NX01BVENIPSR7 Y2RzZXRbJHtpfV19OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBkb25lIDw8 PCAiJChnZXRfbW91bnRzKSI7CiAgICAgICAgICAgICgoKytpKSk7CiAgICAgICAgZG9uZTsKICAg ICAgICBlY2hvOwogICAgICAgIGlmIFtbICR7c2hvd2VkbXNnfSAtZXEgMCBdXTsgdGhlbgogICAg ICAgICAgICBpZiBbWyAke0NEUk9NX1RPVEFMX0NEU30gLWVxIDEgXV07IHRoZW4KICAgICAgICAg ICAgICAgIGlmIFtbIC16ICR7Q0RST01fTkFNRX0gXV07IHRoZW4KICAgICAgICAgICAgICAgICAg ICBlaW5mbyAiUGxlYXNlIGluc2VydCttb3VudCB0aGUgY2Ryb20gZm9yICR7UE59IG5vdyAhIjsK ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiUGxlYXNlIGlu c2VydCttb3VudCB0aGUgJHtDRFJPTV9OQU1FfSBjZHJvbSBub3cgISI7CiAgICAgICAgICAgICAg ICBmaTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgaWYgW1sgLXogJHtDRFJPTV9O QU1FXzF9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNlcnQr bW91bnQgY2QgIyR7Q0RST01fQ1VSUkVOVF9DRH0gZm9yICR7UE59IG5vdyAhIjsKICAgICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBsb2NhbCB2YXI9IkNEUk9NX05BTUVfJHtD RFJPTV9DVVJSRU5UX0NEfSI7CiAgICAgICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNl cnQrbW91bnQgdGhlICR7IXZhcn0gY2Ryb20gbm93ICEiOwogICAgICAgICAgICAgICAgZmk7CiAg ICAgICAgICAgIGZpOwogICAgICAgICAgICBzaG93ZWRtc2c9MTsKICAgICAgICBmaTsKICAgICAg ICBlaW5mbyAiUHJlc3MgcmV0dXJuIHRvIHNjYW4gZm9yIHRoZSBjZCBhZ2FpbiI7CiAgICAgICAg ZWluZm8gIm9yIGhpdCBDVFJMK0MgdG8gYWJvcnQgdGhlIGVtZXJnZS4iOwogICAgICAgIGVjaG87 CiAgICAgICAgaWYgW1sgJHtzaG93am9saWV0bXNnfSAtZXEgMCBdXTsgdGhlbgogICAgICAgICAg ICBzaG93am9saWV0bXNnPTE7CiAgICAgICAgZWxzZQogICAgICAgICAgICBld2FybiAiSWYgeW91 IGFyZSBoYXZpbmcgdHJvdWJsZSB3aXRoIHRoZSBkZXRlY3Rpb24iOwogICAgICAgICAgICBld2Fy biAib2YgeW91ciBDRCwgaXQgaXMgcG9zc2libGUgdGhhdCB5b3UgZG8gbm90IGhhdmUiOwogICAg ICAgICAgICBld2FybiAiSm9saWV0IHN1cHBvcnQgZW5hYmxlZCBpbiB5b3VyIGtlcm5lbC4gIFBs ZWFzZSI7CiAgICAgICAgICAgIGV3YXJuICJjaGVjayB0aGF0IENPTkZJR19KT0xJRVQgaXMgZW5h YmxlZCBpbiB5b3VyIGtlcm5lbC4iOwogICAgICAgICAgICBlYmVlcCA1OwogICAgICAgIGZpOwog ICAgICAgIHJlYWQgfHwgZGllICJzb21ldGhpbmcgaXMgc2NyZXdlZCB3aXRoIHlvdXIgc3lzdGVt IjsKICAgIGRvbmUKfQpfZXBhdGNoX2Fzc2VydCAoKSAKeyAKICAgIGxvY2FsIF9waXBlc3RhdHVz PSR7UElQRVNUQVRVU1sqXX07CiAgICBbWyAke19waXBlc3RhdHVzLy8gL30gLWVxIDAgXV0KfQpf ZXBhdGNoX2RyYXdfbGluZSAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYmIHNldCAiJChwcmludGYg IiU2NXMiICcnKSI7CiAgICBlY2hvICIkezEvLz8vPX0iCn0KX2djYy1pbnN0YWxsLWRpciAoKSAK eyAKICAgIGVjaG8gIiQoTENfQUxMPUMgJCh0Yy1nZXRDQykgLXByaW50LXNlYXJjaC1kaXJzIDI+ IC9kZXYvbnVsbCB8CQlhd2sgJyQxPT0iaW5zdGFsbDoiIHtwcmludCAkMn0nKSIKfQpfZ2NjLXNw ZWNzLWRpcmVjdGl2ZV9yYXcgKCkgCnsgCiAgICBsb2NhbCBjYz0kKHRjLWdldENDKTsKICAgIGxv Y2FsIHNwZWNmaWxlcz0kKExDX0FMTD1DICR7Y2N9IC12IDI+JjEgfCBhd2sgJyQxPT0iUmVhZGlu ZyIge3ByaW50ICRORn0nKTsKICAgICR7Y2N9IC1kdW1wc3BlY3MgMj4gL2Rldi9udWxsIHwgY2F0 IC0gJHtzcGVjZmlsZXN9IHwgYXdrIC12IGRpcmVjdGl2ZT0kMSAnQkVHSU4JeyBwc3BlYz0iIjsg c3BlYz0iIjsgb3V0c2lkZT0xIH0KJDE9PSIqImRpcmVjdGl2ZSI6IiAgeyBwc3BlYz1zcGVjOyBz cGVjPSIiOyBvdXRzaWRlPTA7IG5leHQgfQoJb3V0c2lkZSB8fCBORj09MCB8fCAoIHN1YnN0cigk MSwxLDEpPT0iKiIgJiYgc3Vic3RyKCQxLGxlbmd0aCgkMSksMSk9PSI6IiApIHsgb3V0c2lkZT0x OyBuZXh0IH0KCXNwZWM9PSIiICYmIHN1YnN0cigkMCwxLDEpPT0iKyIgeyBzcGVjPXBzcGVjICIg IiBzdWJzdHIoJDAsMik7IG5leHQgfQoJeyBzcGVjPXNwZWMgJDAgfQpFTkQJeyBwcmludCBzcGVj IH0nOwogICAgcmV0dXJuIDAKfQpfZ2NjLXNwZWNzLWV4aXN0cyAoKSAKeyAKICAgIFtbIC1mICQo X2djYy1pbnN0YWxsLWRpcikvJDEgXV0KfQpfdW5wYWNrX3RhciAoKSAKeyAKICAgIGlmIFsgIiR7 eX0iID09ICJ0YXIiIF07IHRoZW4KICAgICAgICAkMSAtZGMgIiRzcmNkaXIkeCIgfCB0YXIgeG9m IC07CiAgICAgICAgX3BpcGVzdGF0dXM9IiR7UElQRVNUQVRVU1sqXX0iOwogICAgICAgIFtbICIk e19waXBlc3RhdHVzLy8gL30iIC1lcSAwIF1dIHx8IGRpZSAiJG15ZmFpbCI7CiAgICBlbHNlCiAg ICAgICAgJDEgLWRjICIke3NyY2Rpcn0ke3h9IiA+ICR7eCUuKn0gfHwgZGllICIkbXlmYWlsIjsK ICAgIGZpCn0KYmFzaHJjX2hhcyAoKSAKeyAKICAgIFtbICIgJHsqOjJ9ICIgPT0gKiIgJDEgIiog XV0KfQpidWlsdF93aXRoX3VzZSAoKSAKeyAKICAgIGxvY2FsIGhpZGRlbj0ibm8iOwogICAgaWYg W1sgJDEgPT0gIi0taGlkZGVuIiBdXTsgdGhlbgogICAgICAgIGhpZGRlbj0ieWVzIjsKICAgICAg ICBzaGlmdDsKICAgIGZpOwogICAgbG9jYWwgbWlzc2luZ19hY3Rpb249ImRpZSI7CiAgICBpZiBb WyAkMSA9PSAiLS1taXNzaW5nIiBdXTsgdGhlbgogICAgICAgIG1pc3NpbmdfYWN0aW9uPSQyOwog ICAgICAgIHNoaWZ0OwogICAgICAgIHNoaWZ0OwogICAgICAgIGNhc2UgJHttaXNzaW5nX2FjdGlv bn0gaW4gCiAgICAgICAgICAgIHRydWUgfCBmYWxzZSB8IGRpZSkKCiAgICAgICAgICAgIDs7CiAg ICAgICAgICAgICopCiAgICAgICAgICAgICAgICBkaWUgInVua25vd24gYWN0aW9uICcke21pc3Np bmdfYWN0aW9ufSciCiAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGZpOwogICAgbG9j YWwgb3B0PSQxOwogICAgW1sgJHtvcHQ6MDoxfSA9ICItIiBdXSAmJiBzaGlmdCB8fCBvcHQ9Ii1h IjsKICAgIGxvY2FsIFBLRz0kKGJlc3RfdmVyc2lvbiAkMSk7CiAgICBbWyAteiAke1BLR30gXV0g JiYgZGllICJVbmFibGUgdG8gcmVzb2x2ZSAkMSB0byBhbiBpbnN0YWxsZWQgcGFja2FnZSI7CiAg ICBzaGlmdDsKICAgIGxvY2FsIFVTRUZJTEU9JHtST09UfS92YXIvZGIvcGtnLyR7UEtHfS9VU0U7 CiAgICBsb2NhbCBJVVNFRklMRT0ke1JPT1R9L3Zhci9kYi9wa2cvJHtQS0d9L0lVU0U7CiAgICBp ZiBbWyAhIC1lICR7VVNFRklMRX0gXV0gfHwgW1sgISAtZSAke0lVU0VGSUxFfSAmJiAke2hpZGRl bn0gPT0gIm5vIiBdXTsgdGhlbgogICAgICAgIGNhc2UgJHttaXNzaW5nX2FjdGlvbn0gaW4gCiAg ICAgICAgICAgIHRydWUpCiAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICA7Owog ICAgICAgICAgICBmYWxzZSkKICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgICAgIDs7 CiAgICAgICAgICAgIGRpZSkKICAgICAgICAgICAgICAgIGRpZSAiVW5hYmxlIHRvIGRldGVybWlu ZSB3aGF0IFVTRSBmbGFncyAkUEtHIHdhcyBidWlsdCB3aXRoIgogICAgICAgICAgICA7OwogICAg ICAgIGVzYWM7CiAgICBmaTsKICAgIGlmIFtbICR7aGlkZGVufSA9PSAibm8iIF1dOyB0aGVuCiAg ICAgICAgbG9jYWwgSVVTRV9CVUlMVD0oJCg8IiR7SVVTRUZJTEV9IikpOwogICAgICAgIGxvY2Fs IGV4cGFuZDsKICAgICAgICBmb3IgZXhwYW5kIGluICQoZWNobyAke1VTRV9FWFBBTkR9IHwgdHIg J1s6dXBwZXI6XScgJ1s6bG93ZXI6XScpOwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbICQx ID09ICR7ZXhwYW5kfV8qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBleHBhbmQ9IiI7CiAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsKICAgICAgICBp ZiBbWyAtbiAke2V4cGFuZH0gXV07IHRoZW4KICAgICAgICAgICAgaWYgISBoYXMgJDEgJHtJVVNF X0JVSUxUW0BdI1stK119OyB0aGVuCiAgICAgICAgICAgICAgICBjYXNlICR7bWlzc2luZ19hY3Rp b259IGluIAogICAgICAgICAgICAgICAgICAgIHRydWUpCiAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBmYWxz ZSkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgICAgICAgICA7 OwogICAgICAgICAgICAgICAgICAgIGRpZSkKICAgICAgICAgICAgICAgICAgICAgICAgZGllICIk UEtHIGRvZXMgbm90IGFjdHVhbGx5IHN1cHBvcnQgdGhlICQxIFVTRSBmbGFnISIKICAgICAgICAg ICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZmk7CiAgICAg ICAgZmk7CiAgICBmaTsKICAgIGxvY2FsIFVTRV9CVUlMVD0kKDwke1VTRUZJTEV9KTsKICAgIHdo aWxlIFtbICQjIC1ndCAwIF1dOyBkbwogICAgICAgIGlmIFtbICR7b3B0fSA9ICItbyIgXV07IHRo ZW4KICAgICAgICAgICAgaGFzICQxICR7VVNFX0JVSUxUfSAmJiByZXR1cm4gMDsKICAgICAgICBl bHNlCiAgICAgICAgICAgIGhhcyAkMSAke1VTRV9CVUlMVH0gfHwgcmV0dXJuIDE7CiAgICAgICAg Zmk7CiAgICAgICAgc2hpZnQ7CiAgICBkb25lOwogICAgW1sgJHtvcHR9ID0gIi1hIiBdXQp9CmNk cm9tX2dldF9jZHMgKCkgCnsgCiAgICBsb2NhbCBjZGNudD0wOwogICAgbG9jYWwgZj07CiAgICBm b3IgZiBpbiAiJEAiOwogICAgZG8KICAgICAgICAoKCsrY2RjbnQpKTsKICAgICAgICBleHBvcnQg Q0RST01fQ0hFQ0tfJHtjZGNudH09IiRmIjsKICAgIGRvbmU7CiAgICBleHBvcnQgQ0RST01fVE9U QUxfQ0RTPSR7Y2RjbnR9OwogICAgZXhwb3J0IENEUk9NX0NVUlJFTlRfQ0Q9MTsKICAgIGlmIFtb IC1uICR7Q0RfUk9PVH0ke0NEX1JPT1RfMX0gXV07IHRoZW4KICAgICAgICBsb2NhbCB2YXI9Owog ICAgICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sgJHtjZGNudH0gLWx0ICR7Q0RST01fVE9U QUxfQ0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2NkY250KSk7CiAgICAgICAgICAgIHZhcj0i Q0RfUk9PVF8ke2NkY250fSI7CiAgICAgICAgICAgIFtbIC16ICR7IXZhcn0gXV0gJiYgdmFyPSJD RF9ST09UIjsKICAgICAgICAgICAgaWYgW1sgLXogJHshdmFyfSBdXTsgdGhlbgogICAgICAgICAg ICAgICAgZWVycm9yICJZb3UgbXVzdCBlaXRoZXIgdXNlIGp1c3QgdGhlIENEX1JPT1QiOwogICAg ICAgICAgICAgICAgZWVycm9yICJvciBzcGVjaWZ5IEFMTCB0aGUgQ0RfUk9PVF9YIHZhcmlhYmxl cy4iOwogICAgICAgICAgICAgICAgZWVycm9yICJJbiB0aGlzIGNhc2UsIHlvdSB3aWxsIG5lZWQg JHtDRFJPTV9UT1RBTF9DRFN9IENEX1JPT1RfWCB2YXJpYWJsZXMuIjsKICAgICAgICAgICAgICAg IGRpZSAiY291bGQgbm90IGxvY2F0ZSBDRF9ST09UXyR7Y2RjbnR9IjsKICAgICAgICAgICAgZmk7 CiAgICAgICAgZG9uZTsKICAgICAgICBleHBvcnQgQ0RST01fUk9PVD0ke0NEX1JPT1RfMTotJHtD RF9ST09UfX07CiAgICAgICAgZWluZm8gIkZvdW5kIENEICMke0NEUk9NX0NVUlJFTlRfQ0R9IHJv b3QgYXQgJHtDRFJPTV9ST09UfSI7CiAgICAgICAgZXhwb3J0IENEUk9NX1NFVD0tMTsKICAgICAg ICBmb3IgZiBpbiAke0NEUk9NX0NIRUNLXzEvLzovIH07CiAgICAgICAgZG8KICAgICAgICAgICAg KCgrK0NEUk9NX1NFVCkpOwogICAgICAgICAgICBbWyAtZSAke0NEX1JPT1R9LyR7Zn0gXV0gJiYg YnJlYWs7CiAgICAgICAgZG9uZTsKICAgICAgICBleHBvcnQgQ0RST01fTUFUQ0g9JHtmfTsKICAg ICAgICByZXR1cm47CiAgICBmaTsKICAgIGlmIFtbICR7Q0RST01fVE9UQUxfQ0RTfSAtZXEgMSBd XTsgdGhlbgogICAgICAgIGVpbmZvICJUaGlzIGVidWlsZCB3aWxsIG5lZWQgdGhlICR7Q0RST01f TkFNRTotY2Ryb20gZm9yICR7UE59fSI7CiAgICAgICAgZWNobzsKICAgICAgICBlaW5mbyAiSWYg eW91IGRvIG5vdCBoYXZlIHRoZSBDRCwgYnV0IGhhdmUgdGhlIGRhdGEgZmlsZXMiOwogICAgICAg IGVpbmZvICJtb3VudGVkIHNvbWV3aGVyZSBvbiB5b3VyIGZpbGVzeXN0ZW0sIGp1c3QgZXhwb3J0 IjsKICAgICAgICBlaW5mbyAidGhlIHZhcmlhYmxlIENEX1JPT1Qgc28gdGhhdCBpdCBwb2ludHMg dG8gdGhlIjsKICAgICAgICBlaW5mbyAiZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGZpbGVzLiI7 CiAgICAgICAgZWNobzsKICAgICAgICBlaW5mbyAiRm9yIGV4YW1wbGU6IjsKICAgICAgICBlaW5m byAiZXhwb3J0IENEX1JPT1Q9L21udC9jZHJvbSI7CiAgICAgICAgZWNobzsKICAgIGVsc2UKICAg ICAgICBpZiBbWyAtbiAke0NEUk9NX05BTUVfU0VUfSBdXTsgdGhlbgogICAgICAgICAgICBjZGNu dD0wOwogICAgICAgICAgICB3aGlsZSBbWyAke2NkY250fSAtbHQgJHtDRFJPTV9UT1RBTF9DRFN9 IF1dOyBkbwogICAgICAgICAgICAgICAgKCgrK2NkY250KSk7CiAgICAgICAgICAgICAgICBleHBv cnQgQ0RST01fTkFNRV8ke2NkY250fT0iJHtDRFJPTV9OQU1FX1NFVFskKCgke2NkY250fS0xKSld fSI7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgZmk7CiAgICAgICAgZWluZm8gIlRoaXMgcGFj a2FnZSB3aWxsIG5lZWQgYWNjZXNzIHRvICR7Q0RST01fVE9UQUxfQ0RTfSBjZHMuIjsKICAgICAg ICBjZGNudD0wOwogICAgICAgIHdoaWxlIFtbICR7Y2RjbnR9IC1sdCAke0NEUk9NX1RPVEFMX0NE U30gXV07IGRvCiAgICAgICAgICAgICgoKytjZGNudCkpOwogICAgICAgICAgICB2YXI9IkNEUk9N X05BTUVfJHtjZGNudH0iOwogICAgICAgICAgICBbWyAhIC16ICR7IXZhcn0gXV0gJiYgZWluZm8g IiBDRCAke2NkY250fTogJHshdmFyfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBlY2hvOwogICAg ICAgIGVpbmZvICJJZiB5b3UgZG8gbm90IGhhdmUgdGhlIENEcywgYnV0IGhhdmUgdGhlIGRhdGEg ZmlsZXMiOwogICAgICAgIGVpbmZvICJtb3VudGVkIHNvbWV3aGVyZSBvbiB5b3VyIGZpbGVzeXN0 ZW0sIGp1c3QgZXhwb3J0IjsKICAgICAgICBlaW5mbyAidGhlIGZvbGxvd2luZyB2YXJpYWJsZXMg c28gdGhleSBwb2ludCB0byB0aGUgcmlnaHQgcGxhY2U6IjsKICAgICAgICBlaW5mb24gIiI7CiAg ICAgICAgY2RjbnQ9MDsKICAgICAgICB3aGlsZSBbWyAke2NkY250fSAtbHQgJHtDRFJPTV9UT1RB TF9DRFN9IF1dOyBkbwogICAgICAgICAgICAoKCsrY2RjbnQpKTsKICAgICAgICAgICAgZWNobyAt biAiIENEX1JPT1RfJHtjZGNudH0iOwogICAgICAgIGRvbmU7CiAgICAgICAgZWNobzsKICAgICAg ICBlaW5mbyAiT3IsIGlmIHlvdSBoYXZlIGFsbCB0aGUgZmlsZXMgaW4gdGhlIHNhbWUgcGxhY2Us IG9yIjsKICAgICAgICBlaW5mbyAieW91IG9ubHkgaGF2ZSBvbmUgY2Ryb20sIHlvdSBjYW4gZXhw b3J0IENEX1JPT1QiOwogICAgICAgIGVpbmZvICJhbmQgdGhhdCBwbGFjZSB3aWxsIGJlIHVzZWQg YXMgdGhlIHNhbWUgZGF0YSBzb3VyY2UiOwogICAgICAgIGVpbmZvICJmb3IgYWxsIHRoZSBDRHMu IjsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZvICJGb3IgZXhhbXBsZToiOwogICAgICAgIGVp bmZvICJleHBvcnQgQ0RfUk9PVF8xPS9tbnQvY2Ryb20iOwogICAgICAgIGVjaG87CiAgICBmaTsK ICAgIGV4cG9ydCBDRFJPTV9TRVQ9IiI7CiAgICBleHBvcnQgQ0RST01fQ1VSUkVOVF9DRD0wOwog ICAgY2Ryb21fbG9hZF9uZXh0X2NkCn0KY2Ryb21fbG9hZF9uZXh0X2NkICgpIAp7IAogICAgbG9j YWwgdmFyOwogICAgKCgrK0NEUk9NX0NVUlJFTlRfQ0QpKTsKICAgIHVuc2V0IENEUk9NX1JPT1Q7 CiAgICB2YXI9Q0RfUk9PVF8ke0NEUk9NX0NVUlJFTlRfQ0R9OwogICAgW1sgLXogJHshdmFyfSBd XSAmJiB2YXI9IkNEX1JPT1QiOwogICAgaWYgW1sgLXogJHshdmFyfSBdXTsgdGhlbgogICAgICAg IHZhcj0iQ0RST01fQ0hFQ0tfJHtDRFJPTV9DVVJSRU5UX0NEfSI7CiAgICAgICAgX2Nkcm9tX2xv Y2F0ZV9maWxlX29uX2NkICR7IXZhcn07CiAgICBlbHNlCiAgICAgICAgZXhwb3J0IENEUk9NX1JP T1Q9JHshdmFyfTsKICAgIGZpOwogICAgZWluZm8gIkZvdW5kIENEICMke0NEUk9NX0NVUlJFTlRf Q0R9IHJvb3QgYXQgJHtDRFJPTV9ST09UfSIKfQpjaGVja19saWNlbnNlICgpIAp7IAogICAgbG9j YWwgbGljPSQxOwogICAgaWYgWyAteiAiJHtsaWN9IiBdOyB0aGVuCiAgICAgICAgbGljPSIke1BP UlRESVJ9L2xpY2Vuc2VzLyR7TElDRU5TRX0iOwogICAgZWxzZQogICAgICAgIGlmIFsgLWUgIiR7 UE9SVERJUn0vbGljZW5zZXMvJHtsaWN9IiBdOyB0aGVuCiAgICAgICAgICAgIGxpYz0iJHtQT1JU RElSfS9saWNlbnNlcy8ke2xpY30iOwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgWyAtZSAi JHtQV0R9LyR7bGljfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgbGljPSIke1BXRH0vJHtsaWN9 IjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgaWYgWyAtZSAiJHtsaWN9IiBdOyB0 aGVuCiAgICAgICAgICAgICAgICAgICAgbGljPSIke2xpY30iOwogICAgICAgICAgICAgICAgZmk7 CiAgICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7CiAgICBbICEgLWYgIiR7bGljfSIg XSAmJiBkaWUgIkNvdWxkIG5vdCBmaW5kIHJlcXVlc3RlZCBsaWNlbnNlICR7bGljfSI7CiAgICBs b2NhbCBsPSJgYmFzZW5hbWUgJHtsaWN9YCI7CiAgICBsb2NhbCBzaG9wdHM9JC07CiAgICBsb2Nh bCBhbGljOwogICAgc2V0IC1vIG5vZ2xvYjsKICAgIGZvciBhbGljIGluICR7QUNDRVBUX0xJQ0VO U0V9OwogICAgZG8KICAgICAgICBpZiBbWyAke2FsaWN9ID09ICR7bH0gXV07IHRoZW4KICAgICAg ICAgICAgc2V0ICtvIG5vZ2xvYjsKICAgICAgICAgICAgc2V0IC0ke3Nob3B0c307CiAgICAgICAg ICAgIHJldHVybiAwOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIHNldCArbyBub2dsb2I7CiAg ICBzZXQgLSRzaG9wdHM7CiAgICBsb2NhbCBsaWNtc2c9JChlbWt0ZW1wKTsKICAgIGNhdCA+ICR7 bGljbXNnfSAgPDwtRU9GCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKVGhlIGZvbGxvd2luZyBsaWNlbnNlIG91dGxpbmVzIHRoZSB0ZXJt cyBvZiB1c2Ugb2YgdGhpcwpwYWNrYWdlLiAgWW91IE1VU1QgYWNjZXB0IHRoaXMgbGljZW5zZSBm b3IgaW5zdGFsbGF0aW9uIHRvCmNvbnRpbnVlLiAgV2hlbiB5b3UgYXJlIGRvbmUgdmlld2luZywg aGl0ICdxJy4JSWYgeW91CkNUUkwrQyBvdXQgb2YgdGhpcywgdGhlIGluc3RhbGwgd2lsbCBub3Qg cnVuIQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCgpFT0YKCiAgICBjYXQgJHtsaWN9ID4+ICR7bGljbXNnfTsKICAgICR7UEFHRVI6LWxl c3N9ICR7bGljbXNnfSB8fCBkaWUgIkNvdWxkIG5vdCBleGVjdXRlIHBhZ2VyICgke1BBR0VSfSkg dG8gYWNjZXB0ICR7bGljfSI7CiAgICBlaW5mb24gIkRvIHlvdSBhY2NlcHQgdGhlIHRlcm1zIG9m IHRoaXMgbGljZW5zZSAoJHtsfSk/IFt5ZXMvbm9dICI7CiAgICByZWFkIGFsaWM7CiAgICBjYXNl ICR7YWxpY30gaW4gCiAgICAgICAgeWVzIHwgWWVzIHwgeSB8IFkpCiAgICAgICAgICAgIHJldHVy biAwCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBlY2hvOwogICAgICAgICAgICBl Y2hvOwogICAgICAgICAgICBlY2hvOwogICAgICAgICAgICBlZXJyb3IgIllvdSBNVVNUIGFjY2Vw dCB0aGUgbGljZW5zZSB0byBjb250aW51ZSEgIEV4aXRpbmchIjsKICAgICAgICAgICAgZGllICJG YWlsZWQgdG8gYWNjZXB0IGxpY2Vuc2UiCiAgICAgICAgOzsKICAgIGVzYWMKfQpjcmVhdGVfbWxf aW5jbHVkZXMgKCkgCnsgCiAgICBsb2NhbCBkZXN0PSQxOwogICAgc2hpZnQ7CiAgICBsb2NhbCBi YXNlZGlycz0kKGNyZWF0ZV9tbF9pbmNsdWRlcy1saXN0ZGlycyAiJEAiKTsKICAgIGNyZWF0ZV9t bF9pbmNsdWRlcy1tYWtlZGVzdGRpcnMgJHtkZXN0fSAke2Jhc2VkaXJzfTsKICAgIGxvY2FsIGZp bGU7CiAgICBmb3IgZmlsZSBpbiAkKGNyZWF0ZV9tbF9pbmNsdWRlcy1hbGxmaWxlcyAke2Jhc2Vk aXJzfSk7CiAgICBkbwogICAgICAgICggZWNobyAiLyogQXV0b2dlbmVyYXRlZCBieSBjcmVhdGVf bWxfaW5jbHVkZXMoKSBpbiBtdWx0aWxpYi5lY2xhc3MgKi8iOwogICAgICAgIGxvY2FsIGRpcjsK ICAgICAgICBmb3IgZGlyIGluICR7YmFzZWRpcnN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlm IFtbIC1mICR7RH0vJHtkaXJ9LyR7ZmlsZX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8g IiI7CiAgICAgICAgICAgICAgICBsb2NhbCBzeW09JChjcmVhdGVfbWxfaW5jbHVkZXMtc3ltX2Zv cl9kaXIgJHtkaXJ9ICIkQCIpOwogICAgICAgICAgICAgICAgaWYgW1sgJHtzeW0vPX0gIT0gIiR7 c3ltfSIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlY2hvICIjaWYgJHtzeW19IjsKICAg ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBpZiBbWyAke3N5bTo6MX0gPT0g IiEiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiNpZm5kZWYgJHtzeW06 MX0iOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZWNo byAiI2lmZGVmICR7c3ltfSI7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAg ICBmaTsKICAgICAgICAgICAgICAgIGVjaG8gIiMgaW5jbHVkZSA8JChjcmVhdGVfbWxfaW5jbHVk ZXMtYWJzb2x1dGUgJHtkaXJ9LyR7ZmlsZX0pPiI7CiAgICAgICAgICAgICAgICBlY2hvICIjZW5k aWYgLyogJHtzeW19ICovIjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZSApID4gIiR7RH0v JHtkZXN0fS8ke2ZpbGV9IjsKICAgIGRvbmUKfQpjcmVhdGVfbWxfaW5jbHVkZXMtYWJzb2x1dGUg KCkgCnsgCiAgICBsb2NhbCBkc3Q9IiQoY3JlYXRlX21sX2luY2x1ZGVzLXRpZHlfcGF0aCAkMSki OwogICAgZHN0PSgke2RzdC8vXC8vIH0pOwogICAgbG9jYWwgaTsKICAgIGZvciAoKGk9MDsgaTwk eyNkc3RbKl19OyBpKyspKQogICAgZG8KICAgICAgICBbICIke2RzdFtpXX0iID09ICJpbmNsdWRl IiBdICYmIGJyZWFrOwogICAgZG9uZTsKICAgIGxvY2FsIHN0cmlwX3VwdG89JGk7CiAgICBmb3Ig KChpPXN0cmlwX3VwdG8rMTsgaTwkeyNkc3RbKl19LTE7IGkrKykpCiAgICBkbwogICAgICAgIGVj aG8gLW4gJHtkc3RbaV19LzsKICAgIGRvbmU7CiAgICBlY2hvIC1uICR7ZHN0W2ldfQp9CmNyZWF0 ZV9tbF9pbmNsdWRlcy1hbGxmaWxlcyAoKSAKeyAKICAgIGxvY2FsIGJhc2VkaXIgZmlsZTsKICAg IGZvciBiYXNlZGlyIGluICIkQCI7CiAgICBkbwogICAgICAgIGZvciBmaWxlIGluICQoZmluZCAi JHtEfSIvJHtiYXNlZGlyfSAtdHlwZSBmKTsKICAgICAgICBkbwogICAgICAgICAgICBlY2hvICR7 ZmlsZS8ke0R9XC8ke2Jhc2VkaXJ9XC8vfTsKICAgICAgICBkb25lOwogICAgZG9uZSB8IHNvcnQg fCB1bmlxCn0KY3JlYXRlX21sX2luY2x1ZGVzLWxpc3RkaXJzICgpIAp7IAogICAgbG9jYWwgZGly czsKICAgIGxvY2FsIGRhdGE7CiAgICBmb3IgZGF0YSBpbiAiJEAiOwogICAgZG8KICAgICAgICBk aXJzPSIke2RpcnN9ICR7ZGF0YS8qOi99IjsKICAgIGRvbmU7CiAgICBlY2hvICR7ZGlyczoxfQp9 CmNyZWF0ZV9tbF9pbmNsdWRlcy1tYWtlZGVzdGRpcnMgKCkgCnsgCiAgICBsb2NhbCBkZXN0PSQx OwogICAgc2hpZnQ7CiAgICBsb2NhbCBiYXNlZGlycz0kQDsKICAgIGRvZGlyICR7ZGVzdH07CiAg ICBsb2NhbCBiYXNlZGlyOwogICAgZm9yIGJhc2VkaXIgaW4gJHtiYXNlZGlyc307CiAgICBkbwog ICAgICAgIGxvY2FsIGRpcjsKICAgICAgICBmb3IgZGlyIGluICQoZmluZCAiJHtEfSIvJHtiYXNl ZGlyfSAtdHlwZSBkKTsKICAgICAgICBkbwogICAgICAgICAgICBkb2RpciAke2Rlc3R9LyR7ZGly LyR7RH1cLyR7YmFzZWRpcn0vfTsKICAgICAgICBkb25lOwogICAgZG9uZQp9CmNyZWF0ZV9tbF9p bmNsdWRlcy1zeW1fZm9yX2RpciAoKSAKeyAKICAgIGxvY2FsIGRpcj0kMTsKICAgIHNoaWZ0Owog ICAgbG9jYWwgZGF0YTsKICAgIGZvciBkYXRhIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtb ICR7ZGF0YX0gPT0gKjoke2Rpcn0gXV07IHRoZW4KICAgICAgICAgICAgZWNobyAke2RhdGEvOiov fTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgZWNobyAi U2hvdWxkbid0IGJlIGhlcmUgLS0gY3JlYXRlX21sX2luY2x1ZGVzLXN5bV9mb3JfZGlyICQxICRA IjsKICAgIGV4aXQgMQp9CmNyZWF0ZV9tbF9pbmNsdWRlcy10aWR5X3BhdGggKCkgCnsgCiAgICBs b2NhbCByZW1vdmVkPSQxOwogICAgaWYgWyAtbiAiJHtyZW1vdmVkfSIgXTsgdGhlbgogICAgICAg IHdoaWxlIFsgIiR7cmVtb3ZlZH0iICE9ICIke3JlbW92ZWQvXC9cLy9cL30iIF07IGRvCiAgICAg ICAgICAgIHJlbW92ZWQ9JHtyZW1vdmVkL1wvXC8vXC99OwogICAgICAgIGRvbmU7CiAgICAgICAg d2hpbGUgWyAiJHtyZW1vdmVkfSIgIT0gIiR7cmVtb3ZlZC8vXC8uXC8vXC99IiBdOyBkbwogICAg ICAgICAgICByZW1vdmVkPSR7cmVtb3ZlZC8vXC8uXC8vXC99OwogICAgICAgIGRvbmU7CiAgICAg ICAgWyAiJHtyZW1vdmVkIyMqL30iID0gIi4iIF0gJiYgcmVtb3ZlZD0ke3JlbW92ZWQlLyp9Owog ICAgICAgIHdoaWxlIFsgIiR7cmVtb3ZlZH0iICE9ICIke3JlbW92ZWQvL1wvLi5cL30iIF07IGRv CiAgICAgICAgICAgIGxvY2FsIHAxPSIke3JlbW92ZWQlJVwvLi5cLyp9IjsKICAgICAgICAgICAg bG9jYWwgcDI9IiR7cmVtb3ZlZCMqXC8uLlwvfSI7CiAgICAgICAgICAgIHJlbW92ZWQ9IiR7cDEl XC8qfS8ke3AyfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBbICIke3JlbW92ZWQjIyovfSIgPSAi Li4iIF0gJiYgcmVtb3ZlZD0ke3JlbW92ZWQlLyovKn07CiAgICAgICAgWyAiJHtyZW1vdmVkIyMq L30iID0gIiIgXSAmJiByZW1vdmVkPSR7cmVtb3ZlZCUvKn07CiAgICAgICAgZWNobyAke3JlbW92 ZWR9OwogICAgZmkKfQpkbG9wZW5fbGliICgpIAp7IAogICAgaWYgW1sgJHtDSE9TVH0gPT0gKi1s aW51eC1nbnUgfHwgJHtDSE9TVH0gPT0gKi1saW51eC11Y2xpYmMgXV07IHRoZW4KICAgICAgICBl Y2hvICItbGRsIjsKICAgIGZpCn0KZG9pY29uICgpIAp7IAogICAgKCBsb2NhbCBpIGogcmV0Owog ICAgaW5zaW50byAvdXNyL3NoYXJlL3BpeG1hcHM7CiAgICBmb3IgaSBpbiAiJEAiOwogICAgZG8K ICAgICAgICBpZiBbWyAtZiAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgIGRvaW5zICIke2l9IjsK ICAgICAgICAgICAgKChyZXQrPSQ/KSk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBpZiBbWyAt ZCAke2l9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBmb3IgaiBpbiAiJHtpfSIvKi5wbmc7CiAg ICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIGRvaW5zICIke2p9IjsKICAgICAg ICAgICAgICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICgoKytyZXQpKTsKICAgICAgICAgICAgZmk7CiAgICAg ICAgZmk7CiAgICBkb25lOwogICAgZXhpdCAke3JldH0gKQp9CmRvbWVudSAoKSAKeyAKICAgICgg bG9jYWwgaSBqIHJldD0wOwogICAgaW5zaW50byAvdXNyL3NoYXJlL2FwcGxpY2F0aW9uczsKICAg IGZvciBpIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbIC1mICR7aX0gXV07IHRoZW4KICAg ICAgICAgICAgZG9pbnMgIiR7aX0iOwogICAgICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICBl bHNlCiAgICAgICAgICAgIGlmIFtbIC1kICR7aX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGZv ciBqIGluICIke2l9Ii8qLmRlc2t0b3A7CiAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAg ICAgICAgIGRvaW5zICIke2p9IjsKICAgICAgICAgICAgICAgICAgICAoKHJldCs9JD8pKTsKICAg ICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICgoKyty ZXQpKTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgZXhpdCAke3Jl dH0gKQp9CmViZWVwICgpIAp7IAogICAgbG9jYWwgbjsKICAgIGlmIFtbIC16ICR7RUJFRVBfSUdO T1JFfSBdXTsgdGhlbgogICAgICAgIGZvciAoKG49MSA7IG4gPD0gJHsxOi01fSA7IG4rKykpCiAg ICAgICAgZG8KICAgICAgICAgICAgZWNobyAtbmUgIlxhIjsKICAgICAgICAgICAgc2xlZXAgMC4x ID4mL2Rldi9udWxsOwogICAgICAgICAgICBzbGVlcCAwLDEgPiYvZGV2L251bGw7CiAgICAgICAg ICAgIGVjaG8gLW5lICJcYSI7CiAgICAgICAgICAgIHNsZWVwIDE7CiAgICAgICAgZG9uZTsKICAg IGZpCn0KZWN2c19jbGVhbiAoKSAKeyAKICAgIFtbIC16ICQqIF1dICYmIHNldCAtLSAuOwogICAg ZmluZCAiJEAiIC10eXBlIGQgLW5hbWUgJ0NWUycgLXBydW5lIC1wcmludDAgfCB4YXJncyAtMCBy bSAtcmY7CiAgICBmaW5kICIkQCIgLXR5cGUgZiAtbmFtZSAnLmN2cyonIC1wcmludDAgfCB4YXJn cyAtMCBybSAtcmYKfQplZG9zMnVuaXggKCkgCnsgCiAgICBlY2hvICIkQCIgfCB4YXJncyBzZWQg LWkgJ3MvXHIkLy8nCn0KZWdldGVudCAoKSAKeyAKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAg ICAgKi1kYXJ3aW45KQogICAgICAgICAgICBsb2NhbCBteXR5cGU9JDE7CiAgICAgICAgICAgIFtb ICJwYXNzd2QiID09ICRteXR5cGUgXV0gJiYgbXl0eXBlPSJVc2VycyI7CiAgICAgICAgICAgIFtb ICJncm91cCIgPT0gJG15dHlwZSBdXSAmJiBteXR5cGU9Ikdyb3VwcyI7CiAgICAgICAgICAgIGNh c2UgIiQyIiBpbiAKICAgICAgICAgICAgICAgICpbITAtOV0qKQogICAgICAgICAgICAgICAgICAg IGRzY2wgLiAtcmVhZCAvJG15dHlwZS8kMiAyPiAvZGV2L251bGwgfCBncmVwIFJlY29yZE5hbWUK ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgICAg IGxvY2FsIG15a2V5PSJVbmlxdWVJRCI7CiAgICAgICAgICAgICAgICAgICAgW1sgJG15dHlwZSA9 PSAiR3JvdXBzIiBdXSAmJiBteWtleT0iUHJpbWFyeUdyb3VwSUQiOwogICAgICAgICAgICAgICAg ICAgIGRzY2wgLiAtc2VhcmNoIC8kbXl0eXBlICRteWtleSAkMiAyPiAvZGV2L251bGwKICAgICAg ICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWMKICAgICAgICA7OwogICAgICAgICotZGFyd2lu KikKICAgICAgICAgICAgY2FzZSAiJDIiIGluIAogICAgICAgICAgICAgICAgKlshMC05XSopCiAg ICAgICAgICAgICAgICAgICAgbmlkdW1wICQxIC4gfCBhd2sgLUYiOiIgInsgaWYgKFwkMSB+IC9e JDIkLykge3ByaW50IFwkMDtleGl0O30gfSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICAqKQogICAgICAgICAgICAgICAgICAgIG5pZHVtcCAkMSAuIHwgYXdrIC1GIjoiICJ7IGlm IChcJDMgPT0gJDIpIHtwcmludCBcJDA7ZXhpdDt9IH0iCiAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICBlc2FjCiAgICAgICAgOzsKICAgICAgICAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkq KQogICAgICAgICAgICBsb2NhbCBvcHRzIGFjdGlvbj0idXNlciI7CiAgICAgICAgICAgIFtbICQx ID09ICJwYXNzd2QiIF1dIHx8IGFjdGlvbj0iZ3JvdXAiOwogICAgICAgICAgICBpZiBbWyAkMiA9 PSBbWzpkaWdpdDpdXSogXV07IHRoZW4KICAgICAgICAgICAgICAgIFtbICR7YWN0aW9ufSA9PSAi dXNlciIgXV0gJiYgb3B0cz0iLXUiIHx8IG9wdHM9Ii1nIjsKICAgICAgICAgICAgZmk7CiAgICAg ICAgICAgIHB3IHNob3cgJHthY3Rpb259ICR7b3B0c30gIiQyIiAtcQogICAgICAgIDs7CiAgICAg ICAgKi1uZXRic2QqIHwgKi1vcGVuYnNkKikKICAgICAgICAgICAgZ3JlcCAiJDI6XCo6IiAvZXRj LyQxCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICB0eXBlIC1wIG5zY2QgPiYvZGV2 L251bGwgJiYgbnNjZCAtaSAiJDEiOwogICAgICAgICAgICBnZXRlbnQgIiQxIiAiJDIiCiAgICAg ICAgOzsKICAgIGVzYWMKfQplZ2V0aG9tZSAoKSAKeyAKICAgIGVudD0kKGVnZXRlbnQgcGFzc3dk ICQxKTsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qIHwgKi1mcmVlYnNk KiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgZWNobyAke2VudH0gfCBjdXQgLWQ6IC1mOQog ICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZWNobyAke2VudH0gfCBjdXQgLWQ6IC1m NgogICAgICAgIDs7CiAgICBlc2FjCn0KZWdldHNoZWxsICgpIAp7IAogICAgZW50PSQoZWdldGVu dCBwYXNzd2QgIiQxIik7CiAgICBjYXNlICR7Q0hPU1R9IGluIAogICAgICAgICotZGFyd2luKiB8 ICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGVjaG8gJHtlbnR9IHwgY3V0 IC1kOiAtZjEwCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBlY2hvICR7ZW50fSBj dXQgLWQ6IC1mNwogICAgICAgIDs7CiAgICBlc2FjCn0KZW1rdGVtcCAoKSAKeyAKICAgIGxvY2Fs IGV4ZT0idG91Y2giOwogICAgW1sgJDEgPT0gLWQgXV0gJiYgZXhlPSJta2RpciIgJiYgc2hpZnQ7 CiAgICBsb2NhbCB0b3BkaXI9JDE7CiAgICBpZiBbWyAteiAke3RvcGRpcn0gXV07IHRoZW4KICAg ICAgICBbWyAteiAke1R9IF1dICYmIHRvcGRpcj0iL3RtcCIgfHwgdG9wZGlyPSR7VH07CiAgICBm aTsKICAgIGlmICEgdHlwZSAtUCBta3RlbXAgPiAvZGV2L251bGw7IHRoZW4KICAgICAgICBsb2Nh bCB0bXA9LzsKICAgICAgICB3aGlsZSBbWyAtZSAke3RtcH0gXV07IGRvCiAgICAgICAgICAgIHRt cD0ke3RvcGRpcn0vdG1wLiR7UkFORE9NfS4ke1JBTkRPTX0uJHtSQU5ET019OwogICAgICAgIGRv bmU7CiAgICAgICAgJHtleGV9ICIke3RtcH0iIHx8ICR7ZXhlfSAtcCAiJHt0bXB9IjsKICAgICAg ICBlY2hvICIke3RtcH0iOwogICAgZWxzZQogICAgICAgIGlmIFtbICR7ZXhlfSA9PSAidG91Y2gi IF1dOyB0aGVuCiAgICAgICAgICAgIFRNUERJUj0iJHt0b3BkaXJ9IiBta3RlbXAgLXQgdG1wLlhY WFhYWFhYWFg7CiAgICAgICAgZWxzZQogICAgICAgICAgICBUTVBESVI9IiR7dG9wZGlyfSIgbWt0 ZW1wIC1kdCB0bXAuWFhYWFhYWFhYWDsKICAgICAgICBmaTsKICAgIGZpCn0KZW5ld2dyb3VwICgp IAp7IAogICAgY2FzZSAke0VCVUlMRF9QSEFTRX0gaW4gCiAgICAgICAgdW5wYWNrIHwgY29tcGls ZSB8IHRlc3QgfCBpbnN0YWxsKQogICAgICAgICAgICBlZXJyb3IgIidlbmV3Z3JvdXAoKScgY2Fs bGVkIGZyb20gJyR7RUJVSUxEX1BIQVNFfSgpJyB3aGljaCBpcyBub3QgYSBwa2dfKiBmdW5jdGlv bi4iOwogICAgICAgICAgICBlZXJyb3IgIlBhY2thZ2UgZmFpbHMgYXQgUUEgYW5kIGF0IGxpZmUu ICBQbGVhc2UgZmlsZSBhIGJ1Zy4iOwogICAgICAgICAgICBkaWUgIkJhZCBwYWNrYWdlISAgZW5l d2dyb3VwIGlzIG9ubHkgZm9yIHVzZSBpbiBwa2dfKiBmdW5jdGlvbnMhIgogICAgICAgIDs7CiAg ICBlc2FjOwogICAgbG9jYWwgZWdyb3VwPSIkMSI7CiAgICBzaGlmdDsKICAgIGlmIFsgLXogIiR7 ZWdyb3VwfSIgXTsgdGhlbgogICAgICAgIGVlcnJvciAiTm8gZ3JvdXAgc3BlY2lmaWVkICEiOwog ICAgICAgIGRpZSAiQ2Fubm90IGNhbGwgZW5ld2dyb3VwIHdpdGhvdXQgYSBncm91cCI7CiAgICBm aTsKICAgIGlmIFtbIC1uICQoZWdldGVudCBncm91cCAiJHtlZ3JvdXB9IikgXV07IHRoZW4KICAg ICAgICByZXR1cm4gMDsKICAgIGZpOwogICAgZWluZm8gIkFkZGluZyBncm91cCAnJHtlZ3JvdXB9 JyB0byB5b3VyIHN5c3RlbSAuLi4iOwogICAgbG9jYWwgb3B0cz07CiAgICBsb2NhbCBlZ2lkPSIk MSI7CiAgICBzaGlmdDsKICAgIGlmIFsgISAteiAiJHtlZ2lkfSIgXTsgdGhlbgogICAgICAgIGlm IFsgIiR7ZWdpZH0iIC1ndCAwIF07IHRoZW4KICAgICAgICAgICAgaWYgWyAteiAiYGVnZXRlbnQg Z3JvdXAgJHtlZ2lkfWAiIF07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFtbICIke0NIT1NUfSIg PT0gKi1kYXJ3aW4qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgb3B0cz0iJHtvcHRzfSAk e2VnaWR9IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBvcHRzPSIk e29wdHN9IC1nICR7ZWdpZH0iOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGVsc2UK ICAgICAgICAgICAgICAgIGVnaWQ9Im5leHQgYXZhaWxhYmxlOyByZXF1ZXN0ZWQgZ2lkIHRha2Vu IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBlZXJyb3IgIkdyb3Vw aWQgZ2l2ZW4gYnV0IGlzIG5vdCBncmVhdGVyIHRoYW4gMCAhIjsKICAgICAgICAgICAgZGllICIk e2VnaWR9IGlzIG5vdCBhIHZhbGlkIEdJRCI7CiAgICAgICAgZmk7CiAgICBlbHNlCiAgICAgICAg ZWdpZD0ibmV4dCBhdmFpbGFibGUiOwogICAgZmk7CiAgICBlaW5mbyAiIC0gR3JvdXBpZDogJHtl Z2lkfSI7CiAgICBsb2NhbCBlZXh0cmE9IiRAIjsKICAgIG9wdHM9IiR7b3B0c30gJHtlZXh0cmF9 IjsKICAgIGxvY2FsIG9sZHNhbmRib3g9IiR7U0FOREJPWF9PTn0iOwogICAgZXhwb3J0IFNBTkRC T1hfT049IjAiOwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWRhcndpbiopCiAgICAg ICAgICAgIGlmIFsgISAteiAiJHtlZXh0cmF9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBlaW5m byAiRXh0cmEgb3B0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiBEYXJ3aW4vT1MgWCB5ZXQiOwog ICAgICAgICAgICAgICAgZWluZm8gIlBsZWFzZSByZXBvcnQgdGhlIGVidWlsZCBhbG9uZyB3aXRo IHRoZSBpbmZvIGJlbG93IjsKICAgICAgICAgICAgICAgIGVpbmZvICJlZXh0cmE6ICR7ZWV4dHJh fSI7CiAgICAgICAgICAgICAgICBkaWUgIlJlcXVpcmVkIGZ1bmN0aW9uIG1pc3NpbmciOwogICAg ICAgICAgICBmaTsKICAgICAgICAgICAgY2FzZSAke2VnaWR9IGluIAogICAgICAgICAgICAgICAg KlshMC05XSopCiAgICAgICAgICAgICAgICAgICAgZm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5 OTk7IGVnaWQrKykpCiAgICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICAg ICAgW1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdpZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAg ICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAg ICAgICAgIGRzY2wgLiBjcmVhdGUgL2dyb3Vwcy8ke2Vncm91cH0gZ2lkICR7ZWdpZH07CiAgICAg ICAgICAgIGRzY2wgLiBjcmVhdGUgL2dyb3Vwcy8ke2Vncm91cH0gcGFzc3dkICcqJwogICAgICAg IDs7CiAgICAgICAgKi1mcmVlYnNkKiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgY2FzZSAk e2VnaWR9IGluIAogICAgICAgICAgICAgICAgKlshMC05XSopCiAgICAgICAgICAgICAgICAgICAg Zm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5OTk7IGVnaWQrKykpCiAgICAgICAgICAgICAgICAg ICAgZG8KICAgICAgICAgICAgICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdp ZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRvbmUKICAgICAgICAgICAgICAg IDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgIHB3IGdyb3VwYWRkICR7ZWdyb3VwfSAt ZyAke2VnaWR9IHx8IGRpZSAiZW5ld2dyb3VwIGZhaWxlZCIKICAgICAgICA7OwogICAgICAgICot bmV0YnNkKikKICAgICAgICAgICAgY2FzZSAke2VnaWR9IGluIAogICAgICAgICAgICAgICAgKlsh MC05XSopCiAgICAgICAgICAgICAgICAgICAgZm9yICgoZWdpZCA9IDEwMTsgZWdpZCA8PSA5OTk7 IGVnaWQrKykpCiAgICAgICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAgICAgICAgICAgICAg W1sgLXogJChlZ2V0ZW50IGdyb3VwICR7ZWdpZH0pIF1dICYmIGJyZWFrOwogICAgICAgICAgICAg ICAgICAgIGRvbmUKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAg ICAgIGdyb3VwYWRkIC1nICR7ZWdpZH0gJHtlZ3JvdXB9IHx8IGRpZSAiZW5ld2dyb3VwIGZhaWxl ZCIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGdyb3VwYWRkICR7b3B0c30gJHtl Z3JvdXB9IHx8IGRpZSAiZW5ld2dyb3VwIGZhaWxlZCIKICAgICAgICA7OwogICAgZXNhYzsKICAg IGV4cG9ydCBTQU5EQk9YX09OPSIke29sZHNhbmRib3h9Igp9CmVuZXd1c2VyICgpIAp7IAogICAg Y2FzZSAke0VCVUlMRF9QSEFTRX0gaW4gCiAgICAgICAgdW5wYWNrIHwgY29tcGlsZSB8IHRlc3Qg fCBpbnN0YWxsKQogICAgICAgICAgICBlZXJyb3IgIidlbmV3dXNlcigpJyBjYWxsZWQgZnJvbSAn JHtFQlVJTERfUEhBU0V9KCknIHdoaWNoIGlzIG5vdCBhIHBrZ18qIGZ1bmN0aW9uLiI7CiAgICAg ICAgICAgIGVlcnJvciAiUGFja2FnZSBmYWlscyBhdCBRQSBhbmQgYXQgbGlmZS4gIFBsZWFzZSBm aWxlIGEgYnVnLiI7CiAgICAgICAgICAgIGRpZSAiQmFkIHBhY2thZ2UhICBlbmV3dXNlciBpcyBv bmx5IGZvciB1c2UgaW4gcGtnXyogZnVuY3Rpb25zISIKICAgICAgICA7OwogICAgZXNhYzsKICAg IGxvY2FsIGV1c2VyPSQxOwogICAgc2hpZnQ7CiAgICBpZiBbWyAteiAke2V1c2VyfSBdXTsgdGhl bgogICAgICAgIGVlcnJvciAiTm8gdXNlcm5hbWUgc3BlY2lmaWVkICEiOwogICAgICAgIGRpZSAi Q2Fubm90IGNhbGwgZW5ld3VzZXIgd2l0aG91dCBhIHVzZXJuYW1lIjsKICAgIGZpOwogICAgaWYg W1sgLW4gJChlZ2V0ZW50IHBhc3N3ZCAiJHtldXNlcn0iKSBdXTsgdGhlbgogICAgICAgIHJldHVy biAwOwogICAgZmk7CiAgICBlaW5mbyAiQWRkaW5nIHVzZXIgJyR7ZXVzZXJ9JyB0byB5b3VyIHN5 c3RlbSAuLi4iOwogICAgbG9jYWwgb3B0cz07CiAgICBsb2NhbCBldWlkPSQxOwogICAgc2hpZnQ7 CiAgICBpZiBbWyAtbiAke2V1aWR9ICYmICR7ZXVpZH0gIT0gLTEgXV07IHRoZW4KICAgICAgICBp ZiBbWyAke2V1aWR9IC1ndCAwIF1dOyB0aGVuCiAgICAgICAgICAgIGlmIFtbIC1uICQoZWdldGVu dCBwYXNzd2QgJHtldWlkfSkgXV07IHRoZW4KICAgICAgICAgICAgICAgIGV1aWQ9Im5leHQiOwog ICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGVlcnJvciAiVXNlcmlkIGdp dmVuIGJ1dCBpcyBub3QgZ3JlYXRlciB0aGFuIDAgISI7CiAgICAgICAgICAgIGRpZSAiJHtldWlk fSBpcyBub3QgYSB2YWxpZCBVSUQiOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGV1aWQ9 Im5leHQiOwogICAgZmk7CiAgICBpZiBbWyAke2V1aWR9ID09ICJuZXh0IiBdXTsgdGhlbgogICAg ICAgIGZvciAoKGV1aWQgPSAxMDE7IGV1aWQgPD0gOTk5OyBldWlkKyspKQogICAgICAgIGRvCiAg ICAgICAgICAgIFtbIC16ICQoZWdldGVudCBwYXNzd2QgJHtldWlkfSkgXV0gJiYgYnJlYWs7CiAg ICAgICAgZG9uZTsKICAgIGZpOwogICAgb3B0cz0iJHtvcHRzfSAtdSAke2V1aWR9IjsKICAgIGVp bmZvICIgLSBVc2VyaWQ6ICR7ZXVpZH0iOwogICAgbG9jYWwgZXNoZWxsPSQxOwogICAgc2hpZnQ7 CiAgICBpZiBbWyAhIC16ICR7ZXNoZWxsfSBdXSAmJiBbWyAke2VzaGVsbH0gIT0gIi0xIiBdXTsg dGhlbgogICAgICAgIGlmIFtbICEgLWUgJHtST09UfSR7ZXNoZWxsfSBdXTsgdGhlbgogICAgICAg ICAgICBlZXJyb3IgIkEgc2hlbGwgd2FzIHNwZWNpZmllZCBidXQgaXQgZG9lcyBub3QgZXhpc3Qg ISI7CiAgICAgICAgICAgIGRpZSAiJHtlc2hlbGx9IGRvZXMgbm90IGV4aXN0IGluICR7Uk9PVH0i OwogICAgICAgIGZpOwogICAgICAgIGlmIFtbICR7ZXNoZWxsfSA9PSAqL2ZhbHNlIHx8ICR7ZXNo ZWxsfSA9PSAqL25vbG9naW4gXV07IHRoZW4KICAgICAgICAgICAgZWVycm9yICJEbyBub3Qgc3Bl Y2lmeSAke2VzaGVsbH0geW91cnNlbGYsIHVzZSAtMSI7CiAgICAgICAgICAgIGRpZSAiUGFzcyAn LTEnIGFzIHRoZSBzaGVsbCBwYXJhbWV0ZXIiOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAg IGZvciBzaGVsbCBpbiAvc2Jpbi9ub2xvZ2luIC91c3Ivc2Jpbi9ub2xvZ2luIC9iaW4vZmFsc2Ug L3Vzci9iaW4vZmFsc2UgL2Rldi9udWxsOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbIC14ICR7 Uk9PVH0ke3NoZWxsfSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgICAgIGlmIFtbICR7 c2hlbGx9ID09ICIvZGV2L251bGwiIF1dOyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiVW5hYmxl IHRvIGlkZW50aWZ5IHRoZSBzaGVsbCB0byB1c2UsIHByb2NlZWRpbmcgd2l0aCB1c2VybGFuZCBk ZWZhdWx0LiI7CiAgICAgICAgICAgIGNhc2UgJHtVU0VSTEFORH0gaW4gCiAgICAgICAgICAgICAg ICBHTlUpCiAgICAgICAgICAgICAgICAgICAgc2hlbGw9Ii9iaW4vZmFsc2UiCiAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgQlNEKQogICAgICAgICAgICAgICAgICAgIHNoZWxsPSIv c2Jpbi9ub2xvZ2luIgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIERhcndpbikK ICAgICAgICAgICAgICAgICAgICBzaGVsbD0iL3Vzci9zYmluL25vbG9naW4iCiAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICBkaWUgIlVuYWJs ZSB0byBpZGVudGlmeSB0aGUgZGVmYXVsdCBzaGVsbCBmb3IgdXNlcmxhbmQgJHtVU0VSTEFORH0i CiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICBlc2FjOwogICAgICAgIGZpOwogICAgICAg IGVzaGVsbD0ke3NoZWxsfTsKICAgIGZpOwogICAgZWluZm8gIiAtIFNoZWxsOiAke2VzaGVsbH0i OwogICAgb3B0cz0iJHtvcHRzfSAtcyAke2VzaGVsbH0iOwogICAgbG9jYWwgZWhvbWU9JDE7CiAg ICBzaGlmdDsKICAgIGlmIFtbIC16ICR7ZWhvbWV9IF1dIHx8IFtbICR7ZWhvbWV9ID09ICItMSIg XV07IHRoZW4KICAgICAgICBlaG9tZT0iL2Rldi9udWxsIjsKICAgIGZpOwogICAgZWluZm8gIiAt IEhvbWU6ICR7ZWhvbWV9IjsKICAgIG9wdHM9IiR7b3B0c30gLWQgJHtlaG9tZX0iOwogICAgbG9j YWwgZWdyb3Vwcz0kMTsKICAgIHNoaWZ0OwogICAgaWYgW1sgISAteiAke2Vncm91cHN9IF1dOyB0 aGVuCiAgICAgICAgbG9jYWwgb2xkaWZzPSR7SUZTfTsKICAgICAgICBsb2NhbCBkZWZncm91cD0i IiBleGdyb3Vwcz0iIjsKICAgICAgICBleHBvcnQgSUZTPSIsIjsKICAgICAgICBmb3IgZyBpbiAk e2Vncm91cHN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGV4cG9ydCBJRlM9JHtvbGRpZnN9Owog ICAgICAgICAgICBpZiBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgIiR7Z30iKSBdXTsgdGhlbgogICAg ICAgICAgICAgICAgZWVycm9yICJZb3UgbXVzdCBhZGQgZ3JvdXAgJHtnfSB0byB0aGUgc3lzdGVt IGZpcnN0IjsKICAgICAgICAgICAgICAgIGRpZSAiJHtnfSBpcyBub3QgYSB2YWxpZCBHSUQiOwog ICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgW1sgLXogJHtkZWZncm91cH0gXV07IHRoZW4K ICAgICAgICAgICAgICAgIGRlZmdyb3VwPSR7Z307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgIGV4Z3JvdXBzPSIke2V4Z3JvdXBzfSwke2d9IjsKICAgICAgICAgICAgZmk7CiAgICAg ICAgICAgIGV4cG9ydCBJRlM9IiwiOwogICAgICAgIGRvbmU7CiAgICAgICAgZXhwb3J0IElGUz0k e29sZGlmc307CiAgICAgICAgb3B0cz0iJHtvcHRzfSAtZyAke2RlZmdyb3VwfSI7CiAgICAgICAg aWYgW1sgISAteiAke2V4Z3JvdXBzfSBdXTsgdGhlbgogICAgICAgICAgICBvcHRzPSIke29wdHN9 IC1HICR7ZXhncm91cHM6MX0iOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGVncm91cHM9 Iihub25lKSI7CiAgICBmaTsKICAgIGVpbmZvICIgLSBHcm91cHM6ICR7ZWdyb3Vwc30iOwogICAg bG9jYWwgb2xkc2FuZGJveD0ke1NBTkRCT1hfT059OwogICAgZXhwb3J0IFNBTkRCT1hfT049IjAi OwogICAgY2FzZSAke0NIT1NUfSBpbiAKICAgICAgICAqLWRhcndpbiopCiAgICAgICAgICAgIGlm IFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBkc2NsIC4gY3JlYXRlIC91c2Vycy8k e2V1c2VyfSB1aWQgJHtldWlkfTsKICAgICAgICAgICAgICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJz LyR7ZXVzZXJ9IHNoZWxsICR7ZXNoZWxsfTsKICAgICAgICAgICAgICAgIGRzY2wgLiBjcmVhdGUg L3VzZXJzLyR7ZXVzZXJ9IGhvbWUgJHtlaG9tZX07CiAgICAgICAgICAgICAgICBkc2NsIC4gY3Jl YXRlIC91c2Vycy8ke2V1c2VyfSByZWFsbmFtZSAiYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQTn0i OwogICAgICAgICAgICAgICAgbG9jYWwgb2xkaWZzPSR7SUZTfTsKICAgICAgICAgICAgICAgIGV4 cG9ydCBJRlM9IiwiOwogICAgICAgICAgICAgICAgZm9yIGcgaW4gJHtlZ3JvdXBzfTsKICAgICAg ICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgZHNjbCAuIG1lcmdlIC9ncm91cHMvJHtn fSB1c2VycyAke2V1c2VyfTsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgICAgICBl eHBvcnQgSUZTPSR7b2xkaWZzfTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWlu Zm8gIkV4dHJhIG9wdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gRGFyd2luIHlldCI7CiAgICAg ICAgICAgICAgICBlaW5mbyAiUGxlYXNlIHJlcG9ydCB0aGUgZWJ1aWxkIGFsb25nIHdpdGggdGhl IGluZm8gYmVsb3ciOwogICAgICAgICAgICAgICAgZWluZm8gImVleHRyYTogJEAiOwogICAgICAg ICAgICAgICAgZGllICJSZXF1aXJlZCBmdW5jdGlvbiBtaXNzaW5nIjsKICAgICAgICAgICAgZmkK ICAgICAgICA7OwogICAgICAgICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAg IGlmIFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBwdyB1c2VyYWRkICR7ZXVzZXJ9 ICR7b3B0c30gLWMgImFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IiBkaWUgImVuZXd1c2VyIGZh aWxlZCI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGVpbmZvICIgLSBFeHRyYTog JEAiOwogICAgICAgICAgICAgICAgcHcgdXNlcmFkZCAke2V1c2VyfSAke29wdHN9ICIkQCIgfHwg ZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAg Ki1uZXRic2QqKQogICAgICAgICAgICBpZiBbWyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAg ICAgdXNlcmFkZCAke29wdHN9ICR7ZXVzZXJ9IHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAg ICAgICAgICAgICB1c2VyYWRkICR7b3B0c30gJHtldXNlcn0gIiRAIiB8fCBkaWUgImVuZXd1c2Vy IGZhaWxlZCI7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqLW9wZW5ic2QqKQog ICAgICAgICAgICBpZiBbWyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAgICAgdXNlcmFkZCAt dSAke2V1aWR9IC1zICR7ZXNoZWxsfSAtZCAke2Vob21lfSAtYyAiQWRkZWQgYnkgcG9ydGFnZSBm b3IgJHtQTn0iIC1nICR7ZWdyb3Vwc30gJHtldXNlcn0gfHwgZGllICJlbmV3dXNlciBmYWlsZWQi OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiIC0gRXh0cmE6ICRAIjsK ICAgICAgICAgICAgICAgIHVzZXJhZGQgLXUgJHtldWlkfSAtcyAke2VzaGVsbH0gLWQgJHtlaG9t ZX0gLWMgIkFkZGVkIGJ5IHBvcnRhZ2UgZm9yICR7UE59IiAtZyAke2Vncm91cHN9ICR7ZXVzZXJ9 ICIkQCIgfHwgZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBmaQogICAgICAgIDs7 CiAgICAgICAgKikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAgICAgICAg ICAgIHVzZXJhZGQgJHtvcHRzfSAke2V1c2VyfSAtYyAiYWRkZWQgYnkgcG9ydGFnZSBmb3IgJHtQ Tn0iIHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAgICAgICAgICAgICB1c2VyYWRkICR7b3B0 c30gJHtldXNlcn0gIiRAIiB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAgIGZp CiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBpZiBbWyAhIC1lICR7Uk9PVH0vJHtlaG9tZX0gXV07 IHRoZW4KICAgICAgICBlaW5mbyAiIC0gQ3JlYXRpbmcgJHtlaG9tZX0gaW4gJHtST09UfSI7CiAg ICAgICAgbWtkaXIgLXAgIiR7Uk9PVH0vJHtlaG9tZX0iOwogICAgICAgIGNob3duICR7ZXVzZXJ9 ICIke1JPT1R9LyR7ZWhvbWV9IjsKICAgICAgICBjaG1vZCA3NTUgIiR7Uk9PVH0vJHtlaG9tZX0i OwogICAgZmk7CiAgICBleHBvcnQgU0FOREJPWF9PTj0ke29sZHNhbmRib3h9Cn0KZXBhdGNoICgp IAp7IAogICAgZnVuY3Rpb24gX2VwYXRjaF9kcmF3X2xpbmUgKCkgCiAgICB7IAogICAgICAgIFtb IC16ICQxIF1dICYmIHNldCAiJChwcmludGYgIiU2NXMiICcnKSI7CiAgICAgICAgZWNobyAiJHsx Ly8/Lz19IgogICAgfTsKICAgIGZ1bmN0aW9uIF9lcGF0Y2hfYXNzZXJ0ICgpIAogICAgeyAKICAg ICAgICBsb2NhbCBfcGlwZXN0YXR1cz0ke1BJUEVTVEFUVVNbKl19OwogICAgICAgIFtbICR7X3Bp cGVzdGF0dXMvLyAvfSAtZXEgMCBdXQogICAgfTsKICAgIGxvY2FsIFBJUEVfQ01EPSIiOwogICAg bG9jYWwgU1RERVJSX1RBUkdFVD0iJHtUfS8kJC5vdXQiOwogICAgbG9jYWwgUEFUQ0hfVEFSR0VU PSIke1R9LyQkLnBhdGNoIjsKICAgIGxvY2FsIFBBVENIX1NVRkZJWD0iIjsKICAgIGxvY2FsIFNJ TkdMRV9QQVRDSD0ibm8iOwogICAgbG9jYWwgeD0iIjsKICAgIHVuc2V0IFA0Q09ORklHIFA0UE9S VCBQNFVTRVI7CiAgICBpZiBbICIkIyIgLWd0IDEgXTsgdGhlbgogICAgICAgIGxvY2FsIG09IiI7 CiAgICAgICAgZm9yIG0gaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBlcGF0Y2ggIiR7 bX0iOwogICAgICAgIGRvbmU7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGlmIFsgLW4g IiQxIiAtYSAtZiAiJDEiIF07IHRoZW4KICAgICAgICBTSU5HTEVfUEFUQ0g9InllcyI7CiAgICAg ICAgbG9jYWwgRVBBVENIX1NPVVJDRT0iJDEiOwogICAgICAgIGxvY2FsIEVQQVRDSF9TVUZGSVg9 IiR7MSMjKlwufSI7CiAgICBlbHNlCiAgICAgICAgaWYgWyAtbiAiJDEiIC1hIC1kICIkMSIgXTsg dGhlbgogICAgICAgICAgICBpZiBbICIke0VQQVRDSF9GT1JDRX0iID0gInllcyIgXSAmJiBbIC16 ICIke0VQQVRDSF9TVUZGSVh9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBsb2NhbCBFUEFUQ0hf U09VUkNFPSIkMS8qIjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbG9jYWwgRVBB VENIX1NPVVJDRT0iJDEvKi4ke0VQQVRDSF9TVUZGSVh9IjsKICAgICAgICAgICAgZmk7CiAgICAg ICAgZWxzZQogICAgICAgICAgICBpZiBbWyAhIC1kICR7RVBBVENIX1NPVVJDRX0gXV0gfHwgW1sg LW4gJDEgXV07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFsgLW4gIiQxIiAtYSAiJHtFUEFUQ0hf U09VUkNFfSIgPSAiJHtXT1JLRElSfS9wYXRjaCIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAg IEVQQVRDSF9TT1VSQ0U9IiQxIjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAg ZWNobzsKICAgICAgICAgICAgICAgIGVlcnJvciAiQ2Fubm90IGZpbmQgXCRFUEFUQ0hfU09VUkNF ISAgVmFsdWUgZm9yIFwkRVBBVENIX1NPVVJDRSBpczoiOwogICAgICAgICAgICAgICAgZWVycm9y OwogICAgICAgICAgICAgICAgZWVycm9yICIgICR7RVBBVENIX1NPVVJDRX0iOwogICAgICAgICAg ICAgICAgZWVycm9yICIgICggJHtFUEFUQ0hfU09VUkNFIyMqL30gKSI7CiAgICAgICAgICAgICAg ICBlY2hvOwogICAgICAgICAgICAgICAgZGllICJDYW5ub3QgZmluZCBcJEVQQVRDSF9TT1VSQ0Uh IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0U9IiR7RVBB VENIX1NPVVJDRX0vKi4ke0VQQVRDSF9TVUZGSVh9IjsKICAgICAgICBmaTsKICAgIGZpOwogICAg Y2FzZSAke0VQQVRDSF9TVUZGSVgjIypcLn0gaW4gCiAgICAgICAgeHopCiAgICAgICAgICAgIFBJ UEVfQ01EPSJ4eiAtZGMiOwogICAgICAgICAgICBQQVRDSF9TVUZGSVg9Inh6IgogICAgICAgIDs7 CiAgICAgICAgbHptYSkKICAgICAgICAgICAgUElQRV9DTUQ9Imx6bWEgLWRjIjsKICAgICAgICAg ICAgUEFUQ0hfU1VGRklYPSJsem1hIgogICAgICAgIDs7CiAgICAgICAgYnoyKQogICAgICAgICAg ICBQSVBFX0NNRD0iYnppcDIgLWRjIjsKICAgICAgICAgICAgUEFUQ0hfU1VGRklYPSJiejIiCiAg ICAgICAgOzsKICAgICAgICBneiB8IFogfCB6KQogICAgICAgICAgICBQSVBFX0NNRD0iZ3ppcCAt ZGMiOwogICAgICAgICAgICBQQVRDSF9TVUZGSVg9Imd6IgogICAgICAgIDs7CiAgICAgICAgWklQ IHwgemlwKQogICAgICAgICAgICBQSVBFX0NNRD0idW56aXAgLXAiOwogICAgICAgICAgICBQQVRD SF9TVUZGSVg9InppcCIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIFBJUEVfQ01E PSJjYXQiOwogICAgICAgICAgICBQQVRDSF9TVUZGSVg9InBhdGNoIgogICAgICAgIDs7CiAgICBl c2FjOwogICAgaWYgWyAiJHtTSU5HTEVfUEFUQ0h9IiA9ICJubyIgXTsgdGhlbgogICAgICAgIGVp bmZvICIke0VQQVRDSF9NVUxUSV9NU0d9IjsKICAgIGZpOwogICAgZm9yIHggaW4gJHtFUEFUQ0hf U09VUkNFfTsKICAgIGRvCiAgICAgICAgaWYgWyAtZiAke3h9IF0gJiYgKCBbICIke1NJTkdMRV9Q QVRDSH0iID0gInllcyIgLW8gIiR7eC9fYWxsX30iICE9ICIke3h9IiAtbyAiJHt4L18ke0FSQ0h9 X30iICE9ICIke3h9IiBdIHx8IFsgIiR7RVBBVENIX0ZPUkNFfSIgPSAieWVzIiBdICk7IHRoZW4K ICAgICAgICAgICAgbG9jYWwgY291bnQ9MDsKICAgICAgICAgICAgbG9jYWwgcG9wdHM9IiR7RVBB VENIX09QVFN9IjsKICAgICAgICAgICAgbG9jYWwgcGF0Y2huYW1lPSR7eCMjKi99OwogICAgICAg ICAgICBpZiBbIC1uICIke0VQQVRDSF9FWENMVURFfSIgXTsgdGhlbgogICAgICAgICAgICAgICAg aWYgWyAiJHtFUEFUQ0hfRVhDTFVERS8ke3BhdGNobmFtZX19IiAhPSAiJHtFUEFUQ0hfRVhDTFVE RX0iIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg IGZpOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgaWYgWyAiJHtTSU5HTEVfUEFUQ0h9IiA9 ICJ5ZXMiIF07IHRoZW4KICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7RVBBVENIX1NJTkdMRV9N U0d9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgZWluZm8gIiR7RVBBVENIX1NJTkdMRV9N U0d9IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiQXBw bHlpbmcgJHtwYXRjaG5hbWV9IC4uLiI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAg ZWxzZQogICAgICAgICAgICAgICAgZWluZm8gIiAgJHtwYXRjaG5hbWV9IC4uLiI7CiAgICAgICAg ICAgIGZpOwogICAgICAgICAgICBlY2hvICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiID4gJHtT VERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAg ICAgICAgIGVjaG8gPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJf VEFSR0VUIyMqL307CiAgICAgICAgICAgIGlmIFtbICR7UEFUQ0hfU1VGRklYfSAhPSAicGF0Y2gi IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvIC1uICJQSVBFX0NPTU1BTkQ6CSIgPj4gJHtT VERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAg ICAgICAgICAgICBlY2hvICIke1BJUEVfQ01EfSAke3h9ID4gJHtQQVRDSF9UQVJHRVR9IiA+PiAk e1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAg ICAgICAgICAgICAgIGlmICEgKCAke1BJUEVfQ01EfSAke3h9ID4gJHtQQVRDSF9UQVJHRVR9ICkg Pj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30g Mj4mMTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICAgICAg ZWVycm9yICJDb3VsZCBub3QgZXh0cmFjdCBwYXRjaCEiOwogICAgICAgICAgICAgICAgICAgIGNv dW50PTU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBmaTsKICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgUEFUQ0hfVEFSR0VUPSIke3h9IjsKICAgICAg ICAgICAgZmk7CiAgICAgICAgICAgIGxvY2FsIGFic19wYXRocz0kKGVncmVwIC1uICdeWy0rXXsz fSAvJyAiJHtQQVRDSF9UQVJHRVR9IiB8IGF3ayAnJDIgIT0gIi9kZXYvbnVsbCIgeyBwcmludCB9 Jyk7CiAgICAgICAgICAgIGlmIFtbIC1uICR7YWJzX3BhdGhzfSBdXTsgdGhlbgogICAgICAgICAg ICAgICAgY291bnQ9MTsKICAgICAgICAgICAgICAgIGVjaG8gIk5PVEU6IHNraXBwaW5nIC1wMCBk dWUgdG8gYWJzb2x1dGUgcGF0aHMgaW4gcGF0Y2g6IiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7 cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgIGVjaG8gIiR7 YWJzX3BhdGhzfSIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJf VEFSR0VUIyMqL307CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICB3aGlsZSBbICIke2NvdW50 fSIgLWx0IDUgXTsgZG8KICAgICAgICAgICAgICAgIF9lcGF0Y2hfZHJhd19saW5lICIqKioqKiAk e3BhdGNobmFtZX0gKioqKioiID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7 U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgZWNobyA+PiAke1NUREVSUl9UQVJH RVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAg IGVjaG8gLW4gIlBBVENIIENPTU1BTkQ6CSAiID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRj aG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgZWNobyAicGF0Y2gg LXAke2NvdW50fSAke3BvcHRzfSA8ICR7UEFUQ0hfVEFSR0VUfSIgPj4gJHtTVERFUlJfVEFSR0VU JS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICBl Y2hvID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMj Ki99OwogICAgICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUgIioqKioqICR7cGF0Y2huYW1l fSAqKioqKiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFS R0VUIyMqL307CiAgICAgICAgICAgICAgICBpZiAoIGNhdCAke1BBVENIX1RBUkdFVH0gfCBwYXRj aCAtcCR7Y291bnR9ICR7cG9wdHN9IC0tZHJ5LXJ1biAtZjsKICAgICAgICAgICAgICAgIF9lcGF0 Y2hfYXNzZXJ0ICkgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJf VEFSR0VUIyMqL30gMj4mMTsgdGhlbgogICAgICAgICAgICAgICAgICAgIF9lcGF0Y2hfZHJhd19s aW5lICIqKioqKiAke3BhdGNobmFtZX0gKioqKioiID4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3Bh dGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBl Y2hvID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMj Ki99LnJlYWw7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiQUNUVUFMTFkgQVBQTFlJTkcgJHtw YXRjaG5hbWV9IC4uLiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERF UlJfVEFSR0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBlY2hvID4+ICR7U1RERVJS X1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWw7CiAgICAg ICAgICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUgIioqKioqICR7cGF0Y2huYW1lfSAqKioq KiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMq L30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBjYXQgJHtQQVRDSF9UQVJHRVR9IHwgcGF0Y2gg LXAke2NvdW50fSAke3BvcHRzfSA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0k e1NUREVSUl9UQVJHRVQjIyovfS5yZWFsIDI+JjE7CiAgICAgICAgICAgICAgICAgICAgX2VwYXRj aF9hc3NlcnQ7CiAgICAgICAgICAgICAgICAgICAgaWYgWyAiJD8iIC1uZSAwIF07IHRoZW4KICAg ICAgICAgICAgICAgICAgICAgICAgY2F0ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9 LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWwgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNo bmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG87 CiAgICAgICAgICAgICAgICAgICAgICAgIGVlcnJvciAiQSBkcnktcnVuIG9mIHBhdGNoIGNvbW1h bmQgc3VjY2VlZGVkLCBidXQgYWN0dWFsbHkiOwogICAgICAgICAgICAgICAgICAgICAgICBlZXJy b3IgImFwcGx5aW5nIHRoZSBwYXRjaCBmYWlsZWQhIjsKICAgICAgICAgICAgICAgICAgICAgICAg Y291bnQ9NTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBybSAt ZiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfS5y ZWFsOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZmk7CiAgICAg ICAgICAgICAgICBjb3VudD0kKChjb3VudCArIDEpKTsKICAgICAgICAgICAgZG9uZTsKICAgICAg ICAgICAgaWYgWyAiJHtQQVRDSF9TVUZGSVh9IiAhPSAicGF0Y2giIF07IHRoZW4KICAgICAgICAg ICAgICAgIHJtIC1mICR7UEFUQ0hfVEFSR0VUfTsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAg IGlmIFsgIiR7Y291bnR9IiAtZXEgNSBdOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvOwogICAg ICAgICAgICAgICAgZWVycm9yICJGYWlsZWQgUGF0Y2g6ICR7cGF0Y2huYW1lfSAhIjsKICAgICAg ICAgICAgICAgIGVlcnJvciAiICggJHtQQVRDSF9UQVJHRVR9ICkiOwogICAgICAgICAgICAgICAg ZWVycm9yOwogICAgICAgICAgICAgICAgZWVycm9yICJJbmNsdWRlIGluIHlvdXIgYnVncmVwb3J0 IHRoZSBjb250ZW50cyBvZjoiOwogICAgICAgICAgICAgICAgZWVycm9yOwogICAgICAgICAgICAg ICAgZWVycm9yICIgICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RB UkdFVCMjKi99IjsKICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBkaWUgIkZh aWxlZCBQYXRjaDogJHtwYXRjaG5hbWV9ISI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBy bSAtZiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyov fTsKICAgICAgICAgICAgZWVuZCAwOwogICAgICAgIGZpOwogICAgZG9uZTsKICAgIGlmIFsgIiR7 U0lOR0xFX1BBVENIfSIgPSAibm8iIF07IHRoZW4KICAgICAgICBlaW5mbyAiRG9uZSB3aXRoIHBh dGNoaW5nIjsKICAgIGZpCn0KZXBhdXNlICgpIAp7IAogICAgW1sgLXogJHtFUEFVU0VfSUdOT1JF fSBdXSAmJiBzbGVlcCAkezE6LTV9Cn0KZXB1bnRfY3h4ICgpIAp7IAogICAgbG9jYWwgZGlyPSQx OwogICAgW1sgLXogJHtkaXJ9IF1dICYmIGRpcj0ke1N9OwogICAgZWJlZ2luICJSZW1vdmluZyB1 c2VsZXNzIEMrKyBjaGVja3MiOwogICAgbG9jYWwgZjsKICAgIGZpbmQgIiR7ZGlyfSIgLW5hbWUg Y29uZmlndXJlIHwgd2hpbGUgcmVhZCBmOyBkbwogICAgICAgIHBhdGNoIC0tbm8tYmFja3VwLWlm LW1pc21hdGNoIC1wMCAiJHtmfSIgIiR7UE9SVERJUn0vZWNsYXNzL0VMVC1wYXRjaGVzL25vY3h4 L25vY3h4LnBhdGNoIiA+IC9kZXYvbnVsbDsKICAgIGRvbmU7CiAgICBlZW5kIDAKfQplc3ZuX2Ns ZWFuICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgc2V0IC0tIC47CiAgICBmaW5kICIkQCIgLXR5 cGUgZCAtbmFtZSAnLnN2bicgLXBydW5lIC1wcmludDAgfCB4YXJncyAtMCBybSAtcmYKfQpmaWx0 ZXJfaW52YWxpZF9mbGFncyAoKSAKeyAKICAgIGxvY2FsIGZsYWcgYnJva2VuX2ZsYWdzOwogICAg ZXZhbCBicm9rZW5fZmxhZ3M9KCQoZ2V0X2Jyb2tlbl9mbGFncyAkKGdldFBST0cgQ0MgZ2NjKSBj ICR7Q0ZMQUdTfSkpOwogICAgZm9yIGZsYWcgaW4gIiR7YnJva2VuX2ZsYWdzW0BdfSI7CiAgICBk bwogICAgICAgIGV3YXJuICJGaWx0ZXJpbmcgb3V0IGludmFsaWQgQ0ZMQUcgXCIke2ZsYWd9XCIi OwogICAgICAgIENGTEFHUz0iJChyZW1vdmVfZmxhZyAiJHtmbGFnfSIgJHtDRkxBR1N9KSI7CiAg ICBkb25lOwogICAgZXZhbCBicm9rZW5fZmxhZ3M9KCQoZ2V0X2Jyb2tlbl9mbGFncyAkKGdldFBS T0cgQ1hYIGcrKykgYysrICR7Q1hYRkxBR1N9KSk7CiAgICBmb3IgZmxhZyBpbiAiJHticm9rZW5f ZmxhZ3NbQF19IjsKICAgIGRvCiAgICAgICAgZXdhcm4gIkZpbHRlcmluZyBvdXQgaW52YWxpZCBD WFhGTEFHIFwiJHtmbGFnfVwiIjsKICAgICAgICBDWFhGTEFHUz0iJChyZW1vdmVfZmxhZyAiJHtm bGFnfSIgJHtDWFhGTEFHU30pIjsKICAgIGRvbmUKfQpmaW5kX3VucGFja2FibGVfZmlsZSAoKSAK eyAKICAgIGxvY2FsIHNyYz0kMTsKICAgIGlmIFtbIC16ICR7c3JjfSBdXTsgdGhlbgogICAgICAg IHNyYz0ke0RJU1RESVJ9LyR7QX07CiAgICBlbHNlCiAgICAgICAgaWYgW1sgLWUgJHtESVNURElS fS8ke3NyY30gXV07IHRoZW4KICAgICAgICAgICAgc3JjPSR7RElTVERJUn0vJHtzcmN9OwogICAg ICAgIGVsc2UKICAgICAgICAgICAgaWYgW1sgLWUgJHtQV0R9LyR7c3JjfSBdXTsgdGhlbgogICAg ICAgICAgICAgICAgc3JjPSR7UFdEfS8ke3NyY307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgIGlmIFtbIC1lICR7c3JjfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIHNyYz0k e3NyY307CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAg ICBmaTsKICAgIFtbICEgLWUgJHtzcmN9IF1dICYmIHJldHVybiAxOwogICAgZWNobyAiJHtzcmN9 Igp9CmdjYy1mdWxsdmVyc2lvbiAoKSAKeyAKICAgICQodGMtZ2V0Q0MgIiRAIikgLWR1bXB2ZXJz aW9uCn0KZ2NjLW1ham9yLXZlcnNpb24gKCkgCnsgCiAgICBnY2MtdmVyc2lvbiAiJEAiIHwgY3V0 IC1mMSAtZC4KfQpnY2MtbWljcm8tdmVyc2lvbiAoKSAKeyAKICAgIGdjYy1mdWxsdmVyc2lvbiAi JEAiIHwgY3V0IC1mMyAtZC4gfCBjdXQgLWYxIC1kLQp9CmdjYy1taW5vci12ZXJzaW9uICgpIAp7 IAogICAgZ2NjLXZlcnNpb24gIiRAIiB8IGN1dCAtZjIgLWQuCn0KZ2NjLXNwZWNzLWRpcmVjdGl2 ZSAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZSBzdWJkbmFtZSBzdWJkaXJlY3RpdmU7CiAgICBk aXJlY3RpdmU9IiQoX2djYy1zcGVjcy1kaXJlY3RpdmVfcmF3ICQxKSI7CiAgICB3aGlsZSBbWyAk e2RpcmVjdGl2ZX0gPT0gKiVcKCpcKSogXV07IGRvCiAgICAgICAgc3ViZG5hbWU9JHtkaXJlY3Rp dmUvKiVcKH07CiAgICAgICAgc3ViZG5hbWU9JHtzdWJkbmFtZS9cKSp9OwogICAgICAgIHN1YmRp cmVjdGl2ZT0iJChfZ2NjLXNwZWNzLWRpcmVjdGl2ZV9yYXcgJHtzdWJkbmFtZX0pIjsKICAgICAg ICBkaXJlY3RpdmU9IiR7ZGlyZWN0aXZlLy9cJSgke3N1YmRuYW1lfSkvJHtzdWJkaXJlY3RpdmV9 fSI7CiAgICBkb25lOwogICAgZWNobyAiJHtkaXJlY3RpdmV9IjsKICAgIHJldHVybiAwCn0KZ2Nj LXNwZWNzLW5vc3RyaWN0ICgpIAp7IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZl PSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgIiR7ZGlyZWN0aXZl L1x7IWZzdHJpY3Qtb3ZlcmZsb3c6fSIgIT0gIiR7ZGlyZWN0aXZlfSIgXV0pCn0KZ2NjLXNwZWNz LW5vdyAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVj cy1kaXJlY3RpdmUgbGlua19jb21tYW5kKTsKICAgIHJldHVybiAkKFtbICIke2RpcmVjdGl2ZS9c eyFub25vdzp9IiAhPSAiJHtkaXJlY3RpdmV9IiBdXSkKfQpnY2Mtc3BlY3MtcGllICgpIAp7IAog ICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2ZSBj YzEpOwogICAgcmV0dXJuICQoW1sgIiR7ZGlyZWN0aXZlL1x7IW5vcGllOn0iICE9ICIke2RpcmVj dGl2ZX0iIF1dKQp9CmdjYy1zcGVjcy1yZWxybyAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsK ICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgbGlua19jb21tYW5kKTsKICAgIHJl dHVybiAkKFtbICIke2RpcmVjdGl2ZS9ceyFub3JlbHJvOn0iICE9ICIke2RpcmVjdGl2ZX0iIF1d KQp9CmdjYy1zcGVjcy1zc3AgKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3Rp dmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGNjMSk7CiAgICByZXR1cm4gJChbWyAiJHtkaXJlY3Rp dmUvXHshZm5vLXN0YWNrLXByb3RlY3Rvcjp9IiAhPSAiJHtkaXJlY3RpdmV9IiBdXSkKfQpnY2Mt c3BlY3Mtc3NwLXRvLWFsbCAoKSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2 ZT0kKGdjYy1zcGVjcy1kaXJlY3RpdmUgY2MxKTsKICAgIHJldHVybiAkKFtbICIke2RpcmVjdGl2 ZS9ceyFmbm8tc3RhY2stcHJvdGVjdG9yLWFsbDp9IiAhPSAiJHtkaXJlY3RpdmV9IiBdXSkKfQpn Y2MtdmVyc2lvbiAoKSAKeyAKICAgIGdjYy1mdWxsdmVyc2lvbiAiJEAiIHwgY3V0IC1mMSwyIC1k Lgp9Cmdlbl91c3JfbGRzY3JpcHQgKCkgCnsgCiAgICBsb2NhbCBsaWIgbGliZGlyPSQoZ2V0X2xp YmRpcikgb3V0cHV0X2Zvcm1hdD0iIiBhdXRvPWZhbHNlIHN1ZmZpeD0kKGdldF9saWJuYW1lKTsK ICAgIFtbIC16ICR7RUQrc2V0fSBdXSAmJiBsb2NhbCBFRD0ke0QlL30ke0VQUkVGSVh9LzsKICAg IHRjLWlzLXN0YXRpYy1vbmx5ICYmIHJldHVybjsKICAgIGRvZGlyIC91c3IvJHtsaWJkaXJ9Owog ICAgaWYgW1sgJDEgPT0gIi1hIiBdXTsgdGhlbgogICAgICAgIGF1dG89dHJ1ZTsKICAgICAgICBz aGlmdDsKICAgICAgICBkb2RpciAvJHtsaWJkaXJ9OwogICAgZmk7CiAgICBvdXRwdXRfZm9ybWF0 PSQoJCh0Yy1nZXRDQykgJHtDRkxBR1N9ICR7TERGTEFHU30gLVdsLC0tdmVyYm9zZSAyPiYxIHwg c2VkIC1uICdzL15PVVRQVVRfRk9STUFUKCJcKFteIl0qXCkiLC4qL1wxL3AnKTsKICAgIFtbIC1u ICR7b3V0cHV0X2Zvcm1hdH0gXV0gJiYgb3V0cHV0X2Zvcm1hdD0iT1VUUFVUX0ZPUk1BVCAoICR7 b3V0cHV0X2Zvcm1hdH0gKSI7CiAgICBmb3IgbGliIGluICIkQCI7CiAgICBkbwogICAgICAgIGxv Y2FsIHRsaWI7CiAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAgICBsaWI9ImxpYiR7 bGlifSR7c3VmZml4fSI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBbWyAtciAke0VEfS8ke2xp YmRpcn0vJHtsaWJ9IF1dIHx8IGNvbnRpbnVlOwogICAgICAgIGZpOwogICAgICAgIGNhc2UgJHtD VEFSR0VUOi0ke0NIT1NUfX0gaW4gCiAgICAgICAgICAgICotZGFyd2luKikKICAgICAgICAgICAg ICAgIGlmICR7YXV0b307IHRoZW4KICAgICAgICAgICAgICAgICAgICB0bGliPSQoc2Nhbm1hY2hv IC1xRiclUyNGJyAiJHtFRH0iL3Vzci8ke2xpYmRpcn0vJHtsaWJ9KTsKICAgICAgICAgICAgICAg IGVsc2UKICAgICAgICAgICAgICAgICAgICB0bGliPSQoc2Nhbm1hY2hvIC1xRiclUyNGJyAiJHtF RH0iLyR7bGliZGlyfS8ke2xpYn0pOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAg ICBbWyAteiAke3RsaWJ9IF1dICYmIGRpZSAidW5hYmxlIHRvIHJlYWQgaW5zdGFsbF9uYW1lIGZy b20gJHtsaWJ9IjsKICAgICAgICAgICAgICAgIHRsaWI9JHt0bGliIyMqL307CiAgICAgICAgICAg ICAgICBpZiAke2F1dG99OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgbXYgIiR7RUR9Ii91c3Iv JHtsaWJkaXJ9LyR7bGliJSR7c3VmZml4fX0uKiR7c3VmZml4Iy59ICIke0VEfSIvJHtsaWJkaXJ9 LyB8fCBkaWU7CiAgICAgICAgICAgICAgICAgICAgcm0gLWYgIiR7RUR9Ii8ke2xpYmRpcn0vJHts aWJ9OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBpbnN0YWxsX25hbWVfdG9v bCAtaWQgIiR7RVBSRUZJWH0iLyR7bGliZGlyfS8ke3RsaWJ9ICIke0VEfSIvJHtsaWJkaXJ9LyR7 dGxpYn07CiAgICAgICAgICAgICAgICBwdXNoZCAiJHtFRH0vdXNyLyR7bGliZGlyfSIgPiAvZGV2 L251bGw7CiAgICAgICAgICAgICAgICBsbiAtc25mICIuLi8uLi8ke2xpYmRpcn0vJHt0bGlifSIg IiR7bGlifSI7CiAgICAgICAgICAgICAgICBwb3BkID4gL2Rldi9udWxsCiAgICAgICAgICAgIDs7 CiAgICAgICAgICAgICotYWl4KiB8ICotaXJpeCogfCAqLWhwdXgqIHwgKi1pbnRlcml4KiB8ICot d2lubnQqKQogICAgICAgICAgICAgICAgaWYgJHthdXRvfTsgdGhlbgogICAgICAgICAgICAgICAg ICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0qICIke0VEfSIvJHtsaWJkaXJ9LyB8 fCBkaWU7CiAgICAgICAgICAgICAgICAgICAgdGxpYj0kKHJlYWRsaW5rICIke0VEfSIvJHtsaWJk aXJ9LyR7bGlifSk7CiAgICAgICAgICAgICAgICAgICAgdGxpYj0ke3RsaWIjIyovfTsKICAgICAg ICAgICAgICAgICAgICBpZiBbWyAteiAke3RsaWJ9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAg ICAgICAgIHRsaWI9JHtsaWJ9OwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgcm0gLWYgIiR7RUR9Ii8ke2xpYmRpcn0vJHtsaWJ9OwogICAgICAgICAgICAg ICAgICAgIGZpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHRsaWI9 JHtsaWJ9OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBwdXNoZCAiJHtFRH0v dXNyLyR7bGliZGlyfSIgPiAvZGV2L251bGw7CiAgICAgICAgICAgICAgICBsbiAtc25mICIuLi8u Li8ke2xpYmRpcn0vJHt0bGlifSIgIiR7bGlifSI7CiAgICAgICAgICAgICAgICBwb3BkID4gL2Rl di9udWxsCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICBpZiAk e2F1dG99OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgdGxpYj0kKHNjYW5lbGYgLXFGJyVTI0Yn ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0pOwogICAgICAgICAgICAgICAgICAgIFtbIC16 ICR7dGxpYn0gXV0gJiYgZGllICJ1bmFibGUgdG8gcmVhZCBTT05BTUUgZnJvbSAke2xpYn0iOwog ICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIvdXNyLyR7bGliZGlyfS8ke2xpYn0qICIke0VE fSIvJHtsaWJkaXJ9LyB8fCBkaWU7CiAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHt0bGlifSAh PSAke2xpYn0qIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIG12ICIke0VEfSIvdXNy LyR7bGliZGlyfS8ke3RsaWJ9KiAiJHtFRH0iLyR7bGliZGlyfS8gfHwgZGllOwogICAgICAgICAg ICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIHJtIC1mICIke0VEfSIvJHtsaWJkaXJ9 LyR7bGlifTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB0bGliPSR7 bGlifTsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgY2F0ID4gIiR7RUR9L3Vz ci8ke2xpYmRpcn0vJHtsaWJ9IiAgPDwtRU5EX0xEU0NSSVBUCi8qIEdOVSBsZCBzY3JpcHQKICAg U2luY2UgR2VudG9vIGhhcyBjcml0aWNhbCBkeW5hbWljIGxpYnJhcmllcyBpbiAvbGliLCBhbmQg dGhlIHN0YXRpYyB2ZXJzaW9ucwogICBpbiAvdXNyL2xpYiwgd2UgbmVlZCB0byBoYXZlIGEgImZh a2UiIGR5bmFtaWMgbGliIGluIC91c3IvbGliLCBvdGhlcndpc2Ugd2UKICAgcnVuIGludG8gbGlu a2luZyBwcm9ibGVtcy4gIFRoaXMgImZha2UiIGR5bmFtaWMgbGliIGlzIGEgbGlua2VyIHNjcmlw dCB0aGF0CiAgIHJlZGlyZWN0cyB0aGUgbGlua2VyIHRvIHRoZSByZWFsIGxpYi4gIEFuZCB5ZXMs IHRoaXMgd29ya3MgaW4gdGhlIGNyb3NzLQogICBjb21waWxpbmcgc2NlbmFyaW8gYXMgdGhlIHN5 c3Jvb3QtZWQgbGlua2VyIHdpbGwgcHJlcGVuZCB0aGUgcmVhbCBwYXRoLgoKICAgU2VlIGJ1ZyBo dHRwOi8vYnVncy5nZW50b28ub3JnLzQ0MTEgZm9yIG1vcmUgaW5mby4KICovCiR7b3V0cHV0X2Zv cm1hdH0KR1JPVVAgKCAke0VQUkVGSVh9LyR7bGliZGlyfS8ke3RsaWJ9ICkKRU5EX0xEU0NSSVBU CgogICAgICAgICAgICA7OwogICAgICAgIGVzYWMKICAgICAgICBmcGVybXMgYSt4ICIvdXNyLyR7 bGliZGlyfS8ke2xpYn0iIHx8IGRpZSAiY291bGQgbm90IGNoYW5nZSBwZXJtcyBvbiAke2xpYn0i OwogICAgZG9uZQp9CmdldFBST0cgKCkgCnsgCiAgICBsb2NhbCB2YXI9JDEgcHJvZz0kMjsKICAg IGlmIFtbIC1uICR7IXZhcn0gXV07IHRoZW4KICAgICAgICBlY2hvICIkeyF2YXJ9IjsKICAgICAg ICByZXR1cm4gMDsKICAgIGZpOwogICAgbG9jYWwgc2VhcmNoPTsKICAgIFtbIC1uICQzIF1dICYm IHNlYXJjaD0kKHR5cGUgLXAgIiQzLSR7cHJvZ30iKTsKICAgIFtbIC16ICR7c2VhcmNofSAmJiAt biAke0NIT1NUfSBdXSAmJiBzZWFyY2g9JCh0eXBlIC1wICIke0NIT1NUfS0ke3Byb2d9Iik7CiAg ICBbWyAtbiAke3NlYXJjaH0gXV0gJiYgcHJvZz0ke3NlYXJjaCMjKi99OwogICAgZXhwb3J0ICR7 dmFyfT0ke3Byb2d9OwogICAgZWNobyAiJHshdmFyfSIKfQpnZXRfYWJpX0FTRkxBR1MgKCkgCnsg CiAgICBnZXRfYWJpX3ZhciBBU0ZMQUdTICIkQCIKfQpnZXRfYWJpX0NERUZJTkUgKCkgCnsgCiAg ICBnZXRfYWJpX3ZhciBDREVGSU5FICIkQCIKfQpnZXRfYWJpX0NGTEFHUyAoKSAKeyAKICAgIGdl dF9hYmlfdmFyIENGTEFHUyAiJEAiCn0KZ2V0X2FiaV9DSE9TVCAoKSAKeyAKICAgIGdldF9hYmlf dmFyIENIT1NUICIkQCIKfQpnZXRfYWJpX0NUQVJHRVQgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBD VEFSR0VUICIkQCIKfQpnZXRfYWJpX0ZBS0VfVEFSR0VUUyAoKSAKeyAKICAgIGdldF9hYmlfdmFy IEZBS0VfVEFSR0VUUyAiJEAiCn0KZ2V0X2FiaV9MREZMQUdTICgpIAp7IAogICAgZ2V0X2FiaV92 YXIgTERGTEFHUyAiJEAiCn0KZ2V0X2FiaV9MSUJESVIgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBM SUJESVIgIiRAIgp9CmdldF9hYmlfdmFyICgpIAp7IAogICAgbG9jYWwgZmxhZz0kMTsKICAgIGxv Y2FsIGFiaTsKICAgIGlmIFsgJCMgLWd0IDEgXTsgdGhlbgogICAgICAgIGFiaT0kezJ9OwogICAg ZWxzZQogICAgICAgIGlmIFsgLW4gIiR7QUJJfSIgXTsgdGhlbgogICAgICAgICAgICBhYmk9JHtB Qkl9OwogICAgICAgIGVsc2UKICAgICAgICAgICAgaWYgWyAtbiAiJHtERUZBVUxUX0FCSX0iIF07 IHRoZW4KICAgICAgICAgICAgICAgIGFiaT0ke0RFRkFVTFRfQUJJfTsKICAgICAgICAgICAgZWxz ZQogICAgICAgICAgICAgICAgYWJpPSJkZWZhdWx0IjsKICAgICAgICAgICAgZmk7CiAgICAgICAg Zmk7CiAgICBmaTsKICAgIGxvY2FsIHZhcj0iJHtmbGFnfV8ke2FiaX0iOwogICAgZWNobyAkeyF2 YXJ9Cn0KZ2V0X2FsbF9hYmlzICgpIAp7IAogICAgbG9jYWwgb3JkZXI9IiI7CiAgICBpZiBbWyAt eiAke01VTFRJTElCX0FCSVN9IF1dOyB0aGVuCiAgICAgICAgZWNobyAiZGVmYXVsdCI7CiAgICAg ICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGZvciB4IGluICR7TVVMVElMSUJfQUJJU307CiAgICBk bwogICAgICAgIGlmIFtbICR7eH0gIT0gJHtERUZBVUxUX0FCSX0gXV07IHRoZW4KICAgICAgICAg ICAgb3JkZXI9IiR7b3JkZXI6KyR7b3JkZXJ9IH0ke3h9IjsKICAgICAgICBmaTsKICAgIGRvbmU7 CiAgICBvcmRlcj0iJHtvcmRlcjorJHtvcmRlcn0gfSR7REVGQVVMVF9BQkl9IjsKICAgIGVjaG8g JHtvcmRlcn07CiAgICByZXR1cm4gMAp9CmdldF9hbGxfbGliZGlycyAoKSAKeyAKICAgIGxvY2Fs IGxpYmRpcnM9ImxpYiI7CiAgICBsb2NhbCBhYmk7CiAgICBsb2NhbCBkaXI7CiAgICBmb3IgYWJp IGluICR7TVVMVElMSUJfQUJJU307CiAgICBkbwogICAgICAgIFsgIiQoZ2V0X2FiaV9MSUJESVIg JHthYml9KSIgIT0gImxpYiIgXSAmJiBsaWJkaXJzPSIke2xpYmRpcnN9ICQoZ2V0X2FiaV9MSUJE SVIgJHthYml9KSI7CiAgICBkb25lOwogICAgZWNobyAiJHtsaWJkaXJzfSIKfQpnZXRfYm1ha2Ug KCkgCnsgCiAgICBpZiBbWyAke1VTRVJMQU5EfSA9PSAqQlNEIF1dOyB0aGVuCiAgICAgICAgZWNo byBtYWtlOwogICAgZWxzZQogICAgICAgIGlmIFtbICR7VVNFUkxBTkR9ID09ICJEYXJ3aW4iIF1d OyB0aGVuCiAgICAgICAgICAgIGVjaG8gYnNkbWFrZTsKICAgICAgICBlbHNlCiAgICAgICAgICAg IGVjaG8gcG1ha2U7CiAgICAgICAgZmk7CiAgICBmaQp9CmdldF9icm9rZW5fZmxhZ3MgKCkgCnsg CiAgICBsb2NhbCBteXByb2c9IiR7MX0iIGxhbmc9IiR7Mn0iOwogICAgc2hpZnQgMjsKICAgIGVj aG8gJ21haW4oKXt9JyB8IExDX0FMTD1DICR7bXlwcm9nfSAke0B9IC14ICR7bGFuZ30gLW8gL2Rl di9udWxsIC0gMj4mMSB8IGVncmVwICJ1bnJlY29nbml6ZWQgLipvcHRpb24iIHwgZWdyZXAgLW8g LS0gJygnXCcnfFwifGApLS4qJyB8IHNlZCAtciAncy8oJ1wnJ3xgfCIpLy9nOyBzL14vIi87IHMv JC8iLyc7CiAgICBlY2hvICdtYWluKCl7fScgfCBMQ19BTEw9QyAke215cHJvZ30gJHtAfSAteCAk e2xhbmd9IC1vIC9kZXYvbnVsbCAtIDI+JjEgfCBlZ3JlcCAidW5yZWNvZ25pc2VkIGRlYnVnIG91 dHB1dCIgfCBlZ3JlcCAtbyAtLSAnKCdcJyd8XCJ8YCkuKicgfCBzZWQgLXIgJ3MvKCdcJyd8YHwi KS8vZzsgcy9eLyItZy87IHMvJC8iLycKfQpnZXRfaW5zdGFsbF9hYmlzICgpIAp7IAogICAgbG9j YWwgb3JkZXI9IiI7CiAgICBpZiBbWyAteiAke01VTFRJTElCX0FCSVN9IF1dOyB0aGVuCiAgICAg ICAgZWNobyAiZGVmYXVsdCI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGlmIFtbICR7 RU1VTFRJTElCX1BLR30gPT0gInRydWUiIF1dOyB0aGVuCiAgICAgICAgZm9yIHggaW4gJHtNVUxU SUxJQl9BQklTfTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAke3h9ICE9ICIke0RFRkFV TFRfQUJJfSIgXV07IHRoZW4KICAgICAgICAgICAgICAgIGhhc3EgJHt4fSAke0FCSV9ERU5ZfSB8 fCBvcmRlcmE9IiR7b3JkZXJhfSAke3h9IjsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsK ICAgICAgICBoYXNxICR7REVGQVVMVF9BQkl9ICR7QUJJX0RFTll9IHx8IG9yZGVyPSIke29yZGVy YX0gJHtERUZBVUxUX0FCSX0iOwogICAgICAgIGlmIFtbIC1uICR7QUJJX0FMTE9XfSBdXTsgdGhl bgogICAgICAgICAgICBsb2NhbCBvcmRlcmE9IiI7CiAgICAgICAgICAgIGZvciB4IGluICR7b3Jk ZXJ9OwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYgaGFzcSAke3h9ICR7QUJJX0FM TE9XfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG9yZGVyYT0iJHtvcmRlcmF9ICR7eH0iOwog ICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIG9yZGVyPSR7 b3JkZXJhfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBvcmRlcj0ke0RFRkFVTFRfQUJJ fTsKICAgIGZpOwogICAgaWYgW1sgLXogJHtvcmRlcn0gXV07IHRoZW4KICAgICAgICBkaWUgIlRo ZSBBQkkgbGlzdCBpcyBlbXB0eS4gIEFyZSB5b3UgdXNpbmcgYSBwcm9wZXIgbXVsdGlsaWIgcHJv ZmlsZT8gIFBlcmhhcHMgeW91ciBVU0UgZmxhZ3Mgb3IgTVVMVElMSUJfQUJJUyBhcmUgdG9vIHJl c3RyaWN0aXZlIGZvciB0aGlzIHBhY2thZ2UuIjsKICAgIGZpOwogICAgZWNobyAke29yZGVyfTsK ICAgIHJldHVybiAwCn0KZ2V0X2xpYmRpciAoKSAKeyAKICAgIGxvY2FsIENPTkZfTElCRElSOwog ICAgaWYgWyAtbiAiJHtDT05GX0xJQkRJUl9PVkVSUklERX0iIF07IHRoZW4KICAgICAgICBlY2hv ICR7Q09ORl9MSUJESVJfT1ZFUlJJREV9OwogICAgZWxzZQogICAgICAgIGdldF9hYmlfTElCRElS OwogICAgZmkKfQpnZXRfbGliZGlyX292ZXJyaWRlICgpIAp7IAogICAgaWYgaGFzX211bHRpbGli X3Byb2ZpbGU7IHRoZW4KICAgICAgICBlZXJyb3IgImdldF9saWJkaXJfb3ZlcnJpZGUgY2FsbGVk LCBidXQgaXQgc2hvdWxkbid0IGJlIG5lZWRlZCB3aXRoIHRoZSBuZXcgbXVsdGlsaWIgYXBwcm9h Y2guICBQbGVhc2UgZmlsZSBhIGJ1ZyBhdCBodHRwOi8vYnVncy5nZW50b28ub3JnIGFuZCBhc3Np Z24gaXQgdG8gZXJhZGljYXRvckBnZW50b28ub3JnIjsKICAgICAgICBleGl0IDE7CiAgICBmaTsK ICAgIENPTkZfTElCRElSPSIkMSI7CiAgICBDT05GX0xJQkRJUl9PVkVSUklERT0iJDEiOwogICAg TElCRElSX2RlZmF1bHQ9IiQxIgp9CmdldF9saWJuYW1lICgpIAp7IAogICAgbG9jYWwgbGlibmFt ZTsKICAgIGxvY2FsIHZlcj0kMTsKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1jeWd3 aW4gfCBtaW5ndyogfCAqLW1pbmd3KikKICAgICAgICAgICAgbGlibmFtZT0iZGxsIgogICAgICAg IDs7CiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBsaWJuYW1lPSJkeWxpYiIKICAgICAg ICA7OwogICAgICAgICotYWl4KikKICAgICAgICAgICAgbGlibmFtZT0iYSIKICAgICAgICA7Owog ICAgICAgICotbWludCopCiAgICAgICAgICAgIGxpYm5hbWU9ImlycmVsZXZhbnQiCiAgICAgICAg OzsKICAgICAgICAqKQogICAgICAgICAgICBsaWJuYW1lPSJzbyIKICAgICAgICA7OwogICAgZXNh YzsKICAgIGlmIFtbIC16ICQqIF1dOyB0aGVuCiAgICAgICAgZWNobyAiLiR7bGlibmFtZX0iOwog ICAgZWxzZQogICAgICAgIGZvciB2ZXIgaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBj YXNlICR7Q0hPU1R9IGluIAogICAgICAgICAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICAg ICAgICAgIGVjaG8gIi4ke3Zlcn0uJHtsaWJuYW1lfSIKICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICAqLWFpeCopCiAgICAgICAgICAgICAgICAgICAgZWNobyAiLiR7bGlibmFtZX0i CiAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgKi1taW50KikKICAgICAgICAgICAg ICAgICAgICBlY2hvICIuJHtsaWJuYW1lfSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICAqKQogICAgICAgICAgICAgICAgICAgIGVjaG8gIi4ke2xpYm5hbWV9LiR7dmVyfSIKICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWM7CiAgICAgICAgZG9uZTsKICAgIGZpCn0K Z2V0X21sX2luY2RpciAoKSAKeyAKICAgIGxvY2FsIGRpcj0vdXNyL2luY2x1ZGU7CiAgICBpZiBb WyAkIyAtZ3QgMCBdXTsgdGhlbgogICAgICAgIGluY2Rpcj0kMTsKICAgICAgICBzaGlmdDsKICAg IGZpOwogICAgaWYgW1sgLXogIiR7TVVMVElMSUJfQUJJU30iIF1dOyB0aGVuCiAgICAgICAgZWNo byAke2luY2Rpcn07CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGxvY2FsIGFiaT0ke0FC SS0ke0RFRkFVTFRfQUJJfX07CiAgICBpZiBbWyAkIyAtZ3QgMCBdXTsgdGhlbgogICAgICAgIGFi aT0kMTsKICAgICAgICBzaGlmdDsKICAgIGZpOwogICAgaWYgW1sgLWQgIiR7ZGlyfS9nZW50b28t bXVsdGlsaWIvJHthYml9IiBdXTsgdGhlbgogICAgICAgIGVjaG8gJHtkaXJ9L2dlbnRvby1tdWx0 aWxpYi8ke2FiaX07CiAgICBlbHNlCiAgICAgICAgZWNobyAke2Rpcn07CiAgICBmaQp9CmdldF9t b3VudHMgKCkgCnsgCiAgICBsb2NhbCBwb2ludD0gbm9kZT0gZnM9IG9wdHM9IGZvbz07CiAgICBp ZiBbWyAkKHVuYW1lIC1zKSA9PSAiTGludXgiIF1dOyB0aGVuCiAgICAgICAgd2hpbGUgcmVhZCBu b2RlIHBvaW50IGZzIG9wdHMgZm9vOyBkbwogICAgICAgICAgICBlY2hvICIke3BvaW50fSAke25v ZGV9ICR7ZnN9ICR7b3B0c30iOwogICAgICAgIGRvbmUgPCAvcHJvYy9tb3VudHM7CiAgICAgICAg cmV0dXJuOwogICAgZmk7CiAgICBsb2NhbCBJRlM9JwknOwogICAgTENfQUxMPUMgbW91bnQgLXAg fCB3aGlsZSByZWFkIG5vZGUgcG9pbnQgZnMgZm9vOyBkbwogICAgICAgIG9wdHM9JHtmcyMqIH07 CiAgICAgICAgZnM9JHtmcyUlICp9OwogICAgICAgIGVjaG8gIiR7cG9pbnQvLyAvXDA0MH0gJHtu b2RlLy8gL1wwNDB9ICR7ZnMlJSAqfSAke29wdHMvLyAvXDA0MH0iOwogICAgZG9uZQp9CmdldF9t dWx0aWxpYmRpciAoKSAKeyAKICAgIGlmIGhhc19tdWx0aWxpYl9wcm9maWxlOyB0aGVuCiAgICAg ICAgZWVycm9yICJnZXRfbXVsdGlsaWJkaXIgY2FsbGVkLCBidXQgaXQgc2hvdWxkbid0IGJlIG5l ZWRlZCB3aXRoIHRoZSBuZXcgbXVsdGlsaWIgYXBwcm9hY2guICBQbGVhc2UgZmlsZSBhIGJ1ZyBh dCBodHRwOi8vYnVncy5nZW50b28ub3JnIGFuZCBhc3NpZ24gaXQgdG8gZXJhZGljYXRvckBnZW50 b28ub3JnIjsKICAgICAgICBleGl0IDE7CiAgICBmaTsKICAgIGVjaG8gJHtDT05GX01VTFRJTElC RElSOj1saWIzMn0KfQpoYXNfbXVsdGlsaWJfcHJvZmlsZSAoKSAKeyAKICAgIFsgLW4gIiR7TVVM VElMSUJfQUJJU30iIC1hICIke01VTFRJTElCX0FCSVN9IiAhPSAiJHtNVUxUSUxJQl9BQklTLyAv fSIgXQp9CmlzLWxvZ2luLWRpc2FibGVkICgpIAp7IAogICAgc2hlbGw9JChlZ2V0c2hlbGwgIiQx Iik7CiAgICBjYXNlICR7c2hlbGx9IGluIAogICAgICAgIC9iaW4vZmFsc2UgfCAvdXNyL2Jpbi9m YWxzZSB8IC9zYmluL25vbG9naW4gfCAvdXNyL3NiaW4vbm9sb2dpbikKICAgICAgICAgICAgcmV0 dXJuIDAKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAg OzsKICAgIGVzYWMKfQppc19maW5hbF9hYmkgKCkgCnsgCiAgICBoYXNfbXVsdGlsaWJfcHJvZmls ZSB8fCByZXR1cm4gMDsKICAgIGxvY2FsIEFMTF9BQklTPSQoZ2V0X2luc3RhbGxfYWJpcyk7CiAg ICBsb2NhbCBMQVNUX0FCST0ke0FMTF9BQklTLyogL307CiAgICBbWyAke0xBU1RfQUJJfSA9PSAk e0FCSX0gXV0KfQptYWtlX2Rlc2t0b3BfZW50cnkgKCkgCnsgCiAgICBbWyAteiAkMSBdXSAmJiBl ZXJyb3IgIm1ha2VfZGVza3RvcF9lbnRyeTogWW91IG11c3Qgc3BlY2lmeSB0aGUgZXhlY3V0YWJs ZSIgJiYgcmV0dXJuIDE7CiAgICBsb2NhbCBleGVjPSR7MX07CiAgICBsb2NhbCBuYW1lPSR7Mjot JHtQTn19OwogICAgbG9jYWwgaWNvbj0kezM6LSR7UE59fTsKICAgIGxvY2FsIHR5cGU9JHs0fTsK ICAgIGxvY2FsIHBhdGg9JHs1fTsKICAgIGlmIFtbIC16ICR7dHlwZX0gXV07IHRoZW4KICAgICAg ICBsb2NhbCBjYXRtYWo9JHtDQVRFR09SWSUlLSp9OwogICAgICAgIGxvY2FsIGNhdG1pbj0ke0NB VEVHT1JZIyMqLX07CiAgICAgICAgY2FzZSAke2NhdG1han0gaW4gCiAgICAgICAgICAgIGFwcCkK ICAgICAgICAgICAgICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGFj Y2Vzc2liaWxpdHkpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QWNjZXNzaWJpbGl0eQog ICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYWRtaW4pCiAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9U3lzdGVtCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAg ICAgICAgICAgICAgICBhbnRpdmlydXMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3lz dGVtCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhcmNoKQogICAg ICAgICAgICAgICAgICAgICAgICB0eXBlPUFyY2hpdmluZwogICAgICAgICAgICAgICAgICAgIDs7 CiAgICAgICAgICAgICAgICAgICAgYmFja3VwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PUFyY2hpdmluZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2Ry KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPURpc2NCdXJuaW5nCiAgICAgICAgICAgICAg ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBkaWN0cykKICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZT1EaWN0aW9uYXJ5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg ICAgICBkb2MpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RG9jdW1lbnRhdGlvbgogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZWRpdG9ycykKICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZT1UZXh0RWRpdG9yCiAgICAgICAgICAgICAgICAgICAgOzsKICAg ICAgICAgICAgICAgICAgICBlbWFjcykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZXh0 RWRpdG9yCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlbXVsYXRp b24pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RW11bGF0b3IKICAgICAgICAgICAgICAg ICAgICA7OwogICAgICAgICAgICAgICAgICAgIGxhcHRvcCkKICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZT1IYXJkd2FyZVNldHRpbmdzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg ICAgICAgICAgICBvZmZpY2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9T2ZmaWNlCiAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwZGEpCiAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGU9UERBCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgICAgICB2aW0pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9VGV4dEVkaXRvcgogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgeGVtYWNzKQogICAgICAgICAg ICAgICAgICAgICAgICB0eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAg ICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAg ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWMKICAgICAgICAgICAgOzsKICAgICAg ICAgICAgZGV2KQogICAgICAgICAgICAgICAgdHlwZT0iRGV2ZWxvcG1lbnQiCiAgICAgICAgICAg IDs7CiAgICAgICAgICAgIGdhbWVzKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4g CiAgICAgICAgICAgICAgICAgICAgYWN0aW9uIHwgZnBzKQogICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPUFjdGlvbkdhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg ICAgIGFyY2FkZSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BcmNhZGVHYW1lCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBib2FyZCkKICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZT1Cb2FyZEdhbWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg ICAgICAgICAgICAgIGVtdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbXVs YXRvcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAga2lkcykKICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT1LaWRzR2FtZQogICAgICAgICAgICAgICAgICAgIDs7 CiAgICAgICAgICAgICAgICAgICAgcHV6emxlKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PUxvZ2ljR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgcm9n dWVsaWtlKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVJvbGVQbGF5aW5nCiAgICAgICAg ICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBycGcpCiAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGU9Um9sZVBsYXlpbmcKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAg ICAgICAgICAgIHNpbXVsYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U2ltdWxh dGlvbgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgc3BvcnRzKQog ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVNwb3J0c0dhbWUKICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5KQogICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPVN0cmF0ZWd5R2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAg ICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAgICAgICAg ICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9IkdhbWU7JHt0 eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZ25vbWUpCiAgICAgICAgICAgICAgICB0 eXBlPSJHbm9tZTtHVEsiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGtkZSkKICAgICAgICAg ICAgICAgIHR5cGU9IktERTtRdCIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgbWFpbCkKICAg ICAgICAgICAgICAgIHR5cGU9Ik5ldHdvcms7RW1haWwiCiAgICAgICAgICAgIDs7CiAgICAgICAg ICAgIG1lZGlhKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAg ICAgICAgICAgZ2Z4KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUdyYXBoaWNzCiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICByYWRpbykKICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZT1UdW5lcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAg ICAgICAgICAgc291bmQpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QXVkaW8KICAgICAg ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHR2KQogICAgICAgICAgICAgICAg ICAgICAgICB0eXBlPVRWCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg ICB2aWRlbykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1WaWRlbwogICAgICAgICAgICAg ICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAg dHlwZT0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAg ICAgICAgICAgIHR5cGU9IkF1ZGlvVmlkZW87JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAg ICAgICAgbmV0KQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAg ICAgICAgICAgZGlhbHVwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPURpYWx1cAogICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZnRwKQogICAgICAgICAgICAg ICAgICAgICAgICB0eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAg ICAgICAgICAgICAgICAgaW0pCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9SW5zdGFudE1l c3NhZ2luZwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgaXJjKQog ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUlSQ0NsaWVudAogICAgICAgICAgICAgICAgICAg IDs7CiAgICAgICAgICAgICAgICAgICAgbWFpbCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZT1FbWFpbAogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbmV3cykK ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1OZXdzCiAgICAgICAgICAgICAgICAgICAgOzsK ICAgICAgICAgICAgICAgICAgICBubnRwKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPU5l d3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHAycCkKICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT1GaWxlVHJhbnNmZXIKICAgICAgICAgICAgICAgICAgICA7 OwogICAgICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAg ICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAg ICB0eXBlPSJOZXR3b3JrOyR7dHlwZX0iCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHNjaSkK ICAgICAgICAgICAgICAgIGNhc2UgJHtjYXRtaW59IGluIAogICAgICAgICAgICAgICAgICAgIGFz dHJvKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1Bc3Ryb25vbXkKICAgICAgICAgICAg ICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGJpbyopCiAgICAgICAgICAgICAgICAgICAg ICAgIHR5cGU9QmlvbG9neQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAg ICAgY2FsYyopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Q2FsY3VsYXRvcgogICAgICAg ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgY2hlbSopCiAgICAgICAgICAgICAg ICAgICAgICAgIHR5cGU9Q2hlbWlzdHJ5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg ICAgICAgICAgICBlbGVjKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbGVjdHJvbmlj cwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZ2VvKikKICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT1HZW9sb2d5CiAgICAgICAgICAgICAgICAgICAgOzsKICAg ICAgICAgICAgICAgICAgICBtYXRoKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1NYXRo CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwaHlzaWNzKQogICAg ICAgICAgICAgICAgICAgICAgICB0eXBlPVBoeXNpY3MKICAgICAgICAgICAgICAgICAgICA7Owog ICAgICAgICAgICAgICAgICAgIHZpc3VhbCopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9 RGF0YVZpc3VhbGl6YXRpb24KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAg ICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAgICAgICAgICAgICAgICAg OzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0eXBlPSJTY2llbmNlOyR7 dHlwZX0iCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHN5cykKICAgICAgICAgICAgICAgIHR5 cGU9IlN5c3RlbSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgd3d3KQogICAgICAgICAgICAg ICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgY2xpZW50KQogICAgICAg ICAgICAgICAgICAgICAgICB0eXBlPVdlYkJyb3dzZXIKICAgICAgICAgICAgICAgICAgICA7Owog ICAgICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9CiAgICAg ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgIGVzYWM7CiAgICAgICAgICAgICAgICB0 eXBlPSJOZXR3b3JrIgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAg ICAgdHlwZT0KICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgZmk7CiAgICBpZiBbICIk e1NMT1R9IiA9PSAiMCIgXTsgdGhlbgogICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0i OwogICAgZWxzZQogICAgICAgIGxvY2FsIGRlc2t0b3BfbmFtZT0iJHtQTn0tJHtTTE9UfSI7CiAg ICBmaTsKICAgIGxvY2FsIGRlc2t0b3A9IiR7VH0vJChlY2hvICR7ZXhlY30gfCBzZWQgJ3M6W1s6 c3BhY2U6XS86XTpfOmcnKS0ke2Rlc2t0b3BfbmFtZX0uZGVza3RvcCI7CiAgICBjYXQgPiAiJHtk ZXNrdG9wfSIgIDw8LUVPRgpbRGVza3RvcCBFbnRyeV0KVmVyc2lvbj0xLjAKTmFtZT0ke25hbWV9 ClR5cGU9QXBwbGljYXRpb24KQ29tbWVudD0ke0RFU0NSSVBUSU9OfQpFeGVjPSR7ZXhlY30KVHJ5 RXhlYz0ke2V4ZWMlJSAqfQpJY29uPSR7aWNvbn0KQ2F0ZWdvcmllcz0ke3R5cGV9OwpFT0YKCiAg ICBbWyAtbiAke3BhdGh9IF1dICYmIGVjaG8gIlBhdGg9JHtwYXRofSIgPj4gIiR7ZGVza3RvcH0i OwogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvYXBwbGljYXRpb25zOwogICAgZG9pbnMgIiR7ZGVz a3RvcH0iICkKfQptYWtlX3Nlc3Npb25fZGVza3RvcCAoKSAKeyAKICAgIFtbIC16ICQxIF1dICYm IGVlcnJvciAiJDA6IFlvdSBtdXN0IHNwZWNpZnkgdGhlIHRpdGxlIiAmJiByZXR1cm4gMTsKICAg IFtbIC16ICQyIF1dICYmIGVlcnJvciAiJDA6IFlvdSBtdXN0IHNwZWNpZnkgdGhlIGNvbW1hbmQi ICYmIHJldHVybiAxOwogICAgbG9jYWwgdGl0bGU9JDE7CiAgICBsb2NhbCBjb21tYW5kPSQyOwog ICAgbG9jYWwgZGVza3RvcD0ke1R9LyR7d206LSR7UE59fS5kZXNrdG9wOwogICAgc2hpZnQgMjsK ICAgIGNhdCA+ICIke2Rlc2t0b3B9IiAgPDwtRU9GCltEZXNrdG9wIEVudHJ5XQpOYW1lPSR7dGl0 bGV9CkNvbW1lbnQ9VGhpcyBzZXNzaW9uIGxvZ3MgeW91IGludG8gJHt0aXRsZX0KRXhlYz0ke2Nv bW1hbmR9ICQqClRyeUV4ZWM9JHtjb21tYW5kfQpUeXBlPVhTZXNzaW9uCkVPRgoKICAgICggaW5z aW50byAvdXNyL3NoYXJlL3hzZXNzaW9uczsKICAgIGRvaW5zICIke2Rlc2t0b3B9IiApCn0KbWFr ZV93cmFwcGVyICgpIAp7IAogICAgbG9jYWwgd3JhcHBlcj0kMSBiaW49JDIgY2hkaXI9JDMgbGli ZGlyPSQ0IHBhdGg9JDU7CiAgICBsb2NhbCB0bXB3cmFwcGVyPSQoZW1rdGVtcCk7CiAgICBjYXQg PiAiJHt0bXB3cmFwcGVyfSIgIDw8RU9GCiMhL2Jpbi9zaApjZCAiJHtjaGRpcjotLn0iCmlmIFsg LW4gIiR7bGliZGlyfSIgXSA7IHRoZW4KCWlmIFsgIlwke0xEX0xJQlJBUllfUEFUSCtzZXR9IiA9 ICJzZXQiIF0gOyB0aGVuCgkJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iXCR7TERfTElCUkFSWV9Q QVRIfToke2xpYmRpcn0iCgllbHNlCgkJZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJHtsaWJkaXJ9 IgoJZmkKZmkKZXhlYyAke2Jpbn0gIlwkQCIKRU9GCgogICAgY2htb2QgZ28rcnggIiR7dG1wd3Jh cHBlcn0iOwogICAgaWYgW1sgLW4gJHtwYXRofSBdXTsgdGhlbgogICAgICAgICggZXhlaW50byAi JHtwYXRofSI7CiAgICAgICAgbmV3ZXhlICIke3RtcHdyYXBwZXJ9IiAiJHt3cmFwcGVyfSIgKSB8 fCBkaWU7CiAgICBlbHNlCiAgICAgICAgbmV3YmluICIke3RtcHdyYXBwZXJ9IiAiJHt3cmFwcGVy fSIgfHwgZGllOwogICAgZmkKfQptdWx0aWxpYl9lbnYgKCkgCnsgCiAgICBsb2NhbCBDVEFSR0VU PSR7MTotJHtDVEFSR0VUfX07CiAgICBjYXNlICR7Q1RBUkdFVH0gaW4gCiAgICAgICAgeDg2XzY0 KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU194ODY9JHtDRkxBR1NfeDg2LS1tMzJ9OwogICAg ICAgICAgICBleHBvcnQgQ0hPU1RfeDg2PSR7Q1RBUkdFVC94ODZfNjQvaTY4Nn07CiAgICAgICAg ICAgIGV4cG9ydCBDVEFSR0VUX3g4Nj0ke0NIT1NUX3g4Nn07CiAgICAgICAgICAgIGV4cG9ydCBD REVGSU5FX3g4Nj0iX19pMzg2X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3g4Nj0ibGli IjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19hbWQ2ND0ke0NGTEFHU19hbWQ2NC0tbTY0fTsK ICAgICAgICAgICAgZXhwb3J0IENIT1NUX2FtZDY0PSR7Q1RBUkdFVH07CiAgICAgICAgICAgIGV4 cG9ydCBDVEFSR0VUX2FtZDY0PSR7Q0hPU1RfYW1kNjR9OwogICAgICAgICAgICBleHBvcnQgQ0RF RklORV9hbWQ2ND0iX194ODZfNjRfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfYW1kNjQ9 ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9ImFtZDY0IHg4NiI7CiAg ICAgICAgICAgIGV4cG9ydCBERUZBVUxUX0FCST0iYW1kNjQiCiAgICAgICAgOzsKICAgICAgICBt aXBzNjQqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX28zMj0ke0NGTEFHU19vMzItLW1hYmk9 MzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfbzMyPSR7Q1RBUkdFVC9taXBzNjQvbWlwc307 CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX28zMj0ke0NIT1NUX28zMn07CiAgICAgICAgICAg IGV4cG9ydCBDREVGSU5FX28zMj0iX01JUFNfU0lNID09IF9BQklPMzIiOwogICAgICAgICAgICBl eHBvcnQgTElCRElSX28zMj0ibGliIjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19uMzI9JHtD RkxBR1NfbjMyLS1tYWJpPW4zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9uMzI9JHtDVEFS R0VUfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfbjMyPSR7Q0hPU1RfbjMyfTsKICAgICAg ICAgICAgZXhwb3J0IENERUZJTkVfbjMyPSJfTUlQU19TSU0gPT0gX0FCSU4zMiI7CiAgICAgICAg ICAgIGV4cG9ydCBMSUJESVJfbjMyPSJsaWIzMiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1Nf bjY0PSR7Q0ZMQUdTX242NC0tbWFiaT02NH07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9uNjQ9 JHtDVEFSR0VUfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfbjY0PSR7Q0hPU1RfbjY0fTsK ICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfbjY0PSJfTUlQU19TSU0gPT0gX0FCSTY0IjsKICAg ICAgICAgICAgZXhwb3J0IExJQkRJUl9uNjQ9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1V TFRJTElCX0FCSVM9Im42NCBuMzIgbzMyIjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJ PSJuMzIiCiAgICAgICAgOzsKICAgICAgICBwb3dlcnBjNjQqKQogICAgICAgICAgICBleHBvcnQg Q0ZMQUdTX3BwYz0ke0NGTEFHU19wcGMtLW0zMn07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9w cGM9JHtDVEFSR0VUL3Bvd2VycGM2NC9wb3dlcnBjfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJH RVRfcHBjPSR7Q0hPU1RfcHBjfTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfcHBjPSIhX19w b3dlcnBjNjRfXyI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfcHBjPSJsaWIiOwogICAgICAg ICAgICBleHBvcnQgQ0ZMQUdTX3BwYzY0PSR7Q0ZMQUdTX3BwYzY0LS1tNjR9OwogICAgICAgICAg ICBleHBvcnQgQ0hPU1RfcHBjNjQ9JHtDVEFSR0VUfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJH RVRfcHBjNjQ9JHtDSE9TVF9wcGM2NH07CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX3BwYzY0 PSJfX3Bvd2VycGM2NF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9wcGM2ND0ibGliNjQi OwogICAgICAgICAgICBleHBvcnQgTVVMVElMSUJfQUJJUz0icHBjNjQgcHBjIjsKICAgICAgICAg ICAgZXhwb3J0IERFRkFVTFRfQUJJPSJwcGM2NCIKICAgICAgICA7OwogICAgICAgIHMzOTB4KikK ICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zMzkwPSR7Q0ZMQUdTX3MzOTAtLW0zMX07CiAgICAg ICAgICAgIGV4cG9ydCBDSE9TVF9zMzkwPSR7Q1RBUkdFVC9zMzkweC9zMzkwfTsKICAgICAgICAg ICAgZXhwb3J0IENUQVJHRVRfczM5MD0ke0NIT1NUX3MzOTB9OwogICAgICAgICAgICBleHBvcnQg Q0RFRklORV9zMzkwPSIhX19zMzkweF9fIjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9zMzkw PSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3MzOTB4PSR7Q0ZMQUdTX3MzOTB4LS1t NjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfczM5MHg9JHtDVEFSR0VUfTsKICAgICAgICAg ICAgZXhwb3J0IENUQVJHRVRfczM5MHg9JHtDSE9TVF9zMzkweH07CiAgICAgICAgICAgIGV4cG9y dCBDREVGSU5FX3MzOTB4PSJfX3MzOTB4X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3Mz OTB4PSJsaWI2NCI7CiAgICAgICAgICAgIGV4cG9ydCBNVUxUSUxJQl9BQklTPSJzMzkweCBzMzkw IjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJzMzkweCIKICAgICAgICA7OwogICAg ICAgIHNwYXJjKikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zcGFyYzMyPSR7Q0ZMQUdTX3Nw YXJjMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmMzMj0ke0NUQVJHRVQvc3BhcmM2 NC9zcGFyY307CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX3NwYXJjMzI9JHtDSE9TVF9zcGFy YzMyfTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfc3BhcmMzMj0iIV9fYXJjaDY0X18iOwog ICAgICAgICAgICBleHBvcnQgTElCRElSX3NwYXJjMzI9ImxpYiI7CiAgICAgICAgICAgIGV4cG9y dCBDRkxBR1Nfc3BhcmM2ND0ke0NGTEFHU19zcGFyYzY0LS1tNjR9OwogICAgICAgICAgICBleHBv cnQgQ0hPU1Rfc3BhcmM2ND0ke0NUQVJHRVR9OwogICAgICAgICAgICBleHBvcnQgQ1RBUkdFVF9z cGFyYzY0PSR7Q0hPU1Rfc3BhcmM2NH07CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX3NwYXJj NjQ9Il9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3NwYXJjNjQ9ImxpYjY0 IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9IiR7TVVMVElMSUJfQUJJUy1zcGFy YzY0IHNwYXJjMzJ9IjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSIke0RFRkFVTFRf QUJJLXNwYXJjNjR9IgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZXhwb3J0IE1V TFRJTElCX0FCSVM9ImRlZmF1bHQiOwogICAgICAgICAgICBleHBvcnQgREVGQVVMVF9BQkk9ImRl ZmF1bHQiCiAgICAgICAgOzsKICAgIGVzYWMKfQptdWx0aWxpYl90b29sY2hhaW5fc2V0dXAgKCkg CnsgCiAgICBsb2NhbCB2IHZ2OwogICAgZXhwb3J0IEFCST0kMTsKICAgIGlmIFtbICR7QUJJfSAh PSAke0RFRkFVTFRfQUJJfSBdXTsgdGhlbgogICAgICAgIGlmIFtbICR7REVGQVVMVF9BQklfU0FW RUR9ICE9ICJ0cnVlIiBdXTsgdGhlbgogICAgICAgICAgICBmb3IgdiBpbiBDSE9TVCBDQlVJTEQg QVMgQ0MgQ1hYIExEOwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgZXhwb3J0IF9fYWJp X3NhdmVkXyR7dn09IiR7IXZ9IjsKICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgZXhwb3J0 IERFRkFVTFRfQUJJX1NBVkVEPSJ0cnVlIjsKICAgICAgICBmaTsKICAgICAgICBleHBvcnQgQ0hP U1Q9JChnZXRfYWJpX0NIT1NUICR7REVGQVVMVF9BQkl9KTsKICAgICAgICBleHBvcnQgQVM9IiQo dGMtZ2V0QVMpICQoZ2V0X2FiaV9BU0ZMQUdTKSI7CiAgICAgICAgZXhwb3J0IENDPSIkKHRjLWdl dENDKSAkKGdldF9hYmlfQ0ZMQUdTKSI7CiAgICAgICAgZXhwb3J0IENYWD0iJCh0Yy1nZXRDWFgp ICQoZ2V0X2FiaV9DRkxBR1MpIjsKICAgICAgICBleHBvcnQgTEQ9IiQodGMtZ2V0TEQpICQoZ2V0 X2FiaV9MREZMQUdTKSI7CiAgICAgICAgZXhwb3J0IENIT1NUPSQoZ2V0X2FiaV9DSE9TVCAkMSk7 CiAgICAgICAgZXhwb3J0IENCVUlMRD0kKGdldF9hYmlfQ0hPU1QgJDEpOwogICAgZWxzZQogICAg ICAgIGlmIFtbICR7REVGQVVMVF9BQklfU0FWRUR9ID09ICJ0cnVlIiBdXTsgdGhlbgogICAgICAg ICAgICBmb3IgdiBpbiBDSE9TVCBDQlVJTEQgQVMgQ0MgQ1hYIExEOwogICAgICAgICAgICBkbwog ICAgICAgICAgICAgICAgdnY9Il9fYWJpX3NhdmVkXyR7dn0iOwogICAgICAgICAgICAgICAgZXhw b3J0ICR7dn09JHshdnZ9OwogICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAgZmkKfQpu ZXdpY29uICgpIAp7IAogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvcGl4bWFwczsKICAgIG5ld2lu cyAiJEAiICkKfQpuZXdtZW51ICgpIAp7IAogICAgKCBpbnNpbnRvIC91c3Ivc2hhcmUvYXBwbGlj YXRpb25zOwogICAgbmV3aW5zICIkQCIgKQp9Cm51bWJlcl9hYmlzICgpIAp7IAogICAgZ2V0X2lu c3RhbGxfYWJpcyB8IHdjIC13Cn0KcGtnX25vZmV0Y2ggKCkgCnsgCiAgICBfZWFwaTBfcGtnX25v ZmV0Y2ggIiRAIgp9CnBrZ19zZXR1cCAoKSAKeyAKICAgIGlmIFsgLXogIiQodHlwZSAtUCBnY2og Mj4vZGV2L251bGwpIiBdOyB0aGVuCiAgICAgICAgZWVycm9yICdJdCBzZWVtcyB0aGF0IGdjaiBp cyBub3QgaW4gJHtQQVRIfS4nOwogICAgICAgIGVlcnJvciAiUmUtZW1lcmdlIHN5cy1kZXZlbC9n Y2Mgd2l0aCBcImdjalwiIGVuYWJsZWQuIjsKICAgICAgICBkaWUgImdjaiBub3QgZm91bmQuIjsK ICAgIGZpCn0KcHJlcF9tbF9pbmNsdWRlcyAoKSAKeyAKICAgIGlmIFtbICQobnVtYmVyX2FiaXMp IC1ndCAxIF1dOyB0aGVuCiAgICAgICAgbG9jYWwgZGlyOwogICAgICAgIGxvY2FsIGRpcnM7CiAg ICAgICAgbG9jYWwgYmFzZTsKICAgICAgICBpZiBbWyAkIyAtZXEgMCBdXTsgdGhlbgogICAgICAg ICAgICBkaXJzPS91c3IvaW5jbHVkZTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGRpcnM9IiRA IjsKICAgICAgICBmaTsKICAgICAgICBmb3IgZGlyIGluICR7ZGlyc307CiAgICAgICAgZG8KICAg ICAgICAgICAgYmFzZT0ke1R9L2dlbnRvby1tdWx0aWxpYi8ke2Rpcn0vZ2VudG9vLW11bHRpbGli OwogICAgICAgICAgICBta2RpciAtcCAiJHtiYXNlfSI7CiAgICAgICAgICAgIFtbIC1kICR7YmFz ZX0vJHtBQkl9IF1dICYmIHJtIC1yZiAiJHtiYXNlfS8ke0FCSX0iOwogICAgICAgICAgICBtdiAi JHtEfS8ke2Rpcn0iICIke2Jhc2V9LyR7QUJJfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBpZiBp c19maW5hbF9hYmk7IHRoZW4KICAgICAgICAgICAgYmFzZT0ke1R9L2dlbnRvby1tdWx0aWxpYjsK ICAgICAgICAgICAgcHVzaGQgIiR7YmFzZX0iOwogICAgICAgICAgICBmaW5kIC4gfCB0YXIgLWMg LVQgLSAtZiAtIHwgdGFyIC14IC0tbm8tc2FtZS1vd25lciAtZiAtIC1DICIke0R9IjsKICAgICAg ICAgICAgcG9wZDsKICAgICAgICAgICAgc2V0IC0tOwogICAgICAgICAgICBmb3IgZGlyIGluICR7 ZGlyc307CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBzZXQgLS0gIiRAIiAiJHtkaXJ9 IjsKICAgICAgICAgICAgICAgIGxvY2FsIGFiaTsKICAgICAgICAgICAgICAgIGZvciBhYmkgaW4g JChnZXRfaW5zdGFsbF9hYmlzKTsKICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAg ICAgc2V0IC0tICIkQCIgIiQoZ2V0X2FiaV9DREVGSU5FICR7YWJpfSk6JHtkaXJ9L2dlbnRvby1t dWx0aWxpYi8ke2FiaX0iOwogICAgICAgICAgICAgICAgZG9uZTsKICAgICAgICAgICAgICAgIGNy ZWF0ZV9tbF9pbmNsdWRlcyAiJEAiOwogICAgICAgICAgICBkb25lOwogICAgICAgIGZpOwogICAg ZmkKfQpwcmVzZXJ2ZV9vbGRfbGliICgpIAp7IAogICAgaWYgW1sgJHtFQlVJTERfUEhBU0V9ICE9 ICJwcmVpbnN0IiBdXTsgdGhlbgogICAgICAgIGVlcnJvciAicHJlc2VydmVfb2xkX2xpYigpIG11 c3QgYmUgY2FsbGVkIGZyb20gcGtnX3ByZWluc3QoKSBvbmx5IjsKICAgICAgICBkaWUgIkludmFs aWQgcHJlc2VydmVfb2xkX2xpYigpIHVzYWdlIjsKICAgIGZpOwogICAgW1sgLXogJDEgXV0gJiYg ZGllICJVc2FnZTogcHJlc2VydmVfb2xkX2xpYiA8bGlicmFyeSB0byBwcmVzZXJ2ZT4gW21vcmUg bGlicmFyaWVzIHRvIHByZXNlcnZlXSI7CiAgICBoYXMgcHJlc2VydmUtbGlicyAke0ZFQVRVUkVT fSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIGxpYiBkaXI7CiAgICBmb3IgbGliIGluICIkQCI7CiAg ICBkbwogICAgICAgIFtbIC1lICR7Uk9PVH0vJHtsaWJ9IF1dIHx8IGNvbnRpbnVlOwogICAgICAg IGRpcj0ke2xpYiUvKn07CiAgICAgICAgZG9kaXIgJHtkaXJ9IHx8IGRpZSAiZG9kaXIgJHtkaXJ9 IGZhaWxlZCI7CiAgICAgICAgY3AgIiR7Uk9PVH0iLyR7bGlifSAiJHtEfSIvJHtsaWJ9IHx8IGRp ZSAiY3AgJHtsaWJ9IGZhaWxlZCI7CiAgICAgICAgdG91Y2ggIiR7RH0iLyR7bGlifTsKICAgIGRv bmUKfQpwcmVzZXJ2ZV9vbGRfbGliX25vdGlmeSAoKSAKeyAKICAgIGlmIFtbICR7RUJVSUxEX1BI QVNFfSAhPSAicG9zdGluc3QiIF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJwcmVzZXJ2ZV9vbGRf bGliX25vdGlmeSgpIG11c3QgYmUgY2FsbGVkIGZyb20gcGtnX3Bvc3RpbnN0KCkgb25seSI7CiAg ICAgICAgZGllICJJbnZhbGlkIHByZXNlcnZlX29sZF9saWJfbm90aWZ5KCkgdXNhZ2UiOwogICAg Zmk7CiAgICBoYXMgcHJlc2VydmUtbGlicyAke0ZFQVRVUkVTfSAmJiByZXR1cm4gMDsKICAgIGxv Y2FsIGxpYiBub3RpY2U9MDsKICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgW1sg LWUgJHtST09UfS8ke2xpYn0gXV0gfHwgY29udGludWU7CiAgICAgICAgaWYgW1sgJHtub3RpY2V9 IC1lcSAwIF1dOyB0aGVuCiAgICAgICAgICAgIG5vdGljZT0xOwogICAgICAgICAgICBld2FybiAi T2xkIHZlcnNpb25zIG9mIGluc3RhbGxlZCBsaWJyYXJpZXMgd2VyZSBkZXRlY3RlZCBvbiB5b3Vy IHN5c3RlbS4iOwogICAgICAgICAgICBld2FybiAiSW4gb3JkZXIgdG8gYXZvaWQgYnJlYWtpbmcg cGFja2FnZXMgdGhhdCBkZXBlbmQgb24gdGhlc2Ugb2xkIGxpYnMsIjsKICAgICAgICAgICAgZXdh cm4gInRoZSBsaWJyYXJpZXMgYXJlIG5vdCBiZWluZyByZW1vdmVkLiAgWW91IG5lZWQgdG8gcnVu IHJldmRlcC1yZWJ1aWxkIjsKICAgICAgICAgICAgZXdhcm4gImluIG9yZGVyIHRvIHJlbW92ZSB0 aGVzZSBvbGQgZGVwZW5kZW5jaWVzLiAgSWYgeW91IGRvIG5vdCBoYXZlIHRoaXMiOwogICAgICAg ICAgICBld2FybiAiaGVscGVyIHByb2dyYW0sIHNpbXBseSBlbWVyZ2UgdGhlICdnZW50b29sa2l0 JyBwYWNrYWdlLiI7CiAgICAgICAgICAgIGV3YXJuOwogICAgICAgIGZpOwogICAgICAgIGV3YXJu ICIgICMgcmV2ZGVwLXJlYnVpbGQgLS1saWJyYXJ5ICR7bGliIyMqL30iOwogICAgZG9uZTsKICAg IGlmIFtbICR7bm90aWNlfSAtZXEgMSBdXTsgdGhlbgogICAgICAgIGV3YXJuOwogICAgICAgIGV3 YXJuICJPbmNlIHlvdSd2ZSBmaW5pc2hlZCBydW5uaW5nIHJldmRlcC1yZWJ1aWxkLCBpdCBzaG91 bGQgYmUgc2FmZSB0byI7CiAgICAgICAgZXdhcm4gImRlbGV0ZSB0aGUgb2xkIGxpYnJhcmllcy4g IEhlcmUgaXMgYSBjb3B5ICYgcGFzdGUgZm9yIHRoZSBsYXp5OiI7CiAgICAgICAgZm9yIGxpYiBp biAiJEAiOwogICAgICAgIGRvCiAgICAgICAgICAgIGV3YXJuICIgICMgcm0gJyR7bGlifSciOwog ICAgICAgIGRvbmU7CiAgICBmaQp9CnJlbW92ZV9mbGFnICgpIAp7IAogICAgbG9jYWwgcmVtb3Zl PSIkezF9IjsKICAgIHNoaWZ0OwogICAgd2hpbGUgW1sgLW4gIiR7MX0iIF1dOyBkbwogICAgICAg IFtbICIkezF9IiAhPSAiJHtyZW1vdmV9IiBdXSAmJiBlY2hvIC1uICIkezF9ICI7CiAgICAgICAg c2hpZnQ7CiAgICBkb25lCn0Kc2VxICgpIAp7IAogICAgbG9jYWwgcD0kKHR5cGUgLVAgc2VxKTsK ICAgIGNhc2UgJCMgaW4gCiAgICAgICAgMSkKICAgICAgICAgICAgbWluPTEgbWF4PSQxIHN0ZXA9 MQogICAgICAgIDs7CiAgICAgICAgMikKICAgICAgICAgICAgbWluPSQxIG1heD0kMiBzdGVwPTEK ICAgICAgICA7OwogICAgICAgIDMpCiAgICAgICAgICAgIG1pbj0kMSBtYXg9JDMgc3RlcD0kMgog ICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZGllICJzZXEgY2FsbGVkIHdpdGggd3Jv bmcgbnVtYmVyIG9mIGFyZ3VtZW50cyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGlmIFtbIC16 ICR7cH0gXV07IHRoZW4KICAgICAgICBsb2NhbCByZXBzOwogICAgICAgIGlmIFtbICR7c3RlcH0g IT0gMCBdXTsgdGhlbgogICAgICAgICAgICByZXBzPSQoKCAoJG1heC0kbWluKSAvICRzdGVwICsx ICkpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgcmVwcz0wOwogICAgICAgIGZpOwogICAgICAg IGpvdCAkcmVwcyAkbWluICRtYXggJHN0ZXA7CiAgICBlbHNlCiAgICAgICAgIiR7cH0iICRtaW4g JHN0ZXAgJG1heDsKICAgIGZpCn0Kc3JjX2NvbXBpbGUgKCkgCnsgCiAgICB1bnNldCBDTEFTU1BB VEg7CiAgICB1bnNldCBKQVZBX0hPTUU7CiAgICBtYWtlIC1mIE1ha2VmaWxlLkdlbmVyaWMgfHwg ZGllICJDb21waWxhdGlvbiBmYWlsZWQuIgp9CnNyY19pbnN0YWxsICgpIAp7IAogICAgZG9iaW4g cGRmdGs7CiAgICBuZXdtYW4gLi4vcGRmdGsuMS50eHQgcGRmdGsuMTsKICAgIGRvaHRtbCAuLi9w ZGZ0ay4xLmh0bWwKfQpzcmNfdGVzdCAoKSAKeyAKICAgIF9lYXBpMF9zcmNfdGVzdCAiJEAiCn0K c3JjX3VucGFjayAoKSAKeyAKICAgIHVucGFjayAke0F9OwogICAgbXYgJHtTfS9NYWtlZmlsZS5H ZW5lcmljICR7VH0vTWFrZWZpbGUuR2VuZXJpYy5vcmlnOwogICAgc2VkICdzOi1PMjpcJChDRkxB R1MpOmcnIDwgJHtUfS9NYWtlZmlsZS5HZW5lcmljLm9yaWcgPiAke1N9L01ha2VmaWxlLkdlbmVy aWM7CiAgICBlcGF0Y2ggIiR7V09SS0RJUn0vcGRmdGtfMS4xMi0xMS5kaWZmIjsKICAgIHVzZSBu b2RybSAmJiBlcGF0Y2ggIiR7RklMRVNESVJ9Ii8ke1B9LXVzZXItcHcucGF0Y2gKfQpzdHJpcC1s aW5ndWFzICgpIAp7IAogICAgbG9jYWwgbHMgbmV3bHMgbm9sczsKICAgIGlmIFtbICQxID09ICIt aSIgXV0gfHwgW1sgJDEgPT0gIi11IiBdXTsgdGhlbgogICAgICAgIGxvY2FsIG9wPSQxOwogICAg ICAgIHNoaWZ0OwogICAgICAgIGxzPSQoZmluZCAiJDEiIC1uYW1lICcqLnBvJyAtZXhlYyBiYXNl bmFtZSB7fSAucG8gJzsnKTsKICAgICAgICBzaGlmdDsKICAgICAgICBsb2NhbCBkIGY7CiAgICAg ICAgZm9yIGQgaW4gIiRAIjsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAke29wfSA9PSAi LXUiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBuZXdscz0ke2xzfTsKICAgICAgICAgICAgZWxz ZQogICAgICAgICAgICAgICAgbmV3bHM9IiI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBm b3IgZiBpbiAkKGZpbmQgIiRkIiAtbmFtZSAnKi5wbycgLWV4ZWMgYmFzZW5hbWUge30gLnBvICc7 Jyk7CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiBbWyAke29wfSA9PSAiLWkiIF1d OyB0aGVuCiAgICAgICAgICAgICAgICAgICAgaGFzcSAke2Z9ICR7bHN9ICYmIG5ld2xzPSIke25l d2xzfSAke2Z9IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBoYXNx ICR7Zn0gJHtsc30gfHwgbmV3bHM9IiR7bmV3bHN9ICR7Zn0iOwogICAgICAgICAgICAgICAgZmk7 CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGxzPSR7bmV3bHN9OwogICAgICAgIGRvbmU7 CiAgICBlbHNlCiAgICAgICAgbHM9IiRAIjsKICAgIGZpOwogICAgbm9scz0iIjsKICAgIG5ld2xz PSIiOwogICAgZm9yIGYgaW4gJHtMSU5HVUFTfTsKICAgIGRvCiAgICAgICAgaWYgaGFzcSAke2Z9 ICR7bHN9OyB0aGVuCiAgICAgICAgICAgIG5ld2xzPSIke25ld2xzfSAke2Z9IjsKICAgICAgICBl bHNlCiAgICAgICAgICAgIG5vbHM9IiR7bm9sc30gJHtmfSI7CiAgICAgICAgZmk7CiAgICBkb25l OwogICAgW1sgLW4gJHtub2xzfSBdXSAmJiBld2FybiAiU29ycnksIGJ1dCAke1BOfSBkb2VzIG5v dCBzdXBwb3J0IHRoZSBMSU5HVUFTOiIgJHtub2xzfTsKICAgIGV4cG9ydCBMSU5HVUFTPSR7bmV3 bHM6MX0KfQp0Yy1hcmNoICgpIAp7IAogICAgdGMtbmluamFfbWFnaWNfdG9fYXJjaCBwb3J0YWdl ICIkQCIKfQp0Yy1hcmNoLWtlcm5lbCAoKSAKeyAKICAgIHRjLW5pbmphX21hZ2ljX3RvX2FyY2gg a2VybiAiJEAiCn0KdGMtZW5kaWFuICgpIAp7IAogICAgbG9jYWwgaG9zdD0kMTsKICAgIFtbIC16 ICR7aG9zdH0gXV0gJiYgaG9zdD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIGhvc3Q9JHtob3N0 JSUtKn07CiAgICBjYXNlICR7aG9zdH0gaW4gCiAgICAgICAgYWxwaGEqKQogICAgICAgICAgICBl Y2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgYXJtKmIqKQogICAgICAgICAgICBlY2hvIGJpZwog ICAgICAgIDs7CiAgICAgICAgYXJtKikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7 OwogICAgICAgIGNyaXMqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAg ICAgaHBwYSopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBpPzg2KikK ICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGlhNjQqKQogICAgICAg ICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgbTY4KikKICAgICAgICAgICAgZWNo byBiaWcKICAgICAgICA7OwogICAgICAgIG1pcHMqbCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxl CiAgICAgICAgOzsKICAgICAgICBtaXBzKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7 OwogICAgICAgIHBvd2VycGMqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAg ICAgczM5MCopCiAgICAgICAgICAgIGVjaG8gYmlnCiAgICAgICAgOzsKICAgICAgICBzaCpiKikK ICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHNoKikKICAgICAgICAgICAg ZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAgICAgICAgICAgZWNobyBi aWcKICAgICAgICA7OwogICAgICAgIHg4Nl82NCopCiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAg ICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBlY2hvIHd0ZgogICAgICAgIDs7CiAgICBl c2FjCn0KdGMtZXhwb3J0ICgpIAp7IAogICAgbG9jYWwgdmFyOwogICAgZm9yIHZhciBpbiAiJEAi OwogICAgZG8KICAgICAgICBbWyAkKHR5cGUgLXQgdGMtZ2V0JHt2YXJ9KSAhPSAiZnVuY3Rpb24i IF1dICYmIGRpZSAidGMtZXhwb3J0OiBpbnZhbGlkIGV4cG9ydCB2YXJpYWJsZSAnJHt2YXJ9JyI7 CiAgICAgICAgZXZhbCB0Yy1nZXQke3Zhcn0gPiAvZGV2L251bGw7CiAgICBkb25lCn0KdGMtZ2V0 QVIgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEFSIGFyICIkQCIKfQp0Yy1nZXRBUyAoKSAKeyAKICAg IHRjLWdldFBST0cgQVMgYXMgIiRAIgp9CnRjLWdldEJVSUxEX0NDICgpIAp7IAogICAgbG9jYWwg djsKICAgIGZvciB2IGluIENDX0ZPUl9CVUlMRCBCVUlMRF9DQyBIT1NUQ0M7CiAgICBkbwogICAg ICAgIGlmIFtbIC1uICR7IXZ9IF1dOyB0aGVuCiAgICAgICAgICAgIGV4cG9ydCBCVUlMRF9DQz0k eyF2fTsKICAgICAgICAgICAgZWNobyAiJHshdn0iOwogICAgICAgICAgICByZXR1cm4gMDsKICAg ICAgICBmaTsKICAgIGRvbmU7CiAgICBsb2NhbCBzZWFyY2g9OwogICAgaWYgW1sgLW4gJHtDQlVJ TER9IF1dOyB0aGVuCiAgICAgICAgc2VhcmNoPSQodHlwZSAtcCAke0NCVUlMRH0tZ2NjKTsKICAg ICAgICBzZWFyY2g9JHtzZWFyY2gjIyovfTsKICAgIGZpOwogICAgc2VhcmNoPSR7c2VhcmNoOi1n Y2N9OwogICAgZXhwb3J0IEJVSUxEX0NDPSR7c2VhcmNofTsKICAgIGVjaG8gIiR7c2VhcmNofSIK fQp0Yy1nZXRDQyAoKSAKeyAKICAgIHRjLWdldFBST0cgQ0MgZ2NjICIkQCIKfQp0Yy1nZXRDUFAg KCkgCnsgCiAgICB0Yy1nZXRQUk9HIENQUCBjcHAgIiRAIgp9CnRjLWdldENYWCAoKSAKeyAKICAg IHRjLWdldFBST0cgQ1hYIGcrKyAiJEAiCn0KdGMtZ2V0Rjc3ICgpIAp7IAogICAgdGMtZ2V0UFJP RyBGNzcgZjc3ICIkQCIKfQp0Yy1nZXRGQyAoKSAKeyAKICAgIHRjLWdldFBST0cgRkMgZ2ZvcnRy YW4gIiRAIgp9CnRjLWdldEdDSiAoKSAKeyAKICAgIHRjLWdldFBST0cgR0NKIGdjaiAiJEAiCn0K dGMtZ2V0TEQgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIExEIGxkICIkQCIKfQp0Yy1nZXROTSAoKSAK eyAKICAgIHRjLWdldFBST0cgTk0gbm0gIiRAIgp9CnRjLWdldE9CSkNPUFkgKCkgCnsgCiAgICB0 Yy1nZXRQUk9HIE9CSkNPUFkgb2JqY29weSAiJEAiCn0KdGMtZ2V0UFJPRyAoKSAKeyAKICAgIGxv Y2FsIHZhcj0kMTsKICAgIGxvY2FsIHByb2c9JDI7CiAgICBpZiBbWyAtbiAkeyF2YXJ9IF1dOyB0 aGVuCiAgICAgICAgZWNobyAiJHshdmFyfSI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAg IGxvY2FsIHNlYXJjaD07CiAgICBbWyAtbiAkMyBdXSAmJiBzZWFyY2g9JCh0eXBlIC1wICIkMy0k e3Byb2d9Iik7CiAgICBbWyAteiAke3NlYXJjaH0gJiYgLW4gJHtDSE9TVH0gXV0gJiYgc2VhcmNo PSQodHlwZSAtcCAiJHtDSE9TVH0tJHtwcm9nfSIpOwogICAgW1sgLW4gJHtzZWFyY2h9IF1dICYm IHByb2c9JHtzZWFyY2gjIyovfTsKICAgIGV4cG9ydCAke3Zhcn09JHtwcm9nfTsKICAgIGVjaG8g IiR7IXZhcn0iCn0KdGMtZ2V0UkFOTElCICgpIAp7IAogICAgdGMtZ2V0UFJPRyBSQU5MSUIgcmFu bGliICIkQCIKfQp0Yy1nZXRTVFJJUCAoKSAKeyAKICAgIHRjLWdldFBST0cgU1RSSVAgc3RyaXAg IiRAIgp9CnRjLWlzLWNyb3NzLWNvbXBpbGVyICgpIAp7IAogICAgcmV0dXJuICQoW1sgJHtDQlVJ TEQ6LSR7Q0hPU1R9fSAhPSAke0NIT1NUfSBdXSkKfQp0Yy1pcy1zb2Z0ZmxvYXQgKCkgCnsgCiAg ICBjYXNlICR7Q1RBUkdFVH0gaW4gCiAgICAgICAgYmZpbiogfCBoODMwMCopCiAgICAgICAgICAg IGVjaG8gIm9ubHkiCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBbWyAke0NUQVJH RVQvL18vLX0gPT0gKi1zb2Z0ZmxvYXQtKiBdXSAmJiBlY2hvICJ5ZXMiIHx8IGVjaG8gIm5vIgog ICAgICAgIDs7CiAgICBlc2FjCn0KdGMtaXMtc3RhdGljLW9ubHkgKCkgCnsgCiAgICBsb2NhbCBo b3N0PSR7Q1RBUkdFVDotJHtDSE9TVH19OwogICAgcmV0dXJuICQoW1sgJHtob3N0fSA9PSAqLW1p bnQqIF1dKQp9CnRjLW5pbmphX21hZ2ljX3RvX2FyY2ggKCkgCnsgCiAgICBmdW5jdGlvbiBuaW5q ICgpIAogICAgeyAKICAgICAgICBbWyAke3R5cGV9ID09ICJrZXJuIiBdXSAmJiBlY2hvICQxIHx8 IGVjaG8gJDIKICAgIH07CiAgICBsb2NhbCB0eXBlPSQxOwogICAgbG9jYWwgaG9zdD0kMjsKICAg IFtbIC16ICR7aG9zdH0gXV0gJiYgaG9zdD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIGNhc2Ug JHtob3N0fSBpbiAKICAgICAgICBhbHBoYSopCiAgICAgICAgICAgIGVjaG8gYWxwaGEKICAgICAg ICA7OwogICAgICAgIGFybSopCiAgICAgICAgICAgIGVjaG8gYXJtCiAgICAgICAgOzsKICAgICAg ICBhdnIqKQogICAgICAgICAgICBuaW5qIGF2cjMyIGF2cgogICAgICAgIDs7CiAgICAgICAgYmZp biopCiAgICAgICAgICAgIG5pbmogYmxhY2tmaW4gYmZpbgogICAgICAgIDs7CiAgICAgICAgY3Jp cyopCiAgICAgICAgICAgIGVjaG8gY3JpcwogICAgICAgIDs7CiAgICAgICAgaHBwYSopCiAgICAg ICAgICAgIG5pbmogcGFyaXNjIGhwcGEKICAgICAgICA7OwogICAgICAgIGk/ODYqKQogICAgICAg ICAgICBpZiBbWyAke3R5cGV9ID09ICJrZXJuIiBdXSAmJiBbWyAkKEtWX3RvX2ludCAke0tWfSkg LWx0ICQoS1ZfdG9faW50IDIuNi4yNCkgfHwgJHtob3N0fSA9PSAqZnJlZWJzZCogXV07IHRoZW4K ICAgICAgICAgICAgICAgIGVjaG8gaTM4NjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg ICAgZWNobyB4ODY7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICBpYTY0KikKICAg ICAgICAgICAgZWNobyBpYTY0CiAgICAgICAgOzsKICAgICAgICBtNjgqKQogICAgICAgICAgICBl Y2hvIG02OGsKICAgICAgICA7OwogICAgICAgIG1pcHMqKQogICAgICAgICAgICBlY2hvIG1pcHMK ICAgICAgICA7OwogICAgICAgIG5pb3MyKikKICAgICAgICAgICAgZWNobyBuaW9zMgogICAgICAg IDs7CiAgICAgICAgbmlvcyopCiAgICAgICAgICAgIGVjaG8gbmlvcwogICAgICAgIDs7CiAgICAg ICAgcG93ZXJwYyopCiAgICAgICAgICAgIGlmIFtbICQoS1ZfdG9faW50ICR7S1Z9KSAtZ2UgJChL Vl90b19pbnQgMi42LjE2KSBdXSAmJiBbWyAke3R5cGV9ID09ICJrZXJuIiBdXTsgdGhlbgogICAg ICAgICAgICAgICAgZWNobyBwb3dlcnBjOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICBpZiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWVxICQoS1ZfdG9faW50IDIuNi4xNSkgXV0gJiYg W1sgJHt0eXBlfSA9PSAia2VybiIgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBpZiBbWyAk e2hvc3R9ID09IHBvd2VycGM2NCogXV0gfHwgW1sgJHtQUk9GSUxFX0FSQ0h9ID09ICJwcGM2NCIg XV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwb3dlcnBjOwogICAgICAgICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwcGM7CiAgICAgICAg ICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg aWYgW1sgJHtob3N0fSA9PSBwb3dlcnBjNjQqIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAg ICAgIGVjaG8gcHBjNjQ7CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg ICAgICAgICBpZiBbWyAke1BST0ZJTEVfQVJDSH0gPT0gInBwYzY0IiBdXTsgdGhlbgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmluaiBwcGM2NCBwcGM7CiAgICAgICAgICAgICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcHBjOwogICAgICAgICAg ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAg IGZpOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgczM5MCopCiAgICAgICAgICAg IGVjaG8gczM5MAogICAgICAgIDs7CiAgICAgICAgc2g2NCopCiAgICAgICAgICAgIG5pbmogc2g2 NCBzaAogICAgICAgIDs7CiAgICAgICAgc2gqKQogICAgICAgICAgICBlY2hvIHNoCiAgICAgICAg OzsKICAgICAgICBzcGFyYzY0KikKICAgICAgICAgICAgbmluaiBzcGFyYzY0IHNwYXJjCiAgICAg ICAgOzsKICAgICAgICBzcGFyYyopCiAgICAgICAgICAgIFtbICR7UFJPRklMRV9BUkNIfSA9PSAi c3BhcmM2NCIgXV0gJiYgbmluaiBzcGFyYzY0IHNwYXJjIHx8IGVjaG8gc3BhcmMKICAgICAgICA7 OwogICAgICAgIHZheCopCiAgICAgICAgICAgIGVjaG8gdmF4CiAgICAgICAgOzsKICAgICAgICB4 ODZfNjQqKQogICAgICAgICAgICBpZiBbWyAke3R5cGV9ID09ICJrZXJuIiBdXSAmJiBbWyAkKEtW X3RvX2ludCAke0tWfSkgLWdlICQoS1ZfdG9faW50IDIuNi4yNCkgXV07IHRoZW4KICAgICAgICAg ICAgICAgIGVjaG8geDg2OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBuaW5qIHg4 Nl82NCBhbWQ2NDsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAg ICAgIGVjaG8gdW5rbm93bgogICAgICAgIDs7CiAgICBlc2FjCn0KdHJlZWNvcHkgKCkgCnsgCiAg ICBkZXN0PSR7ISN9OwogICAgZmlsZXNfY291bnQ9JCM7CiAgICB3aGlsZSAoKCAkIyA+IDEgKSk7 IGRvCiAgICAgICAgZGlyc3RydWN0PSQoZGlybmFtZSAiJDEiKTsKICAgICAgICBta2RpciAtcCAi JHtkZXN0fS8ke2RpcnN0cnVjdH0iOwogICAgICAgIGNwIC1wUFIgIiQxIiAiJHtkZXN0fS8ke2Rp cnN0cnVjdH0iOwogICAgICAgIHNoaWZ0OwogICAgZG9uZQp9CnVucGFja19tYWtlc2VsZiAoKSAK eyAKICAgIGxvY2FsIHNyY19pbnB1dD0kezE6LSR7QX19OwogICAgbG9jYWwgc3JjPSQoZmluZF91 bnBhY2thYmxlX2ZpbGUgIiR7c3JjX2lucHV0fSIpOwogICAgbG9jYWwgc2tpcD0kMjsKICAgIGxv Y2FsIGV4ZT0kMzsKICAgIFtbIC16ICR7c3JjfSBdXSAmJiBkaWUgIkNvdWxkIG5vdCBsb2NhdGUg c291cmNlIGZvciAnJHtzcmNfaW5wdXR9JyI7CiAgICBsb2NhbCBzaHJ0c3JjPSQoYmFzZW5hbWUg IiR7c3JjfSIpOwogICAgZWNobyAiPj4+IFVucGFja2luZyAke3NocnRzcmN9IHRvICR7UFdEfSI7 CiAgICBpZiBbWyAteiAke3NraXB9IF1dOyB0aGVuCiAgICAgICAgbG9jYWwgdmVyPSQoZ3JlcCAt YSAnIy4qTWFrZXNlbGYnICIke3NyY30iIHwgYXdrICd7cHJpbnQgJE5GfScpOwogICAgICAgIGxv Y2FsIHNraXA9MDsKICAgICAgICBleGU9dGFpbDsKICAgICAgICBjYXNlICR7dmVyfSBpbiAKICAg ICAgICAgICAgMS41LiogfCAxLjYuMC1udikKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1h IF5za2lwPSAiJHtzcmN9IiB8IGN1dCAtZD0gLWYyKQogICAgICAgICAgICA7OwogICAgICAgICAg ICAyLjAgfCAyLjAuMSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF4nCSd0YWlsICIk e3NyY30iIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGN1dCAtYjItKQogICAgICAgICAgICA7OwogICAg ICAgICAgICAyLjEuMSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5vZmZzZXQ9ICIk e3NyY30iIHwgYXdrICd7cHJpbnQgJDJ9JyB8IGN1dCAtYjItKTsKICAgICAgICAgICAgICAgIGxl dCBza2lwPSJza2lwICsgMSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjIpCiAgICAg ICAgICAgICAgICBza2lwPSQoZ3JlcCAtYSBeb2Zmc2V0PSAiJHtzcmN9IiB8IGF3ayAne3ByaW50 ICQzfScgfCBoZWFkIC1uIDEpOwogICAgICAgICAgICAgICAgbGV0IHNraXA9InNraXAgKyAxIgog ICAgICAgICAgICA7OwogICAgICAgICAgICAyLjEuMykKICAgICAgICAgICAgICAgIHNraXA9YGdy ZXAgLWEgXm9mZnNldD0gIiR7c3JjfSIgfCBhd2sgJ3twcmludCAkM30nYDsKICAgICAgICAgICAg ICAgIGxldCBza2lwPSJza2lwICsgMSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjQg fCAyLjEuNSkKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIG9mZnNldD0uKmhlYWQuKndj ICIke3NyY30iIHwgYXdrICd7cHJpbnQgJDN9JyB8IGhlYWQgLW4gMSk7CiAgICAgICAgICAgICAg ICBza2lwPSQoaGVhZCAtbiAke3NraXB9ICIke3NyY30iIHwgd2MgLWMpOwogICAgICAgICAgICAg ICAgZXhlPSJkZCIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAg IGVlcnJvciAiSSdtIHNvcnJ5LCBidXQgSSB3YXMgdW5hYmxlIHRvIHN1cHBvcnQgdGhlIE1ha2Vz ZWxmIGZpbGUuIjsKICAgICAgICAgICAgICAgIGVlcnJvciAiVGhlIHZlcnNpb24gSSBkZXRlY3Rl ZCB3YXMgJyR7dmVyfScuIjsKICAgICAgICAgICAgICAgIGVlcnJvciAiUGxlYXNlIGZpbGUgYSBi dWcgYWJvdXQgdGhlIGZpbGUgJHtzaHJ0c3JjfSBhdCI7CiAgICAgICAgICAgICAgICBlZXJyb3Ig Imh0dHA6Ly9idWdzLmdlbnRvby5vcmcvIHNvIHRoYXQgc3VwcG9ydCBjYW4gYmUgYWRkZWQuIjsK ICAgICAgICAgICAgICAgIGRpZSAibWFrZXNlbGYgdmVyc2lvbiAnJHt2ZXJ9JyBub3Qgc3VwcG9y dGVkIgogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICAgICAgZGVidWctcHJpbnQgIkRl dGVjdGVkIE1ha2VzZWxmIHZlcnNpb24gJHt2ZXJ9IC4uLiB1c2luZyAke3NraXB9IGFzIG9mZnNl dCI7CiAgICBmaTsKICAgIGNhc2UgJHtleGV9IGluIAogICAgICAgIHRhaWwpCiAgICAgICAgICAg IGV4ZT0idGFpbCAtbiArJHtza2lwfSAnJHtzcmN9JyIKICAgICAgICA7OwogICAgICAgIGRkKQog ICAgICAgICAgICBleGU9ImRkIGlicz0ke3NraXB9IHNraXA9MSBvYnM9MTAyNCBjb252PXN5bmMg aWY9JyR7c3JjfSciCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBkaWUgIm1ha2Vz ZWxmIGNhbnQgaGFuZGxlIGV4ZSAnJHtleGV9JyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGxv Y2FsIHRtcGZpbGU9JChlbWt0ZW1wKTsKICAgIGV2YWwgJHtleGV9IDI+IC9kZXYvbnVsbCB8IGhl YWQgLWMgNTEyID4gIiR7dG1wZmlsZX0iOwogICAgbG9jYWwgZmlsZXR5cGU9JChmaWxlIC1iICIk e3RtcGZpbGV9Iik7CiAgICBjYXNlICR7ZmlsZXR5cGV9IGluIAogICAgICAgICp0YXJcIGFyY2hp dmUqKQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0K ICAgICAgICA7OwogICAgICAgIGJ6aXAyKikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCBiemlw MiAtZGMgfCB0YXIgLS1uby1zYW1lLW93bmVyIC14ZiAtCiAgICAgICAgOzsKICAgICAgICBnemlw KikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCB0YXIgLS1uby1zYW1lLW93bmVyIC14emYgLQog ICAgICAgIDs7CiAgICAgICAgY29tcHJlc3MqKQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IGd1 bnppcCB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAgICAgICA7OwogICAgICAgICopCiAg ICAgICAgICAgIGVlcnJvciAiVW5rbm93biBmaWxldHlwZSBcIiR7ZmlsZXR5cGV9XCIgPyI7CiAg ICAgICAgICAgIGZhbHNlCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBfcGlwZXN0YXR1cz0iJHtQ SVBFU1RBVFVTWypdfSI7CiAgICBbWyAiJHtfcGlwZXN0YXR1cy8vIC99IiAtZXEgMCBdXSB8fCBk aWUgImZhaWx1cmUgdW5wYWNraW5nICgke2ZpbGV0eXBlfSkgbWFrZXNlbGYgJHtzaHJ0c3JjfSAo JyR7dmVyfScgKyR7c2tpcH0pIgp9CnVucGFja19wZHYgKCkgCnsgCiAgICBsb2NhbCBzcmM9JChm aW5kX3VucGFja2FibGVfZmlsZSAiJDEiKTsKICAgIGxvY2FsIHNpemVvZmZfdD0kMjsKICAgIFtb IC16ICR7c3JjfSBdXSAmJiBkaWUgIkNvdWxkIG5vdCBsb2NhdGUgc291cmNlIGZvciAnJDEnIjsK ICAgIFtbIC16ICR7c2l6ZW9mZl90fSBdXSAmJiBkaWUgIk5vIGlkZWEgd2hhdCBvZmZfdCBzaXpl IHdhcyB1c2VkIGZvciB0aGlzIHBkdiA6KCI7CiAgICBsb2NhbCBzaHJ0c3JjPSQoYmFzZW5hbWUg IiR7c3JjfSIpOwogICAgZWNobyAiPj4+IFVucGFja2luZyAke3NocnRzcmN9IHRvICR7UFdEfSI7 CiAgICBsb2NhbCBtZXRhc2tpcD0kKHRhaWwgLWMgJHtzaXplb2ZmX3R9ICIke3NyY30iIHwgaGV4 ZHVtcCAtZSBcIiVpXCIpOwogICAgbG9jYWwgdGFpbHNraXA9JCh0YWlsIC1jICQoKCR7c2l6ZW9m Zl90fSoyKSkgIiR7c3JjfSIgfCBoZWFkIC1jICR7c2l6ZW9mZl90fSB8IGhleGR1bXAgLWUgXCIl aVwiKTsKICAgIGxvY2FsIG1ldGFmaWxlPSQoZW1rdGVtcCk7CiAgICB0YWlsIC1jICskKCgke21l dGFza2lwfSsxKSkgIiR7c3JjfSIgPiAiJHttZXRhZmlsZX0iOwogICAgbG9jYWwgZGF0YWZpbGU9 JCh0YWlsIC1jICskKCgke21ldGFza2lwfSsxKSkgIiR7c3JjfSIgfCBzdHJpbmdzIHwgaGVhZCAt biAxKTsKICAgIGRhdGFmaWxlPSQoYmFzZW5hbWUgIiR7ZGF0YWZpbGV9Iik7CiAgICBsb2NhbCB0 bXBmaWxlPSQoZW1rdGVtcCk7CiAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9 IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgNTEyID4gJHt0bXBmaWxlfTsKICAgIGxvY2FsIGlzY29t cHJlc3NlZD0kKGZpbGUgLWIgIiR7dG1wZmlsZX0iKTsKICAgIGlmIFtbICR7aXNjb21wcmVzc2Vk OjA6OH0gPT0gImNvbXByZXNzIiBdXTsgdGhlbgogICAgICAgIGlzY29tcHJlc3NlZD0xOwogICAg ICAgIG12ICR7dG1wZmlsZX17LC5afTsKICAgICAgICBndW56aXAgJHt0bXBmaWxlfTsKICAgIGVs c2UKICAgICAgICBpc2NvbXByZXNzZWQ9MDsKICAgIGZpOwogICAgbG9jYWwgaXN0YXI9JChmaWxl IC1iICIke3RtcGZpbGV9Iik7CiAgICBpZiBbWyAke2lzdGFyOjA6OX0gPT0gIlBPU0lYIHRhciIg XV07IHRoZW4KICAgICAgICBpc3Rhcj0xOwogICAgZWxzZQogICAgICAgIGlzdGFyPTA7CiAgICBm aTsKICAgIGlmIFsgJHtpc2NvbXByZXNzZWR9IC1lcSAxIF07IHRoZW4KICAgICAgICBpZiBbICR7 aXN0YXJ9IC1lcSAxIF07IHRoZW4KICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0r MSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNr aXB9KSkgfCB0YXIgLXh6ZiAtOwogICAgICAgIGVsc2UKICAgICAgICAgICAgdGFpbCAtYyArJCgo JHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNr aXB9LSR7dGFpbHNraXB9KSkgfCBnemlwIC1kYyA+ICR7ZGF0YWZpbGV9OwogICAgICAgIGZpOwog ICAgZWxzZQogICAgICAgIGlmIFsgJHtpc3Rhcn0gLWVxIDEgXTsgdGhlbgogICAgICAgICAgICB0 YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMg JCgoJHttZXRhc2tpcH0tJHt0YWlsc2tpcH0pKSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC07 CiAgICAgICAgZWxzZQogICAgICAgICAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtz cmN9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgJCgoJHttZXRhc2tpcH0tJHt0YWlsc2tpcH0pKSA+ ICR7ZGF0YWZpbGV9OwogICAgICAgIGZpOwogICAgZmk7CiAgICB0cnVlCn0KdmFsaWRhdGVfZGVz a3RvcF9lbnRyaWVzICgpIAp7IAogICAgaWYgW1sgLXggL3Vzci9iaW4vZGVza3RvcC1maWxlLXZh bGlkYXRlIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIkNoZWNraW5nIGRlc2t0b3AgZW50cnkgdmFs aWRpdHkiOwogICAgICAgIGxvY2FsIGRpcmVjdG9yaWVzPSIiOwogICAgICAgIGZvciBkIGluIC91 c3Ivc2hhcmUvYXBwbGljYXRpb25zICRAOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbIC1kICR7 RH0ke2R9IF1dICYmIGRpcmVjdG9yaWVzPSIke2RpcmVjdG9yaWVzfSAke0R9JHtkfSI7CiAgICAg ICAgZG9uZTsKICAgICAgICBpZiBbWyAtbiAke2RpcmVjdG9yaWVzfSBdXTsgdGhlbgogICAgICAg ICAgICBmb3IgRklMRSBpbiAkKGZpbmQgJHtkaXJlY3Rvcmllc30gLW5hbWUgIipcLmRlc2t0b3Ai IAkJCQkJCQktbm90IC1wYXRoICcqLmhpZGRlbionIHwgc29ydCAtdSAyPi9kZXYvbnVsbCk7CiAg ICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBsb2NhbCB0ZW1wPSQoZGVza3RvcC1maWxlLXZh bGlkYXRlICR7RklMRX0gfCBncmVwIC12ICJ3YXJuaW5nOiIgfCAJCQkJCQkJCXNlZCAtZSAic3xl cnJvcjogfHwiIC1lICJzfCR7RklMRX06fC0tfGciICk7CiAgICAgICAgICAgICAgICBbWyAtbiAk dGVtcCBdXSAmJiBlbG9nICR7dGVtcC8tLS8ke0ZJTEUvJHtEfS99On07CiAgICAgICAgICAgIGRv bmU7CiAgICAgICAgZmk7CiAgICAgICAgZWNobyAiIjsKICAgIGVsc2UKICAgICAgICBlaW5mbyAi UGFzc2luZyBkZXNrdG9wIGVudHJ5IHZhbGlkaXR5IGNoZWNrLiBJbnN0YWxsIGRldi11dGlsL2Rl c2t0b3AtZmlsZS11dGlscywgaWYgeW91IHdhbnQgdG8gaGVscCB0byBpbXByb3ZlIEdlbnRvby4i OwogICAgZmkKfQpkZWNsYXJlIC14IEFCST0iYW1kNjQiCmRlY2xhcmUgLXggQUxTQV9DQVJEUz0i IgpkZWNsYXJlIC14IEFMU0FfUENNX1BMVUdJTlM9ImFkcGNtIGFsYXcgYXN5bSBjb3B5IGRtaXgg ZHNoYXJlIGRzbm9vcCBlbXB0eSBleHRwbHVnIGZpbGUgaG9va3MgaWVjOTU4IGlvcGx1ZyBsYWRz cGEgbGZsb2F0IGxpbmVhciBtZXRlciBtbWFwX2VtdWwgbXVsYXcgbXVsdGkgbnVsbCBwbHVnIHJh dGUgcm91dGUgc2hhcmUgc2htIHNvZnR2b2wiCmRlY2xhcmUgLXggQVBBQ0hFMl9NT0RVTEVTPSJh Y3Rpb25zIGFsaWFzIGF1dGhfYmFzaWMgYXV0aG5fYWxpYXMgYXV0aG5fYW5vbiBhdXRobl9kYm0g YXV0aG5fZGVmYXVsdCBhdXRobl9maWxlIGF1dGh6X2RibSBhdXRoel9kZWZhdWx0IGF1dGh6X2dy b3VwZmlsZSBhdXRoel9ob3N0IGF1dGh6X293bmVyIGF1dGh6X3VzZXIgYXV0b2luZGV4IGNhY2hl IGRhdiBkYXZfZnMgZGF2X2xvY2sgZGVmbGF0ZSBkaXIgZGlza19jYWNoZSBlbnYgZXhwaXJlcyBl eHRfZmlsdGVyIGZpbGVfY2FjaGUgZmlsdGVyIGhlYWRlcnMgaW5jbHVkZSBpbmZvIGxvZ19jb25m aWcgbG9naW8gbWVtX2NhY2hlIG1pbWUgbWltZV9tYWdpYyBuZWdvdGlhdGlvbiByZXdyaXRlIHNl dGVudmlmIHNwZWxpbmcgc3RhdHVzIHVuaXF1ZV9pZCB1c2VyZGlyIHVzZXJ0cmFjayB2aG9zdF9h bGlhcyIKZGVjbGFyZSAteCBBUkNIPSJhbWQ2NCIKZGVjbGFyZSAteCBBU0ZMQUdTX3g4Nj0iLS0z MiIKZGVjbGFyZSAteCBDQlVJTEQ9Ing4Nl82NC1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ0RF RklORV9hbWQ2ND0iX194ODZfNjRfXyIKZGVjbGFyZSAteCBDREVGSU5FX2RlZmF1bHQ9Il9fdW5p eF9fIgpkZWNsYXJlIC14IENERUZJTkVfeDg2PSJfX2kzODZfXyIKZGVjbGFyZSAteCBDRkxBR1M9 Ii1tYXJjaD1ub2NvbmEgLU8yIC1waXBlIgpkZWNsYXJlIC14IENGTEFHU19kZWZhdWx0PSIiCmRl Y2xhcmUgLXggQ0ZMQUdTX3g4Nj0iLW0zMiIKZGVjbGFyZSAteCBDSE9TVD0ieDg2XzY0LXBjLWxp bnV4LWdudSIKZGVjbGFyZSAteCBDSE9TVF9hbWQ2ND0ieDg2XzY0LXBjLWxpbnV4LWdudSIKZGVj bGFyZSAteCBDSE9TVF9kZWZhdWx0PSJ4ODZfNjQtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENI T1NUX3g4Nj0iaTY4Ni1wYy1saW51eC1nbnUiCmRlY2xhcmUgLXggQ09MT1JGR0JHPSIxNTswIgpk ZWNsYXJlIC14IENST1NTQ09NUElMRV9PUFRTPSIiCmRlY2xhcmUgLXggQ1RBUkdFVF9kZWZhdWx0 PSJ4ODZfNjQtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENWU19SU0g9InNzaCIKZGVjbGFyZSAt eCBDWFhGTEFHUz0iLW1hcmNoPW5vY29uYSAtTzIgLXBpcGUiCmRlY2xhcmUgLXggREVGQVVMVF9B Qkk9ImFtZDY0IgpkZWNsYXJlIC14IERFU1RUUkVFPSIvdXNyIgpkZWNsYXJlIC14IERJUk9QVElP TlM9Ii1tMDc1NSIKZGVjbGFyZSAteCBFQVBJPSIwIgpkZWNsYXJlIC14IEVMSUJDPSJnbGliYyIK ZGVjbGFyZSAteCBFWEVPUFRJT05TPSItbTA3NTUiCmRlY2xhcmUgLXggRkVBVFVSRVM9ImRpc3Rs b2NrcyBmaXhwYWNrYWdlcyBwYXJhbGxlbC1mZXRjaCBwcm90ZWN0LW93bmVkIHNhbmRib3ggc2Zw ZXJtcyBzdHJpY3QgdW5tZXJnZS1vcnBoYW5zIHVzZXJmZXRjaCIKZGVjbGFyZSAteCBHQ0NfU1BF Q1M9IiIKZGVjbGFyZSAteCBHREtfVVNFX1hGVD0iMSIKZGVjbGFyZSAteCBJTkhFUklURUQ9InRv b2xjaGFpbi1mdW5jcyBtdWx0aWxpYiBwb3J0YWJpbGl0eSBldXRpbHMiCmRlY2xhcmUgLXggSU5Q VVRfREVWSUNFUz0ia2V5Ym9hcmQgbW91c2Ugc3luYXB0aWNzIGV2ZGV2IgpkZWNsYXJlIC14IElO U0RFU1RUUkVFPSIiCmRlY2xhcmUgLXggSU5TT1BUSU9OUz0iLW0wNjQ0IgpkZWNsYXJlIC14IEpB VkFDPSIvZXRjL2phdmEtY29uZmlnLTIvY3VycmVudC1zeXN0ZW0tdm0vYmluL2phdmFjIgpkZWNs YXJlIC14IEpBVkFfSE9NRT0iL2V0Yy9qYXZhLWNvbmZpZy0yL2N1cnJlbnQtc3lzdGVtLXZtIgpk ZWNsYXJlIC14IEpES19IT01FPSIvZXRjL2phdmEtY29uZmlnLTIvY3VycmVudC1zeXN0ZW0tdm0i CmRlY2xhcmUgLXggS0VSTkVMPSJsaW51eCIKZGVjbGFyZSAteCBLRVJORUxfQUJJPSJhbWQ2NCIK ZGVjbGFyZSAteCBLRVlXT1JEUz0iYW1kNjQgcHBjIHBwYzY0IHg4NiIKZGVjbGFyZSAteCBLVj0i Mi42LjI3LWdlbnRvby1yOCIKZGVjbGFyZSAteCBMQ0RfREVWSUNFUz0iIgpkZWNsYXJlIC14IExE RkxBR1M9Ii1XbCwtTzEiCmRlY2xhcmUgLXggTERGTEFHU19kZWZhdWx0PSIiCmRlY2xhcmUgLXgg TERGTEFHU194ODY9Ii1tIGVsZl9pMzg2IgpkZWNsYXJlIC14IExJQkRJUl9hbWQ2ND0ibGliNjQi CmRlY2xhcmUgLXggTElCRElSX2FtZDY0X2Zic2Q9ImxpYjY0IgpkZWNsYXJlIC14IExJQkRJUl9k ZWZhdWx0PSJsaWIiCmRlY2xhcmUgLXggTElCRElSX3BwYz0ibGliMzIiCmRlY2xhcmUgLXggTElC RElSX3BwYzY0PSJsaWI2NCIKZGVjbGFyZSAteCBMSUJESVJfc3BhcmMzMj0ibGliMzIiCmRlY2xh cmUgLXggTElCRElSX3NwYXJjNjQ9ImxpYjY0IgpkZWNsYXJlIC14IExJQkRJUl94ODY9ImxpYjMy IgpkZWNsYXJlIC14IExJQkRJUl94ODZfZmJzZD0ibGliMzIiCmRlY2xhcmUgLXggTElCT1BUSU9O Uz0iLW0wNjQ0IgpkZWNsYXJlIC14IExJQ0VOU0U9IkdQTC0yIgpkZWNsYXJlIC14IExJTkdVQVM9 ImVuIGRlIgpkZWNsYXJlIC14IE1VTFRJTElCX0FCSVM9ImFtZDY0IHg4NiIKZGVjbGFyZSAteCBN VUxUSUxJQl9TVFJJQ1RfREVOWT0iNjQtYml0LipzaGFyZWQgb2JqZWN0IgpkZWNsYXJlIC14IE1V TFRJTElCX1NUUklDVF9ESVJTPSIvbGliMzIgL2xpYiAvdXNyL2xpYjMyIC91c3IvbGliIC91c3Iv a2RlLyovbGliMzIgL3Vzci9rZGUvKi9saWIgL3Vzci9xdC8qL2xpYjMyIC91c3IvcXQvKi9saWIg L3Vzci9YMTFSNi9saWIzMiAvdXNyL1gxMVI2L2xpYiIKZGVjbGFyZSAteCBNVUxUSUxJQl9TVFJJ Q1RfRVhFTVBUPSIocGVybDV8Z2NjfGdjYy1saWJ8YmludXRpbHN8ZWNsaXBzZS0zfGRlYnVnfHBv cnRhZ2UpIgpkZWNsYXJlIC14IE5FVEJFQU5TPSJhcGlzdXBwb3J0IGNuZCBncm9vdnkgZ3NmIGhh cm5lc3MgaWRlIGlkZW50aXR5IGoyZWUgamF2YSBtb2JpbGl0eSBuYiBwaHAgcHJvZmlsZXIgc29h IHZpc3VhbHdlYiB3ZWJjb21tb24gd2Vic3ZjY29tbW9uIHhtbCIKZGVjbGFyZSAteCBPUEVOR0xf UFJPRklMRT0ibnZpZGlhIgpkZWNsYXJlIC14IFBLR19DT05GSUdfUEFUSD0iL3Vzci9xdC8zL2xp YjY0L3BrZ2NvbmZpZyIKZGVjbGFyZSAteCBQT1JUQUdFX0NPTVBSRVNTX0VYQ0xVREVfU1VGRklY RVM9ImNzcyBnaWYgaHRtW2xdPyBqcFtlXT9nIGpzIHBkZiBwbmciCmRlY2xhcmUgLXggUFJPRklM RV9PTkxZX1ZBUklBQkxFUz0iQVJDSCBFTElCQyBLRVJORUwgVVNFUkxBTkQiCmRlY2xhcmUgLXgg UFJPUEVSVElFUz0iIgpkZWNsYXJlIC14IFBST1ZJREU9IiIKZGVjbGFyZSAteCBRTUFLRVNQRUM9 ImxpbnV4LWcrKyIKZGVjbGFyZSAteCBRVERJUj0iL3Vzci9xdC8zIgpkZWNsYXJlIC14IFJERVBF TkQ9Ij49c3lzLWRldmVsL2djYy0zLjMgIgpkZWNsYXJlIC14IFJFU1RSSUNUPSIiCmRlY2xhcmUg LXggUz0iL3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEyL3dvcmsvcGRmdGstMS4x Mi9wZGZ0ayIKZGVjbGFyZSAteCBTQU5EQk9YX0RFTlk9Ii9ldGMvbGQuc28ucHJlbG9hZCIKZGVj bGFyZSAteCBTQU5EQk9YX1BSRURJQ1Q9Ii9kZXYvY29uc29sZTovZGV2L3JhbmRvbTovcHJvYy9z ZWxmL21hcHM6L3Vzci9saWIvcHl0aG9uMi4wLzovdXNyL2xpYi9weXRob24yLjEvOi91c3IvbGli L3B5dGhvbjIuMi86L3Vzci9saWIvcHl0aG9uMi4zLzovdXNyL2xpYi9weXRob24yLjQvOi91c3Iv bGliL3B5dGhvbjIuNS86L3Vzci9saWIvcHl0aG9uMy4wLzovdmFyL2RiL2FsaWFzZXMuZGI6L3Zh ci9kYi9ldGhlcnMuZGI6L3Zhci9kYi9ncm91cC5kYjovdmFyL2RiL2hvc3RzLmRiOi92YXIvZGIv bmV0Z3JvdXAuZGI6L3Zhci9kYi9uZXRtYXNrcy5kYjovdmFyL2RiL25ldHdvcmtzLmRiOi92YXIv ZGIvcGFzc3dkLmRiOi92YXIvZGIvcHJvdG9jb2xzLmRiOi92YXIvZGIvcnBjLmRiOi92YXIvZGIv c2VydmljZXMuZGI6L3Zhci90bXAvcG9ydGFnZS9hcHAtdGV4dC9wZGZ0ay0xLjEyL2hvbWVkaXIv LiIKZGVjbGFyZSAteCBTQU5EQk9YX1JFQUQ9Ii86L2Rldi9zaG06L2Rldi9zdGRpbjovdmFyL3Rt cCIKZGVjbGFyZSAteCBTQU5EQk9YX1dSSVRFPSI6L2Rldi9jb25zb2xlOi9kZXYvZmQ6L2Rldi9u dWxsOi9kZXYvcHRzLzovZGV2L3B0eTovZGV2L3NobTovZGV2L3NobS9uZ3B0Oi9kZXYvc3RkZXJy Oi9kZXYvc3Rkb3V0Oi9kZXYvdHRzOi9kZXYvdHR5Oi9kZXYvdmMvOi9kZXYvemVybzovcHJvYy9z ZWxmL2ZkOi90bXA6L3RtcC86L3Vzci9saWIvY2Y6L3Vzci9saWIvY29uZnRlc3Q6L3Vzci9saWIz Mi9jZjovdXNyL2xpYjMyL2NvbmZ0ZXN0Oi91c3IvbGliNjQvY2Y6L3Vzci9saWI2NC9jb25mdGVz dDovdXNyL3RtcC9jZjovdXNyL3RtcC9jb25mdGVzdDovdmFyL2xvZy9zY3JvbGxrZWVwZXIubG9n Oi92YXIvdG1wOi92YXIvdG1wLzovdmFyL3RtcC9wb3J0YWdlL2FwcC10ZXh0L3BkZnRrLTEuMTIv aG9tZWRpci8uYmFzaF9oaXN0b3J5Oi92YXIvdG1wL3BvcnRhZ2UvYXBwLXRleHQvcGRmdGstMS4x Mi9ob21lZGlyLy5nY29uZmQvbG9jayIKZGVjbGFyZSAteCBTTE9UPSIwIgpkZWNsYXJlIC14IFNU QUdFMV9VU0U9Im11bHRpbGliIG5wdGwgbnB0bG9ubHkgdW5pY29kZSIKZGVjbGFyZSAteCBTWU1M SU5LX0xJQj0ieWVzIgpkZWNsYXJlIC14IFRFUk1JTkZPPSIvdXNyL3NoYXJlL3Rlcm1pbmZvIgpk ZWNsYXJlIC14IFVTRT0iYW1kNjQgZWxpYmNfZ2xpYmMga2VybmVsX2xpbnV4IG11bHRpbGliIHVz ZXJsYW5kX0dOVSIKZGVjbGFyZSAteCBVU0VSTEFORD0iR05VIgpkZWNsYXJlIC14IFZJREVPX0NB UkRTPSIiCmRlY2xhcmUgLXggV0lORE9XSUQ9IjIwOTcxNTIzIgpkZWNsYXJlIC14IF9FX0RPQ0RF U1RUUkVFXz0iIgpkZWNsYXJlIC14IF9FX0VYRURFU1RUUkVFXz0iIgo= --001485f724f0703166046b14cf78--