<?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>232265</bug_id>
          
          <creation_ts>2021-10-25 13:47:05 -0700</creation_ts>
          <short_desc>Refactoring and PutByVal cleanup</short_desc>
          <delta_ts>2021-11-15 14:31:07 -0800</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>233147</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail R. Gadelha">mikhail</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mikhail</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1808563</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-10-25 13:47:05 -0700</bug_when>
    <thetext>Refactoring and PutByVal cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808580</commentid>
    <comment_count>1</comment_count>
      <attachid>442416</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-10-25 14:17:07 -0700</bug_when>
    <thetext>Created attachment 442416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808977</commentid>
    <comment_count>2</comment_count>
      <attachid>442516</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-10-26 12:24:41 -0700</bug_when>
    <thetext>Created attachment 442516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809007</commentid>
    <comment_count>3</comment_count>
      <attachid>442524</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-10-26 13:37:22 -0700</bug_when>
    <thetext>Created attachment 442524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810849</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-01 13:48:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/84897622&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811554</commentid>
    <comment_count>5</comment_count>
      <attachid>442524</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-03 11:33:26 -0700</bug_when>
    <thetext>Comment on attachment 442524
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2513
&gt; +#if USE(JSVALUE32_64)
&gt; +        m_jit.store32(valueTagReg, MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag)));
&gt; +        m_jit.store32(valuePayloadReg, MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload)));
&gt; +#else
&gt; +        m_jit.store64(valueReg, MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesEight));
&gt; +#endif

Is it worth making this code JSValueRegs based?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2547
&gt; +#if USE(JSVALUE32_64)
&gt; +    m_jit.store32(valueTagReg, MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag)));
&gt; +    m_jit.store32(valuePayloadReg, MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload)));
&gt; +#else
&gt; +    m_jit.store64(valueReg, MacroAssembler::BaseIndex(storageReg, propertyReg, MacroAssembler::TimesEight));
&gt; +#endif

ditto

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:3555
&gt; +        compilePutByVal(node);

why? This seems to be just moving code around within the same file. Is the goal just to have compilePutByVal functions on both 32-bit and 64-bit, even though they don&apos;t share an implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811635</commentid>
    <comment_count>6</comment_count>
      <attachid>442524</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-11-03 13:34:56 -0700</bug_when>
    <thetext>Comment on attachment 442524
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2513
&gt;&gt; +#endif
&gt; 
&gt; Is it worth making this code JSValueRegs based?

OK

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2547
&gt;&gt; +#endif
&gt; 
&gt; ditto

OK

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:3555
&gt;&gt; +        compilePutByVal(node);
&gt; 
&gt; why? This seems to be just moving code around within the same file. Is the goal just to have compilePutByVal functions on both 32-bit and 64-bit, even though they don&apos;t share an implementation?

Shipping a shared implementation was my initial plan but I thought the patch was already too long. I&apos;ll update it with the shared implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811872</commentid>
    <comment_count>7</comment_count>
      <attachid>443311</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-11-04 09:19:26 -0700</bug_when>
    <thetext>Created attachment 443311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812158</commentid>
    <comment_count>8</comment_count>
      <attachid>443410</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-11-05 09:50:27 -0700</bug_when>
    <thetext>Created attachment 443410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812638</commentid>
    <comment_count>9</comment_count>
      <attachid>443410</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-11-08 09:10:32 -0800</bug_when>
    <thetext>Comment on attachment 443410
Patch

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

Nice. r=me

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        6. Removed a lot of whitespace.

We don&apos;t typically do this. Although the style says not to leave trailing whitespace, we usually don&apos;t go back and remove trailing whitespace. I think the main motivation is to make it easier to `blame` code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812682</commentid>
    <comment_count>10</comment_count>
      <attachid>443565</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-11-08 10:29:39 -0800</bug_when>
    <thetext>Created attachment 443565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813080</commentid>
    <comment_count>11</comment_count>
      <attachid>443678</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-11-09 04:19:33 -0800</bug_when>
    <thetext>Created attachment 443678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813293</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-09 13:33:42 -0800</bug_when>
    <thetext>Committed r285530 (244047@main): &lt;https://commits.webkit.org/244047@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443678.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815216</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-11-15 14:31:07 -0800</bug_when>
    <thetext>Caused the regression, tracking in https://bugs.webkit.org/show_bug.cgi?id=233147</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442416</attachid>
            <date>2021-10-25 14:17:07 -0700</date>
            <delta_ts>2021-10-26 12:24:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211025171705.patch</filename>
            <type>text/plain</type>
            <size>102571</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2Y4MDVkN2U4NDk0NDQwZTlhN2RmNWY2NTI0NGFkZTNmMzAxNjE5Li44YTk5ZjY2MTZiMmE5OTI0
NDEwMGVjMDAyNmMxMWZiZDhjZGU5ZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNzIgQEAKKzIwMjEtMTAtMjUgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVwIGZy
b20gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNoYW5nZXMgYnV0IGl0IHNob3Vs
ZCBiZSBORkM6CisKKyAgICAgICAgMS4gUmVtb3ZlZCBzZXZlcmFsIGNhbGxzIHRvIG9wZXJhdGlv
blB1dEJ5VmFsKkNlbGwqIHRoYXQgd2VyZQorICAgICAgICBvbmx5IHVzZWQgYnkgdGhlIDMyIGJp
dCBjb2RlIHBhdGhzIGR1ZSB0byB0aGUgbGFjayBvZiByZWdpc3RlcnMuCisgICAgICAgIFRoZXNl
IGNhbGxzIHdlcmUgcmVwbGFjZWQgYnkgdGhlIGNhbGxzIHVzZWQgYnkgdGhlIDY0IGJpdCBwYXRo
cywKKyAgICAgICAgdGhhdCBleHBlY3QgRW5jb2RlZEpTVmFsdWVzCisgICAgICAgIDIuIEJlY2F1
c2Ugb2YgIzEsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aG9zZSBtZXRob2RzLCBzaW5jZSBubyBvbmUK
KyAgICAgICAgdXNlcyB0aGVtIGFueW1vcmUuCisgICAgICAgIDMuIENyZWF0ZWQgY29tcGlsZVB1
dEJ5VmFsIHRvIGhhbmRsZSBhbGwgY2FzZXMgKHNpbWlsYXIgdG8gY29tcGlsZUdldEJ5VmFsKS4K
KyAgICAgICAgNC4gUmVtb3ZlZCB0aGUgRWRnZSYgY2hpbGRYIGZyb20gdGhlIFB1dEJ5VmFsIGhh
bmRsaW5nIChhbmQgYWxsIG1ldGhvZHMKKyAgICAgICAgdGhhdCBleHBlY3RlZCB0aGVtKSBpbiBm
YXZvciBvZiBnZXR0aW5nIHRoZW0gZnJvbSBub2RlIHdoZW4gbmVlZGVkLgorICAgICAgICA1LiBV
bmlmaWVkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwgc28gaXQgY291bGQgYmUgdXNlZCBieSBi
b3RoIDMyCisgICAgICAgIGFuZCA2NCBiaXQgYXJjaHMuCisgICAgICAgIDYuIFJlbW92ZWQgYSBs
b3Qgb2Ygd2hpdGVzcGFjZS4KKworICAgICAgICBDaGFuZ2VzIGFyZSBuZXV0cmFsIGluIEFSTXY3
IGJ1dCAoc3VycHJpc2luZ2x5KSB0aGVyZSBpcyBhIHNtYWxsIGdhaW4KKyAgICAgICAgb24gWDg2
XzY0LCBwcm9iYWJseSBiZWNhdXNlIG9mIHRoZSBtZXJnZWQgc3dpdGNoIGNhc2UgaW4gY29tcGls
ZUdldEJ5VmFsOgorCisgICAgICAgIEpldFN0cmVhbTIKKyAgICAgICAgYSBtZWFuID0gOTkuNTI5
MDEKKyAgICAgICAgYiBtZWFuID0gMTAyLjcwMzIzCisgICAgICAgIHBWYWx1ZSA9IDAuMDI0NTY1
NjYxMQorICAgICAgICAoQmlnZ2VyIG1lYW5zIGFyZSBiZXR0ZXIuKQorICAgICAgICAxLjAzMiB0
aW1lcyBiZXR0ZXIKKyAgICAgICAgUmVzdWx0cyBBUkUgc2lnbmlmaWNhbnQKKworICAgICAgICAq
IGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0Q2hhckNvZGVBdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbE9uU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUZyb21DaGFyQ29kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVUb0ludDMyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVVJbnQzMlRv
TnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZURvdWJsZUFzSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlRG91YmxlUmVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlUmVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpjbGFtcERvdWJsZVRvQnl0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Y29t
cGlsZUNsYW1wSW50ZWdlclRvQnl0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Y29t
cGlsZUNsYW1wRG91YmxlVG9CeXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRUeXBlZEFycmF5Qm91bmRzQ2hlY2sp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlw
ZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6bG9hZEZyb21JbnRUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2V0SW50VHlwZWRBcnJheUxvYWRSZXN1
bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QnlWYWxPbkludFR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpnZXRJbnRUeXBlZEFycmF5U3RvcmVPcGVyYW5kKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2V0SW50VHlwZWRBcnJheVN0b3JlT3Bl
cmFuZEZvckF0b21pY3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJy
YXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
UHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFs
Rm9yT2JqZWN0V2l0aFN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRQcml2YXRlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcml2YXRlTmFtZUJ5VmFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVO
YW1lQnlJZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWxXaXRoVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQdXRQcml2YXRlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tQcml2YXRlQnJhbmQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UHJp
dmF0ZUJyYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQYXJzZUludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5jZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9m
Rm9yQ2VsbHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlSW5zdGFuY2VPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdE5vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCaXR3aXNlTm90KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFVudHlwZWRPckFueUJpZ0ludEJpdE9wKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0
d2lzZU9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUJpdHdpc2VPcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRVbnR5cGVkT3JCaWdJbnRSaWdodFNoaWZ0Qml0T3ApOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVMU2hpZnRPcCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdFJT
aGlmdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTaGlmdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlQWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGhJQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzQ2VsbFdpdGhUeXBlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzVHlwZWRB
cnJheVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlVG9PYmplY3RPckNhbGxPYmplY3RDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFkZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFicyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFy
aXRoRG91YmxlVW5hcnlPcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aFN1Yik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbmNPckRlYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE5lZ2F0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11
bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZURpdik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBcml0aERpdik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcml0aEZSb3VuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoVW5hcnkpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhT
cXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoTWluTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpjb21waWxlQXJpdGhQ
b3dJbnRlZ2VyRmFzdFBhdGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlVmFsdWVQb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhQb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbXBhcmVVbnNpZ25lZCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCb29sZWFuQ29tcGFy
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJ
bnQzMkNvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRG91YmxlQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTeW1ib2xFcXVhbGl0eSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZVN5bWJv
bEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
ZW1pdEJpdHdpc2VKU1ZhbHVlRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNoT25CaXR3aXNlSlNWYWx1ZUVxdWFsaXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vdERvdWJs
ZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50Tm9yU3RyaW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVO
b3REb3VibGVOZWl0aGVyRG91YmxlTm9ySGVhcEJpZ0ludE5vclN0cmluZ1N0cmljdEVxdWFsaXR5
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0
cmluZ0VxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVN0cmluZ1RvVW50eXBlZEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0lkZW50RXF1YWxpdHkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRl
bnRUb05vdFN0cmluZ1ZhckVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0NvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRDb21wYXJlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNhbWVWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVU
b0Jvb2xlYW5TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlVG9Cb29sZWFuU3RyaW5nT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTdHJpbmdCcmFuY2gpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3RyaW5nT3JPdGhlckJyYW5jaCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb25z
dGFudFN0b3JhZ2VQb2ludGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y2FnZVR5cGVkQXJyYXlTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlw
ZWRBcnJheUJ5dGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJn
dW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVNraXBTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRHbG9iYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0R2xvYmFsVGhpcyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbkJlUm9wZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a0lkZW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU5ld0Z1bmN0aW9uQ29tbW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldEZ1bmN0aW9uTmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYXJhcmdzTGVuZ3RoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRW
YXJhcmdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUZvcndhcmRWYXJhcmdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFjdGl2YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlRGlyZWN0QXJndW1lbnRzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEZyb21B
cmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0VG9Bcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlU2NvcGVkQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUNsb25l
ZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVDcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUmVzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTcHJlYWQpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlX
aXRoU3ByZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldFJlc3RMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjplbWl0UG9wdWxhdGVTbGljZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5U2xpY2UpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlJbmRleE9mKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5UHVz
aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVO
b3RpZnlXcml0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVJc09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVUeXBlT2ZJc09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc0NhbGxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzQ29uc3RydWN0b3IpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVHlwZU9mKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cnVjdHVyZUNo
ZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUNoZWNrSXNDb25zdGFudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDaGVja05vdEVtcHR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9y
YWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCdXR0
ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OmFsbG9jYXRlVGVtcG9yYXJ5UmVn
aXN0ZXJzRm9yU25pcHBldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDYWxsRE9NKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET01HZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tKU0Nhc3QpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5
VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3JPclN0cmluZ1ZhbHVlT2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OmdldEV4ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0
cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3U3RyaW5nT2Jq
ZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU5ld1N5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjplbWl0TmV3VHlwZWRBcnJheVdpdGhTaXplSW5SZWdpc3Rlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdS
ZWdleHApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBlRmlsdGVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlQ2VsbFR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVJbnQzMik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlYWxO
dW1iZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVEb3VibGVSZXBSZWFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlQm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNlbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsT3JPdGhlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUZ1bmN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRmlu
YWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVSZWdFeHBPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVByb3h5T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGVyaXZlZEFycmF5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJvbWlzZU9i
amVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZURhdGVPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVNYXBPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTZXRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVj
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZURhdGFWaWV3T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0cmluZ09yT3RoZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVu
dEFuZExvYWRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlU3RyaW5nSWRlbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVj
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZU5vdFN0cmluZ1Zhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU5vdFN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUhlYXBCaWdJbnQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOb3RDZWxsKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbE5vckJp
Z0ludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZU5vdERvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhl
YXBCaWdJbnROb3JTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoSW50SnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hJbW0pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhclN0cmluZ0p1bXApOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hh
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCaW5h
cnlTd2l0Y2hTdHJpbmdSZWN1cnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmluZ09uU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2gpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjphZGRCcmFuY2gpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpsaW5rQnJhbmNoZXMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RvcmVCYXJyaWVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEFjY2Vzc29yQnlJZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlc29sdmVTY29wZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZXNvbHZlU2NvcGVGb3JIb2lz
dGluZ0Z1bmNEZWNsSW5FdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldER5bmFtaWNW
YXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
UHV0RHluYW1pY1Zhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRDbG9zdXJlVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dENsb3N1cmVWYXIpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0SW50ZXJuYWxGaWVsZCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRJbnRlcm5h
bEZpZWxkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dEFjY2Vzc29yQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExh
c3RJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVSZWdFeHBFeGVjKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nUmVwbGFjZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlj
a3kpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
UmVnRXhwTWF0Y2hGYXN0R2xvYmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cE1hdGNoRmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMYXp5SlNDb25zdGFudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXRlcmlhbGl6ZU5l
d09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVSZWNvcmRSZWdFeHBDYWNoZWRSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRGVmaW5lRGF0YVByb3BlcnR5KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURlZmluZUFjY2Vzc29y
UHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpl
bWl0QWxsb2NhdGVCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTm9ybWFsaXplTWFwS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldE1hcEJ1Y2tldEhlYWQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVja2V0
TmV4dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVMb2FkS2V5RnJvbU1hcEJ1Y2tldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RWYWx1ZUZyb21X
ZWFrTWFwR2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVRocm93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51
bWVyYXRvck5leHRFeHRyYWN0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvck5leHRFeHRyYWN0TW9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4
dFVwZGF0ZVByb3BlcnR5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckluQnlWYWwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVy
YXRvckhhc093blByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWREaXJlY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZFdpdGhUaGlz
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVB1dEJ5T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU1hdGNoU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByb3BlcnR5RW51bWVyYXRvcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRFeGVjdXRh
YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEdldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVHZXRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0Q2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldENhbGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVT
ZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJDYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlCdWZmZXIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU2l6
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVO
ZXdUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVRvVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVPYmplY3RLZXlzT3JPYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEFz
c2lnbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVPYmplY3RDcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ3JlYXRlVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3Jl
YXRlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUNyZWF0ZUFzeW5jR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdJbnRlcm5hbEZpZWxkT2JqZWN0
SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTmV3QXN5bmNHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3SW50ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1ByaW1pdGl2
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVU
b1Byb3BlcnR5S2V5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVRvTnVtZXJpYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xv
Z3VlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUxvZ1NoYWRvd0NoaWNrZW5UYWlsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVNldEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFrU2V0QWRkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBTZXQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJv
dG90eXBlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlSWRlbnRpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTWlzY1N0cmljdEVxKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6ZW1pdEluaXRpYWxpemVCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQWxsb2NhdGVOZXdBcnJheVdpdGhT
aXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUhhc0luZGV4ZWRQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVFeHRyYWN0Q2F0Y2hMb2NhbCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVByb2ZpbGVUeXBl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmdlbmVy
aWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY0pTVmFsdWVQZWVwaG9sZUJyYW5jaCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIZWFwQmlnSW50RXF1
YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTWFrZVJvcGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRW51bWVyYXRvckdldEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbCk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorCiAyMDIxLTEwLTI1ICBNaWtoYWlsIFIu
IEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ11bMzJiaXRdIERv
bid0IHNwZWN1bGF0ZSBDZWxsIG9uIFB1dEJ5VmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAxMzdhYjU1MTkxNGVkMzZlMzdlZTFlZjQ2ODJkYmEy
NDZhMmEwZTk4Li4zZTgyOTYwM2ZkMGQ4NjgzZTlkOWE3NTVmYzhjN2IzNjNiYTg2ZDg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTgyMCwyNCAr
ODIwLDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBwdXRCeVZhbEludGVybmFsPGZh
bHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0
eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsQ2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
LSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwg
dm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUp
OwotfQotCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxs
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAg
cHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIEpTVmFsdWU6
OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwotfQotCiBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwq
IHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC05OTYsMjQgKzk3OCw2IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0CiAgICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2
bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQot
ewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFs
SW50ZXJuYWw8dHJ1ZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNl
bGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAKLSAgICBwdXRCeVZhbEludGVybmFs
PGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVu
Y29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKLX0KLQogSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlNDZWxsKiBzdHJpbmcsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBj
MjJhYmE3NzBmYzk5Y2M2NGJjNWI5ZTdkOGQ4ZDFiNWJlMjU4YjIzLi4yYzM3ZmQwOTUzMmZiMzk5
N2FlNGQ3ZGI0ZDgwYWFhNGU2MWU4MGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaApAQCAtMTQ1LDggKzE0NSw2IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsK
IAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVy
dHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
SlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CkBAIC0xNTUs
OCArMTUzLDYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJl
eW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG8KIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RDZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxT
dHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3Ry
aW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9uU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
VmFsRGlyZWN0Q2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA1MWJk
MWI3YjNlZDk0OTRiZDNhNDBiN2Y5MjlhNjVhZjcwYjNhNDgyLi5iMmYzNDIxMjE4NDc0OTIxYzM5
MzNmOTZkMzdiNGJhMmE2NzU2N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjQ4MSwyOCArMjQ4MSwxMTMgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHJhcHMoTm9kZSogbm9kZSkKICAgICBub1Jlc3VsdChu
b2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZVB1dEJ5VmFsKE5v
ZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXNlLCBTcGVjdWxhdGVTdHJpY3RJbnQz
Mk9wZXJhbmQmIHByb3BlcnR5KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3Vv
dXNQdXRCeVZhbChOb2RlKiBub2RlKQogewotICAgIEVkZ2UgY2hpbGQzID0gbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAyKTsKLSAgICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMyk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVTdHJp
Y3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAyKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKIAotICAgIEFy
cmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKTsKLSAgICAKICAgICBHUFJSZWcg
YmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHku
Z3ByKCk7Ci0gICAgCi0gICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGls
ZDMpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgR1BSUmVnIHZhbHVlVGFnUmVnID0gdmFs
dWUudGFnR1BSKCk7CisgICAgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZyA9IHZhbHVlLnBheWxvYWRH
UFIoKTsKKyNlbHNlCisgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7CisjZW5kaWYK
KworICAgIGlmICghbV9jb21waWxlT2theSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RvcmFn
ZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMp
KTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICBpZiAobm9k
ZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0
byB0aGUgYXJyYXkuCisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5Lmdwcigp
OworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMudGFnKSkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2Fk
KSkpOworI2Vsc2UKKyAgICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRp
bWVzRWlnaHQpKTsKKyNlbmRpZgorICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3Jhcnk7CisgICAgR1BSUmVnIHRl
bXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2Rl
KTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlOworCisgICAgQXJyYXlNb2Rl
IGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOworICAgIGlmIChhcnJheU1vZGUuaXNJbkJv
dW5kcygpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICBPdXRPZkJv
dW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkp
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMg
PSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGlj
TGVuZ3RoKCkpKTsKKworICAgICAgICBzbG93Q2FzZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mVmVjdG9yTGVuZ3RoKCkpKTsKKworICAg
ICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCisgICAgICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7
CisKKyAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVt
cG9yYXJ5UmVnKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5n
dGgoKSkpOworCisgICAgICAgIGluQm91bmRzLmxpbmsoJm1faml0KTsKKyAgICB9CiAKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOwor
ICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7CisjZWxzZQorICAg
IG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CisjZW5kaWYK
KworICAgIGJhc2UudXNlKCk7CisgICAgcHJvcGVydHkudXNlKCk7CisgICAgdmFsdWUudXNlKCk7
CisgICAgc3RvcmFnZS51c2UoKTsKKworICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygp
KSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAg
ICAgIHNsb3dDYXNlLCB0aGlzLAorICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmlj
dCgpCisgICAgICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KQorICAgICAgICAgICAgICAgIDogKG5vZGUt
Pm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05v
blN0cmljdCksCisgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKKyNlbHNl
CisgICAgICAgICAgICB2YWx1ZVJlZykpOworI2VuZGlmCisgICAgfQorCisgICAgbm9SZXN1bHQo
bm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKK30KKwordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUpCit7CisgICAgQXJyYXlNb2Rl
IGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBT
cGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZSh0
aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKworICAgIEdQUlJlZyBi
YXNlUmVnID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5n
cHIoKTsKICAgICBGUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKLSAgICAKKwogICAgIERG
R19UWVBFX0NIRUNLKAotICAgICAgICBKU1ZhbHVlUmVncygpLCBjaGlsZDMsIFNwZWNGdWxsUmVh
bE51bWJlciwKKyAgICAgICAgSlNWYWx1ZVJlZ3MoKSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAyKSwgU3BlY0Z1bGxSZWFsTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFuY2hJZk5h
Tih2YWx1ZVJlZykpOwotICAgIAorCiAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQogICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQpOwor
CisgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDMpKTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CiAK
ICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CkBAIC0yNTEwLDQxICsyNTk1
LDQxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiBu
b2RlLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYgYmFzCiAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJl
ZyA9IHByb3BlcnR5LmdwcigpOwogICAgICAgICBGUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIo
KTsKICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0KSk7Ci0gICAgICAgIAorCiAgICAgICAgIG5vUmVzdWx0KG1fY3VycmVudE5vZGUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsK
ICAgICBHUFJSZWcgdGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0
ZW1wb3JhcnksIG5vZGUpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0g
ICAgCisKICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAogICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxw
dHIsCiAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVx
dWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0
dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3Nl
bWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFn
ZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0gICAgICAgIAorCiAg
ICAgICAgIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JF
cXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1
dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAgICAgICAKKwogICAgICAgICBp
ZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7Ci0gICAg
ICAgIAorCiAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcs
IHRlbXBvcmFyeVJlZyk7CiAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGlj
TGVuZ3RoKCkpKTsKIAogICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7CiAgICAgfQotICAg
IAorCiAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
KSk7CiAKICAgICBiYXNlLnVzZSgpOwogICAgIHByb3BlcnR5LnVzZSgpOwogICAgIHZhbHVlLnVz
ZSgpOwogICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgCisKICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0
T2ZCb3VuZHMoKSkgewogICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgICAg
IHNsb3dQYXRoQ2FsbCgKQEAgLTM1NjcsMTYgKzM2NTIsMTkgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJ
VDo6Z2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZEZvckF0b21pY3MoCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlw
ZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiBub2RlLCBUeXBlZEFy
cmF5VHlwZSB0eXBlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50
VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQogewogICAgIEFTU0VS
VChpc0ludCh0eXBlKSk7Ci0gICAgCisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0
cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKTsKICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworCiAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhp
cyk7CiAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAgIAotICAgIEVk
Z2UgdmFsdWVVc2UgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAgIAor
ICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgcHJvcGVydHlSZWcg
PSBwcm9wZXJ0eS5ncHIoKTsKKwogICAgIEdQUlRlbXBvcmFyeSB2YWx1ZTsKICNpZiBVU0UoSlNW
QUxVRTMyXzY0KQogICAgIEdQUlRlbXBvcmFyeSBwcm9wZXJ0eVRhZzsKQEAgLTM1ODQsMTMgKzM2
NzIsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRB
cnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnQKICNlbmRpZgogCiAgICAgSklUQ29tcGls
ZXI6Okp1bXBMaXN0IHNsb3dQYXRoQ2FzZXM7Ci0gICAgCisKICAgICBib29sIHJlc3VsdCA9IGdl
dEludFR5cGVkQXJyYXlTdG9yZU9wZXJhbmQoCi0gICAgICAgIHZhbHVlLCBwcm9wZXJ0eSwKKyAg
ICAgICAgdmFsdWUsIHByb3BlcnR5UmVnLAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAg
IHByb3BlcnR5VGFnLCB2YWx1ZVRhZywKICNlbmRpZgotICAgICAgICB2YWx1ZVVzZSwgc2xvd1Bh
dGhDYXNlcywgaXNDbGFtcGVkKHR5cGUpKTsKKyAgICAgICAgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAyKSwgc2xvd1BhdGhDYXNlcywgaXNDbGFtcGVkKHR5cGUpKTsKICAgICBpZiAo
IXJlc3VsdCkgewogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MzYwMiw1NyArMzY5MCw0MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxG
b3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydAogICAgIEdQUlJlZyB2
YWx1ZVRhZ0dQUiA9IHZhbHVlVGFnLmdwcigpOwogI2VuZGlmCiAKLSAgICBBU1NFUlRfVU5VU0VE
KHZhbHVlR1BSLCB2YWx1ZUdQUiAhPSBwcm9wZXJ0eSk7Ci0gICAgQVNTRVJUKHZhbHVlR1BSICE9
IGJhc2UpOworICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZhbHVlR1BSICE9IHByb3BlcnR5
UmVnKTsKKyAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZVJlZyk7CiAgICAgQVNTRVJUKHZhbHVl
R1BSICE9IHN0b3JhZ2VSZWcpOwotICAgIEpJVENvbXBpbGVyOjpKdW1wIG91dE9mQm91bmRzID0g
anVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0eSwgc2NyYXRj
aC5ncHIoKSk7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlw
ZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBzY3JhdGNoLmdw
cigpKTsKIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBjYXNlIDE6Ci0g
ICAgICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25lKSk7CisgICAg
ICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25lKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgMjoKLSAgICAgICAgbV9qaXQuc3RvcmUxNih2YWx1ZS5ncHIo
KSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9B
c3NlbWJsZXI6OlRpbWVzVHdvKSk7CisgICAgICAgIG1faml0LnN0b3JlMTYodmFsdWUuZ3ByKCks
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc1R3bykpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDQ6Ci0gICAg
ICAgIG1faml0LnN0b3JlMzIodmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpKTsKKyAgICAg
ICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91cikpOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAotICAg
IEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91
dE9mQm91bmRzKG5vZGUsIGJhc2UsIG91dE9mQm91bmRzKTsKKyAgICBKSVRDb21waWxlcjo6SnVt
cCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0RldGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBi
YXNlUmVnLCBvdXRPZkJvdW5kcyk7CiAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgZG9u
ZS5saW5rKCZtX2ppdCk7CiAKICAgICBpZiAoIXNsb3dQYXRoQ2FzZXMuZW1wdHkoKSkgeworICAg
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICBzbG93
UGF0aENhc2VzLCB0aGlzLAorICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgp
CisgICAgICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QpCisgICAg
ICAgICAgICAgICAgOiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1
dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QpLAogI2lm
IFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0
KSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAg
ICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAgICBub2RlLT5l
Y21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCA6IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0
LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgcHJvcGVydHksIHZhbHVlR1BSKSk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93
UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywKLSAgICAgICAg
ICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgcHJvcGVydHksIHZhbHVlR1BS
KSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2Vt
YW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlR1BSKSk7CiAjZWxzZSAvLyBub3Qg
VVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Qp
IHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAg
ICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVj
bWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCA6
IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdCwKLSAgICAgICAgICAgICAgICBO
b1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2UsIEpTVmFsdWVSZWdzKHBy
b3BlcnR5VGFnR1BSLCBwcm9wZXJ0eSksIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BSLCB2YWx1ZUdQ
UikpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAotICAg
ICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsQ2VsbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0cmljdCwKLSAgICAgICAg
ICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9n
cmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2UsIEpTVmFs
dWVSZWdzKHByb3BlcnR5VGFnR1BSLCBwcm9wZXJ0eSksIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BS
LCB2YWx1ZUdQUikpKTsKLSAgICAgICAgfQorICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYykpLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShiYXNlUmVnKSwgSlNW
YWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3BlcnR5UmVnKSwgSlNWYWx1ZVJlZ3ModmFsdWVU
YWdHUFIsIHZhbHVlR1BSKSkpOwogI2VuZGlmCiAgICAgfQotICAgIAorCiAgICAgbm9SZXN1bHQo
bm9kZSk7CiB9CiAKQEAgLTM2OTksMzkgKzM3NzIsNDAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9kZSwgVHlwZWRBcnJheVR5
cGUKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiBub2RlLCBU
eXBlZEFycmF5VHlwZSB0eXBlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFs
Rm9yRmxvYXRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCiB7CiAg
ICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgIAorCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBT
cGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZU9w
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOwogICAgIFN0b3JhZ2VP
cGVyYW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAzKSk7
Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAgIAotICAgIEVkZ2Ug
dmFsdWVVc2UgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwogCi0gICAgU3Bl
Y3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZU9wKHRoaXMsIHZhbHVlVXNlKTsKICAgICBGUFJUZW1w
b3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJUZW1wb3JhcnkgZ3BTY3JhdGNoKHRoaXMpOwog
ICAgIEZQUlJlZyB2YWx1ZUZQUiA9IHZhbHVlT3AuZnByKCk7CiAgICAgRlBSUmVnIHNjcmF0Y2hG
UFIgPSBzY3JhdGNoLmZwcigpOworICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKKyAg
ICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKICAgICBHUFJSZWcgc2NyYXRj
aEdQUiA9IGdwU2NyYXRjaC5ncHIoKTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2Uu
Z3ByKCk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JU
eXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgcHJvcGVydHksIHNjcmF0Y2hHUFIpOwot
ICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVk
QXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc2NyYXRjaEdQUik7
CiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDogewogICAgICAg
ICBtX2ppdC5tb3ZlRG91YmxlKHZhbHVlRlBSLCBzY3JhdGNoRlBSKTsKICAgICAgICAgbV9qaXQu
Y29udmVydERvdWJsZVRvRmxvYXQodmFsdWVGUFIsIHNjcmF0Y2hGUFIpOwotICAgICAgICBtX2pp
dC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpKTsKKyAgICAgICAgbV9q
aXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3Jh
Z2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlIDg6Ci0gICAgICAgIG1faml0LnN0b3JlRG91YmxlKHZh
bHVlRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOworICAgICAgICBtX2ppdC5zdG9yZURvdWJsZSh2
YWx1ZUZQUiwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAg
ICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0RldGFjaGVkSWZP
dXRPZkJvdW5kcyhub2RlLCBiYXNlLCBvdXRPZkJvdW5kcyk7CisgICAgSklUQ29tcGlsZXI6Okp1
bXAgZG9uZSA9IGp1bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMobm9kZSwg
YmFzZVJlZywgb3V0T2ZCb3VuZHMpOwogICAgIGlmIChkb25lLmlzU2V0KCkpCiAgICAgICAgIGRv
bmUubGluaygmbV9qaXQpOwogICAgIG5vUmVzdWx0KG5vZGUpOwpAQCAtMzkwNywxNyArMzk4MSwx
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5hbWVCeUlkKE5vZGUq
IG5vZGUpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxG
b3JDZWxsV2l0aFN0cmluZyhOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxkMiwg
RWRnZSYgY2hpbGQzKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2Vs
bFdpdGhTdHJpbmcoTm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcx
KHRoaXMsIGNoaWxkMSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBjaGls
ZDIpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKKyAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBhcmcxKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBtX2pp
dC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAogICAgIEdQUlJlZyBhcmcxR1BSID0g
YXJnMS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgSlNWYWx1
ZVJlZ3MgYXJnM1JlZ3MgPSBhcmczLmpzVmFsdWVSZWdzKCk7CiAKLSAgICBzcGVjdWxhdGVTdHJp
bmcoY2hpbGQyLCBhcmcyR1BSKTsKKyAgICBzcGVjdWxhdGVTdHJpbmcobV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAxKSwgYXJnMkdQUik7CiAKICAgICBmbHVzaFJlZ2lzdGVycygpOwog
ICAgIGNhbGxPcGVyYXRpb24oCkBAIC0zOTMwLDE3ICs0MDA0LDE3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqIG5vZGUsIEVkZ2Um
IGNoaWxkMSwKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2woTm9kZSogbm9kZSwgRWRnZSYgY2hpbGQx
LCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMykKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKE5vZGUqIG5vZGUpCiB7Ci0gICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBjaGlsZDEpOwotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGFyZzIodGhpcywgY2hpbGQyKTsKLSAgICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIGNoaWxk
Myk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcyKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgIEpTVmFsdWVPcGVyYW5k
IGFyZzModGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CiAKICAgICBH
UFJSZWcgYXJnMUdQUiA9IGFyZzEuZ3ByKCk7CiAgICAgR1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdw
cigpOwogICAgIEpTVmFsdWVSZWdzIGFyZzNSZWdzID0gYXJnMy5qc1ZhbHVlUmVncygpOwogCi0g
ICAgc3BlY3VsYXRlU3ltYm9sKGNoaWxkMiwgYXJnMkdQUik7CisgICAgc3BlY3VsYXRlU3ltYm9s
KG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSksIGFyZzJHUFIpOwogCiAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDA0OWJjZjdlNmZkYjc5MmFkNmE1ODkx
MDdhOGQxYTI3MWMxZTE5MDIuLmUxM2FiNDQ4NTk4NjI4YTY4MTEwMWQzNDlkNmQwMmM4MjA4NjA4
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
QEAgLTEzNDIsMTEgKzEzNDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlR2V0UHJvdG90
eXBlT2YoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUlkZW50aXR5KE5vZGUqKTsKICAgICAKLSNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhc2VPcGVyYW5kVHlw
ZSwgdHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVmFsdWVPcGVyYW5kVHlw
ZSwgdHlwZW5hbWUgVGFnVHlwZT4KLSAgICB2b2lkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwo
Tm9kZSosIEJhc2VPcGVyYW5kVHlwZSYsIFByb3BlcnR5T3BlcmFuZFR5cGUmLCBWYWx1ZU9wZXJh
bmRUeXBlJiwgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZywgVGFnVHlwZSB2YWx1ZVRhZyk7Ci0jZW5k
aWYKLSAgICB2b2lkIGNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiwgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQmIGJhc2UsIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCYgcHJvcGVydHkpOworICAg
IHZvaWQgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKik7CisgICAgdm9pZCBjb21waWxl
RG91YmxlUHV0QnlWYWwoTm9kZSopOwogICAgIGJvb2wgcHV0QnlWYWxXaWxsTmVlZEV4dHJhUmVn
aXN0ZXIoQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhcnJheU1v
ZGUubWF5U3RvcmVUb0hvbGUoKTsKQEAgLTEzNTcsNiArMTM1NCw4IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlLT5h
cnJheU1vZGUoKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsKE5vZGUq
KTsKKwogICAgIC8vIFdlIHVzZSBhIHNjb3BlZExhbWJkYSB0byBwbGFjYXRlIHJlZ2lzdGVyIGFs
bG9jYXRpb24gdmFsaWRhdGlvbi4KICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbChOb2RlKiwgY29u
c3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFG
b3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAKQEAgLTE0NDYsMTMgKzE0NDUsMTMg
QEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUdldFR5cGVkQXJyYXlCeXRlT2Zmc2V0QXNJbnQ1
MihOb2RlKik7CiAjZW5kaWYKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJh
eShOb2RlKiwgVHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpT
VmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVm
aXgpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShHUFJSZWcgYmFz
ZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiwgVHlwZWRBcnJheVR5cGUpOworICAgIHZvaWQgY29t
cGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUpOwogICAg
IHZvaWQgY29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlU
eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKLSAgICB2b2lkIGNvbXBp
bGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5
LCBOb2RlKiwgVHlwZWRBcnJheVR5cGUpOworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yRmxv
YXRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSk7CiAgICAgdm9pZCBjb21waWxlR2V0
QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0
dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQp
PiYgcHJlZml4KTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTeW1ib2wo
Tm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9y
bWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29t
cGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSosIEVkZ2UmIGNoaWxkMSwgRWRnZSYg
Y2hpbGQyLCBFZGdlJiBjaGlsZDMpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdp
dGhTeW1ib2woTm9kZSosIEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMp
OworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSopOworICAg
IHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2woTm9kZSopOwogICAgIHZvaWQg
Y29tcGlsZUdldEJ5VmFsV2l0aFRoaXMoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVB1dFByaXZh
dGVOYW1lKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQoTm9kZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKaW5kZXggMDc0NTZhNzQyMWE4MTMxYThjMGE2NzNiMTViMWZkYTZiYzZiYWUxYS4u
NGU1NmI0MGI3ZTVlNzkzZWJlZDljODIxYzA4ZGNjZDg5NmViYjY0YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0x
NzQ2LDczICsxNzQ2LDIwOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNoKE5vZGUq
IG5vZGUpCiAgICAgfQogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlT3BlcmFuZFR5cGUsIHR5
cGVuYW1lIFByb3BlcnR5T3BlcmFuZFR5cGUsIHR5cGVuYW1lIFZhbHVlT3BlcmFuZFR5cGUsIHR5
cGVuYW1lIFRhZ1R5cGU+Ci12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29udGlndW91c1B1
dEJ5VmFsKE5vZGUqIG5vZGUsIEJhc2VPcGVyYW5kVHlwZSYgYmFzZSwgUHJvcGVydHlPcGVyYW5k
VHlwZSYgcHJvcGVydHksIFZhbHVlT3BlcmFuZFR5cGUmIHZhbHVlLCBHUFJSZWcgdmFsdWVQYXls
b2FkUmVnLCBUYWdUeXBlIHZhbHVlVGFnKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEJ5VmFsKE5vZGUqIG5vZGUpCiB7Ci0gICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDMpOworICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJh
eU1vZGUoKS5tb2RlRm9yUHV0KCk7CisgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7Cisg
ICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJheToKKyAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6
CisgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdBcmd1bWVudHM6CisgICAgY2FzZSBBcnJheTo6
U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKKyAgICBjYXNlIEFycmF5OjpVbnByb2ZpbGVkOgorICAg
IGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6CisgICAgY2FzZSBBcnJheTo6QmlnVWludDY0QXJy
YXk6CisgICAgY2FzZSBBcnJheTo6U3RyaW5nOgorICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3Vt
ZW50czoKKyAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6CisgICAgY2FzZSBBcnJheTo6
VW5kZWNpZGVkOgorICAgICAgICBERkdfQ1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgIkJhZCBh
cnJheSBtb2RlIHR5cGUiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheTo6R2VuZXJp
YzogeworICAgICAgICBERkdfQVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIG5vZGUtPm9wKCkg
PT0gUHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCwgbm9kZS0+b3AoKSk7
CisgICAgICAgIGlmIChtX2dyYXBoLm1fc2xvd1B1dEJ5VmFsLmNvbnRhaW5zKG5vZGUpKSB7Cisg
ICAgICAgICAgICBpZiAobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKS51c2VLaW5k
KCkgPT0gQ2VsbFVzZSkgeworICAgICAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcobm9kZSk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KIAotICAgIEFycmF5TW9kZSBhcnJh
eU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKTsKLSAgICAKLSAgICBHUFJSZWcgYmFzZVJlZyA9IGJh
c2UuZ3ByKCk7Ci0gICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAg
Ci0gICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQpOwotICAgIEdQUlJlZyBz
dG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAxKS51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKG5vZGUpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9w
ZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICAgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQo
bm9kZSwgMikpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFs
dWVSZWdzKCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0
eS5qc1ZhbHVlUmVncygpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFs
dWUuanNWYWx1ZVJlZ3MoKTsKKworICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAg
ICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQorICAgICAgICAgICAgICAg
IGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgVHJ1
c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
bm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJl
Z3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9k
ZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVy
YXRpb25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFw
aCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VS
ZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MpOworICAgICAgICAgICAgbV9qaXQuZXhjZXB0
aW9uQ2hlY2soKTsKKworICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorCisgICAgICAgIEpTVmFsdWVPcGVyYW5kIGJhc2UodGhpcywgbV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9u
KTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAxKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKKyAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAyKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgYmFz
ZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7CisgICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5
UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7CisgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVl
UmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CisKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBzcGVjdWxhdGUobm9k
ZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgIHNwZWN1bGF0
ZShub2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKworICAgICAgICBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7CisgICAgICAgIENh
bGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhj
ZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUo
KSk7CisgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0
ZXJzKCk7CisgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGly
ZWN0OworICAgICAgICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7CisKKyAg
ICAgICAgSklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAorICAgICAgICAgICAgbV9qaXQuY29kZUJs
b2NrKCksIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6
OlB1dEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICAgICAgYmFzZVJlZ3MsIHByb3BlcnR5
UmVncywgdmFsdWVSZWdzLCBJbnZhbGlkR1BSUmVnLCBJbnZhbGlkR1BSUmVnKTsKKworICAgICAg
ICBpZiAobV9zdGF0ZS5mb3JOb2RlKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkp
LmlzVHlwZShTcGVjU3RyaW5nKSkKKyAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0
eUlzU3RyaW5nID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjSW50MzJPbmx5KSkKKyAg
ICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOworICAgICAg
ICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAxKSkuaXNUeXBlKFNwZWNTeW1ib2wpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnBy
b3BlcnR5SXNTeW1ib2wgPSB0cnVlOworCisgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKworICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworICAgICAg
ICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CisKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKKyAgICAgICAgYXV0byBvcGVy
YXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0
T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmlj
dE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSk7CisgICAgICAg
IHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBv
cGVyYXRpb24sCisgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNlUmVn
cywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsKKwor
ICAgICAgICBtX2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsKKyAgICAgICAg
YWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RGTW92ZShzbG93UGF0aCkpOwogCi0gICAgaWYgKG5vZGUt
Pm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgewotICAgICAgICAvLyBTdG9yZSB0aGUgdmFsdWUgdG8g
dGhlIGFycmF5LgotICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsK
LSAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9C
SkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgICAgIG1faml0LnN0
b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VS
ZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNF
VE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgICAgIAogICAgICAgICBub1Jl
c3VsdChub2RlKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsKICAgICB9Ci0gICAg
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7CisgICAgY2FzZSBBcnJheTo6SW50
MzI6IHsKKyAgICAgICAgc3BlY3VsYXRlSW50MzIobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAyKSk7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpD
b250aWd1b3VzOiB7CisgICAgICAgIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwobm9kZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKKyAgICAgICAg
Y29tcGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgorICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0
b3JhZ2U6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50
MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MSkpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKIAotICAgIGlmIChhcnJheU1v
ZGUuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAg
ICBPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgIG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3Ro
KCkpKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3Vu
ZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKTsKLSAgICAgICAgCi0gICAgICAgIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNo
MzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgo
KSkpOwotICAgICAgICAKKyAgICAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAg
ICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKKyAgICAgICAgR1BSUmVn
IHZhbHVlVGFnUmVnID0gdmFsdWUudGFnR1BSKCk7CisgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxv
YWRSZWcgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7CisgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0g
c3RvcmFnZS5ncHIoKTsKKworICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFz
KSB7CisgICAgICAgICAgICAvLyBTdG9yZSB0aGUgdmFsdWUgdG8gdGhlIGFycmF5LgorICAgICAg
ICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CisgICAgICAgICAgICBt
X2ppdC5zdG9yZTMyKHZhbHVlLnRhZ0dQUigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0
b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlT
dG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0
cy50YWcpKSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwg
TWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpF
Q1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKKworICAgICAgICAgICAg
bm9SZXN1bHQobm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg
IEdQUlRlbXBvcmFyeSB0ZW1wb3Jhcnk7CisgICAgICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcgPSB0
ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CisKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBiZXlvbmRBcnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
dG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7CiAgICAgICAg
IGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIDAsIHNsb3dDYXNlKTsKLSAgICAgICAg
Ci0gICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwotICAg
ICAgICBtX2ppdC5zdG9yZTMyKHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
dG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKLSAgICAgICAg
bV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgIAotICAg
ICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7Ci0gICAgfQotICAgIAotICAgIG1faml0LnN0b3Jl
MzIodmFsdWVUYWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1
ZSwgdS5hc0JpdHMudGFnKSkpOwotICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBh
eWxvYWQpKSk7Ci0gICAgCi0gICAgYmFzZS51c2UoKTsKLSAgICBwcm9wZXJ0eS51c2UoKTsKLSAg
ICB2YWx1ZS51c2UoKTsKLSAgICBzdG9yYWdlLnVzZSgpOwotICAgIAotICAgIGlmIChhcnJheU1v
ZGUuaXNPdXRPZkJvdW5kcygpKSB7Ci0gICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFs
RGlyZWN0KSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwo
Ci0gICAgICAgICAgICAgICAgc2xvd0Nhc2UsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNO
b25TdHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQ
b2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1ZVJlZ3ModmFsdWVUYWcsIHZhbHVl
UGF5bG9hZFJlZykpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMs
IEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIGJleW9uZEFycmF5Qm91bmRzKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChiZXlvbmRBcnJheUJvdW5kcyk7CisKKyAg
ICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3JlbWVu
dCBtX251bVZhbHVlc0luVmVjdG9yLgorICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMo
KSkgeworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBTdG9y
ZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJh
eVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNC
aXRzLnRhZykpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpKTsKICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdEhvbGVWYWx1
ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRp
bWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0Yo
SlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVl
VGFnKSk7CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzU2xvd1B1dCgpKSB7CisgICAgICAg
ICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRp
bWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291bGQgaW52ZXJ0CisgICAgICAgICAgICAgICAgLy8g
dGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlz
IG9ubHkgaGFwcGVucyBpZiB3ZSdyZQorICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5n
IGEgYmFkIHRpbWUuCisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1w
KCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihU
cnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5
U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JPZmZzZXQoKSkpOworCisgICAgICAgICAgICAgICAg
Ly8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJy
YXk7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5l
ZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxl
bmd0aE9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMy
KDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5z
dG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywg
QXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOworCisgICAgICAgICAgICAgICAgbGVuZ3Ro
RG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9qaXQpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0
b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCisgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVU
YWdSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgp
ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKKyAgICAgICAgbV9q
aXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3Rv
cmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0
b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRz
LnBheWxvYWQpKSk7CisKKyAgICAgICAgYmFzZS51c2UoKTsKKyAgICAgICAgcHJvcGVydHkudXNl
KCk7CisgICAgICAgIHZhbHVlLnVzZSgpOworICAgICAgICBzdG9yYWdlLnVzZSgpOworCisgICAg
ICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAg
ICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRC
eVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc05vblN0cmljdCwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0
cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3Jp
Z2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRh
ZywgdmFsdWVQYXlsb2FkUmVnKSkpOworICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywK
KyAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKKyAgICAgICAgICAg
ICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5
VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzU3RyaWN0KQorICAgICAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3Qp
LAorICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlciht
X2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwg
YmFzZVJlZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFnUmVnLCB2YWx1ZVBheWxv
YWRSZWcpKSk7CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBub1Jlc3VsdChub2RlLCBVc2VDaGls
ZHJlbkNhbGxlZEV4cGxpY2l0bHkpOyAgICAKKyAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hp
bGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
QXJyYXk6OkludDhBcnJheToKKyAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5OgorICAgIGNhc2Ug
QXJyYXk6OkludDMyQXJyYXk6CisgICAgY2FzZSBBcnJheTo6VWludDhBcnJheToKKyAgICBjYXNl
IEFycmF5OjpVaW50OENsYW1wZWRBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJheToK
KyAgICBjYXNlIEFycmF5OjpVaW50MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJy
YXk6CisgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OiB7CisgICAgICAgIFR5cGVkQXJyYXlU
eXBlIHR5cGUgPSBhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKTsKKyAgICAgICAgaWYgKGlzSW50
KHR5cGUpKQorICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShub2Rl
LCB0eXBlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxv
YXRUeXBlZEFycmF5KG5vZGUsIHR5cGUpOworICAgIH0gfQogfQogCiB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0
KT4mIHByZWZpeCkKQEAgLTI3MDYsMjMwICsyODQxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAgICAgY2FzZSBQ
dXRCeVZhbDoKICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6IHsKLSAgICAgICAgRWRnZSBjaGlsZDEg
PSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApOwotICAgICAgICBFZGdlIGNoaWxk
MiA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSk7Ci0gICAgICAgIEVkZ2UgY2hp
bGQzID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKTsKLSAgICAgICAgRWRnZSBj
aGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpOwotICAgICAgICAKLSAg
ICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQo
KTsKLSAgICAgICAgYm9vbCBhbHJlYWR5SGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAg
ICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVj
dFVzaW5nUHJlZGljdGlvbnM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jaWYgQ09NUElMRVJfUVVJUkso
Q09OU0lERVJTX1VOUkVBQ0hBQkxFX0NPREUpCi0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxh
dGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIDApOwotICAg
ICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotI2VuZGlmCi0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewotICAgICAgICAgICAgQVNTRVJUKG5v
ZGUtPm9wKCkgPT0gUHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCk7Ci0g
ICAgICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5jb250YWlucyhub2RlKSkgewot
ICAgICAgICAgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpID09IENlbGxVc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhub2Rl
LCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFscmVh
ZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5k
KCkgPT0gU3ltYm9sVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlW
YWxGb3JDZWxsV2l0aFN5bWJvbChub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEpOwot
ICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMik7Ci0g
ICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKLSAgICAg
ICAgICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKLSAg
ICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVl
UmVncygpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpz
VmFsdWVSZWdzKCk7Ci0KLSAgICAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAg
ICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQotICAgICAgICAgICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJp
Y3QsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgIHByb3BlcnR5UmVncywg
dmFsdWVSZWdzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNh
bGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlW
YWxTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MpOwotICAgICAgICAg
ICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICAgICAgICAgICAgICBub1Jlc3Vs
dChub2RlKTsKLSAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEpTVmFsdWVPcGVy
YW5kIGJhc2UodGhpcywgY2hpbGQxLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQyLCBNYW51YWxPcGVyYW5k
U3BlY3VsYXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hp
bGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mg
YmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyBw
cm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOwotICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKLQotICAgICAgICAgICAgc3Bl
Y3VsYXRlKG5vZGUsIGNoaWxkMSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwgY2hpbGQy
KTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMpOwotCi0gICAgICAgICAgICBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7Ci0gICAgICAgICAg
ICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0
ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5z
aXplKCkpOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVz
ZWRSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUgPSBub2RlLT5l
Y21hTW9kZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdp
biwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAotICAgICAg
ICAgICAgICAgIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywgSW52YWxpZEdQUlJl
ZywgSW52YWxpZEdQUlJlZyk7Ci0KLSAgICAgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUoY2hp
bGQyKS5pc1R5cGUoU3BlY1N0cmluZykpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCkt
PnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOwotICAgICAgICAgICAgZWxzZSBpZiAobV9zdGF0ZS5m
b3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQotICAgICAgICAgICAgICAgIGdl
bi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwotICAgICAgICAgICAgZWxzZSBp
ZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNTeW1ib2wpKQotICAgICAgICAg
ICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9sID0gdHJ1ZTsKLQotICAgICAg
ICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwotCi0gICAgICAgICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChn
ZW4uc2xvd1BhdGhKdW1wKCkpOwotCi0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1Bh
dGhHZW5lcmF0b3I+IHNsb3dQYXRoOwotICAgICAgICAgICAgYXV0byBvcGVyYXRpb24gPSBpc0Rp
cmVjdCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJp
Y3RPcHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpIDog
KGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXplIDog
b3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSk7Ci0gICAgICAgICAgICBzbG93UGF0
aCA9IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIG9wZXJh
dGlvbiwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNlUmVn
cywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsKLQot
ICAgICAgICAgICAgbV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBzbG93UGF0aC5nZXQoKSk7Ci0gICAg
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7Ci0KLSAgICAg
ICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoYWxyZWFkeUhh
bmRsZWQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50
MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMik7Ci0gICAgICAgIAotICAgICAgICBHUFJS
ZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHBy
b3BlcnR5LmdwcigpOwotCi0gICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAg
ICAgICBjYXNlIEFycmF5OjpJbnQzMjogewotICAgICAgICAgICAgc3BlY3VsYXRlSW50MzIoY2hp
bGQzKTsKLSAgICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
QXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRo
aXMsIGNoaWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLQotICAgICAgICAgICAgR1BS
UmVnIHZhbHVlVGFnUmVnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgdmFs
dWVQYXlsb2FkUmVnID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgICAgICAKLSAgICAgICAgICAg
IGlmICghbV9jb21waWxlT2theSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwobm9kZSwgYmFzZSwgcHJvcGVydHksIHZhbHVl
LCB2YWx1ZVBheWxvYWRSZWcsIHZhbHVlVGFnUmVnKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewotICAgICAgICAgICAgY29tcGls
ZURvdWJsZVB1dEJ5VmFsKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZToKLSAgICAgICAg
Y2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZTogewotICAgICAgICAgICAgSlNWYWx1ZU9w
ZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZhbHVlVGFn
UmVnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2FkUmVn
ID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIW1f
Y29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBTdG9y
YWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAgICAgICAgICBHUFJSZWcgc3Rv
cmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09
IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgdmFsdWUgdG8g
dGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5
LmdwcigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUudGFnR1BSKCksIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNU
X09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5
U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMucGF5bG9hZCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBub1Jlc3Vs
dChub2RlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKLQotICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkp
OwotICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAgICAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIDAsIGJl
eW9uZEFycmF5Qm91bmRzKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKLQotICAgICAgICAgICAgLy8gQ2hlY2sg
aWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3JlbWVudCBtX251bVZhbHVlc0lu
VmVjdG9yLgotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkpIHsKLSAgICAg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgICAgICBTdG9yZVRv
SG9sZSwgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNo
MzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3Jh
Z2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9y
YWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50
YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdEhvbGVW
YWx1ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VU
T0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZh
bHVlVGFnKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc1Nsb3dQdXQoKSkgewot
ICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ugd2Fu
dGVkIHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3VsZCBpbnZlcnQKLSAgICAgICAg
ICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mgc2ltcGx5IG5vdCB3b3J0
aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQotICAgICAgICAgICAgICAgICAg
ICAvLyBhbHJlYWR5IGhhdmluZyBhIGJhZCB0aW1lLgotICAgICAgICAgICAgICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Om51bVZhbHVlc0luVmVjdG9y
T2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYg
d2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7IAot
ICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBsZW5ndGhEb2VzTm90TmVl
ZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVu
Z3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZElt
bTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIo
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3Rv
cmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3ViMzIo
VHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0KTsK
LSAgICAgICAgICAgIH0KLSAgICAKLSAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0
aGUgYXJyYXkuCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlVGFnUmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZT
RVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMy
KHZhbHVlUGF5bG9hZFJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVj
dG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkp
KTsKLQotICAgICAgICAgICAgYmFzZS51c2UoKTsKLSAgICAgICAgICAgIHByb3BlcnR5LnVzZSgp
OwotICAgICAgICAgICAgdmFsdWUudXNlKCk7Ci0gICAgICAgICAgICBzdG9yYWdlLnVzZSgpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXNsb3dDYXNlcy5lbXB0eSgpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAg
ICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlC
b3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2
YWx1ZVRhZ1JlZywgdmFsdWVQYXlsb2FkUmVnKSkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1ZVJlZ3ModmFs
dWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhw
bGljaXRseSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0g
ICAgICAgIGRlZmF1bHQ6IHsKLSAgICAgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJh
eU1vZGUudHlwZWRBcnJheVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkKLSAg
ICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KGJhc2UuZ3ByKCks
IHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJv
cGVydHkuZ3ByKCksIG5vZGUsIHR5cGUpOwotICAgICAgICB9IH0KKyAgICAgICAgY29tcGlsZVB1
dEJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDE0YTUwNzYxZmQ5
YTY1MmMzZjBlMzkxMGFhNjllZWUxMTNmZjEzZGMuLjkwNDg4MmMyYjNjMjkyZjdiN2UwMDQzNjZk
NDU0YjhhOGVlYmQ4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjMzMCw2ICsyMzMwLDIyNCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjplbWl0QnJhbmNoKE5vZGUqIG5vZGUpCiAgICAgfQogfQogCit2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKK3sKKyAgICBBcnJheU1vZGUgYXJy
YXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOworICAgIHN3aXRjaCAoYXJy
YXlNb2RlLnR5cGUoKSkgeworICAgIGNhc2UgQXJyYXk6OkFueVR5cGVkQXJyYXk6CisgICAgY2Fz
ZSBBcnJheTo6Rm9yY2VFeGl0OgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nQXJndW1lbnRz
OgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6CisgICAgY2FzZSBBcnJh
eTo6VW5wcm9maWxlZDoKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6CisgICAgY2FzZSBBcnJheTo6
RGlyZWN0QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFyZ3VtZW50czoKKyAgICBj
YXNlIEFycmF5OjpVbmRlY2lkZWQ6CisgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBu
b2RlLCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFy
cmF5OjpCaWdJbnQ2NEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkJpZ1VpbnQ2NEFycmF5OgorICAg
IGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKKyAgICAgICAgREZHX0FTU0VSVChtX2ppdC5ncmFwaCgp
LCBub2RlLCBub2RlLT5vcCgpID09IFB1dEJ5VmFsIHx8IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxE
aXJlY3QsIG5vZGUtPm9wKCkpOworICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5j
b250YWlucyhub2RlKSB8fCAobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKS51c2VL
aW5kKCkgIT0gQ2VsbFVzZSAmJiBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVz
ZUtpbmQoKSAhPSBLbm93bkNlbGxVc2UpKSB7CisgICAgICAgICAgICBpZiAobV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgeworICAgICAgICAg
ICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9
PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2Vs
bFdpdGhTdHJpbmcobm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9kZSk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDApKTsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAg
ICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgICAgICAgICBHUFJSZWcg
cHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJlZyB2YWx1ZUdQ
UiA9IHZhbHVlLmdwcigpOworICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAg
ICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQorICAgICAgICAgICAgICAgIGNh
bGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlW
YWxEaXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5R1BSLCB2YWx1ZUdQUik7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21h
TW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1
dEJ5VmFsTm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgcHJv
cGVydHlHUFIsIHZhbHVlR1BSKTsKKyAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7
CisKKyAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0Lmdy
YXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9w
ZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2pp
dC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24p
OworICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBw
cm9wZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOworICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2
YWx1ZS5ncHIoKTsKKworICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1YkluZm87CisgICAgICAgIEdQ
UlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIGlmIChKSVRDb2RlOjp1
c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAgc3R1YkluZm8gPSBHUFJU
ZW1wb3JhcnkodGhpcyk7CisgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLmdwcigp
OworICAgICAgICB9CisKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1faml0LmdyYXBoKCkudmFy
QXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICBzcGVjdWxhdGUobm9kZSwgbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
ID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOworICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
ID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhp
dElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOworICAgICAgICBSZWdpc3Rl
clNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOworICAgICAgICBib29s
IGlzRGlyZWN0ID0gbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdDsKKyAgICAgICAgRUNNQU1v
ZGUgZWNtYU1vZGUgPSBub2RlLT5lY21hTW9kZSgpOworCisgICAgICAgIEpJVFB1dEJ5VmFsR2Vu
ZXJhdG9yIGdlbigKKyAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBKSVRUeXBlOjpERkdK
SVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQdXRCeVZhbCwgdXNlZFJlZ2lz
dGVycywKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhwcm9w
ZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxpZEdQUlJlZywgc3R1YkluZm9H
UFIpOworCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQorICAgICAgICAgICAgZ2VuLnN0dWJJ
bmZvKCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChtX3N0YXRl
LmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNJ
bnQzMk9ubHkpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9
IHRydWU7CisgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N5bWJvbCkpCisgICAgICAgICAgICBnZW4u
c3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7CisKKyAgICAgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgobV9qaXQpOworCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93
Q2FzZXM7CisgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
CisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CisKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKKyAgICAg
ICAgYXV0byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3Bl
cmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5
VmFsTm9uU3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25Q
dXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6
ZSk7CisgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewor
ICAgICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aElDQ2FsbCgKKyAgICAgICAgICAgICAgICBz
bG93Q2FzZXMsIHRoaXMsIGdlbi5zdHViSW5mbygpLCBzdHViSW5mb0dQUiwgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93T3Bl
cmF0aW9uKCkpLCBvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGNvZGVP
cmlnaW4pKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BSLCBzdHViSW5mb0dQUiwgbnVs
bHB0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRo
Q2FsbCgKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIG9wZXJhdGlvbiwKKyAgICAg
ICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQ
UiwgdmFsdWVHUFIsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsKKyAgICAgICAgfQorCisgICAg
ICAgIG1faml0LmFkZFB1dEJ5VmFsKGdlbiwgc2xvd1BhdGguZ2V0KCkpOworICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7CisKKyAgICAgICAgbm9SZXN1bHQo
bm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpJbnQzMjogewor
ICAgICAgICBzcGVjdWxhdGVJbnQzMihtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
KTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3Vv
dXM6IHsKKyAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChub2RlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogeworICAgICAgICBjb21waWxl
RG91YmxlUHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFy
cmF5OjpBcnJheVN0b3JhZ2U6CisgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZTog
eworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJh
bmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7Cisg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMikpOworCisgICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKKyAg
ICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CisgICAgICAgIEdQUlJl
ZyB2YWx1ZVJlZyA9IHZhbHVlLmdwcigpOworCisgICAgICAgIGlmICghbV9jb21waWxlT2theSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworICAgICAgICBHUFJSZWcg
c3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0g
UHV0QnlWYWxBbGlhcykgeworICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBh
cnJheS4KKyAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwor
ICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7CisgICAgICAgICAgICBt
X2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VS
ZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdl
Ojp2ZWN0b3JPZmZzZXQoKSkpOworCisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFy
eTsKKyAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0
QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5
Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFn
ZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRP
ZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNW
YWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKKworICAgICAg
ICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1f
bnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7
CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgIFN0b3JlVG9I
b2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5j
aFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5
U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFuY2hUZXN0NjQo
TWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3Jh
Z2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzU2xvd1B1
dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9mIHN0cmFuZ2UuIElmIHdl
IHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291bGQgaW52ZXJ0CisgICAg
ICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mgc2ltcGx5IG5vdCB3b3J0
aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQorICAgICAgICAgICAgICAgIC8v
IGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0
b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JPZmZzZXQoKSkpOworCisg
ICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUg
Z3Jvd2luZyB0aGUgYXJyYXk7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
bGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBB
cnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisgICAgICAgICAgICAgICAgbV9qaXQuYWRk
MzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOworCisgICAgICAg
ICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9qaXQpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0KTsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCisgICAgICAgIG1faml0
LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZl
Y3Rvck9mZnNldCgpKSk7CisKKyAgICAgICAgYmFzZS51c2UoKTsKKyAgICAgICAgcHJvcGVydHku
dXNlKCk7CisgICAgICAgIHZhbHVlLnVzZSgpOworICAgICAgICBzdG9yYWdlLnVzZSgpOworCisg
ICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMs
CisgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpCisgICAgICAgICAg
ICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRC
eVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCkKKyAgICAgICAgICAgICAgICAgICAgOiAobm9kZS0+b3AoKSA9
PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNOb25TdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0
KSwKKyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIo
bV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSks
IGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOworICAgICAgICB9CisKKyAgICAgICAg
bm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToKKyAgICBjYXNlIEFycmF5OjpJ
bnQxNkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6CisgICAgY2FzZSBBcnJheTo6
VWludDhBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50OENsYW1wZWRBcnJheToKKyAgICBjYXNl
IEFycmF5OjpVaW50MTZBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50MzJBcnJheToKKyAgICBj
YXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6CisgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OiB7
CisgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJheU1vZGUudHlwZWRBcnJheVR5cGUo
KTsKKyAgICAgICAgaWYgKGlzSW50KHR5cGUpKQorICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFs
Rm9ySW50VHlwZWRBcnJheShub2RlLCB0eXBlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KG5vZGUsIHR5cGUpOworICAgIH0gfQor
fQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29u
c3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFG
b3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPmFy
cmF5TW9kZSgpLnR5cGUoKSkgewpAQCAtMzMyOCwzMTUgKzM1NDYsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAg
ICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewotICAgICAgICBFZGdl
IGNoaWxkMSA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCk7Ci0gICAgICAgIEVk
Z2UgY2hpbGQyID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKTsKLSAgICAgICAg
RWRnZSBjaGlsZDMgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAgICAg
ICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7Ci0gICAg
ICAgIAotICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9k
ZUZvclB1dCgpOwotICAgICAgICBib29sIGFscmVhZHlIYW5kbGVkID0gZmFsc2U7Ci0gICAgICAg
IAotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBBcnJh
eTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKLSAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0
OgotICAgICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUsICJCYWQgYXJyYXkg
bW9kZSB0eXBlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheTo6Qmln
SW50NjRBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6QmlnVWludDY0QXJyYXk6Ci0gICAgICAg
IGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKLSAgICAgICAgICAgIERGR19BU1NFUlQobV9qaXQuZ3Jh
cGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8fCBub2RlLT5vcCgpID09IFB1dEJ5
VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKLSAgICAgICAgICAgIGlmIChtX2dyYXBoLm1fc2xvd1B1
dEJ5VmFsLmNvbnRhaW5zKG5vZGUpIHx8IChjaGlsZDEudXNlS2luZCgpICE9IENlbGxVc2UgJiYg
Y2hpbGQxLnVzZUtpbmQoKSAhPSBLbm93bkNlbGxVc2UpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGNoaWxkMS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAo
Y2hpbGQyLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKG5vZGUsIGNoaWxkMSwgY2hpbGQyLCBj
aGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9s
KG5vZGUsIGNoaWxkMSwgY2hpbGQyLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgICAgICAgICAgSlNW
YWx1ZU9wZXJhbmQgYXJnMih0aGlzLCBjaGlsZDIpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVP
cGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICBHUFJSZWcgYXJnMUdQ
UiA9IGFyZzEuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdw
cigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyBhcmczR1BSID0gYXJnMy5ncHIoKTsKLSAgICAg
ICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLT5v
cCgpID09IFB1dEJ5VmFsRGlyZWN0KQotICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9u
KG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3Ry
aWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRydXN0ZWRJbW1QdHI6Ondl
YWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYykpLCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczR1BSKTsKLSAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5p
c1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbE5v
blN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJHUFIsIGFy
ZzNHUFIpOwotICAgICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICAg
ICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxl
ZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMiwgTWFudWFsT3BlcmFuZFNw
ZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxk
MywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHByb3BlcnR5
LmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7Ci0KLSAg
ICAgICAgICAgIEdQUlRlbXBvcmFyeSBzdHViSW5mbzsKLSAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0
YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAgICBzdHViSW5mbyA9IEdQUlRl
bXBvcmFyeSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLmdw
cigpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwgY2hpbGQy
KTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMpOwotCi0gICAgICAgICAgICBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7Ci0gICAgICAgICAg
ICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0
ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5z
aXplKCkpOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVz
ZWRSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUgPSBub2RlLT5l
Y21hTW9kZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdp
biwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAotICAgICAg
ICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiks
IEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxpZEdQUlJlZywgc3R1YkluZm9HUFIpOwotCi0g
ICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNTdHJpbmcp
KQotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3RyaW5nID0gdHJ1
ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlwZShT
cGVjSW50MzJPbmx5KSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJ
c0ludDMyID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGls
ZDIpLmlzVHlwZShTcGVjU3ltYm9sKSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+
cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKG1faml0KTsKLQotICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNl
czsKLSAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
Ci0gICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwot
Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRo
OwotICAgICAgICAgICAgYXV0byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9kZS5pc1N0
cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlv
bkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlWYWxOb25T
dHJpY3RPcHRpbWl6ZSk7Ci0gICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5
cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRoSUNDYWxs
KAotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIGdlbi5zdHViSW5mbygpLCBz
dHViSW5mb0dQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVT
dHViSW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBvcGVyYXRpb24sCi0gICAgICAgICAg
ICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBt
X2dyYXBoLmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VHUFIsIHByb3BlcnR5R1BS
LCB2YWx1ZUdQUiwgc3R1YkluZm9HUFIsIG51bGxwdHIpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAg
ICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgIE5v
UmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2Jh
bE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VHUFIsIHByb3BlcnR5R1BSLCB2YWx1ZUdQUiwg
Z2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBt
X2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsKLSAgICAgICAgICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKLQotICAgICAgICAgICAgbm9SZXN1
bHQobm9kZSk7Ci0gICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChhbHJlYWR5SGFuZGxlZCkKLSAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
Y2hpbGQxKTsKLSAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRo
aXMsIGNoaWxkMik7Ci0gICAgICAgIAotICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3By
KCk7Ci0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotCi0gICAg
ICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpJbnQz
MjoKLSAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwot
Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgCi0g
ICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6
SW50MzIpIHsKLSAgICAgICAgICAgICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVSZWcpLCBjaGlsZDMsIFNwZWNJbnQzMk9ubHksCi0gICAg
ICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaElmTm90SW50MzIodmFsdWVSZWcpKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGls
ZDQpOwotICAgICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotCi0g
ICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAgICAgICBH
UFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAgICAgICBHUFJS
ZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0
KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9y
YXJ5OwotICAgICAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVy
Rm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgc2xvd0Nhc2U7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChhcnJheU1v
ZGUuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAg
ICAgICAgICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsCi0g
ICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9y
RXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBC
dXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQu
YnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgp
KSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5i
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxl
bmd0aCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFhcnJheU1v
ZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBw
cm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMy
KHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVy
Zmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0KLSAgICAgICAgICAgICAgICBpbkJvdW5k
cy5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1faml0LnN0b3Jl
NjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7Ci0KLSAgICAgICAgICAgIGJhc2Uu
dXNlKCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eS51c2UoKTsKLSAgICAgICAgICAgIHZhbHVlLnVz
ZSgpOwotICAgICAgICAgICAgc3RvcmFnZS51c2UoKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAgICAgICAgICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dD
YXNlLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0
KCkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJl
Y3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3Bl
cmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZh
bERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc05vblN0cmljdCksCi0gICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBU
cnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVn
KSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewotICAgICAgICAgICAgY29t
cGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlT
dG9yYWdlOgotICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOiB7Ci0gICAg
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOwotCi0gICAgICAgICAg
ICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgCi0gICAgICAgICAgICBp
ZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAg
ICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAgICAgICAgIGlmIChub2RlLT5v
cCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgdmFs
dWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHBy
b3BlcnR5LmdwcigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVJlZyA9IHZhbHVlLmdw
cigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1i
bGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpU
aW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEdQUlRlbXBvcmFy
eSB0ZW1wb3Jhcnk7Ci0gICAgICAgICAgICBHUFJSZWcgdGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5
UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUpOwotCi0gICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotCi0gICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBiZXlvbmRBcnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
dG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAg
ICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25k
QXJyYXlCb3VuZHMpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOwotCi0gICAgICAgICAgICAvLyBDaGVjayBpZiB3
ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0
b3IuCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAgICAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgICAgIFN0b3JlVG9Ib2xl
LCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFu
Y2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJh
eVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFu
Y2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBB
cnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFycmF5
TW9kZS5pc1Nsb3dQdXQoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQg
b2Ygc3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3
b3VsZCBpbnZlcnQKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0
IGl0J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdy
ZQotICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhdmluZyBhIGJhZCB0aW1lLgotICAg
ICAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3Rl
ZEltbTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3Jh
Z2U6Om51bVZhbHVlc0luVmVjdG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUg
Z3Jvd2luZyB0aGUgYXJyYXk7IAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VS
ZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAgICAg
bV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsK
LSAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkp
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5l
ZWRVcGRhdGUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgfQotICAgIAotICAgICAg
ICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAgIG1faml0
LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZl
Y3Rvck9mZnNldCgpKSk7Ci0KLSAgICAgICAgICAgIGJhc2UudXNlKCk7Ci0gICAgICAgICAgICBw
cm9wZXJ0eS51c2UoKTsKLSAgICAgICAgICAgIHZhbHVlLnVzZSgpOwotICAgICAgICAgICAgc3Rv
cmFnZS51c2UoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFzbG93Q2FzZXMuZW1w
dHkoKSkgewotICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAg
ICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJv
dW5kc1N0cmljdCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0
QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9u
U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCi0g
ICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlciht
X2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwg
YmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVnKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJy
YXk6OkludDhBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6SW50MTZBcnJheToKLSAgICAgICAg
Y2FzZSBBcnJheTo6SW50MzJBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6VWludDhBcnJheToK
LSAgICAgICAgY2FzZSBBcnJheTo6VWludDhDbGFtcGVkQXJyYXk6Ci0gICAgICAgIGNhc2UgQXJy
YXk6OlVpbnQxNkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpVaW50MzJBcnJheToKLSAgICAg
ICAgY2FzZSBBcnJheTo6RmxvYXQzMkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpGbG9hdDY0
QXJyYXk6IHsKLSAgICAgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJheU1vZGUudHlw
ZWRBcnJheVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkKLSAgICAgICAgICAg
ICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KGJhc2UuZ3ByKCksIHByb3BlcnR5
LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBj
b21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3By
KCksIG5vZGUsIHR5cGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAg
ICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpTdHJpbmc6
Ci0gICAgICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKLSAgICAgICAgY2FzZSBBcnJh
eTo6Rm9yY2VFeGl0OgotICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgotICAgICAgICBjYXNl
IEFycmF5OjpTY29wZWRBcmd1bWVudHM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5n
QXJndW1lbnRzOgotICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25zOgot
ICAgICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVucHJv
ZmlsZWQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6Ci0gICAgICAgIGNhc2Ug
QXJyYXk6OkJpZ1VpbnQ2NEFycmF5OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgfQorICAgICAgICBjb21waWxlUHV0QnlWYWwobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442516</attachid>
            <date>2021-10-26 12:24:41 -0700</date>
            <delta_ts>2021-10-26 13:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211026192439.patch</filename>
            <type>text/plain</type>
            <size>102076</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2Y4MDVkN2U4NDk0NDQwZTlhN2RmNWY2NTI0NGFkZTNmMzAxNjE5Li42NjQ0NTkyMTg2MWM1NjE3
MjNiYTVkZDYzMzJjNDNiYTliZjlhNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNjEgQEAKKzIwMjEtMTAtMjYgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVwIGZy
b20gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNoYW5nZXMgYnV0IGl0IHNob3Vs
ZCBiZSBORkM6CisKKyAgICAgICAgMS4gUmVtb3ZlZCBzZXZlcmFsIGNhbGxzIHRvIG9wZXJhdGlv
blB1dEJ5VmFsKkNlbGwqIHRoYXQgd2VyZQorICAgICAgICBvbmx5IHVzZWQgYnkgdGhlIDMyIGJp
dCBjb2RlIHBhdGhzIGR1ZSB0byB0aGUgbGFjayBvZiByZWdpc3RlcnMuCisgICAgICAgIFRoZXNl
IGNhbGxzIHdlcmUgcmVwbGFjZWQgYnkgdGhlIGNhbGxzIHVzZWQgYnkgdGhlIDY0IGJpdCBwYXRo
cywKKyAgICAgICAgdGhhdCBleHBlY3QgRW5jb2RlZEpTVmFsdWVzCisgICAgICAgIDIuIEJlY2F1
c2Ugb2YgIzEsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aG9zZSBtZXRob2RzLCBzaW5jZSBubyBvbmUK
KyAgICAgICAgdXNlcyB0aGVtIGFueW1vcmUuCisgICAgICAgIDMuIENyZWF0ZWQgY29tcGlsZVB1
dEJ5VmFsIHRvIGhhbmRsZSBhbGwgY2FzZXMgKHNpbWlsYXIgdG8gY29tcGlsZUdldEJ5VmFsKS4K
KyAgICAgICAgNC4gUmVtb3ZlZCB0aGUgRWRnZSYgY2hpbGRYIGZyb20gdGhlIFB1dEJ5VmFsIGhh
bmRsaW5nIChhbmQgYWxsIG1ldGhvZHMKKyAgICAgICAgdGhhdCBleHBlY3RlZCB0aGVtKSBpbiBm
YXZvciBvZiBnZXR0aW5nIHRoZW0gZnJvbSBub2RlIHdoZW4gbmVlZGVkLgorICAgICAgICA1LiBV
bmlmaWVkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwgc28gaXQgY291bGQgYmUgdXNlZCBieSBi
b3RoIDMyCisgICAgICAgIGFuZCA2NCBiaXQgYXJjaHMuCisgICAgICAgIDYuIFJlbW92ZWQgYSBs
b3Qgb2Ygd2hpdGVzcGFjZS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRG91YmxlUHV0QnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0Q2hhckNvZGVBdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZyb21DaGFyQ29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVk
VHlwZUZvclRvSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlVmFsdWVUb0ludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVVJbnQzMlRvTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZUFzSW50MzIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
UmVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpjbGFtcERvdWJsZVRvQnl0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUNsYW1wSW50ZWdlclRvQnl0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJy
YXlPdXRPZkJvdW5kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRUeXBlZEFycmF5Qm91bmRzQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91
bmRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6bG9hZEZy
b21JbnRUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c2V0SW50VHlwZWRBcnJheUxvYWRSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpnZXRJbnRUeXBlZEFy
cmF5U3RvcmVPcGVyYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Z2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZEZvckF0b21pY3MpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRU
eXBlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcml2YXRl
TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRQcml2YXRlTmFtZUJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxXaXRoVGhpcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRlTmFtZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2
YXRlTmFtZUJ5SWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQ2hlY2tQcml2YXRlQnJhbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UHJpdmF0ZUJyYW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQYXJz
ZUludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVPdmVycmlkZXNIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yQ2VsbHMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdE5vdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCaXR3
aXNlTm90KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1p
dFVudHlwZWRPckFueUJpZ0ludEJpdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0d2lzZU9wKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJpdHdpc2VPcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRVbnR5cGVkT3JCaWdJbnRSaWdo
dFNoaWZ0Qml0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlVmFsdWVMU2hpZnRPcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdFJTaGlmdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTaGlmdE9wKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGhJQyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUlzQ2VsbFdpdGhUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzVHlwZWRBcnJheVZpZXcpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9PYmplY3RPckNhbGxPYmplY3RD
b25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aEFicyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFN1Yik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbmNPckRl
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZU5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZURpdik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEZSb3VuZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU1v
ZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
cml0aE1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBcml0aFJvdW5kaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUFyaXRoVW5hcnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhTcXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWluTWF4KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpjb21waWxlQXJpdGhQb3dJbnRlZ2VyRmFzdFBhdGgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVQb3cpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhQ
b3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21wYXJl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNv
bXBhcmVVbnNpZ25lZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVTdHJpY3RFcSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVCb29sZWFuQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnQzMkNvbXBhcmUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlQ29tcGFyZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RF
cXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVTeW1ib2xFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZVN5bWJvbEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJpdHdpc2VKU1ZhbHVlRXF1YWxpdHkp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNo
T25CaXR3aXNlSlNWYWx1ZUVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vdERvdWJsZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50
Tm9yU3RyaW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVOb3REb3VibGVOZWl0aGVyRG91YmxlTm9ySGVh
cEJpZ0ludE5vclN0cmluZ1N0cmljdEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0VxdWFsaXR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1RvVW50eXBlZEVx
dWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVN0cmluZ0lkZW50RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRUb05vdFN0cmluZ1ZhckVxdWFsaXR5KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmlu
Z0NvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlU3RyaW5nSWRlbnRDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNhbWVWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0Jvb2xlYW5TdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9Cb29sZWFuU3RyaW5n
T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVt
aXRTdHJpbmdCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjplbWl0U3RyaW5nT3JPdGhlckJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb25zdGFudFN0b3JhZ2VQb2ludGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FnZVR5cGVkQXJyYXlTdG9y
YWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRp
cmVjdEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFNjb3BlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNraXBTY29wZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRHbG9iYWxP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0R2xvYmFsVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNhbkJlUm9wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uQ29tbW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVNldEZ1bmN0aW9uTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVWYXJhcmdzTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZvcndhcmRWYXJhcmdzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFjdGl2
YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ3JlYXRlRGlyZWN0QXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEZyb21Bcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0VG9Bcmd1bWVudHMpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QXJndW1l
bnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q3JlYXRlU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUNsb25lZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVBcmd1bWVudHNCdXR0
ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ3JlYXRlUmVzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVTcHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlTmV3QXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU3ByZWFkKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFJlc3RMZW5ndGgpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0UG9wdWxhdGVTbGlj
ZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFycmF5U2xpY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJyYXlJbmRleE9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5UHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb3RpZnlXcml0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc09iamVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUeXBlT2ZJc09iamVj
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJ
c0NhbGxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUlzQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cnVjdHVyZUNoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSXNDb25zdGFudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja05vdEVtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Up
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVr
ZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OmFsbG9jYXRlVGVtcG9yYXJ5UmVnaXN0ZXJzRm9yU25pcHBldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET01H
ZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2hlY2tKU0Nhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3Ry
dWN0b3JPclN0cmluZ1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OmdldEV4
ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVt
YmVyVG9TdHJpbmdXaXRoUmFkaXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTmV3U3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N5bWJvbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNp
emUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0TmV3
VHlwZWRBcnJheVdpdGhTaXplSW5SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdSZWdleHApOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBlRmls
dGVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlQ2VsbFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlYWxOdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEb3VibGVSZXBSZWFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlQm9vbGVhbik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNl
bGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVDZWxsT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRmluYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVSZWdFeHBPYmplY3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVBcnJheSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVBy
b3h5T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlRGVyaXZlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJvbWlzZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNYXBPYmplY3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTZXRP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVXZWFrTWFwT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGFWaWV3T2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVN0cmluZ09yT3RoZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVudEFuZExvYWRTdG9yYWdlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3RyaW5nSWRlbnQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
dHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1Zhcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN5bWJvbCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJv
bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZUhlYXBCaWdJbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVOb3RDZWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdERvdWJsZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5laXRoZXJEb3VibGVO
b3JIZWFwQmlnSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVPdGhlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2Mp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNo
SW50SnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVt
aXRTd2l0Y2hJbW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjplbWl0U3dpdGNoQ2hhclN0cmluZ0p1bXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHJpbmdSZWN1cnNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmlu
Z09uU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
ZW1pdFN3aXRjaFN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRTd2l0Y2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjphZGRCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpsaW5rQnJhbmNoZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlU3RvcmVCYXJyaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJC
eUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVJlc29sdmVTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdsb2JhbFZh
cmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldER5bmFtaWNWYXIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0RHluYW1pY1Zhcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRDbG9zdXJlVmFyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dENs
b3N1cmVWYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0SW50ZXJuYWxGaWVsZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRJbnRlcm5hbEZpZWxkKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5n
UmVwbGFjZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwTWF0Y2hGYXN0R2xvYmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cE1h
dGNoRmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVMYXp5SlNDb25zdGFudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWNvcmRSZWdFeHBDYWNoZWRSZXN1
bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RGVmaW5lRGF0YVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZURlZmluZUFjY2Vzc29yUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVCdXR0ZXJmbHkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTm9ybWFsaXpl
TWFwS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldE1hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVja2V0TmV4dCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkS2V5RnJvbU1hcEJ1Y2tldCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkVmFs
dWVGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51
bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvck5leHRFeHRyYWN0SW5kZXgpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVy
YXRvck5leHRFeHRyYWN0TW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9y
SGFzUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRW51bWVyYXRvckluQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckhhc093blByb3BlcnR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVz
aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQ
dXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dEJ5SWREaXJlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlJZFdpdGhUaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5T2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGNoU3RydWN0
dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldFByb3BlcnR5RW51bWVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRFeGVjdXRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdldHRlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRTZXR0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0Q2FsbGVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldENh
bGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVT
dHJDYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTmV3QXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvVGhpcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RLZXlzT3JP
YmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEFzc2lnbik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RDcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlVGhpcyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVQ
cm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFzeW5jR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdHZW5lcmF0b3IpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXN5bmNHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
TmV3SW50ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1ByaW1pdGl2ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1Byb3BlcnR5S2V5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJpYyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsTnVtYmVy
Q29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5UYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldEFkZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXBT
ZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
V2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJvdG90eXBlT2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSWRlbnRpdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWlzY1N0cmljdEVxKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEluaXRpYWxp
emVCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQWxsb2NhdGVOZXdBcnJheVdpdGhTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFeHRyYWN0Q2F0
Y2hMb2NhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDbGVhckNhdGNoTG9jYWxzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVByb2ZpbGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY0pT
VmFsdWVQZWVwaG9sZUJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVIZWFwQmlnSW50RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFrZVJvcGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckdldEJ5VmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQ29udGlndW91c1B1dEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUpOgorCiAyMDIxLTEwLTI1ICBNaWtoYWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0pTQ11bMzJiaXRdIERvbid0IHNwZWN1bGF0ZSBDZWxsIG9uIFB1dEJ5
VmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAx
MzdhYjU1MTkxNGVkMzZlMzdlZTFlZjQ2ODJkYmEyNDZhMmEwZTk4Li4zZTgyOTYwM2ZkMGQ4Njgz
ZTlkOWE3NTVmYzhjN2IzNjNiYTg2ZDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTgyMCwyNCArODIwLDYgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2IKICAgICBwdXRCeVZhbEludGVybmFsPGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2
bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJu
YWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwg
ZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwotfQotCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgZmFs
c2U+KGdsb2JhbE9iamVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3Bl
cnR5LCBlbmNvZGVkVmFsdWUpOwotfQotCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC05OTYs
MjQgKzk3OCw2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERp
cmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0CiAgICAgcHV0QnlWYWxJbnRlcm5h
bDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9w
ZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgdHJ1ZT4oZ2xvYmFs
T2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29k
ZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZh
bERpcmVjdENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKLSAgICAKLSAgICBwdXRCeVZhbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3Qs
IHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVl
KTsKLX0KLQogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogY2VsbCwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBjMjJhYmE3NzBmYzk5Y2M2NGJjNWI5ZTdkOGQ4
ZDFiNWJlMjU4YjIzLi4yYzM3ZmQwOTUzMmZiMzk5N2FlNGQ3ZGI0ZDgwYWFhNGU2MWU4MGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtMTQ1LDggKzE0
NSw2IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U2V0SXRlcmF0b3Is
IEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxO
b25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2Vs
bCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSk7CkBAIC0xNTUsOCArMTUzLDYgQEAgSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lk
LCAoSlNHbG8KIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHks
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJl
Y3RDZWxsU3RyaW5nTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA1MWJkMWI3YjNlZDk0OTRiZDNhNDBiN2Y5MjlhNjVh
ZjcwYjNhNDgyLi40ZjgyNGQ3NWI1YTM1MmI3MzFhZDEwMGNkMjI2MTI1M2IwOTI3YWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAt
MjQ4MSwyOCArMjQ4MSwxMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHJh
cHMoTm9kZSogbm9kZSkKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kJiBiYXNlLCBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQmIHByb3BlcnR5KQordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKiBub2RlKQogewot
ICAgIEVkZ2UgY2hpbGQzID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKTsKLSAg
ICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7CisgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhp
cywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJh
bmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSwgTWFudWFs
T3BlcmFuZFNwZWN1bGF0aW9uKTsKIAotICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5h
cnJheU1vZGUoKTsKLSAgICAKICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAgICAg
R1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgCi0gICAgU3BlY3VsYXRl
RG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgR1BSUmVnIHZhbHVlVGFnUmVnID0gdmFsdWUudGFnR1BSKCk7CisgICAgR1BSUmVnIHZh
bHVlUGF5bG9hZFJlZyA9IHZhbHVlLnBheWxvYWRHUFIoKTsKKyNlbHNlCisgICAgR1BSUmVnIHZh
bHVlUmVnID0gdmFsdWUuZ3ByKCk7CisjZW5kaWYKKworICAgIGlmICghbV9jb21waWxlT2theSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2pp
dC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9
IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7
CisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCisgICAgICAgIEdQUlJl
ZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBP
QkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOworICAgICAgICBtX2ppdC5z
dG9yZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdl
UmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZT
RVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOworI2Vsc2UKKyAgICAgICAgbV9qaXQu
c3RvcmU2NCh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKKyNlbmRpZgorICAgICAg
ICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEdQUlRlbXBv
cmFyeSB0ZW1wb3Jhcnk7CisgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lz
dGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIHNsb3dDYXNlOworCisgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9k
ZSgpOworICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soCisgICAgICAgICAgICBPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0
ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1
YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0
ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdl
UmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKKworICAgICAgICBzbG93
Q2FzZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3Bl
cnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9m
ZnNldE9mVmVjdG9yTGVuZ3RoKCkpKTsKKworICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9m
Qm91bmRzKCkpCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1Zh
bHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7CisKKyAgICAgICAgbV9qaXQuYWRkMzIoVHJ1
c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKKyAgICAgICAgbV9qaXQu
c3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcs
IEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOworCisgICAgICAgIGluQm91bmRz
LmxpbmsoJm1faml0KTsKKyAgICB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1faml0
LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJl
ZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VU
T0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOworICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXls
b2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUu
YXNCaXRzLnBheWxvYWQpKSk7CisjZWxzZQorICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CisjZW5kaWYKKworICAgIGJhc2UudXNlKCk7CisgICAgcHJv
cGVydHkudXNlKCk7CisgICAgdmFsdWUudXNlKCk7CisgICAgc3RvcmFnZS51c2UoKTsKKworICAg
IGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAorICAgICAg
ICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpCisgICAgICAgICAgICAgICAgPyAobm9k
ZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3Ry
aWN0KQorICAgICAgICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBv
cGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0
aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCisgICAgICAgICAgICBOb1Jl
c3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLAor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBKU1ZhbHVlUmVncyh2YWx1ZVRhZ1Jl
ZywgdmFsdWVQYXlsb2FkUmVnKSkpOworI2Vsc2UKKyAgICAgICAgICAgIHZhbHVlUmVnKSk7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwo
Tm9kZSogbm9kZSkKK3sKKyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2Rl
KCk7CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBw
cm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBT
cGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMikpOworCisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQ
UlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEZQUlJlZyB2YWx1ZVJlZyA9
IHZhbHVlLmZwcigpOwotICAgIAorCiAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgIEpTVmFs
dWVSZWdzKCksIGNoaWxkMywgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICBKU1ZhbHVlUmVn
cygpLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBTcGVjRnVsbFJlYWxOdW1i
ZXIsCiAgICAgICAgIG1faml0LmJyYW5jaElmTmFOKHZhbHVlUmVnKSk7Ci0gICAgCisKICAgICBp
ZiAoIW1fY29tcGlsZU9rYXkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBTdG9yYWdlT3Bl
cmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdl
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOwogICAgIEdQUlJlZyBz
dG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKIAogICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5
VmFsQWxpYXMpIHsKQEAgLTI1MTAsNDEgKzI1OTUsNDEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBi
YXMKICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAgICAgICAg
IEZQUlJlZyB2YWx1ZVJlZyA9IHZhbHVlLmZwcigpOwogICAgICAgICBtX2ppdC5zdG9yZURvdWJs
ZSh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKLSAgICAgICAgCisKICAgICAgICAg
bm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisK
ICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwogICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcgPSB0
ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CiAKICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZTsKLSAgICAKKwogICAgIGlmIChhcnJheU1vZGUuaXNJ
bkJvdW5kcygpKSB7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgICAgICBPdXRP
ZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKICAgICAgICAgICAgIG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3Ro
KCkpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3Vu
ZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKTsKLSAgICAgICAgCisKICAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFu
Y2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0
aCgpKSk7Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMo
KSkKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdz
KCksIG51bGxwdHIsIHNsb3dDYXNlKTsKLSAgICAgICAgCisKICAgICAgICAgbV9qaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKICAgICAgICAgbV9q
aXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VS
ZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwogCiAgICAgICAgIGluQm91
bmRzLmxpbmsoJm1faml0KTsKICAgICB9Ci0gICAgCisKICAgICBtX2ppdC5zdG9yZURvdWJsZSh2
YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKIAogICAgIGJhc2UudXNlKCk7CiAgICAg
cHJvcGVydHkudXNlKCk7CiAgICAgdmFsdWUudXNlKCk7CiAgICAgc3RvcmFnZS51c2UoKTsKLSAg
ICAKKwogICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKSB7CiAgICAgICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgc2xvd1BhdGhDYWxsKApAQCAtMzU2NywxNiAr
MzY1MiwxOSBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpnZXRJbnRUeXBlZEFycmF5U3RvcmVPcGVy
YW5kRm9yQXRvbWljcygKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcg
cHJvcGVydHksIE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCit2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVk
QXJyYXlUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKGlzSW50KHR5cGUpKTsKLSAgICAKKworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogICAgIFN0b3JhZ2VPcGVy
YW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAzKSk7CisK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9
IHN0b3JhZ2UuZ3ByKCk7Ci0gICAgCi0gICAgRWRnZSB2YWx1ZVVzZSA9IG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMik7Ci0gICAgCisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdw
cigpOworICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworCiAgICAgR1BS
VGVtcG9yYXJ5IHZhbHVlOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BSVGVtcG9yYXJ5
IHByb3BlcnR5VGFnOwpAQCAtMzU4NCwxMyArMzY3MiwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJv
cGVydAogI2VuZGlmCiAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd1BhdGhDYXNlczsK
LSAgICAKKwogICAgIGJvb2wgcmVzdWx0ID0gZ2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZCgK
LSAgICAgICAgdmFsdWUsIHByb3BlcnR5LAorICAgICAgICB2YWx1ZSwgcHJvcGVydHlSZWcsCiAj
aWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgcHJvcGVydHlUYWcsIHZhbHVlVGFnLAogI2Vu
ZGlmCi0gICAgICAgIHZhbHVlVXNlLCBzbG93UGF0aENhc2VzLCBpc0NsYW1wZWQodHlwZSkpOwor
ICAgICAgICBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBzbG93UGF0aENhc2Vz
LCBpc0NsYW1wZWQodHlwZSkpOwogICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIG5vUmVzdWx0
KG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC0zNjAyLDU3ICszNjkwLDQyIEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2Us
IEdQUlJlZyBwcm9wZXJ0CiAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0gdmFsdWVUYWcuZ3ByKCk7
CiAjZW5kaWYKIAotICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZhbHVlR1BSICE9IHByb3Bl
cnR5KTsKLSAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZSk7CisgICAgQVNTRVJUX1VOVVNFRCh2
YWx1ZUdQUiwgdmFsdWVHUFIgIT0gcHJvcGVydHlSZWcpOworICAgIEFTU0VSVCh2YWx1ZUdQUiAh
PSBiYXNlUmVnKTsKICAgICBBU1NFUlQodmFsdWVHUFIgIT0gc3RvcmFnZVJlZyk7Ci0gICAgSklU
Q29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KG5vZGUsIGJhc2UsIHByb3BlcnR5LCBzY3JhdGNoLmdwcigpKTsKKyAgICBKSVRDb21waWxlcjo6
SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFz
ZVJlZywgcHJvcGVydHlSZWcsIHNjcmF0Y2guZ3ByKCkpOwogCiAgICAgc3dpdGNoIChlbGVtZW50
U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgMToKLSAgICAgICAgbV9qaXQuc3RvcmU4KHZhbHVlLmdw
cigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNPbmUpKTsKKyAgICAgICAgbV9qaXQuc3RvcmU4KHZhbHVlLmdwcigp
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNPbmUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAyOgotICAg
ICAgICBtX2ppdC5zdG9yZTE2KHZhbHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNUd28pKTsKKyAgICAg
ICAgbV9qaXQuc3RvcmUxNih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzVHdvKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgNDoKLSAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5ncHIo
KSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9B
c3NlbWJsZXI6OlRpbWVzRm91cikpOworICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlLmdwcigp
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogCi0gICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IGp1
bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgb3V0T2ZC
b3VuZHMpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlz
RGV0YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIG91dE9mQm91bmRzKTsKICAgICBp
ZiAoZG9uZS5pc1NldCgpKQogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKIAogICAgIGlmICgh
c2xvd1BhdGhDYXNlcy5lbXB0eSgpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNs
b3dQYXRoQ2FsbCgKKyAgICAgICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRoaXMsCisgICAgICAgICAg
ICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKKyAgICAgICAgICAgICAgICA/IChub2RlLT5v
cCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBv
cGVyYXRpb25QdXRCeVZhbFN0cmljdCkKKyAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QgOiBvcGVy
YXRpb25QdXRCeVZhbE5vblN0cmljdCksCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYg
KG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0
aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJp
Y3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVy
KG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykp
LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWVHUFIpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBz
bG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25T
dHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWVHUFIpKTsKLSAgICAgICAgfQorICAgICAgICAgICAg
Tm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJl
ZywgdmFsdWVHUFIpKTsKICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQotICAgICAgICBpZiAo
bm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAgYWRkU2xvd1BhdGhH
ZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRo
aXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxs
Tm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2Vt
YW50aWMpKSwgYmFzZSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3BlcnR5KSwgSlNW
YWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAg
ICAgIHNsb3dQYXRoQ2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUo
KS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0IDogb3BlcmF0aW9uUHV0
QnlWYWxDZWxsTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3Bl
cnR5KSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwotICAgICAgICB9Cisg
ICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIENDYWxsSGVs
cGVyczo6Q2VsbFZhbHVlKGJhc2VSZWcpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eVRhZ0dQUiwgcHJv
cGVydHlSZWcpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVHUFIpKSk7CiAjZW5kaWYK
ICAgICB9Ci0gICAgCisKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIApAQCAtMzY5OSwzOSArMzc3
Miw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRB
cnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZQogICAgIH0KIH0KIAotdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBH
UFJSZWcgcHJvcGVydHksIE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9k
ZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkKIHsKICAgICBBU1NFUlQoaXNGbG9hdCh0eXBlKSk7Ci0g
ICAgCisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBw
cm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBT
cGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlT3AodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAyKSk7CiAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKLSAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0
b3JhZ2UuZ3ByKCk7Ci0gICAgCi0gICAgRWRnZSB2YWx1ZVVzZSA9IG1faml0LmdyYXBoKCkudmFy
QXJnQ2hpbGQobm9kZSwgMik7CiAKLSAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlT3Ao
dGhpcywgdmFsdWVVc2UpOwogICAgIEZQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgIEdQ
UlRlbXBvcmFyeSBncFNjcmF0Y2godGhpcyk7CiAgICAgRlBSUmVnIHZhbHVlRlBSID0gdmFsdWVP
cC5mcHIoKTsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNjcmF0Y2guZnByKCk7CisgICAgR1BS
UmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3Bl
cnR5LmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gZ3BTY3JhdGNoLmdwcigpOworICAg
IEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKIAotICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBi
YXNlLCBwcm9wZXJ0eSwgc2NyYXRjaEdQUik7Ci0gICAgCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2VS
ZWcsIHByb3BlcnR5UmVnLCBzY3JhdGNoR1BSKTsKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5
cGUpKSB7CiAgICAgY2FzZSA0OiB7CiAgICAgICAgIG1faml0Lm1vdmVEb3VibGUodmFsdWVGUFIs
IHNjcmF0Y2hGUFIpOwogICAgICAgICBtX2ppdC5jb252ZXJ0RG91YmxlVG9GbG9hdCh2YWx1ZUZQ
Uiwgc2NyYXRjaEZQUik7Ci0gICAgICAgIG1faml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQUiwgTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRm91cikpOworICAgICAgICBtX2ppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0ZvdXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgODoK
LSAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVGUFIsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7
CisgICAgICAgIG1faml0LnN0b3JlRG91YmxlKHZhbHVlRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdo
dCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBq
dW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2UsIG91dE9m
Qm91bmRzKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJ
c0RldGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBiYXNlUmVnLCBvdXRPZkJvdW5kcyk7CiAgICAg
aWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgbm9SZXN1
bHQobm9kZSk7CkBAIC0zOTA3LDE3ICszOTgxLDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqIG5vZGUs
IEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMpCit2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiBub2RlKQogewot
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgY2hpbGQxKTsKLSAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBhcmcyKHRoaXMsIGNoaWxkMik7Ci0gICAgSlNWYWx1ZU9wZXJhbmQgYXJn
Myh0aGlzLCBjaGlsZDMpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgbV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYXJnMih0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBK
U1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MikpOwogCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBhcmcy
R1BSID0gYXJnMi5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyBhcmczUmVncyA9IGFyZzMuanNWYWx1
ZVJlZ3MoKTsKIAotICAgIHNwZWN1bGF0ZVN0cmluZyhjaGlsZDIsIGFyZzJHUFIpOworICAgIHNw
ZWN1bGF0ZVN0cmluZyhtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBhcmcyR1BS
KTsKIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbigKQEAgLTM5MzAs
MTcgKzQwMDQsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2Vs
bFdpdGhTdHJpbmcoTm9kZSogbm9kZSwgRWRnZSYgY2hpbGQxLAogICAgIG5vUmVzdWx0KG5vZGUp
OwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5
bWJvbChOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxkMiwgRWRnZSYgY2hpbGQz
KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wo
Tm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcxKHRoaXMsIGNoaWxk
MSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBjaGlsZDIpOwotICAgIEpT
VmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBhcmcxKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAogICAgIEdQUlJlZyBhcmcxR1BSID0gYXJnMS5ncHIoKTsK
ICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgYXJnM1Jl
Z3MgPSBhcmczLmpzVmFsdWVSZWdzKCk7CiAKLSAgICBzcGVjdWxhdGVTeW1ib2woY2hpbGQyLCBh
cmcyR1BSKTsKKyAgICBzcGVjdWxhdGVTeW1ib2wobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSwgYXJnMkdQUik7CiAKICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgIGNhbGxPcGVy
YXRpb24oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggMDQ5YmNmN2U2ZmRiNzkyYWQ2YTU4OTEwN2E4ZDFhMjcxYzFlMTkwMi4uZTEzYWI0NDg1
OTg2MjhhNjgxMTAxZDM0OWQ2ZDAyYzgyMDg2MDgzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTM0MiwxMSArMTM0Miw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNvbXBpbGVHZXRQcm90b3R5cGVPZihOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlSWRlbnRpdHkoTm9kZSopOwogICAgIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0eU9wZXJhbmRU
eXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBUYWdUeXBlPgotICAgIHZv
aWQgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKiwgQmFzZU9wZXJhbmRUeXBlJiwgUHJv
cGVydHlPcGVyYW5kVHlwZSYsIFZhbHVlT3BlcmFuZFR5cGUmLCBHUFJSZWcgdmFsdWVQYXlsb2Fk
UmVnLCBUYWdUeXBlIHZhbHVlVGFnKTsKLSNlbmRpZgotICAgIHZvaWQgY29tcGlsZURvdWJsZVB1
dEJ5VmFsKE5vZGUqLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYgYmFzZSwgU3BlY3VsYXRlU3RyaWN0
SW50MzJPcGVyYW5kJiBwcm9wZXJ0eSk7CisgICAgdm9pZCBjb21waWxlQ29udGlndW91c1B1dEJ5
VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKik7CiAgICAg
Ym9vbCBwdXRCeVZhbFdpbGxOZWVkRXh0cmFSZWdpc3RlcihBcnJheU1vZGUgYXJyYXlNb2RlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFycmF5TW9kZS5tYXlTdG9yZVRvSG9sZSgpOwpAQCAtMTM1
Nyw2ICsxMzU0LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdGVtcG9yYXJ5UmVnaXN0ZXJG
b3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUtPmFycmF5TW9kZSgpKTsKICAgICB9CiAgICAgCisg
ICAgdm9pZCBjb21waWxlUHV0QnlWYWwoTm9kZSopOworCiAgICAgLy8gV2UgdXNlIGEgc2NvcGVk
TGFtYmRhIHRvIHBsYWNhdGUgcmVnaXN0ZXIgYWxsb2NhdGlvbiB2YWxpZGF0aW9uLgogICAgIHZv
aWQgY29tcGlsZUdldEJ5VmFsKE5vZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxK
U1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJl
Zml4KTsKIApAQCAtMTQ0NiwxMyArMTQ0NSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxl
R2V0VHlwZWRBcnJheUJ5dGVPZmZzZXRBc0ludDUyKE5vZGUqKTsKICNlbmRpZgogICAgIHZvaWQg
Y29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29u
c3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFG
b3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlW
YWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqLCBU
eXBlZEFycmF5VHlwZSk7CisgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5
KE5vZGUqLCBUeXBlZEFycmF5VHlwZSk7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkZsb2F0
VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5
KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqLCBUeXBlZEFycmF5VHlwZSk7Cisg
ICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJy
YXlUeXBlKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTdHJpbmcoTm9k
ZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwogICAgIHZvaWQgY29tcGls
ZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0
ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9y
bWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmlu
ZyhOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7Ci0gICAg
dm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKiwgRWRnZSYgY2hpbGQx
LCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7CisgICAgdm9pZCBjb21waWxlUHV0QnlWYWxG
b3JDZWxsV2l0aFN0cmluZyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxs
V2l0aFN5bWJvbChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoVGhpcyhOb2Rl
Kik7CiAgICAgdm9pZCBjb21waWxlUHV0UHJpdmF0ZU5hbWUoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZVB1dFByaXZhdGVOYW1lQnlJZChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAwNzQ1NmE3NDIxYTgx
MzFhOGMwYTY3M2IxNWIxZmRhNmJjNmJhZTFhLi40ZTU2YjQwYjdlNWU3OTNlYmVkOWM4MjFjMDhk
Y2NkODk2ZWJiNjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTE3NDYsNzMgKzE3NDYsMjA4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2goTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXRlbXBsYXRl
PHR5cGVuYW1lIEJhc2VPcGVyYW5kVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlwZSwg
dHlwZW5hbWUgVmFsdWVPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVGFnVHlwZT4KLXZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9kZSogbm9kZSwgQmFzZU9wZXJh
bmRUeXBlJiBiYXNlLCBQcm9wZXJ0eU9wZXJhbmRUeXBlJiBwcm9wZXJ0eSwgVmFsdWVPcGVyYW5k
VHlwZSYgdmFsdWUsIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcsIFRhZ1R5cGUgdmFsdWVUYWcpCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKIHsKLSAgICBF
ZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7CisgICAgQXJy
YXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKTsKKyAgICBz
d2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKKyAgICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5
OgorICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKKyAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2lu
Z0FyZ3VtZW50czoKKyAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25zOgorICAg
IGNhc2UgQXJyYXk6OlVucHJvZmlsZWQ6CisgICAgY2FzZSBBcnJheTo6QmlnSW50NjRBcnJheToK
KyAgICBjYXNlIEFycmF5OjpCaWdVaW50NjRBcnJheToKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6
CisgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3Bl
ZEFyZ3VtZW50czoKKyAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CisgICAgICAgIERGR19DUkFT
SChtX2ppdC5ncmFwaCgpLCBub2RlLCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CisgICAgICAgIERGR19BU1NFUlQobV9q
aXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8fCBub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9zbG93
UHV0QnlWYWwuY29udGFpbnMobm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgp
LnZhckFyZ0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7CisgICAgICAgICAg
ICAgICAgaWYgKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09
IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxs
V2l0aFN0cmluZyhub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQogCi0gICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwot
ICAgIAotICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKLSAgICBHUFJSZWcgcHJvcGVy
dHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAKLSAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdl
KHRoaXMsIGNoaWxkNCk7Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwor
ICAgICAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVz
ZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5
VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSlNWYWx1ZU9w
ZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAg
ICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFy
QXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhp
cywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAgICAgICAgICBKU1Zh
bHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIEpTVmFs
dWVSZWdzIHByb3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAg
ICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworCisgICAgICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0
QnlWYWxEaXJlY3QpCisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9k
ZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCA6IG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dy
YXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFz
ZVJlZ3MsICBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBv
cGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBUcnVz
dGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihu
b2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZ3MsICBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVn
cyk7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworCisgICAgICAgICAgICBu
b1Jlc3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDApLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCBw
cm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBt
X2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOworICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsK
KyAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3Mo
KTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsK
KworICAgICAgICBzcGVjdWxhdGUobm9kZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAwKSk7CisgICAgICAgIHNwZWN1bGF0ZShub2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKTsKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMikpOworCisgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYzsKKyAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0
LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRl
ZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKKyAgICAgICAgUmVnaXN0ZXJTZXQgdXNl
ZFJlZ2lzdGVycyA9IHRoaXMtPnVzZWRSZWdpc3RlcnMoKTsKKyAgICAgICAgYm9vbCBpc0RpcmVj
dCA9IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Q7CisgICAgICAgIEVDTUFNb2RlIGVjbWFN
b2RlID0gbm9kZS0+ZWNtYU1vZGUoKTsKKworICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvciBn
ZW4oCisgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklULCBjb2Rl
T3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCisg
ICAgICAgICAgICBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIEludmFsaWRHUFJS
ZWcsIEludmFsaWRHUFJSZWcpOworCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQorICAgICAg
ICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOworICAgICAgICBl
bHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAx
KSkuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnBy
b3BlcnR5SXNJbnQzMiA9IHRydWU7CisgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZSht
X2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N5bWJvbCkpCisg
ICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7CisKKyAg
ICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworCisgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wTGlzdCBzbG93Q2FzZXM7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKKworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+
IHNsb3dQYXRoOworICAgICAgICBhdXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2Rl
LmlzU3RyaWN0KCkgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3Bl
cmF0aW9uRGlyZWN0UHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJp
Y3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZh
bE5vblN0cmljdE9wdGltaXplKTsKKyAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCisg
ICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIG9wZXJhdGlvbiwKKyAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywg
Z2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOworCisgICAgICAgIG1faml0LmFkZFB1dEJ5VmFsKGdl
biwgc2xvd1BhdGguZ2V0KCkpOworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3Zl
KHNsb3dQYXRoKSk7CiAKLSAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0g
ICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgIEdQUlJlZyBw
cm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVl
VGFnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNC
aXRzLnRhZykpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9h
ZCkpKTsKLSAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICByZXR1cm47
CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBz
bG93Q2FzZTsKKyAgICBjYXNlIEFycmF5OjpJbnQzMjogeworICAgICAgICBzcGVjdWxhdGVJbnQz
MihtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgRkFMTFRIUk9V
R0g7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKKyAgICAgICAgY29tcGls
ZUNvbnRpZ3VvdXNQdXRCeVZhbChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNh
c2UgQXJyYXk6OkRvdWJsZTogeworICAgICAgICBjb21waWxlRG91YmxlUHV0QnlWYWwobm9kZSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6Cisg
ICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZTogeworICAgICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkp
OworICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5k
IHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOworICAgICAg
ICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQo
bm9kZSwgMykpOwogCi0gICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkpIHsKLSAgICAgICAg
c3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygp
LCAwLAotICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JF
cXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1
dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3Jh
Z2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICAKLSAg
ICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVx
dWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0
dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7Ci0gICAgICAgIAorICAgICAgICBHUFJS
ZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHBy
b3BlcnR5LmdwcigpOworICAgICAgICBHUFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdHUFIo
KTsKKyAgICAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZyA9IHZhbHVlLnBheWxvYWRHUFIoKTsK
KyAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOworCisgICAgICAgIGlm
IChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKKyAgICAgICAgICAgIC8vIFN0b3JlIHRo
ZSB2YWx1ZSB0byB0aGUgYXJyYXkuCisgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBw
cm9wZXJ0eS5ncHIoKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUudGFnR1BSKCks
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKKyAgICAgICAgICAgIG1faml0
LnN0b3JlMzIodmFsdWUucGF5bG9hZEdQUigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0
b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlT
dG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0
cy5wYXlsb2FkKSkpOworCisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKKyAg
ICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwo
dGVtcG9yYXJ5LCBub2RlKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xv
d0Nhc2VzOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5Qm91bmRz
ID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6dmVj
dG9yTGVuZ3RoT2Zmc2V0KCkpKTsKICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5k
cygpKQotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJl
Z3MoKSwgMCwgc2xvd0Nhc2UpOwotICAgICAgICAKLSAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3Rl
ZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIocHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0
T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSks
IHByb3BlcnR5UmVnKTsKLSAgICAgICAgCi0gICAgICAgIGluQm91bmRzLmxpbmsoJm1faml0KTsK
LSAgICB9Ci0gICAgCi0gICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZywgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgbV9q
aXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3Rv
cmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAgICAKLSAgICBiYXNlLnVz
ZSgpOwotICAgIHByb3BlcnR5LnVzZSgpOwotICAgIHZhbHVlLnVzZSgpOwotICAgIHN0b3JhZ2Uu
dXNlKCk7Ci0gICAgCi0gICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAgICAg
ICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZSwg
dGhpcywKLSAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVy
YXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwKLSAgICAgICAgICAgICAgICBO
b1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVn
LCBKU1ZhbHVlUmVncyh2YWx1ZVRhZywgdmFsdWVQYXlsb2FkUmVnKSkpOworICAgICAgICAgICAg
c3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5
b25kQXJyYXlCb3VuZHMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBw
ZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKKworICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0
aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCisgICAg
ICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKAorICAgICAgICAgICAgICAgIFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxs
cHRyLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVh
bCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBP
QkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpFbXB0eVZhbHVlVGFnKSkpOwogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3Nl
bWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0
b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsKKyAgICAgICAgICAgIGlmIChhcnJh
eU1vZGUuaXNTbG93UHV0KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Yg
c3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3Vs
ZCBpbnZlcnQKKyAgICAgICAgICAgICAgICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBz
aW1wbHkgbm90IHdvcnRoIGl0IHNpbmNlIHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCisgICAg
ICAgICAgICAgICAgLy8gYWxyZWFkeSBoYXZpbmcgYSBiYWQgdGltZS4KKyAgICAgICAgICAgICAg
ICBzbG93Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9m
ZnNldCgpKSk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9s
ZSB3ZSBtaWdodCBiZSBncm93aW5nIHRoZSBhcnJheTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgICAg
ICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnLCB0ZW1wb3JhcnlS
ZWcpOworICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgp
KSk7CisKKyAgICAgICAgICAgICAgICBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZS5saW5rKCZtX2pp
dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4K
KyAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQs
IEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMudGFnKSkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9hZFJlZywg
TWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpF
Q1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKKworICAgICAgICBiYXNl
LnVzZSgpOworICAgICAgICBwcm9wZXJ0eS51c2UoKTsKKyAgICAgICAgdmFsdWUudXNlKCk7Cisg
ICAgICAgIHN0b3JhZ2UudXNlKCk7CisKKyAgICAgICAgaWYgKCFzbG93Q2FzZXMuZW1wdHkoKSkg
ewogICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAg
ICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2Rl
KCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3Qg
OiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAg
ICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJv
cGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFnLCB2YWx1ZVBheWxvYWRSZWcpKSk7CisgICAg
ICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAorICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFN
b2RlKCkuaXNTdHJpY3QoKQorICAgICAgICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09IFB1
dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCisgICAgICAg
ICAgICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlW
YWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCisgICAgICAgICAgICAgICAgTm9SZXN1bHQs
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1
ZVJlZ3ModmFsdWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKICAgICAgICAgfQotICAgIH0K
IAotICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7ICAgIAor
ICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6SW50OEFycmF5OgorICAgIGNhc2Ug
QXJyYXk6OkludDE2QXJyYXk6CisgICAgY2FzZSBBcnJheTo6SW50MzJBcnJheToKKyAgICBjYXNl
IEFycmF5OjpVaW50OEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQ4Q2xhbXBlZEFycmF5Ogor
ICAgIGNhc2UgQXJyYXk6OlVpbnQxNkFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQzMkFycmF5
OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpGbG9hdDY0
QXJyYXk6IHsKKyAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5TW9kZS50eXBlZEFy
cmF5VHlwZSgpOworICAgICAgICBpZiAoaXNJbnQodHlwZSkpCisgICAgICAgICAgICBjb21waWxl
UHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KG5vZGUsIHR5cGUpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkobm9kZSwgdHlwZSk7Cisg
ICAgfSB9CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQpAQCAtMjcwNiwyMzAgKzI4
NDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBQdXRCeVZhbERpcmVjdDoKICAgICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxB
bGlhczogewotICAgICAgICBFZGdlIGNoaWxkMSA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQo
bm9kZSwgMCk7Ci0gICAgICAgIEVkZ2UgY2hpbGQyID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAxKTsKLSAgICAgICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDIpOwotICAgICAgICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMyk7Ci0gICAgICAgIAotICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0g
bm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOwotICAgICAgICBib29sIGFscmVhZHlIYW5k
bGVkID0gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkp
IHsKLSAgICAgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKLSAgICAgICAg
Y2FzZSBBcnJheTo6Rm9yY2VFeGl0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSNpZiBDT01QSUxFUl9RVUlSSyhDT05TSURFUlNfVU5SRUFDSEFCTEVfQ09ERSkK
LSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKEluYWRlcXVhdGVDb3Zl
cmFnZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7Ci0gICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRy
dWU7Ci0jZW5kaWYKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFycmF5OjpHZW5l
cmljOiB7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8fCBub2Rl
LT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KTsKLSAgICAgICAgICAgIGlmIChtX2dyYXBoLm1fc2xv
d1B1dEJ5VmFsLmNvbnRhaW5zKG5vZGUpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkMS51
c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQyLnVz
ZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQ
dXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKG5vZGUsIGNoaWxkMSwgY2hpbGQyLCBjaGlsZDMpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgICAgICBpZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKG5vZGUsIGNo
aWxkMSwgY2hpbGQyLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUhh
bmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBKU1ZhbHVl
T3BlcmFuZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgcHJvcGVydHkodGhpcywgY2hpbGQyKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VS
ZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHBy
b3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7Ci0gICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKLQotICAgICAgICAgICAg
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0g
UHV0QnlWYWxEaXJlY3QpCi0gICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBv
cGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MpOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgp
LmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
Tm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZ3MsICBwcm9wZXJ0
eVJlZ3MsIHZhbHVlUmVncyk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2so
KTsKLQotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGFs
cmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEsIE1hbnVh
bE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0
eSh0aGlzLCBjaGlsZDIsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBK
U1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlv
bik7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3Mo
KTsKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFs
dWVSZWdzKCk7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MgPSB2YWx1ZS5qc1Zh
bHVlUmVncygpOwotCi0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwgY2hpbGQxKTsKLSAgICAg
ICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDIpOwotICAgICAgICAgICAgc3BlY3VsYXRlKG5v
ZGUsIGNoaWxkMyk7Ci0KLSAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYzsKLSAgICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBt
X2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZO
ZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7Ci0gICAgICAgICAgICBSZWdpc3Rl
clNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOwotICAgICAgICAgICAg
Ym9vbCBpc0RpcmVjdCA9IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Q7Ci0gICAgICAgICAg
ICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7Ci0KLSAgICAgICAgICAgIEpJ
VFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0
QnlWYWwsIHVzZWRSZWdpc3RlcnMsCi0gICAgICAgICAgICAgICAgYmFzZVJlZ3MsIHByb3BlcnR5
UmVncywgdmFsdWVSZWdzLCBJbnZhbGlkR1BSUmVnLCBJbnZhbGlkR1BSUmVnKTsKLQotICAgICAg
ICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlwZShTcGVjU3RyaW5nKSkKLSAg
ICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N0cmluZyA9IHRydWU7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY0lu
dDMyT25seSkpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQz
MiA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5p
c1R5cGUoU3BlY1N5bWJvbCkpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3Bl
cnR5SXNTeW1ib2wgPSB0cnVlOwotCi0gICAgICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCht
X2ppdCk7Ci0KLSAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0g
ICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7Ci0KLSAgICAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7Ci0gICAg
ICAgICAgICBhdXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGlyZWN0
UHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdE9w
dGltaXplKTsKLSAgICAgICAgICAgIHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAotICAgICAgICAg
ICAgICAgIHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywg
Z2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOwotCi0gICAgICAgICAgICBtX2ppdC5hZGRQdXRCeVZh
bChnZW4sIHNsb3dQYXRoLmdldCgpKTsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KFdURk1vdmUoc2xvd1BhdGgpKTsKLQotICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAg
ICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIGlmIChhbHJlYWR5SGFuZGxlZCkKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAKLSAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEp
OwotICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hp
bGQyKTsKLSAgICAgICAgCi0gICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKLSAg
ICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0KLSAgICAgICAgc3dp
dGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyOiB7Ci0g
ICAgICAgICAgICBzcGVjdWxhdGVJbnQzMihjaGlsZDMpOwotICAgICAgICAgICAgRkFMTFRIUk9V
R0g7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5kU3Bl
Y3VsYXRpb24pOwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdH
UFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcgPSB2YWx1ZS5wYXlsb2Fk
R1BSKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZh
bChub2RlLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIHZhbHVlUGF5bG9hZFJlZywgdmFsdWVUYWdS
ZWcpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBcnJheTo6
RG91YmxlOiB7Ci0gICAgICAgICAgICBjb21waWxlRG91YmxlUHV0QnlWYWwobm9kZSwgYmFzZSwg
cHJvcGVydHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBB
cnJheTo6QXJyYXlTdG9yYWdlOgotICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9y
YWdlOiB7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOwot
Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdHUFIoKTsKLSAgICAg
ICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgY2hp
bGQ0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKLQot
ICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgewotICAgICAgICAg
ICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgICAgICAgICAg
R1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgbV9q
aXQuc3RvcmUzMih2YWx1ZS50YWdHUFIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9y
YWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3Rv
cmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMu
dGFnKSkpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUucGF5bG9hZEdQUigp
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9C
SkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOwotCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBiZXlvbmRB
cnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWws
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0
b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICBpZiAoIWFycmF5TW9k
ZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRP
ZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwgYmV5b25kQXJyYXlCb3VuZHMpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYmV5b25kQXJyYXlCb3Vu
ZHMpOwotCi0gICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsg
aWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCi0gICAgICAgICAgICBpZiAoYXJy
YXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
Ci0gICAgICAgICAgICAgICAgICAgIFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCAwLAotICAg
ICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNU
X09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
RW1wdHlWYWx1ZVRhZykpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2
ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwg
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsKLSAgICAgICAgICAgICAgICBp
ZiAoYXJyYXlNb2RlLmlzU2xvd1B1dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgc29ydCBvZiBzdHJhbmdlLiBJZiB3ZSB3YW50ZWQgdG8gb3B0aW1pemUgdGhpcyBjb2RlIHBh
dGgsIHdlIHdvdWxkIGludmVydAotICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWJvdmUgYnJh
bmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdvcnRoIGl0IHNpbmNlIHRoaXMgb25seSBoYXBwZW5z
IGlmIHdlJ3JlCi0gICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRp
bWUuCi0gICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuanVtcCgpKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGQz
MihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFy
cmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZSB3ZSBt
aWdodCBiZSBncm93aW5nIHRoZSBhcnJheTsgCi0gICAgICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlID0gbV9qaXQuYnJhbmNoMzIoTWFj
cm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAg
ICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKLSAgICAg
ICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwotICAg
ICAgICAgICAgICAgICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVn
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5l
ZWRVcGRhdGUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgfQotICAgIAotICAgICAg
ICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJl
ZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6
OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykp
KTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRP
RihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwotCi0gICAgICAgICAgICBiYXNlLnVzZSgp
OwotICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0gICAgICAgICAgICB2YWx1ZS51c2UoKTsK
LSAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
ICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9
PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVy
YXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRo
aXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBo
LCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJl
ZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFnUmVnLCB2YWx1ZVBheWxvYWRSZWcp
KSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYWRkU2xv
d1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICAgICAgc2xv
d0Nhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5p
c1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9w
ZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcs
IHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ1JlZywgdmFsdWVQYXlsb2FkUmVnKSkp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbm9SZXN1
bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgZGVmYXVsdDogewotICAgICAgICAg
ICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpOwotICAg
ICAgICAgICAgaWYgKGlzSW50KHR5cGUpKQotICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZh
bEZvckludFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUsIHR5cGUp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7Ci0g
ICAgICAgIH0gfQorICAgICAgICBjb21waWxlUHV0QnlWYWwobm9kZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKaW5kZXggMTRhNTA3NjFmZDlhNjUyYzNmMGUzOTEwYWE2OWVlZTExM2ZmMTNk
Yy4uMmUzMTAwYmEwOTI3ODE5Njc3MDg3ZDgwYzYyN2RiMGFjNTViOTI2NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yMzMw
LDYgKzIzMzAsMjI0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2goTm9kZSogbm9k
ZSkKICAgICB9CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbChOb2Rl
KiBub2RlKQoreworICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKS5t
b2RlRm9yUHV0KCk7CisgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CisgICAgY2FzZSBB
cnJheTo6QW55VHlwZWRBcnJheToKKyAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6CisgICAgY2Fz
ZSBBcnJheTo6U2VsZWN0VXNpbmdBcmd1bWVudHM6CisgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNp
bmdQcmVkaWN0aW9uczoKKyAgICBjYXNlIEFycmF5OjpVbnByb2ZpbGVkOgorICAgIGNhc2UgQXJy
YXk6OlN0cmluZzoKKyAgICBjYXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6CisgICAgY2FzZSBB
cnJheTo6U2NvcGVkQXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlVuZGVjaWRlZDoKKyAgICAg
ICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUsICJCYWQgYXJyYXkgbW9kZSB0eXBlIik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6CisgICAgY2Fz
ZSBBcnJheTo6QmlnVWludDY0QXJyYXk6CisgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogeworICAg
ICAgICBERkdfQVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCwgbm9kZS0+b3AoKSk7CisgICAgICAg
IGlmIChtX2dyYXBoLm1fc2xvd1B1dEJ5VmFsLmNvbnRhaW5zKG5vZGUpKSB7CisgICAgICAgICAg
ICBpZiAobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gQ2Vs
bFVzZSkgeworICAgICAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY29t
cGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcobm9kZSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9kZSk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFw
aCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHBy
b3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAyKSk7CisgICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Cisg
ICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5ncHIoKTsKKyAgICAgICAg
ICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigpOworICAgICAgICAgICAgZmx1c2hSZWdp
c3RlcnMoKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQor
ICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgp
ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5
R1BSLCB2YWx1ZUdQUik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9p
bnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50
aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BSKTsKKyAgICAgICAgICAgIG1faml0
LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBi
YXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBK
U1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7
CisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOworICAgICAgICBH
UFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsKKworICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1
YkluZm87CisgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAg
ICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAg
ICAgc3R1YkluZm8gPSBHUFJUZW1wb3JhcnkodGhpcyk7CisgICAgICAgICAgICBzdHViSW5mb0dQ
UiA9IHN0dWJJbmZvLmdwcigpOworICAgICAgICB9CisKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICBzcGVjdWxhdGUo
bm9kZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisKKyAgICAgICAgQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOworICAgICAgICBDYWxs
U2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2Vw
dGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkp
OworICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVy
cygpOworICAgICAgICBib29sIGlzRGlyZWN0ID0gbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVj
dDsKKyAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUgPSBub2RlLT5lY21hTW9kZSgpOworCisgICAg
ICAgIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigKKyAgICAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQ
dXRCeVZhbCwgdXNlZFJlZ2lzdGVycywKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIp
LCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxp
ZEdQUlJlZywgc3R1YkluZm9HUFIpOworCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQorICAg
ICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOworICAgICAg
ICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAxKSkuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCkt
PnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CisgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9k
ZShtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N5bWJvbCkp
CisgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7CisK
KyAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworCisgICAgICAgIEpJVENvbXBp
bGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlD
KEpJVFR5cGU6OkRGR0pJVCkpCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93
UGF0aEp1bXAoKSk7CisKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9y
PiBzbG93UGF0aDsKKyAgICAgICAgYXV0byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9k
ZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3Ry
aWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlW
YWxOb25TdHJpY3RPcHRpbWl6ZSk7CisgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklU
VHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aElDQ2FsbCgK
KyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIGdlbi5zdHViSW5mbygpLCBzdHViSW5m
b0dQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5m
bzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBvcGVyYXRpb24sCisgICAgICAgICAgICAgICAg
Tm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKGNvZGVPcmlnaW4pKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BS
LCBzdHViSW5mb0dQUiwgbnVsbHB0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBz
bG93UGF0aCA9IHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMs
IG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBi
YXNlR1BSLCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsK
KyAgICAgICAgfQorCisgICAgICAgIG1faml0LmFkZFB1dEJ5VmFsKGdlbiwgc2xvd1BhdGguZ2V0
KCkpOworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7CisK
KyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IEFycmF5OjpJbnQzMjogeworICAgICAgICBzcGVjdWxhdGVJbnQzMihtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgfQorICAgIGNh
c2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKKyAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZh
bChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkRvdWJsZTog
eworICAgICAgICBjb21waWxlRG91YmxlUHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CisgICAgY2FzZSBBcnJheTo6U2xv
d1B1dEFycmF5U3RvcmFnZTogeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBTcGVjdWxh
dGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAxKSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOworCisgICAgICAgIEdQUlJlZyBiYXNlUmVn
ID0gYmFzZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3By
KCk7CisgICAgICAgIEdQUlJlZyB2YWx1ZVJlZyA9IHZhbHVlLmdwcigpOworCisgICAgICAgIGlm
ICghbV9jb21waWxlT2theSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTdG9yYWdl
T3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykp
OworICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICAgICAg
aWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgeworICAgICAgICAgICAgLy8gU3RvcmUg
dGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9
IHByb3BlcnR5LmdwcigpOworICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3By
KCk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6
QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNF
aWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOworCisgICAgICAgICAgICBub1Jl
c3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgR1BS
VGVtcG9yYXJ5IHRlbXBvcmFyeTsKKyAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBv
cmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGJleW9uZEFycmF5Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3Jh
Z2VSZWcsIEFycmF5U3RvcmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgaWYg
KCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5
Qm91bmRzKTsKKworICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsg
aWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgIGlmIChhcnJheU1v
ZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAg
ICAgICAgICAgIFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICAg
ICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpKSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBt
X2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1l
c0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAo
YXJyYXlNb2RlLmlzU2xvd1B1dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0
IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ug
d291bGQgaW52ZXJ0CisgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0
J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQor
ICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCisgICAgICAgICAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0
b3JPZmZzZXQoKSkpOworCisgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBh
IGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7CisgICAgICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisgICAgICAg
ICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9y
YXJ5UmVnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZz
ZXQoKSkpOworCisgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygm
bV9qaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1f
aml0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJy
YXkuCisgICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7CisKKyAgICAgICAgYmFzZS51c2UoKTsK
KyAgICAgICAgcHJvcGVydHkudXNlKCk7CisgICAgICAgIHZhbHVlLnVzZSgpOworICAgICAgICBz
dG9yYWdlLnVzZSgpOworCisgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKKyAgICAg
ICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgICAg
ICBzbG93Q2FzZXMsIHRoaXMsCisgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0
cmljdCgpCisgICAgICAgICAgICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJl
Y3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3Bl
cmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCkKKyAgICAgICAgICAgICAgICAg
ICAgOiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0KSwKKyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZElt
bVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOworICAg
ICAgICB9CisKKyAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNp
dGx5KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToK
KyAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6
CisgICAgY2FzZSBBcnJheTo6VWludDhBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50OENsYW1w
ZWRBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJheToKKyAgICBjYXNlIEFycmF5OjpV
aW50MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6CisgICAgY2FzZSBBcnJh
eTo6RmxvYXQ2NEFycmF5OiB7CisgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJheU1v
ZGUudHlwZWRBcnJheVR5cGUoKTsKKyAgICAgICAgaWYgKGlzSW50KHR5cGUpKQorICAgICAgICAg
ICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShub2RlLCB0eXBlKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KG5vZGUs
IHR5cGUpOworICAgIH0gfQorfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3Ms
IERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAg
ICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewpAQCAtMzMyOCwzMTUgKzM1NDYs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQ
dXRCeVZhbERpcmVjdDoKICAgICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlh
czogewotICAgICAgICBFZGdlIGNoaWxkMSA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMCk7Ci0gICAgICAgIEVkZ2UgY2hpbGQyID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKTsKLSAgICAgICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDIpOwotICAgICAgICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMyk7Ci0gICAgICAgIAotICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9k
ZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOwotICAgICAgICBib29sIGFscmVhZHlIYW5kbGVk
ID0gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsK
LSAgICAgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKLSAgICAgICAgY2Fz
ZSBBcnJheTo6Rm9yY2VFeGl0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCks
IG5vZGUsICJCYWQgYXJyYXkgbW9kZSB0eXBlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBBcnJheTo6QmlnSW50NjRBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6QmlnVWlu
dDY0QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKLSAgICAgICAgICAgIERG
R19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8fCBu
b2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKLSAgICAgICAgICAgIGlm
IChtX2dyYXBoLm1fc2xvd1B1dEJ5VmFsLmNvbnRhaW5zKG5vZGUpIHx8IChjaGlsZDEudXNlS2lu
ZCgpICE9IENlbGxVc2UgJiYgY2hpbGQxLnVzZUtpbmQoKSAhPSBLbm93bkNlbGxVc2UpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGNoaWxkMS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAg
ICAgICAgICAgICAgICBpZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKG5vZGUs
IGNoaWxkMSwgY2hpbGQyLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFk
eUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQyLnVzZUtpbmQo
KSA9PSBTeW1ib2xVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZh
bEZvckNlbGxXaXRoU3ltYm9sKG5vZGUsIGNoaWxkMSwgY2hpbGQyLCBjaGlsZDMpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIGNoaWxkMSk7Ci0g
ICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMih0aGlzLCBjaGlsZDIpOwotICAgICAg
ICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKLSAgICAgICAgICAg
ICAgICBHUFJSZWcgYXJnMUdQUiA9IGFyZzEuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgR1BSUmVn
IGFyZzJHUFIgPSBhcmcyLmdwcigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyBhcmczR1BSID0g
YXJnMy5ncHIoKTsKLSAgICAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICAg
ICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQotICAgICAgICAgICAgICAg
ICAgICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3Qs
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczR1BSKTsK
LSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24o
bm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBv
cGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9n
cmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGFy
ZzFHUFIsIGFyZzJHUFIsIGFyZzNHUFIpOwotICAgICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7Ci0KLSAgICAgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAg
ICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
Y2hpbGQxKTsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxk
MiwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5k
IHZhbHVlKHRoaXMsIGNoaWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAg
ICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBwcm9w
ZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0g
dmFsdWUuZ3ByKCk7Ci0KLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBzdHViSW5mbzsKLSAgICAg
ICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgICAgICAgICBp
ZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAg
ICBzdHViSW5mbyA9IEdQUlRlbXBvcmFyeSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5m
b0dQUiA9IHN0dWJJbmZvLmdwcigpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzcGVj
dWxhdGUobm9kZSwgY2hpbGQyKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMp
OwotCi0gICAgICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2Vt
YW50aWM7Ci0gICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3Jk
Q2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVP
cmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJl
Z2lzdGVycyA9IHRoaXMtPnVzZWRSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJl
Y3QgPSBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUg
ZWNtYU1vZGUgPSBub2RlLT5lY21hTW9kZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdl
bmVyYXRvciBnZW4oCi0gICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6
OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dEJ5VmFsLCB1c2Vk
UmVnaXN0ZXJzLAotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVl
UmVncyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxpZEdQUlJlZywg
c3R1YkluZm9HUFIpOwotCi0gICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMiku
aXNUeXBlKFNwZWNTdHJpbmcpKQotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9w
ZXJ0eUlzU3RyaW5nID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9k
ZShjaGlsZDIpLmlzVHlwZShTcGVjSW50MzJPbmx5KSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1
YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1f
c3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlwZShTcGVjU3ltYm9sKSkKLSAgICAgICAgICAgICAg
ICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7Ci0KLSAgICAgICAgICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKLQotICAgICAgICAgICAgSklUQ29tcGlsZXI6
Okp1bXBMaXN0IHNsb3dDYXNlczsKLSAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlD
KEpJVFR5cGU6OkRGR0pJVCkpCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4u
c2xvd1BhdGhKdW1wKCkpOwotCi0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhH
ZW5lcmF0b3I+IHNsb3dQYXRoOwotICAgICAgICAgICAgYXV0byBvcGVyYXRpb24gPSBpc0RpcmVj
dCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RP
cHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpIDogKGVj
bWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3Bl
cmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSk7Ci0gICAgICAgICAgICBpZiAoSklUQ29k
ZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAgICBzbG93UGF0
aCA9IHNsb3dQYXRoSUNDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMs
IGdlbi5zdHViSW5mbygpLCBzdHViSW5mb0dQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJ
bmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBvcGVy
YXRpb24sCi0gICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJh
c2VHUFIsIHByb3BlcnR5R1BSLCB2YWx1ZUdQUiwgc3R1YkluZm9HUFIsIG51bGxwdHIpOwotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24sCi0gICAg
ICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dy
YXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VHUFIsIHByb3Bl
cnR5R1BSLCB2YWx1ZUdQUiwgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBtX2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsK
LSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKLQot
ICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9
IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChhbHJl
YWR5SGFuZGxlZCkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFNwZWN1bGF0ZUNlbGxP
cGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJP
cGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMik7Ci0gICAgICAgIAotICAgICAgICBHUFJSZWcg
YmFzZVJlZyA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3Bl
cnR5LmdwcigpOwotCi0gICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAgICAg
ICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewot
ICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24pOwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5n
cHIoKTsKLSAgICAgICAgCi0gICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2Rl
LnR5cGUoKSA9PSBBcnJheTo6SW50MzIpIHsKLSAgICAgICAgICAgICAgICBERkdfVFlQRV9DSEVD
SygKLSAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVSZWcpLCBjaGlsZDMsIFNw
ZWNJbnQzMk9ubHksCi0gICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaElmTm90SW50MzIo
dmFsdWVSZWcpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQg
c3RvcmFnZSh0aGlzLCBjaGlsZDQpOwotICAgICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBz
dG9yYWdlLmdwcigpOwotCi0gICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFs
aWFzKSB7Ci0gICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4K
LSAgICAgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAg
ICAgICAgICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgICAg
ICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0
b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBH
UFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwotICAgICAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9
IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKLQotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVS
ZWdzKCksIG51bGxwdHIsCi0gICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IGluQm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZz
ZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
c2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5
OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBz
bG93Q2FzZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKLSAgICAgICAgICAg
ICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0KLSAgICAg
ICAgICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7Ci0K
LSAgICAgICAgICAgIGJhc2UudXNlKCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eS51c2UoKTsKLSAg
ICAgICAgICAgIHZhbHVlLnVzZSgpOwotICAgICAgICAgICAgc3RvcmFnZS51c2UoKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAg
ICAgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAg
ICAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICBub2RlLT5l
Y21hTW9kZSgpLmlzU3RyaWN0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gKG5vZGUtPm9w
KCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5
Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Qg
PyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3Bl
cmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCi0gICAgICAgICAgICAg
ICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJv
cGVydHlSZWcsIHZhbHVlUmVnKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVz
dWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTog
ewotICAgICAgICAgICAgY29tcGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUsIGJhc2UsIHByb3BlcnR5
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgotICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJy
YXlTdG9yYWdlOiB7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGls
ZDMpOwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAg
ICAgCi0gICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7
Ci0gICAgICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAg
ICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAg
ICAvLyBTdG9yZSB0aGUgdmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJl
ZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyB2
YWx1ZVJlZyA9IHZhbHVlLmdwcigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQodmFs
dWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgp
KSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3Jhcnk7Ci0gICAgICAgICAgICBHUFJSZWcgdGVtcG9y
YXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUpOwot
Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotCi0gICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBiZXlvbmRBcnJheUJvdW5kcyA9IG1faml0LmJy
YW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9m
ZnNldCgpKSk7Ci0gICAgICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCi0g
ICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3Mo
KSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOwotCi0gICAgICAg
ICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50
IG1fbnVtVmFsdWVzSW5WZWN0b3IuCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3Vu
ZHMoKSkgewotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAg
ICAgICAgIFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAotICAgICAgICAgICAg
ICAgICAgICBtX2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSkpOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xl
VmFsdWUgPSBtX2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGFycmF5TW9kZS5pc1Nsb3dQdXQoKSkgewotICAgICAgICAgICAgICAgICAg
ICAvLyBUaGlzIGlzIHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIHRo
aXMgY29kZSBwYXRoLCB3ZSB3b3VsZCBpbnZlcnQKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhl
IGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9u
bHkgaGFwcGVucyBpZiB3ZSdyZQotICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhdmlu
ZyBhIGJhZCB0aW1lLgotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0
Lmp1bXAoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
bV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlUmVnLCBBcnJheVN0b3JhZ2U6Om51bVZhbHVlc0luVmVjdG9yT2Zmc2V0KCkpKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBh
IGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7IAotICAgICAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZSA9IG1faml0LmJy
YW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJl
ZywgdGVtcG9yYXJ5UmVnKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih0ZW1w
b3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFn
ZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAgICAgICAg
ICAgfQotICAgIAotICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4K
LSAgICAgICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0KLSAgICAgICAgICAgIGJhc2UudXNl
KCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eS51c2UoKTsKLSAgICAgICAgICAgIHZhbHVlLnVzZSgp
OwotICAgICAgICAgICAgc3RvcmFnZS51c2UoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aWYgKCFzbG93Q2FzZXMuZW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlz
LAotICAgICAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVy
YXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0
QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDog
KG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJl
eW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJv
dW5kc05vblN0cmljdCksCi0gICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVnKSk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVk
RXhwbGljaXRseSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6SW50
MTZBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6SW50MzJBcnJheToKLSAgICAgICAgY2FzZSBB
cnJheTo6VWludDhBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6VWludDhDbGFtcGVkQXJyYXk6
Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVpbnQxNkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpV
aW50MzJBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQzMkFycmF5OgotICAgICAgICBj
YXNlIEFycmF5OjpGbG9hdDY0QXJyYXk6IHsKLSAgICAgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5
cGUgPSBhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChpc0ludCh0
eXBlKSkKLSAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KGJh
c2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoYmFzZS5n
cHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUsIHR5cGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLQotICAgICAgICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5OgotICAgICAgICBj
YXNlIEFycmF5OjpTdHJpbmc6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoK
LSAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgotICAgICAgICBjYXNlIEFycmF5OjpHZW5l
cmljOgotICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6Ci0gICAgICAgIGNhc2Ug
QXJyYXk6OlNlbGVjdFVzaW5nQXJndW1lbnRzOgotICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RV
c2luZ1ByZWRpY3Rpb25zOgotICAgICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6Ci0gICAgICAg
IGNhc2UgQXJyYXk6OlVucHJvZmlsZWQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJy
YXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkJpZ1VpbnQ2NEFycmF5OgotICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQorICAgICAgICBjb21waWxlUHV0
QnlWYWwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442524</attachid>
            <date>2021-10-26 13:37:22 -0700</date>
            <delta_ts>2021-11-04 09:19:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211026203720.patch</filename>
            <type>text/plain</type>
            <size>102374</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ODlhZGI4ZTIzNzU1YzcxNjQwZjE1YzlhOWViMmRlYTY5NWNmMzFkLi4zM2VjY2Q2YTRkMjRhODM4
NzYwYmFlZGNjYTRhZmY1M2M1YWRkYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNjEgQEAKKzIwMjEtMTAtMjYgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVwIGZy
b20gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNoYW5nZXMgYnV0IGl0IHNob3Vs
ZCBiZSBORkM6CisKKyAgICAgICAgMS4gUmVtb3ZlZCBzZXZlcmFsIGNhbGxzIHRvIG9wZXJhdGlv
blB1dEJ5VmFsKkNlbGwqIHRoYXQgd2VyZQorICAgICAgICBvbmx5IHVzZWQgYnkgdGhlIDMyIGJp
dCBjb2RlIHBhdGhzIGR1ZSB0byB0aGUgbGFjayBvZiByZWdpc3RlcnMuCisgICAgICAgIFRoZXNl
IGNhbGxzIHdlcmUgcmVwbGFjZWQgYnkgdGhlIGNhbGxzIHVzZWQgYnkgdGhlIDY0IGJpdCBwYXRo
cywKKyAgICAgICAgdGhhdCBleHBlY3QgRW5jb2RlZEpTVmFsdWVzCisgICAgICAgIDIuIEJlY2F1
c2Ugb2YgIzEsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aG9zZSBtZXRob2RzLCBzaW5jZSBubyBvbmUK
KyAgICAgICAgdXNlcyB0aGVtIGFueW1vcmUuCisgICAgICAgIDMuIENyZWF0ZWQgY29tcGlsZVB1
dEJ5VmFsIHRvIGhhbmRsZSBhbGwgY2FzZXMgKHNpbWlsYXIgdG8gY29tcGlsZUdldEJ5VmFsKS4K
KyAgICAgICAgNC4gUmVtb3ZlZCB0aGUgRWRnZSYgY2hpbGRYIGZyb20gdGhlIFB1dEJ5VmFsIGhh
bmRsaW5nIChhbmQgYWxsIG1ldGhvZHMKKyAgICAgICAgdGhhdCBleHBlY3RlZCB0aGVtKSBpbiBm
YXZvciBvZiBnZXR0aW5nIHRoZW0gZnJvbSBub2RlIHdoZW4gbmVlZGVkLgorICAgICAgICA1LiBV
bmlmaWVkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwgc28gaXQgY291bGQgYmUgdXNlZCBieSBi
b3RoIDMyCisgICAgICAgIGFuZCA2NCBiaXQgYXJjaHMuCisgICAgICAgIDYuIFJlbW92ZWQgYSBs
b3Qgb2Ygd2hpdGVzcGFjZS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRG91YmxlUHV0QnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0Q2hhckNvZGVBdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZyb21DaGFyQ29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVk
VHlwZUZvclRvSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlVmFsdWVUb0ludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVVJbnQzMlRvTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURvdWJsZUFzSW50MzIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUmVwKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
UmVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpjbGFtcERvdWJsZVRvQnl0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUNsYW1wSW50ZWdlclRvQnl0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Y29tcGlsZUNsYW1wRG91YmxlVG9CeXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6anVtcEZvclR5cGVkQXJy
YXlPdXRPZkJvdW5kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRUeXBlZEFycmF5Qm91bmRzQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91
bmRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6bG9hZEZy
b21JbnRUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c2V0SW50VHlwZWRBcnJheUxvYWRSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpnZXRJbnRUeXBlZEFy
cmF5U3RvcmVPcGVyYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Z2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZEZvckF0b21pY3MpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRU
eXBlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcml2YXRl
TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRQcml2YXRlTmFtZUJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxXaXRoVGhpcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRlTmFtZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2
YXRlTmFtZUJ5SWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQ2hlY2tQcml2YXRlQnJhbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UHJpdmF0ZUJyYW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQYXJz
ZUludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVPdmVycmlkZXNIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yQ2VsbHMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdE5vdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCaXR3
aXNlTm90KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1p
dFVudHlwZWRPckFueUJpZ0ludEJpdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0d2lzZU9wKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJpdHdpc2VPcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRVbnR5cGVkT3JCaWdJbnRSaWdo
dFNoaWZ0Qml0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlVmFsdWVMU2hpZnRPcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdFJTaGlmdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTaGlmdE9wKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlU3ViKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGhJQyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUlzQ2VsbFdpdGhUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzVHlwZWRBcnJheVZpZXcpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9PYmplY3RPckNhbGxPYmplY3RD
b25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aEFicyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFN1Yik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbmNPckRl
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVW
YWx1ZU5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZURpdik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEZSb3VuZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU1v
ZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
cml0aE1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBcml0aFJvdW5kaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUFyaXRoVW5hcnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhTcXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWluTWF4KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpjb21waWxlQXJpdGhQb3dJbnRlZ2VyRmFzdFBhdGgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVQb3cpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhQ
b3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21wYXJl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNv
bXBhcmVVbnNpZ25lZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVTdHJpY3RFcSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVCb29sZWFuQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnQzMkNvbXBhcmUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlQ29tcGFyZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RF
cXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVTeW1ib2xFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZVN5bWJvbEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJpdHdpc2VKU1ZhbHVlRXF1YWxpdHkp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNo
T25CaXR3aXNlSlNWYWx1ZUVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vdERvdWJsZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50
Tm9yU3RyaW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVOb3REb3VibGVOZWl0aGVyRG91YmxlTm9ySGVh
cEJpZ0ludE5vclN0cmluZ1N0cmljdEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0VxdWFsaXR5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1RvVW50eXBlZEVx
dWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVN0cmluZ0lkZW50RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRUb05vdFN0cmluZ1ZhckVxdWFsaXR5KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmlu
Z0NvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlU3RyaW5nSWRlbnRDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNhbWVWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0Jvb2xlYW5TdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9Cb29sZWFuU3RyaW5n
T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVt
aXRTdHJpbmdCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjplbWl0U3RyaW5nT3JPdGhlckJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb25zdGFudFN0b3JhZ2VQb2ludGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FnZVR5cGVkQXJyYXlTdG9y
YWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRp
cmVjdEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFNjb3BlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNraXBTY29wZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRHbG9iYWxP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0R2xvYmFsVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNhbkJlUm9wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uQ29tbW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVNldEZ1bmN0aW9uTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVWYXJhcmdzTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZvcndhcmRWYXJhcmdzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFjdGl2
YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ3JlYXRlRGlyZWN0QXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEZyb21Bcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0VG9Bcmd1bWVudHMpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QXJndW1l
bnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q3JlYXRlU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUNsb25lZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVBcmd1bWVudHNCdXR0
ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ3JlYXRlUmVzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVTcHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlTmV3QXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU3ByZWFkKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFJlc3RMZW5ndGgpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0UG9wdWxhdGVTbGlj
ZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUFycmF5U2xpY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJyYXlJbmRleE9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5UHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb3RpZnlXcml0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc09iamVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUeXBlT2ZJc09iamVj
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJ
c0NhbGxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUlzQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cnVjdHVyZUNoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSXNDb25zdGFudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja05vdEVtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2Up
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVr
ZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OmFsbG9jYXRlVGVtcG9yYXJ5UmVnaXN0ZXJzRm9yU25pcHBldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET01H
ZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2hlY2tKU0Nhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3Ry
dWN0b3JPclN0cmluZ1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OmdldEV4
ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTnVt
YmVyVG9TdHJpbmdXaXRoUmFkaXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTmV3U3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N5bWJvbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5V2l0aFNp
emUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0TmV3
VHlwZWRBcnJheVdpdGhTaXplSW5SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdSZWdleHApOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsVHlwZVdpdGhvdXRUeXBlRmls
dGVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlQ2VsbFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlYWxOdW1iZXIpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEb3VibGVSZXBSZWFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlQm9vbGVhbik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNl
bGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVDZWxsT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRmluYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVSZWdFeHBPYmplY3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVBcnJheSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVBy
b3h5T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlRGVyaXZlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJvbWlzZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNYXBPYmplY3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTZXRP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVXZWFrTWFwT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGFWaWV3T2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVN0cmluZ09yT3RoZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVudEFuZExvYWRTdG9yYWdlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3RyaW5nSWRlbnQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
dHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1Zhcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN5bWJvbCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJv
bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZUhlYXBCaWdJbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVOb3RDZWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdERvdWJsZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5laXRoZXJEb3VibGVO
b3JIZWFwQmlnSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVPdGhlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2Mp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNo
SW50SnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVt
aXRTd2l0Y2hJbW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjplbWl0U3dpdGNoQ2hhclN0cmluZ0p1bXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHJpbmdSZWN1cnNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmlu
Z09uU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
ZW1pdFN3aXRjaFN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRTd2l0Y2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjphZGRCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpsaW5rQnJhbmNoZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlU3RvcmVCYXJyaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJC
eUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVJlc29sdmVTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdsb2JhbFZh
cmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldER5bmFtaWNWYXIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0RHluYW1pY1Zhcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRDbG9zdXJlVmFyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dENs
b3N1cmVWYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0SW50ZXJuYWxGaWVsZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRJbnRlcm5hbEZpZWxkKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVnRXhw
T2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5n
UmVwbGFjZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwTWF0Y2hGYXN0R2xvYmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cE1h
dGNoRmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVMYXp5SlNDb25zdGFudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWNvcmRSZWdFeHBDYWNoZWRSZXN1
bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RGVmaW5lRGF0YVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZURlZmluZUFjY2Vzc29yUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVCdXR0ZXJmbHkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTm9ybWFsaXpl
TWFwS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldE1hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVja2V0TmV4dCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkS2V5RnJvbU1hcEJ1Y2tldCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkVmFs
dWVGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51
bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvck5leHRFeHRyYWN0SW5kZXgpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVy
YXRvck5leHRFeHRyYWN0TW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9y
SGFzUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRW51bWVyYXRvckluQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckhhc093blByb3BlcnR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVz
aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQ
dXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dEJ5SWREaXJlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlJZFdpdGhUaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5T2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hdGNoU3RydWN0
dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldFByb3BlcnR5RW51bWVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRFeGVjdXRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdldHRlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRTZXR0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0Q2FsbGVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldENh
bGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhp
cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVT
dHJDYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTmV3QXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvVGhpcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RLZXlzT3JP
YmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEFzc2lnbik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RDcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlVGhpcyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVQ
cm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFzeW5jR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdHZW5lcmF0b3IpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXN5bmNHZW5lcmF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
TmV3SW50ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1ByaW1pdGl2ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1Byb3BlcnR5S2V5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJpYyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsTnVtYmVy
Q29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5UYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldEFkZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXBT
ZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
V2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJvdG90eXBlT2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSWRlbnRpdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWlzY1N0cmljdEVxKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEluaXRpYWxp
emVCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQWxsb2NhdGVOZXdBcnJheVdpdGhTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFeHRyYWN0Q2F0
Y2hMb2NhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDbGVhckNhdGNoTG9jYWxzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVByb2ZpbGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhvbGVDb21wYXJl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY0pT
VmFsdWVQZWVwaG9sZUJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVIZWFwQmlnSW50RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFrZVJvcGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckdldEJ5VmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQ29udGlndW91c1B1dEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRCeVZhbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUpOgorCiAyMDIxLTEwLTI2ICBYYW4gTMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0pTQ10gSW1wcm92ZSBvZmZsaW5lYXNtIGRlYnVnIGFubm90YXRpb25zIGZvciBMaW51eC9F
TEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDEz
N2FiNTUxOTE0ZWQzNmUzN2VlMWVmNDY4MmRiYTI0NmEyYTBlOTguLjNlODI5NjAzZmQwZDg2ODNl
OWQ5YTc1NWZjOGM3YjM2M2JhODZkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcApAQCAtODIwLDI0ICs4MjAsNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYgogICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9iYWxPYmplY3QsIHZt
LCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCi17Ci0gICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0QnlWYWxJbnRlcm5h
bDx0cnVlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBl
bmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsKLSAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKLSAgICAKLSAgICBwdXRCeVZhbEludGVybmFsPGZhbHNlLCBmYWxz
ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVy
dHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTk5Niwy
NCArOTc4LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QKICAgICBwdXRCeVZhbEludGVybmFs
PGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3Bl
cnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKLSAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0QnlWYWxJbnRlcm5hbDx0cnVlLCB0cnVlPihnbG9iYWxP
YmplY3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2Rl
ZFZhbHVlKTsKLX0KLQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFs
RGlyZWN0Q2VsbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
LSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIHRydWU+KGdsb2JhbE9iamVjdCwg
dm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUp
OwotfQotCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RD
ZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBjZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGMyMmFiYTc3MGZjOTljYzY0YmM1YjllN2Q4ZDhk
MWI1YmUyNThiMjMuLjJjMzdmZDA5NTMyZmIzOTk3YWU0ZDdkYjRkODBhYWE0ZTYxZTgwYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBAIC0xNDUsOCArMTQ1
LDYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTZXRJdGVyYXRvciwg
SlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbENlbGxTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5v
blN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN0cmluZ05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xTdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKTsKQEAgLTE1NSw4ICsxNTMsNiBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQs
IChKU0dsbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVj
dENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpT
Q2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGEzYjg1NGQxOWQyMzdmZTE3MDQzMzM3ZjhjMDMzMmQ5
MmZlMGEzMWYuLmU4NzMxZWQ3NDQwYTAzZjYxNDM2ODJkMGE0Y2I2M2MyMzljYTUyMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0y
NDgxLDI4ICsyNDgxLDExMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUcmFw
cyhOb2RlKiBub2RlKQogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwoTm9kZSogbm9kZSwgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQmIGJhc2UsIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCYgcHJvcGVydHkpCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKE5vZGUqIG5vZGUpCiB7Ci0g
ICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAg
IEVkZ2UgY2hpbGQ0ID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAzKTsKKyAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQo
bm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOwogCi0gICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFy
cmF5TW9kZSgpOwotICAgIAogICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICBH
UFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAKLSAgICBTcGVjdWxhdGVE
b3VibGVPcGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxkMyk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkK
KyAgICBHUFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdHUFIoKTsKKyAgICBHUFJSZWcgdmFs
dWVQYXlsb2FkUmVnID0gdmFsdWUucGF5bG9hZEdQUigpOworI2Vsc2UKKyAgICBHUFJSZWcgdmFs
dWVSZWcgPSB2YWx1ZS5ncHIoKTsKKyNlbmRpZgorCisgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQor
ICAgICAgICByZXR1cm47CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworICAgIEdQUlJlZyBzdG9yYWdlUmVnID0g
c3RvcmFnZS5ncHIoKTsKKworICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsK
KyAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAgR1BSUmVn
IHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9C
SkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7CisgICAgICAgIG1faml0LnN0
b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VS
ZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNF
VE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7CisjZWxzZQorICAgICAgICBtX2ppdC5z
dG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOworI2VuZGlmCisgICAgICAg
IG5vUmVzdWx0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgR1BSVGVtcG9y
YXJ5IHRlbXBvcmFyeTsKKyAgICBHUFJSZWcgdGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0
ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUpOworCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgc2xvd0Nhc2U7CisKKyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2Rl
KCk7CisgICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkpIHsKKyAgICAgICAgc3BlY3VsYXRp
b25DaGVjaygKKyAgICAgICAgICAgIE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRy
LAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVh
bCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRl
cmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1i
bGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VS
ZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOworCisgICAgICAgIHNsb3dD
YXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zm
c2V0T2ZWZWN0b3JMZW5ndGgoKSkpOworCisgICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZC
b3VuZHMoKSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFs
dWVSZWdzKCksIG51bGxwdHIsIHNsb3dDYXNlKTsKKworICAgICAgICBtX2ppdC5hZGQzMihUcnVz
dGVkSW1tMzIoMSksIHByb3BlcnR5UmVnLCB0ZW1wb3JhcnlSZWcpOworICAgICAgICBtX2ppdC5z
dG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywg
QnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7CisKKyAgICAgICAgaW5Cb3VuZHMu
bGluaygmbV9qaXQpOworICAgIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgbV9qaXQu
c3RvcmUzMih2YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVn
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZTRVRP
RihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7CisgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxv
YWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMucGF5bG9hZCkpKTsKKyNlbHNlCisgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3Nl
bWJsZXI6OlRpbWVzRWlnaHQpKTsKKyNlbmRpZgorCisgICAgYmFzZS51c2UoKTsKKyAgICBwcm9w
ZXJ0eS51c2UoKTsKKyAgICB2YWx1ZS51c2UoKTsKKyAgICBzdG9yYWdlLnVzZSgpOworCisgICAg
aWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5l
cmF0b3Ioc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgc2xvd0Nhc2UsIHRoaXMsCisgICAgICAg
ICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKKyAgICAgICAgICAgICAgICA/IChub2Rl
LT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRB
cnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJp
Y3QpCisgICAgICAgICAgICAgICAgOiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QgOiBvcGVyYXRp
b25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KSwKKyAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIAor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBKU1ZhbHVlUmVncyh2YWx1ZVRhZ1Jl
ZywgdmFsdWVQYXlsb2FkUmVnKSkpOworI2Vsc2UKKyAgICAgICAgICAgIHZhbHVlUmVnKSk7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwo
Tm9kZSogbm9kZSkKK3sKKyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2Rl
KCk7CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBw
cm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBT
cGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMikpOworCisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQ
UlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEZQUlJlZyB2YWx1ZVJlZyA9
IHZhbHVlLmZwcigpOwotICAgIAorCiAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgIEpTVmFs
dWVSZWdzKCksIGNoaWxkMywgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICBKU1ZhbHVlUmVn
cygpLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBTcGVjRnVsbFJlYWxOdW1i
ZXIsCiAgICAgICAgIG1faml0LmJyYW5jaElmTmFOKHZhbHVlUmVnKSk7Ci0gICAgCisKICAgICBp
ZiAoIW1fY29tcGlsZU9rYXkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBTdG9yYWdlT3Bl
cmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdl
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOwogICAgIEdQUlJlZyBz
dG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKIAogICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5
VmFsQWxpYXMpIHsKQEAgLTI1MTAsNDEgKzI1OTUsNDEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBi
YXMKICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAgICAgICAg
IEZQUlJlZyB2YWx1ZVJlZyA9IHZhbHVlLmZwcigpOwogICAgICAgICBtX2ppdC5zdG9yZURvdWJs
ZSh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKLSAgICAgICAgCisKICAgICAgICAg
bm9SZXN1bHQobV9jdXJyZW50Tm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisK
ICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwogICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcgPSB0
ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CiAKICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZTsKLSAgICAKKwogICAgIGlmIChhcnJheU1vZGUuaXNJ
bkJvdW5kcygpKSB7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgICAgICBPdXRP
ZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKICAgICAgICAgICAgIG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3Ro
KCkpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3Vu
ZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKTsKLSAgICAgICAgCisKICAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFu
Y2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0
aCgpKSk7Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMo
KSkKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdz
KCksIG51bGxwdHIsIHNsb3dDYXNlKTsKLSAgICAgICAgCisKICAgICAgICAgbV9qaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKICAgICAgICAgbV9q
aXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VS
ZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwogCiAgICAgICAgIGluQm91
bmRzLmxpbmsoJm1faml0KTsKICAgICB9Ci0gICAgCisKICAgICBtX2ppdC5zdG9yZURvdWJsZSh2
YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKIAogICAgIGJhc2UudXNlKCk7CiAgICAg
cHJvcGVydHkudXNlKCk7CiAgICAgdmFsdWUudXNlKCk7CiAgICAgc3RvcmFnZS51c2UoKTsKLSAg
ICAKKwogICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKSB7CiAgICAgICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKAogICAgICAgICAgICAgc2xvd1BhdGhDYWxsKApAQCAtMzU2NywxNiAr
MzY1MiwxOSBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpnZXRJbnRUeXBlZEFycmF5U3RvcmVPcGVy
YW5kRm9yQXRvbWljcygKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcg
cHJvcGVydHksIE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCit2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVk
QXJyYXlUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKGlzSW50KHR5cGUpKTsKLSAgICAKKworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogICAgIFN0b3JhZ2VPcGVy
YW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAzKSk7CisK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9
IHN0b3JhZ2UuZ3ByKCk7Ci0gICAgCi0gICAgRWRnZSB2YWx1ZVVzZSA9IG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMik7Ci0gICAgCisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdw
cigpOworICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworCiAgICAgR1BS
VGVtcG9yYXJ5IHZhbHVlOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgR1BSVGVtcG9yYXJ5
IHByb3BlcnR5VGFnOwpAQCAtMzU4NCwxMyArMzY3MiwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJv
cGVydAogI2VuZGlmCiAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd1BhdGhDYXNlczsK
LSAgICAKKwogICAgIGJvb2wgcmVzdWx0ID0gZ2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZCgK
LSAgICAgICAgdmFsdWUsIHByb3BlcnR5LAorICAgICAgICB2YWx1ZSwgcHJvcGVydHlSZWcsCiAj
aWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgcHJvcGVydHlUYWcsIHZhbHVlVGFnLAogI2Vu
ZGlmCi0gICAgICAgIHZhbHVlVXNlLCBzbG93UGF0aENhc2VzLCBpc0NsYW1wZWQodHlwZSkpOwor
ICAgICAgICBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBzbG93UGF0aENhc2Vz
LCBpc0NsYW1wZWQodHlwZSkpOwogICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIG5vUmVzdWx0
KG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC0zNjAyLDU3ICszNjkwLDQyIEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2Us
IEdQUlJlZyBwcm9wZXJ0CiAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0gdmFsdWVUYWcuZ3ByKCk7
CiAjZW5kaWYKIAotICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZhbHVlR1BSICE9IHByb3Bl
cnR5KTsKLSAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZSk7CisgICAgQVNTRVJUX1VOVVNFRCh2
YWx1ZUdQUiwgdmFsdWVHUFIgIT0gcHJvcGVydHlSZWcpOworICAgIEFTU0VSVCh2YWx1ZUdQUiAh
PSBiYXNlUmVnKTsKICAgICBBU1NFUlQodmFsdWVHUFIgIT0gc3RvcmFnZVJlZyk7Ci0gICAgSklU
Q29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KG5vZGUsIGJhc2UsIHByb3BlcnR5LCBzY3JhdGNoLmdwcigpKTsKKyAgICBKSVRDb21waWxlcjo6
SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFz
ZVJlZywgcHJvcGVydHlSZWcsIHNjcmF0Y2guZ3ByKCkpOwogCiAgICAgc3dpdGNoIChlbGVtZW50
U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgMToKLSAgICAgICAgbV9qaXQuc3RvcmU4KHZhbHVlLmdw
cigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNPbmUpKTsKKyAgICAgICAgbV9qaXQuc3RvcmU4KHZhbHVlLmdwcigp
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNPbmUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAyOgotICAg
ICAgICBtX2ppdC5zdG9yZTE2KHZhbHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNUd28pKTsKKyAgICAg
ICAgbV9qaXQuc3RvcmUxNih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzVHdvKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgNDoKLSAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5ncHIo
KSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9B
c3NlbWJsZXI6OlRpbWVzRm91cikpOworICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlLmdwcigp
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIENSQVNIKCk7CiAgICAgfQogCi0gICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IGp1
bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgb3V0T2ZC
b3VuZHMpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlz
RGV0YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIG91dE9mQm91bmRzKTsKICAgICBp
ZiAoZG9uZS5pc1NldCgpKQogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKIAogICAgIGlmICgh
c2xvd1BhdGhDYXNlcy5lbXB0eSgpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNs
b3dQYXRoQ2FsbCgKKyAgICAgICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRoaXMsCisgICAgICAgICAg
ICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKKyAgICAgICAgICAgICAgICA/IChub2RlLT5v
cCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBv
cGVyYXRpb25QdXRCeVZhbFN0cmljdCkKKyAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QgOiBvcGVy
YXRpb25QdXRCeVZhbE5vblN0cmljdCksCiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYg
KG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0
aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJp
Y3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVy
KG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykp
LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWVHUFIpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBz
bG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25T
dHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWVHUFIpKTsKLSAgICAgICAgfQorICAgICAgICAgICAg
Tm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJl
ZywgdmFsdWVHUFIpKTsKICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQotICAgICAgICBpZiAo
bm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAgYWRkU2xvd1BhdGhH
ZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRo
aXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxs
Tm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2Vt
YW50aWMpKSwgYmFzZSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3BlcnR5KSwgSlNW
YWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAg
ICAgIHNsb3dQYXRoQ2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUo
KS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0IDogb3BlcmF0aW9uUHV0
QnlWYWxDZWxsTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3Bl
cnR5KSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwotICAgICAgICB9Cisg
ICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIENDYWxsSGVs
cGVyczo6Q2VsbFZhbHVlKGJhc2VSZWcpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eVRhZ0dQUiwgcHJv
cGVydHlSZWcpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVHUFIpKSk7CiAjZW5kaWYK
ICAgICB9Ci0gICAgCisKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIApAQCAtMzY5OSwzOSArMzc3
Miw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRB
cnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZQogICAgIH0KIH0KIAotdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBH
UFJSZWcgcHJvcGVydHksIE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCit2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9k
ZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkKIHsKICAgICBBU1NFUlQoaXNGbG9hdCh0eXBlKSk7Ci0g
ICAgCisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBw
cm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBT
cGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlT3AodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAyKSk7CiAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKLSAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0
b3JhZ2UuZ3ByKCk7Ci0gICAgCi0gICAgRWRnZSB2YWx1ZVVzZSA9IG1faml0LmdyYXBoKCkudmFy
QXJnQ2hpbGQobm9kZSwgMik7CiAKLSAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlT3Ao
dGhpcywgdmFsdWVVc2UpOwogICAgIEZQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgIEdQ
UlRlbXBvcmFyeSBncFNjcmF0Y2godGhpcyk7CiAgICAgRlBSUmVnIHZhbHVlRlBSID0gdmFsdWVP
cC5mcHIoKTsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNjcmF0Y2guZnByKCk7CisgICAgR1BS
UmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3Bl
cnR5LmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gZ3BTY3JhdGNoLmdwcigpOworICAg
IEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKIAotICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBi
YXNlLCBwcm9wZXJ0eSwgc2NyYXRjaEdQUik7Ci0gICAgCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2VS
ZWcsIHByb3BlcnR5UmVnLCBzY3JhdGNoR1BSKTsKICAgICBzd2l0Y2ggKGVsZW1lbnRTaXplKHR5
cGUpKSB7CiAgICAgY2FzZSA0OiB7CiAgICAgICAgIG1faml0Lm1vdmVEb3VibGUodmFsdWVGUFIs
IHNjcmF0Y2hGUFIpOwogICAgICAgICBtX2ppdC5jb252ZXJ0RG91YmxlVG9GbG9hdCh2YWx1ZUZQ
Uiwgc2NyYXRjaEZQUik7Ci0gICAgICAgIG1faml0LnN0b3JlRmxvYXQoc2NyYXRjaEZQUiwgTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRm91cikpOworICAgICAgICBtX2ppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0ZvdXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgODoK
LSAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVGUFIsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7
CisgICAgICAgIG1faml0LnN0b3JlRG91YmxlKHZhbHVlRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdo
dCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBq
dW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2UsIG91dE9m
Qm91bmRzKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJ
c0RldGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBiYXNlUmVnLCBvdXRPZkJvdW5kcyk7CiAgICAg
aWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgbm9SZXN1
bHQobm9kZSk7CkBAIC0zOTE5LDE3ICszOTkzLDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqIG5vZGUs
IEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMpCit2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiBub2RlKQogewot
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgY2hpbGQxKTsKLSAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBhcmcyKHRoaXMsIGNoaWxkMik7Ci0gICAgSlNWYWx1ZU9wZXJhbmQgYXJn
Myh0aGlzLCBjaGlsZDMpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgbV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYXJnMih0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBK
U1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MikpOwogCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBhcmcy
R1BSID0gYXJnMi5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyBhcmczUmVncyA9IGFyZzMuanNWYWx1
ZVJlZ3MoKTsKIAotICAgIHNwZWN1bGF0ZVN0cmluZyhjaGlsZDIsIGFyZzJHUFIpOworICAgIHNw
ZWN1bGF0ZVN0cmluZyhtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBhcmcyR1BS
KTsKIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbigKQEAgLTM5NDIs
MTcgKzQwMTYsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2Vs
bFdpdGhTdHJpbmcoTm9kZSogbm9kZSwgRWRnZSYgY2hpbGQxLAogICAgIG5vUmVzdWx0KG5vZGUp
OwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5
bWJvbChOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxkMiwgRWRnZSYgY2hpbGQz
KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wo
Tm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcxKHRoaXMsIGNoaWxk
MSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBjaGlsZDIpOwotICAgIEpT
VmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBhcmcxKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAogICAgIEdQUlJlZyBhcmcxR1BSID0gYXJnMS5ncHIoKTsK
ICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgYXJnM1Jl
Z3MgPSBhcmczLmpzVmFsdWVSZWdzKCk7CiAKLSAgICBzcGVjdWxhdGVTeW1ib2woY2hpbGQyLCBh
cmcyR1BSKTsKKyAgICBzcGVjdWxhdGVTeW1ib2wobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSwgYXJnMkdQUik7CiAKICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgIGNhbGxPcGVy
YXRpb24oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggYzE4M2UxODMzZDU2OWJjMTc1NTVlOGY3NzgwMTBmMmRlMTVjNDViZC4uMGI4NzFjMTcy
NGFmYWMxNDkxZGZjYjY1OTY2MzkwMWM1MTc5Y2UyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTM0MiwxMSArMTM0Miw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNvbXBpbGVHZXRQcm90b3R5cGVPZihOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlSWRlbnRpdHkoTm9kZSopOwogICAgIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0eU9wZXJhbmRU
eXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBUYWdUeXBlPgotICAgIHZv
aWQgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKiwgQmFzZU9wZXJhbmRUeXBlJiwgUHJv
cGVydHlPcGVyYW5kVHlwZSYsIFZhbHVlT3BlcmFuZFR5cGUmLCBHUFJSZWcgdmFsdWVQYXlsb2Fk
UmVnLCBUYWdUeXBlIHZhbHVlVGFnKTsKLSNlbmRpZgotICAgIHZvaWQgY29tcGlsZURvdWJsZVB1
dEJ5VmFsKE5vZGUqLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYgYmFzZSwgU3BlY3VsYXRlU3RyaWN0
SW50MzJPcGVyYW5kJiBwcm9wZXJ0eSk7CisgICAgdm9pZCBjb21waWxlQ29udGlndW91c1B1dEJ5
VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKik7CiAgICAg
Ym9vbCBwdXRCeVZhbFdpbGxOZWVkRXh0cmFSZWdpc3RlcihBcnJheU1vZGUgYXJyYXlNb2RlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFycmF5TW9kZS5tYXlTdG9yZVRvSG9sZSgpOwpAQCAtMTM1
Nyw2ICsxMzU0LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdGVtcG9yYXJ5UmVnaXN0ZXJG
b3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUtPmFycmF5TW9kZSgpKTsKICAgICB9CiAgICAgCisg
ICAgdm9pZCBjb21waWxlUHV0QnlWYWwoTm9kZSopOworCiAgICAgLy8gV2UgdXNlIGEgc2NvcGVk
TGFtYmRhIHRvIHBsYWNhdGUgcmVnaXN0ZXIgYWxsb2NhdGlvbiB2YWxpZGF0aW9uLgogICAgIGVu
dW0gY2xhc3MgQ2FuVXNlRmx1c2ggeyBZZXMsIE5vIH07CiAgICAgdm9pZCBjb21waWxlR2V0QnlW
YWwoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRh
Rm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4
KTsKQEAgLTE0NDcsMTQgKzE0NDYsMTQgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUdldFR5
cGVkQXJyYXlCeXRlT2Zmc2V0QXNJbnQ1MihOb2RlKik7CiAjZW5kaWYKICAgICB2b2lkIGNvbXBp
bGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUsIGNvbnN0IFNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVz
aD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKLSAgICB2b2lkIGNvbXBp
bGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0eSwg
Tm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uRmxvYXRU
eXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHBy
ZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yRmxv
YXRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqLCBUeXBlZEFy
cmF5VHlwZSk7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5v
ZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAg
ICAgdm9pZCBjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqLCBjb25zdCBT
Y29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1
c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21w
aWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBj
aGlsZDIsIEVkZ2UmIGNoaWxkMyk7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0
aFN5bWJvbChOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7
CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoVGhpcyhOb2RlKik7CisgICAgdm9pZCBjb21w
aWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0
QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QnlWYWxG
b3JGbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKKyAgICB2b2lkIGNvbXBp
bGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKICAgICB2
b2lkIGNvbXBpbGVQdXRQcml2YXRlTmFtZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlUHV0UHJp
dmF0ZU5hbWVCeUlkKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja1ByaXZhdGVCcmFuZChO
b2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAppbmRleCAxODg2Njk4MmI1NjYyOGYyYjFhZWQ0Yjk1MGQ4MmMxNWVhNDM1
M2FmLi42NWQ2ZjA4NjQ3ZTUxY2U2MTFkOWE4YzFmMjNlZGJlNjE3ZDhjZGM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
QEAgLTE3NDYsNzMgKzE3NDYsMjA4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2go
Tm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEJhc2VPcGVyYW5kVHlw
ZSwgdHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVmFsdWVPcGVyYW5kVHlw
ZSwgdHlwZW5hbWUgVGFnVHlwZT4KLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1
b3VzUHV0QnlWYWwoTm9kZSogbm9kZSwgQmFzZU9wZXJhbmRUeXBlJiBiYXNlLCBQcm9wZXJ0eU9w
ZXJhbmRUeXBlJiBwcm9wZXJ0eSwgVmFsdWVPcGVyYW5kVHlwZSYgdmFsdWUsIEdQUlJlZyB2YWx1
ZVBheWxvYWRSZWcsIFRhZ1R5cGUgdmFsdWVUYWcpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKIHsKLSAgICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7CisgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUt
PmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKTsKKyAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkp
IHsKKyAgICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZvcmNl
RXhpdDoKKyAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ0FyZ3VtZW50czoKKyAgICBjYXNlIEFy
cmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25zOgorICAgIGNhc2UgQXJyYXk6OlVucHJvZmlsZWQ6
CisgICAgY2FzZSBBcnJheTo6QmlnSW50NjRBcnJheToKKyAgICBjYXNlIEFycmF5OjpCaWdVaW50
NjRBcnJheToKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6CisgICAgY2FzZSBBcnJheTo6RGlyZWN0
QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFyZ3VtZW50czoKKyAgICBjYXNlIEFy
cmF5OjpVbmRlY2lkZWQ6CisgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2RlLCAi
QmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFycmF5OjpH
ZW5lcmljOiB7CisgICAgICAgIERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+
b3AoKSA9PSBQdXRCeVZhbCB8fCBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0LCBub2RlLT5v
cCgpKTsKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9zbG93UHV0QnlWYWwuY29udGFpbnMobm9kZSkp
IHsKKyAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVz
ZUtpbmQoKSA9PSBDZWxsVXNlKSB7CisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAg
ICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhub2RlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogCi0gICAgQXJyYXlNb2Rl
IGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwotICAgIAotICAgIEdQUlJlZyBiYXNlUmVn
ID0gYmFzZS5ncHIoKTsKLSAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsK
LSAgICAKLSAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAgR1BS
UmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOworICAgICAgICAgICAgICAgIGlmIChtX2pp
dC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsK
KyAgICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9k
ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5k
IHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAyKSk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2Uu
anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9IHBy
b3BlcnR5LmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3Mg
PSB2YWx1ZS5qc1ZhbHVlUmVncygpOworCisgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwor
ICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpCisgICAgICAgICAg
ICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRp
b25QdXRCeVZhbERpcmVjdFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0
LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZ3MsICBwcm9wZXJ0eVJlZ3MsIHZh
bHVlUmVncyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlv
bihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6
IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlciht
X2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwg
YmFzZVJlZ3MsICBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CisgICAgICAgICAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworCisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24pOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFw
aCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAg
ICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDIpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlUmVn
cyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcHJv
cGVydHlSZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3Mg
dmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKworICAgICAgICBzcGVjdWxhdGUobm9k
ZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgICAgIHNwZWN1bGF0
ZShub2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICAgICAgc3Bl
Y3VsYXRlKG5vZGUsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOworCisgICAg
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKKyAgICAg
ICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJh
dGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+
c2l6ZSgpKTsKKyAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVzZWRS
ZWdpc3RlcnMoKTsKKyAgICAgICAgYm9vbCBpc0RpcmVjdCA9IG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWxEaXJlY3Q7CisgICAgICAgIEVDTUFNb2RlIGVjbWFNb2RlID0gbm9kZS0+ZWNtYU1vZGUoKTsK
KworICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvciBnZW4oCisgICAgICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNz
VHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCisgICAgICAgICAgICBiYXNlUmVncywgcHJv
cGVydHlSZWdzLCB2YWx1ZVJlZ3MsIEludmFsaWRHUFJSZWcsIEludmFsaWRHUFJSZWcpOworCisg
ICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnBy
b3BlcnR5SXNTdHJpbmcgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUo
bV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNJbnQzMk9ubHkp
KQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Cisg
ICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N5bWJvbCkpCisgICAgICAgICAgICBnZW4uc3R1YkluZm8o
KS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7CisKKyAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgobV9qaXQpOworCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Cisg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKKworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoOworICAgICAgICBhdXRv
IG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxOb25T
dHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFs
U3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdE9wdGltaXplKTsKKyAg
ICAgICAgc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCisgICAgICAgICAgICBzbG93Q2FzZXMsIHRo
aXMsIG9wZXJhdGlvbiwKKyAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFr
UG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJh
c2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIp
OworCisgICAgICAgIG1faml0LmFkZFB1dEJ5VmFsKGdlbiwgc2xvd1BhdGguZ2V0KCkpOworICAg
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7CiAKLSAgICBpZiAo
bm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0gICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1
ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5Lmdw
cigpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlVGFnLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdo
dCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgbV9q
aXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3Rv
cmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAgICAgICAgCiAgICAgICAg
IG5vUmVzdWx0KG5vZGUpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFrOwogICAgIH0K
LSAgICAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZTsKKyAgICBjYXNlIEFycmF5
OjpJbnQzMjogeworICAgICAgICBzcGVjdWxhdGVJbnQzMihtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDIpKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgfQorICAgIGNhc2UgQXJy
YXk6OkNvbnRpZ3VvdXM6IHsKKyAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogeworICAg
ICAgICBjb21waWxlRG91YmxlUHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CisgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFy
cmF5U3RvcmFnZTogeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBTcGVjdWxhdGVTdHJp
Y3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOworICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdl
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOwogCi0gICAgaWYgKGFy
cmF5TW9kZS5pc0luQm91bmRzKCkpIHsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAg
ICAgICAgIE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgbV9qaXQu
YnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNM
ZW5ndGgoKSkpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBp
bkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0
T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICAKLSAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5i
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxl
bmd0aCgpKSk7Ci0gICAgICAgIAorICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7
CisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworICAgICAgICBH
UFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdHUFIoKTsKKyAgICAgICAgR1BSUmVnIHZhbHVl
UGF5bG9hZFJlZyA9IHZhbHVlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgR1BSUmVnIHN0b3JhZ2VS
ZWcgPSBzdG9yYWdlLmdwcigpOworCisgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFs
QWxpYXMpIHsKKyAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCisg
ICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKKyAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIodmFsdWUudGFnR1BSKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBB
cnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUu
YXNCaXRzLnRhZykpKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUucGF5bG9hZEdQ
UigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSAr
IE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOworCisgICAgICAg
ICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg
ICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKKyAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJl
ZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKICAg
ICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwgc2xvd0Nhc2UpOwotICAg
ICAgICAKLSAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7
Ci0gICAgICAgIG1faml0LnN0b3JlMzIocHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAg
ICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKLSAgICAgICAg
Ci0gICAgICAgIGluQm91bmRzLmxpbmsoJm1faml0KTsKLSAgICB9Ci0gICAgCi0gICAgbV9qaXQu
c3RvcmUzMih2YWx1ZVRhZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZTRVRPRihK
U1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMucGF5bG9hZCkpKTsKLSAgICAKLSAgICBiYXNlLnVzZSgpOwotICAgIHByb3BlcnR5LnVzZSgp
OwotICAgIHZhbHVlLnVzZSgpOwotICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgCi0gICAgaWYgKGFy
cmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0
QnlWYWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRo
Q2FsbCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAgICAgICAgICAgICAgICBu
b2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9u
ZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJv
dW5kc05vblN0cmljdCwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZywg
dmFsdWVQYXlsb2FkUmVnKSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJv
dW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsK
KworICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5j
cmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgIGlmIChhcnJheU1vZGUuaXNJbkJv
dW5kcygpKSB7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAg
IFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICAgICAgICAgIG1f
aml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQs
IEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSkpOwog
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9s
ZVZhbHVlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fz
c2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZT
RVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5
VmFsdWVUYWcpKTsKKyAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNTbG93UHV0KCkpIHsKKyAg
ICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRv
IG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3VsZCBpbnZlcnQKKyAgICAgICAgICAgICAg
ICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdvcnRoIGl0IHNpbmNl
IHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCisgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBo
YXZpbmcgYSBiYWQgdGltZS4KKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0
Lmp1bXAoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1faml0LmFk
ZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywg
QXJyYXlTdG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9mZnNldCgpKSk7CisKKyAgICAgICAgICAg
ICAgICAvLyBJZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZSB3ZSBtaWdodCBiZSBncm93aW5nIHRo
ZSBhcnJheTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBsZW5ndGhEb2Vz
Tm90TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFn
ZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVk
SW1tMzIoMSksIHByb3BlcnR5UmVnLCB0ZW1wb3JhcnlSZWcpOworICAgICAgICAgICAgICAgIG1f
aml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdl
UmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisKKyAgICAgICAgICAgICAgICBs
ZW5ndGhEb2VzTm90TmVlZFVwZGF0ZS5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAgbV9qaXQuc3RvcmUzMih2
YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zm
c2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOworICAgICAg
ICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFy
cmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMucGF5bG9hZCkpKTsKKworICAgICAgICBiYXNlLnVzZSgpOworICAgICAgICBwcm9wZXJ0
eS51c2UoKTsKKyAgICAgICAgdmFsdWUudXNlKCk7CisgICAgICAgIHN0b3JhZ2UudXNlKCk7CisK
KyAgICAgICAgaWYgKCFzbG93Q2FzZXMuZW1wdHkoKSkgewogICAgICAgICAgICAgYWRkU2xvd1Bh
dGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlz
LAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlv
blB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVk
SW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2Rl
LT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZh
bHVlVGFnLCB2YWx1ZVBheWxvYWRSZWcpKSk7CisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0
aGlzLAorICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKQorICAgICAg
ICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9u
UHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCisgICAgICAgICAgICAgICAgICAgIDogKG5vZGUtPm9w
KCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5
Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0
cmljdCksCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1ZVJlZ3ModmFsdWVUYWdSZWcsIHZhbHVl
UGF5bG9hZFJlZykpKTsKICAgICAgICAgfQotICAgIH0KIAotICAgIG5vUmVzdWx0KG5vZGUsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7ICAgIAorICAgICAgICBub1Jlc3VsdChub2RlLCBV
c2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBBcnJheTo6SW50OEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkludDE2QXJyYXk6CisgICAg
Y2FzZSBBcnJheTo6SW50MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50OEFycmF5OgorICAg
IGNhc2UgQXJyYXk6OlVpbnQ4Q2xhbXBlZEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQxNkFy
cmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0
MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpGbG9hdDY0QXJyYXk6IHsKKyAgICAgICAgVHlwZWRB
cnJheVR5cGUgdHlwZSA9IGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpOworICAgICAgICBpZiAo
aXNJbnQodHlwZSkpCisgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5
KG5vZGUsIHR5cGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxG
b3JGbG9hdFR5cGVkQXJyYXkobm9kZSwgdHlwZSk7CisgICAgfSB9CiB9CiAKIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8
c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3Jt
YXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKQEAgLTI3MTIsMjMwICsyODQ3LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlWYWxE
aXJlY3Q6CiAgICAgY2FzZSBQdXRCeVZhbDoKICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6IHsKLSAg
ICAgICAgRWRnZSBjaGlsZDEgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApOwot
ICAgICAgICBFZGdlIGNoaWxkMiA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSk7
Ci0gICAgICAgIEVkZ2UgY2hpbGQzID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAy
KTsKLSAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDMpOwotICAgICAgICAKLSAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5
TW9kZSgpLm1vZGVGb3JQdXQoKTsKLSAgICAgICAgYm9vbCBhbHJlYWR5SGFuZGxlZCA9IGZhbHNl
OwotICAgICAgICAKLSAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAg
IGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Ci0gICAgICAgIGNhc2UgQXJyYXk6
OkZvcmNlRXhpdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0j
aWYgQ09NUElMRVJfUVVJUksoQ09OU0lERVJTX1VOUkVBQ0hBQkxFX0NPREUpCi0gICAgICAgICAg
ICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFs
dWVSZWdzKCksIDApOwotICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotI2VuZGlm
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewotICAg
ICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbERpcmVjdCk7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5j
b250YWlucyhub2RlKSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpID09
IENlbGxVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0g
U3RyaW5nVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JD
ZWxsV2l0aFN0cmluZyhub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAg
aWYgKGNoaWxkMi51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlLCBjaGlsZDEsIGNoaWxk
MiwgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFz
ZSh0aGlzLCBjaGlsZDEpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5
KHRoaXMsIGNoaWxkMik7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhp
cywgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2Uu
anNWYWx1ZVJlZ3MoKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3Mg
PSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZh
bHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7Ci0KLSAgICAgICAgICAgICAgICBmbHVzaFJl
Z2lzdGVycygpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGly
ZWN0KQotICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCku
aXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgs
IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVn
cywgIHByb3BlcnR5UmVncywgdmFsdWVSZWdzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgp
ID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCwg
VHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RG
b3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1
ZVJlZ3MpOwotICAgICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICAg
ICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxl
ZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxLCBNYW51YWxPcGVyYW5kU3Bl
Y3VsYXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hp
bGQyLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7Ci0gICAgICAg
ICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOwot
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsK
LQotICAgICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIGNoaWxkMSk7Ci0gICAgICAgICAgICBzcGVj
dWxhdGUobm9kZSwgY2hpbGQyKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMp
OwotCi0gICAgICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2Vt
YW50aWM7Ci0gICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3Jk
Q2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVP
cmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJl
Z2lzdGVycyA9IHRoaXMtPnVzZWRSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJl
Y3QgPSBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUg
ZWNtYU1vZGUgPSBub2RlLT5lY21hTW9kZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdl
bmVyYXRvciBnZW4oCi0gICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6
OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dEJ5VmFsLCB1c2Vk
UmVnaXN0ZXJzLAotICAgICAgICAgICAgICAgIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVl
UmVncywgSW52YWxpZEdQUlJlZywgSW52YWxpZEdQUlJlZyk7Ci0KLSAgICAgICAgICAgIGlmICht
X3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N0cmluZykpCi0gICAgICAgICAgICAg
ICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOwotICAgICAgICAgICAg
ZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQot
ICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwot
ICAgICAgICAgICAgZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNT
eW1ib2wpKQotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9s
ID0gdHJ1ZTsKLQotICAgICAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwotCi0g
ICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgICAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwotCi0gICAgICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoOwotICAgICAgICAgICAgYXV0
byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9u
RGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9u
U3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZh
bFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSk7Ci0g
ICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93
Q2FzZXMsIHRoaXMsIG9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29k
ZU9yaWdpbikpLCBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIGdlbi5zdHViSW5m
bygpLCBudWxscHRyKTsKLQotICAgICAgICAgICAgbV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBzbG93
UGF0aC5nZXQoKSk7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNs
b3dQYXRoKSk7Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgYWxy
ZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBpZiAoYWxyZWFkeUhhbmRsZWQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgCi0g
ICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAgICAg
U3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMik7Ci0gICAg
ICAgIAotICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgIEdQUlJl
ZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotCi0gICAgICAgIHN3aXRjaCAoYXJyYXlN
b2RlLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjogewotICAgICAgICAgICAg
c3BlY3VsYXRlSW50MzIoY2hpbGQzKTsKLSAgICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsK
LQotICAgICAgICAgICAgR1BSUmVnIHZhbHVlVGFnUmVnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAg
ICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2FkUmVnID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAg
ICAgICAKLSAgICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgICAgIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwobm9kZSwgYmFz
ZSwgcHJvcGVydHksIHZhbHVlLCB2YWx1ZVBheWxvYWRSZWcsIHZhbHVlVGFnUmVnKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewot
ICAgICAgICAgICAgY29tcGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkFycmF5
U3RvcmFnZToKLSAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZTogewotICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKLQotICAgICAgICAg
ICAgR1BSUmVnIHZhbHVlVGFnUmVnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgdmFsdWVQYXlsb2FkUmVnID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAg
ICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAgICAgICAg
IGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICAvLyBT
dG9yZSB0aGUgdmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9w
ZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIo
dmFsdWUudGFnR1BSKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rv
ck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAg
ICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VU
T0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNl
czsKLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlCb3VuZHMg
PSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0
b3JMZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJv
dW5kcygpKQotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpT
VmFsdWVSZWdzKCksIDAsIGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKLQotICAg
ICAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3Jl
bWVudCBtX251bVZhbHVlc0luVmVjdG9yLgotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc0lu
Qm91bmRzKCkpIHsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAg
ICAgICAgICAgICBTdG9yZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgICAg
ICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihK
U1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVU
YWcpKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIG5vdEhvbGVWYWx1ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0
KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFycmF5TW9k
ZS5pc1Nsb3dQdXQoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Yg
c3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3Vs
ZCBpbnZlcnQKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0
J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQot
ICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhdmluZyBhIGJhZCB0aW1lLgotICAgICAg
ICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZElt
bTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6
Om51bVZhbHVlc0luVmVjdG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUgZ3Jv
d2luZyB0aGUgYXJyYXk7IAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcs
IEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9q
aXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgICAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIocHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0
b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAg
ICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlLmxp
bmsoJm1faml0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm90SG9sZVZh
bHVlLmxpbmsoJm1faml0KTsKLSAgICAgICAgICAgIH0KLSAgICAKLSAgICAgICAgICAgIC8vIFN0
b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHZh
bHVlVGFnUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZz
ZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgICAg
ICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQs
IEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwg
dS5hc0JpdHMucGF5bG9hZCkpKTsKLQotICAgICAgICAgICAgYmFzZS51c2UoKTsKLSAgICAgICAg
ICAgIHByb3BlcnR5LnVzZSgpOwotICAgICAgICAgICAgdmFsdWUudXNlKCk7Ci0gICAgICAgICAg
ICBzdG9yYWdlLnVzZSgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXNsb3dDYXNl
cy5lbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxE
aXJlY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1Bh
dGhDYWxsKAotICAgICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9u
UHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
RGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5
UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ1JlZywgdmFsdWVQYXlsb2FkUmVnKSkpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhp
cywKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/
IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRC
eVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgICAgICAgICAg
Tm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJl
ZywgSlNWYWx1ZVJlZ3ModmFsdWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgICAgICAgICAgCi0gICAgICAgIGRlZmF1bHQ6IHsKLSAgICAgICAgICAgIFR5cGVkQXJy
YXlUeXBlIHR5cGUgPSBhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKTsKLSAgICAgICAgICAgIGlm
IChpc0ludCh0eXBlKSkKLSAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBl
ZEFycmF5KGJhc2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJy
YXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUsIHR5cGUpOwotICAgICAgICB9IH0K
KyAgICAgICAgY29tcGlsZVB1dEJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CmluZGV4IDIyNjZjNDYwNzkwNzc0NGFkYWFkNGZmMDU5YjkyNzgyMGFjMDdkMTIuLmY3YzAzMzMz
NTdiMGU0NzExMjRlNTRhNTQ2MzFmMzg1NDE5NDc3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjMzMCw2ICsyMzMwLDIy
NCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNoKE5vZGUqIG5vZGUpCiAgICAgfQog
fQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKK3sK
KyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgp
OworICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgeworICAgIGNhc2UgQXJyYXk6OkFueVR5
cGVkQXJyYXk6CisgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgorICAgIGNhc2UgQXJyYXk6OlNl
bGVjdFVzaW5nQXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlv
bnM6CisgICAgY2FzZSBBcnJheTo6VW5wcm9maWxlZDoKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6
CisgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3Bl
ZEFyZ3VtZW50czoKKyAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CisgICAgICAgIERGR19DUkFT
SChtX2ppdC5ncmFwaCgpLCBub2RlLCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkJp
Z1VpbnQ2NEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKKyAgICAgICAgREZHX0FT
U0VSVChtX2ppdC5ncmFwaCgpLCBub2RlLCBub2RlLT5vcCgpID09IFB1dEJ5VmFsIHx8IG5vZGUt
Pm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QsIG5vZGUtPm9wKCkpOworICAgICAgICBpZiAobV9ncmFw
aC5tX3Nsb3dQdXRCeVZhbC5jb250YWlucyhub2RlKSB8fCAobV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAwKS51c2VLaW5kKCkgIT0gQ2VsbFVzZSAmJiBtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSAhPSBLbm93bkNlbGxVc2UpKSB7CisgICAgICAgICAg
ICBpZiAobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gQ2Vs
bFVzZSkgeworICAgICAgICAgICAgICAgIGlmIChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgY29t
cGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcobm9kZSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9kZSk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFw
aCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHBy
b3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAyKSk7CisgICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Cisg
ICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5ncHIoKTsKKyAgICAgICAg
ICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigpOworICAgICAgICAgICAgZmx1c2hSZWdp
c3RlcnMoKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQor
ICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgp
ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5
R1BSLCB2YWx1ZUdQUik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9p
bnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50
aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BSKTsKKyAgICAgICAgICAgIG1faml0
LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBi
YXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBK
U1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7
CisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOworICAgICAgICBH
UFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsKKworICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1
YkluZm87CisgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAg
ICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAg
ICAgc3R1YkluZm8gPSBHUFJUZW1wb3JhcnkodGhpcyk7CisgICAgICAgICAgICBzdHViSW5mb0dQ
UiA9IHN0dWJJbmZvLmdwcigpOworICAgICAgICB9CisKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICBzcGVjdWxhdGUo
bm9kZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisKKyAgICAgICAgQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOworICAgICAgICBDYWxs
U2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2Vw
dGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkp
OworICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVy
cygpOworICAgICAgICBib29sIGlzRGlyZWN0ID0gbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVj
dDsKKyAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUgPSBub2RlLT5lY21hTW9kZSgpOworCisgICAg
ICAgIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigKKyAgICAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQ
dXRCeVZhbCwgdXNlZFJlZ2lzdGVycywKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIp
LCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxp
ZEdQUlJlZywgc3R1YkluZm9HUFIpOworCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQorICAg
ICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOworICAgICAg
ICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2Rl
LCAxKSkuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCkt
PnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CisgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9k
ZShtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N5bWJvbCkp
CisgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7CisK
KyAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworCisgICAgICAgIEpJVENvbXBp
bGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlD
KEpJVFR5cGU6OkRGR0pJVCkpCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93
UGF0aEp1bXAoKSk7CisKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9y
PiBzbG93UGF0aDsKKyAgICAgICAgYXV0byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9k
ZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3Ry
aWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlW
YWxOb25TdHJpY3RPcHRpbWl6ZSk7CisgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklU
VHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aElDQ2FsbCgK
KyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIGdlbi5zdHViSW5mbygpLCBzdHViSW5m
b0dQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5m
bzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBvcGVyYXRpb24sCisgICAgICAgICAgICAgICAg
Tm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xv
YmFsT2JqZWN0Rm9yKGNvZGVPcmlnaW4pKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BS
LCBzdHViSW5mb0dQUiwgbnVsbHB0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBz
bG93UGF0aCA9IHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMs
IG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBi
YXNlR1BSLCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsK
KyAgICAgICAgfQorCisgICAgICAgIG1faml0LmFkZFB1dEJ5VmFsKGdlbiwgc2xvd1BhdGguZ2V0
KCkpOworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7CisK
KyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IEFycmF5OjpJbnQzMjogeworICAgICAgICBzcGVjdWxhdGVJbnQzMihtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgfQorICAgIGNh
c2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKKyAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZh
bChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkRvdWJsZTog
eworICAgICAgICBjb21waWxlRG91YmxlUHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6CisgICAgY2FzZSBBcnJheTo6U2xv
d1B1dEFycmF5U3RvcmFnZTogeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBTcGVjdWxh
dGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAxKSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOworCisgICAgICAgIEdQUlJlZyBiYXNlUmVn
ID0gYmFzZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3By
KCk7CisgICAgICAgIEdQUlJlZyB2YWx1ZVJlZyA9IHZhbHVlLmdwcigpOworCisgICAgICAgIGlm
ICghbV9jb21waWxlT2theSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTdG9yYWdl
T3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykp
OworICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICAgICAg
aWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgeworICAgICAgICAgICAgLy8gU3RvcmUg
dGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9
IHByb3BlcnR5LmdwcigpOworICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3By
KCk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6
QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNF
aWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOworCisgICAgICAgICAgICBub1Jl
c3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgR1BS
VGVtcG9yYXJ5IHRlbXBvcmFyeTsKKyAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBv
cmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGJleW9uZEFycmF5Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3Jh
Z2VSZWcsIEFycmF5U3RvcmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgaWYg
KCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5
Qm91bmRzKTsKKworICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsg
aWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgIGlmIChhcnJheU1v
ZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAg
ICAgICAgICAgIFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICAg
ICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpKSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBt
X2ppdC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1l
c0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAo
YXJyYXlNb2RlLmlzU2xvd1B1dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0
IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ug
d291bGQgaW52ZXJ0CisgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0
J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQor
ICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCisgICAgICAgICAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0
b3JPZmZzZXQoKSkpOworCisgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBh
IGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7CisgICAgICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisgICAgICAg
ICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9y
YXJ5UmVnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZz
ZXQoKSkpOworCisgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygm
bV9qaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1f
aml0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJy
YXkuCisgICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7CisKKyAgICAgICAgYmFzZS51c2UoKTsK
KyAgICAgICAgcHJvcGVydHkudXNlKCk7CisgICAgICAgIHZhbHVlLnVzZSgpOworICAgICAgICBz
dG9yYWdlLnVzZSgpOworCisgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKKyAgICAg
ICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgICAg
ICBzbG93Q2FzZXMsIHRoaXMsCisgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0
cmljdCgpCisgICAgICAgICAgICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJl
Y3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3Bl
cmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCkKKyAgICAgICAgICAgICAgICAg
ICAgOiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0KSwKKyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZElt
bVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOworICAg
ICAgICB9CisKKyAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNp
dGx5KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToK
KyAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6
CisgICAgY2FzZSBBcnJheTo6VWludDhBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50OENsYW1w
ZWRBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJheToKKyAgICBjYXNlIEFycmF5OjpV
aW50MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpGbG9hdDMyQXJyYXk6CisgICAgY2FzZSBBcnJh
eTo6RmxvYXQ2NEFycmF5OiB7CisgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJheU1v
ZGUudHlwZWRBcnJheVR5cGUoKTsKKyAgICAgICAgaWYgKGlzSW50KHR5cGUpKQorICAgICAgICAg
ICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShub2RlLCB0eXBlKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KG5vZGUs
IHR5cGUpOworICAgIH0gfQorfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3Ms
IERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBw
cmVmaXgpCiB7CiAgICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKQEAgLTMz
MzQsMzE1ICszNTUyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAgICAgY2FzZSBQdXRCeVZhbDoKICAgICBjYXNl
IFB1dEJ5VmFsQWxpYXM6IHsKLSAgICAgICAgRWRnZSBjaGlsZDEgPSBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDApOwotICAgICAgICBFZGdlIGNoaWxkMiA9IG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMSk7Ci0gICAgICAgIEVkZ2UgY2hpbGQzID0gbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAyKTsKLSAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFw
aCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpOwotICAgICAgICAKLSAgICAgICAgQXJyYXlNb2RlIGFy
cmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKTsKLSAgICAgICAgYm9vbCBh
bHJlYWR5SGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgc3dpdGNoIChhcnJheU1v
ZGUudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6
Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAgICAgICAgIERGR19DUkFTSCht
X2ppdC5ncmFwaCgpLCBub2RlLCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6Ci0gICAgICAgIGNhc2Ug
QXJyYXk6OkJpZ1VpbnQ2NEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7Ci0g
ICAgICAgICAgICBERkdfQVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIG5vZGUtPm9wKCkgPT0g
UHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCwgbm9kZS0+b3AoKSk7Ci0g
ICAgICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5jb250YWlucyhub2RlKSB8fCAo
Y2hpbGQxLnVzZUtpbmQoKSAhPSBDZWxsVXNlICYmIGNoaWxkMS51c2VLaW5kKCkgIT0gS25vd25D
ZWxsVXNlKSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpID09IENlbGxV
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0gU3RyaW5n
VXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0
aFN0cmluZyhub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNo
aWxkMi51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBj
b21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hp
bGQzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlz
LCBjaGlsZDEpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZzIodGhpcywgY2hp
bGQyKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIGNoaWxkMyk7
Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwotICAgICAgICAg
ICAgICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKLSAgICAgICAgICAgICAgICBHUFJS
ZWcgYXJnM0dQUiA9IGFyZzMuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMo
KTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkKLSAg
ICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0
KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0Tm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYXJnMUdQUiwgYXJnMkdQ
UiwgYXJnM0dQUik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIFRydXN0ZWRJbW1QdHI6Ondl
YWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYykpLCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczR1BSKTsKLSAgICAgICAgICAgICAgICBt
X2ppdC5leGNlcHRpb25DaGVjaygpOwotCi0gICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7
Ci0gICAgICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0
eSh0aGlzLCBjaGlsZDIsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBK
U1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlv
bik7Ci0gICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgICAg
ICBHUFJSZWcgcHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJl
ZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigpOwotCi0gICAgICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1
YkluZm87Ci0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwot
ICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0g
ICAgICAgICAgICAgICAgc3R1YkluZm8gPSBHUFJUZW1wb3JhcnkodGhpcyk7Ci0gICAgICAgICAg
ICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby5ncHIoKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIGNoaWxkMik7Ci0gICAgICAgICAgICBzcGVjdWxhdGUo
bm9kZSwgY2hpbGQzKTsKLQotICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9k
ZS0+b3JpZ2luLnNlbWFudGljOwotICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9
IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJ
Zk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKLSAgICAgICAgICAgIFJlZ2lz
dGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAg
ICBib29sIGlzRGlyZWN0ID0gbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdDsKLSAgICAgICAg
ICAgIEVDTUFNb2RlIGVjbWFNb2RlID0gbm9kZS0+ZWNtYU1vZGUoKTsKLQotICAgICAgICAgICAg
SklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQ
dXRCeVZhbCwgdXNlZFJlZ2lzdGVycywKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNl
R1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIElu
dmFsaWRHUFJSZWcsIHN0dWJJbmZvR1BSKTsKLQotICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9y
Tm9kZShjaGlsZDIpLmlzVHlwZShTcGVjU3RyaW5nKSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1
YkluZm8oKS0+cHJvcGVydHlJc1N0cmluZyA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmICht
X3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY0ludDMyT25seSkpCi0gICAgICAgICAg
ICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Ci0gICAgICAgICAg
ICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N5bWJvbCkpCi0g
ICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwot
Ci0gICAgICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7Ci0KLSAgICAgICAgICAg
IEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKQotICAgICAgICAgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKLQotICAgICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKLSAgICAgICAgICAgIGF1dG8gb3BlcmF0
aW9uID0gaXNEaXJlY3QgPyAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbE5vblN0cmljdE9w
dGltaXplKSA6IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3RP
cHRpbWl6ZSA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpOwotICAgICAgICAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAg
ICAgICAgc2xvd1BhdGggPSBzbG93UGF0aElDQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xv
d0Nhc2VzLCB0aGlzLCBnZW4uc3R1YkluZm8oKSwgc3R1YkluZm9HUFIsIENDYWxsSGVscGVyczo6
QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJh
dGlvbigpKSwgb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29k
ZU9yaWdpbikpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIHN0dWJJbmZvR1BSLCBu
dWxscHRyKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGgg
PSBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywgb3Bl
cmF0aW9uLAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBi
YXNlR1BSLCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBzbG93
UGF0aC5nZXQoKSk7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNs
b3dQYXRoKSk7Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgYWxy
ZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBpZiAoYWxyZWFkeUhhbmRsZWQpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgIFNwZWN1bGF0
ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBjaGlsZDIpOwotICAgICAgICAKLSAg
ICAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwotICAgICAgICBHUFJSZWcgcHJvcGVy
dHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLQotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBl
KCkpIHsKLSAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkNv
bnRpZ3VvdXM6IHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxk
MywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZhbHVl
UmVnID0gdmFsdWUuZ3ByKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVP
a2F5KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkludDMyKSB7Ci0gICAgICAgICAgICAgICAg
REZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlUmVn
KSwgY2hpbGQzLCBTcGVjSW50MzJPbmx5LAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFu
Y2hJZk5vdEludDMyKHZhbHVlUmVnKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN0
b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgY2hpbGQ0KTsKLSAgICAgICAgICAgIEdQUlJlZyBz
dG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKLQotICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkg
PT0gUHV0QnlWYWxBbGlhcykgewotICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0
byB0aGUgYXJyYXkuCi0gICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVy
dHkuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7
Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBub1Jlc3VsdChub2Rl
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKLSAgICAgICAgICAgIEdQUlJlZyB0
ZW1wb3JhcnlSZWcgPSB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9k
ZSk7Ci0KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgICAgIE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xl
bmd0aCgpKSkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpC
ZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1
dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFi
b3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VS
ZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKLSAgICAg
ICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3Mo
KSwgbnVsbHB0ciwgc2xvd0Nhc2UpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7
Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgo
KSkpOwotCi0gICAgICAgICAgICAgICAgaW5Cb3VuZHMubGluaygmbV9qaXQpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCkpOwotCi0gICAgICAgICAgICBiYXNlLnVzZSgpOwotICAgICAgICAgICAgcHJvcGVy
dHkudXNlKCk7Ci0gICAgICAgICAgICB2YWx1ZS51c2UoKTsKLSAgICAgICAgICAgIHN0b3JhZ2Uu
dXNlKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJv
dW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhD
YWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpCi0gICAgICAgICAgICAgICAgICAgICAg
ICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJl
Y3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlC
b3VuZHNTdHJpY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1
dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05v
blN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAot
ICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIo
bV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSks
IGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIEFy
cmF5OjpEb3VibGU6IHsKLSAgICAgICAgICAgIGNvbXBpbGVEb3VibGVQdXRCeVZhbChub2RlLCBi
YXNlLCBwcm9wZXJ0eSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAg
ICAgCi0gICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZToKLSAgICAgICAgY2FzZSBBcnJh
eTo6U2xvd1B1dEFycmF5U3RvcmFnZTogewotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFs
dWUodGhpcywgY2hpbGQzKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUu
Z3ByKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0
aGlzLCBjaGlsZDQpOwotICAgICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdw
cigpOwotCi0gICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0g
ICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAg
ICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAg
ICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgICAgICAgICBtX2pp
dC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2
ZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG5vUmVz
dWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwotICAgICAgICAgICAg
R1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9y
YXJ5LCBub2RlKTsKLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dD
YXNlczsKLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlCb3Vu
ZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2
ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRP
ZkJvdW5kcygpKQotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMs
IEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRz
KTsKLQotICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlm
IHNvIGluY3JlbWVudCBtX251bVZhbHVlc0luVmVjdG9yLgotICAgICAgICAgICAgaWYgKGFycmF5
TW9kZS5pc0luQm91bmRzKCkpIHsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAot
ICAgICAgICAgICAgICAgICAgICBTdG9yZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwK
LSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpa
ZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkp
KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpO
b25aZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQo
KSkpOwotICAgICAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNTbG93UHV0KCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0
byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291bGQgaW52ZXJ0Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIHRoZSBhYm92ZSBicmFuY2guIEJ1dCBpdCdzIHNpbXBseSBub3Qgd29ydGggaXQg
c2luY2UgdGhpcyBvbmx5IGhhcHBlbnMgaWYgd2UncmUKLSAgICAgICAgICAgICAgICAgICAgLy8g
YWxyZWFkeSBoYXZpbmcgYSBiYWQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2Vz
LmFwcGVuZChtX2ppdC5qdW1wKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9mZnNl
dCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3Jl
IHdyaXRpbmcgdG8gYSBob2xlIHdlIG1pZ2h0IGJlIGdyb3dpbmcgdGhlIGFycmF5OyAKLSAgICAg
ICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRh
dGUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9m
ZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigx
KSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0
LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVn
LCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0
KTsKLSAgICAgICAgICAgIH0KLSAgICAKLSAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0
byB0aGUgYXJyYXkuCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOwotCi0gICAgICAg
ICAgICBiYXNlLnVzZSgpOwotICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0gICAgICAgICAg
ICB2YWx1ZS51c2UoKTsKLSAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBh
ZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNs
b3dDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0
cmljdCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFs
RGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6
IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCi0gICAgICAgICAgICAg
ICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3Vs
dCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmpl
Y3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1
ZVJlZykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VD
aGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIEFycmF5OjpJbnQ4QXJyYXk6Ci0gICAgICAgIGNh
c2UgQXJyYXk6OkludDE2QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6Ci0g
ICAgICAgIGNhc2UgQXJyYXk6OlVpbnQ4QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVpbnQ4
Q2xhbXBlZEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJheToKLSAgICAgICAg
Y2FzZSBBcnJheTo6VWludDMyQXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJh
eToKLSAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OiB7Ci0gICAgICAgICAgICBUeXBl
ZEFycmF5VHlwZSB0eXBlID0gYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCk7Ci0gICAgICAgICAg
ICBpZiAoaXNJbnQodHlwZSkpCi0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50
VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBl
ZEFycmF5KGJhc2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJh
eToKLSAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5nOgotICAgICAgICBjYXNlIEFycmF5OjpEaXJl
Y3RBcmd1bWVudHM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAgICAgY2Fz
ZSBBcnJheTo6R2VuZXJpYzoKLSAgICAgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgot
ICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ0FyZ3VtZW50czoKLSAgICAgICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKLSAgICAgICAgY2FzZSBBcnJheTo6VW5kZWNp
ZGVkOgotICAgICAgICBjYXNlIEFycmF5OjpVbnByb2ZpbGVkOgotICAgICAgICBjYXNlIEFycmF5
OjpCaWdJbnQ2NEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpCaWdVaW50NjRBcnJheToKLSAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KKyAgICAg
ICAgY29tcGlsZVB1dEJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAg
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443311</attachid>
            <date>2021-11-04 09:19:26 -0700</date>
            <delta_ts>2021-11-05 09:50:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211104161924.patch</filename>
            <type>text/plain</type>
            <size>91019</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGU2MmVhNDg4NmFkOGU2Y2EwNjRjYTRjYWRkMTYwYzAyODk4ZGVhLi5lMzI0MjM5MjgxNzUyMjQx
OGJmN2YyZjVlY2Y5NmMzYWNlNzY5OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNDMgQEAKKzIwMjEtMTEtMDQgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVwIGZy
b20gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNoYW5nZXMgYnV0IGl0IHNob3Vs
ZCBiZSBORkM6CisKKyAgICAgICAgMS4gUmVtb3ZlZCBzZXZlcmFsIGNhbGxzIHRvIG9wZXJhdGlv
blB1dEJ5VmFsKkNlbGwqIHRoYXQgd2VyZQorICAgICAgICBvbmx5IHVzZWQgYnkgdGhlIDMyIGJp
dCBjb2RlIHBhdGhzIGR1ZSB0byB0aGUgbGFjayBvZiByZWdpc3RlcnMuCisgICAgICAgIFRoZXNl
IGNhbGxzIHdlcmUgcmVwbGFjZWQgYnkgdGhlIGNhbGxzIHVzZWQgYnkgdGhlIDY0IGJpdCBwYXRo
cywKKyAgICAgICAgdGhhdCBleHBlY3QgRW5jb2RlZEpTVmFsdWVzCisgICAgICAgIDIuIEJlY2F1
c2Ugb2YgIzEsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aG9zZSBtZXRob2RzLCBzaW5jZSBubyBvbmUK
KyAgICAgICAgdXNlcyB0aGVtIGFueW1vcmUuCisgICAgICAgIDMuIENyZWF0ZWQgY29tcGlsZVB1
dEJ5VmFsIHRvIGhhbmRsZSBhbGwgY2FzZXMgKHNpbWlsYXIgdG8gY29tcGlsZUdldEJ5VmFsKS4K
KyAgICAgICAgNC4gUmVtb3ZlZCB0aGUgRWRnZSYgY2hpbGRYIGZyb20gdGhlIFB1dEJ5VmFsIGhh
bmRsaW5nIChhbmQgYWxsIG1ldGhvZHMKKyAgICAgICAgdGhhdCBleHBlY3RlZCB0aGVtKSBpbiBm
YXZvciBvZiBnZXR0aW5nIHRoZW0gZnJvbSBub2RlIHdoZW4gbmVlZGVkLgorICAgICAgICA1LiBV
bmlmaWVkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwgc28gaXQgY291bGQgYmUgdXNlZCBieSBi
b3RoIDMyCisgICAgICAgIGFuZCA2NCBiaXQgYXJjaHMuCisgICAgICAgIDYuIFJlbW92ZWQgYSBs
b3Qgb2Ygd2hpdGVzcGFjZS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRG91YmxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5
cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJv
bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcml2YXRlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRQcml2YXRlTmFtZUJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNl
bGxXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxXaXRoVGhpcyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRl
TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRQcml2YXRlTmFtZUJ5SWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2hlY2tQcml2YXRlQnJhbmQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UHJpdmF0ZUJyYW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUlu
Zm9GbGFncyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQYXJzZUludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yQ2VsbHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1
ZUJpdE5vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVCaXR3aXNlTm90KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6ZW1pdFVudHlwZWRPckFueUJpZ0ludEJpdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0d2lzZU9wKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJpdHdpc2VPcCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRVbnR5cGVkT3JC
aWdJbnRSaWdodFNoaWZ0Qml0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVMU2hpZnRPcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdFJTaGlmdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTaGlmdE9wKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
U3ViKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU1hdGhJQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVJbnN0YW5jZU9mQ3VzdG9tKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUlzQ2VsbFdpdGhUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzVHlwZWRBcnJheVZpZXcpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9PYmplY3RPckNh
bGxPYmplY3RDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFicyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aFN1Yik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVJbmNPckRlYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVWYWx1ZU5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aE5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11bCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZURpdik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEZS
b3VuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVWYWx1ZU1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoVW5hcnkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhTcXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWluTWF4KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpjb21waWxlQXJpdGhQb3dJbnRlZ2VyRmFzdFBhdGgp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFs
dWVQb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhQb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUNvbXBhcmVVbnNpZ25lZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCb29sZWFuQ29tcGFyZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnQzMkNvbXBhcmUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlQ29t
cGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVPYmplY3RFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVTeW1ib2xFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZVN5bWJvbEVxdWFsaXR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJpdHdpc2VKU1ZhbHVl
RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpl
bWl0QnJhbmNoT25CaXR3aXNlSlNWYWx1ZUVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vdERvdWJsZU5laXRoZXJEb3VibGVOb3JI
ZWFwQmlnSW50Tm9yU3RyaW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVOb3REb3VibGVOZWl0aGVyRG91
YmxlTm9ySGVhcEJpZ0ludE5vclN0cmluZ1N0cmljdEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0VxdWFsaXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1Rv
VW50eXBlZEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVN0cmluZ0lkZW50RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRUb05vdFN0cmluZ1ZhckVx
dWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVN0cmluZ0NvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNhbWVWYWx1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0Jvb2xlYW5TdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9Cb29s
ZWFuU3RyaW5nT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRTdHJpbmdCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjplbWl0U3RyaW5nT3JPdGhlckJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb25zdGFudFN0b3JhZ2VQb2ludGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FnZVR5cGVk
QXJyYXlTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFNjb3BlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNraXBTY29w
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRHbG9iYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0R2xvYmFsVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbkJlUm9wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uQ29t
bW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU5ld0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVNldEZ1bmN0aW9uTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYXJhcmdzTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZvcndhcmRWYXJhcmdz
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNy
ZWF0ZUFjdGl2YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ3JlYXRlRGlyZWN0QXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEZyb21Bcmd1bWVudHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0VG9Bcmd1bWVu
dHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQ3JlYXRlU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUNsb25lZEFyZ3VtZW50cyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVBcmd1
bWVudHNCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ3JlYXRlUmVzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTcHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU3ByZWFkKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFJlc3RMZW5n
dGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0UG9w
dWxhdGVTbGljZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFycmF5U2xpY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlJbmRleE9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5UHVzaCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb3RpZnlXcml0ZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc09iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUeXBl
T2ZJc09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVJc0NhbGxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUlzQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cnVjdHVyZUNoZWNrKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSXNDb25zdGFudCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a05vdEVtcHR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUNoZWNrU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0
eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCdXR0ZXJmbHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OmFsbG9jYXRlVGVtcG9yYXJ5UmVnaXN0ZXJzRm9yU25pcHBldCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxs
RE9NKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUNhbGxET01HZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ2hlY2tKU0Nhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3Ry
aW5nQ29uc3RydWN0b3JPclN0cmluZ1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OmdldEV4ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4
Q29uc3RhbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3U3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N5bWJvbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFy
cmF5V2l0aFNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjplbWl0TmV3VHlwZWRBcnJheVdpdGhTaXplSW5SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdSZWdleHApOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsVHlwZVdpdGhv
dXRUeXBlRmlsdGVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlQ2VsbFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlYWxOdW1iZXIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEb3VibGVSZXBSZWFs
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZUNlbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVDZWxsT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRmluYWxPYmplY3QpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVSZWdFeHBPYmpl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVByb3h5T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRGVyaXZlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJvbWlzZU9iamVjdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNYXBP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVTZXRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGFWaWV3T2JqZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2Jq
ZWN0T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZVN0cmluZ09yT3RoZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVudEFuZExvYWRTdG9yYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3Ry
aW5nSWRlbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVTdHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1Zhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN5
bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZUhlYXBCaWdJbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVOb3RDZWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdERvdWJsZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5laXRo
ZXJEb3VibGVOb3JIZWFwQmlnSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVP
dGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZU1pc2MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpl
bWl0U3dpdGNoSW50SnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRTd2l0Y2hJbW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhclN0cmluZ0p1bXApOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHJpbmdSZWN1
cnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3
aXRjaFN0cmluZ09uU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjphZGRCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpsaW5rQnJhbmNoZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RvcmVCYXJyaWVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRHZXR0
ZXJTZXR0ZXJCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVJlc29sdmVTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldER5bmFtaWNWYXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0RHluYW1pY1Zhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRDbG9z
dXJlVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dENsb3N1cmVWYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0SW50ZXJuYWxGaWVsZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRJbnRlcm5hbEZpZWxkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlW
YWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4
cFRlc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlU3RyaW5nUmVwbGFjZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwTWF0Y2hGYXN0R2xv
YmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVJlZ0V4cE1hdGNoRmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVMYXp5SlNDb25zdGFudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWNvcmRSZWdFeHBD
YWNoZWRSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRGVmaW5lRGF0YVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURlZmluZUFjY2Vzc29yUHJvcGVydHkpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVCdXR0ZXJm
bHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Tm9ybWFsaXplTWFwS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldE1hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVja2V0TmV4dCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkS2V5RnJvbU1hcEJ1
Y2tldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3Rh
dGljRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvck5leHRFeHRyYWN0
SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRW51bWVyYXRvck5leHRFeHRyYWN0TW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFt
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVF
bnVtZXJhdG9ySGFzUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckluQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckhhc093blByb3BlcnR5
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEJ5SWRGbHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQdXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEJ5SWREaXJlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZFdpdGhUaGlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5T2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5T2Zmc2V0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1h
dGNoU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldFByb3BlcnR5RW51bWVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRFeGVjdXRhYmxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
Q2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVNldENhbGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRBcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVTdHJDYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTmV3QXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvVGhpcyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmpl
Y3RLZXlzT3JPYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEFzc2lnbik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RDcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRl
VGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDcmVhdGVQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlR2VuZXJhdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFz
eW5jR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVOZXdJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdHZW5lcmF0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXN5
bmNHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTmV3SW50ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1ByaW1pdGl2ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1Byb3BlcnR5S2V5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJp
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVD
YWxsTnVtYmVyQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5U
YWlsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVNldEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJvdG90eXBlT2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSWRlbnRpdHkpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWlzY1N0
cmljdEVxKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1p
dEluaXRpYWxpemVCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQWxsb2NhdGVOZXdBcnJheVdpdGhTaXplKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0
eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVF
eHRyYWN0Q2F0Y2hMb2NhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVByb2ZpbGVUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhv
bGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Z2VuZXJpY0pTVmFsdWVQZWVwaG9sZUJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIZWFwQmlnSW50RXF1YWxpdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFrZVJvcGUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRv
ckdldEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpT
Qzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdEVtcHR5KToKKwogMjAyMS0xMS0wMiAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRk
IExMSW50IGZhc3QgcGF0aCBmb3IgT3BNb2Qgb24geDg2XzY0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAzYjQ1OWI2ZjBkMjA2ZTZmYjMxODk5ODE3
OTY0Yzk1YTAxMmIzYTFjLi5jMDJmNTRhNDUzYmU5ZjgwZjg1N2Q2ZGVmOWZlNjczZDdkZDJmMDA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTgy
MCwyNCArODIwLDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFs
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBwdXRCeVZhbEludGVy
bmFsPGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQ
cm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9i
amVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVk
VmFsdWUpOwotfQotCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxD
ZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
Ci0gICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIEpT
VmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwotfQot
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBK
U0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC05OTYsMjQgKzk3OCw2IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0CiAgICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2Jq
ZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIAotICAgIHB1
dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5j
b2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsK
LSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAKLSAgICBwdXRCeVZhbElu
dGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2Vs
bCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKLX0KLQogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlNDZWxsKiBzdHJp
bmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApp
bmRleCBjMjJhYmE3NzBmYzk5Y2M2NGJjNWI5ZTdkOGQ4ZDFiNWJlMjU4YjIzLi4yYzM3ZmQwOTUz
MmZiMzk5N2FlNGQ3ZGI0ZDgwYWFhNGU2MWU4MGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtMTQ1LDggKzE0NSw2IEBAIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVy
ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CkBA
IC0xNTUsOCArMTUzLDYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG8KIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVj
dENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2Vs
bCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9uU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRl
eCAwZGFlZjlhY2I3M2Q2MzhiOWE0ZWI2OWIwMDBhMTMxYjkzZTRhNjI2Li4xMzY2YjM1NWEwZjBh
ZGQwNjQwMWIwOGY4ZDlmOTQxYTc2MWQ4ZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjQ4MSwyOCArMjQ4MSw5MyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUcmFwcyhOb2RlKiBub2RlKQogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlW
YWwoTm9kZSogbm9kZSwgU3BlY3VsYXRlQ2VsbE9wZXJhbmQmIGJhc2UsIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCYgcHJvcGVydHkpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29u
dGlndW91c1B1dEJ5VmFsKE5vZGUqIG5vZGUpCiB7Ci0gICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAgIEVkZ2UgY2hpbGQ0ID0gbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAzKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0
ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFw
aCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwogCi0g
ICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwotICAgIAogICAgIEdQ
UlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9w
ZXJ0eS5ncHIoKTsKLSAgICAKLSAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlKHRoaXMs
IGNoaWxkMyk7CisgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3Mo
KTsKKworICAgIGlmICghbV9jb21waWxlT2theSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3Rv
cmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDMpKTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICBpZiAo
bm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1
ZSB0byB0aGUgYXJyYXkuCisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5Lmdw
cigpOworICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlUmVncywgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQpKTsKKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OworICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcg
PSB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CisKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZTsKKworICAgIEFycmF5TW9kZSBhcnJheU1vZGUg
PSBub2RlLT5hcnJheU1vZGUoKTsKKyAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewor
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFs
dWVSZWdzKCksIG51bGxwdHIsCisgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7
CisKKyAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJv
dmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJl
ZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7CisKKyAgICAgICAgaWYgKCFh
cnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhP
dXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgc2xvd0Nhc2UpOworCisgICAgICAg
IG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7
CisgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKKwor
ICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7CisgICAgfQorCisgICAgbV9qaXQuc3RvcmVW
YWx1ZSh2YWx1ZVJlZ3MsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CisKKyAgICBiYXNlLnVzZSgp
OworICAgIHByb3BlcnR5LnVzZSgpOworICAgIHZhbHVlLnVzZSgpOworICAgIHN0b3JhZ2UudXNl
KCk7CisKKyAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkgeworICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICBzbG93Q2FzZSwgdGhp
cywKKyAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKQorICAgICAgICAgICAg
ICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCkKKyAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFs
RGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmlj
dCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAorICAgICAg
ICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3Jh
cGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9w
ZXJ0eVJlZywgdmFsdWVSZWdzKSk7CisgICAgfQorCisgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hp
bGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUpCit7CisgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9
IG5vZGUtPmFycmF5TW9kZSgpOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVTdHJp
Y3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSk7CisgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAorICAgIEdQUlJlZyBiYXNlUmVnID0gYmFz
ZS5ncHIoKTsKKyAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKICAgICBG
UFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKLSAgICAKKwogICAgIERGR19UWVBFX0NIRUNL
KAotICAgICAgICBKU1ZhbHVlUmVncygpLCBjaGlsZDMsIFNwZWNGdWxsUmVhbE51bWJlciwKKyAg
ICAgICAgSlNWYWx1ZVJlZ3MoKSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSwg
U3BlY0Z1bGxSZWFsTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFuY2hJZk5hTih2YWx1ZVJlZykp
OwotICAgIAorCiAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQogICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQpOworCisgICAgU3RvcmFn
ZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMp
KTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CiAKICAgICBpZiAobm9k
ZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CkBAIC0yNTEwLDQxICsyNTc1LDQxIEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiBub2RlLCBTcGVjdWxh
dGVDZWxsT3BlcmFuZCYgYmFzCiAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5
LmdwcigpOwogICAgICAgICBGUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKICAgICAgICAg
bV9qaXQuc3RvcmVEb3VibGUodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3Rv
cmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7Ci0gICAg
ICAgIAorCiAgICAgICAgIG5vUmVzdWx0KG1fY3VycmVudE5vZGUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIAorCiAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKICAgICBHUFJSZWcg
dGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5v
ZGUpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0gICAgCisKICAgICBp
ZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAog
ICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsCiAgICAgICAg
ICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZz
ZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVy
Zmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0gICAgICAgIAorCiAgICAgICAgIHNsb3dD
YXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zm
c2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAgICAgICAKKwogICAgICAgICBpZiAoIWFycmF5TW9k
ZS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7Ci0gICAgICAgIAorCiAgICAg
ICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJl
Zyk7CiAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsK
IAogICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7CiAgICAgfQotICAgIAorCiAgICAgbV9q
aXQuc3RvcmVEb3VibGUodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CiAKICAgICBi
YXNlLnVzZSgpOwogICAgIHByb3BlcnR5LnVzZSgpOwogICAgIHZhbHVlLnVzZSgpOwogICAgIHN0
b3JhZ2UudXNlKCk7Ci0gICAgCisKICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkg
ewogICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgICAgIHNsb3dQYXRoQ2Fs
bCgKQEAgLTI1NTgsNiArMjYyMywyMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURv
dWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXMKICAgICBu
b1Jlc3VsdChtX2N1cnJlbnROb2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKK3sKKyAg
ICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOwor
ICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgeworICAgIGNhc2UgQXJyYXk6OkFueVR5cGVk
QXJyYXk6CisgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgorICAgIGNhc2UgQXJyYXk6OlNlbGVj
dFVzaW5nQXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6
CisgICAgY2FzZSBBcnJheTo6VW5wcm9maWxlZDoKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6Cisg
ICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFy
Z3VtZW50czoKKyAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkJpZ1Vp
bnQ2NEFycmF5OgorI2VuZGlmCisgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2Rl
LCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBicmVhazsKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6CisgICAgY2FzZSBBcnJheTo6Qmln
VWludDY0QXJyYXk6CisjZW5kaWYKKyAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CisgICAgICAg
IERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8
fCBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKKyAgICAgICAgaWYg
KG1fZ3JhcGgubV9zbG93UHV0QnlWYWwuY29udGFpbnMobm9kZSkpIHsKKyAgICAgICAgICAgIGlm
IChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBDZWxsVXNl
KSB7CisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MSkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgICAgICBjb21waWxl
UHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN5bWJvbFVzZSkgeworICAgICAg
ICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVy
dHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVl
UmVncygpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0gcHJvcGVydHku
anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVl
LmpzVmFsdWVSZWdzKCk7CisKKyAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAg
ICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkKKyAgICAgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3Mp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRp
b25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdz
LCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOworCisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwor
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1Zh
bHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
LCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVn
cyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdz
ID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
ID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKworICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJ
bnZhbGlkR1BSUmVnOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIEdQUlRlbXBvcmFyeSBz
dHViSW5mbzsKKyAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQp
KSB7CisgICAgICAgICAgICBzdHViSW5mbyA9IEdQUlRlbXBvcmFyeSh0aGlzKTsKKyAgICAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8uZ3ByKCk7CisgICAgICAgIH0KKyNlbmRpZgorCisg
ICAgICAgIHNwZWN1bGF0ZShub2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDAp
KTsKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMSkpOworICAgICAgICBzcGVjdWxhdGUobm9kZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAyKSk7CisKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+b3Jp
Z2luLnNlbWFudGljOworICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVj
b3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNv
ZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOworICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVn
aXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOworICAgICAgICBib29sIGlzRGlyZWN0ID0g
bm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdDsKKyAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUg
PSBub2RlLT5lY21hTW9kZSgpOworCisgICAgICAgIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigK
KyAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24u
bV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vz
c1R5cGU6OlB1dEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICAgICAgYmFzZVJlZ3MsIHBy
b3BlcnR5UmVncywgdmFsdWVSZWdzLCBJbnZhbGlkR1BSUmVnLCBzdHViSW5mb0dQUik7CisKKyAg
ICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDEpKS5pc1R5cGUoU3BlY1N0cmluZykpCisgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJv
cGVydHlJc1N0cmluZyA9IHRydWU7CisgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZSht
X2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY0ludDMyT25seSkp
CisgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsKKyAg
ICAgICAgZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQo
bm9kZSwgMSkpLmlzVHlwZShTcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIGdlbi5zdHViSW5mbygp
LT5wcm9wZXJ0eUlzU3ltYm9sID0gdHJ1ZTsKKworICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0
aChtX2ppdCk7CisKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKKyAg
ICAgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAgICAgICAg
ICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKKworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoOworICAgICAgICBhdXRvIG9w
ZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25EaXJl
Y3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxOb25TdHJp
Y3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3Ry
aWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdE9wdGltaXplKTsKKyAgICAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CisgICAgICAgICAg
ICBzbG93UGF0aCA9IHNsb3dQYXRoSUNDYWxsKAorICAgICAgICAgICAgICAgIHNsb3dDYXNlcywg
dGhpcywgZ2VuLnN0dWJJbmZvKCksIHN0dWJJbmZvR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
c3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNsb3dPcGVyYXRpb24oKSks
IG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBi
YXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBudWxscHRyKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAor
ICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9uLAorICAgICAgICAgICAg
ICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZh
bHVlUmVncywgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAg
bV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBzbG93UGF0aC5nZXQoKSk7CisgICAgICAgIGFkZFNsb3dQ
YXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKKworICAgICAgICBub1Jlc3VsdChub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkludDMyOiB7CisgICAg
ICAgIHNwZWN1bGF0ZUludDMyKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOwor
ICAgICAgICBGQUxMVEhST1VHSDsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6Q29udGlndW91czog
eworICAgICAgICBjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKG5vZGUpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7CisgICAgICAgIGNvbXBpbGVEb3Vi
bGVQdXRCeVZhbChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6
OkFycmF5U3RvcmFnZToKKyAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOiB7Cisg
ICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJB
cmdDaGlsZChub2RlLCAwKSk7CisgICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBw
cm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICAg
ICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAyKSk7CisgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAzKSk7CisKKyAgICAgICAgR1BSUmVnIGJhc2VSZWcgPSBi
YXNlLmdwcigpOworICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsK
KyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAg
ICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOworCisgICAgICAgIGlmIChu
b2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKKyAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2
YWx1ZSB0byB0aGUgYXJyYXkuCisgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9w
ZXJ0eS5ncHIoKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlVmFsdWUodmFsdWVSZWdzLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOworICAgICAg
ICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisg
ICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3Jhcnk7CisgICAgICAgIEdQUlJlZyB0ZW1wb3JhcnlS
ZWcgPSB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CisKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBiZXlvbmRBcnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7Cisg
ICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKKyAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIGJleW9uZEFy
cmF5Qm91bmRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChi
ZXlvbmRBcnJheUJvdW5kcyk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgd3JpdGluZyB0
byBhIGhvbGU7IGlmIHNvIGluY3JlbWVudCBtX251bVZhbHVlc0luVmVjdG9yLgorICAgICAgICBp
ZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
aygKKyAgICAgICAgICAgICAgICBTdG9yZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwK
KyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hJZkVtcHR5KE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSkpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNo
SWZOb3RFbXB0eShNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZz
ZXQoKSkpOworICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc1Nsb3dQdXQoKSkgeworICAgICAg
ICAgICAgICAgIC8vIFRoaXMgaXMgc29ydCBvZiBzdHJhbmdlLiBJZiB3ZSB3YW50ZWQgdG8gb3B0
aW1pemUgdGhpcyBjb2RlIHBhdGgsIHdlIHdvdWxkIGludmVydAorICAgICAgICAgICAgICAgIC8v
IHRoZSBhYm92ZSBicmFuY2guIEJ1dCBpdCdzIHNpbXBseSBub3Qgd29ydGggaXQgc2luY2UgdGhp
cyBvbmx5IGhhcHBlbnMgaWYgd2UncmUKKyAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhdmlu
ZyBhIGJhZCB0aW1lLgorICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuanVt
cCgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJh
eVN0b3JhZ2U6Om51bVZhbHVlc0luVmVjdG9yT2Zmc2V0KCkpKTsKKworICAgICAgICAgICAgICAg
IC8vIElmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xlIHdlIG1pZ2h0IGJlIGdyb3dpbmcgdGhlIGFy
cmF5OworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGxlbmd0aERvZXNOb3RO
ZWVkVXBkYXRlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjps
ZW5ndGhPZmZzZXQoKSkpOworICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0z
MigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7CisgICAgICAgICAgICAgICAgbV9qaXQu
c3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcs
IEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKKworICAgICAgICAgICAgICAgIGxlbmd0
aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIG5vdEhvbGVWYWx1ZS5saW5rKCZtX2ppdCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBT
dG9yZSB0aGUgdmFsdWUgdG8gdGhlIGFycmF5LgorICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHZh
bHVlUmVncywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0
KCkpKTsKKworICAgICAgICBiYXNlLnVzZSgpOworICAgICAgICBwcm9wZXJ0eS51c2UoKTsKKyAg
ICAgICAgdmFsdWUudXNlKCk7CisgICAgICAgIHN0b3JhZ2UudXNlKCk7CisKKyAgICAgICAgaWYg
KCFzbG93Q2FzZXMuZW1wdHkoKSkgeworICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Io
c2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKKyAgICAgICAg
ICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKKyAgICAgICAgICAgICAgICAgICAg
PyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzU3RyaWN0KQorICAgICAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFs
RGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmlj
dCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAorICAgICAg
ICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBt
X2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywg
cHJvcGVydHlSZWcsIHZhbHVlUmVncykpOworICAgICAgICB9CisKKyAgICAgICAgbm9SZXN1bHQo
bm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgQXJyYXk6OkludDhBcnJheToKKyAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5
OgorICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6CisgICAgY2FzZSBBcnJheTo6VWludDhBcnJh
eToKKyAgICBjYXNlIEFycmF5OjpVaW50OENsYW1wZWRBcnJheToKKyAgICBjYXNlIEFycmF5OjpV
aW50MTZBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50MzJBcnJheToKKyAgICBjYXNlIEFycmF5
OjpGbG9hdDMyQXJyYXk6CisgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OiB7CisgICAgICAg
IFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKTsKKyAgICAg
ICAgaWYgKGlzSW50KHR5cGUpKQorICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlw
ZWRBcnJheShub2RlLCB0eXBlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGlsZVB1
dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KG5vZGUsIHR5cGUpOworICAgIH0gfQorfQorCiB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0Q2hhckNvZGVBdChOb2RlKiBub2RlKQogewogICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHN0cmluZyh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC0z
NTY3LDE2ICszODU0LDE5IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmdldEludFR5cGVkQXJyYXlT
dG9yZU9wZXJhbmRGb3JBdG9taWNzKAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2Us
IEdQUlJlZyBwcm9wZXJ0eSwgTm9kZSogbm9kZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoTm9kZSogbm9k
ZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkKIHsKICAgICBBU1NFUlQoaXNJbnQodHlwZSkpOwotICAg
IAorCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJv
cGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CiAgICAgU3Rv
cmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDMpKTsKKwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgIEdQUlJlZyBzdG9y
YWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKLSAgICAKLSAgICBFZGdlIHZhbHVlVXNlID0gbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKTsKLSAgICAKKyAgICBHUFJSZWcgYmFzZVJlZyA9
IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CisK
ICAgICBHUFJUZW1wb3JhcnkgdmFsdWU7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBHUFJU
ZW1wb3JhcnkgcHJvcGVydHlUYWc7CkBAIC0zNTg0LDEzICszODc0LDEzIEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQ
UlJlZyBwcm9wZXJ0CiAjZW5kaWYKIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93UGF0
aENhc2VzOwotICAgIAorCiAgICAgYm9vbCByZXN1bHQgPSBnZXRJbnRUeXBlZEFycmF5U3RvcmVP
cGVyYW5kKAotICAgICAgICB2YWx1ZSwgcHJvcGVydHksCisgICAgICAgIHZhbHVlLCBwcm9wZXJ0
eVJlZywKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBwcm9wZXJ0eVRhZywgdmFsdWVU
YWcsCiAjZW5kaWYKLSAgICAgICAgdmFsdWVVc2UsIHNsb3dQYXRoQ2FzZXMsIGlzQ2xhbXBlZCh0
eXBlKSk7CisgICAgICAgIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMiksIHNsb3dQ
YXRoQ2FzZXMsIGlzQ2xhbXBlZCh0eXBlKSk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAg
bm9SZXN1bHQobm9kZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTM2MDIsNTcgKzM4OTIsNDIgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShHUFJS
ZWcgYmFzZSwgR1BSUmVnIHByb3BlcnQKICAgICBHUFJSZWcgdmFsdWVUYWdHUFIgPSB2YWx1ZVRh
Zy5ncHIoKTsKICNlbmRpZgogCi0gICAgQVNTRVJUX1VOVVNFRCh2YWx1ZUdQUiwgdmFsdWVHUFIg
IT0gcHJvcGVydHkpOwotICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBiYXNlKTsKKyAgICBBU1NFUlRf
VU5VU0VEKHZhbHVlR1BSLCB2YWx1ZUdQUiAhPSBwcm9wZXJ0eVJlZyk7CisgICAgQVNTRVJUKHZh
bHVlR1BSICE9IGJhc2VSZWcpOwogICAgIEFTU0VSVCh2YWx1ZUdQUiAhPSBzdG9yYWdlUmVnKTsK
LSAgICBKSVRDb21waWxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0
T2ZCb3VuZHMobm9kZSwgYmFzZSwgcHJvcGVydHksIHNjcmF0Y2guZ3ByKCkpOworICAgIEpJVENv
bXBpbGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhu
b2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc2NyYXRjaC5ncHIoKSk7CiAKICAgICBzd2l0Y2gg
KGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgY2FzZSAxOgotICAgICAgICBtX2ppdC5zdG9yZTgo
dmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVy
dHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc09uZSkpOworICAgICAgICBtX2ppdC5zdG9yZTgodmFs
dWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc09uZSkpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IDI6Ci0gICAgICAgIG1faml0LnN0b3JlMTYodmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc1R3bykp
OworICAgICAgICBtX2ppdC5zdG9yZTE2KHZhbHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNUd28p
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA0OgotICAgICAgICBtX2ppdC5zdG9yZTMyKHZh
bHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7CisgICAgICAgIG1faml0LnN0b3JlMzIodmFs
dWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBk
b25lID0ganVtcEZvclR5cGVkQXJyYXlJc0RldGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBiYXNl
LCBvdXRPZkJvdW5kcyk7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IGp1bXBGb3JUeXBl
ZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMobm9kZSwgYmFzZVJlZywgb3V0T2ZCb3VuZHMp
OwogICAgIGlmIChkb25lLmlzU2V0KCkpCiAgICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogCiAg
ICAgaWYgKCFzbG93UGF0aENhc2VzLmVtcHR5KCkpIHsKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5l
cmF0b3Ioc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywKKyAg
ICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKQorICAgICAgICAgICAgICAgID8g
KG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0KQorICAgICAgICAgICAgICAgIDogKG5vZGUt
Pm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmlj
dCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0KSwKICNpZiBVU0UoSlNWQUxVRTY0KQotICAg
ICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAgYWRk
U2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNsb3dQYXRo
Q2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgp
ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dE5vblN0cmljdCwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKSksIGJhc2UsIHByb3BlcnR5LCB2YWx1ZUdQUikpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAg
ICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1v
ZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRpb25QdXRC
eVZhbE5vblN0cmljdCwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSksIGJhc2UsIHByb3BlcnR5LCB2YWx1ZUdQUikpOwotICAgICAgICB9CisgICAg
ICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9n
cmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHBy
b3BlcnR5UmVnLCB2YWx1ZUdQUikpOwogI2Vsc2UgLy8gbm90IFVTRShKU1ZBTFVFNjQpCi0gICAg
ICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KSB7Ci0gICAgICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xvd1BhdGhD
YXNlcywgdGhpcywKLSAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdENlbGxOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1Q
dHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9y
aWdpbi5zZW1hbnRpYykpLCBiYXNlLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eVRhZ0dQUiwgcHJvcGVy
dHkpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVHUFIpKSk7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAg
ICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAgICBub2RlLT5l
Y21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpY3QgOiBvcGVy
YXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRy
dXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9y
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eVRhZ0dQ
UiwgcHJvcGVydHkpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVHUFIpKSk7Ci0gICAg
ICAgIH0KKyAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlciht
X2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwg
Q0NhbGxIZWxwZXJzOjpDZWxsVmFsdWUoYmFzZVJlZyksIEpTVmFsdWVSZWdzKHByb3BlcnR5VGFn
R1BSLCBwcm9wZXJ0eVJlZyksIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BSLCB2YWx1ZUdQUikpKTsK
ICNlbmRpZgogICAgIH0KLSAgICAKKwogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCkBAIC0zNjk5
LDM5ICszOTc0LDQwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxv
YXRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlCiAgICAgfQogfQogCi12b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVn
IGJhc2UsIEdQUlJlZyBwcm9wZXJ0eSwgTm9kZSogbm9kZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheShO
b2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQogewogICAgIEFTU0VSVChpc0Zsb2F0KHR5
cGUpKTsKLSAgICAKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJP
cGVyYW5kIHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkp
OworICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWVPcCh0aGlzLCBtX2ppdC5ncmFwaCgp
LnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOwotICAgIEdQUlJlZyBzdG9yYWdl
UmVnID0gc3RvcmFnZS5ncHIoKTsKLSAgICAKLSAgICBFZGdlIHZhbHVlVXNlID0gbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAyKTsKIAotICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQg
dmFsdWVPcCh0aGlzLCB2YWx1ZVVzZSk7CiAgICAgRlBSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7
CiAgICAgR1BSVGVtcG9yYXJ5IGdwU2NyYXRjaCh0aGlzKTsKICAgICBGUFJSZWcgdmFsdWVGUFIg
PSB2YWx1ZU9wLmZwcigpOwogICAgIEZQUlJlZyBzY3JhdGNoRlBSID0gc2NyYXRjaC5mcHIoKTsK
KyAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHByb3BlcnR5UmVn
ID0gcHJvcGVydHkuZ3ByKCk7CiAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBncFNjcmF0Y2guZ3By
KCk7CisgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwogCi0gICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KG5vZGUsIGJhc2UsIHByb3BlcnR5LCBzY3JhdGNoR1BSKTsKLSAgICAKKyAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9k
ZSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHNjcmF0Y2hHUFIpOwogICAgIHN3aXRjaCAoZWxlbWVu
dFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6IHsKICAgICAgICAgbV9qaXQubW92ZURvdWJsZSh2
YWx1ZUZQUiwgc2NyYXRjaEZQUik7CiAgICAgICAgIG1faml0LmNvbnZlcnREb3VibGVUb0Zsb2F0
KHZhbHVlRlBSLCBzY3JhdGNoRlBSKTsKLSAgICAgICAgbV9qaXQuc3RvcmVGbG9hdChzY3JhdGNo
RlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7CisgICAgICAgIG1faml0LnN0b3JlRmxvYXQoc2NyYXRj
aEZQUiwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91cikpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSA4OgotICAgICAgICBtX2ppdC5zdG9yZURvdWJsZSh2YWx1ZUZQUiwgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVGUFIsIE1hY3JvQXNzZW1i
bGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpU
aW1lc0VpZ2h0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0gICAgSklUQ29tcGlsZXI6Okp1bXAg
ZG9uZSA9IGp1bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMobm9kZSwgYmFz
ZSwgb3V0T2ZCb3VuZHMpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlw
ZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIG91dE9mQm91bmRz
KTsKICAgICBpZiAoZG9uZS5pc1NldCgpKQogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKICAg
ICBub1Jlc3VsdChub2RlKTsKQEAgLTM5MTksMTcgKzQxOTUsMTcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogICAgIH0KIH0KIAot
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9k
ZSogbm9kZSwgRWRnZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMykKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqIG5v
ZGUpCiB7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBjaGlsZDEpOwotICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgY2hpbGQyKTsKLSAgICBKU1ZhbHVlT3Bl
cmFuZCBhcmczKHRoaXMsIGNoaWxkMyk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0
aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBhcmcyKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkp
OworICAgIEpTVmFsdWVPcGVyYW5kIGFyZzModGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAyKSk7CiAKICAgICBHUFJSZWcgYXJnMUdQUiA9IGFyZzEuZ3ByKCk7CiAgICAgR1BS
UmVnIGFyZzJHUFIgPSBhcmcyLmdwcigpOwogICAgIEpTVmFsdWVSZWdzIGFyZzNSZWdzID0gYXJn
My5qc1ZhbHVlUmVncygpOwogCi0gICAgc3BlY3VsYXRlU3RyaW5nKGNoaWxkMiwgYXJnMkdQUik7
CisgICAgc3BlY3VsYXRlU3RyaW5nKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSks
IGFyZzJHUFIpOwogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKApA
QCAtMzk0MiwxNyArNDIxOCwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlW
YWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNl
bGxXaXRoU3ltYm9sKE5vZGUqIG5vZGUsIEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdl
JiBjaGlsZDMpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0
aFN5bWJvbChOb2RlKiBub2RlKQogewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhp
cywgY2hpbGQxKTsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcyKHRoaXMsIGNoaWxkMik7
Ci0gICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBjaGlsZDMpOworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFyZzEodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7
CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIG1faml0Lmdy
YXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOwogCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcx
LmdwcigpOwogICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKICAgICBKU1ZhbHVlUmVn
cyBhcmczUmVncyA9IGFyZzMuanNWYWx1ZVJlZ3MoKTsKIAotICAgIHNwZWN1bGF0ZVN5bWJvbChj
aGlsZDIsIGFyZzJHUFIpOworICAgIHNwZWN1bGF0ZVN5bWJvbChtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLCBhcmcyR1BSKTsKIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAg
Y2FsbE9wZXJhdGlvbigKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAppbmRleCBjMTgzZTE4MzNkNTY5YmMxNzU1NWU4Zjc3ODAxMGYyZGUxNWM0NWJkLi5k
MGU4NmMwZDcyMjhhYjVmMTRiOWY4ZTU2M2JiYjExMTdlN2Q5ZmI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xMzQyLDExICsxMzQyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUdldFByb3RvdHlwZU9mKE5vZGUqKTsKICAgICB2
b2lkIGNvbXBpbGVJZGVudGl0eShOb2RlKik7CiAgICAgCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFByb3BlcnR5
T3BlcmFuZFR5cGUsIHR5cGVuYW1lIFZhbHVlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFRhZ1R5cGU+
Ci0gICAgdm9pZCBjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKE5vZGUqLCBCYXNlT3BlcmFuZFR5
cGUmLCBQcm9wZXJ0eU9wZXJhbmRUeXBlJiwgVmFsdWVPcGVyYW5kVHlwZSYsIEdQUlJlZyB2YWx1
ZVBheWxvYWRSZWcsIFRhZ1R5cGUgdmFsdWVUYWcpOwotI2VuZGlmCi0gICAgdm9pZCBjb21waWxl
RG91YmxlUHV0QnlWYWwoTm9kZSosIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXNlLCBTcGVjdWxh
dGVTdHJpY3RJbnQzMk9wZXJhbmQmIHByb3BlcnR5KTsKKyAgICB2b2lkIGNvbXBpbGVDb250aWd1
b3VzUHV0QnlWYWwoTm9kZSopOworICAgIHZvaWQgY29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUq
KTsKICAgICBib29sIHB1dEJ5VmFsV2lsbE5lZWRFeHRyYVJlZ2lzdGVyKEFycmF5TW9kZSBhcnJh
eU1vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gYXJyYXlNb2RlLm1heVN0b3JlVG9Ib2xlKCk7
CkBAIC0xMzU3LDYgKzEzNTQsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0ZW1wb3JhcnlS
ZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZS0+YXJyYXlNb2RlKCkpOwogICAgIH0K
ICAgICAKKyAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbChOb2RlKik7CisKICAgICAvLyBXZSB1c2Ug
YSBzY29wZWRMYW1iZGEgdG8gcGxhY2F0ZSByZWdpc3RlciBhbGxvY2F0aW9uIHZhbGlkYXRpb24u
CiAgICAgZW51bSBjbGFzcyBDYW5Vc2VGbHVzaCB7IFllcywgTm8gfTsKICAgICB2b2lkIGNvbXBp
bGVHZXRCeVZhbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJl
Z3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpOwpAQCAtMTQ0NywxMyArMTQ0NiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21w
aWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXRBc0ludDUyKE5vZGUqKTsKICNlbmRpZgogICAgIHZv
aWQgY29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENh
blVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZv
aWQgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHBy
b3BlcnR5LCBOb2RlKiwgVHlwZWRBcnJheVR5cGUpOworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFs
Rm9ySW50VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUpOwogICAgIHZvaWQgY29tcGls
ZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlLCBjb25zdCBT
Y29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1
c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21w
aWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0
eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUpOwogICAgIHZvaWQgY29tcGlsZUdl
dEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHBy
ZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2Jq
ZWN0V2l0aFN5bWJvbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1
ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmco
Tm9kZSosIEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMpOwotICAgIHZv
aWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2woTm9kZSosIEVkZ2UmIGNoaWxkMSwg
RWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMpOworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9y
Q2VsbFdpdGhTdHJpbmcoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdp
dGhTeW1ib2woTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsV2l0aFRoaXMoTm9kZSop
OwogICAgIHZvaWQgY29tcGlsZVB1dFByaXZhdGVOYW1lKE5vZGUqKTsKICAgICB2b2lkIGNvbXBp
bGVQdXRQcml2YXRlTmFtZUJ5SWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMTg3ZWRjZTAyMzRiZDQ0
ZTk2ODIyOWY2OTgzNzJmMTk1ZDdlODNhOS4uNTIzOWI4YTQ0OTQwNzU4NTk2ODcxZmQyN2VhMjVl
MWE0NzQwYTE3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0xNzQ2LDc1ICsxNzQ2LDYgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6ZW1pdEJyYW5jaChOb2RlKiBub2RlKQogICAgIH0KIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0eU9wZXJhbmRUeXBlLCB0eXBl
bmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBUYWdUeXBlPgotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKiBub2RlLCBCYXNlT3BlcmFuZFR5
cGUmIGJhc2UsIFByb3BlcnR5T3BlcmFuZFR5cGUmIHByb3BlcnR5LCBWYWx1ZU9wZXJhbmRUeXBl
JiB2YWx1ZSwgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZywgVGFnVHlwZSB2YWx1ZVRhZykKLXsKLSAg
ICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7Ci0KLSAg
ICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCk7Ci0gICAgCi0gICAgR1BS
UmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwotICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3Bl
cnR5LmdwcigpOwotICAgIAotICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgY2hpbGQ0
KTsKLSAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICBpZiAobm9k
ZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0gICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0
byB0aGUgYXJyYXkuCi0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5Lmdwcigp
OwotICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlVGFnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgbV9qaXQu
c3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZG
U0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAgICAgICAgCi0gICAgICAgIG5v
UmVzdWx0KG5vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIHNsb3dDYXNlOwotCi0gICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkp
IHsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIE91dE9mQm91bmRzLCBK
U1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0
b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5j
aDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwot
ICAgICAgICAKLSAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7Ci0gICAgICAgIAot
ICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCAwLCBzbG93Q2FzZSk7Ci0g
ICAgICAgIAotICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVn
KTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0g
ICAgICAgIG1faml0LnN1YjMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwotICAgICAg
ICAKLSAgICAgICAgaW5Cb3VuZHMubGluaygmbV9qaXQpOwotICAgIH0KLSAgICAKLSAgICBtX2pp
dC5zdG9yZTMyKHZhbHVlVGFnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9G
KEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9h
ZFJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFz
Qml0cy5wYXlsb2FkKSkpOwotICAgIAotICAgIGJhc2UudXNlKCk7Ci0gICAgcHJvcGVydHkudXNl
KCk7Ci0gICAgdmFsdWUudXNlKCk7Ci0gICAgc3RvcmFnZS51c2UoKTsKLSAgICAKLSAgICBpZiAo
YXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkgewotICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1Bh
dGhDYWxsKAotICAgICAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAotICAgICAgICAgICAgICAg
IG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5
b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5
Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRy
Ojp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmln
aW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFn
LCB2YWx1ZVBheWxvYWRSZWcpKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2Us
IHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3Bl
cmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRy
dXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9y
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1ZVJl
Z3ModmFsdWVUYWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7ICAgIAotfQotCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNo
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAgc3dpdGNoIChu
b2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKQEAgLTI3MTIsMjMwICsyNjQzLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlWYWxEaXJl
Y3Q6CiAgICAgY2FzZSBQdXRCeVZhbDoKICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6IHsKLSAgICAg
ICAgRWRnZSBjaGlsZDEgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApOwotICAg
ICAgICBFZGdlIGNoaWxkMiA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSk7Ci0g
ICAgICAgIEVkZ2UgY2hpbGQzID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKTsK
LSAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMp
OwotICAgICAgICAKLSAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9k
ZSgpLm1vZGVGb3JQdXQoKTsKLSAgICAgICAgYm9vbCBhbHJlYWR5SGFuZGxlZCA9IGZhbHNlOwot
ICAgICAgICAKLSAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAgIGNh
c2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZv
cmNlRXhpdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jaWYg
Q09NUElMRVJfUVVJUksoQ09OU0lERVJTX1VOUkVBQ0hBQkxFX0NPREUpCi0gICAgICAgICAgICB0
ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVS
ZWdzKCksIDApOwotICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotI2VuZGlmCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewotICAgICAg
ICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRC
eVZhbERpcmVjdCk7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5jb250
YWlucyhub2RlKSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpID09IENl
bGxVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0gU3Ry
aW5nVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxs
V2l0aFN0cmluZyhub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYg
KGNoaWxkMi51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlLCBjaGlsZDEsIGNoaWxkMiwg
Y2hpbGQzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0
aGlzLCBjaGlsZDEpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRo
aXMsIGNoaWxkMik7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywg
Y2hpbGQzKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNW
YWx1ZVJlZ3MoKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBw
cm9wZXJ0eS5qc1ZhbHVlUmVncygpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVl
UmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7Ci0KLSAgICAgICAgICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0
KQotICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlW
YWxEaXJlY3ROb25TdHJpY3QsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywg
IHByb3BlcnR5UmVncywgdmFsdWVSZWdzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8g
b3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCwgVHJ1
c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
bm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJl
Z3MpOwotICAgICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICAgICAg
ICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxLCBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQy
LCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQg
dmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAg
ICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7Ci0gICAgICAgICAg
ICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOwotICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKLQot
ICAgICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIGNoaWxkMSk7Ci0gICAgICAgICAgICBzcGVjdWxh
dGUobm9kZSwgY2hpbGQyKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMpOwot
Ci0gICAgICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50
aWM7Ci0gICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2Fs
bFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmln
aW4sIG1fc3RyZWFtLT5zaXplKCkpOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lz
dGVycyA9IHRoaXMtPnVzZWRSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJlY3Qg
PSBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUgZWNt
YU1vZGUgPSBub2RlLT5lY21hTW9kZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdlbmVy
YXRvciBnZW4oCi0gICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRD
b2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBj
YWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCi0gICAgICAgICAg
ICAgICAgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVSZWdzLCBJbnZhbGlkR1BSUmVnLCBJ
bnZhbGlkR1BSUmVnKTsKLQotICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIp
LmlzVHlwZShTcGVjU3RyaW5nKSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJv
cGVydHlJc1N0cmluZyA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5v
ZGUoY2hpbGQyKS5pc1R5cGUoU3BlY0ludDMyT25seSkpCi0gICAgICAgICAgICAgICAgZ2VuLnN0
dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmICht
X3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N5bWJvbCkpCi0gICAgICAgICAgICAg
ICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwotCi0gICAgICAgICAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7Ci0KLSAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5z
bG93UGF0aEp1bXAoKSk7Ci0KLSAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdl
bmVyYXRvcj4gc2xvd1BhdGg7Ci0gICAgICAgICAgICBhdXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0
ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdE9w
dGltaXplIDogb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNt
YU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVy
YXRpb25QdXRCeVZhbE5vblN0cmljdE9wdGltaXplKTsKLSAgICAgICAgICAgIHNsb3dQYXRoID0g
c2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9u
LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlciht
X2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBw
cm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOwotCi0gICAg
ICAgICAgICBtX2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsKLSAgICAgICAg
ICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKLQotICAgICAgICAg
ICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChhbHJlYWR5SGFuZGxl
ZCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAKLSAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEpOwotICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9w
ZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQyKTsKLSAgICAgICAgCi0gICAgICAgIEdQUlJlZyBi
YXNlUmVnID0gYmFzZS5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVy
dHkuZ3ByKCk7Ci0KLSAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAg
IGNhc2UgQXJyYXk6OkludDMyOiB7Ci0gICAgICAgICAgICBzcGVjdWxhdGVJbnQzMihjaGlsZDMp
OwotICAgICAgICAgICAgRkFMTFRIUk9VR0g7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBcnJh
eTo6Q29udGlndW91czogewotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywg
Y2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotCi0gICAgICAgICAgICBHUFJSZWcg
dmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVBh
eWxvYWRSZWcgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYg
KCFtX2NvbXBpbGVPa2F5KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAg
Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChub2RlLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIHZh
bHVlUGF5bG9hZFJlZywgdmFsdWVUYWdSZWcpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7Ci0gICAgICAgICAgICBjb21waWxlRG91
YmxlUHV0QnlWYWwobm9kZSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgotICAgICAgICBjYXNl
IEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOiB7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVUYWdSZWcg
PSB2YWx1ZS50YWdHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcgPSB2
YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghbV9jb21w
aWxlT2theSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIFN0b3JhZ2VP
cGVyYW5kIHN0b3JhZ2UodGhpcywgY2hpbGQ0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzdG9yYWdl
UmVnID0gc3RvcmFnZS5ncHIoKTsKLQotICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0
QnlWYWxBbGlhcykgewotICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUg
YXJyYXkuCi0gICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3By
KCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS50YWdHUFIoKSwgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZG
U0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOwotICAgICAgICAgICAgICAgIG1faml0LnN0
b3JlMzIodmFsdWUucGF5bG9hZEdQUigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3Jh
Z2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9y
YWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5w
YXlsb2FkKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5v
ZGUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotCi0gICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBiZXlvbmRBcnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7Ci0g
ICAgICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwgYmV5b25k
QXJyYXlCb3VuZHMpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOwotCi0gICAgICAgICAgICAvLyBDaGVjayBpZiB3
ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0
b3IuCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAgICAg
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgICAgIFN0b3JlVG9Ib2xl
LCBKU1ZhbHVlUmVncygpLCAwLAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJl
ZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6
OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykp
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVl
ID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihK
U1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVU
YWcpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzU2xvd1B1dCgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc29ydCBvZiBzdHJhbmdlLiBJZiB3ZSB3YW50ZWQg
dG8gb3B0aW1pemUgdGhpcyBjb2RlIHBhdGgsIHdlIHdvdWxkIGludmVydAotICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdvcnRoIGl0
IHNpbmNlIHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCi0gICAgICAgICAgICAgICAgICAgIC8v
IGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCi0gICAgICAgICAgICAgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuanVtcCgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JPZmZz
ZXQoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdy
ZSB3cml0aW5nIHRvIGEgaG9sZSB3ZSBtaWdodCBiZSBncm93aW5nIHRoZSBhcnJheTsgCi0gICAg
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGxlbmd0aERvZXNOb3ROZWVkVXBk
YXRlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhP
ZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIo
MSksIHByb3BlcnR5UmVnKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihwcm9w
ZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdl
OjpsZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdWIzMihUcnVz
dGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9qaXQpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAg
ICAgICAgICAgfQotICAgIAotICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBh
cnJheS4KLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNzZW1i
bGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpU
aW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9G
KEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFs
dWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3Bl
cnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JP
ZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwot
Ci0gICAgICAgICAgICBiYXNlLnVzZSgpOwotICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0g
ICAgICAgICAgICB2YWx1ZS51c2UoKTsKLSAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAg
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAg
ICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBub2Rl
LT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFy
cmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVl
VGFnUmVnLCB2YWx1ZVBheWxvYWRSZWcpKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAg
ICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNO
b25TdHJpY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0
cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3Jp
Z2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRh
Z1JlZywgdmFsdWVQYXlsb2FkUmVnKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNp
dGx5KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgZGVmYXVsdDogewotICAgICAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5TW9k
ZS50eXBlZEFycmF5VHlwZSgpOwotICAgICAgICAgICAgaWYgKGlzSW50KHR5cGUpKQotICAgICAg
ICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJv
cGVydHkuZ3ByKCksIG5vZGUsIHR5cGUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0
eS5ncHIoKSwgbm9kZSwgdHlwZSk7Ci0gICAgICAgIH0gfQorICAgICAgICBjb21waWxlUHV0QnlW
YWwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggYTVhOGNjM2NmNTNlOWU5
MTQ5NzhkZjljMzQzMjA1MDVkYmMyMDg3Yy4uYjNhMTJiYjY4MzY3NTVjYjdlMzUxYWIwMzkwZjg3
MGQyNTczNzAxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCkBAIC0zMzM0LDMxNSArMzMzNCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgIGNh
c2UgUHV0QnlWYWw6CiAgICAgY2FzZSBQdXRCeVZhbEFsaWFzOiB7Ci0gICAgICAgIEVkZ2UgY2hp
bGQxID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKTsKLSAgICAgICAgRWRnZSBj
aGlsZDIgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpOwotICAgICAgICBFZGdl
IGNoaWxkMyA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMik7Ci0gICAgICAgIEVk
Z2UgY2hpbGQ0ID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAzKTsKLSAgICAgICAg
Ci0gICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKS5tb2RlRm9y
UHV0KCk7Ci0gICAgICAgIGJvb2wgYWxyZWFkeUhhbmRsZWQgPSBmYWxzZTsKLSAgICAgICAgCi0g
ICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpT
ZWxlY3RVc2luZ1ByZWRpY3Rpb25zOgotICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6Ci0g
ICAgICAgICAgICBERkdfQ1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgIkJhZCBhcnJheSBtb2Rl
IHR5cGUiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFycmF5OjpCaWdJbnQ2
NEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpCaWdVaW50NjRBcnJheToKLSAgICAgICAgY2Fz
ZSBBcnJheTo6R2VuZXJpYzogewotICAgICAgICAgICAgREZHX0FTU0VSVChtX2ppdC5ncmFwaCgp
LCBub2RlLCBub2RlLT5vcCgpID09IFB1dEJ5VmFsIHx8IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxE
aXJlY3QsIG5vZGUtPm9wKCkpOwotICAgICAgICAgICAgaWYgKG1fZ3JhcGgubV9zbG93UHV0QnlW
YWwuY29udGFpbnMobm9kZSkgfHwgKGNoaWxkMS51c2VLaW5kKCkgIT0gQ2VsbFVzZSAmJiBjaGls
ZDEudXNlS2luZCgpICE9IEtub3duQ2VsbFVzZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hp
bGQxLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGls
ZDIudXNlS2luZCgpID09IFN0cmluZ1VzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29t
cGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcobm9kZSwgY2hpbGQxLCBjaGlsZDIsIGNoaWxk
Myk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgICAgIGlmIChjaGlsZDIudXNlS2luZCgpID09IFN5bWJvbFVzZSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9k
ZSwgY2hpbGQxLCBjaGlsZDIsIGNoaWxkMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbHJl
YWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEpT
VmFsdWVPcGVyYW5kIGFyZzEodGhpcywgY2hpbGQxKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVl
T3BlcmFuZCBhcmcyKHRoaXMsIGNoaWxkMik7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgYXJnMyh0aGlzLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgIEdQUlJlZyBhcmcxR1BSID0g
YXJnMS5ncHIoKTsKLSAgICAgICAgICAgICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7
Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGFyZzNHUFIgPSBhcmczLmdwcigpOwotICAgICAgICAg
ICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkg
PT0gUHV0QnlWYWxEaXJlY3QpCi0gICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9k
ZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3Qg
OiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1Bv
aW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFu
dGljKSksIGFyZzFHUFIsIGFyZzJHUFIsIGFyZzNHUFIpOwotICAgICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3Ry
aWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3Ry
aWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYXJnMUdQUiwgYXJnMkdQUiwgYXJnM0dQ
Uik7Ci0gICAgICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLQotICAgICAgICAg
ICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEpOwotICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQyLCBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBN
YW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBi
YXNlLmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5R1BSID0gcHJvcGVydHkuZ3By
KCk7Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsKLQotICAgICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHN0dWJJbmZvOwotICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZv
R1BSID0gSW52YWxpZEdQUlJlZzsKLSAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMo
SklUVHlwZTo6REZHSklUKSkgewotICAgICAgICAgICAgICAgIHN0dWJJbmZvID0gR1BSVGVtcG9y
YXJ5KHRoaXMpOwotICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8uZ3ByKCk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDIpOwot
ICAgICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIGNoaWxkMyk7Ci0KLSAgICAgICAgICAgIENvZGVP
cmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKLSAgICAgICAgICAgIENh
bGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhj
ZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUo
KSk7Ci0gICAgICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJl
Z2lzdGVycygpOwotICAgICAgICAgICAgYm9vbCBpc0RpcmVjdCA9IG5vZGUtPm9wKCkgPT0gUHV0
QnlWYWxEaXJlY3Q7Ci0gICAgICAgICAgICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFN
b2RlKCk7Ci0KLSAgICAgICAgICAgIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAg
ICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1
YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBl
OjpQdXRCeVZhbCwgdXNlZFJlZ2lzdGVycywKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhi
YXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiks
IEludmFsaWRHUFJSZWcsIHN0dWJJbmZvR1BSKTsKLQotICAgICAgICAgICAgaWYgKG1fc3RhdGUu
Zm9yTm9kZShjaGlsZDIpLmlzVHlwZShTcGVjU3RyaW5nKSkKLSAgICAgICAgICAgICAgICBnZW4u
c3R1YkluZm8oKS0+cHJvcGVydHlJc1N0cmluZyA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlm
IChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY0ludDMyT25seSkpCi0gICAgICAg
ICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Ci0gICAgICAg
ICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N5bWJvbCkp
Ci0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVl
OwotCi0gICAgICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7Ci0KLSAgICAgICAg
ICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICBpZiAoIUpJ
VENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKQotICAgICAgICAgICAgICAgIHNsb3dD
YXNlcy5hcHBlbmQoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKLQotICAgICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKLSAgICAgICAgICAgIGF1dG8gb3Bl
cmF0aW9uID0gaXNEaXJlY3QgPyAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRpcmVj
dFB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbE5vblN0cmlj
dE9wdGltaXplKSA6IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJp
Y3RPcHRpbWl6ZSA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpOwotICAgICAg
ICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAg
ICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aElDQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAg
c2xvd0Nhc2VzLCB0aGlzLCBnZW4uc3R1YkluZm8oKSwgc3R1YkluZm9HUFIsIENDYWxsSGVscGVy
czo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09w
ZXJhdGlvbigpKSwgb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1
c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
Y29kZU9yaWdpbikpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIHN0dWJJbmZvR1BS
LCBudWxscHRyKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2xvd1Bh
dGggPSBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywg
b3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikp
LCBiYXNlR1BSLCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIGdlbi5zdHViSW5mbygpLCBudWxscHRy
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBz
bG93UGF0aC5nZXQoKSk7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3Zl
KHNsb3dQYXRoKSk7Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAg
YWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBpZiAoYWxyZWFkeUhhbmRsZWQpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgIFNwZWN1
bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBjaGlsZDIpOwotICAgICAgICAK
LSAgICAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwotICAgICAgICBHUFJSZWcgcHJv
cGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLQotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50
eXBlKCkpIHsKLSAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6Ci0gICAgICAgIGNhc2UgQXJyYXk6
OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNo
aWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZh
bHVlUmVnID0gdmFsdWUuZ3ByKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBp
bGVPa2F5KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkludDMyKSB7Ci0gICAgICAgICAgICAg
ICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVl
UmVnKSwgY2hpbGQzLCBTcGVjSW50MzJPbmx5LAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2hJZk5vdEludDMyKHZhbHVlUmVnKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgY2hpbGQ0KTsKLSAgICAgICAgICAgIEdQUlJl
ZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKLQotICAgICAgICAgICAgaWYgKG5vZGUtPm9w
KCkgPT0gUHV0QnlWYWxBbGlhcykgewotICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1
ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJv
cGVydHkuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3By
KCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRp
bWVzRWlnaHQpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBub1Jlc3VsdChu
b2RlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IAotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKLSAgICAgICAgICAgIEdQUlJl
ZyB0ZW1wb3JhcnlSZWcgPSB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwg
bm9kZSk7Ci0KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAg
ICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgICAgIE91dE9m
Qm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICBtX2pp
dC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1Ymxp
Y0xlbmd0aCgpKSkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcs
IEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3Jh
Z2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKLSAg
ICAgICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJl
Z3MoKSwgbnVsbHB0ciwgc2xvd0Nhc2UpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJl
Zyk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5n
dGgoKSkpOwotCi0gICAgICAgICAgICAgICAgaW5Cb3VuZHMubGluaygmbV9qaXQpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
VGltZXNFaWdodCkpOwotCi0gICAgICAgICAgICBiYXNlLnVzZSgpOwotICAgICAgICAgICAgcHJv
cGVydHkudXNlKCk7Ci0gICAgICAgICAgICB2YWx1ZS51c2UoKTsKLSAgICAgICAgICAgIHN0b3Jh
Z2UudXNlKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNPdXRP
ZkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1Bh
dGhDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJy
YXlCb3VuZHNTdHJpY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3Qp
LAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNl
IEFycmF5OjpEb3VibGU6IHsKLSAgICAgICAgICAgIGNvbXBpbGVEb3VibGVQdXRCeVZhbChub2Rl
LCBiYXNlLCBwcm9wZXJ0eSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZToKLSAgICAgICAgY2FzZSBB
cnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZTogewotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQg
dmFsdWUodGhpcywgY2hpbGQzKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFs
dWUuZ3ByKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFn
ZSh0aGlzLCBjaGlsZDQpOwotICAgICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdl
LmdwcigpOwotCi0gICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7
Ci0gICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAg
ICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAg
ICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgICAgICAgICBt
X2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VS
ZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdl
Ojp2ZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG5v
UmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwotICAgICAgICAg
ICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVt
cG9yYXJ5LCBub2RlKTsKLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNs
b3dDYXNlczsKLQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlC
b3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9w
ZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdl
Ojp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNP
dXRPZkJvdW5kcygpKQotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3Vu
ZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91
bmRzKTsKLQotICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7
IGlmIHNvIGluY3JlbWVudCBtX251bVZhbHVlc0luVmVjdG9yLgotICAgICAgICAgICAgaWYgKGFy
cmF5TW9kZS5pc0luQm91bmRzKCkpIHsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KAotICAgICAgICAgICAgICAgICAgICBTdG9yZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0
ciwKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVy
OjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQo
KSkpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVy
OjpOb25aZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZz
ZXQoKSkpOwotICAgICAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNTbG93UHV0KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRl
ZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291bGQgaW52ZXJ0Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIHRoZSBhYm92ZSBicmFuY2guIEJ1dCBpdCdzIHNpbXBseSBub3Qgd29ydGgg
aXQgc2luY2UgdGhpcyBvbmx5IGhhcHBlbnMgaWYgd2UncmUKLSAgICAgICAgICAgICAgICAgICAg
Ly8gYWxyZWFkeSBoYXZpbmcgYSBiYWQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nh
c2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9m
ZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIElmIHdl
J3JlIHdyaXRpbmcgdG8gYSBob2xlIHdlIG1pZ2h0IGJlIGdyb3dpbmcgdGhlIGFycmF5OyAKLSAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRV
cGRhdGUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0
aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0z
MigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIG1f
aml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdl
UmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1f
aml0KTsKLSAgICAgICAgICAgIH0KLSAgICAKLSAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1
ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOwotCi0gICAg
ICAgICAgICBiYXNlLnVzZSgpOwotICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0gICAgICAg
ICAgICB2YWx1ZS51c2UoKTsKLSAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAg
IHNsb3dDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5p
c1N0cmljdCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5
VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmlj
dCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCi0gICAgICAgICAg
ICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9u
UHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCA6IG9wZXJhdGlvblB1dEJ5
VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAotICAgICAgICAgICAgICAgICAgICBOb1Jl
c3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2
YWx1ZVJlZykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBub1Jlc3VsdChub2RlLCBV
c2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIEFycmF5OjpJbnQ4QXJyYXk6Ci0gICAgICAg
IGNhc2UgQXJyYXk6OkludDE2QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6
Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVpbnQ4QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVp
bnQ4Q2xhbXBlZEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJheToKLSAgICAg
ICAgY2FzZSBBcnJheTo6VWludDMyQXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJB
cnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQ2NEFycmF5OiB7Ci0gICAgICAgICAgICBU
eXBlZEFycmF5VHlwZSB0eXBlID0gYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCk7Ci0gICAgICAg
ICAgICBpZiAoaXNJbnQodHlwZSkpCi0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9y
SW50VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRU
eXBlZEFycmF5KGJhc2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBBcnJheTo6QW55VHlwZWRB
cnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6U3RyaW5nOgotICAgICAgICBjYXNlIEFycmF5OjpE
aXJlY3RBcmd1bWVudHM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAgICAg
Y2FzZSBBcnJheTo6R2VuZXJpYzoKLSAgICAgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRz
OgotICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ0FyZ3VtZW50czoKLSAgICAgICAgY2Fz
ZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKLSAgICAgICAgY2FzZSBBcnJheTo6VW5k
ZWNpZGVkOgotICAgICAgICBjYXNlIEFycmF5OjpVbnByb2ZpbGVkOgotICAgICAgICBjYXNlIEFy
cmF5OjpCaWdJbnQ2NEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpCaWdVaW50NjRBcnJheToK
LSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KKyAg
ICAgICAgY29tcGlsZVB1dEJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXgg
MjQ0ZjIyMjc5MmM3MGY4MWFkMDc3MTA3YTE2NjMzMmRjNzMxZWYwZi4uNjVkZDhlZGVmNzQ3OTk2
ZDVmNmQ4ZjE5MjQ2ZTZhZDkzMzZkNDczOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oCkBAIC05NjksNiArOTY5LDE1IEBAIHB1YmxpYzoKICNlbmRpZgog
ICAgIH0KIAorICAgIEp1bXAgYnJhbmNoSWZFbXB0eShCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBh
ZGRyZXNzKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBicmFuY2gzMihFcXVhbCwgYWRkcmVzcy53
aXRoT2Zmc2V0KFRhZ09mZnNldCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFn
KSk7CisjZW5kaWYKKyAgICB9CisKICAgICBKdW1wIGJyYW5jaElmRW1wdHkoR1BSUmVnIGdwcikK
ICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTk4Nyw2ICs5OTYsMTUgQEAgcHVibGljOgog
I2VuZGlmCiAgICAgfQogCisgICAgSnVtcCBicmFuY2hJZk5vdEVtcHR5KEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYnJhbmNoVGVz
dDY0KE5vblplcm8sIGFkZHJlc3MpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE5v
dEVxdWFsLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkVtcHR5VmFsdWVUYWcpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIEp1bXAgYnJhbmNoSWZO
b3RFbXB0eShHUFJSZWcgZ3ByKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443410</attachid>
            <date>2021-11-05 09:50:27 -0700</date>
            <delta_ts>2021-11-08 10:29:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211105125025.patch</filename>
            <type>text/plain</type>
            <size>90991</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGU2MmVhNDg4NmFkOGU2Y2EwNjRjYTRjYWRkMTYwYzAyODk4ZGVhLi5lMzI0MjM5MjgxNzUyMjQx
OGJmN2YyZjVlY2Y5NmMzYWNlNzY5OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNDMgQEAKKzIwMjEtMTEtMDQgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVwIGZy
b20gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAg
ICAgdGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNoYW5nZXMgYnV0IGl0IHNob3Vs
ZCBiZSBORkM6CisKKyAgICAgICAgMS4gUmVtb3ZlZCBzZXZlcmFsIGNhbGxzIHRvIG9wZXJhdGlv
blB1dEJ5VmFsKkNlbGwqIHRoYXQgd2VyZQorICAgICAgICBvbmx5IHVzZWQgYnkgdGhlIDMyIGJp
dCBjb2RlIHBhdGhzIGR1ZSB0byB0aGUgbGFjayBvZiByZWdpc3RlcnMuCisgICAgICAgIFRoZXNl
IGNhbGxzIHdlcmUgcmVwbGFjZWQgYnkgdGhlIGNhbGxzIHVzZWQgYnkgdGhlIDY0IGJpdCBwYXRo
cywKKyAgICAgICAgdGhhdCBleHBlY3QgRW5jb2RlZEpTVmFsdWVzCisgICAgICAgIDIuIEJlY2F1
c2Ugb2YgIzEsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aG9zZSBtZXRob2RzLCBzaW5jZSBubyBvbmUK
KyAgICAgICAgdXNlcyB0aGVtIGFueW1vcmUuCisgICAgICAgIDMuIENyZWF0ZWQgY29tcGlsZVB1
dEJ5VmFsIHRvIGhhbmRsZSBhbGwgY2FzZXMgKHNpbWlsYXIgdG8gY29tcGlsZUdldEJ5VmFsKS4K
KyAgICAgICAgNC4gUmVtb3ZlZCB0aGUgRWRnZSYgY2hpbGRYIGZyb20gdGhlIFB1dEJ5VmFsIGhh
bmRsaW5nIChhbmQgYWxsIG1ldGhvZHMKKyAgICAgICAgdGhhdCBleHBlY3RlZCB0aGVtKSBpbiBm
YXZvciBvZiBnZXR0aW5nIHRoZW0gZnJvbSBub2RlIHdoZW4gbmVlZGVkLgorICAgICAgICA1LiBV
bmlmaWVkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwgc28gaXQgY291bGQgYmUgdXNlZCBieSBi
b3RoIDMyCisgICAgICAgIGFuZCA2NCBiaXQgYXJjaHMuCisgICAgICAgIDYuIFJlbW92ZWQgYSBs
b3Qgb2Ygd2hpdGVzcGFjZS4KKworICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRG91YmxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5
cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJv
bCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRQcml2YXRlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRQcml2YXRlTmFtZUJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNl
bGxXaXRoU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxXaXRoVGhpcyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRl
TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRQcml2YXRlTmFtZUJ5SWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2hlY2tQcml2YXRlQnJhbmQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UHJpdmF0ZUJyYW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUlu
Zm9GbGFncyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQYXJzZUludCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yQ2VsbHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1
ZUJpdE5vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVCaXR3aXNlTm90KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6ZW1pdFVudHlwZWRPckFueUJpZ0ludEJpdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0d2lzZU9wKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJpdHdpc2VPcCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRVbnR5cGVkT3JC
aWdJbnRSaWdodFNoaWZ0Qml0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVmFsdWVMU2hpZnRPcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUJpdFJTaGlmdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTaGlmdE9wKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
U3ViKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU1hdGhJQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVJbnN0YW5jZU9mQ3VzdG9tKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUlzQ2VsbFdpdGhUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzVHlwZWRBcnJheVZpZXcpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9PYmplY3RPckNh
bGxPYmplY3RDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEFicyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aENsejMyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRG91YmxlVW5hcnlPcCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aFN1Yik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVJbmNPckRlYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVWYWx1ZU5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aE5lZ2F0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZU11bCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11bCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZURpdik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aEZS
b3VuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVWYWx1ZU1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVBcml0aE1vZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVBcml0aFJvdW5kaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoVW5hcnkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhTcXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTWluTWF4KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpjb21waWxlQXJpdGhQb3dJbnRlZ2VyRmFzdFBhdGgp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFs
dWVQb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhQb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUNvbXBhcmVVbnNpZ25lZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVCb29sZWFuQ29tcGFyZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnQzMkNvbXBhcmUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlQ29t
cGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVPYmplY3RFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVTeW1ib2xFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZVN5bWJvbEVxdWFsaXR5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJpdHdpc2VKU1ZhbHVl
RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpl
bWl0QnJhbmNoT25CaXR3aXNlSlNWYWx1ZUVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5vdERvdWJsZU5laXRoZXJEb3VibGVOb3JI
ZWFwQmlnSW50Tm9yU3RyaW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVOb3REb3VibGVOZWl0aGVyRG91
YmxlTm9ySGVhcEJpZ0ludE5vclN0cmluZ1N0cmljdEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0VxdWFsaXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ1Rv
VW50eXBlZEVxdWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVN0cmluZ0lkZW50RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRUb05vdFN0cmluZ1ZhckVx
dWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVN0cmluZ0NvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU3RyaW5nSWRlbnRDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNhbWVWYWx1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0Jvb2xlYW5TdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9Cb29s
ZWFuU3RyaW5nT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRTdHJpbmdCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjplbWl0U3RyaW5nT3JPdGhlckJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb25zdGFudFN0b3JhZ2VQb2ludGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FnZVR5cGVk
QXJyYXlTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFNjb3BlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNraXBTY29w
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRHbG9iYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0R2xvYmFsVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbkJlUm9wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uQ29t
bW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZU5ld0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVNldEZ1bmN0aW9uTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYXJhcmdzTGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUZvcndhcmRWYXJhcmdz
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNy
ZWF0ZUFjdGl2YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ3JlYXRlRGlyZWN0QXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEZyb21Bcmd1bWVudHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0VG9Bcmd1bWVu
dHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQ3JlYXRlU2NvcGVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUNsb25lZEFyZ3VtZW50cyk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVBcmd1
bWVudHNCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ3JlYXRlUmVzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTcHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU3ByZWFkKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFJlc3RMZW5n
dGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0UG9w
dWxhdGVTbGljZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUFycmF5U2xpY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlJbmRleE9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5UHVzaCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb3RpZnlXcml0ZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc09iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUeXBl
T2ZJc09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVJc0NhbGxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUlzQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cnVjdHVyZUNoZWNrKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSXNDb25zdGFudCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a05vdEVtcHR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUNoZWNrU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0
eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlTnVrZVN0cnVjdHVyZUFuZFNldEJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCdXR0ZXJmbHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OmFsbG9jYXRlVGVtcG9yYXJ5UmVnaXN0ZXJzRm9yU25pcHBldCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxs
RE9NKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUNhbGxET01HZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlQ2hlY2tKU0Nhc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3Ry
aW5nQ29uc3RydWN0b3JPclN0cmluZ1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OmdldEV4ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4
Q29uc3RhbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3U3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N5bWJvbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFy
cmF5V2l0aFNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjplbWl0TmV3VHlwZWRBcnJheVdpdGhTaXplSW5SZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdSZWdleHApOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsVHlwZVdpdGhv
dXRUeXBlRmlsdGVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlQ2VsbFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlYWxOdW1iZXIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEb3VibGVSZXBSZWFs
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZUNlbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVDZWxsT3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRmluYWxPYmplY3QpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVSZWdFeHBPYmpl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVByb3h5T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRGVyaXZlZEFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJvbWlzZU9iamVjdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNYXBP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVTZXRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVXZWFrTWFwT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlV2Vha1NldE9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGFWaWV3T2JqZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2Jq
ZWN0T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZVN0cmluZ09yT3RoZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVudEFuZExvYWRTdG9yYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3Ry
aW5nSWRlbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVTdHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1Zhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN5
bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZUhlYXBCaWdJbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVOb3RDZWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbE5vckJpZ0ludCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdERvdWJsZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5laXRo
ZXJEb3VibGVOb3JIZWFwQmlnSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVP
dGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZU1pc2MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpl
bWl0U3dpdGNoSW50SnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmVtaXRTd2l0Y2hJbW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhclN0cmluZ0p1bXApOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoQ2hhcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCaW5hcnlTd2l0Y2hTdHJpbmdSZWN1
cnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3
aXRjaFN0cmluZ09uU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6ZW1pdFN3aXRjaFN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjphZGRCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpsaW5rQnJhbmNoZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RvcmVCYXJyaWVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRHZXR0
ZXJTZXR0ZXJCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVJlc29sdmVTY29wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEdsb2JhbFZhcmlhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldER5bmFtaWNWYXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0RHluYW1pY1Zhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRDbG9z
dXJlVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dENsb3N1cmVWYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0SW50ZXJuYWxGaWVsZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRJbnRlcm5hbEZpZWxkKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlW
YWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNldFJlZ0V4cE9iamVjdExhc3RJbmRleCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4
cFRlc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlU3RyaW5nUmVwbGFjZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVSZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3kpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwTWF0Y2hGYXN0R2xv
YmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVJlZ0V4cE1hdGNoRmFzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVMYXp5SlNDb25zdGFudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWNvcmRSZWdFeHBD
YWNoZWRSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlRGVmaW5lRGF0YVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURlZmluZUFjY2Vzc29yUHJvcGVydHkpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0QWxsb2NhdGVCdXR0ZXJm
bHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Tm9ybWFsaXplTWFwS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldE1hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVja2V0TmV4dCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkS2V5RnJvbU1hcEJ1
Y2tldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVMb2FkVmFsdWVGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3Rh
dGljRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvck5leHRFeHRyYWN0
SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRW51bWVyYXRvck5leHRFeHRyYWN0TW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFt
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVF
bnVtZXJhdG9ySGFzUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckluQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckhhc093blByb3BlcnR5
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEJ5SWRGbHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQdXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEJ5SWREaXJlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZFdpdGhUaGlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5T2Zmc2V0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5T2Zmc2V0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1h
dGNoU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldFByb3BlcnR5RW51bWVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRFeGVjdXRhYmxlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
Q2FsbGVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVNldENhbGxlZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTZXRBcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVTdHJDYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTmV3QXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlXaXRoU2l6ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvVGhpcyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmpl
Y3RLZXlzT3JPYmplY3RHZXRPd25Qcm9wZXJ0eU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEFzc2lnbik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RDcmVhdGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRl
VGhpcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDcmVhdGVQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlR2VuZXJhdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFz
eW5jR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZU5ld09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVOZXdJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdHZW5lcmF0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXN5
bmNHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTmV3SW50ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1ByaW1pdGl2ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1Byb3BlcnR5S2V5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJp
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVD
YWxsTnVtYmVyQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5U
YWlsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVNldEFkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtNYXBTZXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJvdG90eXBlT2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSWRlbnRpdHkpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWlzY1N0
cmljdEVxKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1p
dEluaXRpYWxpemVCdXR0ZXJmbHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQWxsb2NhdGVOZXdBcnJheVdpdGhTaXplKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0
eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVF
eHRyYWN0Q2F0Y2hMb2NhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVByb2ZpbGVUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmdlbmVyaWNKU1ZhbHVlTm9uUGVlcGhv
bGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Z2VuZXJpY0pTVmFsdWVQZWVwaG9sZUJyYW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIZWFwQmlnSW50RXF1YWxpdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFrZVJvcGUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRv
ckdldEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkVtcHR5KToKKyAgICAgICAgKEpT
Qzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdEVtcHR5KToKKwogMjAyMS0xMS0wMiAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRk
IExMSW50IGZhc3QgcGF0aCBmb3IgT3BNb2Qgb24geDg2XzY0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAzYjQ1OWI2ZjBkMjA2ZTZmYjMxODk5ODE3
OTY0Yzk1YTAxMmIzYTFjLi5jMDJmNTRhNDUzYmU5ZjgwZjg1N2Q2ZGVmOWZlNjczZDdkZDJmMDA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTgy
MCwyNCArODIwLDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFs
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBwdXRCeVZhbEludGVy
bmFsPGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQ
cm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGdsb2JhbE9i
amVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVk
VmFsdWUpOwotfQotCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxD
ZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAg
Ci0gICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwgdm0sIEpT
VmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwotfQot
CiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBK
U0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC05OTYsMjQgKzk3OCw2IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0CiAgICAgcHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2Jq
ZWN0LCB2bSwgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIAotICAgIHB1
dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5j
b2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsK
LSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAKLSAgICBwdXRCeVZhbElu
dGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2Vs
bCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKLX0KLQogSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSlNDZWxsKiBzdHJp
bmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApp
bmRleCBjMjJhYmE3NzBmYzk5Y2M2NGJjNWI5ZTdkOGQ4ZDFiNWJlMjU4YjIzLi4yYzM3ZmQwOTUz
MmZiMzk5N2FlNGQ3ZGI0ZDgwYWFhNGU2MWU4MGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaApAQCAtMTQ1LDggKzE0NSw2IEBAIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3U2V0SXRlcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVy
ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CkBA
IC0xNTUsOCArMTUzLDYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG8KIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVj
dENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2Vs
bCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9uU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRl
eCAwZGFlZjlhY2I3M2Q2MzhiOWE0ZWI2OWIwMDBhMTMxYjkzZTRhNjI2Li5iNzQ2M2U4ZmU5Yjcx
MmY4MjY0NmFiMGZlOTRiYmVlOTE4YjMwM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjQ4MSwyOCArMjQ4MSw5MyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUcmFwcyhOb2RlKiBub2RlKQogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlW
YWwoTm9kZSogbm9kZSwgU3BlY3VsYXRlQ2VsbE9wZXJhbmQmIGJhc2UsIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCYgcHJvcGVydHkpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29u
dGlndW91c1B1dEJ5VmFsKE5vZGUqIG5vZGUpCiB7Ci0gICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAgIEVkZ2UgY2hpbGQ0ID0gbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAzKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0
ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFw
aCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwogCi0g
ICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwotICAgIAogICAgIEdQ
UlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9w
ZXJ0eS5ncHIoKTsKLSAgICAKLSAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlKHRoaXMs
IGNoaWxkMyk7CisgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3Mo
KTsKKworICAgIGlmICghbV9jb21waWxlT2theSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3Rv
cmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDMpKTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CisKKyAgICBpZiAo
bm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1
ZSB0byB0aGUgYXJyYXkuCisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5Lmdw
cigpOworICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlUmVncywgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQpKTsKKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OworICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcg
PSB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CisKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZTsKKworICAgIEFycmF5TW9kZSBhcnJheU1vZGUg
PSBub2RlLT5hcnJheU1vZGUoKTsKKyAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewor
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFs
dWVSZWdzKCksIG51bGxwdHIsCisgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7
CisKKyAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJv
dmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJl
ZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7CisKKyAgICAgICAgaWYgKCFh
cnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhP
dXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgc2xvd0Nhc2UpOworCisgICAgICAg
IG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7
CisgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKKwor
ICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7CisgICAgfQogCisgICAgbV9qaXQuc3RvcmVW
YWx1ZSh2YWx1ZVJlZ3MsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CisKKyAgICBiYXNlLnVzZSgp
OworICAgIHByb3BlcnR5LnVzZSgpOworICAgIHZhbHVlLnVzZSgpOworICAgIHN0b3JhZ2UudXNl
KCk7CisKKyAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkgeworICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICBzbG93Q2FzZSwgdGhp
cywKKyAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKQorICAgICAgICAgICAg
ICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCkKKyAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFs
RGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmlj
dCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAorICAgICAg
ICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3Jh
cGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9w
ZXJ0eVJlZywgdmFsdWVSZWdzKSk7CisgICAgfQorCisgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hp
bGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUpCit7CisgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9
IG5vZGUtPmFycmF5TW9kZSgpOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVTdHJp
Y3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAxKSk7CisgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKworICAgIEdQUlJlZyBiYXNlUmVnID0gYmFz
ZS5ncHIoKTsKKyAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKICAgICBG
UFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKLSAgICAKKwogICAgIERGR19UWVBFX0NIRUNL
KAotICAgICAgICBKU1ZhbHVlUmVncygpLCBjaGlsZDMsIFNwZWNGdWxsUmVhbE51bWJlciwKKyAg
ICAgICAgSlNWYWx1ZVJlZ3MoKSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSwg
U3BlY0Z1bGxSZWFsTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFuY2hJZk5hTih2YWx1ZVJlZykp
OwotICAgIAorCiAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQogICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQpOworCisgICAgU3RvcmFn
ZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMp
KTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CiAKICAgICBpZiAobm9k
ZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CkBAIC0yNTEwLDQxICsyNTc1LDQxIEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiBub2RlLCBTcGVjdWxh
dGVDZWxsT3BlcmFuZCYgYmFzCiAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5
LmdwcigpOwogICAgICAgICBGUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKICAgICAgICAg
bV9qaXQuc3RvcmVEb3VibGUodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3Rv
cmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7Ci0gICAg
ICAgIAorCiAgICAgICAgIG5vUmVzdWx0KG1fY3VycmVudE5vZGUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIAorCiAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKICAgICBHUFJSZWcg
dGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5v
ZGUpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0gICAgCisKICAgICBp
ZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAog
ICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsCiAgICAgICAg
ICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0
eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZz
ZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVy
Zmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0gICAgICAgIAorCiAgICAgICAgIHNsb3dD
YXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zm
c2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAgICAgICAKKwogICAgICAgICBpZiAoIWFycmF5TW9k
ZS5pc091dE9mQm91bmRzKCkpCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7Ci0gICAgICAgIAorCiAgICAg
ICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJl
Zyk7CiAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsK
IAogICAgICAgICBpbkJvdW5kcy5saW5rKCZtX2ppdCk7CiAgICAgfQotICAgIAorCiAgICAgbV9q
aXQuc3RvcmVEb3VibGUodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CiAKICAgICBi
YXNlLnVzZSgpOwogICAgIHByb3BlcnR5LnVzZSgpOwogICAgIHZhbHVlLnVzZSgpOwogICAgIHN0
b3JhZ2UudXNlKCk7Ci0gICAgCisKICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkg
ewogICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgICAgIHNsb3dQYXRoQ2Fs
bCgKQEAgLTI1NTgsNiArMjYyMywyMjYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURv
dWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXMKICAgICBu
b1Jlc3VsdChtX2N1cnJlbnROb2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKK3sKKyAg
ICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOwor
ICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgeworICAgIGNhc2UgQXJyYXk6OkFueVR5cGVk
QXJyYXk6CisgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgorICAgIGNhc2UgQXJyYXk6OlNlbGVj
dFVzaW5nQXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6
CisgICAgY2FzZSBBcnJheTo6VW5wcm9maWxlZDoKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6Cisg
ICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFy
Z3VtZW50czoKKyAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkJpZ1Vp
bnQ2NEFycmF5OgorI2VuZGlmCisgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2Rl
LCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBicmVhazsKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6CisgICAgY2FzZSBBcnJheTo6Qmln
VWludDY0QXJyYXk6CisjZW5kaWYKKyAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CisgICAgICAg
IERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8
fCBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKKyAgICAgICAgaWYg
KG1fZ3JhcGgubV9zbG93UHV0QnlWYWwuY29udGFpbnMobm9kZSkpIHsKKyAgICAgICAgICAgIGlm
IChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBDZWxsVXNl
KSB7CisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MSkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgICAgICBjb21waWxl
UHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN5bWJvbFVzZSkgeworICAgICAg
ICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVy
dHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVl
UmVncygpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0gcHJvcGVydHku
anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVl
LmpzVmFsdWVSZWdzKCk7CisKKyAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAg
ICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkKKyAgICAgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3Mp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRp
b25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdz
LCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOworCisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwor
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1Zh
bHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
LCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVn
cyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdz
ID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
ID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKworICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJ
bnZhbGlkR1BSUmVnOworICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1YkluZm87CisgICAgICAgIGlm
IChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAgc3R1
YkluZm8gPSBHUFJUZW1wb3JhcnkodGhpcyk7CisgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0
dWJJbmZvLmdwcigpOworICAgICAgICB9CisKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBzcGVjdWxhdGUobm9kZSwg
bV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgIHNwZWN1bGF0ZShu
b2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKworICAgICAgICBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7CisgICAgICAgIENhbGxT
aXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0
aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7
CisgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJz
KCk7CisgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0
OworICAgICAgICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7CisKKyAgICAg
ICAgSklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAorICAgICAgICAgICAgbV9qaXQuY29kZUJsb2Nr
KCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklU
LCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3Rl
cnMsCisgICAgICAgICAgICBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIEludmFs
aWRHUFJSZWcsIHN0dWJJbmZvR1BSKTsKKworICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjU3RyaW5nKSkKKyAg
ICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3RyaW5nID0gdHJ1ZTsKKyAgICAg
ICAgZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMSkpLmlzVHlwZShTcGVjSW50MzJPbmx5KSkKKyAgICAgICAgICAgIGdlbi5zdHViSW5mbygp
LT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5v
ZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTeW1ib2wp
KQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwor
CisgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKworICAgICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKQorICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xv
d1BhdGhKdW1wKCkpOworCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRv
cj4gc2xvd1BhdGg7CisgICAgICAgIGF1dG8gb3BlcmF0aW9uID0gaXNEaXJlY3QgPyAoZWNtYU1v
ZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBv
cGVyYXRpb25EaXJlY3RQdXRCeVZhbE5vblN0cmljdE9wdGltaXplKSA6IChlY21hTW9kZS5pc1N0
cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvblB1dEJ5
VmFsTm9uU3RyaWN0T3B0aW1pemUpOworICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkRGR0pJVCkpIHsKKyAgICAgICAgICAgIHNsb3dQYXRoID0gc2xvd1BhdGhJQ0NhbGwo
CisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBnZW4uc3R1YkluZm8oKSwgc3R1Yklu
Zm9HUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1Yklu
Zm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgb3BlcmF0aW9uLAorICAgICAgICAgICAgICAg
IE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVl
UmVncywgc3R1YkluZm9HUFIsIG51bGxwdHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0
aGlzLCBvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6
OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGNvZGVPcmlnaW4p
KSwgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVSZWdzLCBnZW4uc3R1YkluZm8oKSwgbnVs
bHB0cik7CisgICAgICAgIH0KKworICAgICAgICBtX2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQ
YXRoLmdldCgpKTsKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RGTW92ZShzbG93UGF0
aCkpOworCisgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgY2FzZSBBcnJheTo6SW50MzI6IHsKKyAgICAgICAgc3BlY3VsYXRlSW50MzIobV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIH0K
KyAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7CisgICAgICAgIGNvbXBpbGVDb250aWd1b3Vz
UHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpE
b3VibGU6IHsKKyAgICAgICAgY29tcGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUpOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgorICAgIGNhc2UgQXJy
YXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
YmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAg
U3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgU3RvcmFnZU9w
ZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsK
KworICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBw
cm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0
b3JhZ2UuZ3ByKCk7CisKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykg
eworICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAg
ICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworICAgICAgICAgICAgbV9q
aXQuc3RvcmVWYWx1ZSh2YWx1ZVJlZ3MsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3Jh
Z2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFy
eTsKKyAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0
QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5
Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFn
ZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRP
ZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNW
YWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKKworICAgICAg
ICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1f
bnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7
CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgIFN0b3JlVG9I
b2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5j
aElmRW1wdHkoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0
KCkpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFuY2hJZk5vdEVtcHR5KE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAoYXJy
YXlNb2RlLmlzU2xvd1B1dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9m
IHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291
bGQgaW52ZXJ0CisgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mg
c2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQorICAg
ICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCisgICAgICAgICAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JP
ZmZzZXQoKSkpOworCisgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhv
bGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7CisgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisgICAgICAgICAg
ICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5
UmVnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQo
KSkpOworCisgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9q
aXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0
KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXku
CisgICAgICAgIG1faml0LnN0b3JlVmFsdWUodmFsdWVSZWdzLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdo
dCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOworCisgICAgICAgIGJhc2UudXNlKCk7
CisgICAgICAgIHByb3BlcnR5LnVzZSgpOworICAgICAgICB2YWx1ZS51c2UoKTsKKyAgICAgICAg
c3RvcmFnZS51c2UoKTsKKworICAgICAgICBpZiAoIXNsb3dDYXNlcy5lbXB0eSgpKSB7CisgICAg
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICAg
ICAgc2xvd0Nhc2VzLCB0aGlzLAorICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKQorICAgICAgICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGly
ZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9w
ZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCisgICAgICAgICAgICAgICAg
ICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCksCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWdzKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6SW50OEFycmF5
OgorICAgIGNhc2UgQXJyYXk6OkludDE2QXJyYXk6CisgICAgY2FzZSBBcnJheTo6SW50MzJBcnJh
eToKKyAgICBjYXNlIEFycmF5OjpVaW50OEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQ4Q2xh
bXBlZEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQxNkFycmF5OgorICAgIGNhc2UgQXJyYXk6
OlVpbnQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKKyAgICBjYXNlIEFy
cmF5OjpGbG9hdDY0QXJyYXk6IHsKKyAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5
TW9kZS50eXBlZEFycmF5VHlwZSgpOworICAgICAgICBpZiAoaXNJbnQodHlwZSkpCisgICAgICAg
ICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KG5vZGUsIHR5cGUpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkobm9k
ZSwgdHlwZSk7CisgICAgfSB9Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRD
aGFyQ29kZUF0KE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc3RyaW5n
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKQEAgLTM1NjcsMTYgKzM4NTIsMTkgQEAgYm9vbCBTcGVj
dWxhdGl2ZUpJVDo6Z2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZEZvckF0b21pY3MoCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFs
Rm9ySW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiBub2Rl
LCBUeXBlZEFycmF5VHlwZSB0eXBlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5
VmFsRm9ySW50VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQogewog
ICAgIEFTU0VSVChpc0ludCh0eXBlKSk7Ci0gICAgCisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNw
ZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKTsKICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworCiAgICAgR1BSVGVtcG9yYXJ5IHNj
cmF0Y2godGhpcyk7CiAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAg
IAotICAgIEVkZ2UgdmFsdWVVc2UgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
OwotICAgIAorICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgcHJv
cGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKKwogICAgIEdQUlRlbXBvcmFyeSB2YWx1ZTsKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlRlbXBvcmFyeSBwcm9wZXJ0eVRhZzsKQEAgLTM1
ODQsMTMgKzM4NzIsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9y
SW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnQKICNlbmRpZgogCiAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoQ2FzZXM7Ci0gICAgCisKICAgICBib29sIHJl
c3VsdCA9IGdldEludFR5cGVkQXJyYXlTdG9yZU9wZXJhbmQoCi0gICAgICAgIHZhbHVlLCBwcm9w
ZXJ0eSwKKyAgICAgICAgdmFsdWUsIHByb3BlcnR5UmVnLAogI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CiAgICAgICAgIHByb3BlcnR5VGFnLCB2YWx1ZVRhZywKICNlbmRpZgotICAgICAgICB2YWx1ZVVz
ZSwgc2xvd1BhdGhDYXNlcywgaXNDbGFtcGVkKHR5cGUpKTsKKyAgICAgICAgbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAyKSwgc2xvd1BhdGhDYXNlcywgaXNDbGFtcGVkKHR5cGUpKTsK
ICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMzYwMiw1NyArMzg5MCw0MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
UHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydAogICAg
IEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlVGFnLmdwcigpOwogI2VuZGlmCiAKLSAgICBBU1NF
UlRfVU5VU0VEKHZhbHVlR1BSLCB2YWx1ZUdQUiAhPSBwcm9wZXJ0eSk7Ci0gICAgQVNTRVJUKHZh
bHVlR1BSICE9IGJhc2UpOworICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZhbHVlR1BSICE9
IHByb3BlcnR5UmVnKTsKKyAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZVJlZyk7CiAgICAgQVNT
RVJUKHZhbHVlR1BSICE9IHN0b3JhZ2VSZWcpOwotICAgIEpJVENvbXBpbGVyOjpKdW1wIG91dE9m
Qm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0
eSwgc2NyYXRjaC5ncHIoKSk7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBq
dW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBz
Y3JhdGNoLmdwcigpKTsKIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBj
YXNlIDE6Ci0gICAgICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25l
KSk7CisgICAgICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25l
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMjoKLSAgICAgICAgbV9qaXQuc3RvcmUxNih2
YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0
eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzVHdvKSk7CisgICAgICAgIG1faml0LnN0b3JlMTYodmFs
dWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc1R3bykpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IDQ6Ci0gICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIp
KTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91
cikpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBDUkFTSCgpOwogICAg
IH0KIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlzRGV0
YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2UsIG91dE9mQm91bmRzKTsKKyAgICBKSVRDb21w
aWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0RldGFjaGVkSWZPdXRPZkJvdW5k
cyhub2RlLCBiYXNlUmVnLCBvdXRPZkJvdW5kcyk7CiAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAg
ICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAKICAgICBpZiAoIXNsb3dQYXRoQ2FzZXMuZW1wdHko
KSkgeworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAg
ICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAorICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5p
c1N0cmljdCgpCisgICAgICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVj
dCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxTdHJp
Y3QpCisgICAgICAgICAgICAgICAgOiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJp
Y3QpLAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5
VmFsRGlyZWN0KSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENh
bGwoCi0gICAgICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAg
ICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LAotICAgICAgICAgICAgICAg
IE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgcHJvcGVydHksIHZh
bHVlR1BSKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVy
YXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywK
LSAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25Q
dXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LAotICAgICAgICAgICAg
ICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgcHJvcGVydHks
IHZhbHVlR1BSKSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlR1BSKSk7CiAjZWxz
ZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAg
IG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2Vs
bFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdCwKLSAgICAgICAg
ICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9n
cmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2UsIEpTVmFs
dWVSZWdzKHByb3BlcnR5VGFnR1BSLCBwcm9wZXJ0eSksIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BS
LCB2YWx1ZUdQUikpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0
aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsQ2VsbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0cmljdCwK
LSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9n
cmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJh
c2UsIEpTVmFsdWVSZWdzKHByb3BlcnR5VGFnR1BSLCBwcm9wZXJ0eSksIEpTVmFsdWVSZWdzKHZh
bHVlVGFnR1BSLCB2YWx1ZUdQUikpKTsKLSAgICAgICAgfQorICAgICAgICAgICAgTm9SZXN1bHQs
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShiYXNl
UmVnKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3BlcnR5UmVnKSwgSlNWYWx1ZVJl
Z3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwogI2VuZGlmCiAgICAgfQotICAgIAorCiAgICAg
bm9SZXN1bHQobm9kZSk7CiB9CiAKQEAgLTM2OTksMzkgKzM5NzIsNDAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9kZSwgVHlw
ZWRBcnJheVR5cGUKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRC
eVZhbEZvckZsb2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2Rl
KiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5
cGUpCiB7CiAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgIAorCisgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDAp
KTsKKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFu
ZCB2YWx1ZU9wKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOwogICAg
IFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAzKSk7Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAgIAot
ICAgIEVkZ2UgdmFsdWVVc2UgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwog
Ci0gICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZU9wKHRoaXMsIHZhbHVlVXNlKTsKICAg
ICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJUZW1wb3JhcnkgZ3BTY3JhdGNo
KHRoaXMpOwogICAgIEZQUlJlZyB2YWx1ZUZQUiA9IHZhbHVlT3AuZnByKCk7CiAgICAgRlBSUmVn
IHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZwcigpOworICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5n
cHIoKTsKKyAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKICAgICBHUFJS
ZWcgc2NyYXRjaEdQUiA9IGdwU2NyYXRjaC5ncHIoKTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9
IHN0b3JhZ2UuZ3ByKCk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9
IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgcHJvcGVydHksIHNjcmF0
Y2hHUFIpOwotICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVt
cEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc2Ny
YXRjaEdQUik7CiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDog
ewogICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKHZhbHVlRlBSLCBzY3JhdGNoRlBSKTsKICAgICAg
ICAgbV9qaXQuY29udmVydERvdWJsZVRvRmxvYXQodmFsdWVGUFIsIHNjcmF0Y2hGUFIpOwotICAg
ICAgICBtX2ppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpKTsKKyAg
ICAgICAgbV9qaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIDg6Ci0gICAgICAgIG1faml0LnN0b3Jl
RG91YmxlKHZhbHVlRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOworICAgICAgICBtX2ppdC5zdG9y
ZURvdWJsZSh2YWx1ZUZQUiwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CiAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0Rl
dGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBvdXRPZkJvdW5kcyk7CisgICAgSklUQ29t
cGlsZXI6Okp1bXAgZG9uZSA9IGp1bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3Vu
ZHMobm9kZSwgYmFzZVJlZywgb3V0T2ZCb3VuZHMpOwogICAgIGlmIChkb25lLmlzU2V0KCkpCiAg
ICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIG5vUmVzdWx0KG5vZGUpOwpAQCAtMzkxOSwx
NyArNDE5MywxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5hbWVC
eUlkKE5vZGUqIG5vZGUpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
UHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsIEVkZ2Um
IGNoaWxkMiwgRWRnZSYgY2hpbGQzKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5
VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBhcmcxKHRoaXMsIGNoaWxkMSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0
aGlzLCBjaGlsZDIpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKKyAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcxKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0
aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAogICAgIEdQUlJlZyBh
cmcxR1BSID0gYXJnMS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAg
ICAgSlNWYWx1ZVJlZ3MgYXJnM1JlZ3MgPSBhcmczLmpzVmFsdWVSZWdzKCk7CiAKLSAgICBzcGVj
dWxhdGVTdHJpbmcoY2hpbGQyLCBhcmcyR1BSKTsKKyAgICBzcGVjdWxhdGVTdHJpbmcobV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSwgYXJnMkdQUik7CiAKICAgICBmbHVzaFJlZ2lz
dGVycygpOwogICAgIGNhbGxPcGVyYXRpb24oCkBAIC0zOTQyLDE3ICs0MjE2LDE3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqIG5v
ZGUsIEVkZ2UmIGNoaWxkMSwKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2woTm9kZSogbm9kZSwgRWRn
ZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMykKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKE5vZGUqIG5vZGUpCiB7Ci0gICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBjaGlsZDEpOwotICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFyZzIodGhpcywgY2hpbGQyKTsKLSAgICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRo
aXMsIGNoaWxkMyk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBh
cmcyKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgIEpTVmFs
dWVPcGVyYW5kIGFyZzModGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7
CiAKICAgICBHUFJSZWcgYXJnMUdQUiA9IGFyZzEuZ3ByKCk7CiAgICAgR1BSUmVnIGFyZzJHUFIg
PSBhcmcyLmdwcigpOwogICAgIEpTVmFsdWVSZWdzIGFyZzNSZWdzID0gYXJnMy5qc1ZhbHVlUmVn
cygpOwogCi0gICAgc3BlY3VsYXRlU3ltYm9sKGNoaWxkMiwgYXJnMkdQUik7CisgICAgc3BlY3Vs
YXRlU3ltYm9sKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSksIGFyZzJHUFIpOwog
CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9uKApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGMxODNlMTgzM2Q1Njli
YzE3NTU1ZThmNzc4MDEwZjJkZTE1YzQ1YmQuLmQwZTg2YzBkNzIyOGFiNWYxNGI5ZjhlNTYzYmJi
MTExN2U3ZDlmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgKQEAgLTEzNDIsMTEgKzEzNDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxl
R2V0UHJvdG90eXBlT2YoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUlkZW50aXR5KE5vZGUqKTsK
ICAgICAKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhc2VP
cGVyYW5kVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVmFsdWVP
cGVyYW5kVHlwZSwgdHlwZW5hbWUgVGFnVHlwZT4KLSAgICB2b2lkIGNvbXBpbGVDb250aWd1b3Vz
UHV0QnlWYWwoTm9kZSosIEJhc2VPcGVyYW5kVHlwZSYsIFByb3BlcnR5T3BlcmFuZFR5cGUmLCBW
YWx1ZU9wZXJhbmRUeXBlJiwgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZywgVGFnVHlwZSB2YWx1ZVRh
Zyk7Ci0jZW5kaWYKLSAgICB2b2lkIGNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiwgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQmIGJhc2UsIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCYgcHJvcGVy
dHkpOworICAgIHZvaWQgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKik7CisgICAgdm9p
ZCBjb21waWxlRG91YmxlUHV0QnlWYWwoTm9kZSopOwogICAgIGJvb2wgcHV0QnlWYWxXaWxsTmVl
ZEV4dHJhUmVnaXN0ZXIoQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBhcnJheU1vZGUubWF5U3RvcmVUb0hvbGUoKTsKQEAgLTEzNTcsNiArMTM1NCw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5
LCBub2RlLT5hcnJheU1vZGUoKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZVB1dEJ5
VmFsKE5vZGUqKTsKKwogICAgIC8vIFdlIHVzZSBhIHNjb3BlZExhbWJkYSB0byBwbGFjYXRlIHJl
Z2lzdGVyIGFsbG9jYXRpb24gdmFsaWRhdGlvbi4KICAgICBlbnVtIGNsYXNzIENhblVzZUZsdXNo
IHsgWWVzLCBObyB9OwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsKE5vZGUqLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CkBAIC0xNDQ3LDEzICsxNDQ2
LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldEFz
SW50NTIoTm9kZSopOwogI2VuZGlmCiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkludFR5cGVk
QXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBs
ZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVy
cmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBl
ZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqLCBUeXBlZEFycmF5VHlw
ZSk7CisgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KE5vZGUqLCBUeXBl
ZEFycmF5VHlwZSk7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRBcnJheShO
b2RlKiwgVHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFs
dWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3Jt
YXQpPiYgcHJlZml4KTsKLSAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJh
eShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiwgVHlwZWRBcnJheVR5cGUpOwor
ICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFy
cmF5VHlwZSk7CiAgICAgdm9pZCBjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5v
ZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAg
ICAgdm9pZCBjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqLCBjb25zdCBT
Y29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1
c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21w
aWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBj
aGlsZDIsIEVkZ2UmIGNoaWxkMyk7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0
aFN5bWJvbChOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7
CisgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKik7CisgICAg
dm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlR2V0QnlWYWxXaXRoVGhpcyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlUHV0UHJpdmF0
ZU5hbWUoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVB1dFByaXZhdGVOYW1lQnlJZChOb2RlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAppbmRleCAxODdlZGNlMDIzNGJkNDRlOTY4MjI5ZjY5ODM3MmYxOTVkN2U4M2E5Li41
MjM5YjhhNDQ5NDA3NTg1OTY4NzFmZDI3ZWEyNWUxYTQ3NDBhMTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTE3
NDYsNzUgKzE3NDYsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNoKE5vZGUqIG5v
ZGUpCiAgICAgfQogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlT3BlcmFuZFR5cGUsIHR5cGVu
YW1lIFByb3BlcnR5T3BlcmFuZFR5cGUsIHR5cGVuYW1lIFZhbHVlT3BlcmFuZFR5cGUsIHR5cGVu
YW1lIFRhZ1R5cGU+Ci12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29udGlndW91c1B1dEJ5
VmFsKE5vZGUqIG5vZGUsIEJhc2VPcGVyYW5kVHlwZSYgYmFzZSwgUHJvcGVydHlPcGVyYW5kVHlw
ZSYgcHJvcGVydHksIFZhbHVlT3BlcmFuZFR5cGUmIHZhbHVlLCBHUFJSZWcgdmFsdWVQYXlsb2Fk
UmVnLCBUYWdUeXBlIHZhbHVlVGFnKQotewotICAgIEVkZ2UgY2hpbGQ0ID0gbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAzKTsKLQotICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2Rl
LT5hcnJheU1vZGUoKTsKLSAgICAKLSAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7Ci0g
ICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgCi0gICAgU3RvcmFn
ZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQpOwotICAgIEdQUlJlZyBzdG9yYWdlUmVnID0g
c3RvcmFnZS5ncHIoKTsKLQotICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsK
LSAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgR1BSUmVn
IHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIodmFs
dWVUYWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMudGFnKSkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3Nl
bWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXls
b2FkKSkpOwotICAgICAgICAKLSAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0KLSAg
ICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KAotICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAgICAg
ICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRP
ZlB1YmxpY0xlbmd0aCgpKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGluQm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5
OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0gICAgICAgIAotICAgICAgICBzbG93Q2FzZSA9
IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9m
VmVjdG9yTGVuZ3RoKCkpKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0
T2ZCb3VuZHMoKSkKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpT
VmFsdWVSZWdzKCksIDAsIHNsb3dDYXNlKTsKLSAgICAgICAgCi0gICAgICAgIG1faml0LmFkZDMy
KFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6
Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKLSAgICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZElt
bTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgIAotICAgICAgICBpbkJvdW5kcy5saW5rKCZt
X2ppdCk7Ci0gICAgfQotICAgIAotICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWcsIE1hY3JvQXNz
ZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOwot
ICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgCi0gICAg
YmFzZS51c2UoKTsKLSAgICBwcm9wZXJ0eS51c2UoKTsKLSAgICB2YWx1ZS51c2UoKTsKLSAgICBz
dG9yYWdlLnVzZSgpOwotICAgIAotICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKSB7
Ci0gICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KSB7Ci0gICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xv
d0Nhc2UsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgp
ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAg
ICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3Jh
cGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9w
ZXJ0eVJlZywgSlNWYWx1ZVJlZ3ModmFsdWVUYWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAgICAgICAgICAgICAgICBub2Rl
LT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwK
LSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9n
cmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJh
c2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZywgdmFsdWVQYXlsb2FkUmVn
KSkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5D
YWxsZWRFeHBsaWNpdGx5KTsgICAgCi19Ci0KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVl
UmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0
KT4mIHByZWZpeCkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewpA
QCAtMjcxMiwyMzAgKzI2NDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICBjYXNlIFB1dEJ5VmFsOgogICAg
IGNhc2UgUHV0QnlWYWxBbGlhczogewotICAgICAgICBFZGdlIGNoaWxkMSA9IG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMCk7Ci0gICAgICAgIEVkZ2UgY2hpbGQyID0gbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAxKTsKLSAgICAgICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAgICAgICBFZGdlIGNoaWxkNCA9IG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7Ci0gICAgICAgIAotICAgICAgICBBcnJheU1v
ZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOwotICAgICAgICBi
b29sIGFscmVhZHlIYW5kbGVkID0gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBzd2l0Y2ggKGFy
cmF5TW9kZS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0
aW9uczoKLSAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgotICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNpZiBDT01QSUxFUl9RVUlSSyhDT05TSURFUlNfVU5S
RUFDSEFCTEVfQ09ERSkKLSAgICAgICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9u
KEluYWRlcXVhdGVDb3ZlcmFnZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7Ci0gICAgICAgICAgICBhbHJl
YWR5SGFuZGxlZCA9IHRydWU7Ci0jZW5kaWYKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIEFycmF5OjpHZW5lcmljOiB7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbCB8fCBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KTsKLSAgICAgICAgICAgIGlm
IChtX2dyYXBoLm1fc2xvd1B1dEJ5VmFsLmNvbnRhaW5zKG5vZGUpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNoaWxkMS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKG5vZGUsIGNoaWxkMSwgY2hp
bGQyLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTeW1ib2xV
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRo
U3ltYm9sKG5vZGUsIGNoaWxkMSwgY2hpbGQyLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgICAgICAg
ICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQyKTsKLSAgICAgICAgICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgIEpT
VmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwotICAgICAgICAgICAgICAg
IEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7Ci0gICAg
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsK
LQotICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICAgICAgaWYg
KG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpCi0gICAgICAgICAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgVHJ1c3RlZElt
bVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MpOwot
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihu
b2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9w
ZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dy
YXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFz
ZVJlZ3MsICBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7Ci0gICAgICAgICAgICAgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKLQotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAg
ICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlz
LCBjaGlsZDEsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBKU1ZhbHVl
T3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBjaGlsZDIsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7
Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMsIE1hbnVhbE9w
ZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJh
c2UuanNWYWx1ZVJlZ3MoKTsKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9
IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwotCi0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwg
Y2hpbGQxKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDIpOwotICAgICAgICAg
ICAgc3BlY3VsYXRlKG5vZGUsIGNoaWxkMyk7Ci0KLSAgICAgICAgICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKLSAgICAgICAgICAgIENhbGxTaXRlSW5k
ZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFu
ZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7Ci0gICAg
ICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygp
OwotICAgICAgICAgICAgYm9vbCBpc0RpcmVjdCA9IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJl
Y3Q7Ci0gICAgICAgICAgICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7Ci0K
LSAgICAgICAgICAgIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBt
X2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBK
SVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQdXRCeVZh
bCwgdXNlZFJlZ2lzdGVycywKLSAgICAgICAgICAgICAgICBiYXNlUmVncywgcHJvcGVydHlSZWdz
LCB2YWx1ZVJlZ3MsIEludmFsaWRHUFJSZWcsIEludmFsaWRHUFJSZWcpOwotCi0gICAgICAgICAg
ICBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNTdHJpbmcpKQotICAgICAg
ICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3RyaW5nID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlwZShTcGVjSW50MzJP
bmx5KSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0g
dHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlw
ZShTcGVjU3ltYm9sKSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJ
c1N5bWJvbCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0
KTsKLQotICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKLSAgICAg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKLQotICAgICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKLSAgICAgICAg
ICAgIGF1dG8gb3BlcmF0aW9uID0gaXNEaXJlY3QgPyAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25EaXJlY3RQdXRC
eVZhbE5vblN0cmljdE9wdGltaXplKSA6IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9u
UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1p
emUpOwotICAgICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAg
ICAgc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQs
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKGNvZGVPcmlnaW4pKSwgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVSZWdzLCBnZW4u
c3R1YkluZm8oKSwgbnVsbHB0cik7Ci0KLSAgICAgICAgICAgIG1faml0LmFkZFB1dEJ5VmFsKGdl
biwgc2xvd1BhdGguZ2V0KCkpOwotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RG
TW92ZShzbG93UGF0aCkpOwotCi0gICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAg
ICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgaWYgKGFscmVhZHlIYW5kbGVkKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIAotICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0g
ICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBjaGlsZDIp
OwotICAgICAgICAKLSAgICAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwotICAgICAg
ICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLQotICAgICAgICBzd2l0Y2gg
KGFycmF5TW9kZS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6IHsKLSAgICAg
ICAgICAgIHNwZWN1bGF0ZUludDMyKGNoaWxkMyk7Ci0gICAgICAgICAgICBGQUxMVEhST1VHSDsK
LSAgICAgICAgfQotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7Ci0gICAgICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMsIE1hbnVhbE9wZXJhbmRTcGVjdWxh
dGlvbik7Ci0KLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ1JlZyA9IHZhbHVlLnRhZ0dQUigp
OwotICAgICAgICAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZyA9IHZhbHVlLnBheWxvYWRHUFIo
KTsKLSAgICAgICAgCi0gICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBjb21waWxlQ29udGlndW91c1B1dEJ5VmFsKG5v
ZGUsIGJhc2UsIHByb3BlcnR5LCB2YWx1ZSwgdmFsdWVQYXlsb2FkUmVnLCB2YWx1ZVRhZ1JlZyk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFycmF5OjpEb3Vi
bGU6IHsKLSAgICAgICAgICAgIGNvbXBpbGVEb3VibGVQdXRCeVZhbChub2RlLCBiYXNlLCBwcm9w
ZXJ0eSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIEFycmF5
OjpBcnJheVN0b3JhZ2U6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6
IHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxkMyk7Ci0KLSAg
ICAgICAgICAgIEdQUlJlZyB2YWx1ZVRhZ1JlZyA9IHZhbHVlLnRhZ0dQUigpOwotICAgICAgICAg
ICAgR1BSUmVnIHZhbHVlUGF5bG9hZFJlZyA9IHZhbHVlLnBheWxvYWRHUFIoKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQp
OwotICAgICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotCi0gICAg
ICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAgICAgICBHUFJS
ZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5z
dG9yZTMyKHZhbHVlLnRhZ0dQUigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VS
ZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdl
Ojp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcp
KSk7Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5wYXlsb2FkR1BSKCksIE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNU
X09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBz
bG93Q2FzZXM7Ci0KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5
Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFn
ZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgIGlmICghYXJyYXlNb2RlLmlz
T3V0T2ZCb3VuZHMoKSkKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCAwLCBiZXlvbmRBcnJheUJvdW5kcyk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChiZXlvbmRBcnJheUJvdW5kcyk7
Ci0KLSAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xlOyBpZiBz
byBpbmNyZW1lbnQgbV9udW1WYWx1ZXNJblZlY3Rvci4KLSAgICAgICAgICAgIGlmIChhcnJheU1v
ZGUuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKLSAg
ICAgICAgICAgICAgICAgICAgU3RvcmVUb0hvbGUsIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAg
ICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZG
U0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0
eVZhbHVlVGFnKSkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rv
ck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwotICAgICAgICAgICAgICAgIGlmIChh
cnJheU1vZGUuaXNTbG93UHV0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBz
b3J0IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwg
d2Ugd291bGQgaW52ZXJ0Ci0gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhYm92ZSBicmFuY2gu
IEJ1dCBpdCdzIHNpbXBseSBub3Qgd29ydGggaXQgc2luY2UgdGhpcyBvbmx5IGhhcHBlbnMgaWYg
d2UncmUKLSAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBoYXZpbmcgYSBiYWQgdGltZS4K
LSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwotICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRy
dXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlT
dG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xlIHdlIG1pZ2h0
IGJlIGdyb3dpbmcgdGhlIGFycmF5OyAKLSAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwotICAgICAgICAg
ICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIG1faml0LnN1YjMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBsZW5ndGhEb2VzTm90TmVlZFVw
ZGF0ZS5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5v
dEhvbGVWYWx1ZS5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9Ci0gICAgCi0gICAgICAgICAg
ICAvLyBTdG9yZSB0aGUgdmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMih2YWx1ZVRhZ1JlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVj
dG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOwot
ICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1l
c0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpT
VmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0KLSAgICAgICAgICAgIGJhc2UudXNlKCk7Ci0g
ICAgICAgICAgICBwcm9wZXJ0eS51c2UoKTsKLSAgICAgICAgICAgIHZhbHVlLnVzZSgpOwotICAg
ICAgICAgICAgc3RvcmFnZS51c2UoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFz
bG93Q2FzZXMuZW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1
dEJ5VmFsRGlyZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywK
LSAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBw
cm9wZXJ0eVJlZywgSlNWYWx1ZVJlZ3ModmFsdWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBhZGRTbG93UGF0
aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgICAgICBzbG93Q2Fz
ZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3Ry
aWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0
aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dy
YXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJv
cGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFnUmVnLCB2YWx1ZVBheWxvYWRSZWcpKSk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBub1Jlc3VsdChu
b2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBkZWZhdWx0OiB7Ci0gICAgICAgICAgICBU
eXBlZEFycmF5VHlwZSB0eXBlID0gYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCk7Ci0gICAgICAg
ICAgICBpZiAoaXNJbnQodHlwZSkpCi0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9y
SW50VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRU
eXBlZEFycmF5KGJhc2UuZ3ByKCksIHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAg
ICAgfSB9CisgICAgICAgIGNvbXBpbGVQdXRCeVZhbChub2RlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAppbmRleCBhNWE4Y2MzY2Y1M2U5ZTkxNDk3OGRmOWMzNDMyMDUwNWRiYzIwODdjLi5i
M2ExMmJiNjgzNjc1NWNiN2UzNTFhYjAzOTBmODcwZDI1NzM3MDFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTMzMzQsMzE1
ICszMzM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
IGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAgICAgY2FzZSBQdXRCeVZhbDoKICAgICBjYXNlIFB1dEJ5
VmFsQWxpYXM6IHsKLSAgICAgICAgRWRnZSBjaGlsZDEgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDApOwotICAgICAgICBFZGdlIGNoaWxkMiA9IG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMSk7Ci0gICAgICAgIEVkZ2UgY2hpbGQzID0gbV9qaXQuZ3JhcGgoKS52YXJB
cmdDaGlsZChub2RlLCAyKTsKLSAgICAgICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDMpOwotICAgICAgICAKLSAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9k
ZSA9IG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKTsKLSAgICAgICAgYm9vbCBhbHJlYWR5
SGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlw
ZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Ci0gICAg
ICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAgICAgICAgIERGR19DUkFTSChtX2ppdC5n
cmFwaCgpLCBub2RlLCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6
OkJpZ1VpbnQ2NEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7Ci0gICAgICAg
ICAgICBERkdfQVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCwgbm9kZS0+b3AoKSk7Ci0gICAgICAg
ICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5jb250YWlucyhub2RlKSB8fCAoY2hpbGQx
LnVzZUtpbmQoKSAhPSBDZWxsVXNlICYmIGNoaWxkMS51c2VLaW5kKCkgIT0gS25vd25DZWxsVXNl
KSkgewotICAgICAgICAgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpID09IENlbGxVc2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmlu
Zyhub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51
c2VLaW5kKCkgPT0gU3ltYm9sVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxl
UHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBjaGls
ZDEpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZzIodGhpcywgY2hpbGQyKTsK
LSAgICAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIGNoaWxkMyk7Ci0gICAg
ICAgICAgICAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwotICAgICAgICAgICAgICAg
IEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKLSAgICAgICAgICAgICAgICBHUFJSZWcgYXJn
M0dQUiA9IGFyZzMuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAg
ICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkKLSAgICAgICAg
ICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBv
cGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9u
U3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2Jh
bE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYXJnMUdQUiwgYXJnMkdQUiwgYXJn
M0dQUik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjYWxsT3Bl
cmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3Ry
aWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczR1BSKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOwotCi0gICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAg
ICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlz
LCBjaGlsZDIsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0gICAgICAgICAgICBKU1ZhbHVl
T3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0g
ICAgICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgcHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB2YWx1
ZUdQUiA9IHZhbHVlLmdwcigpOwotCi0gICAgICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1YkluZm87
Ci0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAg
ICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAg
ICAgICAgICAgc3R1YkluZm8gPSBHUFJUZW1wb3JhcnkodGhpcyk7Ci0gICAgICAgICAgICAgICAg
c3R1YkluZm9HUFIgPSBzdHViSW5mby5ncHIoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgc3BlY3VsYXRlKG5vZGUsIGNoaWxkMik7Ci0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwg
Y2hpbGQzKTsKLQotICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+b3Jp
Z2luLnNlbWFudGljOwotICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0
LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRl
ZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKLSAgICAgICAgICAgIFJlZ2lzdGVyU2V0
IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICBib29s
IGlzRGlyZWN0ID0gbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdDsKLSAgICAgICAgICAgIEVD
TUFNb2RlIGVjbWFNb2RlID0gbm9kZS0+ZWNtYU1vZGUoKTsKLQotICAgICAgICAgICAgSklUUHV0
QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAm
bV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29k
ZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAot
ICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0
eUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxpZEdQUlJlZywgc3R1YkluZm9HUFIp
OwotCi0gICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNT
dHJpbmcpKQotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3RyaW5n
ID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlz
VHlwZShTcGVjSW50MzJPbmx5KSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJv
cGVydHlJc0ludDMyID0gdHJ1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9k
ZShjaGlsZDIpLmlzVHlwZShTcGVjU3ltYm9sKSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1Yklu
Zm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKG1faml0KTsKLQotICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNs
b3dDYXNlczsKLSAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRG
R0pJVCkpCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1w
KCkpOwotCi0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNs
b3dQYXRoOwotICAgICAgICAgICAgYXV0byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9k
ZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3Ry
aWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlW
YWxOb25TdHJpY3RPcHRpbWl6ZSk7Ci0gICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlD
KEpJVFR5cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRo
SUNDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIGdlbi5zdHViSW5m
bygpLCBzdHViSW5mb0dQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1
Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBvcGVyYXRpb24sCi0gICAg
ICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dy
YXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VHUFIsIHByb3Bl
cnR5R1BSLCB2YWx1ZUdQUiwgc3R1YkluZm9HUFIsIG51bGxwdHIpOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAg
ICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAg
ICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VHUFIsIHByb3BlcnR5R1BSLCB2YWx1
ZUdQUiwgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBtX2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsKLSAgICAgICAgICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKLQotICAgICAgICAgICAg
bm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmIChhbHJlYWR5SGFuZGxlZCkK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2Uo
dGhpcywgY2hpbGQxKTsKLSAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3Bl
cnR5KHRoaXMsIGNoaWxkMik7Ci0gICAgICAgIAotICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJh
c2UuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwot
Ci0gICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5
OjpJbnQzMjoKLSAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAg
ICAgCi0gICAgICAgICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBB
cnJheTo6SW50MzIpIHsKLSAgICAgICAgICAgICAgICBERkdfVFlQRV9DSEVDSygKLSAgICAgICAg
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVSZWcpLCBjaGlsZDMsIFNwZWNJbnQzMk9ubHks
Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaElmTm90SW50MzIodmFsdWVSZWcpKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlz
LCBjaGlsZDQpOwotICAgICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigp
OwotCi0gICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAg
ICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAgICAg
ICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5z
dG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBHUFJUZW1wb3Jhcnkg
dGVtcG9yYXJ5OwotICAgICAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJl
Z2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKLQotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChh
cnJheU1vZGUuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
aygKLSAgICAgICAgICAgICAgICAgICAgT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxw
dHIsCi0gICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpB
Ym92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdl
UmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0g
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xl
bmd0aCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2UgPSBt
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZl
Y3Rvckxlbmd0aCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFh
cnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBzbG93Q2FzZSk7Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMy
KDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5z
dG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywg
QnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0KLSAgICAgICAgICAgICAgICBp
bkJvdW5kcy5saW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1faml0
LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7Ci0KLSAgICAgICAgICAg
IGJhc2UudXNlKCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eS51c2UoKTsKLSAgICAgICAgICAgIHZh
bHVlLnVzZSgpOwotICAgICAgICAgICAgc3RvcmFnZS51c2UoKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAgICAgICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAg
IHNsb3dDYXNlLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlz
U3RyaWN0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0
IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlW
YWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCi0gICAgICAgICAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZh
bHVlUmVnKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewotICAgICAgICAg
ICAgY29tcGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBBcnJheTo6
QXJyYXlTdG9yYWdlOgotICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOiB7
Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMpOwotCi0gICAg
ICAgICAgICBHUFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgCi0gICAgICAg
ICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAgICAgICAg
ICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAgICAgICAgIGlmIChu
b2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICAvLyBTdG9yZSB0
aGUgdmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJl
ZyA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVJlZyA9IHZh
bHVlLmdwcigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIEdQUlRl
bXBvcmFyeSB0ZW1wb3Jhcnk7Ci0gICAgICAgICAgICBHUFJSZWcgdGVtcG9yYXJ5UmVnID0gdGVt
cG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUpOwotCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotCi0gICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBiZXlvbmRBcnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7Ci0g
ICAgICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwg
YmV5b25kQXJyYXlCb3VuZHMpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOwotCi0gICAgICAgICAgICAvLyBDaGVj
ayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVz
SW5WZWN0b3IuCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAg
ICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgICAgIFN0b3Jl
VG9Ib2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICBtX2pp
dC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSkpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RIb2xlVmFsdWUgPSBtX2pp
dC5icmFuY2hUZXN0NjQoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgaWYg
KGFycmF5TW9kZS5pc1Nsb3dQdXQoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRo
LCB3ZSB3b3VsZCBpbnZlcnQKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5j
aC4gQnV0IGl0J3Mgc2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBp
ZiB3ZSdyZQotICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhdmluZyBhIGJhZCB0aW1l
LgotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIo
VHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJh
eVN0b3JhZ2U6Om51bVZhbHVlc0luVmVjdG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWln
aHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7IAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0
b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAg
ICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5
UmVnKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zm
c2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoRG9l
c05vdE5lZWRVcGRhdGUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgfQotICAgIAot
ICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAg
IG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3Jh
Z2U6OnZlY3Rvck9mZnNldCgpKSk7Ci0KLSAgICAgICAgICAgIGJhc2UudXNlKCk7Ci0gICAgICAg
ICAgICBwcm9wZXJ0eS51c2UoKTsKLSAgICAgICAgICAgIHZhbHVlLnVzZSgpOwotICAgICAgICAg
ICAgc3RvcmFnZS51c2UoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFzbG93Q2Fz
ZXMuZW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAotICAgICAgICAg
ICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZh
bERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc1N0cmljdCkKLSAgICAgICAgICAgICAgICAgICAgICAgIDogKG5vZGUtPm9wKCkg
PT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmlj
dCksCi0gICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9p
bnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50
aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVnKSk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgQXJyYXk6OkludDhBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6SW50MTZBcnJheToKLSAg
ICAgICAgY2FzZSBBcnJheTo6SW50MzJBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6VWludDhB
cnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6VWludDhDbGFtcGVkQXJyYXk6Ci0gICAgICAgIGNh
c2UgQXJyYXk6OlVpbnQxNkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpVaW50MzJBcnJheToK
LSAgICAgICAgY2FzZSBBcnJheTo6RmxvYXQzMkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpG
bG9hdDY0QXJyYXk6IHsKLSAgICAgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBhcnJheU1v
ZGUudHlwZWRBcnJheVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkKLSAgICAg
ICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KGJhc2UuZ3ByKCksIHBy
b3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVy
dHkuZ3ByKCksIG5vZGUsIHR5cGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQot
ICAgICAgICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpT
dHJpbmc6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKLSAgICAgICAgY2Fz
ZSBBcnJheTo6Rm9yY2VFeGl0OgotICAgICAgICBjYXNlIEFycmF5OjpHZW5lcmljOgotICAgICAg
ICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVj
dFVzaW5nQXJndW1lbnRzOgotICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rp
b25zOgotICAgICAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6
OlVucHJvZmlsZWQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6Ci0gICAgICAg
IGNhc2UgQXJyYXk6OkJpZ1VpbnQ2NEFycmF5OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQorICAgICAgICBjb21waWxlUHV0QnlWYWwobm9kZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAyNDRmMjIyNzkyYzcwZjgxYWQwNzcxMDdhMTY2
MzMyZGM3MzFlZjBmLi42NWRkOGVkZWY3NDc5OTZkNWY2ZDhmMTkyNDZlNmFkOTMzNmQ0NzM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTk2OSw2
ICs5NjksMTUgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgSnVtcCBicmFuY2hJZkVt
cHR5KEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAg
ICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIGFkZHJlc3MpOworI2Vsc2UKKyAgICAgICAgcmV0
dXJuIGJyYW5jaDMyKEVxdWFsLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSwgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsKKyNlbmRpZgorICAgIH0KKwogICAgIEp1
bXAgYnJhbmNoSWZFbXB0eShHUFJSZWcgZ3ByKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpA
QCAtOTg3LDYgKzk5NiwxNSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBKdW1wIGJy
YW5jaElmTm90RW1wdHkoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVF
NjQpCisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywgYWRkcmVzcyk7CisjZWxz
ZQorICAgICAgICByZXR1cm4gYnJhbmNoMzIoTm90RXF1YWwsIGFkZHJlc3Mud2l0aE9mZnNldChU
YWdPZmZzZXQpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOworI2VuZGlm
CisgICAgfQorCiAgICAgSnVtcCBicmFuY2hJZk5vdEVtcHR5KEdQUlJlZyBncHIpCiAgICAgewog
I2lmIFVTRShKU1ZBTFVFNjQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443565</attachid>
            <date>2021-11-08 10:29:39 -0800</date>
            <delta_ts>2021-11-09 04:19:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211108182937.patch</filename>
            <type>text/plain</type>
            <size>91026</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGU2MmVhNDg4NmFkOGU2Y2EwNjRjYTRjYWRkMTYwYzAyODk4ZGVhLi5hMzQ0NTE4YjNmZjhlMDg5
ODhmOWEwODhlYWFlZTAxMGRlZTMzYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNDQgQEAKKzIwMjEtMTEtMDQgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgRm9sbG93LXVwIGZyb20g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAgICAg
dGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNvZGUgY2hhbmdlcyBidXQgdGhlIHBh
dGNoIGRvZXNuJ3QKKyAgICAgICAgYWRkL3JlbW92ZSBhbnkgZmVhdHVyZToKKworICAgICAgICAx
LiBSZW1vdmVkIHNldmVyYWwgY2FsbHMgdG8gb3BlcmF0aW9uUHV0QnlWYWwqQ2VsbCogdGhhdCB3
ZXJlCisgICAgICAgIG9ubHkgdXNlZCBieSB0aGUgMzIgYml0IGNvZGUgcGF0aHMgZHVlIHRvIHRo
ZSBsYWNrIG9mIHJlZ2lzdGVycy4KKyAgICAgICAgVGhlc2UgY2FsbHMgd2VyZSByZXBsYWNlZCBi
eSB0aGUgY2FsbHMgdXNlZCBieSB0aGUgNjQgYml0IHBhdGhzLAorICAgICAgICB0aGF0IGV4cGVj
dCBFbmNvZGVkSlNWYWx1ZXMKKyAgICAgICAgMi4gQmVjYXVzZSBvZiAjMSwgdGhpcyBwYXRjaCBy
ZW1vdmVzIHRob3NlIG1ldGhvZHMsIHNpbmNlIG5vIG9uZQorICAgICAgICB1c2VzIHRoZW0gYW55
bW9yZS4KKyAgICAgICAgMy4gQ3JlYXRlZCBjb21waWxlUHV0QnlWYWwgdG8gaGFuZGxlIGFsbCBj
YXNlcyAoc2ltaWxhciB0byBjb21waWxlR2V0QnlWYWwpLgorICAgICAgICA0LiBSZW1vdmVkIHRo
ZSBFZGdlJiBjaGlsZFggZnJvbSB0aGUgUHV0QnlWYWwgaGFuZGxpbmcgKGFuZCBhbGwgbWV0aG9k
cworICAgICAgICB0aGF0IGV4cGVjdGVkIHRoZW0pIGluIGZhdm9yIG9mIGdldHRpbmcgdGhlbSBm
cm9tIG5vZGUgd2hlbiBuZWVkZWQuCisgICAgICAgIDUuIFVuaWZpZWQgY29tcGlsZUNvbnRpZ3Vv
dXNQdXRCeVZhbCBzbyBpdCBjb3VsZCBiZSB1c2VkIGJ5IGJvdGggMzIKKyAgICAgICAgYW5kIDY0
IGJpdCBhcmNocy4KKyAgICAgICAgNi4gUmVtb3ZlZCBhIGxvdCBvZiB3aGl0ZXNwYWNlLgorCisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRp
b25zLmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVk
QXJyYXkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWxPbkZsb2F0VHlwZWRBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbEZvck9iamVj
dFdpdGhTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVO
YW1lQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0UHJpdmF0ZU5hbWVCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JD
ZWxsV2l0aFN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbFdpdGhUaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dFByaXZhdGVOYW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dFByaXZhdGVOYW1lQnlJZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a1ByaXZhdGVCcmFuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVTZXRQcml2YXRlQnJhbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBhcnNlSW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU92ZXJyaWRlc0hh
c0luc3RhbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUluc3RhbmNlT2ZGb3JDZWxscyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0Tm90KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJpdHdpc2VOb3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0VW50eXBlZE9yQW55
QmlnSW50Qml0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlVmFsdWVCaXR3aXNlT3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQml0d2lzZU9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFVudHlwZWRPckJpZ0ludFJpZ2h0U2hpZnRCaXRPcCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1
ZUxTaGlmdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlQml0UlNoaWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVNoaWZ0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWF0aElDKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20p
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSXND
ZWxsV2l0aFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlSXNUeXBlZEFycmF5Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb09iamVjdE9yQ2FsbE9iamVjdENvbnN0cnVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRo
QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoQWJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoQ2x6MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlQXJpdGhEb3VibGVVbmFyeU9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoU3ViKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluY09yRGVjKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTmVnYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRo
TmVnYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVZhbHVlTXVsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUFyaXRoTXVsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVZhbHVlRGl2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRGl2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRlJvdW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTW9kKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91
bmRpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhVbmFyeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcml0aFNxcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OmNvbXBpbGVBcml0aFBvd0ludGVnZXJGYXN0UGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVBvdyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFBvdyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29tcGFyZVVuc2lnbmVk
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0
cmljdEVxKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUJvb2xlYW5Db21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludDMyQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEVxdWFsaXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN5bWJvbEVx
dWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVBlZXBIb2xlU3ltYm9sRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjplbWl0Qml0d2lzZUpTVmFsdWVFcXVhbGl0eSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2hPbkJpdHdpc2VKU1Zh
bHVlRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTm90RG91YmxlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmdTdHJp
Y3RFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQZWVwSG9sZU5vdERvdWJsZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50Tm9yU3Ry
aW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU3RyaW5nRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nVG9VbnR5cGVkRXF1YWxpdHkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRl
bnRFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVTdHJpbmdJZGVudFRvTm90U3RyaW5nVmFyRXF1YWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nQ29tcGFyZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdJ
ZGVudENvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlU2FtZVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVRvQm9vbGVhblN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0Jvb2xlYW5TdHJpbmdPck90aGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cmluZ0JyYW5j
aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTdHJp
bmdPck90aGVyQnJhbmNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNvbnN0YW50U3RvcmFnZVBvaW50ZXIpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWdlVHlwZWRBcnJheVN0b3JhZ2UpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0SW5kZXhlZFBy
b3BlcnR5U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGlyZWN0QXJndW1lbnRz
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5VmFsT25TY29wZWRBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0U2NvcGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2tpcFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdsb2JhbE9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRHbG9iYWxU
aGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FuQmVS
b3BlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEFycmF5TGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrSWRlbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb25Db21tb24pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0RnVuY3Rpb25O
YW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVZhcmFyZ3NMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTG9hZFZhcmFyZ3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlRm9yd2FyZFZhcmFyZ3MpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlQWN0aXZhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVEaXJl
Y3RBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0RnJvbUFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRUb0FyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcmd1bWVudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVTY29wZWRB
cmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVSZXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNw
cmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdBcnJheVdpdGhTcHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVzdExlbmd0aCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRQb3B1bGF0ZVNsaWNlSW5kZXgpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlTbGlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
cnJheUluZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJyYXlQdXNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU5vdGlmeVdyaXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVR5cGVPZklzT2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzQ2FsbGFibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSXNDb25z
dHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVUeXBlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjplbWl0U3RydWN0dXJlQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2hlY2tJc0NvbnN0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrTm90RW1wdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tTdHJ1Y3R1cmUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdWtlU3RydWN0dXJlQW5k
U2V0QnV0dGVyZmx5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6YWxs
b2NhdGVUZW1wb3JhcnlSZWdpc3RlcnNGb3JTbmlwcGV0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTUdldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0pTQ2Fz
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnRlbXBvcmFy
eVJlZ2lzdGVyRm9yUHV0QnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9yU3RyaW5n
VmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Z2V0RXhlY3V0YWJsZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVGdW5jdGlv
blRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZU51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dp
dGhSYWRpeCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVOZXdTdHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTmV3U3ltYm9sKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1R5cGVkQXJyYXlXaXRoU2l6ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXROZXdUeXBlZEFycmF5V2l0
aFNpemVJblJlZ2lzdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZU5ld1JlZ2V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsVHlw
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZUludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlUmVhbE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURvdWJsZVJlcFJlYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVCb29sZWFuKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlQ2VsbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNlbGxPck90aGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVGaW5hbE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlZ0V4cE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUFycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJveHlPYmplY3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEZXJp
dmVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVQcm9taXNlT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNldE9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVXZWFrU2V0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRGF0YVZpZXdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVPYmplY3RPck90aGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3RyaW5n
T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0cmluZ09iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0
cmluZ09yU3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3ltYm9sKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlSGVhcEJpZ0ludCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5v
dENlbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVOb3RDZWxsTm9yQmlnSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90RG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVO
ZWl0aGVyRG91YmxlTm9ySGVhcEJpZ0ludE5vclN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU90aGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWlzYyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hJbnRKdW1wKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaEltbSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hD
aGFyU3RyaW5nSnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRTd2l0Y2hDaGFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6ZW1pdEJpbmFyeVN3aXRjaFN0cmluZ1JlY3Vyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoU3RyaW5nT25TdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3
aXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmFkZEJy
YW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmxpbmtC
cmFuY2hlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVTdG9yZUJhcnJpZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEdldHRlclNldHRlckJ5SWQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVzb2x2ZVNjb3Bl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJl
c29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0R2xvYmFsVmFyaWFibGUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0R2xvYmFs
VmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0RHluYW1pY1Zhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXREeW5hbWljVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldENsb3N1cmVWYXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0Q2xvc3VyZVZhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRJbnRl
cm5hbEZpZWxkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVB1dEludGVybmFsRmllbGQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRSZWdFeHBPYmplY3RMYXN0SW5k
ZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
U2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cEV4ZWMpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdSZXBsYWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cEV4
ZWNOb25HbG9iYWxPclN0aWNreSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBNYXRjaEZhc3RHbG9iYWwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwTWF0Y2hGYXN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxhenlKU0Nv
bnN0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU1hdGVyaWFsaXplTmV3T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlY29yZFJlZ0V4cENhY2hlZFJlc3VsdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVEYXRhUHJv
cGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRBbGxvY2F0ZUJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb3JtYWxpemVNYXBLZXkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVj
a2V0SGVhZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRNYXBCdWNrZXROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRLZXlGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNr
ZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RXh0cmFjdFZhbHVlRnJvbVdlYWtNYXBHZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhyb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhyb3dTdGF0aWNFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dFVw
ZGF0ZUluZGV4QW5kTW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dEV4dHJhY3RJbmRleCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dEV4dHJh
Y3RNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JIYXNQcm9wZXJ0eSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVt
ZXJhdG9ySW5CeVZhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzT3duUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZEZsdXNoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWQpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZERp
cmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeUlkV2l0aFRoaXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWF0Y2hTdHJ1Y3R1cmUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlF
bnVtZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEV4ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0R2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFNldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRDYWxsZWUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0Q2FsbGVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVNldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0ckNhdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheUJ1
ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdBcnJheVdpdGhTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU5ld1R5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9UaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEtleXNPck9iamVjdEdldE93blBy
b3BlcnR5TmFtZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlT2JqZWN0QXNzaWduKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdENyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVUaGlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZVByb21pc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlSW50
ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDcmVhdGVHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlQXN5bmNHZW5lcmF0b3IpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3T2JqZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0lu
dGVybmFsRmllbGRPYmplY3RJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0dlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBc3luY0dlbmVyYXRvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdJbnRlcm5hbEZp
ZWxkT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVRvUHJpbWl0aXZlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVRvUHJvcGVydHlLZXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9OdW1lcmljKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dT
aGFkb3dDaGlja2VuUHJvbG9ndWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTG9nU2hhZG93Q2hpY2tlblRhaWwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0QWRkKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hcFNldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFrTWFwR2V0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtT
ZXRBZGQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlV2Vha01hcFNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJZGVudGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNaXNjU3RyaWN0RXEpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0SW5pdGlhbGl6ZUJ1dHRlcmZseSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBbGxv
Y2F0ZU5ld0FycmF5V2l0aFNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RDYXRjaExvY2FsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNsZWFyQ2F0
Y2hMb2NhbHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHJvZmlsZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjYWNoZWRQdXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Z2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNvbXBhcmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpnZW5lcmljSlNWYWx1ZVBlZXBob2xl
QnJhbmNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUhlYXBCaWdJbnRFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2V0QnlWYWwpOiBEZWxldGVkLgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmRW1wdHkpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJy
YW5jaElmTm90RW1wdHkpOgorCiAyMDIxLTExLTAyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgTExJbnQgZmFzdCBwYXRoIGZvciBP
cE1vZCBvbiB4ODZfNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCmluZGV4IDNiNDU5YjZmMGQyMDZlNmZiMzE4OTk4MTc5NjRjOTVhMDEyYjNhMWMuLmMwMmY1
NGE0NTNiZTlmODBmODU3ZDZkZWY5ZmU2NzNkN2RkMmYwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtODIwLDI0ICs4MjAsNiBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYgogICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9i
YWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0
QnlWYWxJbnRlcm5hbDx0cnVlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5j
b2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAKLSAgICBwdXRCeVZhbEludGVybmFs
PGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBl
bmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTk5NiwyNCArOTc4LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QKICAgICBwdXRC
eVZhbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwg
ZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCi17Ci0gICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0QnlWYWxJbnRlcm5hbDx0cnVlLCB0
cnVlPihnbG9iYWxPYmplY3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9w
ZXJ0eSwgZW5jb2RlZFZhbHVlKTsKLX0KLQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIHRydWU+KGds
b2JhbE9iamVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBl
bmNvZGVkVmFsdWUpOwotfQotCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGMyMmFiYTc3MGZjOTljYzY0
YmM1YjllN2Q4ZDhkMWI1YmUyNThiMjMuLjJjMzdmZDA5NTMyZmIzOTk3YWU0ZDdkYjRkODBhYWE0
ZTYxZTgwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBA
IC0xNDUsOCArMTQ1LDYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdT
ZXRJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOwogCiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5n
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmluZ05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1i
b2xTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9s
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKQEAgLTE1NSw4ICsxNTMsNiBAQCBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJl
Y3RDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3lt
Ym9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJv
bCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDBkYWVmOWFjYjczZDYzOGI5YTRl
YjY5YjAwMGExMzFiOTNlNGE2MjYuLmI3NDYzZThmZTliNzEyZjgyNjQ2YWIwZmU5NGJiZWU5MThi
MzAzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC0yNDgxLDI4ICsyNDgxLDkzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDaGVja1RyYXBzKE5vZGUqIG5vZGUpCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAKLXZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiBub2RlLCBTcGVjdWxh
dGVDZWxsT3BlcmFuZCYgYmFzZSwgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kJiBwcm9wZXJ0
eSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9kZSog
bm9kZSkKIHsKLSAgICBFZGdlIGNoaWxkMyA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMik7Ci0gICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDMpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHBy
b3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgIEpT
VmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MiksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CiAKLSAgICBBcnJheU1vZGUgYXJyYXlNb2Rl
ID0gbm9kZS0+YXJyYXlNb2RlKCk7Ci0gICAgCiAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdw
cigpOwogICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgIAotICAg
IFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKKyAgICBKU1ZhbHVl
UmVncyB2YWx1ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworCisgICAgaWYgKCFtX2NvbXBp
bGVPa2F5KQorICAgICAgICByZXR1cm47CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworICAgIEdQUlJlZyBzdG9y
YWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKKworICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFs
QWxpYXMpIHsKKyAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAg
ICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CisgICAgICAgIG1faml0LnN0
b3JlVmFsdWUodmFsdWVSZWdzLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOworICAgICAgICBub1Jl
c3VsdChub2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEdQUlRlbXBvcmFyeSB0
ZW1wb3Jhcnk7CisgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9y
UHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNs
b3dDYXNlOworCisgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwor
ICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soCisgICAgICAgICAgICBPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKKyAg
ICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6
Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBC
dXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKKworICAgICAgICBzbG93Q2FzZSA9
IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9m
VmVjdG9yTGVuZ3RoKCkpKTsKKworICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRz
KCkpCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVn
cygpLCBudWxscHRyLCBzbG93Q2FzZSk7CisKKyAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZElt
bTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKKyAgICAgICAgbV9qaXQuc3RvcmUz
Mih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRl
cmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOworCisgICAgICAgIGluQm91bmRzLmxpbmso
Jm1faml0KTsKKyAgICB9CiAKKyAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlUmVncywgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQpKTsKKworICAgIGJhc2UudXNlKCk7CisgICAgcHJvcGVydHkudXNlKCk7
CisgICAgdmFsdWUudXNlKCk7CisgICAgc3RvcmFnZS51c2UoKTsKKworICAgIGlmIChhcnJheU1v
ZGUuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbCgKKyAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAorICAgICAgICAgICAgbm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpCisgICAgICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KQorICAgICAg
ICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRC
eVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxC
ZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCisgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZ3MpKTsK
KyAgICB9CisKKyAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkp
OworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwoTm9kZSog
bm9kZSkKK3sKKyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCk7CisK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0
eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBTcGVjdWxh
dGVEb3VibGVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMikpOworCisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBw
cm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEZQUlJlZyB2YWx1ZVJlZyA9IHZhbHVl
LmZwcigpOwotICAgIAorCiAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgIEpTVmFsdWVSZWdz
KCksIGNoaWxkMywgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICBKU1ZhbHVlUmVncygpLCBt
X2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBTcGVjRnVsbFJlYWxOdW1iZXIsCiAg
ICAgICAgIG1faml0LmJyYW5jaElmTmFOKHZhbHVlUmVnKSk7Ci0gICAgCisKICAgICBpZiAoIW1f
Y29tcGlsZU9rYXkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBTdG9yYWdlT3BlcmFuZCBz
dG9yYWdlKHRoaXMsIGNoaWxkNCk7CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOwogICAgIEdQUlJlZyBzdG9yYWdl
UmVnID0gc3RvcmFnZS5ncHIoKTsKIAogICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxp
YXMpIHsKQEAgLTI1MTAsNDEgKzI1NzUsNDEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZURvdWJsZVB1dEJ5VmFsKE5vZGUqIG5vZGUsIFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXMKICAg
ICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAgICAgICAgIEZQUlJl
ZyB2YWx1ZVJlZyA9IHZhbHVlLmZwcigpOwogICAgICAgICBtX2ppdC5zdG9yZURvdWJsZSh2YWx1
ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywg
TWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKLSAgICAgICAgCisKICAgICAgICAgbm9SZXN1
bHQobV9jdXJyZW50Tm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBH
UFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwogICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcgPSB0ZW1wb3Jh
cnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7CiAKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBzbG93Q2FzZTsKLSAgICAKKwogICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5k
cygpKSB7CiAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgICAgICBPdXRPZkJvdW5k
cywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMgPSBt
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVu
Z3RoKCkpKTsKLSAgICAgICAgCisKICAgICAgICAgc2xvd0Nhc2UgPSBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7
Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51
bGxwdHIsIHNsb3dDYXNlKTsKLSAgICAgICAgCisKICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3Rl
ZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKICAgICAgICAgbV9qaXQuc3Rv
cmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1
dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwogCiAgICAgICAgIGluQm91bmRzLmxp
bmsoJm1faml0KTsKICAgICB9Ci0gICAgCisKICAgICBtX2ppdC5zdG9yZURvdWJsZSh2YWx1ZVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKIAogICAgIGJhc2UudXNlKCk7CiAgICAgcHJvcGVy
dHkudXNlKCk7CiAgICAgdmFsdWUudXNlKCk7CiAgICAgc3RvcmFnZS51c2UoKTsKLSAgICAKKwog
ICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKSB7CiAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKAogICAgICAgICAgICAgc2xvd1BhdGhDYWxsKApAQCAtMjU1OCw2ICsyNjIzLDIy
NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwoTm9kZSogbm9k
ZSwgU3BlY3VsYXRlQ2VsbE9wZXJhbmQmIGJhcwogICAgIG5vUmVzdWx0KG1fY3VycmVudE5vZGUs
IFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQdXRCeVZhbChOb2RlKiBub2RlKQoreworICAgIEFycmF5TW9kZSBhcnJheU1vZGUg
PSBub2RlLT5hcnJheU1vZGUoKS5tb2RlRm9yUHV0KCk7CisgICAgc3dpdGNoIChhcnJheU1vZGUu
dHlwZSgpKSB7CisgICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJheToKKyAgICBjYXNlIEFycmF5
OjpGb3JjZUV4aXQ6CisgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdBcmd1bWVudHM6CisgICAg
Y2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKKyAgICBjYXNlIEFycmF5OjpVbnBy
b2ZpbGVkOgorICAgIGNhc2UgQXJyYXk6OlN0cmluZzoKKyAgICBjYXNlIEFycmF5OjpEaXJlY3RB
cmd1bWVudHM6CisgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgorICAgIGNhc2UgQXJy
YXk6OlVuZGVjaWRlZDoKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIGNhc2UgQXJyYXk6OkJp
Z0ludDY0QXJyYXk6CisgICAgY2FzZSBBcnJheTo6QmlnVWludDY0QXJyYXk6CisjZW5kaWYKKyAg
ICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUsICJCYWQgYXJyYXkgbW9kZSB0eXBl
Iik7CisgICAgICAgIGJyZWFrOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FzZSBBcnJheTo6
QmlnSW50NjRBcnJheToKKyAgICBjYXNlIEFycmF5OjpCaWdVaW50NjRBcnJheToKKyNlbmRpZgor
ICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKKyAgICAgICAgREZHX0FTU0VSVChtX2ppdC5ncmFw
aCgpLCBub2RlLCBub2RlLT5vcCgpID09IFB1dEJ5VmFsIHx8IG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWxEaXJlY3QsIG5vZGUtPm9wKCkpOworICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZh
bC5jb250YWlucyhub2RlKSkgeworICAgICAgICAgICAgaWYgKG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMCkudXNlS2luZCgpID09IENlbGxVc2UpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKS51c2VLaW5kKCkgPT0gU3RyaW5n
VXNlKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3Ry
aW5nKG5vZGUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBpZiAobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAx
KS51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQ
dXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKG5vZGUpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7
CisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgp
LnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVl
KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOworICAgICAgICAgICAg
SlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAgICBK
U1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOworICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKworICAg
ICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0KQorICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNt
YU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBvcGVy
YXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIo
bV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSks
IGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkg
PyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBU
cnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVS
ZWdzKTsKKyAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICAgICAgICAg
IG5vUmVzdWx0KG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAgIEpTVmFsdWVPcGVyYW5k
IHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSksIE1hbnVh
bE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMiksIE1hbnVhbE9wZXJhbmRTcGVjdWxh
dGlvbik7CisgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygp
OworICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVn
cygpOworICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygp
OworCisgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAg
IEdQUlRlbXBvcmFyeSBzdHViSW5mbzsKKyAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhK
SVRUeXBlOjpERkdKSVQpKSB7CisgICAgICAgICAgICBzdHViSW5mbyA9IEdQUlRlbXBvcmFyeSh0
aGlzKTsKKyAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8uZ3ByKCk7CisgICAgICAg
IH0KKworICAgICAgICBzcGVjdWxhdGUobm9kZSwgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAwKSk7CisgICAgICAgIHNwZWN1bGF0ZShub2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1faml0LmdyYXBoKCkudmFy
QXJnQ2hpbGQobm9kZSwgMikpOworCisgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYzsKKyAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1f
aml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5l
ZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKKyAgICAgICAgUmVnaXN0ZXJTZXQg
dXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVzZWRSZWdpc3RlcnMoKTsKKyAgICAgICAgYm9vbCBpc0Rp
cmVjdCA9IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Q7CisgICAgICAgIEVDTUFNb2RlIGVj
bWFNb2RlID0gbm9kZS0+ZWNtYU1vZGUoKTsKKworICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRv
ciBnZW4oCisgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+
Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRl
LCBBY2Nlc3NUeXBlOjpQdXRCeVZhbCwgdXNlZFJlZ2lzdGVycywKKyAgICAgICAgICAgIGJhc2VS
ZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywgSW52YWxpZEdQUlJlZywgc3R1YkluZm9HUFIp
OworCisgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZv
KCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZv
ck5vZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNJbnQz
Mk9ubHkpKQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRy
dWU7CisgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N5bWJvbCkpCisgICAgICAgICAgICBnZW4uc3R1
YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9IHRydWU7CisKKyAgICAgICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgobV9qaXQpOworCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2Fz
ZXM7CisgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpCisg
ICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CisKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKKyAgICAgICAg
YXV0byBvcGVyYXRpb24gPSBpc0RpcmVjdCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0
aW9uRGlyZWN0UHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
Tm9uU3RyaWN0T3B0aW1pemUpIDogKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRC
eVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSk7
CisgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAg
ICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aElDQ2FsbCgKKyAgICAgICAgICAgICAgICBzbG93
Q2FzZXMsIHRoaXMsIGdlbi5zdHViSW5mbygpLCBzdHViSW5mb0dQUiwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0
aW9uKCkpLCBvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1Q
dHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGNvZGVPcmln
aW4pKSwgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgbnVs
bHB0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzbG93UGF0aCA9IHNsb3dQYXRo
Q2FsbCgKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIG9wZXJhdGlvbiwKKyAgICAg
ICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNlUmVncywgcHJvcGVydHlS
ZWdzLCB2YWx1ZVJlZ3MsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsKKyAgICAgICAgfQorCisg
ICAgICAgIG1faml0LmFkZFB1dEJ5VmFsKGdlbiwgc2xvd1BhdGguZ2V0KCkpOworICAgICAgICBh
ZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7CisKKyAgICAgICAgbm9SZXN1
bHQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpJbnQzMjog
eworICAgICAgICBzcGVjdWxhdGVJbnQzMihtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDIpKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkNvbnRp
Z3VvdXM6IHsKKyAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChub2RlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogeworICAgICAgICBjb21w
aWxlRG91YmxlUHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IEFycmF5OjpBcnJheVN0b3JhZ2U6CisgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFn
ZTogeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9w
ZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7
CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMikpOworICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworCisgICAgICAgIEdQUlJlZyBiYXNl
UmVnID0gYmFzZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHku
Z3ByKCk7CisgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdz
KCk7CisgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKKworICAgICAg
ICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7CisgICAgICAgICAgICAvLyBTdG9y
ZSB0aGUgdmFsdWUgdG8gdGhlIGFycmF5LgorICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVn
ID0gcHJvcGVydHkuZ3ByKCk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlUmVn
cywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpKTsK
KyAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OworICAgICAgICBHUFJSZWcgdGVt
cG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUp
OworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlCb3VuZHMgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQo
KSkpOworICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCisgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBi
ZXlvbmRBcnJheUJvdW5kcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNsb3dDYXNlcy5h
cHBlbmQoYmV5b25kQXJyYXlCb3VuZHMpOworCisgICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIHdy
aXRpbmcgdG8gYSBob2xlOyBpZiBzbyBpbmNyZW1lbnQgbV9udW1WYWx1ZXNJblZlY3Rvci4KKyAg
ICAgICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkpIHsKKyAgICAgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soCisgICAgICAgICAgICAgICAgU3RvcmVUb0hvbGUsIEpTVmFsdWVSZWdzKCksIG51
bGxwdHIsCisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoSWZFbXB0eShNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdEhvbGVWYWx1ZSA9IG1faml0
LmJyYW5jaElmTm90RW1wdHkoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVj
dG9yT2Zmc2V0KCkpKTsKKyAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNTbG93UHV0KCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ugd2FudGVk
IHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3VsZCBpbnZlcnQKKyAgICAgICAgICAg
ICAgICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdvcnRoIGl0IHNp
bmNlIHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCisgICAgICAgICAgICAgICAgLy8gYWxyZWFk
eSBoYXZpbmcgYSBiYWQgdGltZS4KKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0Lmp1bXAoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1faml0
LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJl
ZywgQXJyYXlTdG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9mZnNldCgpKSk7CisKKyAgICAgICAg
ICAgICAgICAvLyBJZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZSB3ZSBtaWdodCBiZSBncm93aW5n
IHRoZSBhcnJheTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBsZW5ndGhE
b2VzTm90TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywg
cHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3Rv
cmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVz
dGVkSW1tMzIoMSksIHByb3BlcnR5UmVnLCB0ZW1wb3JhcnlSZWcpOworICAgICAgICAgICAgICAg
IG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisKKyAgICAgICAgICAgICAg
ICBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZS5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOworICAgICAgICB9CisKKyAgICAg
ICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAgbV9qaXQuc3RvcmVW
YWx1ZSh2YWx1ZVJlZ3MsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rv
ck9mZnNldCgpKSk7CisKKyAgICAgICAgYmFzZS51c2UoKTsKKyAgICAgICAgcHJvcGVydHkudXNl
KCk7CisgICAgICAgIHZhbHVlLnVzZSgpOworICAgICAgICBzdG9yYWdlLnVzZSgpOworCisgICAg
ICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsCisg
ICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpCisgICAgICAgICAgICAg
ICAgICAgID8gKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZh
bERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc1N0cmljdCkKKyAgICAgICAgICAgICAgICAgICAgOiAobm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNO
b25TdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KSwK
KyAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9n
cmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJh
c2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZ3MpKTsKKyAgICAgICAgfQorCisgICAgICAgIG5v
UmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBjYXNlIEFycmF5OjpJbnQ4QXJyYXk6CisgICAgY2FzZSBBcnJheTo6SW50
MTZBcnJheToKKyAgICBjYXNlIEFycmF5OjpJbnQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVp
bnQ4QXJyYXk6CisgICAgY2FzZSBBcnJheTo6VWludDhDbGFtcGVkQXJyYXk6CisgICAgY2FzZSBB
cnJheTo6VWludDE2QXJyYXk6CisgICAgY2FzZSBBcnJheTo6VWludDMyQXJyYXk6CisgICAgY2Fz
ZSBBcnJheTo6RmxvYXQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0NjRBcnJheTogewor
ICAgICAgICBUeXBlZEFycmF5VHlwZSB0eXBlID0gYXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCk7
CisgICAgICAgIGlmIChpc0ludCh0eXBlKSkKKyAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZv
ckludFR5cGVkQXJyYXkobm9kZSwgdHlwZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNv
bXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheShub2RlLCB0eXBlKTsKKyAgICB9IH0KK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldENoYXJDb2RlQXQoTm9kZSogbm9kZSkK
IHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzdHJpbmcodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwpAQCAtMzU2NywxNiArMzg1MiwxOSBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpnZXRJbnRUeXBl
ZEFycmF5U3RvcmVPcGVyYW5kRm9yQXRvbWljcygKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJl
ZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUp
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KE5v
ZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKGlzSW50KHR5cGUp
KTsKLSAgICAKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVy
YW5kIHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwog
ICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGls
ZChub2RlLCAzKSk7CisKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJS
ZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0gICAgCi0gICAgRWRnZSB2YWx1ZVVzZSA9
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMik7Ci0gICAgCisgICAgR1BSUmVnIGJh
c2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5Lmdw
cigpOworCiAgICAgR1BSVGVtcG9yYXJ5IHZhbHVlOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAg
ICAgR1BSVGVtcG9yYXJ5IHByb3BlcnR5VGFnOwpAQCAtMzU4NCwxMyArMzg3MiwxMyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBi
YXNlLCBHUFJSZWcgcHJvcGVydAogI2VuZGlmCiAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qg
c2xvd1BhdGhDYXNlczsKLSAgICAKKwogICAgIGJvb2wgcmVzdWx0ID0gZ2V0SW50VHlwZWRBcnJh
eVN0b3JlT3BlcmFuZCgKLSAgICAgICAgdmFsdWUsIHByb3BlcnR5LAorICAgICAgICB2YWx1ZSwg
cHJvcGVydHlSZWcsCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgcHJvcGVydHlUYWcs
IHZhbHVlVGFnLAogI2VuZGlmCi0gICAgICAgIHZhbHVlVXNlLCBzbG93UGF0aENhc2VzLCBpc0Ns
YW1wZWQodHlwZSkpOworICAgICAgICBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
LCBzbG93UGF0aENhc2VzLCBpc0NsYW1wZWQodHlwZSkpOwogICAgIGlmICghcmVzdWx0KSB7CiAg
ICAgICAgIG5vUmVzdWx0KG5vZGUpOwogICAgICAgICByZXR1cm47CkBAIC0zNjAyLDU3ICszODkw
LDQyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJy
YXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0CiAgICAgR1BSUmVnIHZhbHVlVGFnR1BSID0g
dmFsdWVUYWcuZ3ByKCk7CiAjZW5kaWYKIAotICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZh
bHVlR1BSICE9IHByb3BlcnR5KTsKLSAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZSk7CisgICAg
QVNTRVJUX1VOVVNFRCh2YWx1ZUdQUiwgdmFsdWVHUFIgIT0gcHJvcGVydHlSZWcpOworICAgIEFT
U0VSVCh2YWx1ZUdQUiAhPSBiYXNlUmVnKTsKICAgICBBU1NFUlQodmFsdWVHUFIgIT0gc3RvcmFn
ZVJlZyk7Ci0gICAgSklUQ29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRB
cnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2UsIHByb3BlcnR5LCBzY3JhdGNoLmdwcigpKTsKKyAg
ICBKSVRDb21waWxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZC
b3VuZHMobm9kZSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHNjcmF0Y2guZ3ByKCkpOwogCiAgICAg
c3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgMToKLSAgICAgICAgbV9qaXQu
c3RvcmU4KHZhbHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNPbmUpKTsKKyAgICAgICAgbV9qaXQuc3Rv
cmU4KHZhbHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNPbmUpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSAyOgotICAgICAgICBtX2ppdC5zdG9yZTE2KHZhbHVlLmdwcigpLCBNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5LCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNUd28pKTsKKyAgICAgICAgbV9qaXQuc3RvcmUxNih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRp
bWVzVHdvKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNDoKLSAgICAgICAgbV9qaXQuc3Rv
cmUzMih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91cikpOworICAgICAgICBtX2ppdC5zdG9y
ZTMyKHZhbHVlLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIENSQVNIKCk7CiAgICAgfQogCi0gICAgSklUQ29tcGlsZXI6
Okp1bXAgZG9uZSA9IGp1bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMobm9k
ZSwgYmFzZSwgb3V0T2ZCb3VuZHMpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1w
Rm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIG91dE9m
Qm91bmRzKTsKICAgICBpZiAoZG9uZS5pc1NldCgpKQogICAgICAgICBkb25lLmxpbmsoJm1faml0
KTsKIAogICAgIGlmICghc2xvd1BhdGhDYXNlcy5lbXB0eSgpKSB7CisgICAgICAgIGFkZFNsb3dQ
YXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRo
aXMsCisgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkKKyAgICAgICAgICAg
ICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCkKKyAgICAgICAgICAgICAgICA6
IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RO
b25TdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCksCiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAgICAg
ICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBz
bG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlW
YWxEaXJlY3ROb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1Q
dHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9y
aWdpbi5zZW1hbnRpYykpLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWVHUFIpKTsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAg
ICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUt
PmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0IDogb3BlcmF0
aW9uUHV0QnlWYWxOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWVHUFIpKTsKLSAgICAgICAg
fQorICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3Jh
cGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNl
UmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVHUFIpKTsKICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0
KQotICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAg
ICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNs
b3dQYXRoQ2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0
cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0IDogb3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVz
dGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihu
b2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIs
IHByb3BlcnR5KSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxs
KAotICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAg
bm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaWN0
IDogb3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgSlNWYWx1ZVJlZ3MocHJvcGVy
dHlUYWdHUFIsIHByb3BlcnR5KSwgSlNWYWx1ZVJlZ3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkp
OwotICAgICAgICB9CisgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1Bv
aW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFu
dGljKSksIENDYWxsSGVscGVyczo6Q2VsbFZhbHVlKGJhc2VSZWcpLCBKU1ZhbHVlUmVncyhwcm9w
ZXJ0eVRhZ0dQUiwgcHJvcGVydHlSZWcpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVH
UFIpKSk7CiAjZW5kaWYKICAgICB9Ci0gICAgCisKICAgICBub1Jlc3VsdChub2RlKTsKIH0KIApA
QCAtMzY5OSwzOSArMzk3Miw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWxPbkZsb2F0VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZQogICAgIH0KIH0K
IAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5
KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBl
IHR5cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVk
QXJyYXkoTm9kZSogbm9kZSwgVHlwZWRBcnJheVR5cGUgdHlwZSkKIHsKICAgICBBU1NFUlQoaXNG
bG9hdCh0eXBlKSk7Ci0gICAgCisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpKTsKKyAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIHZhbHVlT3AodGhpcywgbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CiAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFn
ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKLSAgICBHUFJSZWcg
c3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0gICAgCi0gICAgRWRnZSB2YWx1ZVVzZSA9IG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMik7CiAKLSAgICBTcGVjdWxhdGVEb3VibGVP
cGVyYW5kIHZhbHVlT3AodGhpcywgdmFsdWVVc2UpOwogICAgIEZQUlRlbXBvcmFyeSBzY3JhdGNo
KHRoaXMpOwogICAgIEdQUlRlbXBvcmFyeSBncFNjcmF0Y2godGhpcyk7CiAgICAgRlBSUmVnIHZh
bHVlRlBSID0gdmFsdWVPcC5mcHIoKTsKICAgICBGUFJSZWcgc2NyYXRjaEZQUiA9IHNjcmF0Y2gu
ZnByKCk7CisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBwcm9w
ZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gZ3BTY3Jh
dGNoLmdwcigpOworICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKIAotICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRP
ZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0eSwgc2NyYXRjaEdQUik7Ci0gICAgCisgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91
bmRzKG5vZGUsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBzY3JhdGNoR1BSKTsKICAgICBzd2l0Y2gg
KGVsZW1lbnRTaXplKHR5cGUpKSB7CiAgICAgY2FzZSA0OiB7CiAgICAgICAgIG1faml0Lm1vdmVE
b3VibGUodmFsdWVGUFIsIHNjcmF0Y2hGUFIpOwogICAgICAgICBtX2ppdC5jb252ZXJ0RG91Ymxl
VG9GbG9hdCh2YWx1ZUZQUiwgc2NyYXRjaEZQUik7Ci0gICAgICAgIG1faml0LnN0b3JlRmxvYXQo
c2NyYXRjaEZQUiwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0
eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91cikpOworICAgICAgICBtX2ppdC5zdG9yZUZsb2F0
KHNjcmF0Y2hGUFIsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgODoKLSAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVGUFIsIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVy
OjpUaW1lc0VpZ2h0KSk7CisgICAgICAgIG1faml0LnN0b3JlRG91YmxlKHZhbHVlRlBSLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCkpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIEpJVENvbXBpbGVy
OjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKG5v
ZGUsIGJhc2UsIG91dE9mQm91bmRzKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVt
cEZvclR5cGVkQXJyYXlJc0RldGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBiYXNlUmVnLCBvdXRP
ZkJvdW5kcyk7CiAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgZG9uZS5saW5rKCZtX2pp
dCk7CiAgICAgbm9SZXN1bHQobm9kZSk7CkBAIC0zOTE5LDE3ICs0MTkzLDE3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICB9
CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3Ry
aW5nKE5vZGUqIG5vZGUsIEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMp
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhO
b2RlKiBub2RlKQogewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgY2hpbGQx
KTsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcyKHRoaXMsIGNoaWxkMik7Ci0gICAgSlNW
YWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBjaGlsZDMpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGFyZzEodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIG1faml0LmdyYXBoKCkudmFy
QXJnQ2hpbGQobm9kZSwgMikpOwogCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwog
ICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyBhcmczUmVn
cyA9IGFyZzMuanNWYWx1ZVJlZ3MoKTsKIAotICAgIHNwZWN1bGF0ZVN0cmluZyhjaGlsZDIsIGFy
ZzJHUFIpOworICAgIHNwZWN1bGF0ZVN0cmluZyhtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpLCBhcmcyR1BSKTsKIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJh
dGlvbigKQEAgLTM5NDIsMTcgKzQyMTYsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSogbm9kZSwgRWRnZSYgY2hpbGQxLAogICAg
IG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlW
YWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxk
MiwgRWRnZSYgY2hpbGQzKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9y
Q2VsbFdpdGhTeW1ib2woTm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBh
cmcxKHRoaXMsIGNoaWxkMSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBj
aGlsZDIpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKKyAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBhcmcxKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBt
X2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAogICAgIEdQUlJlZyBhcmcxR1BS
ID0gYXJnMS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgSlNW
YWx1ZVJlZ3MgYXJnM1JlZ3MgPSBhcmczLmpzVmFsdWVSZWdzKCk7CiAKLSAgICBzcGVjdWxhdGVT
eW1ib2woY2hpbGQyLCBhcmcyR1BSKTsKKyAgICBzcGVjdWxhdGVTeW1ib2wobV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAxKSwgYXJnMkdQUik7CiAKICAgICBmbHVzaFJlZ2lzdGVycygp
OwogICAgIGNhbGxPcGVyYXRpb24oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKaW5kZXggYzE4M2UxODMzZDU2OWJjMTc1NTVlOGY3NzgwMTBmMmRlMTVj
NDViZC4uZDBlODZjMGQ3MjI4YWI1ZjE0YjlmOGU1NjNiYmIxMTE3ZTdkOWZiOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTM0MiwxMSAr
MTM0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVHZXRQcm90b3R5cGVPZihOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlSWRlbnRpdHkoTm9kZSopOwogICAgIAotI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQ
cm9wZXJ0eU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBU
YWdUeXBlPgotICAgIHZvaWQgY29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChOb2RlKiwgQmFzZU9w
ZXJhbmRUeXBlJiwgUHJvcGVydHlPcGVyYW5kVHlwZSYsIFZhbHVlT3BlcmFuZFR5cGUmLCBHUFJS
ZWcgdmFsdWVQYXlsb2FkUmVnLCBUYWdUeXBlIHZhbHVlVGFnKTsKLSNlbmRpZgotICAgIHZvaWQg
Y29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYgYmFzZSwg
U3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kJiBwcm9wZXJ0eSk7CisgICAgdm9pZCBjb21waWxl
Q29udGlndW91c1B1dEJ5VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEb3VibGVQdXRCeVZh
bChOb2RlKik7CiAgICAgYm9vbCBwdXRCeVZhbFdpbGxOZWVkRXh0cmFSZWdpc3RlcihBcnJheU1v
ZGUgYXJyYXlNb2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFycmF5TW9kZS5tYXlTdG9yZVRv
SG9sZSgpOwpAQCAtMTM1Nyw2ICsxMzU0LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdGVt
cG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUtPmFycmF5TW9kZSgpKTsK
ICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlUHV0QnlWYWwoTm9kZSopOworCiAgICAgLy8g
V2UgdXNlIGEgc2NvcGVkTGFtYmRhIHRvIHBsYWNhdGUgcmVnaXN0ZXIgYWxsb2NhdGlvbiB2YWxp
ZGF0aW9uLgogICAgIGVudW0gY2xhc3MgQ2FuVXNlRmx1c2ggeyBZZXMsIE5vIH07CiAgICAgdm9p
ZCBjb21waWxlR2V0QnlWYWwoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpT
VmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRG
b3JtYXQpPiYgcHJlZml4KTsKQEAgLTE0NDcsMTMgKzE0NDYsMTMgQEAgcHVibGljOgogICAgIHZv
aWQgY29tcGlsZUdldFR5cGVkQXJyYXlCeXRlT2Zmc2V0QXNJbnQ1MihOb2RlKik7CiAjZW5kaWYK
ICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJh
eVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9y
bWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsK
LSAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQ
UlJlZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKKyAgICB2b2lkIGNvbXBpbGVQ
dXRCeVZhbEZvckludFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKICAgICB2b2lk
IGNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENh
blVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZv
aWQgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcg
cHJvcGVydHksIE5vZGUqLCBUeXBlZEFycmF5VHlwZSk7CisgICAgdm9pZCBjb21waWxlUHV0QnlW
YWxGb3JGbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKICAgICB2b2lkIGNv
bXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTdHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJk
YTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZv
cm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZh
bEZvck9iamVjdFdpdGhTeW1ib2woTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxl
PEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJy
ZWRGb3JtYXQpPiYgcHJlZml4KTsKLSAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRo
U3RyaW5nKE5vZGUqLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxkMiwgRWRnZSYgY2hpbGQzKTsK
LSAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKE5vZGUqLCBFZGdlJiBj
aGlsZDEsIEVkZ2UmIGNoaWxkMiwgRWRnZSYgY2hpbGQzKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRC
eVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZv
ckNlbGxXaXRoU3ltYm9sKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhUaGlz
KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVQdXRQcml2YXRlTmFtZShOb2RlKik7CiAgICAgdm9p
ZCBjb21waWxlUHV0UHJpdmF0ZU5hbWVCeUlkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE4N2VkY2Uw
MjM0YmQ0NGU5NjgyMjlmNjk4MzcyZjE5NWQ3ZTgzYTkuLjUyMzliOGE0NDk0MDc1ODU5Njg3MWZk
MjdlYTI1ZTFhNDc0MGExNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMTc0Niw3NSArMTc0Niw2IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2goTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIEJhc2VPcGVyYW5kVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlw
ZSwgdHlwZW5hbWUgVmFsdWVPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVGFnVHlwZT4KLXZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9kZSogbm9kZSwgQmFzZU9w
ZXJhbmRUeXBlJiBiYXNlLCBQcm9wZXJ0eU9wZXJhbmRUeXBlJiBwcm9wZXJ0eSwgVmFsdWVPcGVy
YW5kVHlwZSYgdmFsdWUsIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcsIFRhZ1R5cGUgdmFsdWVUYWcp
Ci17Ci0gICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMp
OwotCi0gICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwotICAgIAot
ICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKLSAgICBHUFJSZWcgcHJvcGVydHlSZWcg
PSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAKLSAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMs
IGNoaWxkNCk7Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotCi0gICAg
aWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgewotICAgICAgICAvLyBTdG9yZSB0aGUg
dmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0
eS5ncHIoKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZywgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgICAg
IG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgICAgIAotICAg
ICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZTsKLQotICAgIGlmIChhcnJheU1vZGUuaXNJbkJv
dW5kcygpKSB7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICBPdXRPZkJv
dW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMgPSBtX2pp
dC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3Ro
KCkpKTsKLSAgICAgICAgCi0gICAgICAgIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAg
ICAgICAKLSAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwgc2xvd0Nh
c2UpOwotICAgICAgICAKLSAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9w
ZXJ0eVJlZyk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIocHJvcGVydHlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgo
KSkpOwotICAgICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsK
LSAgICAgICAgCi0gICAgICAgIGluQm91bmRzLmxpbmsoJm1faml0KTsKLSAgICB9Ci0gICAgCi0g
ICAgbV9qaXQuc3RvcmUzMih2YWx1ZVRhZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9y
YWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIE9CSkVDVF9P
RkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMih2YWx1
ZVBheWxvYWRSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1
ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSAgICAKLSAgICBiYXNlLnVzZSgpOwotICAgIHByb3Bl
cnR5LnVzZSgpOwotICAgIHZhbHVlLnVzZSgpOwotICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgCi0g
ICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAgICAgICAgaWYgKG5vZGUtPm9w
KCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAgICAgICAg
ICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlv
bmRBcnJheUJvdW5kc05vblN0cmljdCwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2
YWx1ZVRhZywgdmFsdWVQYXlsb2FkUmVnKSkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgIHNs
b3dDYXNlLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3Qo
KSA/IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgIE5vUmVz
dWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIEpT
VmFsdWVSZWdzKHZhbHVlVGFnLCB2YWx1ZVBheWxvYWRSZWcpKSk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOyAgICAK
LX0KLQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNv
bnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5V
c2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIHN3
aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CkBAIC0yNzEyLDIzMCArMjY0Myw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFB1dEJ5
VmFsRGlyZWN0OgogICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgY2FzZSBQdXRCeVZhbEFsaWFzOiB7
Ci0gICAgICAgIEVkZ2UgY2hpbGQxID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAw
KTsKLSAgICAgICAgRWRnZSBjaGlsZDIgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDEpOwotICAgICAgICBFZGdlIGNoaWxkMyA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMik7Ci0gICAgICAgIEVkZ2UgY2hpbGQ0ID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAzKTsKLSAgICAgICAgCi0gICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLT5h
cnJheU1vZGUoKS5tb2RlRm9yUHV0KCk7Ci0gICAgICAgIGJvb2wgYWxyZWFkeUhhbmRsZWQgPSBm
YWxzZTsKLSAgICAgICAgCi0gICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewotICAg
ICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25zOgotICAgICAgICBjYXNlIEFy
cmF5OjpGb3JjZUV4aXQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotI2lmIENPTVBJTEVSX1FVSVJLKENPTlNJREVSU19VTlJFQUNIQUJMRV9DT0RFKQotICAgICAg
ICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oSW5hZGVxdWF0ZUNvdmVyYWdlLCBK
U1ZhbHVlUmVncygpLCAwKTsKLSAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSNl
bmRpZgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsK
LSAgICAgICAgICAgIEFTU0VSVChub2RlLT5vcCgpID09IFB1dEJ5VmFsIHx8IG5vZGUtPm9wKCkg
PT0gUHV0QnlWYWxEaXJlY3QpOwotICAgICAgICAgICAgaWYgKG1fZ3JhcGgubV9zbG93UHV0QnlW
YWwuY29udGFpbnMobm9kZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hpbGQxLnVzZUtpbmQo
KSA9PSBDZWxsVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZDIudXNlS2luZCgp
ID09IFN0cmluZ1VzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFs
Rm9yQ2VsbFdpdGhTdHJpbmcobm9kZSwgY2hpbGQxLCBjaGlsZDIsIGNoaWxkMyk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChjaGlsZDIudXNlS2luZCgpID09IFN5bWJvbFVzZSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9kZSwgY2hpbGQxLCBj
aGlsZDIsIGNoaWxkMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5k
IGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9w
ZXJ0eSh0aGlzLCBjaGlsZDIpOwotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVl
KHRoaXMsIGNoaWxkMyk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBi
YXNlLmpzVmFsdWVSZWdzKCk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlS
ZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVn
cyB2YWx1ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwotCi0gICAgICAgICAgICAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZh
bERpcmVjdCkKLSAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9k
ZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmljdCA6IG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dy
YXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFz
ZVJlZ3MsICBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7Ci0gICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJp
Y3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJp
Y3QsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgIHByb3BlcnR5UmVncywg
dmFsdWVSZWdzKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwotCi0g
ICAgICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICAgICAgYWxyZWFkeUhh
bmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIGNoaWxkMSwgTWFudWFsT3BlcmFu
ZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMs
IGNoaWxkMiwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWVP
cGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAg
ICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwotICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3Mo
KTsKLSAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdz
KCk7Ci0KLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDEpOwotICAgICAgICAgICAg
c3BlY3VsYXRlKG5vZGUsIGNoaWxkMik7Ci0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwgY2hp
bGQzKTsKLQotICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+b3JpZ2lu
LnNlbWFudGljOwotICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJl
Y29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChj
b2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKLSAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVz
ZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJzKCk7Ci0gICAgICAgICAgICBib29sIGlz
RGlyZWN0ID0gbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdDsKLSAgICAgICAgICAgIEVDTUFN
b2RlIGVjbWFNb2RlID0gbm9kZS0+ZWNtYU1vZGUoKTsKLQotICAgICAgICAgICAgSklUUHV0QnlW
YWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9q
aXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9y
aWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAotICAg
ICAgICAgICAgICAgIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncywgSW52YWxpZEdQ
UlJlZywgSW52YWxpZEdQUlJlZyk7Ci0KLSAgICAgICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUo
Y2hpbGQyKS5pc1R5cGUoU3BlY1N0cmluZykpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZv
KCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOwotICAgICAgICAgICAgZWxzZSBpZiAobV9zdGF0
ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQotICAgICAgICAgICAgICAg
IGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwotICAgICAgICAgICAgZWxz
ZSBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNTeW1ib2wpKQotICAgICAg
ICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9sID0gdHJ1ZTsKLQotICAg
ICAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwotCi0gICAgICAgICAgICBKSVRD
b21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVu
ZChnZW4uc2xvd1BhdGhKdW1wKCkpOwotCi0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xv
d1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoOwotICAgICAgICAgICAgYXV0byBvcGVyYXRpb24gPSBp
c0RpcmVjdCA/IChlY21hTW9kZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxT
dHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUp
IDogKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdE9wdGltaXpl
IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSk7Ci0gICAgICAgICAgICBzbG93
UGF0aCA9IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93Q2FzZXMsIHRoaXMsIG9w
ZXJhdGlvbiwKLSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1Bv
aW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNl
UmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsK
LQotICAgICAgICAgICAgbV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBzbG93UGF0aC5nZXQoKSk7Ci0g
ICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7Ci0KLSAg
ICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0
cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoYWxyZWFk
eUhhbmRsZWQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgCi0gICAgICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAgICAgU3BlY3VsYXRlU3RyaWN0
SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMik7Ci0gICAgICAgIAotICAgICAgICBH
UFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7Ci0gICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9
IHByb3BlcnR5LmdwcigpOwotCi0gICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewot
ICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjogewotICAgICAgICAgICAgc3BlY3VsYXRlSW50MzIo
Y2hpbGQzKTsKLSAgICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICB9Ci0gICAgICAgIGNh
c2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVl
KHRoaXMsIGNoaWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLQotICAgICAgICAgICAg
R1BSUmVnIHZhbHVlVGFnUmVnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcg
dmFsdWVQYXlsb2FkUmVnID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgICAgICAKLSAgICAgICAg
ICAgIGlmICghbV9jb21waWxlT2theSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgICAgIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwobm9kZSwgYmFzZSwgcHJvcGVydHksIHZh
bHVlLCB2YWx1ZVBheWxvYWRSZWcsIHZhbHVlVGFnUmVnKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewotICAgICAgICAgICAgY29t
cGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZToKLSAgICAg
ICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFnZTogewotICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZhbHVl
VGFnUmVnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2Fk
UmVnID0gdmFsdWUucGF5bG9hZEdQUigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAo
IW1fY29tcGlsZU9rYXkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBT
dG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAgICAgICAgICBHUFJSZWcg
c3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAgICAgICAgIGlmIChub2RlLT5vcCgp
ID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgdmFsdWUg
dG8gdGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3Bl
cnR5LmdwcigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUudGFnR1BSKCks
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgICAgICAgICBt
X2ppdC5zdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFy
cmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMucGF5bG9hZCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBub1Jl
c3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKLQotICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlCb3VuZHMgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQo
KSkpOwotICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIDAs
IGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKLQotICAgICAgICAgICAgLy8gQ2hl
Y2sgaWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3JlbWVudCBtX251bVZhbHVl
c0luVmVjdG9yLgotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkpIHsKLSAg
ICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgICAgICBTdG9y
ZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0
b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlT
dG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0
cy50YWcpKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdEhv
bGVWYWx1ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZG
U0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0
eVZhbHVlVGFnKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc1Nsb3dQdXQoKSkg
ewotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNvcnQgb2Ygc3RyYW5nZS4gSWYgd2Ug
d2FudGVkIHRvIG9wdGltaXplIHRoaXMgY29kZSBwYXRoLCB3ZSB3b3VsZCBpbnZlcnQKLSAgICAg
ICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mgc2ltcGx5IG5vdCB3
b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQotICAgICAgICAgICAgICAg
ICAgICAvLyBhbHJlYWR5IGhhdmluZyBhIGJhZCB0aW1lLgotICAgICAgICAgICAgICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Om51bVZhbHVlc0luVmVj
dG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLy8g
SWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7
IAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBsZW5ndGhEb2VzTm90
TmVlZFVwZGF0ZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6
bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3Rl
ZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3Jl
MzIocHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5
U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQuc3Vi
MzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZyk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0
KTsKLSAgICAgICAgICAgIH0KLSAgICAKLSAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0
byB0aGUgYXJyYXkuCi0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHZhbHVlVGFnUmVnLCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9P
RkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVn
LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6
dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9h
ZCkpKTsKLQotICAgICAgICAgICAgYmFzZS51c2UoKTsKLSAgICAgICAgICAgIHByb3BlcnR5LnVz
ZSgpOwotICAgICAgICAgICAgdmFsdWUudXNlKCk7Ci0gICAgICAgICAgICBzdG9yYWdlLnVzZSgp
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXNsb3dDYXNlcy5lbXB0eSgpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAg
ICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RC
ZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJy
YXlCb3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1
c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
bm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVn
cyh2YWx1ZVRhZ1JlZywgdmFsdWVQYXlsb2FkUmVnKSkpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5
Qm91bmRzTm9uU3RyaWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1ZVJlZ3Mo
dmFsdWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVk
RXhwbGljaXRseSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgIGRlZmF1bHQ6IHsKLSAgICAgICAgICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBh
cnJheU1vZGUudHlwZWRBcnJheVR5cGUoKTsKLSAgICAgICAgICAgIGlmIChpc0ludCh0eXBlKSkK
LSAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KGJhc2UuZ3By
KCksIHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwg
cHJvcGVydHkuZ3ByKCksIG5vZGUsIHR5cGUpOwotICAgICAgICB9IH0KKyAgICAgICAgY29tcGls
ZVB1dEJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGE1YThjYzNj
ZjUzZTllOTE0OTc4ZGY5YzM0MzIwNTA1ZGJjMjA4N2MuLmIzYTEyYmI2ODM2NzU1Y2I3ZTM1MWFi
MDM5MGY4NzBkMjU3MzcwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzMzNCwzMTUgKzMzMzQsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoK
ICAgICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewotICAgICAgICBF
ZGdlIGNoaWxkMSA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCk7Ci0gICAgICAg
IEVkZ2UgY2hpbGQyID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKTsKLSAgICAg
ICAgRWRnZSBjaGlsZDMgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwotICAg
ICAgICBFZGdlIGNoaWxkNCA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7Ci0g
ICAgICAgIAotICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCku
bW9kZUZvclB1dCgpOwotICAgICAgICBib29sIGFscmVhZHlIYW5kbGVkID0gZmFsc2U7Ci0gICAg
ICAgIAotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBB
cnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9uczoKLSAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VF
eGl0OgotICAgICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUsICJCYWQgYXJy
YXkgbW9kZSB0eXBlIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBcnJheTo6
QmlnSW50NjRBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6QmlnVWludDY0QXJyYXk6Ci0gICAg
ICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKLSAgICAgICAgICAgIERGR19BU1NFUlQobV9qaXQu
Z3JhcGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8fCBub2RlLT5vcCgpID09IFB1
dEJ5VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKLSAgICAgICAgICAgIGlmIChtX2dyYXBoLm1fc2xv
d1B1dEJ5VmFsLmNvbnRhaW5zKG5vZGUpIHx8IChjaGlsZDEudXNlS2luZCgpICE9IENlbGxVc2Ug
JiYgY2hpbGQxLnVzZUtpbmQoKSAhPSBLbm93bkNlbGxVc2UpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGNoaWxkMS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKG5vZGUsIGNoaWxkMSwgY2hpbGQy
LCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQyLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2Up
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3lt
Ym9sKG5vZGUsIGNoaWxkMSwgY2hpbGQyLCBjaGlsZDMpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgYXJnMih0aGlzLCBjaGlsZDIpOwotICAgICAgICAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICBHUFJSZWcgYXJn
MUdQUiA9IGFyZzEuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIGFyZzJHUFIgPSBhcmcy
LmdwcigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyBhcmczR1BSID0gYXJnMy5ncHIoKTsKLSAg
ICAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICAgICAgICAgIGlmIChub2Rl
LT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQotICAgICAgICAgICAgICAgICAgICBjYWxsT3BlcmF0
aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRydXN0ZWRJbW1QdHI6
OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYykpLCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczR1BSKTsKLSAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUo
KS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZh
bE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJHUFIs
IGFyZzNHUFIpOwotICAgICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAg
ICAgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBhbHJlYWR5SGFu
ZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsKLSAgICAg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMiwgTWFudWFsT3BlcmFu
ZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNo
aWxkMywgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIEdQUlJlZyBiYXNl
R1BSID0gYmFzZS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHByb3Bl
cnR5LmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7Ci0K
LSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBzdHViSW5mbzsKLSAgICAgICAgICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNl
RGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAgICBzdHViSW5mbyA9IEdQ
UlRlbXBvcmFyeSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZv
LmdwcigpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwgY2hp
bGQyKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMpOwotCi0gICAgICAgICAg
ICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7Ci0gICAgICAg
ICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5l
cmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFt
LT5zaXplKCkpOwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMt
PnVzZWRSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgp
ID09IFB1dEJ5VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUgPSBub2Rl
LT5lY21hTW9kZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvciBnZW4oCi0g
ICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1v
bi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNj
ZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCi0gICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgSlNWYWx1ZVJlZ3ModmFs
dWVHUFIpLCBJbnZhbGlkR1BSUmVnLCBzdHViSW5mb0dQUik7Ci0KLSAgICAgICAgICAgIGlmICht
X3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N0cmluZykpCi0gICAgICAgICAgICAg
ICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTdHJpbmcgPSB0cnVlOwotICAgICAgICAgICAg
ZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQot
ICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOwot
ICAgICAgICAgICAgZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikuaXNUeXBlKFNwZWNT
eW1ib2wpKQotICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9s
ID0gdHJ1ZTsKLQotICAgICAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwotCi0g
ICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwotICAgICAgICAgICAg
aWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKLSAgICAgICAgICAgICAg
ICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7Ci0KLSAgICAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7Ci0gICAgICAgICAgICBh
dXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0KCkgPyBvcGVyYXRp
b25EaXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxO
b25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdE9wdGltaXplKTsK
LSAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewot
ICAgICAgICAgICAgICAgIHNsb3dQYXRoID0gc2xvd1BhdGhJQ0NhbGwoCi0gICAgICAgICAgICAg
ICAgICAgIHNsb3dDYXNlcywgdGhpcywgZ2VuLnN0dWJJbmZvKCksIHN0dWJJbmZvR1BSLCBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRP
ZlNsb3dPcGVyYXRpb24oKSksIG9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgTm9SZXN1
bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKGNvZGVPcmlnaW4pKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BSLCBzdHVi
SW5mb0dQUiwgbnVsbHB0cik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMs
IHRoaXMsIG9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGNvZGVP
cmlnaW4pKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIsIHZhbHVlR1BSLCBnZW4uc3R1YkluZm8oKSwg
bnVsbHB0cik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1faml0LmFkZFB1dEJ5VmFs
KGdlbiwgc2xvd1BhdGguZ2V0KCkpOwotICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Io
V1RGTW92ZShzbG93UGF0aCkpOwotCi0gICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAg
ICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgaWYgKGFscmVhZHlIYW5kbGVkKQotICAgICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEpOwotICAgICAg
ICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQyKTsKLSAg
ICAgICAgCi0gICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKLSAgICAgICAgR1BS
UmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0KLSAgICAgICAgc3dpdGNoIChhcnJh
eU1vZGUudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgotICAgICAgICBjYXNl
IEFycmF5OjpDb250aWd1b3VzOiB7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0
aGlzLCBjaGlsZDMsIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Ci0KLSAgICAgICAgICAgIEdQ
UlJlZyB2YWx1ZVJlZyA9IHZhbHVlLmdwcigpOwotICAgICAgICAKLSAgICAgICAgICAgIGlmICgh
bV9jb21waWxlT2theSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmIChhcnJheU1vZGUudHlwZSgpID09IEFycmF5OjpJbnQzMikgewotICAgICAg
ICAgICAgICAgIERGR19UWVBFX0NIRUNLKAotICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVn
cyh2YWx1ZVJlZyksIGNoaWxkMywgU3BlY0ludDMyT25seSwKLSAgICAgICAgICAgICAgICAgICAg
bV9qaXQuYnJhbmNoSWZOb3RJbnQzMih2YWx1ZVJlZykpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIGNoaWxkNCk7Ci0gICAgICAgICAg
ICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICAgICAgICAgIGlmIChu
b2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICAvLyBTdG9yZSB0
aGUgdmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJl
ZyA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVJlZyA9IHZh
bHVlLmdwcigpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlNjQodmFsdWVSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0KSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbm9S
ZXN1bHQobm9kZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3Jhcnk7Ci0gICAgICAgICAg
ICBHUFJSZWcgdGVtcG9yYXJ5UmVnID0gdGVtcG9yYXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1w
b3JhcnksIG5vZGUpOwotCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2Fz
ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkp
IHsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgICAg
ICBPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICAg
ICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0
T2ZQdWJsaWNMZW5ndGgoKSkpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBzbG93Q2FzZSA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mVmVjdG9yTGVuZ3RoKCkpKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRz
KCkpCi0gICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpT
VmFsdWVSZWdzKCksIG51bGxwdHIsIHNsb3dDYXNlKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnLCB0ZW1w
b3JhcnlSZWcpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKTsKLQotICAgICAgICAgICAgICAgIGluQm91bmRzLmxpbmsoJm1faml0KTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3Nl
bWJsZXI6OlRpbWVzRWlnaHQpKTsKLQotICAgICAgICAgICAgYmFzZS51c2UoKTsKLSAgICAgICAg
ICAgIHByb3BlcnR5LnVzZSgpOwotICAgICAgICAgICAgdmFsdWUudXNlKCk7Ci0gICAgICAgICAg
ICBzdG9yYWdlLnVzZSgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoYXJyYXlNb2Rl
LmlzT3V0T2ZCb3VuZHMoKSkgewotICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIHRoaXMsCi0gICAg
ICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKQotICAgICAgICAgICAg
ICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1
dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJl
eW9uZEFycmF5Qm91bmRzU3RyaWN0KQotICAgICAgICAgICAgICAgICAgICAgICAgOiAobm9kZS0+
b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJy
YXlCb3VuZHNOb25TdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9u
U3RyaWN0KSwKLSAgICAgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6Ondl
YWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWcpKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNp
dGx5KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgY2FzZSBBcnJheTo6RG91YmxlOiB7Ci0gICAgICAgICAgICBjb21waWxlRG91YmxlUHV0QnlW
YWwobm9kZSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgICAgIAotICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6Ci0gICAgICAg
IGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6IHsKLSAgICAgICAgICAgIEpTVmFsdWVP
cGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxkMyk7Ci0KLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVJl
ZyA9IHZhbHVlLmdwcigpOwotICAgICAgICAKLSAgICAgICAgICAgIGlmICghbV9jb21waWxlT2th
eSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5k
IHN0b3JhZ2UodGhpcywgY2hpbGQ0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0g
c3RvcmFnZS5ncHIoKTsKLQotICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxB
bGlhcykgewotICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXku
Ci0gICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0g
ICAgICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7Ci0gICAgICAgICAg
ICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5
U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKLSAg
ICAgICAgICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcgPSB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5
VmFsKHRlbXBvcmFyeSwgbm9kZSk7Ci0KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdCBzbG93Q2FzZXM7Ci0KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9u
ZEFycmF5Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVh
bCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5
U3RvcmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgIGlmICghYXJyYXlN
b2RlLmlzT3V0T2ZCb3VuZHMoKSkKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91
dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBiZXlvbmRBcnJheUJvdW5kcyk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChiZXlvbmRB
cnJheUJvdW5kcyk7Ci0KLSAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIHdyaXRpbmcgdG8g
YSBob2xlOyBpZiBzbyBpbmNyZW1lbnQgbV9udW1WYWx1ZXNJblZlY3Rvci4KLSAgICAgICAgICAg
IGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjaygKLSAgICAgICAgICAgICAgICAgICAgU3RvcmVUb0hvbGUsIEpTVmFsdWVSZWdzKCks
IG51bGxwdHIsCi0gICAgICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fz
c2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9w
ZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9y
T2Zmc2V0KCkpKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIG5vdEhvbGVWYWx1ZSA9IG1faml0LmJyYW5jaFRlc3Q2NChNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVj
dG9yT2Zmc2V0KCkpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLmlzU2xvd1B1dCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc29ydCBvZiBzdHJhbmdlLiBJZiB3
ZSB3YW50ZWQgdG8gb3B0aW1pemUgdGhpcyBjb2RlIHBhdGgsIHdlIHdvdWxkIGludmVydAotICAg
ICAgICAgICAgICAgICAgICAvLyB0aGUgYWJvdmUgYnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90
IHdvcnRoIGl0IHNpbmNlIHRoaXMgb25seSBoYXBwZW5zIGlmIHdlJ3JlCi0gICAgICAgICAgICAg
ICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCi0gICAgICAgICAgICAgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuanVtcCgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5W
ZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAv
LyBJZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZSB3ZSBtaWdodCBiZSBncm93aW5nIHRoZSBhcnJh
eTsgCi0gICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGxlbmd0aERvZXNO
b3ROZWVkVXBkYXRlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9w
ZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdl
OjpsZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVz
dGVkSW1tMzIoMSksIHByb3BlcnR5UmVnLCB0ZW1wb3JhcnlSZWcpOwotICAgICAgICAgICAgICAg
ICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICBsZW5ndGhEb2VzTm90TmVlZFVwZGF0ZS5saW5rKCZt
X2ppdCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5vdEhvbGVWYWx1ZS5s
aW5rKCZtX2ppdCk7Ci0gICAgICAgICAgICB9Ci0gICAgCi0gICAgICAgICAgICAvLyBTdG9yZSB0
aGUgdmFsdWUgdG8gdGhlIGFycmF5LgotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCh2YWx1ZVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpKTsK
LQotICAgICAgICAgICAgYmFzZS51c2UoKTsKLSAgICAgICAgICAgIHByb3BlcnR5LnVzZSgpOwot
ICAgICAgICAgICAgdmFsdWUudXNlKCk7Ci0gICAgICAgICAgICBzdG9yYWdlLnVzZSgpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIXNsb3dDYXNlcy5lbXB0eSgpKSB7Ci0gICAgICAg
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAg
ICAgICAgICBzbG93Q2FzZXMsIHRoaXMsCi0gICAgICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFN
b2RlKCkuaXNTdHJpY3QoKQotICAgICAgICAgICAgICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9
PSBQdXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KQotICAg
ICAgICAgICAgICAgICAgICAgICAgOiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QgOiBvcGVyYXRp
b25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KSwKLSAgICAgICAgICAgICAgICAg
ICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0
eVJlZywgdmFsdWVSZWcpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbm9SZXN1bHQo
bm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBBcnJheTo6SW50OEFycmF5Ogot
ICAgICAgICBjYXNlIEFycmF5OjpJbnQxNkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpJbnQz
MkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpVaW50OEFycmF5OgotICAgICAgICBjYXNlIEFy
cmF5OjpVaW50OENsYW1wZWRBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6VWludDE2QXJyYXk6
Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVpbnQzMkFycmF5OgotICAgICAgICBjYXNlIEFycmF5OjpG
bG9hdDMyQXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0NjRBcnJheTogewotICAgICAg
ICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpOwot
ICAgICAgICAgICAgaWYgKGlzSW50KHR5cGUpKQotICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRC
eVZhbEZvckludFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUsIHR5
cGUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZv
ckZsb2F0VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgQXJyYXk6OkFu
eVR5cGVkQXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlN0cmluZzoKLSAgICAgICAgY2FzZSBB
cnJheTo6RGlyZWN0QXJndW1lbnRzOgotICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6Ci0g
ICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFy
Z3VtZW50czoKLSAgICAgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdBcmd1bWVudHM6Ci0gICAg
ICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6Ci0gICAgICAgIGNhc2UgQXJy
YXk6OlVuZGVjaWRlZDoKLSAgICAgICAgY2FzZSBBcnJheTo6VW5wcm9maWxlZDoKLSAgICAgICAg
Y2FzZSBBcnJheTo6QmlnSW50NjRBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6QmlnVWludDY0
QXJyYXk6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICB9CisgICAgICAgIGNvbXBpbGVQdXRCeVZhbChub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
CmluZGV4IDI0NGYyMjI3OTJjNzBmODFhZDA3NzEwN2ExNjYzMzJkYzczMWVmMGYuLjY1ZGQ4ZWRl
Zjc0Nzk5NmQ1ZjZkOGYxOTI0NmU2YWQ5MzM2ZDQ3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtOTY5LDYgKzk2OSwxNSBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICB9CiAKKyAgICBKdW1wIGJyYW5jaElmRW1wdHkoQmFzZUluZGV4IGFkZHJlc3Mp
CisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQo
WmVybywgYWRkcmVzcyk7CisjZWxzZQorICAgICAgICByZXR1cm4gYnJhbmNoMzIoRXF1YWwsIGFk
ZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlW
YWx1ZVRhZykpOworI2VuZGlmCisgICAgfQorCiAgICAgSnVtcCBicmFuY2hJZkVtcHR5KEdQUlJl
ZyBncHIpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC05ODcsNiArOTk2LDE1IEBAIHB1
YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIEp1bXAgYnJhbmNoSWZOb3RFbXB0eShCYXNlSW5k
ZXggYWRkcmVzcykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgcmV0dXJuIGJy
YW5jaFRlc3Q2NChOb25aZXJvLCBhZGRyZXNzKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBicmFu
Y2gzMihOb3RFcXVhbCwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCksIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7CisjZW5kaWYKKyAgICB9CisKICAgICBKdW1wIGJy
YW5jaElmTm90RW1wdHkoR1BSUmVnIGdwcikKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443678</attachid>
            <date>2021-11-09 04:19:33 -0800</date>
            <delta_ts>2021-11-09 13:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232265-20211109121931.patch</filename>
            <type>text/plain</type>
            <size>92480</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OGU2MmVhNDg4NmFkOGU2Y2EwNjRjYTRjYWRkMTYwYzAyODk4ZGVhLi5hMzQ0NTE4YjNmZjhlMDg5
ODhmOWEwODhlYWFlZTAxMGRlZTMzYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNDQgQEAKKzIwMjEtMTEtMDQgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZWZhY3RvcmluZyBhbmQgUHV0QnlWYWwgY2xlYW51cAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMjY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgRm9sbG93LXVwIGZyb20g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI0MiwKKyAgICAgICAg
dGhpcyBwYXRjaCBpbmNsdWRlcyBzZXZlcmFsIHNtYWxsIGNvZGUgY2hhbmdlcyBidXQgdGhlIHBh
dGNoIGRvZXNuJ3QKKyAgICAgICAgYWRkL3JlbW92ZSBhbnkgZmVhdHVyZToKKworICAgICAgICAx
LiBSZW1vdmVkIHNldmVyYWwgY2FsbHMgdG8gb3BlcmF0aW9uUHV0QnlWYWwqQ2VsbCogdGhhdCB3
ZXJlCisgICAgICAgIG9ubHkgdXNlZCBieSB0aGUgMzIgYml0IGNvZGUgcGF0aHMgZHVlIHRvIHRo
ZSBsYWNrIG9mIHJlZ2lzdGVycy4KKyAgICAgICAgVGhlc2UgY2FsbHMgd2VyZSByZXBsYWNlZCBi
eSB0aGUgY2FsbHMgdXNlZCBieSB0aGUgNjQgYml0IHBhdGhzLAorICAgICAgICB0aGF0IGV4cGVj
dCBFbmNvZGVkSlNWYWx1ZXMKKyAgICAgICAgMi4gQmVjYXVzZSBvZiAjMSwgdGhpcyBwYXRjaCBy
ZW1vdmVzIHRob3NlIG1ldGhvZHMsIHNpbmNlIG5vIG9uZQorICAgICAgICB1c2VzIHRoZW0gYW55
bW9yZS4KKyAgICAgICAgMy4gQ3JlYXRlZCBjb21waWxlUHV0QnlWYWwgdG8gaGFuZGxlIGFsbCBj
YXNlcyAoc2ltaWxhciB0byBjb21waWxlR2V0QnlWYWwpLgorICAgICAgICA0LiBSZW1vdmVkIHRo
ZSBFZGdlJiBjaGlsZFggZnJvbSB0aGUgUHV0QnlWYWwgaGFuZGxpbmcgKGFuZCBhbGwgbWV0aG9k
cworICAgICAgICB0aGF0IGV4cGVjdGVkIHRoZW0pIGluIGZhdm9yIG9mIGdldHRpbmcgdGhlbSBm
cm9tIG5vZGUgd2hlbiBuZWVkZWQuCisgICAgICAgIDUuIFVuaWZpZWQgY29tcGlsZUNvbnRpZ3Vv
dXNQdXRCeVZhbCBzbyBpdCBjb3VsZCBiZSB1c2VkIGJ5IGJvdGggMzIKKyAgICAgICAgYW5kIDY0
IGJpdCBhcmNocy4KKyAgICAgICAgNi4gUmVtb3ZlZCBhIGxvdCBvZiB3aGl0ZXNwYWNlLgorCisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRp
b25zLmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVk
QXJyYXkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWxPbkZsb2F0VHlwZWRBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbEZvck9iamVj
dFdpdGhTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVO
YW1lQnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0UHJpdmF0ZU5hbWVCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JD
ZWxsV2l0aFN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbFdpdGhUaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dFByaXZhdGVOYW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dFByaXZhdGVOYW1lQnlJZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a1ByaXZhdGVCcmFuZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVTZXRQcml2YXRlQnJhbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBhcnNlSW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU92ZXJyaWRlc0hh
c0luc3RhbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUluc3RhbmNlT2ZGb3JDZWxscyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQml0Tm90KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUJpdHdpc2VOb3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0VW50eXBlZE9yQW55
QmlnSW50Qml0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlVmFsdWVCaXR3aXNlT3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQml0d2lzZU9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFVudHlwZWRPckJpZ0ludFJpZ2h0U2hpZnRCaXRPcCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1
ZUxTaGlmdE9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVZhbHVlQml0UlNoaWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVNoaWZ0T3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVBZGQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVmFsdWVTdWIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWF0aElDKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20p
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSXND
ZWxsV2l0aFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlSXNUeXBlZEFycmF5Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb09iamVjdE9yQ2FsbE9iamVjdENvbnN0cnVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRo
QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoQWJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoQ2x6MzIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlQXJpdGhEb3VibGVVbmFyeU9wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoU3ViKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluY09yRGVjKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTmVnYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRo
TmVnYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVZhbHVlTXVsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUFyaXRoTXVsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVZhbHVlRGl2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRGl2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoRlJvdW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlTW9kKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoUm91
bmRpbmcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQXJpdGhVbmFyeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcml0aFNxcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQXJpdGhNaW5NYXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OmNvbXBpbGVBcml0aFBvd0ludGVnZXJGYXN0UGF0aCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZVBvdyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFBvdyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29tcGFyZVVuc2lnbmVk
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0
cmljdEVxKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUJvb2xlYW5Db21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUludDMyQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEVxdWFsaXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN5bWJvbEVx
dWFsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVBlZXBIb2xlU3ltYm9sRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjplbWl0Qml0d2lzZUpTVmFsdWVFcXVhbGl0eSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2hPbkJpdHdpc2VKU1Zh
bHVlRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTm90RG91YmxlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmdTdHJp
Y3RFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVQZWVwSG9sZU5vdERvdWJsZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50Tm9yU3Ry
aW5nU3RyaWN0RXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlU3RyaW5nRXF1YWxpdHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nVG9VbnR5cGVkRXF1YWxpdHkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nSWRl
bnRFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVTdHJpbmdJZGVudFRvTm90U3RyaW5nVmFyRXF1YWxpdHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nQ29tcGFyZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdJ
ZGVudENvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlU2FtZVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVRvQm9vbGVhblN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0Jvb2xlYW5TdHJpbmdPck90aGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN0cmluZ0JyYW5j
aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTdHJp
bmdPck90aGVyQnJhbmNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNvbnN0YW50U3RvcmFnZVBvaW50ZXIpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWdlVHlwZWRBcnJheVN0b3JhZ2UpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0SW5kZXhlZFBy
b3BlcnR5U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGlyZWN0QXJndW1lbnRz
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5VmFsT25TY29wZWRBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0U2NvcGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2tpcFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEdsb2JhbE9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRHbG9iYWxU
aGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FuQmVS
b3BlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEFycmF5TGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrSWRlbnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb25Db21tb24pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0RnVuY3Rpb25O
YW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVZhcmFyZ3NMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlTG9hZFZhcmFyZ3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlRm9yd2FyZFZhcmFyZ3MpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlQWN0aXZhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVEaXJl
Y3RBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0RnJvbUFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRUb0FyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcmd1bWVudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVTY29wZWRB
cmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQ3JlYXRlQ2xvbmVkQXJndW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVSZXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNw
cmVhZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVOZXdBcnJheVdpdGhTcHJlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UmVzdExlbmd0aCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRQb3B1bGF0ZVNsaWNlSW5kZXgpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlTbGlj
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVB
cnJheUluZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJyYXlQdXNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU5vdGlmeVdyaXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVR5cGVPZklzT2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzQ2FsbGFibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSXNDb25z
dHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVUeXBlT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjplbWl0U3RydWN0dXJlQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2hlY2tJc0NvbnN0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrTm90RW1wdHkpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tTdHJ1Y3R1cmUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdWtlU3RydWN0dXJlQW5k
U2V0QnV0dGVyZmx5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6YWxs
b2NhdGVUZW1wb3JhcnlSZWdpc3RlcnNGb3JTbmlwcGV0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTUdldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0pTQ2Fz
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnRlbXBvcmFy
eVJlZ2lzdGVyRm9yUHV0QnlWYWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9yU3RyaW5n
VmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Z2V0RXhlY3V0YWJsZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVGdW5jdGlv
blRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZU51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOdW1iZXJUb1N0cmluZ1dp
dGhSYWRpeCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVOZXdTdHJpbmdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTmV3U3ltYm9sKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1R5cGVkQXJyYXlXaXRoU2l6ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXROZXdUeXBlZEFycmF5V2l0
aFNpemVJblJlZ2lzdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZU5ld1JlZ2V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVDZWxsVHlw
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZUludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlUmVhbE51bWJlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURvdWJsZVJlcFJlYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVCb29sZWFuKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlQ2VsbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUNlbGxPck90aGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpzcGVjdWxhdGVGaW5hbE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlZ0V4cE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZUFycmF5KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJveHlPYmplY3QpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEZXJp
dmVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVQcm9taXNlT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNldE9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVdlYWtNYXBP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVXZWFrU2V0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRGF0YVZpZXdPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVPYmplY3RPck90aGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3RyaW5n
T3JPdGhlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTdHJpbmdJZGVudCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0cmluZ09iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN0
cmluZ09yU3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3ltYm9sKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlSGVhcEJpZ0ludCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5v
dENlbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGVOb3RDZWxsTm9yQmlnSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90RG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5vckhlYXBCaWdJbnQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVO
ZWl0aGVyRG91YmxlTm9ySGVhcEJpZ0ludE5vclN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU90aGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWlzYyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hJbnRKdW1wKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3aXRjaEltbSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hD
aGFyU3RyaW5nSnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRTd2l0Y2hDaGFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6ZW1pdEJpbmFyeVN3aXRjaFN0cmluZ1JlY3Vyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoU3RyaW5nT25TdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdFN3
aXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmFkZEJy
YW5jaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmxpbmtC
cmFuY2hlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVTdG9yZUJhcnJpZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEdldHRlclNldHRlckJ5SWQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVzb2x2ZVNjb3Bl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJl
c29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0R2xvYmFsVmFyaWFibGUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0R2xvYmFs
VmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0RHluYW1pY1Zhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXREeW5hbWljVmFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldENsb3N1cmVWYXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0Q2xvc3VyZVZhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRJbnRl
cm5hbEZpZWxkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVB1dEludGVybmFsRmllbGQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRSZWdFeHBPYmplY3RMYXN0SW5k
ZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
U2V0UmVnRXhwT2JqZWN0TGFzdEluZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cEV4ZWMpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdSZXBsYWNlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cEV4
ZWNOb25HbG9iYWxPclN0aWNreSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBNYXRjaEZhc3RHbG9iYWwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUmVnRXhwTWF0Y2hGYXN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxhenlKU0Nv
bnN0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU1hdGVyaWFsaXplTmV3T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlY29yZFJlZ0V4cENhY2hlZFJlc3VsdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWZpbmVEYXRhUHJv
cGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRBbGxvY2F0ZUJ1dHRlcmZseSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOb3JtYWxpemVNYXBLZXkpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0TWFwQnVj
a2V0SGVhZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVHZXRNYXBCdWNrZXROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRLZXlGcm9tTWFwQnVja2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRWYWx1ZUZyb21NYXBCdWNr
ZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RXh0cmFjdFZhbHVlRnJvbVdlYWtNYXBHZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhyb3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhyb3dTdGF0aWNFcnJvcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dFVw
ZGF0ZUluZGV4QW5kTW9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dEV4dHJhY3RJbmRleCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yTmV4dEV4dHJh
Y3RNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JIYXNQcm9wZXJ0eSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVt
ZXJhdG9ySW5CeVZhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzT3duUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZEZsdXNoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWQpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZERp
cmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeUlkV2l0aFRoaXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTWF0Y2hTdHJ1Y3R1cmUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJvcGVydHlF
bnVtZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEV4ZWN1dGFibGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0R2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFNldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRDYWxsZWUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0Q2FsbGVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVNldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0ckNhdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheUJ1
ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdBcnJheVdpdGhTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU5ld1R5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9UaGlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdEtleXNPck9iamVjdEdldE93blBy
b3BlcnR5TmFtZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlT2JqZWN0QXNzaWduKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdENyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVUaGlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNyZWF0ZVByb21pc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlSW50
ZXJuYWxGaWVsZE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDcmVhdGVHZW5lcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlQXN5bmNHZW5lcmF0b3IpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3T2JqZWN0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0lu
dGVybmFsRmllbGRPYmplY3RJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0dlbmVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBc3luY0dlbmVyYXRvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdJbnRlcm5hbEZp
ZWxkT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVRvUHJpbWl0aXZlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVRvUHJvcGVydHlLZXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9OdW1lcmljKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dT
aGFkb3dDaGlja2VuUHJvbG9ndWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlTG9nU2hhZG93Q2hpY2tlblRhaWwpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0QWRkKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1hcFNldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFrTWFwR2V0KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVdlYWtT
ZXRBZGQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlV2Vha01hcFNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJZGVudGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNaXNjU3RyaWN0RXEpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0SW5pdGlhbGl6ZUJ1dHRlcmZseSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBbGxv
Y2F0ZU5ld0FycmF5V2l0aFNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RDYXRjaExvY2FsKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNsZWFyQ2F0
Y2hMb2NhbHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHJvZmlsZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjYWNoZWRQdXRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Z2VuZXJpY0pTVmFsdWVOb25QZWVwaG9sZUNvbXBhcmUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpnZW5lcmljSlNWYWx1ZVBlZXBob2xl
QnJhbmNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUhlYXBCaWdJbnRFcXVhbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2V0QnlWYWwpOiBEZWxldGVkLgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250
aWd1b3VzUHV0QnlWYWwpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmJyYW5jaElmRW1wdHkpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJy
YW5jaElmTm90RW1wdHkpOgorCiAyMDIxLTExLTAyICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgTExJbnQgZmFzdCBwYXRoIGZvciBP
cE1vZCBvbiB4ODZfNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCmluZGV4IDNiNDU5YjZmMGQyMDZlNmZiMzE4OTk4MTc5NjRjOTVhMDEyYjNhMWMuLmMwMmY1
NGE0NTNiZTlmODBmODU3ZDZkZWY5ZmU2NzNkN2RkMmYwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtODIwLDI0ICs4MjAsNiBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYgogICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9i
YWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0
QnlWYWxJbnRlcm5hbDx0cnVlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5j
b2RlKGNlbGwpLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwotICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICAKLSAgICBwdXRCeVZhbEludGVybmFs
PGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBl
bmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7Ci19Ci0KIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTk5NiwyNCArOTc4LDYgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QKICAgICBwdXRC
eVZhbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBlbmNvZGVkQmFzZSwg
ZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCi17Ci0gICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKLSAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgCi0gICAgcHV0QnlWYWxJbnRlcm5hbDx0cnVlLCB0
cnVlPihnbG9iYWxPYmplY3QsIHZtLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9w
ZXJ0eSwgZW5jb2RlZFZhbHVlKTsKLX0KLQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7Ci0gICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwotICAgIAotICAgIHB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIHRydWU+KGds
b2JhbE9iamVjdCwgdm0sIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBl
bmNvZGVkVmFsdWUpOwotfQotCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGMyMmFiYTc3MGZjOTljYzY0
YmM1YjllN2Q4ZDhkMWI1YmUyNThiMjMuLjJjMzdmZDA5NTMyZmIzOTk3YWU0ZDdkYjRkODBhYWE0
ZTYxZTgwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBA
IC0xNDUsOCArMTQ1LDYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdT
ZXRJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOwogCiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5n
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmluZ05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1i
b2xTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9s
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKQEAgLTE1NSw4ICsxNTMsNiBAQCBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJl
Y3RDZWxsU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxOb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3lt
Ym9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJv
bCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDBkYWVmOWFjYjczZDYzOGI5YTRl
YjY5YjAwMGExMzFiOTNlNGE2MjYuLjc3OTk1MGQzMWUxNDFlYjgyMjY1NzJjOTM3NDY2YjMzZDk0
NmFhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC0yNDgxLDI4ICsyNDgxLDkzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDaGVja1RyYXBzKE5vZGUqIG5vZGUpCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAKLXZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEb3VibGVQdXRCeVZhbChOb2RlKiBub2RlLCBTcGVjdWxh
dGVDZWxsT3BlcmFuZCYgYmFzZSwgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kJiBwcm9wZXJ0
eSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9kZSog
bm9kZSkKIHsKLSAgICBFZGdlIGNoaWxkMyA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMik7Ci0gICAgRWRnZSBjaGlsZDQgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUs
IDMpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHBy
b3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgIEpT
VmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MiksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CiAKLSAgICBBcnJheU1vZGUgYXJyYXlNb2Rl
ID0gbm9kZS0+YXJyYXlNb2RlKCk7Ci0gICAgCiAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdw
cigpOwogICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgIAotICAg
IFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKKyAgICBKU1ZhbHVl
UmVncyB2YWx1ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworCisgICAgaWYgKCFtX2NvbXBp
bGVPa2F5KQorICAgICAgICByZXR1cm47CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRo
aXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworICAgIEdQUlJlZyBzdG9y
YWdlUmVnID0gc3RvcmFnZS5ncHIoKTsKKworICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFs
QWxpYXMpIHsKKyAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAg
ICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CisgICAgICAgIG1faml0LnN0
b3JlVmFsdWUodmFsdWVSZWdzLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOworICAgICAgICBub1Jl
c3VsdChub2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEdQUlRlbXBvcmFyeSB0
ZW1wb3Jhcnk7CisgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9y
UHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNs
b3dDYXNlOworCisgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwor
ICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soCisgICAgICAgICAgICBPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKKyAg
ICAgICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHBy
b3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6
Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgaW5Cb3VuZHMgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBC
dXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKKworICAgICAgICBzbG93Q2FzZSA9
IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9m
VmVjdG9yTGVuZ3RoKCkpKTsKKworICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRz
KCkpCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVn
cygpLCBudWxscHRyLCBzbG93Q2FzZSk7CisKKyAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZElt
bTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5UmVnKTsKKyAgICAgICAgbV9qaXQuc3RvcmUz
Mih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRl
cmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOworCisgICAgICAgIGluQm91bmRzLmxpbmso
Jm1faml0KTsKKyAgICB9CiAKKyAgICBtX2ppdC5zdG9yZVZhbHVlKHZhbHVlUmVncywgTWFjcm9B
c3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQpKTsKKworICAgIGJhc2UudXNlKCk7CisgICAgcHJvcGVydHkudXNlKCk7
CisgICAgdmFsdWUudXNlKCk7CisgICAgc3RvcmFnZS51c2UoKTsKKworICAgIGlmIChhcnJheU1v
ZGUuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbCgKKyAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAorICAgICAgICAgICAgbm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8KKyAgICAgICAgICAgICAgICAobm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbERpcmVjdCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KSA6CisgICAg
ICAgICAgICAgICAgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRC
eVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxC
ZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCksCisgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZ3MpKTsK
KyAgICB9CisKKyAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkp
OworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRG91YmxlUHV0QnlWYWwoTm9kZSog
bm9kZSkKK3sKKyAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCk7CisK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJn
Q2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0
eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAgICBTcGVjdWxh
dGVEb3VibGVPcGVyYW5kIHZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMikpOworCisgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBw
cm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEZQUlJlZyB2YWx1ZVJlZyA9IHZhbHVl
LmZwcigpOwotICAgIAorCiAgICAgREZHX1RZUEVfQ0hFQ0soCi0gICAgICAgIEpTVmFsdWVSZWdz
KCksIGNoaWxkMywgU3BlY0Z1bGxSZWFsTnVtYmVyLAorICAgICAgICBKU1ZhbHVlUmVncygpLCBt
X2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpLCBTcGVjRnVsbFJlYWxOdW1iZXIsCiAg
ICAgICAgIG1faml0LmJyYW5jaElmTmFOKHZhbHVlUmVnKSk7Ci0gICAgCisKICAgICBpZiAoIW1f
Y29tcGlsZU9rYXkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBTdG9yYWdlT3BlcmFuZCBz
dG9yYWdlKHRoaXMsIGNoaWxkNCk7CisKKyAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOwogICAgIEdQUlJlZyBzdG9yYWdl
UmVnID0gc3RvcmFnZS5ncHIoKTsKIAogICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxp
YXMpIHsKQEAgLTI1MTAsNTQgKzI1NzUsMjc0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVEb3VibGVQdXRCeVZhbChOb2RlKiBub2RlLCBTcGVjdWxhdGVDZWxsT3BlcmFuZCYgYmFzCiAg
ICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgICAgICBGUFJS
ZWcgdmFsdWVSZWcgPSB2YWx1ZS5mcHIoKTsKICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFs
dWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7Ci0gICAgICAgIAorCiAgICAgICAgIG5vUmVz
dWx0KG1fY3VycmVudE5vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAg
R1BSVGVtcG9yYXJ5IHRlbXBvcmFyeTsKICAgICBHUFJSZWcgdGVtcG9yYXJ5UmVnID0gdGVtcG9y
YXJ5UmVnaXN0ZXJGb3JQdXRCeVZhbCh0ZW1wb3JhcnksIG5vZGUpOwogCiAgICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgc2xvd0Nhc2U7Ci0gICAgCisKICAgICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3Vu
ZHMoKSkgewogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAogICAgICAgICAgICAgT3V0T2ZCb3Vu
ZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsCiAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGluQm91bmRzID0g
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xl
bmd0aCgpKSk7Ci0gICAgICAgIAorCiAgICAgICAgIHNsb3dDYXNlID0gbV9qaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkp
OwotICAgICAgICAKKwogICAgICAgICBpZiAoIWFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpCiAg
ICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBu
dWxscHRyLCBzbG93Q2FzZSk7Ci0gICAgICAgIAorCiAgICAgICAgIG1faml0LmFkZDMyKFRydXN0
ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7CiAgICAgICAgIG1faml0LnN0
b3JlMzIodGVtcG9yYXJ5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBC
dXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKTsKIAogICAgICAgICBpbkJvdW5kcy5s
aW5rKCZtX2ppdCk7CiAgICAgfQotICAgIAorCiAgICAgbV9qaXQuc3RvcmVEb3VibGUodmFsdWVS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSk7CiAKICAgICBiYXNlLnVzZSgpOwogICAgIHByb3Bl
cnR5LnVzZSgpOwogICAgIHZhbHVlLnVzZSgpOwogICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgCisK
ICAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkgewogICAgICAgICBhZGRTbG93UGF0
aEdlbmVyYXRvcigKICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKICAgICAgICAgICAgICAgICBz
bG93Q2FzZSwgdGhpcywKLSAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0
KCkKLSAgICAgICAgICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/
IG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBv
cGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KQotICAgICAgICAg
ICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0
RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCA6IG9wZXJhdGlvblB1
dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAorICAgICAgICAgICAgICAg
IG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/CisgICAgICAgICAgICAgICAgICAgIChub2Rl
LT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RC
ZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJy
YXlCb3VuZHNTdHJpY3QpIDoKKyAgICAgICAgICAgICAgICAgICAgKG5vZGUtPm9wKCkgPT0gUHV0
QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05v
blN0cmljdCksCiAgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQ
b2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWcpKTsKICAgICB9CiAKICAgICBu
b1Jlc3VsdChtX2N1cnJlbnROb2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWwoTm9kZSogbm9kZSkKK3sKKyAg
ICBBcnJheU1vZGUgYXJyYXlNb2RlID0gbm9kZS0+YXJyYXlNb2RlKCkubW9kZUZvclB1dCgpOwor
ICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgeworICAgIGNhc2UgQXJyYXk6OkFueVR5cGVk
QXJyYXk6CisgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0OgorICAgIGNhc2UgQXJyYXk6OlNlbGVj
dFVzaW5nQXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6
CisgICAgY2FzZSBBcnJheTo6VW5wcm9maWxlZDoKKyAgICBjYXNlIEFycmF5OjpTdHJpbmc6Cisg
ICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgorICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFy
Z3VtZW50czoKKyAgICBjYXNlIEFycmF5OjpVbmRlY2lkZWQ6CisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkJpZ1Vp
bnQ2NEFycmF5OgorI2VuZGlmCisgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2Rl
LCAiQmFkIGFycmF5IG1vZGUgdHlwZSIpOworICAgICAgICBicmVhazsKKyNpZiBVU0UoSlNWQUxV
RTY0KQorICAgIGNhc2UgQXJyYXk6OkJpZ0ludDY0QXJyYXk6CisgICAgY2FzZSBBcnJheTo6Qmln
VWludDY0QXJyYXk6CisjZW5kaWYKKyAgICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CisgICAgICAg
IERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbCB8
fCBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0LCBub2RlLT5vcCgpKTsKKyAgICAgICAgaWYg
KG1fZ3JhcGgubV9zbG93UHV0QnlWYWwuY29udGFpbnMobm9kZSkpIHsKKyAgICAgICAgICAgIGlm
IChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBDZWxsVXNl
KSB7CisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MSkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgICAgICBjb21waWxl
UHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN5bWJvbFVzZSkgeworICAgICAg
ICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChub2RlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVy
dHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVl
UmVncygpOworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0gcHJvcGVydHku
anNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVl
LmpzVmFsdWVSZWdzKCk7CisKKyAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAg
ICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkKKyAgICAgICAgICAgICAgICBj
YWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRydXN0
ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3Mp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+
ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3QgOiBvcGVyYXRp
b25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWdz
LCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOworCisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5n
cmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwor
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1Zh
bHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
LCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVn
cyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdz
ID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
ID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKworICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJ
bnZhbGlkR1BSUmVnOworICAgICAgICBHUFJUZW1wb3Jhcnkgc3R1YkluZm87CisgICAgICAgIGlm
IChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAgc3R1
YkluZm8gPSBHUFJUZW1wb3JhcnkodGhpcyk7CisgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0
dWJJbmZvLmdwcigpOworICAgICAgICB9CisKKyAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICBzcGVjdWxhdGUobm9kZSwg
bV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgIHNwZWN1bGF0ZShu
b2RlLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKworICAgICAgICBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7CisgICAgICAgIENhbGxT
aXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0
aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7
CisgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJz
KCk7CisgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0
OworICAgICAgICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7CisKKyAgICAg
ICAgSklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAorICAgICAgICAgICAgbV9qaXQuY29kZUJsb2Nr
KCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklU
LCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3Rl
cnMsCisgICAgICAgICAgICBiYXNlUmVncywgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MsIEludmFs
aWRHUFJSZWcsIHN0dWJJbmZvR1BSKTsKKworICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjU3RyaW5nKSkKKyAg
ICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3RyaW5nID0gdHJ1ZTsKKyAgICAg
ICAgZWxzZSBpZiAobV9zdGF0ZS5mb3JOb2RlKG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMSkpLmlzVHlwZShTcGVjSW50MzJPbmx5KSkKKyAgICAgICAgICAgIGdlbi5zdHViSW5mbygp
LT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5v
ZGUobV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTeW1ib2wp
KQorICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwor
CisgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKworICAgICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKQorICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xv
d1BhdGhKdW1wKCkpOworCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRv
cj4gc2xvd1BhdGg7CisgICAgICAgIGF1dG8gb3BlcmF0aW9uID0gaXNEaXJlY3QgPyAoZWNtYU1v
ZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBv
cGVyYXRpb25EaXJlY3RQdXRCeVZhbE5vblN0cmljdE9wdGltaXplKSA6IChlY21hTW9kZS5pc1N0
cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlvblB1dEJ5
VmFsTm9uU3RyaWN0T3B0aW1pemUpOworICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkRGR0pJVCkpIHsKKyAgICAgICAgICAgIHNsb3dQYXRoID0gc2xvd1BhdGhJQ0NhbGwo
CisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBnZW4uc3R1YkluZm8oKSwgc3R1Yklu
Zm9HUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1Yklu
Zm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgb3BlcmF0aW9uLAorICAgICAgICAgICAgICAg
IE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVl
UmVncywgc3R1YkluZm9HUFIsIG51bGxwdHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0
aGlzLCBvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6
OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGNvZGVPcmlnaW4p
KSwgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVSZWdzLCBnZW4uc3R1YkluZm8oKSwgbnVs
bHB0cik7CisgICAgICAgIH0KKworICAgICAgICBtX2ppdC5hZGRQdXRCeVZhbChnZW4sIHNsb3dQ
YXRoLmdldCgpKTsKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RGTW92ZShzbG93UGF0
aCkpOworCisgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgY2FzZSBBcnJheTo6SW50MzI6IHsKKyAgICAgICAgc3BlY3VsYXRlSW50MzIobV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIH0K
KyAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7CisgICAgICAgIGNvbXBpbGVDb250aWd1b3Vz
UHV0QnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEFycmF5OjpE
b3VibGU6IHsKKyAgICAgICAgY29tcGlsZURvdWJsZVB1dEJ5VmFsKG5vZGUpOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOgorICAgIGNhc2UgQXJy
YXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
YmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAg
U3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlz
LCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKKyAgICAgICAgU3RvcmFnZU9w
ZXJhbmQgc3RvcmFnZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsK
KworICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBw
cm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworICAgICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0
b3JhZ2UuZ3ByKCk7CisKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykg
eworICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KKyAgICAgICAg
ICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOworICAgICAgICAgICAgbV9q
aXQuc3RvcmVWYWx1ZSh2YWx1ZVJlZ3MsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3Jh
Z2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFy
eTsKKyAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJlZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0
QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGJleW9uZEFycmF5
Qm91bmRzID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFn
ZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKKyAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRP
ZkJvdW5kcygpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNW
YWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYmV5b25kQXJyYXlCb3VuZHMpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKKworICAgICAg
ICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZTsgaWYgc28gaW5jcmVtZW50IG1f
bnVtVmFsdWVzSW5WZWN0b3IuCisgICAgICAgIGlmIChhcnJheU1vZGUuaXNJbkJvdW5kcygpKSB7
CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgIFN0b3JlVG9I
b2xlLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5j
aElmRW1wdHkoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJl
ZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0
KCkpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBub3RIb2xlVmFsdWUgPSBtX2ppdC5icmFuY2hJZk5vdEVtcHR5KE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAoYXJy
YXlNb2RlLmlzU2xvd1B1dCgpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzb3J0IG9m
IHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNvZGUgcGF0aCwgd2Ugd291
bGQgaW52ZXJ0CisgICAgICAgICAgICAgICAgLy8gdGhlIGFib3ZlIGJyYW5jaC4gQnV0IGl0J3Mg
c2ltcGx5IG5vdCB3b3J0aCBpdCBzaW5jZSB0aGlzIG9ubHkgaGFwcGVucyBpZiB3ZSdyZQorICAg
ICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFkIHRpbWUuCisgICAgICAgICAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JP
ZmZzZXQoKSkpOworCisgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgd3JpdGluZyB0byBhIGhv
bGUgd2UgbWlnaHQgYmUgZ3Jvd2luZyB0aGUgYXJyYXk7CisgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7CisgICAgICAgICAg
ICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwcm9wZXJ0eVJlZywgdGVtcG9yYXJ5
UmVnKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKHRlbXBvcmFyeVJlZywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQo
KSkpOworCisgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUubGluaygmbV9q
aXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0
KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXku
CisgICAgICAgIG1faml0LnN0b3JlVmFsdWUodmFsdWVSZWdzLCBNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdo
dCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOworCisgICAgICAgIGJhc2UudXNlKCk7
CisgICAgICAgIHByb3BlcnR5LnVzZSgpOworICAgICAgICB2YWx1ZS51c2UoKTsKKyAgICAgICAg
c3RvcmFnZS51c2UoKTsKKworICAgICAgICBpZiAoIXNsb3dDYXNlcy5lbXB0eSgpKSB7CisgICAg
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICAg
ICAgc2xvd0Nhc2VzLCB0aGlzLAorICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKSA/CisgICAgICAgICAgICAgICAgICAgIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGly
ZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9w
ZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpIDoKKyAgICAgICAgICAgICAg
ICAgICAgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCksCisgICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWdzKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBBcnJheTo6SW50OEFycmF5
OgorICAgIGNhc2UgQXJyYXk6OkludDE2QXJyYXk6CisgICAgY2FzZSBBcnJheTo6SW50MzJBcnJh
eToKKyAgICBjYXNlIEFycmF5OjpVaW50OEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQ4Q2xh
bXBlZEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQxNkFycmF5OgorICAgIGNhc2UgQXJyYXk6
OlVpbnQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKKyAgICBjYXNlIEFy
cmF5OjpGbG9hdDY0QXJyYXk6IHsKKyAgICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5
TW9kZS50eXBlZEFycmF5VHlwZSgpOworICAgICAgICBpZiAoaXNJbnQodHlwZSkpCisgICAgICAg
ICAgICBjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KG5vZGUsIHR5cGUpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkobm9k
ZSwgdHlwZSk7CisgICAgfSB9Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRD
aGFyQ29kZUF0KE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc3RyaW5n
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKQEAgLTM1NjcsMTYgKzM4NTIsMTkgQEAgYm9vbCBTcGVj
dWxhdGl2ZUpJVDo6Z2V0SW50VHlwZWRBcnJheVN0b3JlT3BlcmFuZEZvckF0b21pY3MoCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFs
Rm9ySW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiBub2Rl
LCBUeXBlZEFycmF5VHlwZSB0eXBlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5
VmFsRm9ySW50VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQogewog
ICAgIEFTU0VSVChpc0ludCh0eXBlKSk7Ci0gICAgCisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNw
ZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKTsKICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMykpOworCiAgICAgR1BSVGVtcG9yYXJ5IHNj
cmF0Y2godGhpcyk7CiAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAg
IAotICAgIEVkZ2UgdmFsdWVVc2UgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIp
OwotICAgIAorICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgcHJv
cGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKKwogICAgIEdQUlRlbXBvcmFyeSB2YWx1ZTsKICNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlRlbXBvcmFyeSBwcm9wZXJ0eVRhZzsKQEAgLTM1
ODQsMTMgKzM4NzIsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9y
SW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnQKICNlbmRpZgogCiAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoQ2FzZXM7Ci0gICAgCisKICAgICBib29sIHJl
c3VsdCA9IGdldEludFR5cGVkQXJyYXlTdG9yZU9wZXJhbmQoCi0gICAgICAgIHZhbHVlLCBwcm9w
ZXJ0eSwKKyAgICAgICAgdmFsdWUsIHByb3BlcnR5UmVnLAogI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CiAgICAgICAgIHByb3BlcnR5VGFnLCB2YWx1ZVRhZywKICNlbmRpZgotICAgICAgICB2YWx1ZVVz
ZSwgc2xvd1BhdGhDYXNlcywgaXNDbGFtcGVkKHR5cGUpKTsKKyAgICAgICAgbV9qaXQuZ3JhcGgo
KS52YXJBcmdDaGlsZChub2RlLCAyKSwgc2xvd1BhdGhDYXNlcywgaXNDbGFtcGVkKHR5cGUpKTsK
ICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMzYwMiw1NyArMzg5MCw0MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
UHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydAogICAg
IEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHZhbHVlVGFnLmdwcigpOwogI2VuZGlmCiAKLSAgICBBU1NF
UlRfVU5VU0VEKHZhbHVlR1BSLCB2YWx1ZUdQUiAhPSBwcm9wZXJ0eSk7Ci0gICAgQVNTRVJUKHZh
bHVlR1BSICE9IGJhc2UpOworICAgIEFTU0VSVF9VTlVTRUQodmFsdWVHUFIsIHZhbHVlR1BSICE9
IHByb3BlcnR5UmVnKTsKKyAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZVJlZyk7CiAgICAgQVNT
RVJUKHZhbHVlR1BSICE9IHN0b3JhZ2VSZWcpOwotICAgIEpJVENvbXBpbGVyOjpKdW1wIG91dE9m
Qm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0
eSwgc2NyYXRjaC5ncHIoKSk7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBq
dW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBz
Y3JhdGNoLmdwcigpKTsKIAogICAgIHN3aXRjaCAoZWxlbWVudFNpemUodHlwZSkpIHsKICAgICBj
YXNlIDE6Ci0gICAgICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25l
KSk7CisgICAgICAgIG1faml0LnN0b3JlOCh2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25l
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMjoKLSAgICAgICAgbV9qaXQuc3RvcmUxNih2
YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0
eSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzVHdvKSk7CisgICAgICAgIG1faml0LnN0b3JlMTYodmFs
dWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc1R3bykpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IDQ6Ci0gICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIp
KTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZS5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRm91
cikpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBDUkFTSCgpOwogICAg
IH0KIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlzRGV0
YWNoZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2UsIG91dE9mQm91bmRzKTsKKyAgICBKSVRDb21w
aWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0RldGFjaGVkSWZPdXRPZkJvdW5k
cyhub2RlLCBiYXNlUmVnLCBvdXRPZkJvdW5kcyk7CiAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAg
ICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAKICAgICBpZiAoIXNsb3dQYXRoQ2FzZXMuZW1wdHko
KSkgeworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAg
ICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAorICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5p
c1N0cmljdCgpID8KKyAgICAgICAgICAgICAgICAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVj
dCA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxTdHJp
Y3QpIDoKKyAgICAgICAgICAgICAgICAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJp
Y3QpLAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5
VmFsRGlyZWN0KSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENh
bGwoCi0gICAgICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywKLSAgICAgICAgICAgICAg
ICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0
cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Tm9uU3RyaWN0LAotICAgICAgICAgICAgICAg
IE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgcHJvcGVydHksIHZh
bHVlR1BSKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVy
YXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xvd1BhdGhDYXNlcywgdGhpcywK
LSAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25Q
dXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LAotICAgICAgICAgICAg
ICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZSwgcHJvcGVydHks
IHZhbHVlR1BSKSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlR1BSKSk7CiAjZWxz
ZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlW
YWxEaXJlY3QpIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2Fs
bCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAg
IG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2Vs
bFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdCwKLSAgICAgICAg
ICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9n
cmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2UsIEpTVmFs
dWVSZWdzKHByb3BlcnR5VGFnR1BSLCBwcm9wZXJ0eSksIEpTVmFsdWVSZWdzKHZhbHVlVGFnR1BS
LCB2YWx1ZUdQUikpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRo
R2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICBzbG93UGF0aENhc2VzLCB0
aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJh
dGlvblB1dEJ5VmFsQ2VsbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0cmljdCwK
LSAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9n
cmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJh
c2UsIEpTVmFsdWVSZWdzKHByb3BlcnR5VGFnR1BSLCBwcm9wZXJ0eSksIEpTVmFsdWVSZWdzKHZh
bHVlVGFnR1BSLCB2YWx1ZUdQUikpKTsKLSAgICAgICAgfQorICAgICAgICAgICAgTm9SZXN1bHQs
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShiYXNl
UmVnKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlUYWdHUFIsIHByb3BlcnR5UmVnKSwgSlNWYWx1ZVJl
Z3ModmFsdWVUYWdHUFIsIHZhbHVlR1BSKSkpOwogI2VuZGlmCiAgICAgfQotICAgIAorCiAgICAg
bm9SZXN1bHQobm9kZSk7CiB9CiAKQEAgLTM2OTksMzkgKzM5NzIsNDAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9kZSwgVHlw
ZWRBcnJheVR5cGUKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRC
eVZhbEZvckZsb2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2Rl
KiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5
cGUpCiB7CiAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgIAorCisgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDAp
KTsKKyAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFu
ZCB2YWx1ZU9wKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMikpOwogICAg
IFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAzKSk7Ci0gICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotICAgIAot
ICAgIEVkZ2UgdmFsdWVVc2UgPSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwog
Ci0gICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCB2YWx1ZU9wKHRoaXMsIHZhbHVlVXNlKTsKICAg
ICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKICAgICBHUFJUZW1wb3JhcnkgZ3BTY3JhdGNo
KHRoaXMpOwogICAgIEZQUlJlZyB2YWx1ZUZQUiA9IHZhbHVlT3AuZnByKCk7CiAgICAgRlBSUmVn
IHNjcmF0Y2hGUFIgPSBzY3JhdGNoLmZwcigpOworICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5n
cHIoKTsKKyAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKICAgICBHUFJS
ZWcgc2NyYXRjaEdQUiA9IGdwU2NyYXRjaC5ncHIoKTsKKyAgICBHUFJSZWcgc3RvcmFnZVJlZyA9
IHN0b3JhZ2UuZ3ByKCk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvdXRPZkJvdW5kcyA9
IGp1bXBGb3JUeXBlZEFycmF5T3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgcHJvcGVydHksIHNjcmF0
Y2hHUFIpOwotICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9mQm91bmRzID0ganVt
cEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc2Ny
YXRjaEdQUik7CiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDog
ewogICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKHZhbHVlRlBSLCBzY3JhdGNoRlBSKTsKICAgICAg
ICAgbV9qaXQuY29udmVydERvdWJsZVRvRmxvYXQodmFsdWVGUFIsIHNjcmF0Y2hGUFIpOwotICAg
ICAgICBtX2ppdC5zdG9yZUZsb2F0KHNjcmF0Y2hGUFIsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZVJlZywgcHJvcGVydHksIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0ZvdXIpKTsKKyAg
ICAgICAgbV9qaXQuc3RvcmVGbG9hdChzY3JhdGNoRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUlu
ZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNGb3VyKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIDg6Ci0gICAgICAgIG1faml0LnN0b3Jl
RG91YmxlKHZhbHVlRlBSLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHBy
b3BlcnR5LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOworICAgICAgICBtX2ppdC5zdG9y
ZURvdWJsZSh2YWx1ZUZQUiwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBw
cm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CiAKLSAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0Rl
dGFjaGVkSWZPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBvdXRPZkJvdW5kcyk7CisgICAgSklUQ29t
cGlsZXI6Okp1bXAgZG9uZSA9IGp1bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3Vu
ZHMobm9kZSwgYmFzZVJlZywgb3V0T2ZCb3VuZHMpOwogICAgIGlmIChkb25lLmlzU2V0KCkpCiAg
ICAgICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIG5vUmVzdWx0KG5vZGUpOwpAQCAtMzkxOSw0
MCArNDE5Myw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5hbWVC
eUlkKE5vZGUqIG5vZGUpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
UHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhOb2RlKiBub2RlLCBFZGdlJiBjaGlsZDEsIEVkZ2Um
IGNoaWxkMiwgRWRnZSYgY2hpbGQzKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5
VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSogbm9kZSkKIHsKLSAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBhcmcxKHRoaXMsIGNoaWxkMSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0
aGlzLCBjaGlsZDIpOwotICAgIEpTVmFsdWVPcGVyYW5kIGFyZzModGhpcywgY2hpbGQzKTsKKyAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcxKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0
aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDIpKTsKIAogICAgIEdQUlJlZyBh
cmcxR1BSID0gYXJnMS5ncHIoKTsKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAg
ICAgSlNWYWx1ZVJlZ3MgYXJnM1JlZ3MgPSBhcmczLmpzVmFsdWVSZWdzKCk7CiAKLSAgICBzcGVj
dWxhdGVTdHJpbmcoY2hpbGQyLCBhcmcyR1BSKTsKKyAgICBzcGVjdWxhdGVTdHJpbmcobV9qaXQu
Z3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSwgYXJnMkdQUik7CiAKICAgICBmbHVzaFJlZ2lz
dGVycygpOwogICAgIGNhbGxPcGVyYXRpb24oCi0gICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKQotICAgICAgICAgICAgPyAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCA/IG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
Q2VsbFN0cmluZ1N0cmljdCkKLSAgICAgICAgICAgIDogKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxE
aXJlY3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdOb25TdHJpY3QgOiBvcGVy
YXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJpY3QpLAorICAgICAgICBub2RlLT5lY21hTW9k
ZSgpLmlzU3RyaWN0KCkgPworICAgICAgICAgICAgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJl
Y3QgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3QgOiBvcGVyYXRpb25Q
dXRCeVZhbENlbGxTdHJpbmdTdHJpY3QpIDoKKyAgICAgICAgICAgIChub2RlLT5vcCgpID09IFB1
dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9uU3RyaWN0
IDogb3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nTm9uU3RyaWN0KSwKICAgICAgICAgVHJ1c3Rl
ZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJHUFIsIGFyZzNSZWdzKTsKICAgICBt
X2ppdC5leGNlcHRpb25DaGVjaygpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAKLXZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3ltYm9sKE5vZGUqIG5v
ZGUsIEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMpCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKiBub2RlKQog
ewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgY2hpbGQxKTsKLSAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBhcmcyKHRoaXMsIGNoaWxkMik7Ci0gICAgSlNWYWx1ZU9wZXJhbmQg
YXJnMyh0aGlzLCBjaGlsZDMpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywg
bV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYXJnMih0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKyAg
ICBKU1ZhbHVlT3BlcmFuZCBhcmczKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9k
ZSwgMikpOwogCiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBh
cmcyR1BSID0gYXJnMi5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyBhcmczUmVncyA9IGFyZzMuanNW
YWx1ZVJlZ3MoKTsKIAotICAgIHNwZWN1bGF0ZVN5bWJvbChjaGlsZDIsIGFyZzJHUFIpOworICAg
IHNwZWN1bGF0ZVN5bWJvbChtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBhcmcy
R1BSKTsKIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbigKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBjMTgzZTE4
MzNkNTY5YmMxNzU1NWU4Zjc3ODAxMGYyZGUxNWM0NWJkLi5kMGU4NmMwZDcyMjhhYjVmMTRiOWY4
ZTU2M2JiYjExMTdlN2Q5ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCkBAIC0xMzQyLDExICsxMzQyLDggQEAgcHVibGljOgogICAgIHZvaWQg
Y29tcGlsZUdldFByb3RvdHlwZU9mKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJZGVudGl0eShO
b2RlKik7CiAgICAgCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCYXNlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFByb3BlcnR5T3BlcmFuZFR5cGUsIHR5cGVuYW1l
IFZhbHVlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFRhZ1R5cGU+Ci0gICAgdm9pZCBjb21waWxlQ29u
dGlndW91c1B1dEJ5VmFsKE5vZGUqLCBCYXNlT3BlcmFuZFR5cGUmLCBQcm9wZXJ0eU9wZXJhbmRU
eXBlJiwgVmFsdWVPcGVyYW5kVHlwZSYsIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcsIFRhZ1R5cGUg
dmFsdWVUYWcpOwotI2VuZGlmCi0gICAgdm9pZCBjb21waWxlRG91YmxlUHV0QnlWYWwoTm9kZSos
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kJiBiYXNlLCBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQm
IHByb3BlcnR5KTsKKyAgICB2b2lkIGNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwoTm9kZSopOwor
ICAgIHZvaWQgY29tcGlsZURvdWJsZVB1dEJ5VmFsKE5vZGUqKTsKICAgICBib29sIHB1dEJ5VmFs
V2lsbE5lZWRFeHRyYVJlZ2lzdGVyKEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgewogICAgICAg
ICByZXR1cm4gYXJyYXlNb2RlLm1heVN0b3JlVG9Ib2xlKCk7CkBAIC0xMzU3LDYgKzEzNTQsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRl
bXBvcmFyeSwgbm9kZS0+YXJyYXlNb2RlKCkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBp
bGVQdXRCeVZhbChOb2RlKik7CisKICAgICAvLyBXZSB1c2UgYSBzY29wZWRMYW1iZGEgdG8gcGxh
Y2F0ZSByZWdpc3RlciBhbGxvY2F0aW9uIHZhbGlkYXRpb24uCiAgICAgZW51bSBjbGFzcyBDYW5V
c2VGbHVzaCB7IFllcywgTm8gfTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbChOb2RlKiwgY29u
c3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVz
ZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwpAQCAtMTQ0Nywx
MyArMTQ0NiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVP
ZmZzZXRBc0ludDUyKE5vZGUqKTsKICNlbmRpZgogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25J
bnRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0
ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0
IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9y
SW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiwgVHlwZWRB
cnJheVR5cGUpOworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShOb2Rl
KiwgVHlwZWRBcnJheVR5cGUpOwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVk
QXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBs
ZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVy
cmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5
cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlU
eXBlKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckZsb2F0VHlwZWRBcnJheShOb2RlKiwg
VHlwZWRBcnJheVR5cGUpOwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0
cmluZyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERh
dGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVm
aXgpOwogICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChOb2RlKiwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENh
blVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZv
aWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSosIEVkZ2UmIGNoaWxkMSwg
RWRnZSYgY2hpbGQyLCBFZGdlJiBjaGlsZDMpOwotICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9y
Q2VsbFdpdGhTeW1ib2woTm9kZSosIEVkZ2UmIGNoaWxkMSwgRWRnZSYgY2hpbGQyLCBFZGdlJiBj
aGlsZDMpOworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTdHJpbmcoTm9kZSop
OworICAgIHZvaWQgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2woTm9kZSopOwogICAg
IHZvaWQgY29tcGlsZUdldEJ5VmFsV2l0aFRoaXMoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVB1
dFByaXZhdGVOYW1lKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQo
Tm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKaW5kZXggMTg3ZWRjZTAyMzRiZDQ0ZTk2ODIyOWY2OTgzNzJmMTk1ZDdl
ODNhOS4uNTIzOWI4YTQ0OTQwNzU4NTk2ODcxZmQyN2VhMjVlMWE0NzQwYTE3NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC0xNzQ2LDc1ICsxNzQ2LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJyYW5jaChO
b2RlKiBub2RlKQogICAgIH0KIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBl
LCB0eXBlbmFtZSBQcm9wZXJ0eU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBl
LCB0eXBlbmFtZSBUYWdUeXBlPgotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3Vv
dXNQdXRCeVZhbChOb2RlKiBub2RlLCBCYXNlT3BlcmFuZFR5cGUmIGJhc2UsIFByb3BlcnR5T3Bl
cmFuZFR5cGUmIHByb3BlcnR5LCBWYWx1ZU9wZXJhbmRUeXBlJiB2YWx1ZSwgR1BSUmVnIHZhbHVl
UGF5bG9hZFJlZywgVGFnVHlwZSB2YWx1ZVRhZykKLXsKLSAgICBFZGdlIGNoaWxkNCA9IG1faml0
LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7Ci0KLSAgICBBcnJheU1vZGUgYXJyYXlNb2Rl
ID0gbm9kZS0+YXJyYXlNb2RlKCk7Ci0gICAgCi0gICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdw
cigpOwotICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgIAotICAg
IFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgY2hpbGQ0KTsKLSAgICBHUFJSZWcgc3RvcmFn
ZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7Ci0KLSAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFs
aWFzKSB7Ci0gICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAgICAg
IEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwotICAgICAgICBtX2ppdC5zdG9y
ZTMyKHZhbHVlVGFnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3Bl
cnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFs
dWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRS
ZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMucGF5bG9hZCkpKTsKLSAgICAgICAgCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNl
OwotCi0gICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkpIHsKLSAgICAgICAgc3BlY3VsYXRp
b25DaGVjaygKLSAgICAgICAgICAgIE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCAwLAotICAg
ICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6
b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBpbkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpC
ZWxvdywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1
dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwotICAgICAgICAKLSAgICAgICAgc2xv
d0Nhc2UgPSBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9w
ZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5Ojpv
ZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoIWFycmF5TW9k
ZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCAwLCBzbG93Q2FzZSk7Ci0gICAgICAgIAotICAgICAgICBtX2pp
dC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKLSAgICAgICAgbV9qaXQuc3Rv
cmUzMihwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0
dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSk7Ci0gICAgICAgIG1faml0LnN1YjMyKFRy
dXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcpOwotICAgICAgICAKLSAgICAgICAgaW5Cb3VuZHMu
bGluaygmbV9qaXQpOwotICAgIH0KLSAgICAKLSAgICBtX2ppdC5zdG9yZTMyKHZhbHVlVGFnLCBN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fz
c2VtYmxlcjo6VGltZXNFaWdodCwgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRh
ZykpKTsKLSAgICBtX2ppdC5zdG9yZTMyKHZhbHVlUGF5bG9hZFJlZywgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
RWlnaHQsIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwotICAg
IAotICAgIGJhc2UudXNlKCk7Ci0gICAgcHJvcGVydHkudXNlKCk7Ci0gICAgdmFsdWUudXNlKCk7
Ci0gICAgc3RvcmFnZS51c2UoKTsKLSAgICAKLSAgICBpZiAoYXJyYXlNb2RlLmlzT3V0T2ZCb3Vu
ZHMoKSkgewotICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAg
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAg
ICAgIHNsb3dDYXNlLCB0aGlzLAotICAgICAgICAgICAgICAgIG5vZGUtPmVjbWFNb2RlKCkuaXNT
dHJpY3QoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3Qg
OiBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAotICAg
ICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBo
LCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZVJl
ZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFnLCB2YWx1ZVBheWxvYWRSZWcpKSk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93
UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgc2xvd0Nhc2UsIHRoaXMsCi0gICAgICAgICAgICAg
ICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25T
dHJpY3QsCi0gICAgICAgICAgICAgICAgTm9SZXN1bHQsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgSlNWYWx1ZVJlZ3ModmFsdWVUYWcsIHZhbHVlUGF5
bG9hZFJlZykpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNo
aWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7ICAgIAotfQotCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8
SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJl
ZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBl
KCkpIHsKQEAgLTI3MTIsMjMwICsyNjQzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAgICAgY2FzZSBQdXRCeVZh
bDoKICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6IHsKLSAgICAgICAgRWRnZSBjaGlsZDEgPSBtX2pp
dC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDApOwotICAgICAgICBFZGdlIGNoaWxkMiA9IG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSk7Ci0gICAgICAgIEVkZ2UgY2hpbGQzID0g
bV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKTsKLSAgICAgICAgRWRnZSBjaGlsZDQg
PSBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpOwotICAgICAgICAKLSAgICAgICAg
QXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKTsKLSAg
ICAgICAgYm9vbCBhbHJlYWR5SGFuZGxlZCA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgc3dp
dGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5n
UHJlZGljdGlvbnM6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jaWYgQ09NUElMRVJfUVVJUksoQ09OU0lE
RVJTX1VOUkVBQ0hBQkxFX0NPREUpCi0gICAgICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4
ZWN1dGlvbihJbmFkZXF1YXRlQ292ZXJhZ2UsIEpTVmFsdWVSZWdzKCksIDApOwotICAgICAgICAg
ICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVlOwotI2VuZGlmCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewotICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9w
KCkgPT0gUHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCk7Ci0gICAgICAg
ICAgICBpZiAobV9ncmFwaC5tX3Nsb3dQdXRCeVZhbC5jb250YWlucyhub2RlKSkgewotICAgICAg
ICAgICAgICAgIGlmIChjaGlsZDEudXNlS2luZCgpID09IENlbGxVc2UpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN0cmluZyhub2RlLCBjaGls
ZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHlIYW5k
bGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkMi51c2VLaW5kKCkgPT0g
U3ltYm9sVXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUHV0QnlWYWxGb3JD
ZWxsV2l0aFN5bWJvbChub2RlLCBjaGlsZDEsIGNoaWxkMiwgY2hpbGQzKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBjaGlsZDEpOwotICAgICAg
ICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIGNoaWxkMik7Ci0gICAgICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsKLSAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKLSAgICAgICAg
ICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygp
OwotICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVS
ZWdzKCk7Ci0KLSAgICAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICAgICAg
ICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQotICAgICAgICAgICAgICAgICAg
ICBjYWxsT3BlcmF0aW9uKG5vZGUtPmVjbWFNb2RlKCkuaXNTdHJpY3QoKSA/IG9wZXJhdGlvblB1
dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIFRy
dXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9y
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlUmVncywgIHByb3BlcnR5UmVncywgdmFsdWVS
ZWdzKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNhbGxPcGVy
YXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJp
Y3QgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KSksIGJhc2VSZWdzLCAgcHJvcGVydHlSZWdzLCB2YWx1ZVJlZ3MpOwotICAgICAgICAgICAgICAg
IG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICAgICAgICAgICAgICBub1Jlc3VsdChub2Rl
KTsKLSAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGJh
c2UodGhpcywgY2hpbGQxLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgY2hpbGQyLCBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBN
YW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJl
Z3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0
eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOwotICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mg
dmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKLQotICAgICAgICAgICAgc3BlY3VsYXRl
KG5vZGUsIGNoaWxkMSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUobm9kZSwgY2hpbGQyKTsKLSAg
ICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDMpOwotCi0gICAgICAgICAgICBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4gPSBub2RlLT5vcmlnaW4uc2VtYW50aWM7Ci0gICAgICAgICAgICBDYWxs
U2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2Vw
dGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkp
OwotICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVzZWRSZWdp
c3RlcnMoKTsKLSAgICAgICAgICAgIGJvb2wgaXNEaXJlY3QgPSBub2RlLT5vcCgpID09IFB1dEJ5
VmFsRGlyZWN0OwotICAgICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUgPSBub2RlLT5lY21hTW9k
ZSgpOwotCi0gICAgICAgICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvciBnZW4oCi0gICAgICAgICAg
ICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJ
bmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6
UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCi0gICAgICAgICAgICAgICAgYmFzZVJlZ3MsIHByb3Bl
cnR5UmVncywgdmFsdWVSZWdzLCBJbnZhbGlkR1BSUmVnLCBJbnZhbGlkR1BSUmVnKTsKLQotICAg
ICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlwZShTcGVjU3RyaW5nKSkK
LSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N0cmluZyA9IHRydWU7
Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3Bl
Y0ludDMyT25seSkpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJ
bnQzMiA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQy
KS5pc1R5cGUoU3BlY1N5bWJvbCkpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnBy
b3BlcnR5SXNTeW1ib2wgPSB0cnVlOwotCi0gICAgICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0
aChtX2ppdCk7Ci0KLSAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7
Ci0gICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7Ci0KLSAg
ICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7Ci0g
ICAgICAgICAgICBhdXRvIG9wZXJhdGlvbiA9IGlzRGlyZWN0ID8gKGVjbWFNb2RlLmlzU3RyaWN0
KCkgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbFN0cmljdE9wdGltaXplIDogb3BlcmF0aW9uRGly
ZWN0UHV0QnlWYWxOb25TdHJpY3RPcHRpbWl6ZSkgOiAoZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9w
ZXJhdGlvblB1dEJ5VmFsU3RyaWN0T3B0aW1pemUgOiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmlj
dE9wdGltaXplKTsKLSAgICAgICAgICAgIHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAotICAgICAg
ICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgIE5v
UmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2Jh
bE9iamVjdEZvcihjb2RlT3JpZ2luKSksIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVn
cywgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIpOwotCi0gICAgICAgICAgICBtX2ppdC5hZGRQdXRC
eVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsKLSAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKLQotICAgICAgICAgICAgbm9SZXN1bHQobm9kZSk7Ci0g
ICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIGlmIChhbHJlYWR5SGFuZGxlZCkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAKLSAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBjaGls
ZDEpOwotICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywg
Y2hpbGQyKTsKLSAgICAgICAgCi0gICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsK
LSAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0KLSAgICAgICAg
c3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyOiB7
Ci0gICAgICAgICAgICBzcGVjdWxhdGVJbnQzMihjaGlsZDMpOwotICAgICAgICAgICAgRkFMTFRI
Uk9VR0g7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewotICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5k
U3BlY3VsYXRpb24pOwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50
YWdHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcgPSB2YWx1ZS5wYXls
b2FkR1BSKCk7Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgY29tcGlsZUNvbnRpZ3VvdXNQdXRC
eVZhbChub2RlLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIHZhbHVlUGF5bG9hZFJlZywgdmFsdWVU
YWdSZWcpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBBcnJh
eTo6RG91YmxlOiB7Ci0gICAgICAgICAgICBjb21waWxlRG91YmxlUHV0QnlWYWwobm9kZSwgYmFz
ZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBBcnJheTo6QXJyYXlTdG9yYWdlOgotICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlT
dG9yYWdlOiB7Ci0gICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBjaGlsZDMp
OwotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVUYWdSZWcgPSB2YWx1ZS50YWdHUFIoKTsKLSAg
ICAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRSZWcgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghbV9jb21waWxlT2theSkKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywg
Y2hpbGQ0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFnZS5ncHIoKTsK
LQotICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgewotICAgICAg
ICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAgICAgICAgICAg
ICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgICAgICAgICAgICAg
bV9qaXQuc3RvcmUzMih2YWx1ZS50YWdHUFIoKSwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIEFycmF5
U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0Jp
dHMudGFnKSkpOwotICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWUucGF5bG9hZEdQ
UigpLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSAr
IE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3Qgc2xvd0Nhc2VzOwotCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBiZXlv
bmRBcnJheUJvdW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1
YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJh
eVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICBpZiAoIWFycmF5
TW9kZS5pc091dE9mQm91bmRzKCkpCi0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhP
dXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgMCwgYmV5b25kQXJyYXlCb3VuZHMpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYmV5b25kQXJyYXlC
b3VuZHMpOwotCi0gICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9s
ZTsgaWYgc28gaW5jcmVtZW50IG1fbnVtVmFsdWVzSW5WZWN0b3IuCi0gICAgICAgICAgICBpZiAo
YXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soCi0gICAgICAgICAgICAgICAgICAgIFN0b3JlVG9Ib2xlLCBKU1ZhbHVlUmVncygpLCAwLAot
ICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWws
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZVJlZywgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6RW1wdHlWYWx1ZVRhZykpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVlID0gbV9qaXQuYnJhbmNoMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VS
ZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdl
Ojp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcp
KSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsKLSAgICAgICAgICAgICAg
ICBpZiAoYXJyYXlNb2RlLmlzU2xvd1B1dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRo
aXMgaXMgc29ydCBvZiBzdHJhbmdlLiBJZiB3ZSB3YW50ZWQgdG8gb3B0aW1pemUgdGhpcyBjb2Rl
IHBhdGgsIHdlIHdvdWxkIGludmVydAotICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWJvdmUg
YnJhbmNoLiBCdXQgaXQncyBzaW1wbHkgbm90IHdvcnRoIGl0IHNpbmNlIHRoaXMgb25seSBoYXBw
ZW5zIGlmIHdlJ3JlCi0gICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGF2aW5nIGEgYmFk
IHRpbWUuCi0gICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuanVtcCgp
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBtX2ppdC5h
ZGQzMihUcnVzdGVkSW1tMzIoMSksIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcs
IEFycmF5U3RvcmFnZTo6bnVtVmFsdWVzSW5WZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSB3cml0aW5nIHRvIGEgaG9sZSB3
ZSBtaWdodCBiZSBncm93aW5nIHRoZSBhcnJheTsgCi0gICAgICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGxlbmd0aERvZXNOb3ROZWVkVXBkYXRlID0gbV9qaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwotICAgICAgICAg
ICAgICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5UmVnKTsKLSAg
ICAgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjpsZW5ndGhPZmZzZXQoKSkpOwot
ICAgICAgICAgICAgICAgICAgICBtX2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMSksIHByb3BlcnR5
UmVnKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoRG9lc05v
dE5lZWRVcGRhdGUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBub3RIb2xlVmFsdWUubGluaygmbV9qaXQpOwotICAgICAgICAgICAgfQotICAgIAotICAg
ICAgICAgICAgLy8gU3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAgIG1f
aml0LnN0b3JlMzIodmFsdWVUYWdSZWcsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFn
ZVJlZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3Jh
Z2U6OnZlY3Rvck9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRh
ZykpKTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkUmVnLCBNYWNyb0Fz
c2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxl
cjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSArIE9CSkVDVF9PRkZT
RVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwotCi0gICAgICAgICAgICBiYXNlLnVz
ZSgpOwotICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0gICAgICAgICAgICB2YWx1ZS51c2Uo
KTsKLSAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS0+b3Ao
KSA9PSBQdXRCeVZhbERpcmVjdCkgewotICAgICAgICAgICAgICAgICAgICBhZGRTbG93UGF0aEdl
bmVyYXRvcihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgICAgICBzbG93Q2FzZXMs
IHRoaXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0
KCkgPyBvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dy
YXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFz
ZVJlZywgcHJvcGVydHlSZWcsIEpTVmFsdWVSZWdzKHZhbHVlVGFnUmVnLCB2YWx1ZVBheWxvYWRS
ZWcpKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYWRk
U2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAgICAgICAgICAg
c2xvd0Nhc2VzLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUo
KS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6
IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFw
aCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VS
ZWcsIHByb3BlcnR5UmVnLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ1JlZywgdmFsdWVQYXlsb2FkUmVn
KSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbm9S
ZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgZGVmYXVsdDogewotICAgICAg
ICAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGFycmF5TW9kZS50eXBlZEFycmF5VHlwZSgpOwot
ICAgICAgICAgICAgaWYgKGlzSW50KHR5cGUpKQotICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRC
eVZhbEZvckludFR5cGVkQXJyYXkoYmFzZS5ncHIoKSwgcHJvcGVydHkuZ3ByKCksIG5vZGUsIHR5
cGUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbXBpbGVQdXRCeVZhbEZv
ckZsb2F0VHlwZWRBcnJheShiYXNlLmdwcigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7
Ci0gICAgICAgIH0gfQorICAgICAgICBjb21waWxlUHV0QnlWYWwobm9kZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKaW5kZXggYTVhOGNjM2NmNTNlOWU5MTQ5NzhkZjljMzQzMjA1MDVkYmMy
MDg3Yy4uYjNhMTJiYjY4MzY3NTVjYjdlMzUxYWIwMzkwZjg3MGQyNTczNzAxYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0z
MzM0LDMxNSArMzMzNCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgY2Fz
ZSBQdXRCeVZhbEFsaWFzOiB7Ci0gICAgICAgIEVkZ2UgY2hpbGQxID0gbV9qaXQuZ3JhcGgoKS52
YXJBcmdDaGlsZChub2RlLCAwKTsKLSAgICAgICAgRWRnZSBjaGlsZDIgPSBtX2ppdC5ncmFwaCgp
LnZhckFyZ0NoaWxkKG5vZGUsIDEpOwotICAgICAgICBFZGdlIGNoaWxkMyA9IG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMik7Ci0gICAgICAgIEVkZ2UgY2hpbGQ0ID0gbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAzKTsKLSAgICAgICAgCi0gICAgICAgIEFycmF5TW9kZSBh
cnJheU1vZGUgPSBub2RlLT5hcnJheU1vZGUoKS5tb2RlRm9yUHV0KCk7Ci0gICAgICAgIGJvb2wg
YWxyZWFkeUhhbmRsZWQgPSBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHN3aXRjaCAoYXJyYXlN
b2RlLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rpb25z
OgotICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6Ci0gICAgICAgICAgICBERkdfQ1JBU0go
bV9qaXQuZ3JhcGgoKSwgbm9kZSwgIkJhZCBhcnJheSBtb2RlIHR5cGUiKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5OgotICAgICAgICBjYXNl
IEFycmF5OjpCaWdVaW50NjRBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewot
ICAgICAgICAgICAgREZHX0FTU0VSVChtX2ppdC5ncmFwaCgpLCBub2RlLCBub2RlLT5vcCgpID09
IFB1dEJ5VmFsIHx8IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QsIG5vZGUtPm9wKCkpOwot
ICAgICAgICAgICAgaWYgKG1fZ3JhcGgubV9zbG93UHV0QnlWYWwuY29udGFpbnMobm9kZSkgfHwg
KGNoaWxkMS51c2VLaW5kKCkgIT0gQ2VsbFVzZSAmJiBjaGlsZDEudXNlS2luZCgpICE9IEtub3du
Q2VsbFVzZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hpbGQxLnVzZUtpbmQoKSA9PSBDZWxs
VXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZDIudXNlS2luZCgpID09IFN0cmlu
Z1VzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdp
dGhTdHJpbmcobm9kZSwgY2hpbGQxLCBjaGlsZDIsIGNoaWxkMyk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIGlmIChj
aGlsZDIudXNlS2luZCgpID09IFN5bWJvbFVzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
Y29tcGlsZVB1dEJ5VmFsRm9yQ2VsbFdpdGhTeW1ib2wobm9kZSwgY2hpbGQxLCBjaGlsZDIsIGNo
aWxkMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGFyZzEodGhp
cywgY2hpbGQxKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcyKHRoaXMsIGNo
aWxkMik7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMyh0aGlzLCBjaGlsZDMp
OwotICAgICAgICAgICAgICAgIEdQUlJlZyBhcmcxR1BSID0gYXJnMS5ncHIoKTsKLSAgICAgICAg
ICAgICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7Ci0gICAgICAgICAgICAgICAgR1BS
UmVnIGFyZzNHUFIgPSBhcmczLmdwcigpOwotICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3QpCi0g
ICAgICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24obm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmlj
dCgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdE5vblN0cmljdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFw
aC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJH
UFIsIGFyZzNHUFIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihub2RlLT5lY21hTW9kZSgpLmlzU3RyaWN0KCkgPyBvcGVyYXRpb25QdXRC
eVZhbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0LCBUcnVzdGVkSW1tUHRyOjp3
ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpKSwgYXJnMUdQUiwgYXJnMkdQUiwgYXJnM0dQUik7Ci0gICAgICAgICAgICAgICAg
bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLQotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUp
OwotICAgICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBjaGlsZDEpOwotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVy
dHkodGhpcywgY2hpbGQyLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOwotICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24pOwotICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwotICAgICAgICAg
ICAgR1BSUmVnIHByb3BlcnR5R1BSID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsKLQotICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHN0
dWJJbmZvOwotICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsK
LSAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewot
ICAgICAgICAgICAgICAgIHN0dWJJbmZvID0gR1BSVGVtcG9yYXJ5KHRoaXMpOwotICAgICAgICAg
ICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8uZ3ByKCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHNwZWN1bGF0ZShub2RlLCBjaGlsZDIpOwotICAgICAgICAgICAgc3BlY3VsYXRl
KG5vZGUsIGNoaWxkMyk7Ci0KLSAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYzsKLSAgICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUg
PSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0
SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7Ci0gICAgICAgICAgICBSZWdp
c3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOwotICAgICAgICAg
ICAgYm9vbCBpc0RpcmVjdCA9IG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxEaXJlY3Q7Ci0gICAgICAg
ICAgICBFQ01BTW9kZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7Ci0KLSAgICAgICAgICAg
IEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBtX2ppdC5jb2RlQmxv
Y2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdK
SVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQdXRCeVZhbCwgdXNlZFJlZ2lz
dGVycywKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3Mo
cHJvcGVydHlHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIEludmFsaWRHUFJSZWcsIHN0dWJJ
bmZvR1BSKTsKLQotICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGlsZDIpLmlzVHlw
ZShTcGVjU3RyaW5nKSkKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJ
c1N0cmluZyA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUoY2hp
bGQyKS5pc1R5cGUoU3BlY0ludDMyT25seSkpCi0gICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZv
KCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRl
LmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N5bWJvbCkpCi0gICAgICAgICAgICAgICAgZ2Vu
LnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwotCi0gICAgICAgICAgICBnZW4u
Z2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7Ci0KLSAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1w
TGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRU
eXBlOjpERkdKSVQpKQotICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKLQotICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJh
dG9yPiBzbG93UGF0aDsKLSAgICAgICAgICAgIGF1dG8gb3BlcmF0aW9uID0gaXNEaXJlY3QgPyAo
ZWNtYU1vZGUuaXNTdHJpY3QoKSA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsU3RyaWN0T3B0aW1p
emUgOiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbE5vblN0cmljdE9wdGltaXplKSA6IChlY21hTW9k
ZS5pc1N0cmljdCgpID8gb3BlcmF0aW9uUHV0QnlWYWxTdHJpY3RPcHRpbWl6ZSA6IG9wZXJhdGlv
blB1dEJ5VmFsTm9uU3RyaWN0T3B0aW1pemUpOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVz
ZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGggPSBz
bG93UGF0aElDQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBnZW4u
c3R1YkluZm8oKSwgc3R1YkluZm9HUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQ
UiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigpKSwgb3BlcmF0aW9u
LAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50
ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNlR1BS
LCBwcm9wZXJ0eUdQUiwgdmFsdWVHUFIsIHN0dWJJbmZvR1BSLCBudWxscHRyKTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCi0g
ICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9uLAotICAgICAgICAg
ICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwg
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3IoY29kZU9yaWdpbikpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQ
UiwgdmFsdWVHUFIsIGdlbi5zdHViSW5mbygpLCBudWxscHRyKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgbV9qaXQuYWRkUHV0QnlWYWwoZ2VuLCBzbG93UGF0aC5nZXQoKSk7Ci0gICAg
ICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihXVEZNb3ZlKHNsb3dQYXRoKSk7Ci0KLSAgICAg
ICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAgICAgICAgYWxyZWFkeUhhbmRsZWQgPSB0cnVl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoYWxyZWFkeUhh
bmRsZWQpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIGNoaWxkMSk7Ci0gICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFu
ZCBwcm9wZXJ0eSh0aGlzLCBjaGlsZDIpOwotICAgICAgICAKLSAgICAgICAgR1BSUmVnIGJhc2VS
ZWcgPSBiYXNlLmdwcigpOwotICAgICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9wZXJ0eS5n
cHIoKTsKLQotICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKLSAgICAgICAgY2Fz
ZSBBcnJheTo6SW50MzI6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKLSAgICAg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIGNoaWxkMywgTWFudWFsT3BlcmFuZFNw
ZWN1bGF0aW9uKTsKLQotICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7
Ci0gICAgICAgIAotICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBl
KCkgPT0gQXJyYXk6OkludDMyKSB7Ci0gICAgICAgICAgICAgICAgREZHX1RZUEVfQ0hFQ0soCi0g
ICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlUmVnKSwgY2hpbGQzLCBTcGVjSW50
MzJPbmx5LAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hJZk5vdEludDMyKHZhbHVl
UmVnKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3Jh
Z2UodGhpcywgY2hpbGQ0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzdG9yYWdlUmVnID0gc3RvcmFn
ZS5ncHIoKTsKLQotICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykg
ewotICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAg
ICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7Ci0gICAgICAg
ICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7Ci0gICAgICAgICAgICAgICAg
bV9qaXQuc3RvcmU2NCh2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdl
UmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpKTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgR1BSVGVt
cG9yYXJ5IHRlbXBvcmFyeTsKLSAgICAgICAgICAgIEdQUlJlZyB0ZW1wb3JhcnlSZWcgPSB0ZW1w
b3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKHRlbXBvcmFyeSwgbm9kZSk7Ci0KLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpZiAoYXJyYXlNb2RlLmlzSW5Cb3VuZHMoKSkgewotICAgICAgICAgICAgICAgIHNwZWN1bGF0
aW9uQ2hlY2soCi0gICAgICAgICAgICAgICAgICAgIE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygp
LCBudWxscHRyLAotICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
c3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBpbkJv
dW5kcyA9IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQ
dWJsaWNMZW5ndGgoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHNsb3dD
YXNlID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVy
dHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zm
c2V0T2ZWZWN0b3JMZW5ndGgoKSkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGlmICghYXJyYXlNb2RlLmlzT3V0T2ZCb3VuZHMoKSkKLSAgICAgICAgICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgc2xvd0Nh
c2UpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0
ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRlbXBvcmFyeVJlZyk7Ci0gICAgICAgICAgICAgICAg
bV9qaXQuc3RvcmUzMih0ZW1wb3JhcnlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3Jh
Z2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwotCi0gICAgICAgICAg
ICAgICAgaW5Cb3VuZHMubGluaygmbV9qaXQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3Jh
Z2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCkpOwotCi0gICAg
ICAgICAgICBiYXNlLnVzZSgpOwotICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0gICAgICAg
ICAgICB2YWx1ZS51c2UoKTsKLSAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKSB7Ci0gICAgICAg
ICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAg
ICAgICAgICBzbG93Q2FzZSwgdGhpcywKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1v
ZGUoKS5pc1N0cmljdCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09
IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCi0gICAg
ICAgICAgICAgICAgICAgICAgICA6IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCA6IG9wZXJhdGlv
blB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QpLAotICAgICAgICAgICAgICAgICAg
ICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5
UmVnLCB2YWx1ZVJlZykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBub1Jlc3VsdChu
b2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKLSAg
ICAgICAgICAgIGNvbXBpbGVEb3VibGVQdXRCeVZhbChub2RlLCBiYXNlLCBwcm9wZXJ0eSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
QXJyYXk6OkFycmF5U3RvcmFnZToKLSAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3Rv
cmFnZTogewotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgY2hpbGQzKTsK
LQotICAgICAgICAgICAgR1BSUmVnIHZhbHVlUmVnID0gdmFsdWUuZ3ByKCk7Ci0gICAgICAgIAot
ICAgICAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQotICAgICAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3RvcmFnZSh0aGlzLCBjaGlsZDQpOwotICAg
ICAgICAgICAgR1BSUmVnIHN0b3JhZ2VSZWcgPSBzdG9yYWdlLmdwcigpOwotCi0gICAgICAgICAg
ICBpZiAobm9kZS0+b3AoKSA9PSBQdXRCeVZhbEFsaWFzKSB7Ci0gICAgICAgICAgICAgICAgLy8g
U3RvcmUgdGhlIHZhbHVlIHRvIHRoZSBhcnJheS4KLSAgICAgICAgICAgICAgICBHUFJSZWcgcHJv
cGVydHlSZWcgPSBwcm9wZXJ0eS5ncHIoKTsKLSAgICAgICAgICAgICAgICBHUFJSZWcgdmFsdWVS
ZWcgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVn
LCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5OwotICAgICAgICAgICAgR1BSUmVnIHRlbXBvcmFyeVJl
ZyA9IHRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwodGVtcG9yYXJ5LCBub2RlKTsKLQotICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKLQotICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmV5b25kQXJyYXlCb3VuZHMgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQo
KSkpOwotICAgICAgICAgICAgaWYgKCFhcnJheU1vZGUuaXNPdXRPZkJvdW5kcygpKQotICAgICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51
bGxwdHIsIGJleW9uZEFycmF5Qm91bmRzKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBzbG93Q2FzZXMuYXBwZW5kKGJleW9uZEFycmF5Qm91bmRzKTsKLQotICAgICAgICAgICAg
Ly8gQ2hlY2sgaWYgd2UncmUgd3JpdGluZyB0byBhIGhvbGU7IGlmIHNvIGluY3JlbWVudCBtX251
bVZhbHVlc0luVmVjdG9yLgotICAgICAgICAgICAgaWYgKGFycmF5TW9kZS5pc0luQm91bmRzKCkp
IHsKLSAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgICAgICAg
ICBTdG9yZVRvSG9sZSwgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICAg
ICAgbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90SG9sZVZhbHVl
ID0gbV9qaXQuYnJhbmNoVGVzdDY0KE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOwotICAgICAgICAgICAg
ICAgIGlmIChhcnJheU1vZGUuaXNTbG93UHV0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8g
VGhpcyBpcyBzb3J0IG9mIHN0cmFuZ2UuIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSB0aGlzIGNv
ZGUgcGF0aCwgd2Ugd291bGQgaW52ZXJ0Ci0gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhYm92
ZSBicmFuY2guIEJ1dCBpdCdzIHNpbXBseSBub3Qgd29ydGggaXQgc2luY2UgdGhpcyBvbmx5IGhh
cHBlbnMgaWYgd2UncmUKLSAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBoYXZpbmcgYSBi
YWQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5qdW1w
KCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0
LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFnZVJl
ZywgQXJyYXlTdG9yYWdlOjpudW1WYWx1ZXNJblZlY3Rvck9mZnNldCgpKSk7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIHdyaXRpbmcgdG8gYSBob2xl
IHdlIG1pZ2h0IGJlIGdyb3dpbmcgdGhlIGFycmF5OyAKLSAgICAgICAgICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgbGVuZ3RoRG9lc05vdE5lZWRVcGRhdGUgPSBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxlbmd0aE9mZnNldCgpKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgcHJvcGVydHlSZWcsIHRl
bXBvcmFyeVJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIG1faml0LnN0b3JlMzIodGVtcG9yYXJ5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0b3JhZ2U6Omxl
bmd0aE9mZnNldCgpKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGxl
bmd0aERvZXNOb3ROZWVkVXBkYXRlLmxpbmsoJm1faml0KTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgbm90SG9sZVZhbHVlLmxpbmsoJm1faml0KTsKLSAgICAgICAgICAgIH0K
LSAgICAKLSAgICAgICAgICAgIC8vIFN0b3JlIHRoZSB2YWx1ZSB0byB0aGUgYXJyYXkuCi0gICAg
ICAgICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlUmVnLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KHN0b3JhZ2VSZWcsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgQXJy
YXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSkpOwotCi0gICAgICAgICAgICBiYXNlLnVzZSgpOwot
ICAgICAgICAgICAgcHJvcGVydHkudXNlKCk7Ci0gICAgICAgICAgICB2YWx1ZS51c2UoKTsKLSAg
ICAgICAgICAgIHN0b3JhZ2UudXNlKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgh
c2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRv
cihzbG93UGF0aENhbGwoCi0gICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKLSAg
ICAgICAgICAgICAgICAgICAgbm9kZS0+ZWNtYU1vZGUoKS5pc1N0cmljdCgpCi0gICAgICAgICAg
ICAgICAgICAgICAgICA/IChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9u
UHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICA6IChub2Rl
LT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0ID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNO
b25TdHJpY3QpLAotICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSksIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIEFycmF5OjpJbnQ4QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDE2QXJy
YXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyQXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6
OlVpbnQ4QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OlVpbnQ4Q2xhbXBlZEFycmF5OgotICAg
ICAgICBjYXNlIEFycmF5OjpVaW50MTZBcnJheToKLSAgICAgICAgY2FzZSBBcnJheTo6VWludDMy
QXJyYXk6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKLSAgICAgICAgY2FzZSBB
cnJheTo6RmxvYXQ2NEFycmF5OiB7Ci0gICAgICAgICAgICBUeXBlZEFycmF5VHlwZSB0eXBlID0g
YXJyYXlNb2RlLnR5cGVkQXJyYXlUeXBlKCk7Ci0gICAgICAgICAgICBpZiAoaXNJbnQodHlwZSkp
Ci0gICAgICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShiYXNlLmdw
cigpLCBwcm9wZXJ0eS5ncHIoKSwgbm9kZSwgdHlwZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgY29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KGJhc2UuZ3ByKCks
IHByb3BlcnR5LmdwcigpLCBub2RlLCB0eXBlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0KLSAgICAgICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJheToKLSAgICAgICAgY2FzZSBB
cnJheTo6U3RyaW5nOgotICAgICAgICBjYXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6Ci0gICAg
ICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKLSAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzoK
LSAgICAgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgotICAgICAgICBjYXNlIEFycmF5
OjpTZWxlY3RVc2luZ0FyZ3VtZW50czoKLSAgICAgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQ
cmVkaWN0aW9uczoKLSAgICAgICAgY2FzZSBBcnJheTo6VW5kZWNpZGVkOgotICAgICAgICBjYXNl
IEFycmF5OjpVbnByb2ZpbGVkOgotICAgICAgICBjYXNlIEFycmF5OjpCaWdJbnQ2NEFycmF5Ogot
ICAgICAgICBjYXNlIEFycmF5OjpCaWdVaW50NjRBcnJheToKLSAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KKyAgICAgICAgY29tcGlsZVB1dEJ5VmFs
KG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMjQ0ZjIyMjc5MmM3MGY4MWFkMDc3
MTA3YTE2NjMzMmRjNzMxZWYwZi4uNjVkZDhlZGVmNzQ3OTk2ZDVmNmQ4ZjE5MjQ2ZTZhZDkzMzZk
NDczOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBA
IC05NjksNiArOTY5LDE1IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorICAgIEp1bXAgYnJh
bmNoSWZFbXB0eShCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkK
KyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBhZGRyZXNzKTsKKyNlbHNlCisgICAg
ICAgIHJldHVybiBicmFuY2gzMihFcXVhbCwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCks
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7CisjZW5kaWYKKyAgICB9CisK
ICAgICBKdW1wIGJyYW5jaElmRW1wdHkoR1BSUmVnIGdwcikKICAgICB7CiAjaWYgVVNFKEpTVkFM
VUU2NCkKQEAgLTk4Nyw2ICs5OTYsMTUgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAg
SnVtcCBicmFuY2hJZk5vdEVtcHR5KEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIGFkZHJlc3Mp
OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE5vdEVxdWFsLCBhZGRyZXNzLndpdGhP
ZmZzZXQoVGFnT2Zmc2V0KSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsK
KyNlbmRpZgorICAgIH0KKwogICAgIEp1bXAgYnJhbmNoSWZOb3RFbXB0eShHUFJSZWcgZ3ByKQog
ICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>