<?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>160772</bug_id>
          
          <creation_ts>2016-08-11 11:45:56 -0700</creation_ts>
          <short_desc>Don&apos;t append result of makeString</short_desc>
          <delta_ts>2016-08-11 17:35:21 -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>New Bugs</component>
          <version>WebKit 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 name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219352</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-11 11:45:56 -0700</bug_when>
    <thetext>Don&apos;t append result of makeString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219356</commentid>
    <comment_count>1</comment_count>
      <attachid>285839</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-11 11:49:00 -0700</bug_when>
    <thetext>Created attachment 285839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219357</commentid>
    <comment_count>2</comment_count>
      <attachid>285839</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-11 11:59:02 -0700</bug_when>
    <thetext>Comment on attachment 285839
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=285839&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:134
&gt; +    builder.append(&quot;Object store: &quot;);

You want appendLiteral here.

&gt; Source/WebKit2/Shared/Gamepad/GamepadData.cpp:66
&gt; +    builder.append(&quot; axes, &quot;);

You want appendLiteral here.

&gt; Source/WebKit2/Shared/Gamepad/GamepadData.cpp:68
&gt; +    builder.append(&quot; buttons\n&quot;);

You want appendLiteral here.

&gt; Source/WebKit2/Shared/Gamepad/GamepadData.cpp:71
&gt; +        builder.append(&quot; Axis &quot;);

You want appendLiteral here.

&gt; Source/WebKit2/Shared/Gamepad/GamepadData.cpp:73
&gt; +        builder.append(&quot;: &quot;);

You want appendLiteral here.

&gt; Source/WebKit2/Shared/Gamepad/GamepadData.cpp:79
&gt; +        builder.append(&quot; Button &quot;);

You want appendLiteral here.

&gt; Source/WebKit2/Shared/Gamepad/GamepadData.cpp:81
&gt; +        builder.append(&quot;: &quot;);

You want appendLiteral here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219362</commentid>
    <comment_count>3</comment_count>
      <attachid>285842</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-11 12:09:33 -0700</bug_when>
    <thetext>Created attachment 285842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219399</commentid>
    <comment_count>4</comment_count>
      <attachid>285849</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-11 13:34:49 -0700</bug_when>
    <thetext>Created attachment 285849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219471</commentid>
    <comment_count>5</comment_count>
      <attachid>285849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-11 17:35:17 -0700</bug_when>
    <thetext>Comment on attachment 285849
Patch

Clearing flags on attachment: 285849

Committed r204394: &lt;http://trac.webkit.org/changeset/204394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219472</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-11 17:35:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285839</attachid>
            <date>2016-08-11 11:49:00 -0700</date>
            <delta_ts>2016-08-11 12:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160772-20160811114723.patch</filename>
            <type>text/plain</type>
            <size>8037</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDM2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA4LTExICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgYXBw
ZW5kIHJlc3VsdCBvZiBtYWtlU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBhcHBlbmQobWFrZVN0cmluZyguLi4pKSBhbHdheXMgZG9lcyB1bm5l
Y2Vzc2FyeSBhbGxvY2F0aW9ucyBhbmQgY29waWVzLgorICAgICAgICBJdCdzIGN1cnJlbnRseSBv
bmx5IHVzZWQgaW4gZGVidWcgbG9nZ2luZywgYnV0IHdlIHNob3VsZG4ndCBoYXZlIHRoaXMgcGF0
dGVybiBpbiBXZWJLaXQuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5k
ZXhWYWx1ZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5kZXhWYWx1
ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCRGF0YWJhc2VJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlSW5m
bzo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUlu
Zm86OmxvZ2dpbmdTdHJpbmcpOgorCiAyMDE2LTA4LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IFdpbkNhaXJvIGJ1aWxkIGFmdGVy
IHIyMDQzMjcuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SW5kZXhWYWx1ZVN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAkocmV2aXNpb24gMjA0MzM1KQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9y
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJREJLZXlS
YW5nZURhdGEuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5SW5kZXgu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtMzg3LDEyICszODgsMTUgQEAgY29uc3Qg
SURCS2V5RGF0YSYgSW5kZXhWYWx1ZVN0b3JlOjpJdGVyYQogI2lmICFMT0dfRElTQUJMRUQKIFN0
cmluZyBJbmRleFZhbHVlU3RvcmU6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogewotICAgIFN0cmlu
ZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoYXV0byYga2V5
IDogbV9vcmRlcmVkS2V5cykgewotICAgICAgICByZXN1bHQuYXBwZW5kKG1ha2VTdHJpbmcoIktl
eTogIiwga2V5LmxvZ2dpbmdTdHJpbmcoKSkpOwotICAgICAgICByZXN1bHQuYXBwZW5kKG1ha2VT
dHJpbmcoIiAgRW50cnkgaGFzICIsIFN0cmluZzo6bnVtYmVyKG1fcmVjb3Jkcy5nZXQoa2V5KS0+
Z2V0Q291bnQoKSksICIgZW50cmllcyIpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIktleTog
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGtleS5sb2dnaW5nU3RyaW5nKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiICBFbnRyeSBoYXMgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG1fcmVjb3Jkcy5nZXQoa2V5KS0+Z2V0Q291bnQoKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCIgZW50cmllcyIpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5m
by5jcHAJKHJldmlzaW9uIDIwNDMzNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJbmZvLmgi
CiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKICNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ3LDExICsxNDksMTgg
QEAgdm9pZCBJREJEYXRhYmFzZUluZm86OmRlbGV0ZU9iamVjdFN0b3JlKAogI2lmICFMT0dfRElT
QUJMRUQKIFN0cmluZyBJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogewot
ICAgIFN0cmluZyB0b3AgPSBtYWtlU3RyaW5nKCJEYXRhYmFzZTogIiwgbV9uYW1lLCAiIHZlcnNp
b24gIiwgU3RyaW5nOjpudW1iZXIobV92ZXJzaW9uKSwgIlxuIik7Ci0gICAgZm9yIChhdXRvIG9i
amVjdFN0b3JlIDogbV9vYmplY3RTdG9yZU1hcC52YWx1ZXMoKSkKLSAgICAgICAgdG9wLmFwcGVu
ZChtYWtlU3RyaW5nKG9iamVjdFN0b3JlLmxvZ2dpbmdTdHJpbmcoMSksICJcbiIpKTsKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIkRhdGFiYXNlOiIpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKG1fbmFtZSk7CisgICAgYnVpbGRlci5hcHBlbmQoIiB2ZXJzaW9u
ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmVyc2lvbik7CisgICAgYnVpbGRlci5h
cHBlbmQoJ1xuJyk7CisgICAgZm9yIChhdXRvIG9iamVjdFN0b3JlIDogbV9vYmplY3RTdG9yZU1h
cC52YWx1ZXMoKSkgeworICAgICAgICBidWlsZGVyLmFwcGVuZChvYmplY3RTdG9yZS5sb2dnaW5n
U3RyaW5nKDEpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgfQogCi0gICAg
cmV0dXJuIHRvcDsgCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KICNlbmRpZgog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0
U3RvcmVJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAkocmV2aXNpb24gMjA0MzM1KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5m
by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlSW5mby5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCkBAIC0x
MjYsMTUgKzEyNywxOSBAQCB2b2lkIElEQk9iamVjdFN0b3JlSW5mbzo6ZGVsZXRlSW5kZXgodWlu
CiAjaWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6bG9nZ2luZ1N0
cmluZyhpbnQgaW5kZW50KSBjb25zdAogewotICAgIFN0cmluZyBpbmRlbnRTdHJpbmc7CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50OyAr
K2kpCi0gICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoIiAiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoJyAnKTsKIAotICAgIFN0cmluZyB0b3AgPSBtYWtlU3RyaW5nKGluZGVudFN0cmluZywg
Ik9iamVjdCBzdG9yZTogIiwgbV9uYW1lLCBTdHJpbmc6OmZvcm1hdCgiICglIiBQUkl1NjQgIikg
XG4iLCBtX2lkZW50aWZpZXIpKTsKLSAgICBmb3IgKGF1dG8gaW5kZXggOiBtX2luZGV4TWFwLnZh
bHVlcygpKQotICAgICAgICB0b3AuYXBwZW5kKG1ha2VTdHJpbmcoaW5kZXgubG9nZ2luZ1N0cmlu
ZyhpbmRlbnQgKyAxKSwgIlxuIikpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJPYmplY3Qgc3RvcmU6
ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kKG1fbmFtZSk7CisgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIobV9pZGVudGlmaWVyKTsKKyAgICBmb3IgKGF1dG8gaW5kZXggOiBtX2luZGV4TWFwLnZhbHVl
cygpKSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGluZGV4LmxvZ2dpbmdTdHJpbmcoaW5kZW50
ICsgMSkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICB9CiAKLSAgICByZXR1
cm4gdG9wOyAKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogI2VuZGlmCiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDM3OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA4LTExICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgYXBwZW5k
IHJlc3VsdCBvZiBtYWtlU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjA3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R2FtZXBhZERhdGE6OmlzTnVsbCk6CisgICAgICAgIChXZWJLaXQ6OkdhbWVwYWRE
YXRhOjpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBTaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0
YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDE2LTA4LTEw
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Rml4IGNyYXNoIHdoZW4gY2hhbmdpbmcgY29va2llIGFjY2VwdCBwb2xpY3kgYWZ0ZXIgcjIwNDMy
NwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNw
cAkocmV2aXNpb24gMjA0MzM1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2Ft
ZXBhZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywyMSArNTcsMzQgQEAgYm9vbCBHYW1l
cGFkRGF0YTo6aXNOdWxsKCkgY29uc3QKICAgICByZXR1cm4gIWluZGV4ICYmIGF4aXNWYWx1ZXMu
aXNFbXB0eSgpICYmIGJ1dHRvblZhbHVlcy5pc0VtcHR5KCk7CiB9CiAKKyNpZiAhTE9HX0RJU0FC
TEVECiBTdHJpbmcgR2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogewogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKIAotICAgIGJ1aWxkZXIuYXBwZW5kKG1ha2VTdHJpbmcoU3Ry
aW5nOjpudW1iZXIoYXhpc1ZhbHVlcy5zaXplKCkpLCAiIGF4ZXMsICIsIFN0cmluZzo6bnVtYmVy
KGJ1dHRvblZhbHVlcy5zaXplKCkpLCAiIGJ1dHRvbnNcbiIpKTsKLQotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYXhpc1ZhbHVlcy5zaXplKCk7ICsraSkKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQobWFrZVN0cmluZygiIEF4aXMgIiwgU3RyaW5nOjpudW1iZXIoaSksICI6ICIsIFN0cmluZzo6
bnVtYmVyKGF4aXNWYWx1ZXNbaV0pKSk7Ci0KLSAgICBidWlsZGVyLmFwcGVuZCgiXG4iKTsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJ1dHRvblZhbHVlcy5zaXplKCk7ICsraSkKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQobWFrZVN0cmluZygiIEJ1dHRvbiAiLCBTdHJpbmc6Om51bWJlcihp
KSwgIjogIiwgU3RyaW5nOjpudW1iZXIoYnV0dG9uVmFsdWVzW2ldKSkpOworICAgIGJ1aWxkZXIu
YXBwZW5kTnVtYmVyKGF4aXNWYWx1ZXMuc2l6ZSgpKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiIGF4
ZXMsICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGJ1dHRvblZhbHVlcy5zaXplKCkpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKCIgYnV0dG9uc1xuIik7CisKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGF4aXNWYWx1ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
IiBBeGlzICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGF4aXNWYWx1
ZXNbaV0pOworICAgIH0KKworICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgYnV0dG9uVmFsdWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCIgQnV0dG9uICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKGJ1dHRvblZhbHVlc1tpXSk7CisgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5oCShyZXZpc2lvbiAyMDQzMzUp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw3ICs0Nyw5IEBAIHN0cnVjdCBHYW1lcGFkRGF0YSB7CiAgICAgVmVjdG9y
PGRvdWJsZT4gYXhpc1ZhbHVlczsKICAgICBWZWN0b3I8ZG91YmxlPiBidXR0b25WYWx1ZXM7CiAK
KyNpZiAhTE9HX0RJU0FCTEVECiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25zdDsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjA0MzM1KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcg
Kzg1LDYgQEAgY2xhc3MgV2ViQ29udGV4dFN1cHBsZW1lbnQ7CiBjbGFzcyBXZWJJY29uRGF0YWJh
c2U7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7Ci1zdHJ1Y3QgR2Ft
ZXBhZERhdGE7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1
Y3QgU3RhdGlzdGljc0RhdGE7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285842</attachid>
            <date>2016-08-11 12:09:33 -0700</date>
            <delta_ts>2016-08-11 13:34:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160772-20160811120756.patch</filename>
            <type>text/plain</type>
            <size>34473</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0MzM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDE2LTA4LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVXNlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwgd2hlbiBwb3NzaWJs
