<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>121699</bug_id>
          
          <creation_ts>2013-09-20 11:14:38 -0700</creation_ts>
          <short_desc>Make extract-localizable-strings available to WebCore clients</short_desc>
          <delta_ts>2013-09-20 13:12:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>931472</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-09-20 11:14:38 -0700</bug_when>
    <thetext>Make extract-localizable-strings available to WebCore clients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931479</commentid>
    <comment_count>1</comment_count>
      <attachid>212199</attachid>
    <who name="">mitz</who>
    <bug_when>2013-09-20 11:25:08 -0700</bug_when>
    <thetext>Created attachment 212199
Move the script into the WebCore source tree and install it in WebCore.framework/PrivateHeaders/Scripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931543</commentid>
    <comment_count>2</comment_count>
      <attachid>212199</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-20 13:12:07 -0700</bug_when>
    <thetext>Comment on attachment 212199
Move the script into the WebCore source tree and install it in WebCore.framework/PrivateHeaders/Scripts

Clearing flags on attachment: 212199

Committed r156191: &lt;http://trac.webkit.org/changeset/156191&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>931544</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-20 13:12:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212199</attachid>
            <date>2013-09-20 11:25:08 -0700</date>
            <delta_ts>2013-09-20 13:12:07 -0700</delta_ts>
            <desc>Move the script into the WebCore source tree and install it in WebCore.framework/PrivateHeaders/Scripts</desc>
            <filename>bug-121699-20130920112510.patch</filename>
            <type>text/plain</type>
            <size>43333</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjE4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA5LTIwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBleHRyYWN0LWxvY2FsaXph