ZSBkb24ndCBhcHBlbmQgcmVzdWx0IG9mIG1ha2VTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVz
dC5jcHA6CisgICAgICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBBUEkv
dGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHA6CisgICAgICAgIChQaW5nUG9uZ1N0
YWNrT3ZlcmZsb3dPYmplY3RfaGFzSW5zdGFuY2UpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpBcnJheVBhdHRlcm5Ob2RlOjp0b1N0cmlu
Zyk6CisgICAgICAgIChKU0M6OlJlc3RQYXJhbWV0ZXJOb2RlOjp0b1N0cmluZyk6CisgICAgICAg
ICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5j
ZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6Cisg
ICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBPcHRpb24pOgorCiAyMDE2LTA4LTEwICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIEFkZCBNb2R1
bGVMb2FkZXJQcm90b3R5cGUgYW5kIG1vdmUgbWV0aG9kcyB0byBpdApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1p
dFRlc3QuY3BwCShyZXZpc2lvbiAyMDQzMzUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIs
OSArMTQyLDkgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgdW5z
aWduZWQgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0
bWVudE1pbGxpczsKIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwot
ICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0
YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsK
KyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rpb24gZm9vKCkg
eyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGlt
ZSA+ICIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApOwotICAgICAgICAgICAgc2NyaXB0QnVp
bGRlci5hcHBlbmQoIikgYnJlYWs7IH0gfSBmb28oKTsiKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9IGZvbygpOyIpOwogCiAgICAgICAgICAg
ICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3Jp
cHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBleGNlcHRp
b24gPSBudWxscHRyOwpAQCAtMTc4LDE2ICsxNzgsMTYgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1l
TGltaXQoKQogICAgICAgICAgICAgdW5zaWduZWQgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZl
RmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0bWVudE1pbGxpczsKIAogICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciBzY3JpcHRCdWlsZGVyOwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQo
InZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyIKKyAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgidmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7Igog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uIHJlY3Vyc2UoaSkgeyIK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3VzZSBzdHJpY3QnOyIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaWYgKGkgJSAxMDAwID09PSAwKSB7
IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpZiAoY3VycmVudENQ
VVRpbWUoKSAtIHN0YXJ0VGltZSA+Iik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVu
ZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCAvIDEwMDAuMCk7Ci0gICAg
ICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCgiICAgICAgICkgeyByZXR1cm47IH0iKTsKLSAg
ICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCIgICAgfSIpOwotICAgICAgICAgICAgc2Ny
aXB0QnVpbGRlci5hcHBlbmQoIiAgICByZXR1cm4gcmVjdXJzZShpICsgMSk7IH0iKTsKLSAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCJyZWN1cnNlKDApOyIpOworICAgICAgICAgICAg
c2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgICAgKSB7IHJldHVybjsgfSIpOworICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgfSIpOworICAgICAgICAg
ICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgcmV0dXJuIHJlY3Vyc2UoaSArIDEp
OyB9Iik7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoInJlY3Vyc2Uo
MCk7Iik7CiAKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxwdHI7CkBAIC0yMjEsOSArMjIxLDkgQEAgaW50
IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAgICAgICAgICAgdW5zaWduZWQgdGltZUFmdGVy
V2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgPSAzMDAgKyB0aWVyQWRqdXN0bWVudE1pbGxpczsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzY3JpcHRCdWlsZGVyOwotICAg
ICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0
VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHRyeSB7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAi
KTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZnVuY3Rpb24gZm9v
KCkgeyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgdHJ5IHsgd2hpbGUgKHRydWUp
IHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAt
IHN0YXJ0VGltZSA+ICIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIo
dGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjApOwotICAgICAgICAgICAg
c2NyaXB0QnVpbGRlci5hcHBlbmQoIikgYnJlYWs7IH0gfSBjYXRjaChlKSB7IH0gfSBmb28oKTsi
KTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9
IGNhdGNoKGUpIHsgfSB9IGZvbygpOyIpOwogCiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3Jp
cHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwpAQCAt
MjU4LDkgKzI1OCw5IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAg
IHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwICsgdGllckFk
anVzdG1lbnRNaWxsaXM7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIg
c2NyaXB0QnVpbGRlcjsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCJmdW5jdGlv
biBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkg
eyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0g
c3RhcnRUaW1lID4gIik7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwo
ImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxl
ICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVU
aW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5k
TnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAwMC4wKTsKLSAgICAg
ICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CisgICAg
ICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28oKTsi
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKQEAgLTI5NSw5ICsyOTUs
OSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiAgICAgICAgICAgICB1bnNpZ25lZCB0
aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCA9IDMwMCArIHRpZXJBZGp1c3RtZW50TWls
bGlzOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxk
ZXI7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCgiZnVuY3Rpb24gZm9vKCkgeyB2
YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsgd2hpbGUgKHRydWUpIHsgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+
ICIpOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBm
b28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3Rh
cnRUaW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1l
QWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJlZCAvIDEwMDAuMCk7Ci0gICAgICAgICAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZCgiKSBicmVhazsgfSB9IGZvbygpOyIpOworICAgICAgICAgICAgc2Ny
aXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKICAgICAg
ICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIGV4
Y2VwdGlvbiA9IG51bGxwdHI7CkBAIC0zMzIsOSArMzMyLDkgQEAgaW50IHRlc3RFeGVjdXRpb25U
aW1lTGltaXQoKQogICAgICAgICAgICAgdW5zaWduZWQgbWF4QnVzeUxvb3BUaW1lID0gNzUwICsg
dGllckFkanVzdG1lbnRNaWxsaXM7CiAKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0
QnVpbGRlcjsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCJmdW5jdGlvbiBmb28o
KSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRU
aW1lID4gIik7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoImZ1bmN0
aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxlICh0cnVl
KSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVUaW1lKCkg
LSBzdGFydFRpbWUgPiAiKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTnVtYmVy
KG1heEJ1c3lMb29wVGltZSAvIDEwMDAuMCk7IC8vIGluIHNlY29uZHMuCi0gICAgICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZCgiKSBicmVhazsgfSB9IGZvbygpOyIpOworICAgICAgICAgICAg
c2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAKICAg
ICAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAg
IGV4Y2VwdGlvbiA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAJKHJl
dmlzaW9uIDIwNDMzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1Bv
bmdTdGFja092ZXJmbG93VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDEzICs1NiwxMyBA
QCBzdGF0aWMgYm9vbCBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dPYmplY3RfCiAgICAgICAgIHJlc3Vs
dCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgZnVuY3Rpb24sIGNvbnN0cnVjdG9y
LCAxLCAmcG9zc2libGVWYWx1ZSwgZXhjZXB0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJkdW1teS52YWx1
ZU9mKFswXSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImR1bW15LnZhbHVlT2Yo
WzBdIik7CiAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgMzUwMDA7IGkrKykgewotICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIiwgWyIpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIsIFsiKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGkpOwotICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoIl0iKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiXSIpOwogICAgICAgICB9Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIpOyIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIik7Iik7CiAKICAgICAgICAgSlNTdHJpbmdS
ZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoYnVpbGRlci50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXN1bHQgPSBKU0V2YWx1YXRlU2NyaXB0KGNv
bnRleHQsIHNjcmlwdCwgTlVMTCwgTlVMTCwgMSwgZXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJl
dmlzaW9uIDIwNDMzNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc0Nyw3ICszNzQ3LDcgQEAgdm9pZCBB
cnJheVBhdHRlcm5Ob2RlOjp0b1N0cmluZyhTdHJpbmdCdQogICAgICAgICAgICAgYnJlYWs7CiAK
ICAgICAgICAgY2FzZSBCaW5kaW5nVHlwZTo6UmVzdEVsZW1lbnQ6Ci0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgiLi4uIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi4u
LiIpOwogICAgICAgICAgICAgdGFyZ2V0LnBhdHRlcm4tPnRvU3RyaW5nKGJ1aWxkZXIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTM5MjgsNyArMzkyOCw3IEBAIHZvaWQgUmVz
dFBhcmFtZXRlck5vZGU6OmNvbGxlY3RCb3VuZElkZW4KIAogdm9pZCBSZXN0UGFyYW1ldGVyTm9k
ZTo6dG9TdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29uc3QKIHsKLSAgICBidWlsZGVy
LmFwcGVuZCgiLi4uIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIuLi4iKTsKICAgICBt
X3BhdHRlcm4tPnRvU3RyaW5nKGJ1aWxkZXIpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAkocmV2aXNpb24gMjA0MzM1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxMiw3ICsyMTIsNyBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRp
emVkVG9TdHJpbmcoCiAKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5h
cHBlbmQobmFtZVN0cmluZyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcp
OwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMjA0MzM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcz
MCwxMyArNzMwLDEzIEBAIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbihTdHJpbmdCdWlsZGVyJiAK
ICAgICBvcHRpb24uZHVtcChidWlsZGVyKTsKIAogICAgIGlmICh3YXNPdmVycmlkZGVuICYmIChk
dW1wRGVmYXVsdHNPcHRpb24gPT0gRHVtcERlZmF1bHRzKSkgewotICAgICAgICBidWlsZGVyLmFw
cGVuZCgiIChkZWZhdWx0OiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgKGRl
ZmF1bHQ6ICIpOwogICAgICAgICBvcHRpb24uZGVmYXVsdE9wdGlvbigpLmR1bXAoYnVpbGRlcik7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIpIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiKSIpOwogICAgIH0KIAogICAgIGlmIChuZWVkc0Rlc2NyaXB0aW9uKSB7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIgICAuLi4gIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiICAgLi4uICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChvcHRpb24uZGVzY3JpcHRpb24o
KSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDQzNjYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAorMjAxNi0w
OC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVzZSBTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsIHdoZW4gcG9zc2libGUgZG9uJ3Qg
YXBwZW5kIHJlc3VsdCBvZiBtYWtlU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vp
bmlnLgorCisgICAgICAgIFN0cmluZ0J1aWxkZXI6OmFwcGVuZCBkb2VzIGFuIHVubmVjZXNzYXJ5
IHN0cmxlbiBjYWxsLgorICAgICAgICBhcHBlbmQobWFrZVN0cmluZyguLi4pKSBhbHdheXMgZG9l
cyB1bm5lY2Vzc2FyeSBhbGxvY2F0aW9ucyBhbmQgY29waWVzLgorICAgICAgICBJdCdzIGN1cnJl
bnRseSBvbmx5IHVzZWQgaW4gZGVidWcgbG9nZ2luZywgYnV0IHdlIHNob3VsZG4ndCBoYXZlIHRo
aXMgcGF0dGVybiBpbiBXZWJLaXQuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SW5k
ZXhWYWx1ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlSW5mbzo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZUluZm86OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0Nv
bWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6cHJlZml4VHJlZVZlcnRleFRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpyZWN1cnNpdmVQcmludCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjdGlvbk5hbWUpOgorICAgICAgICAqIGh0bWwv
TWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXN0cmljdGlvbk5h
bWUpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFwcGVuZEJvb2xlYW4pOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kSGFz
aENvdW50ZWRTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6
dG9TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1BPREludGVydmFsLmg6CisgICAgICAgIChX
ZWJDb3JlOjpQT0RJbnRlcnZhbDo6dG9TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNldEhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
VVJMOjpzZXRIb3N0QW5kUG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OnNlcmlhbGl6ZSk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBw
ZW5kT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZz
ZXRzKToKKwogMjAxNi0wOC0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEZpeCBXaW5DYWlybyBidWlsZCBhZnRlciByMjA0MzI3LgpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9y
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0luZGV4VmFsdWVTdG9yZS5jcHAJKHJldmlzaW9uIDIwNDMzNSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSURCS2V5UmFuZ2VEYXRhLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUluZGV4LmgiCisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3Bh
Y2UgSURCU2VydmVyIHsKQEAgLTM4NywxMiArMzg4LDE1IEBAIGNvbnN0IElEQktleURhdGEmIElu
ZGV4VmFsdWVTdG9yZTo6SXRlcmEKICNpZiAhTE9HX0RJU0FCTEVECiBTdHJpbmcgSW5kZXhWYWx1
ZVN0b3JlOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKIHsKLSAgICBTdHJpbmcgcmVzdWx0OworICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBmb3IgKGF1dG8mIGtleSA6IG1fb3JkZXJlZEtl
eXMpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtYWtlU3RyaW5nKCJLZXk6ICIsIGtleS5sb2dn
aW5nU3RyaW5nKCkpKTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChtYWtlU3RyaW5nKCIgIEVudHJ5
IGhhcyAiLCBTdHJpbmc6Om51bWJlcihtX3JlY29yZHMuZ2V0KGtleSktPmdldENvdW50KCkpLCAi
IGVudHJpZXMiKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiS2V5OiAiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoa2V5LmxvZ2dpbmdTdHJpbmcoKSk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiICBFbnRyeSBoYXMgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKG1fcmVjb3Jkcy5nZXQoa2V5KS0+Z2V0Q291bnQoKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIGVudHJpZXMiKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRh
YmFzZUluZm8uY3BwCShyZXZpc2lvbiAyMDQzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNl
SW5mby5oIgogCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0NywxMSAr
MTQ5LDE4IEBAIHZvaWQgSURCRGF0YWJhc2VJbmZvOjpkZWxldGVPYmplY3RTdG9yZSgKICNpZiAh
TE9HX0RJU0FCTEVECiBTdHJpbmcgSURCRGF0YWJhc2VJbmZvOjpsb2dnaW5nU3RyaW5nKCkgY29u
c3QKIHsKLSAgICBTdHJpbmcgdG9wID0gbWFrZVN0cmluZygiRGF0YWJhc2U6ICIsIG1fbmFtZSwg
IiB2ZXJzaW9uICIsIFN0cmluZzo6bnVtYmVyKG1fdmVyc2lvbiksICJcbiIpOwotICAgIGZvciAo
YXV0byBvYmplY3RTdG9yZSA6IG1fb2JqZWN0U3RvcmVNYXAudmFsdWVzKCkpCi0gICAgICAgIHRv
cC5hcHBlbmQobWFrZVN0cmluZyhvYmplY3RTdG9yZS5sb2dnaW5nU3RyaW5nKDEpLCAiXG4iKSk7
CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
RGF0YWJhc2U6Iik7CisgICAgYnVpbGRlci5hcHBlbmQobV9uYW1lKTsKKyAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiB2ZXJzaW9uICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1fdmVy
c2lvbik7CisgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgZm9yIChhdXRvIG9iamVjdFN0
b3JlIDogbV9vYmplY3RTdG9yZU1hcC52YWx1ZXMoKSkgeworICAgICAgICBidWlsZGVyLmFwcGVu
ZChvYmplY3RTdG9yZS5sb2dnaW5nU3RyaW5nKDEpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
J1xuJyk7CisgICAgfQogCi0gICAgcmV0dXJuIHRvcDsgCisgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcAko
cmV2aXNpb24gMjA0MzM1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlSW5mby5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogCkBAIC0xMjYsMTUgKzEyNywxOSBAQCB2b2lkIElEQk9iamVjdFN0b3Jl
SW5mbzo6ZGVsZXRlSW5kZXgodWluCiAjaWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIElEQk9iamVj
dFN0b3JlSW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogewotICAgIFN0cmlu
ZyBpbmRlbnRTdHJpbmc7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgaW5kZW50OyArK2kpCi0gICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoIiAi
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKIAotICAgIFN0cmluZyB0b3AgPSBtYWtl
U3RyaW5nKGluZGVudFN0cmluZywgIk9iamVjdCBzdG9yZTogIiwgbV9uYW1lLCBTdHJpbmc6OmZv
cm1hdCgiICglIiBQUkl1NjQgIikgXG4iLCBtX2lkZW50aWZpZXIpKTsKLSAgICBmb3IgKGF1dG8g
aW5kZXggOiBtX2luZGV4TWFwLnZhbHVlcygpKQotICAgICAgICB0b3AuYXBwZW5kKG1ha2VTdHJp
bmcoaW5kZXgubG9nZ2luZ1N0cmluZyhpbmRlbnQgKyAxKSwgIlxuIikpOworICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiT2JqZWN0IHN0b3JlOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZChtX25h
bWUpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKG1faWRlbnRpZmllcik7CisgICAgZm9yIChh
dXRvIGluZGV4IDogbV9pbmRleE1hcC52YWx1ZXMoKSkgeworICAgICAgICBidWlsZGVyLmFwcGVu
ZChpbmRleC5sb2dnaW5nU3RyaW5nKGluZGVudCArIDEpKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoJ1xuJyk7CisgICAgfQogCi0gICAgcmV0dXJuIHRvcDsgCisgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAJKHJldmlzaW9uIDIw
NDMzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmls
dGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDggKzk2LDggQEAgc3RhdGljIFN0cmluZyBw
cmVmaXhUcmVlVmVydGV4VG9TdHJpbmcoYwogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICB3aGlsZSAoZGVwdGgtLSkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAgIik7Ci0gICAg
YnVpbGRlci5hcHBlbmQoInZlcnRleCBhY3Rpb25zOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgidmVydGV4IGFjdGlv
bnM6ICIpOwogCiAgICAgYXV0byBhY3Rpb25zU2xvdCA9IGFjdGlvbnMuZmluZCgmdmVydGV4KTsK
ICAgICBpZiAoYWN0aW9uc1Nsb3QgIT0gYWN0aW9ucy5lbmQoKSkgewpAQCAtMTE3LDcgKzExNyw3
IEBAIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZVByaW50KGNvbnN0IFByZWZpeFQKICAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVw
dGggKiAyOyArK2kpCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZCgidmVydGV4IGVkZ2U6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoInZlcnRleCBlZGdlOiAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoZWRnZS50ZXJt
LT50b1N0cmluZygpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgICAgIGRh
dGFMb2dGKCIlcyIsIGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMjA0MzM1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBTdHJpbmcgYWN0aW9uTmFtZShIVE1MTWVkaWFF
bGVtZW4KICNkZWZpbmUgQUNUSU9OKF9hY3Rpb25UeXBlKSBcCiAgICAgaWYgKGFjdGlvbiAmIChI
VE1MTWVkaWFFbGVtZW50RW51bXM6Ol9hY3Rpb25UeXBlKSkgeyBcCiAgICAgICAgIGlmICghYWN0
aW9uQnVpbGRlci5pc0VtcHR5KCkpIFwKLSAgICAgICAgYWN0aW9uQnVpbGRlci5hcHBlbmQoIiwg
Iik7IFwKKyAgICAgICAgYWN0aW9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOyBcCiAgICAg
ICAgIGFjdGlvbkJ1aWxkZXIuYXBwZW5kKCNfYWN0aW9uVHlwZSk7IFwKICAgICB9IFwKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCShyZXZpc2lv
biAyMDQzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBTdHJpbmcgcmVzdHJpY3Rp
b25OYW1lKE1lZGlhRWxlbWUKICNkZWZpbmUgQ0FTRShyZXN0cmljdGlvblR5cGUpIFwKICAgICBp
ZiAocmVzdHJpY3Rpb24gJiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXN0cmljdGlvblR5cGUpIHsg
XAogICAgICAgICBpZiAoIXJlc3RyaWN0aW9uQnVpbGRlci5pc0VtcHR5KCkpIFwKLSAgICAgICAg
ICAgIHJlc3RyaWN0aW9uQnVpbGRlci5hcHBlbmQoIiwgIik7IFwKKyAgICAgICAgICAgIHJlc3Ry
aWN0aW9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOyBcCiAgICAgICAgIHJlc3RyaWN0aW9u
QnVpbGRlci5hcHBlbmQoI3Jlc3RyaWN0aW9uVHlwZSk7IFwKICAgICB9IFwKIApJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAkocmV2
aXNpb24gMjA0MzM1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsOSArMTc2LDkgQEAgYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUoS2V5ZQogCiBzdGF0aWMgdm9pZCBhcHBlbmRCb29sZWFu
KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGJvb2wgZmxhZykK
IHsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiICAgICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKGxhYmVsKTsKLSAgICBidWlsZGVyLmFwcGVu
ZCgiOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CiAgICAgYnVpbGRlci5h
cHBlbmQoZmxhZyA/ICJZZXMiIDogIk5vIik7CiB9CiAKQEAgLTE4NywxNCArMTg3LDE0IEBAIHN0
YXRpYyB2b2lkIGFwcGVuZEhhc2hDb3VudGVkU2V0KFN0cmluZ0IKICAgICBpZiAoaGFzaENvdW50
ZWRTZXQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBidWlsZGVyLmFwcGVuZCgi
ICAgICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgICIpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKGxhYmVsKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiOlxuIik7CisgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI6XG4iKTsKIAogICAgIGZvciAoYXV0byYgZW50cnkgOiBoYXNoQ291bnRl
ZFNldCkgewotICAgICAgICBidWlsZGVyLmFwcGVuZCgiICAgICAgICAiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgICAgICAgICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChl
bnRyeS5rZXkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiOiAiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihlbnRy
eS52YWx1ZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIH0KQEAgLTIxMiw1
NCArMjEyLDU0IEBAIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZygKICAg
ICAvLyBUb3AgZnJhbWUgc3RhdHMKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJ0b3BGcmFt
ZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSIsIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVm
b3JlKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAg
IHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbzogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgICAgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOiAiKTsKICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcih0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8pOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCIgICAgdG9wRnJhbWVIYXNCZWVuUmVkaXJl
Y3RlZEZyb206ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHRvcEZyYW1lSGFz
QmVlblJlZGlyZWN0ZWRGcm9tOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0b3BGcmFt
ZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAg
YnVpbGRlci5hcHBlbmQoIiAgICB0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQ6ICIpOworICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHRvcEZyYW1lSW5pdGlhbExvYWRDb3VudDogIik7CiAg
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9wRnJhbWVJbml0aWFsTG9hZENvdW50KTsKICAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHRvcEZyYW1lSGFz
QmVlbk5hdmlnYXRlZFRvOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB0b3BG
cmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbzogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9w
RnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
IGJ1aWxkZXIuYXBwZW5kKCIgICAgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTogIik7Cisg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJv
bTogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVk
RnJvbSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgCiAgICAgLy8gU3ViZnJhbWUg
c3RhdHMKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJzdWJmcmFtZUhhc0JlZW5Mb2FkZWRC
ZWZvcmUiLCBzdWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCIgICAgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3Rl
ZFRvOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJmcmFtZUhhc0JlZW5S
ZWRpcmVjdGVkVG86ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZyYW1lSGFzQmVl
blJlZGlyZWN0ZWRUbyk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5h
cHBlbmQoIiAgICBzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTogIik7CisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgICAgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb206ICIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsK
ICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHN1YmZy
YW1lU3ViUmVzb3VyY2VDb3VudDogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAg
c3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50OiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihz
dWJmcmFtZVN1YlJlc291cmNlQ291bnQpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAg
IGFwcGVuZEhhc2hDb3VudGVkU2V0KGJ1aWxkZXIsICJzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmln
aW5zIiwgc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyk7CiAgICAgYXBwZW5kSGFzaENvdW50
ZWRTZXQoYnVpbGRlciwgInN1YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG8iLCBzdWJmcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHN1YmZyYW1lSGFzQmVlbk5h
dmlnYXRlZFRvOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJmcmFtZUhh
c0JlZW5OYXZpZ2F0ZWRUbzogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3ViZnJhbWVI
YXNCZWVuTmF2aWdhdGVkVG8pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kKCIgICAgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTogIik7CisgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTogIik7
CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSk7
CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgCiAgICAgLy8gU3VicmVzb3VyY2Ugc3Rh
dHMKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRG
cm9tOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJyZXNvdXJjZUhhc0Jl
ZW5SZWRpcmVjdGVkRnJvbTogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3VicmVzb3Vy
Y2VIYXNCZWVuUmVkaXJlY3RlZEZyb20pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
IGJ1aWxkZXIuYXBwZW5kKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvOiAiKTsK
KyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVj
dGVkVG86ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YnJlc291cmNlSGFzQmVlblJl
ZGlyZWN0ZWRUbyk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBl
bmQoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50OiAiKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50
OiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNv
dXJjZUNvdW50KTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVu
ZCgiICAgIHN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51
bWJlck9mT3JpZ2luc1Zpc2l0ZWQ6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAg
IHN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9m
T3JpZ2luc1Zpc2l0ZWQ6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YnJlc291cmNl
SGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0
ZWQpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIGFwcGVuZEhhc2hDb3VudGVkU2V0
KGJ1aWxkZXIsICJzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwgc3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lT3JpZ2lucyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJ
bnRlcnZhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVy
dmFsLmgJKHJldmlzaW9uIDIwNDMzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPRElu
dGVydmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwxMyArMTM2LDEzIEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAogICAgIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiW1BPREludGVydmFsICgiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbUE9ESW50ZXJ2YWwgKCIpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChWYWx1ZVRvU3RyaW5nPFQ+OjpzdHJpbmcobG93KCkpKTsKLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKGhpZ2goKSkp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiKSwgZGF0YT0iKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIpLCBkYXRhPSIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChWYWx1ZVRv
U3RyaW5nPFVzZXJEYXRhPjo6c3RyaW5nKGRhdGEoKSkpOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiLCBtYXhIaWdoPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgbWF4SGln
aD0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKG1h
eEhpZ2goKSkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXScpOwogICAgICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCShyZXZpc2lv
biAyMDQzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04OTYsNyArODk2LDcgQEAgdm9pZCBVUkw6OnNldEhvc3QoY29uc3QgU3RyaW5nJiBz
KQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmlu
Zy5sZWZ0KGhvc3RTdGFydCgpKSk7CiAgICAgaWYgKHNsYXNoU2xhc2hOZWVkZWQpCi0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIvLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi8v
Iik7CiAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nVmlldyhlbmNvZGVkSG9zdE5hbWUuZGF0YSgp
LCBlbmNvZGVkSG9zdE5hbWUuc2l6ZSgpKSk7CiAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcu
c3Vic3RyaW5nKG1faG9zdEVuZCkpOwogICAgIApAQCAtOTUxLDEwICs5NTEsMTAgQEAgdm9pZCBV
Ukw6OnNldEhvc3RBbmRQb3J0KGNvbnN0IFN0cmluZyYgaAogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5sZWZ0KGhvc3RTdGFydCgpKSk7CiAg
ICAgaWYgKHNsYXNoU2xhc2hOZWVkZWQpCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIvLyIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi8vIik7CiAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nVmlldyhlbmNvZGVkSG9zdE5hbWUuZGF0YSgpLCBlbmNvZGVkSG9zdE5hbWUuc2l6ZSgp
KSk7CiAgICAgaWYgKCFwb3J0LmlzRW1wdHkoKSkgewotICAgICAgICBidWlsZGVyLmFwcGVuZCgi
OiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmQocG9ydCk7CiAgICAgfQogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLnN1YnN0
cmluZyhtX3BvcnRFbmQpKTsKQEAgLTEyMTIsNDIgKzEyMTIsNDIgQEAgU3RyaW5nIFVSTDo6c2Vy
aWFsaXplKGJvb2wgb21pdEZyYWdtZW50KQogCiAgICAgU3RyaW5nQnVpbGRlciB1cmxCdWlsZGVy
OwogICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLCAwLCBtX3NjaGVtZUVuZCk7Ci0gICAg
dXJsQnVpbGRlci5hcHBlbmQoIjoiKTsKKyAgICB1cmxCdWlsZGVyLmFwcGVuZExpdGVyYWwoIjoi
KTsKICAgICB1bnNpZ25lZCBzdGFydCA9IGhvc3RTdGFydCgpOwogICAgIGlmIChzdGFydCA8IG1f
aG9zdEVuZCkgewotICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZCgiLy8iKTsKKyAgICAgICAgdXJs
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvLyIpOwogICAgICAgICBpZiAoaGFzVXNlcm5hbWUoKSkg
ewogICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQobV9zdHJpbmcsIG1fdXNlclN0YXJ0LCBt
X3VzZXJFbmQgLSBtX3VzZXJTdGFydCk7CiAgICAgICAgICAgICB1bnNpZ25lZCBwYXNzd29yZFN0
YXJ0ID0gbV91c2VyRW5kICsgMTsKICAgICAgICAgICAgIGlmIChoYXNQYXNzd29yZCgpKSB7Ci0g
ICAgICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIjoiKTsKKyAgICAgICAgICAgICAgICB1
cmxCdWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKICAgICAgICAgICAgICAgICB1cmxCdWlsZGVy
LmFwcGVuZChtX3N0cmluZywgcGFzc3dvcmRTdGFydCwgbV9wYXNzd29yZEVuZCAtIHBhc3N3b3Jk
U3RhcnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIkAi
KTsKKyAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiQCIpOwogICAgICAgICB9
CiAgICAgICAgIC8vIEZJWE1FOiBTZXJpYWxpemUgaG9zdCBhY2NvcmRpbmcgaHR0cHM6Ly91cmwu
c3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWhvc3Qtc2VyaWFsaXplciBmb3IgSVB2NCBhbmQgSVB2
NiBhZGRyZXNzZXMuCiAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLCBzdGFydCwg
bV9ob3N0RW5kIC0gc3RhcnQpOwogICAgICAgICBpZiAoaGFzUG9ydCgpKSB7Ci0gICAgICAgICAg
ICB1cmxCdWlsZGVyLmFwcGVuZCgiOiIpOworICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCI6Iik7CiAgICAgICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChwcm90b2NvbElzKCJmaWxlIikpCi0gICAgICAg
IHVybEJ1aWxkZXIuYXBwZW5kKCIvLyIpOworICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIi8vIik7CiAgICAgaWYgKGNhbm5vdEJlQUJhc2VVUkwoKnRoaXMpKQogICAgICAgICB1cmxC
dWlsZGVyLmFwcGVuZChtX3N0cmluZywgbV9wb3J0RW5kLCBtX3BhdGhFbmQgLSBtX3BvcnRFbmQp
OwogICAgIGVsc2UgewotICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZCgiLyIpOworICAgICAgICB1
cmxCdWlsZGVyLmFwcGVuZExpdGVyYWwoIi8iKTsKICAgICAgICAgaWYgKG1fcGF0aEVuZCA+IG1f
cG9ydEVuZCkgewogICAgICAgICAgICAgdW5zaWduZWQgcGF0aFN0YXJ0ID0gbV9wb3J0RW5kICsg
MTsKICAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLCBwYXRoU3RhcnQsIG1f
cGF0aEVuZCAtIHBhdGhTdGFydCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKGhhc1F1ZXJ5
KCkpIHsKLSAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIj8iKTsKKyAgICAgICAgdXJsQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI/Iik7CiAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5n
LCBtX3BhdGhFbmQgKyAxLCBtX3F1ZXJ5RW5kIC0gKG1fcGF0aEVuZCArIDEpKTsKICAgICB9CiAg
ICAgaWYgKCFvbWl0RnJhZ21lbnQgJiYgaGFzRnJhZ21lbnQoKSkgewotICAgICAgICB1cmxCdWls
ZGVyLmFwcGVuZCgiIyIpOworICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiMiKTsK
ICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQobV9zdHJpbmcsIG1fcXVlcnlFbmQgKyAxLCBtX2Zy
YWdtZW50RW5kIC0gKG1fcXVlcnlFbmQgKyAxKSk7CiAgICAgfQogICAgIHJldHVybiB1cmxCdWls
ZGVyLnRvU3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShy
ZXZpc2lvbiAyMDQzMzUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxMzAsMTYgKzMxMzAsMTYgQEAgc3RhdGljIHZvaWQgYXBwZW5k
T2Zmc2V0cyhTdHJpbmdCdWlsZGVyJgogewogICAgIGJvb2wganVzdFN0YXJ0aW5nID0gdHJ1ZTsK
IAotICAgIGJ1aWxkZXIuYXBwZW5kKCJ7ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
eyAiKTsKICAgICBmb3IgKGF1dG8mIGNvb3JkaW5hdGUgOiBzbmFwT2Zmc2V0cykgewogICAgICAg
ICBpZiAoIWp1c3RTdGFydGluZykKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOwor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBqdXN0U3RhcnRpbmcgPSBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGNvb3JkaW5hdGUudG9VbnNpZ25lZCgpKSk7CiAgICAg
fQotICAgIGJ1aWxkZXIuYXBwZW5kKCIgfSIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
IH0iKTsKIH0KICAgICAKIFN0cmluZyBJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKEVsZW1l
bnQmIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
MjA0Mzc5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTYtMDgtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCB3
aGVuIHBvc3NpYmxlIGRvbid0IGFwcGVuZCByZXN1bHQgb2YgbWFrZVN0cmluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNzcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIFNoYXJlZC9HYW1lcGFkL0dhbWVw
YWREYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2FtZXBhZERhdGE6OmlzTnVsbCk6CisgICAg
ICAgIChXZWJLaXQ6OkdhbWVwYWREYXRhOjpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorCiAyMDE2LTA4LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRml4IGNyYXNoIHdoZW4gY2hhbmdpbmcgY29va2llIGFjY2Vw
dCBwb2xpY3kgYWZ0ZXIgcjIwNDMyNwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVw
YWQvR2FtZXBhZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9H
YW1lcGFkL0dhbWVwYWREYXRhLmNwcAkocmV2aXNpb24gMjA0MzM1KQorKysgU291cmNlL1dlYktp
dDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nywy
MSArNTcsMzQgQEAgYm9vbCBHYW1lcGFkRGF0YTo6aXNOdWxsKCkgY29uc3QKICAgICByZXR1cm4g
IWluZGV4ICYmIGF4aXNWYWx1ZXMuaXNFbXB0eSgpICYmIGJ1dHRvblZhbHVlcy5pc0VtcHR5KCk7
CiB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECiBTdHJpbmcgR2FtZXBhZERhdGE6OmxvZ2dpbmdTdHJp
bmcoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKIAotICAgIGJ1aWxkZXIu
YXBwZW5kKG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIoYXhpc1ZhbHVlcy5zaXplKCkpLCAiIGF4
ZXMsICIsIFN0cmluZzo6bnVtYmVyKGJ1dHRvblZhbHVlcy5zaXplKCkpLCAiIGJ1dHRvbnNcbiIp
KTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXhpc1ZhbHVlcy5zaXplKCk7ICsraSkK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQobWFrZVN0cmluZygiIEF4aXMgIiwgU3RyaW5nOjpudW1i
ZXIoaSksICI6ICIsIFN0cmluZzo6bnVtYmVyKGF4aXNWYWx1ZXNbaV0pKSk7Ci0KLSAgICBidWls
ZGVyLmFwcGVuZCgiXG4iKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJ1dHRvblZhbHVl
cy5zaXplKCk7ICsraSkKLSAgICAgICAgYnVpbGRlci5hcHBlbmQobWFrZVN0cmluZygiIEJ1dHRv
biAiLCBTdHJpbmc6Om51bWJlcihpKSwgIjogIiwgU3RyaW5nOjpudW1iZXIoYnV0dG9uVmFsdWVz
W2ldKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGF4aXNWYWx1ZXMuc2l6ZSgpKTsKKyAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBheGVzLCAiKTsKKyAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihidXR0b25WYWx1ZXMuc2l6ZSgpKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBi
dXR0b25zXG4iKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXhpc1ZhbHVlcy5zaXpl
KCk7ICsraSkgeworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBBeGlzICIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihheGlzVmFsdWVzW2ldKTsK
KyAgICB9CisKKyAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGJ1dHRvblZhbHVlcy5zaXplKCk7ICsraSkgeworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiBCdXR0b24gIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGkpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKGJ1dHRvblZhbHVlc1tpXSk7CisgICAgfQogCiAgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5oCShyZXZpc2lvbiAy
MDQzMzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw5IEBAIHN0cnVjdCBHYW1lcGFkRGF0YSB7CiAgICAg
VmVjdG9yPGRvdWJsZT4gYXhpc1ZhbHVlczsKICAgICBWZWN0b3I8ZG91YmxlPiBidXR0b25WYWx1
ZXM7CiAKKyNpZiAhTE9HX0RJU0FCTEVECiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25z
dDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjA0MzM1KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDcgKzg1LDYgQEAgY2xhc3MgV2ViQ29udGV4dFN1cHBsZW1lbnQ7CiBjbGFzcyBXZWJJY29u
RGF0YWJhc2U7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7Ci1zdHJ1
Y3QgR2FtZXBhZERhdGE7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7
CiBzdHJ1Y3QgU3RhdGlzdGljc0RhdGE7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIwNDM3OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDE2LTA4LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVy
YWwgd2hlbiBwb3NzaWJsZSBkb24ndCBhcHBlbmQgcmVzdWx0IG9mIG1ha2VTdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwpOgorCiAyMDE2LTA4LTEwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgRFJUXSBB
bGxvdyBEUlQgdG8gYmUgaVBhZC1zaXplZCBpbiB0aGUgaVBhZCBzaW11bGF0b3IKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyMDQzMzUp
CisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYyMSw3ICsxNjIxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2
ZUF1dGhlbnRpYwogICAgIGludCBwb3J0ID0gV0tQcm90ZWN0aW9uU3BhY2VHZXRQb3J0KHByb3Rl
Y3Rpb25TcGFjZSk7CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXM6JWQg
LSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSAiLCBob3N0LmNfc3RyKCksIHBv
cnQpOwogICAgIGlmICghbV9oYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKQotICAgICAg
ICBtZXNzYWdlLmFwcGVuZCgiU2ltdWxhdGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hl
ZXRcbiIpOworICAgICAgICBtZXNzYWdlLmFwcGVuZExpdGVyYWwoIlNpbXVsYXRpbmcgY2FuY2Vs
bGVkIGF1dGhlbnRpY2F0aW9uIHNoZWV0XG4iKTsKICAgICBlbHNlCiAgICAgICAgIG1lc3NhZ2Uu
YXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJSZXNwb25kaW5nIHdpdGggJXM6JXNcbiIsIG1fYXV0aGVu
dGljYXRpb25Vc2VybmFtZS51dGY4KCkuZGF0YSgpLCBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQu
dXRmOCgpLmRhdGEoKSkpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQobWVz
c2FnZSk7CkBAIC0xNjcyLDkgKzE2NzIsOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9h
ZERpZFN0YXJ0KFdLCiBXS1N0cmluZ1JlZiBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlRGVzdGluYXRp
b25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS1N0
cmluZ1JlZiBmaWxlbmFtZSwgYm9vbComIGFsbG93T3ZlcndyaXRlKQogewogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZCgiRG93bmxvYWRpbmcgVVJMIHdpdGgg
c3VnZ2VzdGVkIGZpbGVuYW1lIFwiIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJEb3du
bG9hZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgXCIiKTsKICAgICBidWlsZGVyLmFw
cGVuZCh0b1dURlN0cmluZyhmaWxlbmFtZSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJcIlxuIik7
CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIlxuIik7CiAKICAgICBtX2N1cnJlbnRJbnZv
Y2F0aW9uLT5vdXRwdXRUZXh0KGJ1aWxkZXIudG9TdHJpbmcoKSk7CiAKQEAgLTE2OTcsMTMgKzE2
OTcsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKFdLQwogICAgIGlu
dCBlcnJvckNvZGUgPSBXS0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKTsKIAogICAgIFN0cmluZ0J1
aWxkZXIgZXJyb3JCdWlsZGVyOwotICAgIGVycm9yQnVpbGRlci5hcHBlbmQoIkZhaWxlZDogIik7
CisgICAgZXJyb3JCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkZhaWxlZDogIik7CiAgICAgZXJyb3JC
dWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhlcnJvckRvbWFpbikpOwotICAgIGVycm9yQnVpbGRl
ci5hcHBlbmQoIiwgY29kZT0iKTsKKyAgICBlcnJvckJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBj
b2RlPSIpOwogICAgIGVycm9yQnVpbGRlci5hcHBlbmROdW1iZXIoZXJyb3JDb2RlKTsKLSAgICBl
cnJvckJ1aWxkZXIuYXBwZW5kKCIsIGRlc2NyaXB0aW9uPSIpOworICAgIGVycm9yQnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIsIGRlc2NyaXB0aW9uPSIpOwogICAgIGVycm9yQnVpbGRlci5hcHBlbmQo
dG9XVEZTdHJpbmcoZXJyb3JEZXNjcmlwdGlvbikpOwotICAgIGVycm9yQnVpbGRlci5hcHBlbmQo
IlxuIik7CisgICAgZXJyb3JCdWlsZGVyLmFwcGVuZExpdGVyYWwoIlxuIik7CiAKICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KGVycm9yQnVpbGRlci50b1N0cmluZygpKTsKICAg
ICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5ub3RpZnlEb3dubG9hZERvbmUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285849</attachid>
            <date>2016-08-11 13:34:49 -0700</date>
            <delta_ts>2016-08-11 17:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160772-20160811133311.patch</filename>
            <type>text/plain</type>
            <size>31474</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0MzgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDE2LTA4LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVXNlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwgd2hlbiBwb3NzaWJs
ZSBkb24ndCBhcHBlbmQgcmVzdWx0IG9mIG1ha2VTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVz
dC5jcHA6CisgICAgICAgICh0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KToKKyAgICAgICAgKiBBUEkv
dGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHA6CisgICAgICAgIChQaW5nUG9uZ1N0
YWNrT3ZlcmZsb3dPYmplY3RfaGFzSW5zdGFuY2UpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpBcnJheVBhdHRlcm5Ob2RlOjp0b1N0cmlu
Zyk6CisgICAgICAgIChKU0M6OlJlc3RQYXJhbWV0ZXJOb2RlOjp0b1N0cmluZyk6CisgICAgICAg
ICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5j
ZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6Cisg
ICAgICAgIChKU0M6Ok9wdGlvbnM6OmR1bXBPcHRpb24pOgorCiAyMDE2LTA4LTExICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBXYXJuaW5nIGZp
eC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxp
bWl0VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAkocmV2aXNpb24gMjA0MzgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQyLDkgKzE0Miw5IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0
KCkKICAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVk
ID0gMzAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7CiAKICAgICAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgc2NyaXB0QnVpbGRlcjsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCJmdW5j
dGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1
ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGltZSgp
IC0gc3RhcnRUaW1lID4gIik7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVy
YWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdo
aWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRD
UFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKICAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBw
ZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAwMC4wKTsKLSAg
ICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCIpIGJyZWFrOyB9IH0gZm9vKCk7Iik7Cisg
ICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoIikgYnJlYWs7IH0gfSBmb28o
KTsiKTsKIAogICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoc2NyaXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgICAgICAgICAgZXhjZXB0aW9uID0gbnVsbHB0cjsKQEAgLTE3OCwxNiArMTc4LDE2IEBAIGlu
dCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHVuc2lnbmVkIHRpbWVBZnRl
cldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwICsgdGllckFkanVzdG1lbnRNaWxsaXM7CiAK
ICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKLSAgICAgICAgICAgIHNj
cmlwdEJ1aWxkZXIuYXBwZW5kKCJ2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsiCisg
ICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExpdGVyYWwoInZhciBzdGFydFRpbWUgPSBj
dXJyZW50Q1BVVGltZSgpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmdW5j
dGlvbiByZWN1cnNlKGkpIHsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Iid1c2Ugc3RyaWN0JzsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlm
IChpICUgMTAwMCA9PT0gMCkgeyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaWYgKGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiIpOwogICAgICAgICAgICAg
c2NyaXB0QnVpbGRlci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmly
ZWQgLyAxMDAwLjApOwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoIiAgICAgICAp
IHsgcmV0dXJuOyB9Iik7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCgiICAgIH0i
KTsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCIgICAgcmV0dXJuIHJlY3Vyc2Uo
aSArIDEpOyB9Iik7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCgicmVjdXJzZSgw
KTsiKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgICAgICkg
eyByZXR1cm47IH0iKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
ICAgIH0iKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHJl
dHVybiByZWN1cnNlKGkgKyAxKTsgfSIpOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJyZWN1cnNlKDApOyIpOwogCiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3Jp
cHQgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwpAQCAt
MjIxLDkgKzIyMSw5IEBAIGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAg
IHVuc2lnbmVkIHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkID0gMzAwICsgdGllckFk
anVzdG1lbnRNaWxsaXM7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIg
c2NyaXB0QnVpbGRlcjsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCJmdW5jdGlv
biBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BVVGltZSgpOyB0cnkgeyB3aGlsZSAo
dHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlmIChjdXJyZW50Q1BVVGlt
ZSgpIC0gc3RhcnRUaW1lID4gIik7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExp
dGVyYWwoImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7
IHRyeSB7IHdoaWxlICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYg
KGN1cnJlbnRDUFVUaW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKICAgICAgICAgICAgIHNjcmlwdEJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHRpbWVBZnRlcldhdGNoZG9nU2hvdWxkSGF2ZUZpcmVkIC8gMTAw
MC4wKTsKLSAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kKCIpIGJyZWFrOyB9IH0gY2F0
Y2goZSkgeyB9IH0gZm9vKCk7Iik7CisgICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZExp
dGVyYWwoIikgYnJlYWs7IH0gfSBjYXRjaChlKSB7IH0gfSBmb28oKTsiKTsKIAogICAgICAgICAg
ICAgSlNTdHJpbmdSZWYgc2NyaXB0ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc2Ny
aXB0QnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgZXhjZXB0
aW9uID0gbnVsbHB0cjsKQEAgLTI1OCw5ICsyNTgsOSBAQCBpbnQgdGVzdEV4ZWN1dGlvblRpbWVM
aW1pdCgpCiAgICAgICAgICAgICB1bnNpZ25lZCB0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVG
aXJlZCA9IDMwMCArIHRpZXJBZGp1c3RtZW50TWlsbGlzOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7Ci0gICAgICAgICAgICBzY3JpcHRCdWls
ZGVyLmFwcGVuZCgiZnVuY3Rpb24gZm9vKCkgeyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRp
bWUoKTsgd2hpbGUgKHRydWUpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAo
Y3VycmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+ICIpOworICAgICAgICAgICAgc2NyaXB0QnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJy
ZW50Q1BVVGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkr
Kyk7IGlmIChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7CiAgICAgICAgICAgICBz
Y3JpcHRCdWlsZGVyLmFwcGVuZE51bWJlcih0aW1lQWZ0ZXJXYXRjaGRvZ1Nob3VsZEhhdmVGaXJl
ZCAvIDEwMDAuMCk7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZCgiKSBicmVhazsg
fSB9IGZvbygpOyIpOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIp
IGJyZWFrOyB9IH0gZm9vKCk7Iik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEpTU3RyaW5n
UmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdEJ1aWxkZXIu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IG51bGxw
dHI7CkBAIC0yOTUsOSArMjk1LDkgQEAgaW50IHRlc3RFeGVjdXRpb25UaW1lTGltaXQoKQogICAg
ICAgICAgICAgdW5zaWduZWQgdGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgPSAzMDAg
KyB0aWVyQWRqdXN0bWVudE1pbGxpczsKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciBzY3JpcHRCdWlsZGVyOwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQo
ImZ1bmN0aW9uIGZvbygpIHsgdmFyIHN0YXJ0VGltZSA9IGN1cnJlbnRDUFVUaW1lKCk7IHdoaWxl
ICh0cnVlKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKTsgaWYgKGN1cnJlbnRDUFVU
aW1lKCkgLSBzdGFydFRpbWUgPiAiKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiZnVuY3Rpb24gZm9vKCkgeyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUo
KTsgd2hpbGUgKHRydWUpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3Vy
cmVudENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+ICIpOwogICAgICAgICAgICAgc2NyaXB0QnVpbGRl
ci5hcHBlbmROdW1iZXIodGltZUFmdGVyV2F0Y2hkb2dTaG91bGRIYXZlRmlyZWQgLyAxMDAwLjAp
OwotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoIikgYnJlYWs7IH0gfSBmb28oKTsi
KTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsgfSB9
IGZvbygpOyIpOwogCiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwpAQCAtMzMyLDkgKzMzMiw5IEBA
IGludCB0ZXN0RXhlY3V0aW9uVGltZUxpbWl0KCkKICAgICAgICAgICAgIHVuc2lnbmVkIG1heEJ1
c3lMb29wVGltZSA9IDc1MCArIHRpZXJBZGp1c3RtZW50TWlsbGlzOwogCiAgICAgICAgICAgICBT
dHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7Ci0gICAgICAgICAgICBzY3JpcHRCdWlsZGVyLmFw
cGVuZCgiZnVuY3Rpb24gZm9vKCkgeyB2YXIgc3RhcnRUaW1lID0gY3VycmVudENQVVRpbWUoKTsg
d2hpbGUgKHRydWUpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspOyBpZiAoY3VycmVu
dENQVVRpbWUoKSAtIHN0YXJ0VGltZSA+ICIpOworICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJmdW5jdGlvbiBmb28oKSB7IHZhciBzdGFydFRpbWUgPSBjdXJyZW50Q1BV
VGltZSgpOyB3aGlsZSAodHJ1ZSkgeyBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKyk7IGlm
IChjdXJyZW50Q1BVVGltZSgpIC0gc3RhcnRUaW1lID4gIik7CiAgICAgICAgICAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZE51bWJlcihtYXhCdXN5TG9vcFRpbWUgLyAxMDAwLjApOyAvLyBpbiBzZWNv
bmRzLgotICAgICAgICAgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQoIikgYnJlYWs7IH0gfSBmb28o
KTsiKTsKKyAgICAgICAgICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBicmVhazsg
fSB9IGZvbygpOyIpOwogCiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHRCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgICAgICBleGNlcHRpb24gPSBudWxscHRyOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tP
dmVyZmxvd1Rlc3QuY3BwCShyZXZpc2lvbiAyMDQzODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NiwxMyArNTYsMTMgQEAgc3RhdGljIGJvb2wgUGluZ1BvbmdTdGFja092ZXJmbG93T2Jq
ZWN0XwogICAgICAgICByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGZ1
bmN0aW9uLCBjb25zdHJ1Y3RvciwgMSwgJnBvc3NpYmxlVmFsdWUsIGV4Y2VwdGlvbik7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVy
LmFwcGVuZCgiZHVtbXkudmFsdWVPZihbMF0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJkdW1teS52YWx1ZU9mKFswXSIpOwogICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IDM1
MDAwOyBpKyspIHsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsIFsiKTsKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBbIik7CiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihpKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJdIik7CisgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIl0iKTsKICAgICAgICAgfQotICAgICAgICBidWls
ZGVyLmFwcGVuZCgiKTsiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpOyIpOwog
CiAgICAgICAgIEpTU3RyaW5nUmVmIHNjcmlwdCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVzdWx0ID0g
SlNFdmFsdWF0ZVNjcmlwdChjb250ZXh0LCBzY3JpcHQsIE5VTEwsIE5VTEwsIDEsIGV4Y2VwdGlv
bik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCShyZXZpc2lvbiAyMDQzODEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NDcs
NyArMzc0Nyw3IEBAIHZvaWQgQXJyYXlQYXR0ZXJuTm9kZTo6dG9TdHJpbmcoU3RyaW5nQnUKICAg
ICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQmluZGluZ1R5cGU6OlJlc3RFbGVtZW50
OgotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIi4uLiIpOworICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIuLi4iKTsKICAgICAgICAgICAgIHRhcmdldC5wYXR0ZXJuLT50b1N0
cmluZyhidWlsZGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zOTI4LDcg
KzM5MjgsNyBAQCB2b2lkIFJlc3RQYXJhbWV0ZXJOb2RlOjpjb2xsZWN0Qm91bmRJZGVuCiAKIHZv
aWQgUmVzdFBhcmFtZXRlck5vZGU6OnRvU3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpIGNv
bnN0CiB7Ci0gICAgYnVpbGRlci5hcHBlbmQoIi4uLiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiLi4uIik7CiAgICAgbV9wYXR0ZXJuLT50b1N0cmluZyhidWlsZGVyKTsKIH0KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAJ
KHJldmlzaW9uIDIwNDM4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
SW5zdGFuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNyArMjEyLDcgQEAgU3RyaW5nIEVy
cm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKAogCiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVTdHJpbmcpOwotICAgIGJ1aWxkZXIuYXBwZW5k
KCI6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICBidWlsZGVyLmFw
cGVuZChtZXNzYWdlU3RyaW5nKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlzaW9u
IDIwNDM4MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MzAsMTMgKzczMCwxMyBAQCB2b2lkIE9wdGlvbnM6OmR1bXBPcHRp
b24oU3RyaW5nQnVpbGRlciYgCiAgICAgb3B0aW9uLmR1bXAoYnVpbGRlcik7CiAKICAgICBpZiAo
d2FzT3ZlcnJpZGRlbiAmJiAoZHVtcERlZmF1bHRzT3B0aW9uID09IER1bXBEZWZhdWx0cykpIHsK
LSAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAoZGVmYXVsdDogIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiIChkZWZhdWx0OiAiKTsKICAgICAgICAgb3B0aW9uLmRlZmF1bHRPcHRp
b24oKS5kdW1wKGJ1aWxkZXIpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiKSIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikiKTsKICAgICB9CiAKICAgICBpZiAobmVlZHNEZXNj
cmlwdGlvbikgewotICAgICAgICBidWlsZGVyLmFwcGVuZCgiICAgLi4uICIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgIC4uLiAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
b3B0aW9uLmRlc2NyaXB0aW9uKCkpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
MjA0MzgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNDEgQEAKKzIwMTYtMDgtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCB3
aGVuIHBvc3NpYmxlIGRvbid0IGFwcGVuZCByZXN1bHQgb2YgbWFrZVN0cmluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNzcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBTdHJpbmdCdWlsZGVyOjphcHBlbmQg
ZG9lcyBhbiB1bm5lY2Vzc2FyeSBzdHJsZW4gY2FsbC4KKyAgICAgICAgYXBwZW5kKG1ha2VTdHJp
bmcoLi4uKSkgYWx3YXlzIGRvZXMgdW5uZWNlc3NhcnkgYWxsb2NhdGlvbnMgYW5kIGNvcGllcy4K
KyAgICAgICAgSXQncyBjdXJyZW50bHkgb25seSB1c2VkIGluIGRlYnVnIGxvZ2dpbmcsIGJ1dCB3
ZSBzaG91bGRuJ3QgaGF2ZSB0aGlzIHBhdHRlcm4gaW4gV2ViS2l0LgorCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OkluZGV4VmFsdWVTdG9yZTo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUluZm86OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbmZvOjpsb2dnaW5nU3RyaW5nKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OnByZWZpeFRyZWVWZXJ0ZXhUb1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cmVjdXJzaXZlUHJpbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphY3Rpb25OYW1l
KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzdHJpY3Rpb25OYW1lKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRCb29sZWFuKToKKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZEhhc2hDb3VudGVkU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QT0RJbnRl
cnZhbC5oOgorICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6OnRvU3RyaW5nKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpzZXRIb3N0KToK
KyAgICAgICAgKFdlYkNvcmU6OlVSTDo6c2V0SG9zdEFuZFBvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6VVJMOjpzZXJpYWxpemUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFwcGVuZE9mZnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyk6CisKIDIwMTYtMDgtMTEgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgVVJMUGFyc2VyIHN0dWIK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRleFZhbHVl
U3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JbmRleFZhbHVlU3RvcmUuY3BwCShyZXZpc2lvbiAyMDQzODEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZVN0b3JlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlJbmRleC5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFt
ZXNwYWNlIElEQlNlcnZlciB7CkBAIC0zODcsMTIgKzM4OCwxNSBAQCBjb25zdCBJREJLZXlEYXRh
JiBJbmRleFZhbHVlU3RvcmU6Okl0ZXJhCiAjaWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIEluZGV4
VmFsdWVTdG9yZTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdDsK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgZm9yIChhdXRvJiBrZXkgOiBtX29yZGVy
ZWRLZXlzKSB7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQobWFrZVN0cmluZygiS2V5OiAiLCBrZXku
bG9nZ2luZ1N0cmluZygpKSk7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQobWFrZVN0cmluZygiICBF
bnRyeSBoYXMgIiwgU3RyaW5nOjpudW1iZXIobV9yZWNvcmRzLmdldChrZXkpLT5nZXRDb3VudCgp
KSwgIiBlbnRyaWVzIikpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIktleTogIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGtleS5sb2dnaW5nU3RyaW5nKCkpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgRW50cnkgaGFzICIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihtX3JlY29yZHMuZ2V0KGtleSktPmdldENvdW50KCkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBlbnRyaWVzIik7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQ7
CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
RGF0YWJhc2VJbmZvLmNwcAkocmV2aXNpb24gMjA0MzgxKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJREJEYXRh
YmFzZUluZm8uaCIKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNDcs
MTEgKzE0OSwxOCBAQCB2b2lkIElEQkRhdGFiYXNlSW5mbzo6ZGVsZXRlT2JqZWN0U3RvcmUoCiAj
aWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIElEQkRhdGFiYXNlSW5mbzo6bG9nZ2luZ1N0cmluZygp
IGNvbnN0CiB7Ci0gICAgU3RyaW5nIHRvcCA9IG1ha2VTdHJpbmcoIkRhdGFiYXNlOiAiLCBtX25h
bWUsICIgdmVyc2lvbiAiLCBTdHJpbmc6Om51bWJlcihtX3ZlcnNpb24pLCAiXG4iKTsKLSAgICBm
b3IgKGF1dG8gb2JqZWN0U3RvcmUgOiBtX29iamVjdFN0b3JlTWFwLnZhbHVlcygpKQotICAgICAg
ICB0b3AuYXBwZW5kKG1ha2VTdHJpbmcob2JqZWN0U3RvcmUubG9nZ2luZ1N0cmluZygxKSwgIlxu
IikpOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIkRhdGFiYXNlOiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKG1fbmFtZSk7CisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgdmVyc2lvbiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZE51bWJlciht
X3ZlcnNpb24pOworICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOworICAgIGZvciAoYXV0byBvYmpl
Y3RTdG9yZSA6IG1fb2JqZWN0U3RvcmVNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQob2JqZWN0U3RvcmUubG9nZ2luZ1N0cmluZygxKSk7CisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCdcbicpOworICAgIH0KIAotICAgIHJldHVybiB0b3A7IAorICAgIHJldHVybiBidWlsZGVy
LnRvU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5j
cHAJKHJldmlzaW9uIDIwNDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZUlu
Zm8uaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIApAQCAtMTI2LDE1ICsxMjcsMTkgQEAgdm9pZCBJREJPYmplY3RT
dG9yZUluZm86OmRlbGV0ZUluZGV4KHVpbgogI2lmICFMT0dfRElTQUJMRUQKIFN0cmluZyBJREJP
YmplY3RTdG9yZUluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QKIHsKLSAgICBT
dHJpbmcgaW5kZW50U3RyaW5nOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGluZGVudDsgKytpKQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5k
KCIgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAKLSAgICBTdHJpbmcgdG9wID0g
bWFrZVN0cmluZyhpbmRlbnRTdHJpbmcsICJPYmplY3Qgc3RvcmU6ICIsIG1fbmFtZSwgU3RyaW5n
Ojpmb3JtYXQoIiAoJSIgUFJJdTY0ICIpIFxuIiwgbV9pZGVudGlmaWVyKSk7Ci0gICAgZm9yIChh
dXRvIGluZGV4IDogbV9pbmRleE1hcC52YWx1ZXMoKSkKLSAgICAgICAgdG9wLmFwcGVuZChtYWtl
U3RyaW5nKGluZGV4LmxvZ2dpbmdTdHJpbmcoaW5kZW50ICsgMSksICJcbiIpKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIk9iamVjdCBzdG9yZTogIik7CisgICAgYnVpbGRlci5hcHBlbmQo
bV9uYW1lKTsKKyAgICBidWlsZGVyLmFwcGVuZE51bWJlcihtX2lkZW50aWZpZXIpOworICAgIGZv
ciAoYXV0byBpbmRleCA6IG1faW5kZXhNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoaW5kZXgubG9nZ2luZ1N0cmluZyhpbmRlbnQgKyAxKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOworICAgIH0KIAotICAgIHJldHVybiB0b3A7IAorICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCShyZXZpc2lv
biAyMDQzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVS
TEZpbHRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw4ICs5Niw4IEBAIHN0YXRpYyBTdHJp
bmcgcHJlZml4VHJlZVZlcnRleFRvU3RyaW5nKGMKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgd2hpbGUgKGRlcHRoLS0pCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgICIpOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKCJ2ZXJ0ZXggYWN0aW9uczogIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiICAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoInZlcnRleCBh
Y3Rpb25zOiAiKTsKIAogICAgIGF1dG8gYWN0aW9uc1Nsb3QgPSBhY3Rpb25zLmZpbmQoJnZlcnRl
eCk7CiAgICAgaWYgKGFjdGlvbnNTbG90ICE9IGFjdGlvbnMuZW5kKCkpIHsKQEAgLTExNyw3ICsx
MTcsNyBAQCBzdGF0aWMgdm9pZCByZWN1cnNpdmVQcmludChjb25zdCBQcmVmaXhUCiAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGRlcHRoICogMjsgKytpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoInZlcnRleCBlZGdlOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJ2ZXJ0ZXggZWRnZTogIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGVkZ2Uu
dGVybS0+dG9TdHJpbmcoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgICAg
ICBkYXRhTG9nRigiJXMiLCBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwNDM4
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE5NSw3ICsxOTUsNyBAQCBzdGF0aWMgU3RyaW5nIGFjdGlvbk5hbWUoSFRNTE1l
ZGlhRWxlbWVuCiAjZGVmaW5lIEFDVElPTihfYWN0aW9uVHlwZSkgXAogICAgIGlmIChhY3Rpb24g
JiAoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpfYWN0aW9uVHlwZSkpIHsgXAogICAgICAgICBpZiAo
IWFjdGlvbkJ1aWxkZXIuaXNFbXB0eSgpKSBcCi0gICAgICAgIGFjdGlvbkJ1aWxkZXIuYXBwZW5k
KCIsICIpOyBcCisgICAgICAgIGFjdGlvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsgXAog
ICAgICAgICBhY3Rpb25CdWlsZGVyLmFwcGVuZCgjX2FjdGlvblR5cGUpOyBcCiAgICAgfSBcCiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAkocmV2
aXNpb24gMjA0MzgxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgU3RyaW5nIHJlc3Ry
aWN0aW9uTmFtZShNZWRpYUVsZW1lCiAjZGVmaW5lIENBU0UocmVzdHJpY3Rpb25UeXBlKSBcCiAg
ICAgaWYgKHJlc3RyaWN0aW9uICYgTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVzdHJpY3Rpb25UeXBl
KSB7IFwKICAgICAgICAgaWYgKCFyZXN0cmljdGlvbkJ1aWxkZXIuaXNFbXB0eSgpKSBcCi0gICAg
ICAgICAgICByZXN0cmljdGlvbkJ1aWxkZXIuYXBwZW5kKCIsICIpOyBcCisgICAgICAgICAgICBy
ZXN0cmljdGlvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsgXAogICAgICAgICByZXN0cmlj
dGlvbkJ1aWxkZXIuYXBwZW5kKCNyZXN0cmljdGlvblR5cGUpOyBcCiAgICAgfSBcCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAJ
KHJldmlzaW9uIDIwNDM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDkgKzE3Niw5IEBAIGJvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljczo6ZGVjb2RlKEtleWUKIAogc3RhdGljIHZvaWQgYXBwZW5kQm9v
bGVhbihTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBib29sIGZs
YWcpCiB7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiAgICAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiAgICAiKTsKICAgICBidWlsZGVyLmFwcGVuZChsYWJlbCk7Ci0gICAgYnVpbGRlci5h
cHBlbmQoIjogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKGZsYWcgPyAiWWVzIiA6ICJObyIpOwogfQogCkBAIC0xODcsMTQgKzE4NywxNCBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRIYXNoQ291bnRlZFNldChTdHJpbmdCCiAgICAgaWYgKGhhc2hD
b3VudGVkU2V0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYnVpbGRlci5hcHBl
bmQoIiAgICAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICAiKTsKICAgICBidWls
ZGVyLmFwcGVuZChsYWJlbCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjpcbiIpOworICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiOlxuIik7CiAKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogaGFzaENv
dW50ZWRTZXQpIHsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAgICAgICAgIik7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgICAgICAiKTsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoZW50cnkua2V5KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIjogIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiAiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
ZW50cnkudmFsdWUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICB9CkBAIC0y
MTIsNTQgKzIxMiw1NCBAQCBTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmco
CiAgICAgLy8gVG9wIGZyYW1lIHN0YXRzCiAgICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAidG9w
RnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUiLCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRU
b0JlZm9yZSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQo
IiAgICB0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG86ICIpOworICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiICAgIHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbzogIik7CiAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIodG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKTsKICAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHRvcEZyYW1lSGFzQmVlblJl
ZGlyZWN0ZWRGcm9tOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB0b3BGcmFt
ZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9w
RnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKCIgICAgdG9wRnJhbWVJbml0aWFsTG9hZENvdW50OiAiKTsKKyAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQ6ICIp
OwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcEZyYW1lSW5pdGlhbExvYWRDb3VudCk7CiAg
ICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiAgICB0b3BGcmFt
ZUhhc0JlZW5OYXZpZ2F0ZWRUbzogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAg
dG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG86ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb206ICIp
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRl
ZEZyb206ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcEZyYW1lSGFzQmVlbk5hdmln
YXRlZEZyb20pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIAogICAgIC8vIFN1YmZy
YW1lIHN0YXRzCiAgICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAic3ViZnJhbWVIYXNCZWVuTG9h
ZGVkQmVmb3JlIiwgc3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlKTsKICAgICBidWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHN1YmZyYW1lSGFzQmVlblJlZGly
ZWN0ZWRUbzogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3ViZnJhbWVIYXNC
ZWVuUmVkaXJlY3RlZFRvOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJmcmFtZUhh
c0JlZW5SZWRpcmVjdGVkVG8pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kKCIgICAgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb206ICIpOworICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tOiAi
KTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJv
bSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiAgICBz
dWJmcmFtZVN1YlJlc291cmNlQ291bnQ6ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
ICAgIHN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudDogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50KTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
ICAgICBhcHBlbmRIYXNoQ291bnRlZFNldChidWlsZGVyLCAic3ViZnJhbWVVbmRlclRvcEZyYW1l
T3JpZ2lucyIsIHN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwogICAgIGFwcGVuZEhhc2hD
b3VudGVkU2V0KGJ1aWxkZXIsICJzdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIiwgc3ViZnJhbWVV
bmlxdWVSZWRpcmVjdHNUbyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiAgICBzdWJmcmFtZUhhc0Jl
ZW5OYXZpZ2F0ZWRUbzogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3ViZnJh
bWVIYXNCZWVuTmF2aWdhdGVkVG86ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZy
YW1lSGFzQmVlbk5hdmlnYXRlZFRvKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBi
dWlsZGVyLmFwcGVuZCgiICAgIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb206ICIpOworICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb206
ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZy
b20pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIAogICAgIC8vIFN1YnJlc291cmNl
IHN0YXRzCi0gICAgYnVpbGRlci5hcHBlbmQoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVj
dGVkRnJvbTogIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3VicmVzb3VyY2VI
YXNCZWVuUmVkaXJlY3RlZEZyb206ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YnJl
c291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICBidWlsZGVyLmFwcGVuZCgiICAgIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbzog
Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuUmVk
aXJlY3RlZFRvOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJyZXNvdXJjZUhhc0Jl
ZW5SZWRpcmVjdGVkVG8pOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIu
YXBwZW5kKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudDogIik7CisgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VD
b3VudDogIik7CiAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3VicmVzb3VyY2VIYXNCZWVuU3Vi
cmVzb3VyY2VDb3VudCk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5h
cHBlbmQoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90
YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkOiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IiAgICBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1i
ZXJPZk9yaWdpbnNWaXNpdGVkOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJyZXNv
dXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNW
aXNpdGVkKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBhcHBlbmRIYXNoQ291bnRl
ZFNldChidWlsZGVyLCAic3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyIsIHN1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UE9ESW50ZXJ2YWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJ
bnRlcnZhbC5oCShyZXZpc2lvbiAyMDQzODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
T0RJbnRlcnZhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMTMgKzEzNiwxMyBAQCBwdWJsaWM6
CiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKICAgICB7CiAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIltQT0RJbnRlcnZhbCAoIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiW1BPREludGVydmFsICgiKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoVmFsdWVUb1N0cmluZzxUPjo6c3RyaW5nKGxvdygpKSk7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwg
Iik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmluZyhoaWdo
KCkpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIiksIGRhdGE9Iik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiKSwgZGF0YT0iKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoVmFs
dWVUb1N0cmluZzxVc2VyRGF0YT46OnN0cmluZyhkYXRhKCkpKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoIiwgbWF4SGlnaD0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIG1h
eEhpZ2g9Iik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFZhbHVlVG9TdHJpbmc8VD46OnN0cmlu
ZyhtYXhIaWdoKCkpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VS
TC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAkocmV2
aXNpb24gMjA0MzgxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODk2LDcgKzg5Niw3IEBAIHZvaWQgVVJMOjpzZXRIb3N0KGNvbnN0IFN0cmlu
ZyYgcykKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQobV9z
dHJpbmcubGVmdChob3N0U3RhcnQoKSkpOwogICAgIGlmIChzbGFzaFNsYXNoTmVlZGVkKQotICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiLy8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIvLyIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZ1ZpZXcoZW5jb2RlZEhvc3ROYW1lLmRh
dGEoKSwgZW5jb2RlZEhvc3ROYW1lLnNpemUoKSkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKG1fc3Ry
aW5nLnN1YnN0cmluZyhtX2hvc3RFbmQpKTsKICAgICAKQEAgLTk1MSwxMCArOTUxLDEwIEBAIHZv
aWQgVVJMOjpzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmIGgKICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CiAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJpbmcubGVmdChob3N0U3RhcnQoKSkp
OwogICAgIGlmIChzbGFzaFNsYXNoTmVlZGVkKQotICAgICAgICBidWlsZGVyLmFwcGVuZCgiLy8i
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvLyIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZ1ZpZXcoZW5jb2RlZEhvc3ROYW1lLmRhdGEoKSwgZW5jb2RlZEhvc3ROYW1lLnNp
emUoKSkpOwogICAgIGlmICghcG9ydC5pc0VtcHR5KCkpIHsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQoIjoiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHBvcnQpOwogICAgIH0KICAgICBidWlsZGVyLmFwcGVuZChtX3N0cmluZy5z
dWJzdHJpbmcobV9wb3J0RW5kKSk7CkBAIC0xMjEyLDQyICsxMjEyLDQyIEBAIFN0cmluZyBVUkw6
OnNlcmlhbGl6ZShib29sIG9taXRGcmFnbWVudCkKIAogICAgIFN0cmluZ0J1aWxkZXIgdXJsQnVp
bGRlcjsKICAgICB1cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgMCwgbV9zY2hlbWVFbmQpOwot
ICAgIHVybEJ1aWxkZXIuYXBwZW5kKCI6Iik7CisgICAgdXJsQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCI6Iik7CiAgICAgdW5zaWduZWQgc3RhcnQgPSBob3N0U3RhcnQoKTsKICAgICBpZiAoc3RhcnQg
PCBtX2hvc3RFbmQpIHsKLSAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIi8vIik7CisgICAgICAg
IHVybEJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLy8iKTsKICAgICAgICAgaWYgKGhhc1VzZXJuYW1l
KCkpIHsKICAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLCBtX3VzZXJTdGFy
dCwgbV91c2VyRW5kIC0gbV91c2VyU3RhcnQpOwogICAgICAgICAgICAgdW5zaWduZWQgcGFzc3dv
cmRTdGFydCA9IG1fdXNlckVuZCArIDE7CiAgICAgICAgICAgICBpZiAoaGFzUGFzc3dvcmQoKSkg
ewotICAgICAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKCI6Iik7CisgICAgICAgICAgICAg
ICAgdXJsQnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7CiAgICAgICAgICAgICAgICAgdXJsQnVp
bGRlci5hcHBlbmQobV9zdHJpbmcsIHBhc3N3b3JkU3RhcnQsIG1fcGFzc3dvcmRFbmQgLSBwYXNz
d29yZFN0YXJ0KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5k
KCJAIik7CisgICAgICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZExpdGVyYWwoIkAiKTsKICAgICAg
ICAgfQogICAgICAgICAvLyBGSVhNRTogU2VyaWFsaXplIGhvc3QgYWNjb3JkaW5nIGh0dHBzOi8v
dXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1ob3N0LXNlcmlhbGl6ZXIgZm9yIElQdjQgYW5k
IElQdjYgYWRkcmVzc2VzLgogICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgc3Rh
cnQsIG1faG9zdEVuZCAtIHN0YXJ0KTsKICAgICAgICAgaWYgKGhhc1BvcnQoKSkgewotICAgICAg
ICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIjoiKTsKKyAgICAgICAgICAgIHVybEJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiOiIpOwogICAgICAgICAgICAgdXJsQnVpbGRlci5hcHBlbmROdW1iZXIocG9y
dCgpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocHJvdG9jb2xJcygiZmlsZSIpKQotICAg
ICAgICB1cmxCdWlsZGVyLmFwcGVuZCgiLy8iKTsKKyAgICAgICAgdXJsQnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIvLyIpOwogICAgIGlmIChjYW5ub3RCZUFCYXNlVVJMKCp0aGlzKSkKICAgICAgICAg
dXJsQnVpbGRlci5hcHBlbmQobV9zdHJpbmcsIG1fcG9ydEVuZCwgbV9wYXRoRW5kIC0gbV9wb3J0
RW5kKTsKICAgICBlbHNlIHsKLSAgICAgICAgdXJsQnVpbGRlci5hcHBlbmQoIi8iKTsKKyAgICAg
ICAgdXJsQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvIik7CiAgICAgICAgIGlmIChtX3BhdGhFbmQg
PiBtX3BvcnRFbmQpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIHBhdGhTdGFydCA9IG1fcG9ydEVu
ZCArIDE7CiAgICAgICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZChtX3N0cmluZywgcGF0aFN0YXJ0
LCBtX3BhdGhFbmQgLSBwYXRoU3RhcnQpOwogICAgICAgICB9CiAgICAgfQogICAgIGlmIChoYXNR
dWVyeSgpKSB7Ci0gICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKCI/Iik7CisgICAgICAgIHVybEJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPyIpOwogICAgICAgICB1cmxCdWlsZGVyLmFwcGVuZChtX3N0
cmluZywgbV9wYXRoRW5kICsgMSwgbV9xdWVyeUVuZCAtIChtX3BhdGhFbmQgKyAxKSk7CiAgICAg
fQogICAgIGlmICghb21pdEZyYWdtZW50ICYmIGhhc0ZyYWdtZW50KCkpIHsKLSAgICAgICAgdXJs
QnVpbGRlci5hcHBlbmQoIiMiKTsKKyAgICAgICAgdXJsQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIj
Iik7CiAgICAgICAgIHVybEJ1aWxkZXIuYXBwZW5kKG1fc3RyaW5nLCBtX3F1ZXJ5RW5kICsgMSwg
bV9mcmFnbWVudEVuZCAtIChtX3F1ZXJ5RW5kICsgMSkpOwogICAgIH0KICAgICByZXR1cm4gdXJs
QnVpbGRlci50b1N0cmluZygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkocmV2aXNpb24gMjA0MzgxKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTMwLDE2ICszMTMwLDE2IEBAIHN0YXRpYyB2b2lkIGFw
cGVuZE9mZnNldHMoU3RyaW5nQnVpbGRlciYKIHsKICAgICBib29sIGp1c3RTdGFydGluZyA9IHRy
dWU7CiAKLSAgICBidWlsZGVyLmFwcGVuZCgieyAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoInsgIik7CiAgICAgZm9yIChhdXRvJiBjb29yZGluYXRlIDogc25hcE9mZnNldHMpIHsKICAg
ICAgICAgaWYgKCFqdXN0U3RhcnRpbmcpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAi
KTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAganVzdFN0YXJ0aW5nID0gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihjb29yZGluYXRlLnRvVW5zaWduZWQoKSkpOwog
ICAgIH0KLSAgICBidWlsZGVyLmFwcGVuZCgiIH0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIiB9Iik7CiB9CiAgICAgCiBTdHJpbmcgSW50ZXJuYWxzOjpzY3JvbGxTbmFwT2Zmc2V0cyhF
bGVtZW50JiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwNDM4MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDE2LTA4LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVy
YWwgd2hlbiBwb3NzaWJsZSBkb24ndCBhcHBlbmQgcmVzdWx0IG9mIG1ha2VTdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBTaGFyZWQvR2FtZXBhZC9H
YW1lcGFkRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdhbWVwYWREYXRhOjppc051bGwpOgor
ICAgICAgICAoV2ViS2l0OjpHYW1lcGFkRGF0YTo6bG9nZ2luZ1N0cmluZyk6CisgICAgICAgICog
U2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKwogMjAxNi0wOC0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBjcmFzaCB3aGVuIGNoYW5naW5nIGNvb2tpZSBh
Y2NlcHQgcG9saWN5IGFmdGVyIHIyMDQzMjcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9H
YW1lcGFkL0dhbWVwYWREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvR2FtZXBhZC9HYW1lcGFkRGF0YS5jcHAJKHJldmlzaW9uIDIwNDM4MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTcsMjEgKzU3LDM0IEBAIGJvb2wgR2FtZXBhZERhdGE6OmlzTnVsbCgpIGNvbnN0CiAgICAgcmV0
dXJuICFpbmRleCAmJiBheGlzVmFsdWVzLmlzRW1wdHkoKSAmJiBidXR0b25WYWx1ZXMuaXNFbXB0
eSgpOwogfQogCisjaWYgIUxPR19ESVNBQkxFRAogU3RyaW5nIEdhbWVwYWREYXRhOjpsb2dnaW5n
U3RyaW5nKCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAKLSAgICBidWls
ZGVyLmFwcGVuZChtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKGF4aXNWYWx1ZXMuc2l6ZSgpKSwg
IiBheGVzLCAiLCBTdHJpbmc6Om51bWJlcihidXR0b25WYWx1ZXMuc2l6ZSgpKSwgIiBidXR0b25z
XG4iKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF4aXNWYWx1ZXMuc2l6ZSgpOyAr
K2kpCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1ha2VTdHJpbmcoIiBBeGlzICIsIFN0cmluZzo6
bnVtYmVyKGkpLCAiOiAiLCBTdHJpbmc6Om51bWJlcihheGlzVmFsdWVzW2ldKSkpOwotCi0gICAg
YnVpbGRlci5hcHBlbmQoIlxuIik7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBidXR0b25W
YWx1ZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1ha2VTdHJpbmcoIiBC
dXR0b24gIiwgU3RyaW5nOjpudW1iZXIoaSksICI6ICIsIFN0cmluZzo6bnVtYmVyKGJ1dHRvblZh
bHVlc1tpXSkpKTsKKyAgICBidWlsZGVyLmFwcGVuZE51bWJlcihheGlzVmFsdWVzLnNpemUoKSk7
CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgYXhlcywgIik7CisgICAgYnVpbGRlci5hcHBl
bmROdW1iZXIoYnV0dG9uVmFsdWVzLnNpemUoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIgYnV0dG9uc1xuIik7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF4aXNWYWx1ZXMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgQXhpcyAiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoYXhpc1ZhbHVlc1tp
XSk7CisgICAgfQorCisgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBidXR0b25WYWx1ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIgQnV0dG9uICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihp
KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6ICIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZE51bWJlcihidXR0b25WYWx1ZXNbaV0pOworICAgIH0KIAogICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9HYW1lcGFkL0dhbWVwYWREYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEuaAkocmV2aXNp
b24gMjA0MzgxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0dhbWVwYWQvR2FtZXBhZERhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsOSBAQCBzdHJ1Y3QgR2FtZXBhZERhdGEgewog
ICAgIFZlY3Rvcjxkb3VibGU+IGF4aXNWYWx1ZXM7CiAgICAgVmVjdG9yPGRvdWJsZT4gYnV0dG9u
VmFsdWVzOwogCisjaWYgIUxPR19ESVNBQkxFRAogICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkg
Y29uc3Q7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDIwNDM4MSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC04NSw3ICs4NSw2IEBAIGNsYXNzIFdlYkNvbnRleHRTdXBwbGVtZW50OwogY2xhc3MgV2Vi
SWNvbkRhdGFiYXNlOwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5Owot
c3RydWN0IEdhbWVwYWREYXRhOwogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFN0YXRpc3RpY3NEYXRhOwogc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>