YmxlLXN0cmluZ3MgYXZhaWxhYmxlIHRvIFdlYkNvcmUgY2xpZW50cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxNjk5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IEFkZGVkIGEgU2NyaXB0cyBncm91cCB3aXRoIGEgcmVmZXJlbmNlIHRvCisg
ICAgICAgIGV4dHJhY3QtbG9jYWxpemFibGUtc3RyaW5ncy5wbC4gQWRkZWQgYSBDb3B5IFNjcmlw
dHMgYnVpbGQgcGhhc2UgdG8gdGhlIFdlYkNvcmUgdGFyZ2V0IHRoYXQKKyAgICAgICAgY29waWVz
IHRoZSBzY3JpcHQgaW50byBQcml2YXRlSGVhZGVycy9TY3JpcHRzIGluIHRoZSBmcmFtZXdvcmsu
CisgICAgICAgICogZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzLnBsOiBDb3BpZWQgZnJvbSBU
b29scy9TY3JpcHRzL2V4dHJhY3QtbG9jYWxpemFibGUtc3RyaW5ncy4KKwogMjAxMy0wOS0xOSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
Q2xlYW4gdXAgdGhlIFNraXAqIGZ1bmN0aW9ucyBpbiB0aGUgR09iamVjdCBET00gYmluZGluZ3Mg
Y29kZSBnZW5lcmF0b3IKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2V4dHJhY3QtbG9jYWxpemFibGUt
c3RyaW5ncy5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9leHRyYWN0LWxvY2FsaXph
YmxlLXN0cmluZ3MucGwJKHJldmlzaW9uIDE1NjE2OCkJKGZyb20gVG9vbHMvU2NyaXB0cy9leHRy
YWN0LWxvY2FsaXphYmxlLXN0cmluZ3M6MTU2MTY4KQorKysgU291cmNlL1dlYkNvcmUvZXh0cmFj
dC1sb2NhbGl6YWJsZS1zdHJpbmdzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQ3IEBA
CisjIS91c3IvYmluL3BlcmwgLXcKKworIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDks
IDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAK
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMg
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisjIFRoaXMgc2NyaXB0IGlzIGxpa2UgdGhlIGdlbnN0cmluZ3MgdG9v
bCAobWludXMgbW9zdCBvZiB0aGUgb3B0aW9ucykgd2l0aCB0aGVzZSBkaWZmZXJlbmNlcy4KKyMK
KyMgICAgMSkgSXQgdXNlcyB0aGUgbmFtZXMgVUlfU1RSSU5HIGFuZCBVSV9TVFJJTkdfV0lUSF9L
RVkgZm9yIHRoZSBtYWNyb3MsIHJhdGhlciB0aGFuIHRoZSBtYWNyb3MKKyMgICAgICAgZnJvbSBO
U0J1bmRsZS5oLCBhbmQgZG9lc24ndCBzdXBwb3J0IHRhYmxlcyAoYWx0aG91Z2ggdGhleSB3b3Vs
ZCBiZSBlYXN5IHRvIGFkZCkuCisjICAgIDIpIEl0IHN1cHBvcnRzIFVURi04IGluIGtleSBzdHJp
bmdzIChhbmQgaGVuY2UgdXNlcyAiIiBzdHJpbmdzIHJhdGhlciB0aGFuIEAiIiBzdHJpbmdzOwor
IyAgICAgICBAIiIgc3RyaW5ncyBvbmx5IHJlbGlhYmx5IHN1cHBvcnQgQVNDSUkgc2luY2UgdGhl
eSBhcmUgZGVjb2RlZCBiYXNlZCBvbiB0aGUgc3lzdGVtIGVuY29kaW5nCisjICAgICAgIGF0IHJ1
bnRpbWUsIHNvIGdpdmUgZGlmZmVyZW50IHJlc3VsdHMgb24gVVMgYW5kIEphcGFuZXNlIHN5c3Rl
bXMgZm9yIGV4YW1wbGUpLgorIyAgICAzKSBJdCBsb29rcyBmb3Igc3RyaW5ncyB0aGF0IGFyZSBu
b3QgbWFya2VkIGZvciBsb2NhbGl6YXRpb24sIHVzaW5nIGJvdGggbWFjcm8gbmFtZXMgdGhhdCBh
cmUKKyMgICAgICAga25vd24gdG8gYmUgdXNlZCBmb3IgZGVidWdnaW5nIGluIEludHJpZ3VlIHNv
dXJjZSBjb2RlIGFuZCBhbiBleGNlcHRpb25zIGZpbGUuCisjICAgIDQpIEl0IGZpbmRzIHRoZSBm
aWxlcyB0byB3b3JrIG9uIHJhdGhlciB0aGFuIHRha2luZyB0aGVtIGFzIHBhcmFtZXRlcnMsIGFu
ZCBhbHNvIHVzZXMgYQorIyAgICAgICBoYXJkY29kZWQgbG9jYXRpb24gZm9yIGJvdGggdGhlIG91
dHB1dCBmaWxlIGFuZCB0aGUgZXhjZXB0aW9ucyBmaWxlLgorIyAgICAgICBJdCB3b3VsZCBoYXZl
IGJlZW4gbmljZSB0byB1c2UgdGhlIHByb2plY3QgdG8gZmluZCB0aGUgc291cmNlIGZpbGVzLCBi
dXQgaXQncyB0b28gaGFyZCB0bworIyAgICAgICBsb2NhdGUgc291cmNlIGZpbGVzIGFmdGVyIHBh
cnNpbmcgYSAucGJ4cHJvaiBmaWxlLgorCisjIFRoZSBleGNlcHRpb25zIGZpbGUgaGFzIGEgbGlz
dCBvZiBzdHJpbmdzIGluIHF1b3RlcywgZmlsZW5hbWVzLCBhbmQgZmlsZW5hbWUvc3RyaW5nIHBh
aXJzIHNlcGFyYXRlZCBieSA6LgorCit1c2Ugc3RyaWN0OwordXNlIEdldG9wdDo6TG9uZzsKK25v
IHdhcm5pbmdzICdkZXByZWNhdGVkJzsKKworc3ViIFVuZXNjYXBlSGV4U2VxdWVuY2UoJCk7CisK
K215ICVpc0RlYnVnTWFjcm8gPSAoIEFTU0VSVF9XSVRIX01FU1NBR0UgPT4gMSwgTE9HX0VSUk9S
ID0+IDEsIEVSUk9SID0+IDEsIE5TVVJMX0VSUk9SID0+IDEsIEZBVEFMID0+IDEsIExPRyA9PiAx
LCBMT0dfV0FSTklORyA9PiAxLCBVSV9TVFJJTkdfTE9DQUxJWkVfTEFURVIgPT4gMSwgVUlfU1RS
SU5HX0xPQ0FMSVpFX0xBVEVSX0tFWSA9PiAxLCBMUENUU1RSX1VJX1NUUklOR19MT0NBTElaRV9M
QVRFUiA9PiAxLCBVTkxPQ0FMSVpFRF9TVFJJTkcgPT4gMSwgVU5MT0NBTElaRURfTFBDVFNUUiA9
PiAxLCBkcHJpbnRmID0+IDEsIE5TRXhjZXB0aW9uID0+IDEsIE5TTG9nID0+IDEsIHByaW50ZiA9
PiAxICk7CisKK215ICR2ZXJpZnk7CitteSAkZXhjZXB0aW9uc0ZpbGU7CitteSBAZGlyZWN0b3Jp
ZXNUb1NraXAgPSAoKTsKKworbXkgJW9wdGlvbnMgPSAoCisgICAgJ3ZlcmlmeScgPT4gXCR2ZXJp
ZnksCisgICAgJ2V4Y2VwdGlvbnM9cycgPT4gXCRleGNlcHRpb25zRmlsZSwKKyAgICAnc2tpcD1z
JyA9PiBcQGRpcmVjdG9yaWVzVG9Ta2lwLAorKTsKKworR2V0T3B0aW9ucyglb3B0aW9ucyk7CisK
K0BBUkdWID49IDIgb3IgZGllICJVc2FnZTogZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzIFst
LXZlcmlmeV0gWy0tZXhjZXB0aW9ucyA8ZXhjZXB0aW9ucyBmaWxlPl0gPGZpbGUgdG8gdXBkYXRl
PiBbLS1za2lwIGRpcmVjdG9yeSB8IGRpcmVjdG9yeV0uLi5cbkRpZCB5b3UgbWVhbiB0byBydW4g
dXBkYXRlLXdlYmtpdC1sb2NhbGl6YWJsZS1zdHJpbmdzIGluc3RlYWQ/XG4iOworCistZiAkZXhj
ZXB0aW9uc0ZpbGUgb3IgZGllICJDb3VsZG4ndCBmaW5kIGV4Y2VwdGlvbnMgZmlsZSAkZXhjZXB0
aW9uc0ZpbGVcbiIgdW5sZXNzICFkZWZpbmVkICRleGNlcHRpb25zRmlsZTsKKworbXkgJGZpbGVU
b1VwZGF0ZSA9IHNoaWZ0IEBBUkdWOworLWYgJGZpbGVUb1VwZGF0ZSBvciBkaWUgIkNvdWxkbid0
IGZpbmQgZmlsZSB0byB1cGRhdGUgJGZpbGVUb1VwZGF0ZVxuIjsKKworbXkgJHdhcm5BYm91dFVu
bG9jYWxpemVkU3RyaW5ncyA9IGRlZmluZWQgJGV4Y2VwdGlvbnNGaWxlOworCitteSBAZGlyZWN0
b3JpZXMgPSAoKTsKK2lmIChAQVJHViA8IDEpIHsKKyAgICBwdXNoKEBkaXJlY3RvcmllcywgIi4i
KTsKK30gZWxzZSB7CisgICAgZm9yIG15ICRkaXIgKEBBUkdWKSB7CisgICAgICAgIHB1c2ggQGRp
cmVjdG9yaWVzLCAkZGlyOworICAgIH0KK30KKworbXkgJHNhd0Vycm9yID0gMDsKKworbXkgJGxv
Y2FsaXplZENvdW50ID0gMDsKK215ICRrZXlDb2xsaXNpb25Db3VudCA9IDA7CitteSAkbm90TG9j
YWxpemVkQ291bnQgPSAwOworbXkgJE5TTG9jYWxpemVDb3VudCA9IDA7CisKK215ICVleGNlcHRp
b247CitteSAldXNlZEV4Y2VwdGlvbjsKKworaWYgKGRlZmluZWQgJGV4Y2VwdGlvbnNGaWxlICYm
IG9wZW4gRVhDRVBUSU9OUywgJGV4Y2VwdGlvbnNGaWxlKSB7CisgICAgd2hpbGUgKDxFWENFUFRJ
T05TPikgeworICAgICAgICBjaG9tcDsKKyAgICAgICAgaWYgKC9eIihbXlxcIl18XFwuKSoiJC8g
b3IgL15bLV9cL1x3XHMuXSsuKGh8bXxtbXxjfGNwcCkkLyBvciAvXlstX1wvXHdccy5dKy4oaHxt
fG1tfGN8Y3BwKToiKFteXFwiXXxcXC4pKiIkLykgeworICAgICAgICAgICAgaWYgKCRleGNlcHRp
b257JF99KSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIiRleGNlcHRpb25zRmlsZTokLjogd2Fy
bmluZzogZXhjZXB0aW9uIGZvciAkXyBhcHBlYXJzIHR3aWNlXG4iOworICAgICAgICAgICAgICAg
IHByaW50ICIkZXhjZXB0aW9uc0ZpbGU6JGV4Y2VwdGlvbnskX306IHdhcm5pbmc6IGZpcnN0IGFw
cGVhcmFuY2VcbiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRleGNl
cHRpb257JF99ID0gJC47CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBwcmludCAiJGV4Y2VwdGlvbnNGaWxlOiQuOiB3YXJuaW5nOiBzeW50YXggZXJyb3JcbiI7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UgRVhDRVBUSU9OUzsKK30KKworbXkgJHF1b3Rl
ZERpcmVjdG9yaWVzU3RyaW5nID0gJyInIC4gam9pbignIiAiJywgQGRpcmVjdG9yaWVzKSAuICci
JzsKK2ZvciBteSAkZGlyIChAZGlyZWN0b3JpZXNUb1NraXApIHsKKyAgICAkcXVvdGVkRGlyZWN0
b3JpZXNTdHJpbmcgLj0gJyAtcGF0aCAiJyAuICRkaXIgLiAnIiAtcHJ1bmUgLW8nOworfQorCitt
eSBAZmlsZXMgPSAoIHNwbGl0ICJcbiIsIGBmaW5kICRxdW90ZWREaXJlY3Rvcmllc1N0cmluZyBc
XCggLW5hbWUgIiouaCIgLW8gLW5hbWUgIioubSIgLW8gLW5hbWUgIioubW0iIC1vIC1uYW1lICIq
LmMiIC1vIC1uYW1lICIqLmNwcCIgXFwpYCApOworCitmb3IgbXkgJGZpbGUgKHNvcnQgQGZpbGVz
KSB7CisgICAgbmV4dCBpZiAkZmlsZSA9fiAvXC9cdytMb2NhbGl6YWJsZVN0cmluZ3NcdypcLmgk
LyB8fCAkZmlsZSA9fiAvXC9Mb2NhbGl6ZWRTdHJpbmdzXC5oJC87CisKKyAgICAkZmlsZSA9fiBz
LV4uLy0tOworCisgICAgb3BlbiBTT1VSQ0UsICRmaWxlIG9yIGRpZSAiY2FuJ3Qgb3BlbiAkZmls
ZVxuIjsKKyAgICAKKyAgICBteSAkaW5Db21tZW50ID0gMDsKKyAgICAKKyAgICBteSAkZXhwZWN0
ZWQgPSAiIjsKKyAgICBteSAkbWFjcm9MaW5lOworICAgIG15ICRtYWNybzsKKyAgICBteSAkVUlT
dHJpbmc7CisgICAgbXkgJGtleTsKKyAgICBteSAkY29tbWVudDsKKyAgICAKKyAgICBteSAkc3Ry
aW5nOworICAgIG15ICRzdHJpbmdMaW5lOworICAgIG15ICRuZXN0aW5nTGV2ZWw7CisgICAgCisg
ICAgbXkgJHByZXZpb3VzVG9rZW4gPSAiIjsKKworICAgIHdoaWxlICg8U09VUkNFPikgeworICAg
ICAgICBjaG9tcDsKKyAgICAgICAgCisgICAgICAgICMgSGFuZGxlIGNvbnRpbnVlZCBtdWx0aS1s
aW5lIGNvbW1lbnQuCisgICAgICAgIGlmICgkaW5Db21tZW50KSB7CisgICAgICAgICAgICBuZXh0
IHVubGVzcyBzLS4qXCovLS07CisgICAgICAgICAgICAkaW5Db21tZW50ID0gMDsKKyAgICAgICAg
fQorCisgICAgICAgIG5leHQgdW5sZXNzIGRlZmluZWQgJG5lc3RpbmdMZXZlbCBvciAvKFwifFwv
XCopLzsKKyAgICAKKyAgICAgICAgIyBIYW5kbGUgYWxsIHRoZSB0b2tlbnMgaW4gdGhlIGxpbmUu
CisgICAgICAgIHdoaWxlIChzLV5ccyooWyNcd10rfC9cKnwvL3xbXiNcdy8nIigpXFtcXSxdK3wu
KS0tKSB7CisgICAgICAgICAgICBteSAkdG9rZW4gPSAkMTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgaWYgKCR0b2tlbiBlcSAiXCIiKSB7CisgICAgICAgICAgICAgICAgaWYgKCRleHBlY3Rl
ZCBhbmQgJGV4cGVjdGVkIG5lICJhIHF1b3RlZCBzdHJpbmciKSB7CisgICAgICAgICAgICAgICAg
ICAgIHByaW50ICIkZmlsZTokLjogZm91bmQgYSBxdW90ZWQgc3RyaW5nIGJ1dCBleHBlY3RlZCAk
ZXhwZWN0ZWRcbiI7CisgICAgICAgICAgICAgICAgICAgICRzYXdFcnJvciA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICRleHBlY3RlZCA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAocy1eKChbXlxcJHRva2VuXXxcXC4pKj8pJHRva2VuLS0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFkZWZpbmVkICRzdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRzdHJpbmdMaW5lID0gJC47CisgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaW5nID0g
JDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAkc3RyaW5nIC49ICQxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiRmaWxlOiQuOiBtaXNtYXRjaGVk
IHF1b3Rlc1xuIjsKKyAgICAgICAgICAgICAgICAgICAgJHNhd0Vycm9yID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgJF8gPSAiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
bmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRlZmlu
ZWQgJHN0cmluZykgeworaGFuZGxlU3RyaW5nOgorICAgICAgICAgICAgICAgIGlmICgkZXhwZWN0
ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkZWZpbmVkICRVSVN0cmluZykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogVmFsaWRhdGUgVVRGLTggaGVyZT8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICRVSVN0cmluZyA9ICRzdHJpbmc7CisgICAgICAgICAgICAgICAg
ICAgICAgICAkZXhwZWN0ZWQgPSAiLCI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCgk
bWFjcm8gPX4gLyhXRUJfKT9VSV9TVFJJTkdfS0VZKF9JTlRFUk5BTCk/JC8pIGFuZCAhZGVmaW5l
ZCAka2V5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBWYWxpZGF0ZSBVVEYt
OCBoZXJlPworICAgICAgICAgICAgICAgICAgICAgICAgJGtleSA9ICRzdHJpbmc7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiLCI7CisgICAgICAgICAgICAgICAgICAgIH0g
ZWxzaWYgKCFkZWZpbmVkICRjb21tZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAjIEZJ
WE1FOiBWYWxpZGF0ZSBVVEYtOCBoZXJlPworICAgICAgICAgICAgICAgICAgICAgICAgJGNvbW1l
bnQgPSAkc3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgJGV4cGVjdGVkID0gIikiOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGRlZmluZWQgJG5lc3RpbmdMZXZlbCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgIyBJbiBhIGRlYnVnIG1hY3JvLCBubyBuZWVkIHRvIGxvY2FsaXplLgorICAgICAg
ICAgICAgICAgICAgICB9IGVsc2lmICgkcHJldmlvdXNUb2tlbiBlcSAiI2luY2x1ZGUiIG9yICRw
cmV2aW91c1Rva2VuIGVxICIjaW1wb3J0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgIyBG
aWxlIG5hbWUsIG5vIG5lZWQgdG8gbG9jYWxpemUuCisgICAgICAgICAgICAgICAgICAgIH0gZWxz
aWYgKCRwcmV2aW91c1Rva2VuIGVxICJleHRlcm4iIGFuZCAkc3RyaW5nIGVxICJDIikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgIyBleHRlcm4gIkMiLCBubyBuZWVkIHRvIGxvY2FsaXplLgor
ICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkc3RyaW5nIGVxICIiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAjIEVtcHR5IHN0cmluZyBjYW4gc29tZXRpbWVzIGJlIGxvY2FsaXplZCwg
YnV0IHdlIG5lZWQgbm90IGNvbXBsYWluIGlmIG5vdC4KKyAgICAgICAgICAgICAgICAgICAgfSBl
bHNpZiAoJGV4Y2VwdGlvbnskZmlsZX0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICR1c2Vk
RXhjZXB0aW9ueyRmaWxlfSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRleGNl
cHRpb257IlwiJHN0cmluZ1wiIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICR1c2VkRXhj
ZXB0aW9ueyJcIiRzdHJpbmdcIiJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGV4Y2VwdGlvbnsiJGZpbGU6XCIkc3RyaW5nXCIifSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgJHVzZWRFeGNlcHRpb257IiRmaWxlOlwiJHN0cmluZ1wiIn0gPSAxOworICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiRmaWxlOiRz
dHJpbmdMaW5lOiB3YXJuaW5nOiBcIiRzdHJpbmdcIiBpcyBub3QgbWFya2VkIGZvciBsb2NhbGl6
YXRpb25cbiIgaWYgJHdhcm5BYm91dFVubG9jYWxpemVkU3RyaW5nczsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICRub3RMb2NhbGl6ZWRDb3VudCsrOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRzdHJpbmcgPSB1bmRlZjsKKyAgICAg
ICAgICAgICAgICBsYXN0IGlmICFkZWZpbmVkICR0b2tlbjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgJHByZXZpb3VzVG9rZW4gPSAkdG9rZW47CisKKyAgICAgICAg
ICAgIGlmICgkdG9rZW4gPX4gL15OU0xvY2FsaXplZC8gJiYgJHRva2VuICF+IC9OU0xvY2FsaXpl
ZERlc2NyaXB0aW9uS2V5LyAmJiAkdG9rZW4gIX4gL05TTG9jYWxpemVkU3RyaW5nRnJvbVRhYmxl
SW5CdW5kbGUvICYmICR0b2tlbiAhfiAvTlNMb2NhbGl6ZWRGaWxlU2l6ZURlc2NyaXB0aW9uLyAm
JiAkdG9rZW4gIX4gL05TTG9jYWxpemVkRGVzY3JpcHRpb25LZXkvICYmICR0b2tlbiAhfiAvTlNM
b2NhbGl6ZWRSZWNvdmVyeVN1Z2dlc3Rpb25FcnJvcktleS8pIHsKKyAgICAgICAgICAgICAgICBw
cmludCAiJGZpbGU6JC46IGZvdW5kIGEgdXNlIG9mIGFuIE5TTG9jYWxpemVkIG1hY3JvICgkdG9r
ZW4pOyBub3Qgc3VwcG9ydGVkXG4iOworICAgICAgICAgICAgICAgICRuZXN0aW5nTGV2ZWwgPSAw
IGlmICFkZWZpbmVkICRuZXN0aW5nTGV2ZWw7CisgICAgICAgICAgICAgICAgJHNhd0Vycm9yID0g
MTsKKyAgICAgICAgICAgICAgICAkTlNMb2NhbGl6ZUNvdW50Kys7CisgICAgICAgICAgICB9IGVs
c2lmICgkdG9rZW4gZXEgIi8qIikgeworICAgICAgICAgICAgICAgIGlmICghcy1eLio/XCovLS0p
IHsKKyAgICAgICAgICAgICAgICAgICAgJF8gPSAiIjsgIyBJZiB0aGUgY29tbWVudCBkb2Vzbid0
IGVuZCwgZGlzY2FyZCB0aGUgcmVzdWx0IG9mIHRoZSBsaW5lIGFuZCBzZXQgZmxhZworICAgICAg
ICAgICAgICAgICAgICAkaW5Db21tZW50ID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2lmICgkdG9rZW4gZXEgIi8vIikgeworICAgICAgICAgICAgICAgICRfID0gIiI7
ICMgRGlzY2FyZCB0aGUgcmVzdCBvZiB0aGUgbGluZQorICAgICAgICAgICAgfSBlbHNpZiAoJHRv
a2VuIGVxICInIikgeworICAgICAgICAgICAgICAgIGlmICghcy0oW15cXF18XFwuKSctLSkgeyAj
JyA8LS0gdGhhdCBzaW5nbGUgcXVvdGUgbWFrZXMgdGhlIFByb2plY3QgQnVpbGRlciBlZGl0b3Ig
bGVzcyBjb25mdXNlZAorICAgICAgICAgICAgICAgICAgICBwcmludCAiJGZpbGU6JC46IG1pc21h
dGNoZWQgc2luZ2xlIHF1b3RlXG4iOworICAgICAgICAgICAgICAgICAgICAkc2F3RXJyb3IgPSAx
OworICAgICAgICAgICAgICAgICAgICAkXyA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCRleHBlY3RlZCBhbmQgJGV4cGVj
dGVkIG5lICR0b2tlbikgeworICAgICAgICAgICAgICAgICAgICBwcmludCAiJGZpbGU6JC46IGZv
dW5kICR0b2tlbiBidXQgZXhwZWN0ZWQgJGV4cGVjdGVkXG4iOworICAgICAgICAgICAgICAgICAg
ICAkc2F3RXJyb3IgPSAxOworICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiIjsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCR0b2tlbiA9fiAvKFdFQl8pP1VJ
X1NUUklORyhfS0VZKT8oX0lOVEVSTkFMKT8kLykgeworICAgICAgICAgICAgICAgICAgICAkZXhw
ZWN0ZWQgPSAiKCI7CisgICAgICAgICAgICAgICAgICAgICRtYWNybyA9ICR0b2tlbjsKKyAgICAg
ICAgICAgICAgICAgICAgJFVJU3RyaW5nID0gdW5kZWY7CisgICAgICAgICAgICAgICAgICAgICRr
ZXkgPSB1bmRlZjsKKyAgICAgICAgICAgICAgICAgICAgJGNvbW1lbnQgPSB1bmRlZjsKKyAgICAg
ICAgICAgICAgICAgICAgJG1hY3JvTGluZSA9ICQuOworICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCR0b2tlbiBlcSAiKCIgb3IgJHRva2VuIGVxICJbIikgeworICAgICAgICAgICAgICAgICAgICAr
KyRuZXN0aW5nTGV2ZWwgaWYgZGVmaW5lZCAkbmVzdGluZ0xldmVsOworICAgICAgICAgICAgICAg
ICAgICAkZXhwZWN0ZWQgPSAiYSBxdW90ZWQgc3RyaW5nIiBpZiAkZXhwZWN0ZWQ7CisgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICIsIikgeworICAgICAgICAgICAgICAgICAgICAk
ZXhwZWN0ZWQgPSAiYSBxdW90ZWQgc3RyaW5nIiBpZiAkZXhwZWN0ZWQ7CisgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoJHRva2VuIGVxICIpIiBvciAkdG9rZW4gZXEgIl0iKSB7CisgICAgICAgICAg
ICAgICAgICAgICRuZXN0aW5nTGV2ZWwgPSB1bmRlZiBpZiBkZWZpbmVkICRuZXN0aW5nTGV2ZWwg
JiYgIS0tJG5lc3RpbmdMZXZlbDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRleHBlY3RlZCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgJGtleSA9ICRVSVN0cmluZyBpZiAhZGVmaW5lZCAk
a2V5OworICAgICAgICAgICAgICAgICAgICAgICAgSGFuZGxlVUlTdHJpbmcoJFVJU3RyaW5nLCAk
a2V5LCAkY29tbWVudCwgJGZpbGUsICRtYWNyb0xpbmUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgJG1hY3JvID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiIjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICRsb2NhbGl6ZWRDb3VudCsrOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGlzRGVidWdNYWNyb3skdG9rZW59
KSB7CisgICAgICAgICAgICAgICAgICAgICRuZXN0aW5nTGV2ZWwgPSAwIGlmICFkZWZpbmVkICRu
ZXN0aW5nTGV2ZWw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgZ290byBoYW5kbGVTdHJpbmcgaWYgZGVm
aW5lZCAkc3RyaW5nOworICAgIAorICAgIGlmICgkZXhwZWN0ZWQpIHsKKyAgICAgICAgcHJpbnQg
IiRmaWxlOiByZWFjaGVkIGVuZCBvZiBmaWxlIGJ1dCBleHBlY3RlZCAkZXhwZWN0ZWRcbiI7Cisg
ICAgICAgICRzYXdFcnJvciA9IDE7CisgICAgfQorICAgIAorICAgIGNsb3NlIFNPVVJDRTsKK30K
KworIyBVbmVzY2FwZXMgQyBsYW5ndWFnZSBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2VzLgor
c3ViIFVuZXNjYXBlSGV4U2VxdWVuY2UoJCkKK3sKKyAgICBteSAoJG9yaWdpbmFsU3RyKSA9IEBf
OworCisgICAgbXkgJGVzY2FwZWRTdHIgPSAkb3JpZ2luYWxTdHI7CisgICAgbXkgJHVuZXNjYXBl
ZFN0ciA9ICIiOworCisgICAgZm9yICg7OykgeworICAgICAgICBpZiAoJGVzY2FwZWRTdHIgPX4g
cy1eXFx4KFtbOnhkaWdpdDpdXSspLS0pIHsKKyAgICAgICAgICAgIGlmICgyNTYgPD0gaGV4KCQx
KSkgeworICAgICAgICAgICAgICAgIHByaW50ICJIZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ug
b3V0IG9mIHJhbmdlOiBcXHgkMVxuIjsKKyAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWY7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAkdW5lc2NhcGVkU3RyIC49IHBhY2soIkgqIiwgJDEp
OworICAgICAgICB9IGVsc2lmICgkZXNjYXBlZFN0ciA9fiBzLV4oLiktLSkgeworICAgICAgICAg
ICAgJHVuZXNjYXBlZFN0ciAuPSAkMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJl
dHVybiAkdW5lc2NhcGVkU3RyOworICAgICAgICB9CisgICAgfQorfQorCitteSAlc3RyaW5nQnlL
ZXk7CitteSAlY29tbWVudEJ5S2V5OworbXkgJWZpbGVCeUtleTsKK215ICVsaW5lQnlLZXk7CisK
K3N1YiBIYW5kbGVVSVN0cmluZworeworICAgIG15ICgkc3RyaW5nLCAka2V5LCAkY29tbWVudCwg
JGZpbGUsICRsaW5lKSA9IEBfOworCisgICAgbXkgJGJhZCA9IDA7CisgICAgJHN0cmluZyA9IFVu
ZXNjYXBlSGV4U2VxdWVuY2UoJHN0cmluZyk7CisgICAgaWYgKCFkZWZpbmVkKCRzdHJpbmcpKSB7
CisgICAgICAgIHByaW50ICIkZmlsZTokbGluZTogc3RyaW5nIGhhcyBhbiBpbGxlZ2FsIGhleGFk
ZWNpbWFsIGVzY2FwZSBzZXF1ZW5jZVxuIjsKKyAgICAgICAgJGJhZCA9IDE7CisgICAgfQorICAg
ICRrZXkgPSBVbmVzY2FwZUhleFNlcXVlbmNlKCRrZXkpOworICAgIGlmICghZGVmaW5lZCgka2V5
KSkgeworICAgICAgICBwcmludCAiJGZpbGU6JGxpbmU6IGtleSBoYXMgYW4gaWxsZWdhbCBoZXhh
ZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2VcbiI7CisgICAgICAgICRiYWQgPSAxOworICAgIH0KKyAg
ICAkY29tbWVudCA9IFVuZXNjYXBlSGV4U2VxdWVuY2UoJGNvbW1lbnQpOworICAgIGlmICghZGVm
aW5lZCgkY29tbWVudCkpIHsKKyAgICAgICAgcHJpbnQgIiRmaWxlOiRsaW5lOiBjb21tZW50IGhh
cyBhbiBpbGxlZ2FsIGhleGFkZWNpbWFsIGVzY2FwZSBzZXF1ZW5jZVxuIjsKKyAgICAgICAgJGJh
ZCA9IDE7CisgICAgfQorICAgIGlmIChncmVwIHsgJF8gPT0gMHhGRkZEIH0gdW5wYWNrICJVKiIs
ICRzdHJpbmcpIHsKKyAgICAgICAgcHJpbnQgIiRmaWxlOiRsaW5lOiBzdHJpbmcgZm9yIHRyYW5z
bGF0aW9uIGhhcyBpbGxlZ2FsIFVURi04IC0tIG1vc3QgbGlrZWx5IGEgcHJvYmxlbSB3aXRoIHRo
ZSBUZXh0IEVuY29kaW5nIG9mIHRoZSBzb3VyY2UgZmlsZVxuIjsKKyAgICAgICAgJGJhZCA9IDE7
CisgICAgfQorICAgIGlmICgkc3RyaW5nIG5lICRrZXkgJiYgZ3JlcCB7ICRfID09IDB4RkZGRCB9
IHVucGFjayAiVSoiLCAka2V5KSB7CisgICAgICAgIHByaW50ICIkZmlsZTokbGluZToga2V5IGhh
cyBpbGxlZ2FsIFVURi04IC0tIG1vc3QgbGlrZWx5IGEgcHJvYmxlbSB3aXRoIHRoZSBUZXh0IEVu
Y29kaW5nIG9mIHRoZSBzb3VyY2UgZmlsZVxuIjsKKyAgICAgICAgJGJhZCA9IDE7CisgICAgfQor
ICAgIGlmIChncmVwIHsgJF8gPT0gMHhGRkZEIH0gdW5wYWNrICJVKiIsICRjb21tZW50KSB7Cisg
ICAgICAgIHByaW50ICIkZmlsZTokbGluZTogY29tbWVudCBmb3IgdHJhbnNsYXRpb24gaGFzIGls
bGVnYWwgVVRGLTggLS0gbW9zdCBsaWtlbHkgYSBwcm9ibGVtIHdpdGggdGhlIFRleHQgRW5jb2Rp
bmcgb2YgdGhlIHNvdXJjZSBmaWxlXG4iOworICAgICAgICAkYmFkID0gMTsKKyAgICB9CisgICAg
aWYgKCRiYWQpIHsKKyAgICAgICAgJHNhd0Vycm9yID0gMTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAKKyAgICBpZiAoJHN0cmluZ0J5S2V5eyRrZXl9ICYmICRzdHJpbmdCeUtleXska2V5
fSBuZSAkc3RyaW5nKSB7CisgICAgICAgIHByaW50ICIkZmlsZTokbGluZTogd2FybmluZzogZW5j
b3VudGVyZWQgdGhlIHNhbWUga2V5LCBcIiRrZXlcIiwgdHdpY2UsIHdpdGggZGlmZmVyZW50IHN0
cmluZ3NcbiI7CisgICAgICAgIHByaW50ICIkZmlsZUJ5S2V5eyRrZXl9OiRsaW5lQnlLZXl7JGtl
eX06IHdhcm5pbmc6IHByZXZpb3VzIG9jY3VycmVuY2VcbiI7CisgICAgICAgICRrZXlDb2xsaXNp
b25Db3VudCsrOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkY29tbWVudEJ5S2V5
eyRrZXl9ICYmICRjb21tZW50QnlLZXl7JGtleX0gbmUgJGNvbW1lbnQpIHsKKyAgICAgICAgcHJp
bnQgIiRmaWxlOiRsaW5lOiB3YXJuaW5nOiBlbmNvdW50ZXJlZCB0aGUgc2FtZSBrZXksIFwiJGtl
eVwiLCB0d2ljZSwgd2l0aCBkaWZmZXJlbnQgY29tbWVudHNcbiI7CisgICAgICAgIHByaW50ICIk
ZmlsZUJ5S2V5eyRrZXl9OiRsaW5lQnlLZXl7JGtleX06IHdhcm5pbmc6IHByZXZpb3VzIG9jY3Vy
cmVuY2VcbiI7CisgICAgICAgICRrZXlDb2xsaXNpb25Db3VudCsrOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgJGZpbGVCeUtleXska2V5fSA9ICRmaWxlOworICAgICRsaW5lQnlLZXl7
JGtleX0gPSAkbGluZTsKKyAgICAkc3RyaW5nQnlLZXl7JGtleX0gPSAkc3RyaW5nOworICAgICRj
b21tZW50QnlLZXl7JGtleX0gPSAkY29tbWVudDsKK30KKworcHJpbnQgIlxuIiBpZiAkc2F3RXJy
b3IgfHwgJG5vdExvY2FsaXplZENvdW50IHx8ICROU0xvY2FsaXplQ291bnQ7CisKK215IEB1bnVz
ZWRFeGNlcHRpb25zID0gc29ydCBncmVwIHsgISR1c2VkRXhjZXB0aW9ueyRffSB9IGtleXMgJWV4
Y2VwdGlvbjsKK2lmIChAdW51c2VkRXhjZXB0aW9ucykgeworICAgIGZvciBteSAkdW51c2VkIChA
dW51c2VkRXhjZXB0aW9ucykgeworICAgICAgICBwcmludCAiJGV4Y2VwdGlvbnNGaWxlOiRleGNl
cHRpb257JHVudXNlZH06IHdhcm5pbmc6IGV4Y2VwdGlvbiAkdW51c2VkIG5vdCB1c2VkXG4iOwor
ICAgIH0KKyAgICBwcmludCAiXG4iOworfQorCitwcmludCAiJGxvY2FsaXplZENvdW50IGxvY2Fs
aXphYmxlIHN0cmluZ3NcbiIgaWYgJGxvY2FsaXplZENvdW50OworcHJpbnQgIiRrZXlDb2xsaXNp
b25Db3VudCBrZXkgY29sbGlzaW9uc1xuIiBpZiAka2V5Q29sbGlzaW9uQ291bnQ7CitwcmludCAi
JG5vdExvY2FsaXplZENvdW50IHN0cmluZ3Mgbm90IG1hcmtlZCBmb3IgbG9jYWxpemF0aW9uXG4i
IGlmICRub3RMb2NhbGl6ZWRDb3VudDsKK3ByaW50ICIkTlNMb2NhbGl6ZUNvdW50IHVzZXMgb2Yg
TlNMb2NhbGl6ZVxuIiBpZiAkTlNMb2NhbGl6ZUNvdW50OworcHJpbnQgc2NhbGFyKEB1bnVzZWRF
eGNlcHRpb25zKSwgIiB1bnVzZWQgZXhjZXB0aW9uc1xuIiBpZiBAdW51c2VkRXhjZXB0aW9uczsK
KworaWYgKCRzYXdFcnJvcikgeworICAgIHByaW50ICJcbkVycm9ycyBlbmNvdW50ZXJlZC4gRXhp
dGluZyB3aXRob3V0IHdyaXRpbmcgdG8gJGZpbGVUb1VwZGF0ZS5cbiI7CisgICAgZXhpdCAxOwor
fQorCitteSAkbG9jYWxpemVkU3RyaW5ncyA9ICIiOworCitmb3IgbXkgJGtleSAoc29ydCBrZXlz
ICVjb21tZW50QnlLZXkpIHsKKyAgICAkbG9jYWxpemVkU3RyaW5ncyAuPSAiLyogJGNvbW1lbnRC
eUtleXska2V5fSAqL1xuXCIka2V5XCIgPSBcIiRzdHJpbmdCeUtleXska2V5fVwiO1xuXG4iOwor
fQorCitpZiAoLWUgIiRmaWxlVG9VcGRhdGUiKSB7CisgICAgaWYgKCEkdmVyaWZ5KSB7CisgICAg
ICAgICMgV3JpdGUgb3V0IHRoZSBzdHJpbmdzIGZpbGUgYXMgVVRGLTgKKyAgICAgICAgb3BlbiBT
VFJJTkdTLCAiPiIsICIkZmlsZVRvVXBkYXRlIiBvciBkaWU7CisgICAgICAgIHByaW50IFNUUklO
R1MgJGxvY2FsaXplZFN0cmluZ3M7CisgICAgICAgIGNsb3NlIFNUUklOR1M7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgb3BlbiBTVFJJTkdTLCAkZmlsZVRvVXBkYXRlIG9yIGRpZTsKKworICAgICAg
ICBteSAkbGFzdENvbW1lbnQ7CisgICAgICAgIG15ICRsaW5lOworCisgICAgICAgIHdoaWxlICg8
U1RSSU5HUz4pIHsKKyAgICAgICAgICAgIGNob21wOworCisgICAgICAgICAgICBuZXh0IGlmICgv
XlxzKiQvKTsKKworICAgICAgICAgICAgaWYgKC9eXC9cKiAoLiopIFwqXC8kLykgeworICAgICAg
ICAgICAgICAgICRsYXN0Q29tbWVudCA9ICQxOworICAgICAgICAgICAgfSBlbHNpZiAoL14iKCg/
OlteXFxdfFxcW14iXSkqKSJccyo9XHMqIigoPzpbXlxcXXxcXFteIl0pKikiOyQvKSAjCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgbXkgJHN0cmluZyA9IGRlbGV0ZSAkc3RyaW5nQnlL
ZXl7JDF9OworICAgICAgICAgICAgICAgIGlmICghZGVmaW5lZCAkc3RyaW5nKSB7CisgICAgICAg
ICAgICAgICAgICAgIHByaW50ICIkZmlsZVRvVXBkYXRlOiQuOiB1bnVzZWQga2V5IFwiJDFcIlxu
IjsKKyAgICAgICAgICAgICAgICAgICAgJHNhd0Vycm9yID0gMTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoISgkc3RyaW5nIGVxICQyKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiRmaWxlVG9VcGRhdGU6JC46IHVuZXhwZWN0ZWQg
dmFsdWUgXCIkMlwiIGZvciBrZXkgXCIkMVwiXG4iOworICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQgIiRmaWxlQnlLZXl7JDF9OiRsaW5lQnlLZXl7JDF9OiBleHBlY3RlZCB2YWx1ZSBcIiRz
dHJpbmdcIiBkZWZpbmVkIGhlcmVcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICAkc2F3RXJy
b3IgPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgh
KCRsYXN0Q29tbWVudCBlcSAkY29tbWVudEJ5S2V5eyQxfSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50ICIkZmlsZVRvVXBkYXRlOiQuOiB1bmV4cGVjdGVkIGNvbW1lbnQgLyogJGxh
c3RDb21tZW50ICovIGZvciBrZXkgXCIkMVwiXG4iOworICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQgIiRmaWxlQnlLZXl7JDF9OiRsaW5lQnlLZXl7JDF9OiBleHBlY3RlZCBjb21tZW50IC8q
ICRjb21tZW50QnlLZXl7JDF9ICovIGRlZmluZWQgaGVyZVxuIjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRzYXdFcnJvciA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByaW50ICIkZmls
ZVRvVXBkYXRlOiQuOiBsaW5lIHdpdGggdW5leHBlY3RlZCBmb3JtYXQ6ICRfXG4iOworICAgICAg
ICAgICAgICAgICRzYXdFcnJvciA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmb3IgbXkgJG1pc3NpbmcgKGtleXMgJXN0cmluZ0J5S2V5KSB7CisgICAgICAgICAgICBw
cmludCAiJGZpbGVCeUtleXskbWlzc2luZ306JGxpbmVCeUtleXskbWlzc2luZ306IG1pc3Npbmcg
a2V5IFwiJG1pc3NpbmdcIlxuIjsKKyAgICAgICAgICAgICRzYXdFcnJvciA9IDE7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoJHNhd0Vycm9yKSB7CisgICAgICAgICAgICBwcmludCAiXG4kZmls
ZVRvVXBkYXRlOjA6IGZpbGUgaXMgbm90IHVwIHRvIGRhdGUuXG4iOworICAgICAgICAgICAgZXhp
dCAxOworICAgICAgICB9CisgICAgfQorfSBlbHNlIHsKKyAgICBwcmludCAiZXJyb3I6ICRmaWxl
VG9VcGRhdGUgZG9lcyBub3QgZXhpc3RcbiI7CisgICAgZXhpdCAxOworfQpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTU2MTY4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgyLDYgKzEwODIsNyBAQAogCQkzMzkwQ0E1NjBG
RkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkwQ0E1MjBGRkMxNTdCMDA5MjE5NjIgLyog
Tm90aWZpY2F0aW9uQ2VudGVyLmggKi87IH07CiAJCTMzOUI1QjYzMTMxREFBMzIwMEY0OEQwMiAv
KiBDb29raWVzU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzOUI1QjYyMTMxREFBMzIwMEY0OEQwMiAvKiBDb29raWVzU3RyYXRlZ3kuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzM0QwMjEy
RDEzMURCMzdCMDA0MDkxQTggLyogQ29va2llU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzRjAxRUExMjcwRTEwRDAwREZCQTcxIC8qIENv
b2tpZVN0b3JhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkzNzE3RDdFODE3RUNDNTkxMDAzQzI3NkQgLyogZXh0cmFjdC1sb2NhbGl6YWJsZS1z
dHJpbmdzLnBsIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzE3RDdFNTE3RUNDM0E2MDAzQzI3NkQgLyogZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJp
bmdzLnBsICovOyB9OwogCQkzNzE5NDE5NjE1NjZCMzcyMDBBMjc2RDggLyogV2ViQ29yZU5TQ2Vs
bEV4dHJhcy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzcxOTQxOTQxNTY2QjM3MjAwQTI3NkQ4IC8qIFdlYkNvcmVOU0NlbGxFeHRyYXMubSAqLzsgfTsK
IAkJMzcxOTQxOTcxNTY2QjM3MjAwQTI3NkQ4IC8qIFdlYkNvcmVOU0NlbGxFeHRyYXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MTk0MTk1MTU2NkIz
NzIwMEEyNzZEOCAvKiBXZWJDb3JlTlNDZWxsRXh0cmFzLmggKi87IH07CiAJCTM3MUE2N0NCMTFD
NkM3REIwMDA0N0I4QiAvKiBIeXBoZW5hdGlvbkNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUE2N0NBMTFDNkM3REIwMDA0N0I4QiAvKiBIeXBo
ZW5hdGlvbkNGLmNwcCAqLzsgfTsKQEAgLTYzOTcsNiArNjM5OCwxNyBAQAogCQkJbmFtZSA9ICJD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzIjsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OworCQkzNzE3RDdFNzE3RUNDNTczMDAzQzI3NkQgLyogQ29weSBTY3Jp
cHRzICovID0geworCQkJaXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlkc3RQYXRoID0gUHJpdmF0ZUhlYWRlcnMvU2NyaXB0
czsKKwkJCWRzdFN1YmZvbGRlclNwZWMgPSAxOworCQkJZmlsZXMgPSAoCisJCQkJMzcxN0Q3RTgx
N0VDQzU5MTAwM0MyNzZEIC8qIGV4dHJhY3QtbG9jYWxpemFibGUtc3RyaW5ncy5wbCBpbiBDb3B5
IFNjcmlwdHMgKi8sCisJCQkpOworCQkJbmFtZSA9ICJDb3B5IFNjcmlwdHMiOworCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCUNEMERCRjAwMTQyMjc2
NTcwMDI4MDI2MyAvKiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWENv
cHlGaWxlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAt
NzU3Nyw2ICs3NTg5LDcgQEAKIAkJMzM5MENBNTIwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNh
dGlvbkNlbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOb3RpZmljYXRp
b25DZW50ZXIuaDsgcGF0aCA9IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzM5MENBNTMwRkZDMTU3QjAwOTIx
OTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTm90
aWZpY2F0aW9uQ2VudGVyLmlkbDsgcGF0aCA9IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DZW50ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzlCNUI2MjEz
MURBQTMyMDBGNDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvb2tpZXNTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzNzE3RDdFNTE3RUNDM0E2MDAzQzI3NkQgLyogZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJp
bmdzLnBsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5zY3JpcHQucGVybDsgcGF0aCA9ICJleHRyYWN0LWxvY2FsaXphYmxlLXN0cmluZ3MucGwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzE5NDE5NDE1NjZCMzcyMDBBMjc2RDgg
LyogV2ViQ29yZU5TQ2VsbEV4dHJhcy5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBh
dGggPSBXZWJDb3JlTlNDZWxsRXh0cmFzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTM3MTk0MTk1MTU2NkIzNzIwMEEyNzZEOCAvKiBXZWJDb3JlTlNDZWxsRXh0cmFzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVOU0NlbGxFeHRyYXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxQTY3Q0ExMUM2QzdEQjAwMDQ3QjhCIC8qIEh5cGhl
bmF0aW9uQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSHlwaGVu
YXRpb25DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzU2Nyw2ICsxMzU4
MCw3IEBACiAJCQkJRTFGMDQyNDMwOTgzOTM4OTAwNjY5NEVBIC8qIHhtbCAqLywKIAkJCQk2NTY1
ODBFQzA5RDEyQjIwMDAwRTYxRDcgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTA4OUMxNjY1
RkU4NDExNThDMDJBQUMwNyAvKiBSZXNvdXJjZXMgKi8sCisJCQkJMzcxN0Q3RTQxN0VDQzM2QzAw
M0MyNzZEIC8qIFNjcmlwdHMgKi8sCiAJCQkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZy
YW1ld29ya3MgKi8sCiAJCQkJMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICov
LAogCQkJCTFDREQ0NDY2MEJBOUM4MDAwMEY5MDE0NyAvKiBDb25maWd1cmF0aW9ucyAqLywKQEAg
LTE0NDAwLDYgKzE0NDE0LDE0IEBACiAJCQluYW1lID0gTm90aWZpY2F0aW9uczsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTM3MTdEN0U0MTdFQ0MzNkMwMDNDMjc2RCAvKiBT
Y3JpcHRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkz
NzE3RDdFNTE3RUNDM0E2MDAzQzI3NkQgLyogZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzLnBs
ICovLAorCQkJKTsKKwkJCW5hbWUgPSBTY3JpcHRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJMzdERENEOUYxMzg0NTAxQzAwMDhCNzkzIC8qIG1odG1sICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NzQyLDYgKzI0NzY0LDcgQEAK
IAkJCQk5M0YxOThBNjA4MjQ1RTU5MDAxRTlBQkMgLyogSGVhZGVycyAqLywKIAkJCQkxQzExQ0NC
NDBBQTYwOTM3MDBEQURCMjAgLyogQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk1RDg3
QkMwNzExRTQzQkRFMDA3MDJCNkYgLyogQ29weSBGb3J3YXJkaW5nIGFuZCBJQ1UgSGVhZGVycyAq
LywKKwkJCQkzNzE3RDdFNzE3RUNDNTczMDAzQzI3NkQgLyogQ29weSBTY3JpcHRzICovLAogCQkJ
CTkzRjE5OUZEMDgyNDVFNTkwMDFFOUFCQyAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJQ0QwREJGMDAx
NDIyNzY1NzAwMjgwMjYzIC8qIENvcHkgQXVkaW8gUmVzb3VyY2VzICovLAogCQkJCTFDODFCQTMz
MEU5NzM1N0MwMDI2NkUwNyAvKiBDb3B5IEluc3BlY3RvciBSZXNvdXJjZXMgKi8sCkluZGV4OiBU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
NTYxODIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMy0wOS0yMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzIGF2YWlsYWJsZSB0byBXZWJDb3JlIGNs
aWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MTY5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy9leHRyYWN0LWxvY2FsaXphYmxlLXN0cmluZ3M6IENvcGllZCB0bworICAgICAgICBT
b3VyZS9XZWJDb3JlL2V4dHJhY3QtbG9jYWxpemFlYmwtc3RyaW5ncy5wbCwgYW5kIGNoYW5nZWQg
dGhpcyBpbnRvIGEgc2hlbGwgc2NyaXB0IHRoYXQKKyAgICAgICAgZXhlY3V0ZXMgdGhlIHNjcmlw
dCBmcm9tIGl0cyBuZXcgbG9jYXRpb24uIFRoaXMgaXMgYSB0ZW1wb3JhcnkgbWVhc3VyZSB1bnRp
bCBjZXJ0YWluIGNvZGUKKyAgICAgICAgdGhhdCBpcyBleHRlcm5hbCB0byBXZWJLaXQgaXMgYWRh
cHRlZCB0byB0aGUgbmV3IGxvY2F0aW9uLgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtp
dC1sb2NhbGl6YWJsZS1zdHJpbmdzOiBDaGFuZ2VkIHRvIGNhbGwgZXh0cmFjdC1sb2NhbGl6YWJs
ZS1zdHJpbmdzLnBsCisgICAgICAgIGZyb20gaXRzIG5ldyBsb2NhdGlvbi4KKwogMjAxMy0wOS0y
MCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBOdWtl
IHJlbWFpbmluZyBWUzIwMDUgdG9vbHMgZnJvbSB0aGUgdHJlZS4KSW5kZXg6IFRvb2xzL1Njcmlw
dHMvZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvZXh0cmFjdC1sb2NhbGl6YWJsZS1zdHJpbmdzCShyZXZpc2lvbiAxNTYxNjgpCisrKyBUb29s
cy9TY3JpcHRzL2V4dHJhY3QtbG9jYWxpemFibGUtc3RyaW5ncwkod29ya2luZyBjb3B5KQpAQCAt
MSw0NDcgKzEsMyBAQAotIyEvdXNyL2Jpbi9wZXJsIC13CisjIS9iaW4vc2gKIAotIyBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0j
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLiAKLSMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSMgICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4gCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0jIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0jIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0j
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0jIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jIFRoaXMgc2NyaXB0IGlz
IGxpa2UgdGhlIGdlbnN0cmluZ3MgdG9vbCAobWludXMgbW9zdCBvZiB0aGUgb3B0aW9ucykgd2l0
aCB0aGVzZSBkaWZmZXJlbmNlcy4KLSMKLSMgICAgMSkgSXQgdXNlcyB0aGUgbmFtZXMgVUlfU1RS
SU5HIGFuZCBVSV9TVFJJTkdfV0lUSF9LRVkgZm9yIHRoZSBtYWNyb3MsIHJhdGhlciB0aGFuIHRo
ZSBtYWNyb3MKLSMgICAgICAgZnJvbSBOU0J1bmRsZS5oLCBhbmQgZG9lc24ndCBzdXBwb3J0IHRh
YmxlcyAoYWx0aG91Z2ggdGhleSB3b3VsZCBiZSBlYXN5IHRvIGFkZCkuCi0jICAgIDIpIEl0IHN1
cHBvcnRzIFVURi04IGluIGtleSBzdHJpbmdzIChhbmQgaGVuY2UgdXNlcyAiIiBzdHJpbmdzIHJh
dGhlciB0aGFuIEAiIiBzdHJpbmdzOwotIyAgICAgICBAIiIgc3RyaW5ncyBvbmx5IHJlbGlhYmx5
IHN1cHBvcnQgQVNDSUkgc2luY2UgdGhleSBhcmUgZGVjb2RlZCBiYXNlZCBvbiB0aGUgc3lzdGVt
IGVuY29kaW5nCi0jICAgICAgIGF0IHJ1bnRpbWUsIHNvIGdpdmUgZGlmZmVyZW50IHJlc3VsdHMg
b24gVVMgYW5kIEphcGFuZXNlIHN5c3RlbXMgZm9yIGV4YW1wbGUpLgotIyAgICAzKSBJdCBsb29r
cyBmb3Igc3RyaW5ncyB0aGF0IGFyZSBub3QgbWFya2VkIGZvciBsb2NhbGl6YXRpb24sIHVzaW5n
IGJvdGggbWFjcm8gbmFtZXMgdGhhdCBhcmUKLSMgICAgICAga25vd24gdG8gYmUgdXNlZCBmb3Ig
ZGVidWdnaW5nIGluIEludHJpZ3VlIHNvdXJjZSBjb2RlIGFuZCBhbiBleGNlcHRpb25zIGZpbGUu
Ci0jICAgIDQpIEl0IGZpbmRzIHRoZSBmaWxlcyB0byB3b3JrIG9uIHJhdGhlciB0aGFuIHRha2lu
ZyB0aGVtIGFzIHBhcmFtZXRlcnMsIGFuZCBhbHNvIHVzZXMgYQotIyAgICAgICBoYXJkY29kZWQg
bG9jYXRpb24gZm9yIGJvdGggdGhlIG91dHB1dCBmaWxlIGFuZCB0aGUgZXhjZXB0aW9ucyBmaWxl
LgotIyAgICAgICBJdCB3b3VsZCBoYXZlIGJlZW4gbmljZSB0byB1c2UgdGhlIHByb2plY3QgdG8g
ZmluZCB0aGUgc291cmNlIGZpbGVzLCBidXQgaXQncyB0b28gaGFyZCB0bwotIyAgICAgICBsb2Nh
dGUgc291cmNlIGZpbGVzIGFmdGVyIHBhcnNpbmcgYSAucGJ4cHJvaiBmaWxlLgotCi0jIFRoZSBl
eGNlcHRpb25zIGZpbGUgaGFzIGEgbGlzdCBvZiBzdHJpbmdzIGluIHF1b3RlcywgZmlsZW5hbWVz
LCBhbmQgZmlsZW5hbWUvc3RyaW5nIHBhaXJzIHNlcGFyYXRlZCBieSA6LgotCi11c2Ugc3RyaWN0
OwotdXNlIEdldG9wdDo6TG9uZzsKLW5vIHdhcm5pbmdzICdkZXByZWNhdGVkJzsKLQotc3ViIFVu
ZXNjYXBlSGV4U2VxdWVuY2UoJCk7Ci0KLW15ICVpc0RlYnVnTWFjcm8gPSAoIEFTU0VSVF9XSVRI
X01FU1NBR0UgPT4gMSwgTE9HX0VSUk9SID0+IDEsIEVSUk9SID0+IDEsIE5TVVJMX0VSUk9SID0+
IDEsIEZBVEFMID0+IDEsIExPRyA9PiAxLCBMT0dfV0FSTklORyA9PiAxLCBVSV9TVFJJTkdfTE9D
QUxJWkVfTEFURVIgPT4gMSwgVUlfU1RSSU5HX0xPQ0FMSVpFX0xBVEVSX0tFWSA9PiAxLCBMUENU
U1RSX1VJX1NUUklOR19MT0NBTElaRV9MQVRFUiA9PiAxLCBVTkxPQ0FMSVpFRF9TVFJJTkcgPT4g
MSwgVU5MT0NBTElaRURfTFBDVFNUUiA9PiAxLCBkcHJpbnRmID0+IDEsIE5TRXhjZXB0aW9uID0+
IDEsIE5TTG9nID0+IDEsIHByaW50ZiA9PiAxICk7Ci0KLW15ICR2ZXJpZnk7Ci1teSAkZXhjZXB0
aW9uc0ZpbGU7Ci1teSBAZGlyZWN0b3JpZXNUb1NraXAgPSAoKTsKLQotbXkgJW9wdGlvbnMgPSAo
Ci0gICAgJ3ZlcmlmeScgPT4gXCR2ZXJpZnksCi0gICAgJ2V4Y2VwdGlvbnM9cycgPT4gXCRleGNl
cHRpb25zRmlsZSwKLSAgICAnc2tpcD1zJyA9PiBcQGRpcmVjdG9yaWVzVG9Ta2lwLAotKTsKLQot
R2V0T3B0aW9ucyglb3B0aW9ucyk7Ci0KLUBBUkdWID49IDIgb3IgZGllICJVc2FnZTogZXh0cmFj
dC1sb2NhbGl6YWJsZS1zdHJpbmdzIFstLXZlcmlmeV0gWy0tZXhjZXB0aW9ucyA8ZXhjZXB0aW9u
cyBmaWxlPl0gPGZpbGUgdG8gdXBkYXRlPiBbLS1za2lwIGRpcmVjdG9yeSB8IGRpcmVjdG9yeV0u
Li5cbkRpZCB5b3UgbWVhbiB0byBydW4gdXBkYXRlLXdlYmtpdC1sb2NhbGl6YWJsZS1zdHJpbmdz
IGluc3RlYWQ/XG4iOwotCi0tZiAkZXhjZXB0aW9uc0ZpbGUgb3IgZGllICJDb3VsZG4ndCBmaW5k
IGV4Y2VwdGlvbnMgZmlsZSAkZXhjZXB0aW9uc0ZpbGVcbiIgdW5sZXNzICFkZWZpbmVkICRleGNl
cHRpb25zRmlsZTsKLQotbXkgJGZpbGVUb1VwZGF0ZSA9IHNoaWZ0IEBBUkdWOwotLWYgJGZpbGVU
b1VwZGF0ZSBvciBkaWUgIkNvdWxkbid0IGZpbmQgZmlsZSB0byB1cGRhdGUgJGZpbGVUb1VwZGF0
ZVxuIjsKLQotbXkgJHdhcm5BYm91dFVubG9jYWxpemVkU3RyaW5ncyA9IGRlZmluZWQgJGV4Y2Vw
dGlvbnNGaWxlOwotCi1teSBAZGlyZWN0b3JpZXMgPSAoKTsKLWlmIChAQVJHViA8IDEpIHsKLSAg
ICBwdXNoKEBkaXJlY3RvcmllcywgIi4iKTsKLX0gZWxzZSB7Ci0gICAgZm9yIG15ICRkaXIgKEBB
UkdWKSB7Ci0gICAgICAgIHB1c2ggQGRpcmVjdG9yaWVzLCAkZGlyOwotICAgIH0KLX0KLQotbXkg
JHNhd0Vycm9yID0gMDsKLQotbXkgJGxvY2FsaXplZENvdW50ID0gMDsKLW15ICRrZXlDb2xsaXNp
b25Db3VudCA9IDA7Ci1teSAkbm90TG9jYWxpemVkQ291bnQgPSAwOwotbXkgJE5TTG9jYWxpemVD
b3VudCA9IDA7Ci0KLW15ICVleGNlcHRpb247Ci1teSAldXNlZEV4Y2VwdGlvbjsKLQotaWYgKGRl
ZmluZWQgJGV4Y2VwdGlvbnNGaWxlICYmIG9wZW4gRVhDRVBUSU9OUywgJGV4Y2VwdGlvbnNGaWxl
KSB7Ci0gICAgd2hpbGUgKDxFWENFUFRJT05TPikgewotICAgICAgICBjaG9tcDsKLSAgICAgICAg
aWYgKC9eIihbXlxcIl18XFwuKSoiJC8gb3IgL15bLV9cL1x3XHMuXSsuKGh8bXxtbXxjfGNwcCkk
LyBvciAvXlstX1wvXHdccy5dKy4oaHxtfG1tfGN8Y3BwKToiKFteXFwiXXxcXC4pKiIkLykgewot
ICAgICAgICAgICAgaWYgKCRleGNlcHRpb257JF99KSB7Ci0gICAgICAgICAgICAgICAgcHJpbnQg
IiRleGNlcHRpb25zRmlsZTokLjogd2FybmluZzogZXhjZXB0aW9uIGZvciAkXyBhcHBlYXJzIHR3
aWNlXG4iOwotICAgICAgICAgICAgICAgIHByaW50ICIkZXhjZXB0aW9uc0ZpbGU6JGV4Y2VwdGlv
bnskX306IHdhcm5pbmc6IGZpcnN0IGFwcGVhcmFuY2VcbiI7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICRleGNlcHRpb257JF99ID0gJC47Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCAiJGV4Y2VwdGlvbnNGaWxlOiQuOiB3
YXJuaW5nOiBzeW50YXggZXJyb3JcbiI7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgY2xvc2UgRVhD
RVBUSU9OUzsKLX0KLQotbXkgJHF1b3RlZERpcmVjdG9yaWVzU3RyaW5nID0gJyInIC4gam9pbign
IiAiJywgQGRpcmVjdG9yaWVzKSAuICciJzsKLWZvciBteSAkZGlyIChAZGlyZWN0b3JpZXNUb1Nr
aXApIHsKLSAgICAkcXVvdGVkRGlyZWN0b3JpZXNTdHJpbmcgLj0gJyAtcGF0aCAiJyAuICRkaXIg
LiAnIiAtcHJ1bmUgLW8nOwotfQotCi1teSBAZmlsZXMgPSAoIHNwbGl0ICJcbiIsIGBmaW5kICRx
dW90ZWREaXJlY3Rvcmllc1N0cmluZyBcXCggLW5hbWUgIiouaCIgLW8gLW5hbWUgIioubSIgLW8g
LW5hbWUgIioubW0iIC1vIC1uYW1lICIqLmMiIC1vIC1uYW1lICIqLmNwcCIgXFwpYCApOwotCi1m
b3IgbXkgJGZpbGUgKHNvcnQgQGZpbGVzKSB7Ci0gICAgbmV4dCBpZiAkZmlsZSA9fiAvXC9cdytM
b2NhbGl6YWJsZVN0cmluZ3NcdypcLmgkLyB8fCAkZmlsZSA9fiAvXC9Mb2NhbGl6ZWRTdHJpbmdz
XC5oJC87Ci0KLSAgICAkZmlsZSA9fiBzLV4uLy0tOwotCi0gICAgb3BlbiBTT1VSQ0UsICRmaWxl
IG9yIGRpZSAiY2FuJ3Qgb3BlbiAkZmlsZVxuIjsKLSAgICAKLSAgICBteSAkaW5Db21tZW50ID0g
MDsKLSAgICAKLSAgICBteSAkZXhwZWN0ZWQgPSAiIjsKLSAgICBteSAkbWFjcm9MaW5lOwotICAg
IG15ICRtYWNybzsKLSAgICBteSAkVUlTdHJpbmc7Ci0gICAgbXkgJGtleTsKLSAgICBteSAkY29t
bWVudDsKLSAgICAKLSAgICBteSAkc3RyaW5nOwotICAgIG15ICRzdHJpbmdMaW5lOwotICAgIG15
ICRuZXN0aW5nTGV2ZWw7Ci0gICAgCi0gICAgbXkgJHByZXZpb3VzVG9rZW4gPSAiIjsKLQotICAg
IHdoaWxlICg8U09VUkNFPikgewotICAgICAgICBjaG9tcDsKLSAgICAgICAgCi0gICAgICAgICMg
SGFuZGxlIGNvbnRpbnVlZCBtdWx0aS1saW5lIGNvbW1lbnQuCi0gICAgICAgIGlmICgkaW5Db21t
ZW50KSB7Ci0gICAgICAgICAgICBuZXh0IHVubGVzcyBzLS4qXCovLS07Ci0gICAgICAgICAgICAk
aW5Db21tZW50ID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIG5leHQgdW5sZXNzIGRlZmluZWQg
JG5lc3RpbmdMZXZlbCBvciAvKFwifFwvXCopLzsKLSAgICAKLSAgICAgICAgIyBIYW5kbGUgYWxs
IHRoZSB0b2tlbnMgaW4gdGhlIGxpbmUuCi0gICAgICAgIHdoaWxlIChzLV5ccyooWyNcd10rfC9c
KnwvL3xbXiNcdy8nIigpXFtcXSxdK3wuKS0tKSB7Ci0gICAgICAgICAgICBteSAkdG9rZW4gPSAk
MTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCR0b2tlbiBlcSAiXCIiKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCRleHBlY3RlZCBhbmQgJGV4cGVjdGVkIG5lICJhIHF1b3RlZCBzdHJp
bmciKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICIkZmlsZTokLjogZm91bmQgYSBxdW90
ZWQgc3RyaW5nIGJ1dCBleHBlY3RlZCAkZXhwZWN0ZWRcbiI7Ci0gICAgICAgICAgICAgICAgICAg
ICRzYXdFcnJvciA9IDE7Ci0gICAgICAgICAgICAgICAgICAgICRleHBlY3RlZCA9ICIiOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAocy1eKChbXlxcJHRva2VuXXxcXC4p
Kj8pJHRva2VuLS0pIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFkZWZpbmVkICRzdHJpbmcp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpbmdMaW5lID0gJC47Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAkc3RyaW5nID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkc3RyaW5nIC49ICQxOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJp
bnQgIiRmaWxlOiQuOiBtaXNtYXRjaGVkIHF1b3Rlc1xuIjsKLSAgICAgICAgICAgICAgICAgICAg
JHNhd0Vycm9yID0gMTsKLSAgICAgICAgICAgICAgICAgICAgJF8gPSAiIjsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgbmV4dDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKGRlZmluZWQgJHN0cmluZykgewotaGFuZGxlU3RyaW5nOgotICAg
ICAgICAgICAgICAgIGlmICgkZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFk
ZWZpbmVkICRVSVN0cmluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogVmFs
aWRhdGUgVVRGLTggaGVyZT8KLSAgICAgICAgICAgICAgICAgICAgICAgICRVSVN0cmluZyA9ICRz
dHJpbmc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiLCI7Ci0gICAgICAg
ICAgICAgICAgICAgIH0gZWxzaWYgKCgkbWFjcm8gPX4gLyhXRUJfKT9VSV9TVFJJTkdfS0VZKF9J
TlRFUk5BTCk/JC8pIGFuZCAhZGVmaW5lZCAka2V5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAjIEZJWE1FOiBWYWxpZGF0ZSBVVEYtOCBoZXJlPwotICAgICAgICAgICAgICAgICAgICAgICAg
JGtleSA9ICRzdHJpbmc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiLCI7
Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCFkZWZpbmVkICRjb21tZW50KSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBWYWxpZGF0ZSBVVEYtOCBoZXJlPwotICAgICAg
ICAgICAgICAgICAgICAgICAgJGNvbW1lbnQgPSAkc3RyaW5nOwotICAgICAgICAgICAgICAgICAg
ICAgICAgJGV4cGVjdGVkID0gIikiOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmluZWQgJG5lc3RpbmdM
ZXZlbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgIyBJbiBhIGRlYnVnIG1hY3JvLCBubyBu
ZWVkIHRvIGxvY2FsaXplLgotICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkcHJldmlvdXNU
b2tlbiBlcSAiI2luY2x1ZGUiIG9yICRwcmV2aW91c1Rva2VuIGVxICIjaW1wb3J0IikgewotICAg
ICAgICAgICAgICAgICAgICAgICAgIyBGaWxlIG5hbWUsIG5vIG5lZWQgdG8gbG9jYWxpemUuCi0g
ICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRwcmV2aW91c1Rva2VuIGVxICJleHRlcm4iIGFu
ZCAkc3RyaW5nIGVxICJDIikgewotICAgICAgICAgICAgICAgICAgICAgICAgIyBleHRlcm4gIkMi
LCBubyBuZWVkIHRvIGxvY2FsaXplLgotICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkc3Ry
aW5nIGVxICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIEVtcHR5IHN0cmluZyBjYW4g
c29tZXRpbWVzIGJlIGxvY2FsaXplZCwgYnV0IHdlIG5lZWQgbm90IGNvbXBsYWluIGlmIG5vdC4K
LSAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGV4Y2VwdGlvbnskZmlsZX0pIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICR1c2VkRXhjZXB0aW9ueyRmaWxlfSA9IDE7Ci0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCRleGNlcHRpb257IlwiJHN0cmluZ1wiIn0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICR1c2VkRXhjZXB0aW9ueyJcIiRzdHJpbmdcIiJ9ID0gMTsKLSAgICAg
ICAgICAgICAgICAgICAgfSBlbHNpZiAoJGV4Y2VwdGlvbnsiJGZpbGU6XCIkc3RyaW5nXCIifSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgJHVzZWRFeGNlcHRpb257IiRmaWxlOlwiJHN0cmlu
Z1wiIn0gPSAxOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQgIiRmaWxlOiRzdHJpbmdMaW5lOiB3YXJuaW5nOiBcIiRzdHJpbmdcIiBp
cyBub3QgbWFya2VkIGZvciBsb2NhbGl6YXRpb25cbiIgaWYgJHdhcm5BYm91dFVubG9jYWxpemVk
U3RyaW5nczsKLSAgICAgICAgICAgICAgICAgICAgICAgICRub3RMb2NhbGl6ZWRDb3VudCsrOwot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICRzdHJpbmcgPSB1bmRlZjsKLSAgICAgICAgICAgICAgICBsYXN0IGlmICFkZWZpbmVkICR0b2tl
bjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgJHByZXZpb3VzVG9r
ZW4gPSAkdG9rZW47Ci0KLSAgICAgICAgICAgIGlmICgkdG9rZW4gPX4gL15OU0xvY2FsaXplZC8g
JiYgJHRva2VuICF+IC9OU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5LyAmJiAkdG9rZW4gIX4gL05T
TG9jYWxpemVkU3RyaW5nRnJvbVRhYmxlSW5CdW5kbGUvICYmICR0b2tlbiAhfiAvTlNMb2NhbGl6
ZWRGaWxlU2l6ZURlc2NyaXB0aW9uLyAmJiAkdG9rZW4gIX4gL05TTG9jYWxpemVkRGVzY3JpcHRp
b25LZXkvICYmICR0b2tlbiAhfiAvTlNMb2NhbGl6ZWRSZWNvdmVyeVN1Z2dlc3Rpb25FcnJvcktl
eS8pIHsKLSAgICAgICAgICAgICAgICBwcmludCAiJGZpbGU6JC46IGZvdW5kIGEgdXNlIG9mIGFu
IE5TTG9jYWxpemVkIG1hY3JvICgkdG9rZW4pOyBub3Qgc3VwcG9ydGVkXG4iOwotICAgICAgICAg
ICAgICAgICRuZXN0aW5nTGV2ZWwgPSAwIGlmICFkZWZpbmVkICRuZXN0aW5nTGV2ZWw7Ci0gICAg
ICAgICAgICAgICAgJHNhd0Vycm9yID0gMTsKLSAgICAgICAgICAgICAgICAkTlNMb2NhbGl6ZUNv
dW50Kys7Ci0gICAgICAgICAgICB9IGVsc2lmICgkdG9rZW4gZXEgIi8qIikgewotICAgICAgICAg
ICAgICAgIGlmICghcy1eLio/XCovLS0pIHsKLSAgICAgICAgICAgICAgICAgICAgJF8gPSAiIjsg
IyBJZiB0aGUgY29tbWVudCBkb2Vzbid0IGVuZCwgZGlzY2FyZCB0aGUgcmVzdWx0IG9mIHRoZSBs
aW5lIGFuZCBzZXQgZmxhZwotICAgICAgICAgICAgICAgICAgICAkaW5Db21tZW50ID0gMTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2lmICgkdG9rZW4gZXEgIi8vIikgewot
ICAgICAgICAgICAgICAgICRfID0gIiI7ICMgRGlzY2FyZCB0aGUgcmVzdCBvZiB0aGUgbGluZQot
ICAgICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICInIikgewotICAgICAgICAgICAgICAgIGlm
ICghcy0oW15cXF18XFwuKSctLSkgeyAjJyA8LS0gdGhhdCBzaW5nbGUgcXVvdGUgbWFrZXMgdGhl
IFByb2plY3QgQnVpbGRlciBlZGl0b3IgbGVzcyBjb25mdXNlZAotICAgICAgICAgICAgICAgICAg
ICBwcmludCAiJGZpbGU6JC46IG1pc21hdGNoZWQgc2luZ2xlIHF1b3RlXG4iOwotICAgICAgICAg
ICAgICAgICAgICAkc2F3RXJyb3IgPSAxOwotICAgICAgICAgICAgICAgICAgICAkXyA9ICIiOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aWYgKCRleHBlY3RlZCBhbmQgJGV4cGVjdGVkIG5lICR0b2tlbikgewotICAgICAgICAgICAgICAg
ICAgICBwcmludCAiJGZpbGU6JC46IGZvdW5kICR0b2tlbiBidXQgZXhwZWN0ZWQgJGV4cGVjdGVk
XG4iOwotICAgICAgICAgICAgICAgICAgICAkc2F3RXJyb3IgPSAxOwotICAgICAgICAgICAgICAg
ICAgICAkZXhwZWN0ZWQgPSAiIjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
aWYgKCR0b2tlbiA9fiAvKFdFQl8pP1VJX1NUUklORyhfS0VZKT8oX0lOVEVSTkFMKT8kLykgewot
ICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiKCI7Ci0gICAgICAgICAgICAgICAgICAg
ICRtYWNybyA9ICR0b2tlbjsKLSAgICAgICAgICAgICAgICAgICAgJFVJU3RyaW5nID0gdW5kZWY7
Ci0gICAgICAgICAgICAgICAgICAgICRrZXkgPSB1bmRlZjsKLSAgICAgICAgICAgICAgICAgICAg
JGNvbW1lbnQgPSB1bmRlZjsKLSAgICAgICAgICAgICAgICAgICAgJG1hY3JvTGluZSA9ICQuOwot
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0b2tlbiBlcSAiKCIgb3IgJHRva2VuIGVxICJbIikg
ewotICAgICAgICAgICAgICAgICAgICArKyRuZXN0aW5nTGV2ZWwgaWYgZGVmaW5lZCAkbmVzdGlu
Z0xldmVsOwotICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiYSBxdW90ZWQgc3RyaW5n
IiBpZiAkZXhwZWN0ZWQ7Ci0gICAgICAgICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICIsIikg
ewotICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQgPSAiYSBxdW90ZWQgc3RyaW5nIiBpZiAk
ZXhwZWN0ZWQ7Ci0gICAgICAgICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICIpIiBvciAkdG9r
ZW4gZXEgIl0iKSB7Ci0gICAgICAgICAgICAgICAgICAgICRuZXN0aW5nTGV2ZWwgPSB1bmRlZiBp
ZiBkZWZpbmVkICRuZXN0aW5nTGV2ZWwgJiYgIS0tJG5lc3RpbmdMZXZlbDsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCRleHBlY3RlZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgJGtleSA9
ICRVSVN0cmluZyBpZiAhZGVmaW5lZCAka2V5OwotICAgICAgICAgICAgICAgICAgICAgICAgSGFu
ZGxlVUlTdHJpbmcoJFVJU3RyaW5nLCAka2V5LCAkY29tbWVudCwgJGZpbGUsICRtYWNyb0xpbmUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgJG1hY3JvID0gIiI7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAkZXhwZWN0ZWQgPSAiIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICRsb2NhbGl6
ZWRDb3VudCsrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNp
ZiAoJGlzRGVidWdNYWNyb3skdG9rZW59KSB7Ci0gICAgICAgICAgICAgICAgICAgICRuZXN0aW5n
TGV2ZWwgPSAwIGlmICFkZWZpbmVkICRuZXN0aW5nTGV2ZWw7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICB9Ci0gICAgCi0gICAg
Z290byBoYW5kbGVTdHJpbmcgaWYgZGVmaW5lZCAkc3RyaW5nOwotICAgIAotICAgIGlmICgkZXhw
ZWN0ZWQpIHsKLSAgICAgICAgcHJpbnQgIiRmaWxlOiByZWFjaGVkIGVuZCBvZiBmaWxlIGJ1dCBl
eHBlY3RlZCAkZXhwZWN0ZWRcbiI7Ci0gICAgICAgICRzYXdFcnJvciA9IDE7Ci0gICAgfQotICAg
IAotICAgIGNsb3NlIFNPVVJDRTsKLX0KLQotIyBVbmVzY2FwZXMgQyBsYW5ndWFnZSBoZXhhZGVj
aW1hbCBlc2NhcGUgc2VxdWVuY2VzLgotc3ViIFVuZXNjYXBlSGV4U2VxdWVuY2UoJCkKLXsKLSAg
ICBteSAoJG9yaWdpbmFsU3RyKSA9IEBfOwotCi0gICAgbXkgJGVzY2FwZWRTdHIgPSAkb3JpZ2lu
YWxTdHI7Ci0gICAgbXkgJHVuZXNjYXBlZFN0ciA9ICIiOwotCi0gICAgZm9yICg7OykgewotICAg
ICAgICBpZiAoJGVzY2FwZWRTdHIgPX4gcy1eXFx4KFtbOnhkaWdpdDpdXSspLS0pIHsKLSAgICAg
ICAgICAgIGlmICgyNTYgPD0gaGV4KCQxKSkgewotICAgICAgICAgICAgICAgIHByaW50ICJIZXhh
ZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ugb3V0IG9mIHJhbmdlOiBcXHgkMVxuIjsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdW5kZWY7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAkdW5lc2Nh
cGVkU3RyIC49IHBhY2soIkgqIiwgJDEpOwotICAgICAgICB9IGVsc2lmICgkZXNjYXBlZFN0ciA9
fiBzLV4oLiktLSkgewotICAgICAgICAgICAgJHVuZXNjYXBlZFN0ciAuPSAkMTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiAkdW5lc2NhcGVkU3RyOwotICAgICAgICB9Ci0g
ICAgfQotfQotCi1teSAlc3RyaW5nQnlLZXk7Ci1teSAlY29tbWVudEJ5S2V5OwotbXkgJWZpbGVC
eUtleTsKLW15ICVsaW5lQnlLZXk7Ci0KLXN1YiBIYW5kbGVVSVN0cmluZwotewotICAgIG15ICgk
c3RyaW5nLCAka2V5LCAkY29tbWVudCwgJGZpbGUsICRsaW5lKSA9IEBfOwotCi0gICAgbXkgJGJh
ZCA9IDA7Ci0gICAgJHN0cmluZyA9IFVuZXNjYXBlSGV4U2VxdWVuY2UoJHN0cmluZyk7Ci0gICAg
aWYgKCFkZWZpbmVkKCRzdHJpbmcpKSB7Ci0gICAgICAgIHByaW50ICIkZmlsZTokbGluZTogc3Ry
aW5nIGhhcyBhbiBpbGxlZ2FsIGhleGFkZWNpbWFsIGVzY2FwZSBzZXF1ZW5jZVxuIjsKLSAgICAg
ICAgJGJhZCA9IDE7Ci0gICAgfQotICAgICRrZXkgPSBVbmVzY2FwZUhleFNlcXVlbmNlKCRrZXkp
OwotICAgIGlmICghZGVmaW5lZCgka2V5KSkgewotICAgICAgICBwcmludCAiJGZpbGU6JGxpbmU6
IGtleSBoYXMgYW4gaWxsZWdhbCBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2VcbiI7Ci0gICAg
ICAgICRiYWQgPSAxOwotICAgIH0KLSAgICAkY29tbWVudCA9IFVuZXNjYXBlSGV4U2VxdWVuY2Uo
JGNvbW1lbnQpOwotICAgIGlmICghZGVmaW5lZCgkY29tbWVudCkpIHsKLSAgICAgICAgcHJpbnQg
IiRmaWxlOiRsaW5lOiBjb21tZW50IGhhcyBhbiBpbGxlZ2FsIGhleGFkZWNpbWFsIGVzY2FwZSBz
ZXF1ZW5jZVxuIjsKLSAgICAgICAgJGJhZCA9IDE7Ci0gICAgfQotICAgIGlmIChncmVwIHsgJF8g
PT0gMHhGRkZEIH0gdW5wYWNrICJVKiIsICRzdHJpbmcpIHsKLSAgICAgICAgcHJpbnQgIiRmaWxl
OiRsaW5lOiBzdHJpbmcgZm9yIHRyYW5zbGF0aW9uIGhhcyBpbGxlZ2FsIFVURi04IC0tIG1vc3Qg
bGlrZWx5IGEgcHJvYmxlbSB3aXRoIHRoZSBUZXh0IEVuY29kaW5nIG9mIHRoZSBzb3VyY2UgZmls
ZVxuIjsKLSAgICAgICAgJGJhZCA9IDE7Ci0gICAgfQotICAgIGlmICgkc3RyaW5nIG5lICRrZXkg
JiYgZ3JlcCB7ICRfID09IDB4RkZGRCB9IHVucGFjayAiVSoiLCAka2V5KSB7Ci0gICAgICAgIHBy
aW50ICIkZmlsZTokbGluZToga2V5IGhhcyBpbGxlZ2FsIFVURi04IC0tIG1vc3QgbGlrZWx5IGEg
cHJvYmxlbSB3aXRoIHRoZSBUZXh0IEVuY29kaW5nIG9mIHRoZSBzb3VyY2UgZmlsZVxuIjsKLSAg
ICAgICAgJGJhZCA9IDE7Ci0gICAgfQotICAgIGlmIChncmVwIHsgJF8gPT0gMHhGRkZEIH0gdW5w
YWNrICJVKiIsICRjb21tZW50KSB7Ci0gICAgICAgIHByaW50ICIkZmlsZTokbGluZTogY29tbWVu
dCBmb3IgdHJhbnNsYXRpb24gaGFzIGlsbGVnYWwgVVRGLTggLS0gbW9zdCBsaWtlbHkgYSBwcm9i
bGVtIHdpdGggdGhlIFRleHQgRW5jb2Rpbmcgb2YgdGhlIHNvdXJjZSBmaWxlXG4iOwotICAgICAg
ICAkYmFkID0gMTsKLSAgICB9Ci0gICAgaWYgKCRiYWQpIHsKLSAgICAgICAgJHNhd0Vycm9yID0g
MTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBpZiAoJHN0cmluZ0J5S2V5eyRr
ZXl9ICYmICRzdHJpbmdCeUtleXska2V5fSBuZSAkc3RyaW5nKSB7Ci0gICAgICAgIHByaW50ICIk
ZmlsZTokbGluZTogd2FybmluZzogZW5jb3VudGVyZWQgdGhlIHNhbWUga2V5LCBcIiRrZXlcIiwg
dHdpY2UsIHdpdGggZGlmZmVyZW50IHN0cmluZ3NcbiI7Ci0gICAgICAgIHByaW50ICIkZmlsZUJ5
S2V5eyRrZXl9OiRsaW5lQnlLZXl7JGtleX06IHdhcm5pbmc6IHByZXZpb3VzIG9jY3VycmVuY2Vc
biI7Ci0gICAgICAgICRrZXlDb2xsaXNpb25Db3VudCsrOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotICAgIGlmICgkY29tbWVudEJ5S2V5eyRrZXl9ICYmICRjb21tZW50QnlLZXl7JGtleX0gbmUg
JGNvbW1lbnQpIHsKLSAgICAgICAgcHJpbnQgIiRmaWxlOiRsaW5lOiB3YXJuaW5nOiBlbmNvdW50
ZXJlZCB0aGUgc2FtZSBrZXksIFwiJGtleVwiLCB0d2ljZSwgd2l0aCBkaWZmZXJlbnQgY29tbWVu
dHNcbiI7Ci0gICAgICAgIHByaW50ICIkZmlsZUJ5S2V5eyRrZXl9OiRsaW5lQnlLZXl7JGtleX06
IHdhcm5pbmc6IHByZXZpb3VzIG9jY3VycmVuY2VcbiI7Ci0gICAgICAgICRrZXlDb2xsaXNpb25D
b3VudCsrOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgJGZpbGVCeUtleXska2V5fSA9
ICRmaWxlOwotICAgICRsaW5lQnlLZXl7JGtleX0gPSAkbGluZTsKLSAgICAkc3RyaW5nQnlLZXl7
JGtleX0gPSAkc3RyaW5nOwotICAgICRjb21tZW50QnlLZXl7JGtleX0gPSAkY29tbWVudDsKLX0K
LQotcHJpbnQgIlxuIiBpZiAkc2F3RXJyb3IgfHwgJG5vdExvY2FsaXplZENvdW50IHx8ICROU0xv
Y2FsaXplQ291bnQ7Ci0KLW15IEB1bnVzZWRFeGNlcHRpb25zID0gc29ydCBncmVwIHsgISR1c2Vk
RXhjZXB0aW9ueyRffSB9IGtleXMgJWV4Y2VwdGlvbjsKLWlmIChAdW51c2VkRXhjZXB0aW9ucykg
ewotICAgIGZvciBteSAkdW51c2VkIChAdW51c2VkRXhjZXB0aW9ucykgewotICAgICAgICBwcmlu
dCAiJGV4Y2VwdGlvbnNGaWxlOiRleGNlcHRpb257JHVudXNlZH06IHdhcm5pbmc6IGV4Y2VwdGlv
biAkdW51c2VkIG5vdCB1c2VkXG4iOwotICAgIH0KLSAgICBwcmludCAiXG4iOwotfQotCi1wcmlu
dCAiJGxvY2FsaXplZENvdW50IGxvY2FsaXphYmxlIHN0cmluZ3NcbiIgaWYgJGxvY2FsaXplZENv
dW50OwotcHJpbnQgIiRrZXlDb2xsaXNpb25Db3VudCBrZXkgY29sbGlzaW9uc1xuIiBpZiAka2V5
Q29sbGlzaW9uQ291bnQ7Ci1wcmludCAiJG5vdExvY2FsaXplZENvdW50IHN0cmluZ3Mgbm90IG1h
cmtlZCBmb3IgbG9jYWxpemF0aW9uXG4iIGlmICRub3RMb2NhbGl6ZWRDb3VudDsKLXByaW50ICIk
TlNMb2NhbGl6ZUNvdW50IHVzZXMgb2YgTlNMb2NhbGl6ZVxuIiBpZiAkTlNMb2NhbGl6ZUNvdW50
OwotcHJpbnQgc2NhbGFyKEB1bnVzZWRFeGNlcHRpb25zKSwgIiB1bnVzZWQgZXhjZXB0aW9uc1xu
IiBpZiBAdW51c2VkRXhjZXB0aW9uczsKLQotaWYgKCRzYXdFcnJvcikgewotICAgIHByaW50ICJc
bkVycm9ycyBlbmNvdW50ZXJlZC4gRXhpdGluZyB3aXRob3V0IHdyaXRpbmcgdG8gJGZpbGVUb1Vw
ZGF0ZS5cbiI7Ci0gICAgZXhpdCAxOwotfQotCi1teSAkbG9jYWxpemVkU3RyaW5ncyA9ICIiOwot
Ci1mb3IgbXkgJGtleSAoc29ydCBrZXlzICVjb21tZW50QnlLZXkpIHsKLSAgICAkbG9jYWxpemVk
U3RyaW5ncyAuPSAiLyogJGNvbW1lbnRCeUtleXska2V5fSAqL1xuXCIka2V5XCIgPSBcIiRzdHJp
bmdCeUtleXska2V5fVwiO1xuXG4iOwotfQotCi1pZiAoLWUgIiRmaWxlVG9VcGRhdGUiKSB7Ci0g
ICAgaWYgKCEkdmVyaWZ5KSB7Ci0gICAgICAgICMgV3JpdGUgb3V0IHRoZSBzdHJpbmdzIGZpbGUg
YXMgVVRGLTgKLSAgICAgICAgb3BlbiBTVFJJTkdTLCAiPiIsICIkZmlsZVRvVXBkYXRlIiBvciBk
aWU7Ci0gICAgICAgIHByaW50IFNUUklOR1MgJGxvY2FsaXplZFN0cmluZ3M7Ci0gICAgICAgIGNs
b3NlIFNUUklOR1M7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgb3BlbiBTVFJJTkdTLCAkZmlsZVRv
VXBkYXRlIG9yIGRpZTsKLQotICAgICAgICBteSAkbGFzdENvbW1lbnQ7Ci0gICAgICAgIG15ICRs
aW5lOwotCi0gICAgICAgIHdoaWxlICg8U1RSSU5HUz4pIHsKLSAgICAgICAgICAgIGNob21wOwot
Ci0gICAgICAgICAgICBuZXh0IGlmICgvXlxzKiQvKTsKLQotICAgICAgICAgICAgaWYgKC9eXC9c
KiAoLiopIFwqXC8kLykgewotICAgICAgICAgICAgICAgICRsYXN0Q29tbWVudCA9ICQxOwotICAg
ICAgICAgICAgfSBlbHNpZiAoL14iKCg/OlteXFxdfFxcW14iXSkqKSJccyo9XHMqIigoPzpbXlxc
XXxcXFteIl0pKikiOyQvKSAjCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbXkgJHN0
cmluZyA9IGRlbGV0ZSAkc3RyaW5nQnlLZXl7JDF9OwotICAgICAgICAgICAgICAgIGlmICghZGVm
aW5lZCAkc3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICIkZmlsZVRvVXBkYXRl
OiQuOiB1bnVzZWQga2V5IFwiJDFcIlxuIjsKLSAgICAgICAgICAgICAgICAgICAgJHNhd0Vycm9y
ID0gMTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAo
ISgkc3RyaW5nIGVxICQyKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiRmaWxl
VG9VcGRhdGU6JC46IHVuZXhwZWN0ZWQgdmFsdWUgXCIkMlwiIGZvciBrZXkgXCIkMVwiXG4iOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiRmaWxlQnlLZXl7JDF9OiRsaW5lQnlLZXl7
JDF9OiBleHBlY3RlZCB2YWx1ZSBcIiRzdHJpbmdcIiBkZWZpbmVkIGhlcmVcbiI7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAkc2F3RXJyb3IgPSAxOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghKCRsYXN0Q29tbWVudCBlcSAkY29tbWVudEJ5S2V5eyQx
fSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICIkZmlsZVRvVXBkYXRlOiQuOiB1
bmV4cGVjdGVkIGNvbW1lbnQgLyogJGxhc3RDb21tZW50ICovIGZvciBrZXkgXCIkMVwiXG4iOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiRmaWxlQnlLZXl7JDF9OiRsaW5lQnlLZXl7
JDF9OiBleHBlY3RlZCBjb21tZW50IC8qICRjb21tZW50QnlLZXl7JDF9ICovIGRlZmluZWQgaGVy
ZVxuIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICRzYXdFcnJvciA9IDE7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHByaW50ICIkZmlsZVRvVXBkYXRlOiQuOiBsaW5lIHdpdGggdW5leHBlY3Rl
ZCBmb3JtYXQ6ICRfXG4iOwotICAgICAgICAgICAgICAgICRzYXdFcnJvciA9IDE7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgbXkgJG1pc3NpbmcgKGtleXMgJXN0cmlu
Z0J5S2V5KSB7Ci0gICAgICAgICAgICBwcmludCAiJGZpbGVCeUtleXskbWlzc2luZ306JGxpbmVC
eUtleXskbWlzc2luZ306IG1pc3Npbmcga2V5IFwiJG1pc3NpbmdcIlxuIjsKLSAgICAgICAgICAg
ICRzYXdFcnJvciA9IDE7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoJHNhd0Vycm9yKSB7Ci0g
ICAgICAgICAgICBwcmludCAiXG4kZmlsZVRvVXBkYXRlOjA6IGZpbGUgaXMgbm90IHVwIHRvIGRh
dGUuXG4iOwotICAgICAgICAgICAgZXhpdCAxOwotICAgICAgICB9Ci0gICAgfQotfSBlbHNlIHsK
LSAgICBwcmludCAiZXJyb3I6ICRmaWxlVG9VcGRhdGUgZG9lcyBub3QgZXhpc3RcbiI7Ci0gICAg
ZXhpdCAxOwotfQorZXhlYyAiJChkaXJuYW1lICQwKS8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9leHRy
YWN0LWxvY2FsaXphYmxlLXN0cmluZ3MucGwiICIkQCIKSW5kZXg6IFRvb2xzL1NjcmlwdHMvdXBk
YXRlLXdlYmtpdC1sb2NhbGl6YWJsZS1zdHJpbmdzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmtpdC1sb2NhbGl6YWJsZS1zdHJpbmdzCShyZXZpc2lvbiAxNTYxNjgpCisr
KyBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbG9jYWxpemFibGUtc3RyaW5ncwkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNSArNDUsNSBAQCBteSAkd2ViSW5zcGVjdG9yVUlGaWxlVG9VcGRhdGUg
PSAiU291cmNlCiAKIGNoZGlyV2ViS2l0KCk7CiAKLXN5c3RlbSAiVG9vbHMvU2NyaXB0cy9leHRy
YWN0LWxvY2FsaXphYmxlLXN0cmluZ3MiLCAkd2ViQ29yZUZpbGVUb1VwZGF0ZSwgQHdlYktpdERp
cmVjdG9yaWVzVG9TY2FuOworc3lzdGVtICJTb3VyY2UvV2ViQ29yZS9leHRyYWN0LWxvY2FsaXph
YmxlLXN0cmluZ3MucGwiLCAkd2ViQ29yZUZpbGVUb1VwZGF0ZSwgQHdlYktpdERpcmVjdG9yaWVz
VG9TY2FuOwogc3lzdGVtICJUb29scy9TY3JpcHRzL2V4dHJhY3QtbG9jYWxpemFibGUtanMtc3Ry
aW5ncyIsICR3ZWJJbnNwZWN0b3JVSUZpbGVUb1VwZGF0ZSwgQHdlYkluc3BlY3RvclVJRGlyZWN0
b3JpZXNUb1NjYW47Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>