<?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>211772</bug_id>
          
          <creation_ts>2020-05-11 23:23:04 -0700</creation_ts>
          <short_desc>Fix existing usage of final/override/virtual in JSC and WTF</short_desc>
          <delta_ts>2020-05-12 12:14:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211743</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</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>1651638</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 23:23:04 -0700</bug_when>
    <thetext>Fix existing usage of final/override/virtual in JSC and WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651640</commentid>
    <comment_count>1</comment_count>
      <attachid>399103</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 23:24:48 -0700</bug_when>
    <thetext>Created attachment 399103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651641</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-05-11 23:25:36 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651642</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 23:26:35 -0700</bug_when>
    <thetext>This extends the unautomable part of bug 211743 to the areas of JSC and WTF that clang-tidy didn&apos;t have a qualm with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651643</commentid>
    <comment_count>4</comment_count>
      <attachid>399104</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 23:30:20 -0700</bug_when>
    <thetext>Created attachment 399104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651644</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 23:35:27 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #3)
&gt; This extends the unautomable part of bug 211743 to the areas of JSC and WTF
&gt; that clang-tidy didn&apos;t have a qualm with.

(Er rather, this patch does include modernize-use-override autofixes for WTF too, because the previous patch just touched JSC.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651645</commentid>
    <comment_count>6</comment_count>
      <attachid>399105</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 23:39:21 -0700</bug_when>
    <thetext>Created attachment 399105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651648</commentid>
    <comment_count>7</comment_count>
      <attachid>399106</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-12 00:10:55 -0700</bug_when>
    <thetext>Created attachment 399106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651766</commentid>
    <comment_count>8</comment_count>
      <attachid>399106</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 09:30:02 -0700</bug_when>
    <thetext>Comment on attachment 399106
Patch

Looks fine, rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651812</commentid>
    <comment_count>9</comment_count>
      <attachid>399106</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-12 11:03:05 -0700</bug_when>
    <thetext>Comment on attachment 399106
Patch

Dammit, the previous patch got rolled out; guess I&apos;ll cq- for a moment to keep things in order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651842</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 12:13:23 -0700</bug_when>
    <thetext>Committed r261569: &lt;https://trac.webkit.org/changeset/261569&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399106.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651843</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-12 12:14:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/63148140&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399103</attachid>
            <date>2020-05-11 23:24:48 -0700</date>
            <delta_ts>2020-05-11 23:30:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211772-20200511232447.patch</filename>
            <type>text/plain</type>
            <size>195717</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YWNmNzU3NGYyMDNhMTIzNjc3NjA4MDJiNzdmY2Y2Mzk1MTVhN2MxLi45NjYyNjU2NTRhYjM5MWI5
OGRlYzJiODFiODgxMzQ0ZDkyMDNkNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDIgQEAKKzIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgorCisgICAgICAgIEZpeCBleGlzdGluZyB1c2FnZSBvZiBmaW5hbC9vdmVycmlkZS92
aXJ0dWFsIGluIEpTQyBhbmQgV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTE3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEFQSS9KU0FQSVdyYXBwZXJPYmplY3QubW06CisgICAgICAgICogQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFNvdXJjZVByb3ZpZGVy
Lmg6CisgICAgICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAqIEFQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogQVBJL2dsaWIv
SlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHA6CisgICAgICAgICogQVBJL2dsaWIvSlNDV2Vha1Zh
bHVlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHA6
CisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaDoKKyAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29kZS9WYXJpYWJsZVdyaXRl
RmlyZURldGFpbC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1dhdGNocG9pbnQuaDoKKyAgICAgICAg
KiBkZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50Lmg6CisgICAg
ICAgICogZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgICogZGZnL0RGR1NuaXBwZXRQ
YXJhbXMuaDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAqIGZ0bC9G
VExTbmlwcGV0UGFyYW1zLmg6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHA6Cisg
ICAgICAgICogaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgor
ICAgICAgICAqIGhlYXAvSXNvQ2VsbFNldC5jcHA6CisgICAgICAgICogaGVhcC9Jc29DZWxsU2V0
SW5saW5lcy5oOgorICAgICAgICAqIGhlYXAvSXNvSGVhcENlbGxUeXBlLmg6CisgICAgICAgICog
aGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmg6CisgICAgICAgICogaGVhcC9QYXJhbGxlbFNv
dXJjZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmg6Cisg
ICAgICAgICogaGVhcC9TdWJzcGFjZS5jcHA6CisgICAgICAgICogaGVhcC9TdWJzcGFjZUlubGlu
ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JUYXJnZXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dERlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3Rvci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3Bw
X2dlbmVyYXRvcl90ZW1wbGF0ZXMucHk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgt
bWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1k
ZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24t
cmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5n
LWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJl
c3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5q
c29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4
cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpz
b24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9u
cy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBqaXQvSklUV29ya2xp
c3QuY3BwOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAgKiBy
dW50aW1lL0RvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAqIHJ1bnRpbWUv
RmlsZUJhc2VkRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFy
cmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNaWNyb3Rhc2suY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50Lmg6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50Lmg6CisgICAg
ICAgICogcnVudGltZS9Qcm9taXNlVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1JhbmRvbWl6
aW5nRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENhY2hlLmg6CisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
UmFyZURhdGEuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICog
cnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uaDoKKyAg
ICAgICAgKiB3YXNtL1dhc21DYWxsZWUuaDoKKyAgICAgICAgKiB3YXNtL1dhc21MTEludFBsYW4u
aDoKKyAgICAgICAgKiB3YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PTUdQbGFuLmg6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAg
ICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisKIDIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5XSBSdW4gbW9kZXJu
aXplLXVzZS1vdmVycmlkZSBvdmVyIEpTQywgdGhlbiBlbnN1cmUgYXMgbXVjaCBhcyBwb3NzaWJs
ZSBpcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBjNDhhZDJkMDg4MjgwNTFlZGMyZDBkZjM4NTRmMGEwMDQzMGY1MDY3
Li4yMzBiODVhMmViNzdkMWFmODI4YjBjMjkxZjRmYTJkYjA1MjFlMzQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDIwLTA1LTExICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KKworICAgICAgICBGaXggZXhpc3RpbmcgdXNhZ2Ugb2YgZmluYWwvb3ZlcnJpZGUvdmlydHVh
bCBpbiBKU0MgYW5kIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjExNzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0V4cGVjdGVkLmg6
CisgICAgICAgICogd3RmL0ZpbGVQcmludFN0cmVhbS5oOgorICAgICAgICAqIHd0Zi9KU09OVmFs
dWVzLmg6CisgICAgICAgICogd3RmL0xvY2tlZFByaW50U3RyZWFtLmg6CisgICAgICAgICogd3Rm
L09TTG9nUHJpbnRTdHJlYW0uaDoKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cDoKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9TaGFyZWRUYXNrLmg6
CisgICAgICAgICogd3RmL1N0cmluZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1dvcmtR
dWV1ZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmNwcDoKKwogMjAyMC0wNS0xMSAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW2JtYWxsb2Nd
W1dURl0gQWRkIGNvbXB1dGluZyBtZW1vcnkgc2l6ZSBpbXBsZW1lbnRhdGlvbiBmb3IgRnJlZUJT
RApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpp
bmRleCA5MWJjY2E1NGViOGE0NDcyYTI3ZDhjYWJjNjIzMjhmNWY3ODc2MTQyLi5lMjlmYWY5Zjhj
ZWRjYTc2ZWRhY2UzMmFmZDAxNGNkZTBhZjUyNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogCi1jbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJP
YmplY3RIYW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
Kikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29u
c3QgY2hhcioqKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqKSBmaW5hbDsKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOwogfTsKIAogc3RhdGljIEpTQVBJV3JhcHBlck9i
amVjdEhhbmRsZU93bmVyKiBqc0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQppbmRleCA2M2Q2NDkyYzJkZTQ5
YmNjNjcwNGQ3MDY3NWFiYmU4NzdmZDRkZWY3Li5jMTg3MzdiZjg3NmI2ZGQ1MjBhMzM3Mjk0Yjlj
MjIzOTI3NTk5OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFu
YWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFs
dWUubW0KQEAgLTM5LDEwICszOSwxMCBAQAogI2ltcG9ydCAiSlNDSW5saW5lcy5oIgogI2ltcG9y
dCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLWNsYXNzIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNNYW5hZ2VkVmFsdWVI
YW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6
Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU01h
bmFnZWRWYWx1ZUhhbmRsZU93bmVyJiBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0U291cmNlUHJvdmlkZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4
IDA5ZTQwMThkZDhkMjM0OTNiZmRkMzlmYTA0M2VkODM4NWRjODQyMGYuLjY3N2I3YTA5Y2VjNzlm
Y2E5NDQyNzdmNjQ4MmE3M2Y4MjliMmZmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBj
bGFzcyBKU1NjcmlwdDsKIAotY2xhc3MgSlNTY3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBK
U0M6OlNvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIEpTU2NyaXB0U291cmNlUHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gQXJncz4KICAgICBzdGF0aWMgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IGNy
ZWF0ZShKU1NjcmlwdCAqc2NyaXB0LCBBcmdzJiYuLi4gYXJncykKQEAgLTM3LDkgKzM3LDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU1NjcmlwdFNvdXJjZVByb3Zp
ZGVyKHNjcmlwdCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAgfQogCi0gICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0cmluZ1ZpZXcgc291cmNlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEpTQzo6Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5
dGVjb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZpbmFs
OworICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPEpTQzo6
Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCmluZGV4IDExNWU1MWQ0OGYwMDI5OWVh
NjNkYzc1NDAwNjc5ODJjM2QyYzAwNGIuLjUwNTg2MzZjNjQ4YTNlOThjN2FmZjNkZjhiOTg3MWU1
ZmVkODkyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJh
Y2tGdW5jdGlvbi5tbQpAQCAtNTUsOCArNTUsOCBAQCBDYWxsYmFja0FyZ3VtZW50Ojp+Q2FsbGJh
Y2tBcmd1bWVudCgpCiB7CiB9CiAKLWNsYXNzIENhbGxiYWNrQXJndW1lbnRCb29sZWFuIDogcHVi
bGljIENhbGxiYWNrQXJndW1lbnQgewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2Nh
dGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFs
dWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqKSBvdmVycmlkZQorY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudEJvb2xlYW4gZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBz
ZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpT
Q29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIGZpbmFs
CiAgICAgewogICAgICAgICBib29sIHZhbHVlID0gSlNWYWx1ZVRvQm9vbGVhbihbY29udGV4dCBK
U0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVudCk7CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFy
Z3VtZW50OiZ2YWx1ZSBhdEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKQEAgLTY0LDggKzY0LDggQEAg
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4
dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBvdmVycmlkZQor
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVnZXIgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1
bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIg
YXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2Vw
dGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIFQgdmFsdWUgPSAoVClKU0M6OnRvSW50MzIo
SlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGFyZ3VtZW50LCBl
eGNlcHRpb24pKTsKQEAgLTc2LDggKzc2LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudERvdWJsZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50
IHsKLSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1
bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50RG91Ymxl
IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52b2Nh
dGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNv
bnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmluYWwK
ICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAgICAg
ICBUIHZhbHVlID0gKFQpSlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtODcsMjMgKzg3LDIzIEBAIGNsYXNzIENhbGxi
YWNrQXJndW1lbnREb3VibGUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsK
IAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEpTVmFsdWUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVu
dCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJn
dW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNW
YWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50SlNWYWx1ZSBmaW5hbCA6
IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmlu
dm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBK
U1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIEpT
VmFsdWUgKnZhbHVlID0gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjphcmd1bWVudCBpbkNv
bnRleHQ6Y29udGV4dF07CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZ2YWx1ZSBh
dEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja0FyZ3Vt
ZW50SWQgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBD
YWxsYmFja0FyZ3VtZW50SWQgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAg
dm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1i
ZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiop
IGZpbmFsCiAgICAgewogICAgICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9PYmplY3QoY29udGV4dCwg
YXJndW1lbnQpOwogICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomdmFsdWUgYXRJbmRl
eDphcmd1bWVudE51bWJlcl07CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudE9m
Q2xhc3MgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CitjbGFzcyBDYWxsYmFja0FyZ3VtZW50
T2ZDbGFzcyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKIHB1YmxpYzoKICAgICBD
YWxsYmFja0FyZ3VtZW50T2ZDbGFzcyhDbGFzcyBjbHMpCiAgICAgICAgIDogbV9jbGFzcyhjbHMp
CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lk
IHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pIG92ZXJyaWRlCisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBO
U0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBh
cmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNT
RVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiBjb250ZXh0UmVmID0gW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXTsKQEAgLTEzNCw4ICsx
MzQsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDbGFzcz4gbV9jbGFzczsKIH07CiAKLWNs
YXNzIENhbGxiYWNrQXJndW1lbnROU051bWJlciA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNOdW1iZXIg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb051bWJlcihbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBh
cmd1bWVudCwgZXhjZXB0aW9uKTsKQEAgLTE0NSw4ICsxNDUsOCBAQCBjbGFzcyBDYWxsYmFja0Fy
Z3VtZW50TlNOdW1iZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAot
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudE5TU3RyaW5nIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU1N0cmlu
ZyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9j
YXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpj
b250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAg
ICAgaWQgdmFsdWUgPSB2YWx1ZVRvU3RyaW5nKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0s
IGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTU2LDggKzE1Niw4IEBAIGNsYXNzIENhbGxiYWNr
QXJndW1lbnROU1N0cmluZyA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9Owog
Ci1jbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEYXRlIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU0RhdGUg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb0RhdGUoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJn
dW1lbnQsIGV4Y2VwdGlvbik7CkBAIC0xNjcsOCArMTY3LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudE5TRGF0ZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9OwogCi1jbGFz
cyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKLSAg
ICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51
bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSBmaW5h
bCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0
LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFsCiAgICAg
ewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAgICAgaWQg
dmFsdWUgPSB2YWx1ZVRvQXJyYXkoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJndW1l
bnQsIGV4Y2VwdGlvbik7CkBAIC0xNzgsOCArMTc4LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVu
dE5TQXJyYXkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAotY2xhc3Mg
Q2FsbGJhY2tBcmd1bWVudE5TRGljdGlvbmFyeSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEaWN0aW9u
YXJ5IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52
b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmlu
YWwKICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAg
ICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9EaWN0aW9uYXJ5KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGNsYXNzIENh
bGxiYWNrQXJndW1lbnROU0RpY3Rpb25hcnkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAg
ICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdCA6IHB1YmxpYyBDYWxsYmFj
a0FyZ3VtZW50IHsKK2NsYXNzIENhbGxiYWNrQXJndW1lbnRTdHJ1Y3QgZmluYWwgOiBwdWJsaWMg
Q2FsbGJhY2tBcmd1bWVudCB7CiBwdWJsaWM6CiAgICAgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdChO
U0ludm9jYXRpb24gKmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlw
ZSkKICAgICAgICAgOiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9u
KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVt
YmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYq
KSBvdmVycmlkZQorICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRl
Z2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1l
bnQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgSlNWYWx1ZSAqdmFsdWUgPSBb
SlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmFyZ3VtZW50IGluQ29udGV4dDpjb250ZXh0XTsK
ICAgICAgICAgW21fY29udmVyc2lvbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDp2YWx1ZV07
CkBAIC0yMTAsMTQgKzIxMCwxNCBAQCBwcml2YXRlOgogICAgIFN0cnVjdEJ1ZmZlciBtX2J1ZmZl
cjsKIH07CiAKLWNsYXNzIEFyZ3VtZW50VHlwZURlbGVnYXRlIHsKK2NsYXNzIEFyZ3VtZW50VHlw
ZURlbGVnYXRlIGZpbmFsIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxD
YWxsYmFja0FyZ3VtZW50PiBSZXN1bHRUeXBlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
ICAgICBzdGF0aWMgUmVzdWx0VHlwZSB0eXBlSW50ZWdlcigpCiAgICAgewotICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxDYWxsYmFja0FyZ3VtZW50SW50ZWdlcjxUPj4oKTsKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWU8Q2FsbGJhY2tBcmd1bWVudEludGVnZXIgZmluYWw8VD4+KCk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTI4OSwxNSArMjg5LDE1IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqLCBKU0NvbnRleHQg
KiwgSlNWYWx1ZVJlZiopID0gMDsKIH07CiAKLWNsYXNzIENhbGxiYWNrUmVzdWx0Vm9pZCA6IHB1
YmxpYyBDYWxsYmFja1Jlc3VsdCB7Ci0gICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICos
IEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFj
a1Jlc3VsdFZvaWQgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgeworICAgIEpTVmFsdWVS
ZWYgZ2V0KE5TSW52b2NhdGlvbiAqLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYqKSBm
aW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKFtjb250ZXh0
IEpTR2xvYmFsQ29udGV4dFJlZl0pOwogICAgIH0KIH07CiAKLWNsYXNzIENhbGxiYWNrUmVzdWx0
SWQgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgewotICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2Nh
dGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJp
ZGUKK2NsYXNzIENhbGxiYWNrUmVzdWx0SWQgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQg
eworICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0
ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIGlkIHZhbHVlOwog
ICAgICAgICBbaW52b2NhdGlvbiBnZXRSZXR1cm5WYWx1ZTomdmFsdWVdOwpAQCAtMzA2LDggKzMw
Niw4IEBAIGNsYXNzIENhbGxiYWNrUmVzdWx0SWQgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgewog
fTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNsYXNzIENhbGxiYWNrUmVzdWx0TnVtZXJpYyA6
IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7Ci0gICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYqKSBvdmVycmlkZQor
Y2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIGZpbmFsIDogcHVibGljIENhbGxiYWNrUmVzdWx0
IHsKKyAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIEpTQ29udGV4
dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZpbmFsCiAgICAgewogICAgICAgICBUIHZhbHVlOwog
ICAgICAgICBbaW52b2NhdGlvbiBnZXRSZXR1cm5WYWx1ZTomdmFsdWVdOwpAQCAtMzE1LDggKzMx
NSw4IEBAIGNsYXNzIENhbGxiYWNrUmVzdWx0TnVtZXJpYyA6IHB1YmxpYyBDYWxsYmFja1Jlc3Vs
dCB7CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRCb29sZWFuIDogcHVibGljIENh
bGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKmludm9jYXRp
b24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBDYWxs
YmFja1Jlc3VsdEJvb2xlYW4gZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgeworICAgIEpT
VmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0ICpjb250ZXh0
LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIGJvb2wgdmFsdWU7CiAgICAgICAg
IFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMjQsNyArMzI0LDcgQEAg
Y2xhc3MgQ2FsbGJhY2tSZXN1bHRCb29sZWFuIDogcHVibGljIENhbGxiYWNrUmVzdWx0IHsKICAg
ICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja1Jlc3VsdFN0cnVjdCA6IHB1YmxpYyBDYWxsYmFja1Jl
c3VsdCB7CitjbGFzcyBDYWxsYmFja1Jlc3VsdFN0cnVjdCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFj
a1Jlc3VsdCB7CiBwdWJsaWM6CiAgICAgQ2FsbGJhY2tSZXN1bHRTdHJ1Y3QoTlNJbnZvY2F0aW9u
ICpjb252ZXJzaW9uSW52b2NhdGlvbiwgY29uc3QgY2hhciogZW5jb2RlZFR5cGUpCiAgICAgICAg
IDogbV9jb252ZXJzaW9uSW52b2NhdGlvbihjb252ZXJzaW9uSW52b2NhdGlvbikKQEAgLTMzMyw3
ICszMzMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBKU1ZhbHVlUmVm
IGdldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1
ZVJlZiopIG92ZXJyaWRlCisgICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0
aW9uLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAg
ICAgW2ludm9jYXRpb24gZ2V0UmV0dXJuVmFsdWU6bV9idWZmZXJdOwogCkBAIC0zNTAsNyArMzUw
LDcgQEAgcHJpdmF0ZToKICAgICBTdHJ1Y3RCdWZmZXIgbV9idWZmZXI7CiB9OwogCi1jbGFzcyBS
ZXN1bHRUeXBlRGVsZWdhdGUgeworY2xhc3MgUmVzdWx0VHlwZURlbGVnYXRlIGZpbmFsIHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYmFja1Jlc3VsdD4gUmVzdWx0
VHlwZTsKIApAQCAtNDA5LDcgKzQwOSw3IEBAIGVudW0gQ2FsbGJhY2tUeXBlIHsKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLWNsYXNzIE9iakNDYWxsYmFja0Z1bmN0aW9uSW1wbCB7CitjbGFzcyBPYmpD
Q2FsbGJhY2tGdW5jdGlvbkltcGwgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIE9iakNDYWxsYmFja0Z1bmN0aW9uSW1wbChOU0ludm9jYXRpb24gKmlu
dm9jYXRpb24sIENhbGxiYWNrVHlwZSB0eXBlLCBDbGFzcyBpbnN0YW5jZUNsYXNzLCBzdGQ6OnVu
aXF1ZV9wdHI8Q2FsbGJhY2tBcmd1bWVudD4gYXJndW1lbnRzLCBzdGQ6OnVuaXF1ZV9wdHI8Q2Fs
bGJhY2tSZXN1bHQ+IHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0FQSVdyYXBwZXJHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAKaW5kZXggZTJiNjU5Mjky
MjA3NTBjYmFkYzhlMzQyYWQxNzgxYjE5ZjIxNmQzOS4uZDhhZmU4MDhmMTEwMjYzNGJjYzA5MDVk
Zjc0M2UyY2U3OGZmMWQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9n
bGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAKQEAgLTMxLDkgKzMxLDkg
QEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAotY2xhc3MgSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0SGFuZGxlT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0SGFu
ZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgot
ICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCopIG92ZXJy
aWRlOworICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCop
IGZpbmFsOwogfTsKIAogc3RhdGljIEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdEhhbmRsZU93bmVy
KiBqc0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5kbGVPd25lcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAK
aW5kZXggZWEzNDEyMzY3M2ExMzNjMDE5MzlhZjY1Njc5ODcyYTdlNzkxZGE5OC4uMjMzNGExYjU3
ZjI5ZWMyMGY0OWI5MTlkMjE0OWQxYjdlODAwMWYwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcApAQCAt
MzMsMTAgKzMzLDEwIEBACiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKLWNsYXNzIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKK2NsYXNzIEpTQVBJV3JhcHBlck9iamVjdEhh
bmRsZU93bmVyIGZpbmFsIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoK
LSAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqKSBvdmVy
cmlkZTsKLSAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCopIGZpbmFsOworICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYs
IGNvbnN0IGNoYXIqKikgZmluYWw7CiB9OwogCiBzdGF0aWMgSlNBUElXcmFwcGVyT2JqZWN0SGFu
ZGxlT3duZXIqIGpzQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NXZWFrVmFsdWUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1dlYWtWYWx1ZS5jcHAKaW5kZXggZTVjMDRlYzc4NWUx
Mzc1NDEyMzJkMmVkZjViYmQ5NTZhOGU5YTBiYi4uZGY5Nzk5YmU4OGJkYzNlYWVkMDlhYjFlMGI0
NDQxNDhmMDA4ZGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGli
L0pTQ1dlYWtWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pT
Q1dlYWtWYWx1ZS5jcHAKQEAgLTcwLDkgKzcwLDkgQEAgc3RhdGljIHZvaWQganNjV2Vha1ZhbHVl
Q2xlYXIoSlNDV2Vha1ZhbHVlKiB3ZWFrVmFsdWUpCiAgICAgcHJpdi0+d2Vha1ZhbHVlUmVmLmNs
ZWFyKCk7CiB9CiAKLWNsYXNzIEpTQ1dlYWtWYWx1ZUhhbmRsZU93bmVyIDogcHVibGljIEpTQzo6
V2Vha0hhbmRsZU93bmVyIHsKK2NsYXNzIEpTQ1dlYWtWYWx1ZUhhbmRsZU93bmVyIGZpbmFsIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2b2lkIGZpbmFsaXpl
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJyaWRlCisgICAg
dm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBm
aW5hbAogICAgIHsKICAgICAgICAgYXV0byogd2Vha1ZhbHVlID0gSlNDX1dFQUtfVkFMVUUoY29u
dGV4dCk7CiAgICAgICAgIGpzY1dlYWtWYWx1ZUNsZWFyKHdlYWtWYWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2VTbmlwcGV0UGFy
YW1zLmNwcAppbmRleCA2OWI1ZWUxMDZiMmU4MTc1NTc3Nzk3MWJlMjcxNGM0YTFhOThjYmJjLi44
ZmI5MTgzYWQxZjIyMDBiNTRkMWY1NjE1ZTc1NzdmYTg2OTFlMmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFt
cy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBKdW1wVHlwZSwgdHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBSZXN1bHRUeXBl
LCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1jbGFzcyBTbG93UGF0aENhbGxHZW5lcmF0b3JXaXRo
QXJndW1lbnRzIDogcHVibGljIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zOjpTbG93UGF0aENhbGxH
ZW5lcmF0b3IgeworY2xhc3MgU2xvd1BhdGhDYWxsR2VuZXJhdG9yV2l0aEFyZ3VtZW50cyBmaW5h
bCA6IHB1YmxpYyBBY2Nlc3NDYXNlU25pcHBldFBhcmFtczo6U2xvd1BhdGhDYWxsR2VuZXJhdG9y
IHsKIHB1YmxpYzoKICAgICBTbG93UGF0aENhbGxHZW5lcmF0b3JXaXRoQXJndW1lbnRzKEp1bXBU
eXBlIGZyb20sIENDYWxsSGVscGVyczo6TGFiZWwgdG8sIEZ1bmN0aW9uVHlwZSBmdW5jdGlvbiwg
UmVzdWx0VHlwZSByZXN1bHQsIHN0ZDo6dHVwbGU8QXJndW1lbnRzLi4uPiBhcmd1bWVudHMpCiAg
ICAgICAgIDogbV9mcm9tKGZyb20pCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGV4Y2VwdGlvbnM7CiAgICAgfQogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBn
ZW5lcmF0ZShBY2Nlc3NHZW5lcmF0aW9uU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdpc3RlclNldCYg
dXNlZFJlZ2lzdGVyc0J5U25pcHBldCwgQ0NhbGxIZWxwZXJzJiBqaXQpIG92ZXJyaWRlCisgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBnZW5lcmF0ZShBY2Nlc3NHZW5lcmF0aW9uU3RhdGUmIHN0
YXRlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVyc0J5U25pcHBldCwgQ0NhbGxIZWxw
ZXJzJiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBtX2Zyb20ubGluaygmaml0KTsKICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBleGNlcHRpb25zID0gZ2VuZXJhdGVJbXBsKHN0YXRl
LCB1c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBqaXQsIHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxz
dGQ6OnR1cGxlX3NpemU8c3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+Pjo6dmFsdWU+KCkpOwpAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBleGNlcHRpb25zOwogICAgIH0K
IAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICBKdW1wVHlwZSBtX2Zyb207CiAgICAgQ0NhbGxI
ZWxwZXJzOjpMYWJlbCBtX3RvOwogICAgIEZ1bmN0aW9uVHlwZSBtX2Z1bmN0aW9uOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2VTbmlwcGV0UGFy
YW1zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQ
YXJhbXMuaAppbmRleCAyYzJiYTVmNTUwZWVhOTA0Njg0NGVlMjg5MjYwOTlmYzc3ODhkMWFjLi4y
M2RkNzdiMDI4N2FmNmEyZDIyY2UzOTgwYTZjM2RhZmIzMGVjOWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMu
aApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogc3RydWN0IEFjY2Vzc0dlbmVy
YXRpb25TdGF0ZTsKIAotY2xhc3MgQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMgOiBwdWJsaWMgU25p
cHBldFBhcmFtcyB7CitjbGFzcyBBY2Nlc3NDYXNlU25pcHBldFBhcmFtcyBmaW5hbCA6IHB1Ymxp
YyBTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBBY2Nlc3NDYXNlU25pcHBldFBhcmFtcyhW
TSYgdm0sIFZlY3RvcjxWYWx1ZT4mJiByZWdzLCBWZWN0b3I8R1BSUmVnPiYmIGdwU2NyYXRjaCwg
VmVjdG9yPEZQUlJlZz4mJiBmcFNjcmF0Y2gpCiAgICAgICAgIDogU25pcHBldFBhcmFtcyh2bSwg
V1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpCkBA
IC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGVtaXRT
bG93UGF0aENhbGxzKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBlcnMmKTsKIAogcHJpdmF0ZToKLSNkZWZp
bmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMoT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwg
Li4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0Nh
bGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FS
R1NfXz4gYXJncykgb3ZlcnJpZGU7CisjZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05T
KE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBs
KENDYWxsSGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJl
c3VsdFR5cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIGZpbmFsOwogICAgIFNOSVBQ
RVRfU0xPV19QQVRIX0NBTExTKEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKQogI3VuZGVmIEpT
Q19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTbG93
UGF0aENhbGxHZW5lcmF0b3I+PiBtX2dlbmVyYXRvcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDgzNDA4MmQ4MjdhZWNmYmU0NzZmMWViMDU3
YjE4NTllZTlhYjQyYmIuLjVhYTdkYjQ0MjBlZmViN2FlMzM0YmIzOTFlMDMxZjBkOTNkNzdlNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0y
NjYsNyArMjY2LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbSYg
b3V0LCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgY29uc3QgSUMKIAogbmFtZXNwYWNlIHsKIAot
Y2xhc3MgUHV0VG9TY29wZUZpcmVEZXRhaWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CitjbGFzcyBQ
dXRUb1Njb3BlRmlyZURldGFpbCBmaW5hbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsKIHB1YmxpYzoK
ICAgICBQdXRUb1Njb3BlRmlyZURldGFpbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnQpCiAgICAgICAgIDogbV9jb2RlQmxvY2soY29kZUJsb2NrKQpAQCAtMjc0
LDcgKzI3NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYgb3V0KSBjb25zdCBvdmVycmlkZQorICAgIHZvaWQgZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgb3V0LnByaW50KCJMaW5raW5nIHB1
dF90b19zY29wZSBpbiAiLCBGdW5jdGlvbkV4ZWN1dGFibGVEdW1wKGpzQ2FzdDxGdW5jdGlvbkV4
ZWN1dGFibGUqPihtX2NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpKSwgIiBmb3IgIiwgbV9p
ZGVudCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKaW5kZXggYWViMzQ1
NjIxZmJiNmIxY2ZlNmM1MjJhN2IxZGMwYWMzYjJhY2NiNC4uMjc1NGIzMWVlMTZiMzg4Y2YxNzE1
OWEzNjY2ZTBiYmU3NTAyY2M3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCkBA
IC02NCw3ICs2NCw3IEBAIGNsYXNzIEFkYXB0aXZlVmFsdWVTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdX
YXRjaHBvaW50IGZpbmFsIDogcHVibGljIEFkYXB0aXZlSW5mZXJyCiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoQWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQpOwog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwg
Y29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRmlyZShWTSYsIGNv
bnN0IEZpcmVEZXRhaWwmKSBmaW5hbDsKIAogcHVibGljOgogICAgIEFkYXB0aXZlVmFsdWVTdHJ1
Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
JiBrZXksIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyYgaG9sZGVyKQpAQCAtNzksNyAr
NzksNyBAQCBwcml2YXRlOgogICAgIFBhY2tlZFB0cjxXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1
YkluZm8+IG1faG9sZGVyOwogfTsKIAotY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJ
bmZvIHsKK2NsYXNzIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyBmaW5hbCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYXJpYWJsZVdyaXRlRmlyZURldGFpbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmgKaW5kZXgg
NDJmZmIxYjU5OWY3YjE5YzMzOWU1YjgwOTU3ODIxOGM4NmRjNzI3MC4uYjhkZGJkY2IzNmU0ZmM4
OTcyYjFlNjVhOTNmZDY1MDcyY2UwMjU3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmgKQEAgLTMyLDcgKzMy
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBKU09iamVjdDsKIGNsYXNzIFByb3BlcnR5TmFt
ZTsKIAotY2xhc3MgVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwgOiBwdWJsaWMgRmlyZURldGFpbCB7
CitjbGFzcyBWYXJpYWJsZVdyaXRlRmlyZURldGFpbCBmaW5hbCA6IHB1YmxpYyBGaXJlRGV0YWls
IHsKIHB1YmxpYzoKICAgICBWYXJpYWJsZVdyaXRlRmlyZURldGFpbChKU09iamVjdCogb2JqZWN0
LCBjb25zdCBQcm9wZXJ0eU5hbWUmIG5hbWUpCiAgICAgICAgIDogbV9vYmplY3Qob2JqZWN0KQpA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKICAg
ICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCB0b3VjaChWTSYsIFdhdGNocG9p
bnRTZXQqLCBKU09iamVjdCosIGNvbnN0IFByb3BlcnR5TmFtZSYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAppbmRleCA1MWJjZTM4MDAzNGUwNWI2MWZl
ZTYyOWVlNjg0MTE3ZTAyMjkzYWI4Li43N2M2ZGZjMmYwOGQ2OGRjZDAyMTczMzI4MDMxZmFiZjQx
ZjUwYTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hw
b2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgK
QEAgLTU3LDIxICs1NywyMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdCA9IDA7CiB9OwogCi1jbGFzcyBTdHJpbmdGaXJlRGV0YWlsIDogcHVibGlj
IEZpcmVEZXRhaWwgeworY2xhc3MgU3RyaW5nRmlyZURldGFpbCBmaW5hbCA6IHB1YmxpYyBGaXJl
RGV0YWlsIHsKIHB1YmxpYzoKICAgICBTdHJpbmdGaXJlRGV0YWlsKGNvbnN0IGNoYXIqIHN0cmlu
ZykKICAgICAgICAgOiBtX3N0cmluZyhzdHJpbmcpCiAgICAgewogICAgIH0KICAgICAKLSAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIGNvbnN0IGNo
YXIqIG1fc3RyaW5nOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+Ci1jbGFzcyBM
YXp5RmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsKK2NsYXNzIExhenlGaXJlRGV0YWls
IGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwgewogcHVibGljOgogICAgIExhenlGaXJlRGV0YWls
KGNvbnN0IFR5cGVzJi4uLiBhcmdzKQogICAgIHsKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgog
ICAgICAgICB9KTsKICAgICB9CiAKLSAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3Qgb3ZlcnJpZGUgeyBtX2xhbWJkYShvdXQpOyB9CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0IGZpbmFsIHsgbV9sYW1iZGEob3V0KTsgfQogCiBwcml2YXRlOgogICAgIFNj
b3BlZExhbWJkYTx2b2lkKFByaW50U3RyZWFtJik+IG1fbGFtYmRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdh
dGNocG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWRhcHRpdmVJbmZlcnJl
ZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmgKaW5kZXggZDE3ZTE5OGY3MzAzZWFlNzBhYTAwYThi
ZTJmMTAzYjAzOTU2NDU2YS4uMjc3NmQ5MWNhYjVhZTcxYjU1YTc1Yjc1OWExZDJmMzBjMGZiZDU0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2ZUluZmVy
cmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oCkBAIC0zNyw5
ICszNyw5IEBAIHB1YmxpYzoKICAgICBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNo
cG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24mLCBDb2RlQmxvY2sqKTsKIAogcHJp
dmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzVmFs
aWQoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgaGFuZGxlRmlyZShWTSYsIGNvbnN0IEZpcmVE
ZXRhaWwmKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZUZpcmUoVk0mLCBjb25zdCBGaXJlRGV0
YWlsJikgZmluYWw7CiAKICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlpZnlTbG93UGF0aEdlbmVyYXRv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJh
dG9yLmgKaW5kZXggNTVhOTg5ZGUxYmYyYTZiOTBkOWY1MmYyZTYwOTc1ZjNiMDdiMTE4NS4uZTk3
OGI2ZjgwODA3MzI4MmVmYWI0YzJhZDk4ZjExNTE4NDRiYjZkNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgK
QEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1j
bGFzcyBBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdl
bmVyYXRvcjxNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Q+IHsKK2NsYXNzIEFycmF5aWZ5U2xvd1Bh
dGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3Jv
QXNzZW1ibGVyOjpKdW1wTGlzdD4gewogcHVibGljOgogICAgIEFycmF5aWZ5U2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgZnJvbSwgU3Bl
Y3VsYXRpdmVKSVQqIGppdCwgTm9kZSogbm9kZSwgR1BSUmVnIGJhc2VHUFIsCkBAIC02OCw4ICs2
OCw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9iYWRJbmRleGluZ1R5cGVKdW1wID0gaml0LT5zcGVj
dWxhdGlvbkNoZWNrKEJhZEluZGV4aW5nVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwo
bV9iYXNlR1BSKSwgbnVsbHB0cik7CiAgICAgfQogICAgIAotcHJvdGVjdGVkOgotICAgIHZvaWQg
Z2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQorcHJpdmF0ZToK
KyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwKICAg
ICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIApAQCAtMTMyLDggKzEzMiw3IEBA
IHByb3RlY3RlZDoKICAgICAgICAgCiAgICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KLSAgICAK
LXByaXZhdGU6CisKICAgICBOb2RlVHlwZSBtX29wOwogICAgIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUg
bV9zdHJ1Y3R1cmU7CiAgICAgQXJyYXlNb2RlIG1fYXJyYXlNb2RlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVy
YXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JT
bG93UGF0aEdlbmVyYXRvci5oCmluZGV4IGZlZWZlZmM2ZDlhNGUzMzRiNTBhMDcxNTJjZGYzYzRh
MzAyYjk3OTguLjIzZmQ0NTQ3YzU5YjkyYTkzNDM3NDJhNTg0ZjdkZGNkZjI5MWY5ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xv
d1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxB
cnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1jbGFzcyBDYWxsQXJyYXlBbGxvY2F0b3JT
bG93UGF0aEdlbmVyYXRvciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0PiB7CitjbGFzcyBDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdl
bmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3Nl
bWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1Bh
dGhHZW5lcmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9tLCBTcGVj
dWxhdGl2ZUpJVCogaml0LCBQX0pJVE9wZXJhdGlvbl9WbVN0WkIgZnVuY3Rpb24sCkBAIC00OSw4
ICs0OSw4IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5zaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0lt
cGwoZmFsc2UsIG1fcGxhbnMsIHJlc3VsdEdQUik7CiAgICAgfQogCi1wcm90ZWN0ZWQ6Ci0gICAg
dm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitwcml2
YXRlOgorICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBmaW5h
bAogICAgIHsKICAgICAgICAgbGlua0Zyb20oaml0KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fcGxhbnMuc2l6ZSgpOyArK2kpCkBAIC02Miw4ICs2Miw3IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgaml0LT5tX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1f
cmVzdWx0R1BSLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCBtX3N0b3JhZ2VHUFIpOwog
ICAgICAgICBqdW1wVG8oaml0KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRP
cGVyYXRpb25fVm1TdFpCIG1fZnVuY3Rpb247CiAgICAgR1BSUmVnIG1fcmVzdWx0R1BSOwogICAg
IEdQUlJlZyBtX3N0b3JhZ2VHUFI7CkBAIC03Miw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDI+IG1fcGxhbnM7CiB9OwogCi1jbGFzcyBDYWxs
QXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTaXplU2xvd1BhdGhHZW5lcmF0b3IgOiBwdWJsaWMg
SnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdD4geworY2xh
c3MgQ2FsbEFycmF5QWxsb2NhdG9yV2l0aFZhcmlhYmxlU2l6ZVNsb3dQYXRoR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTaXpl
U2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9t
LCBTcGVjdWxhdGl2ZUpJVCogaml0LCBQX0pJVE9wZXJhdGlvbl9HU3RaQiBmdW5jdGlvbiwKQEAg
LTg5LDggKzg4LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzSW1wbChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAgICB9CiAKLXByb3RlY3RlZDoK
LSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUK
K3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQp
IGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAgLTExMSw4ICsxMTAsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIGppdC0+bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAg
anVtcFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIFBfSklUT3BlcmF0aW9u
X0dTdFpCIG1fZnVuY3Rpb247CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBtX2NvbnRpZ3VvdXNT
dHJ1Y3R1cmU7CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBtX2FycmF5U3RvcmFnZU9yQ29udGln
dW91c1N0cnVjdHVyZTsKQEAgLTEyMyw3ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxT
aWxlbnRSZWdpc3RlclNhdmVQbGFuLCAyPiBtX3BsYW5zOwogfTsKIAotY2xhc3MgQ2FsbEFycmF5
QWxsb2NhdG9yV2l0aFZhcmlhYmxlU3RydWN0dXJlVmFyaWFibGVTaXplU2xvd1BhdGhHZW5lcmF0
b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdD4geworY2xhc3MgQ2FsbEFycmF5QWxsb2NhdG9yV2l0aFZhcmlhYmxlU3RydWN0dXJlVmFy
aWFibGVTaXplU2xvd1BhdGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRo
R2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdD4gewogcHVibGljOgogICAgIENhbGxB
cnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVN0cnVjdHVyZVZhcmlhYmxlU2l6ZVNsb3dQYXRoR2Vu
ZXJhdG9yKAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZnJvbSwgU3BlY3VsYXRp
dmVKSVQqIGppdCwgUF9KSVRPcGVyYXRpb25fR1N0WkIgZnVuY3Rpb24sCkBAIC0xMzksOCArMTM3
LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChm
YWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICB2b2lk
IGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6
CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAg
ICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAgLTE1MSw4ICsxNDksNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIGppdC0+bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAganVtcFRvKGpp
dCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIFBfSklUT3BlcmF0aW9uX0dTdFpCIG1f
ZnVuY3Rpb247CiAgICAgR1BSUmVnIG1fcmVzdWx0R1BSOwogICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0ciBtX2dsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxDcmVhdGVEaXJlY3RBcmd1bWVudHNT
bG93UGF0aEdlbmVyYXRvci5oCmluZGV4IDBkZGIzMDgwNzFhMDBiZDhlNDY2ZDUwOTZmMTUyY2Zi
NzY1Mjk0OTIuLjMwMjA1MDM4ZDJhM2Q0NjE4NGJjNzY2YTAwN2FkZTc3YjMzOGQ2MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3Vt
ZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMzUsNyAr
MzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiAvLyBUaGlzIGNhbGxz
IG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cyBidXQgdGhlbiByZXN0b3JlcyB0aGUgdmFs
dWUgb2YgbGVuZ3RoR1BSLgotY2xhc3MgQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRo
R2VuZXJhdG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2VtYmxl
cjo6SnVtcExpc3Q+IHsKK2NsYXNzIENhbGxDcmVhdGVEaXJlY3RBcmd1bWVudHNTbG93UGF0aEdl
bmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3Nl
bWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50
c1Nsb3dQYXRoR2VuZXJhdG9yKAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZnJv
bSwgU3BlY3VsYXRpdmVKSVQqIGppdCwgR1BSUmVnIHJlc3VsdEdQUiwgUmVnaXN0ZXJlZFN0cnVj
dHVyZSBzdHJ1Y3R1cmUsCkBAIC00OSw4ICs0OSw4IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5z
aWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoZmFsc2UsIG1fcGxhbnMsIHJlc3VsdEdQUik7CiAg
ICAgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZl
SklUKiBqaXQpIG92ZXJyaWRlCitwcml2YXRlOgorICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChT
cGVjdWxhdGl2ZUpJVCogaml0KSBmaW5hbAogICAgIHsKICAgICAgICAgbGlua0Zyb20oaml0KTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcGxhbnMuc2l6ZSgpOyArK2kpCkBA
IC02NCw4ICs2NCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKG1fcmVzdWx0R1BSLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTGVuZ3RoKCkpLCBt
X2xlbmd0aEdQUik7CiAgICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KLSAgICAKLXByaXZhdGU6
CisKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBtX3N0
cnVjdHVyZTsKICAgICBHUFJSZWcgbV9sZW5ndGhHUFI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRo
R2VuZXJhdG9yLmgKaW5kZXggYmRlNjY3NjBhYzRlZDhjNjllYTk4MzBjMGNlNmVhZjEzYzI0YzQ5
OC4uZmFiY2UwMTgyZGU5MDAyNTNmMGRmM2YwYmYyZTkzMDE4N2MwZmYxNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdl
bmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dl
dEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIFNhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRo
R2VuZXJhdG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2VtYmxl
cjo6SnVtcD4geworY2xhc3MgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1w
PiB7CiBwdWJsaWM6CiAgICAgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IoCiAg
ICAgICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpKdW1wJiBmcm9tLCBTcGVjdWxhdGl2ZUpJVCog
aml0LCBKU1ZhbHVlUmVncyByZXN1bHRSZWdzLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIg
Z2xvYmFsT2JqZWN0LCBHUFJSZWcgYmFzZVJlZywgR1BSUmVnIHByb3BlcnR5UmVnKQpAQCAtNDcs
OCArNDcsOCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJ
bXBsKGZhbHNlLCBtX3BsYW5zLCBleHRyYWN0UmVzdWx0KHJlc3VsdFJlZ3MpKTsKICAgICB9CiAg
ICAgCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklU
KiBqaXQpIG92ZXJyaWRlCitwcml2YXRlOgorICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVj
dWxhdGl2ZUpJVCogaml0KSBmaW5hbAogICAgIHsKICAgICAgICAgbGlua0Zyb20oaml0KTsKICAg
ICAgICAgCkBAIC03Nyw4ICs3Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgCiAgICAgICAgIGp1
bXBUbyhqaXQpOwogICAgIH0KLSAgICAKLXByaXZhdGU6CisKICAgICBKU1ZhbHVlUmVncyBtX3Jl
c3VsdFJlZ3M7CiAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyIG1fZ2xvYmFsT2JqZWN0
OwogICAgIEdQUlJlZyBtX2Jhc2VSZWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggZjFkM2IwYjg3MTRiYzJhMWQwNTljODQ3ZmE1
NWEyMWZjMWMzZTE1NC4uOTgxZTg2Y2Q3ZGRiMDFjYTQ5NTQzYjRlNTM3NjAwMWJlODE2MDEyNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aApAQCAtMTU2LDggKzE1Niw3IEBAIHByb3RlY3RlZDoKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEp1bXBUeXBlLCB0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5
cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWNsYXNzIENhbGxSZXN1bHRBbmRBcmd1bWVudHNTbG93UGF0
aEdlbmVyYXRvcgotICAgIDogcHVibGljIENhbGxTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZSwg
UmVzdWx0VHlwZT4geworY2xhc3MgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIENhbGxTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZSwgUmVzdWx0
VHlwZT4gewogcHVibGljOgogICAgIENhbGxSZXN1bHRBbmRBcmd1bWVudHNTbG93UGF0aEdlbmVy
YXRvcigKICAgICAgICAgSnVtcFR5cGUgZnJvbSwgU3BlY3VsYXRpdmVKSVQqIGppdCwgRnVuY3Rp
b25UeXBlIGZ1bmN0aW9uLApAQCAtMTY4LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
fQogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHRlbXBsYXRlPHNpemVfdC4uLiBBcmd1bWVu
dHNJbmRleD4KICAgICB2b2lkIHVucGFja0FuZEdlbmVyYXRlKFNwZWN1bGF0aXZlSklUKiBqaXQs
IHN0ZDo6aW5kZXhfc2VxdWVuY2U8QXJndW1lbnRzSW5kZXguLi4+KQogICAgIHsKQEAgLTE4MCw3
ICsxNzksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPnRlYXJEb3duKGppdCk7CiAgICAg
fQogCi0gICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJy
aWRlCisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFs
CiAgICAgewogICAgICAgICB1bnBhY2tBbmRHZW5lcmF0ZShqaXQsIHN0ZDo6bWFrZV9pbmRleF9z
ZXF1ZW5jZTxzdGQ6OnR1cGxlX3NpemU8c3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+Pjo6dmFsdWU+
KCkpOwogICAgIH0KQEAgLTIwOSw3ICsyMDgsNyBAQCBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPFNs
b3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aENhbGwoCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEp1
bXBUeXBlLCB0eXBlbmFtZSBEZXN0aW5hdGlvblR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHVu
c2lnbmVkIG51bWJlck9mQXNzaWdubWVudHM+Ci1jbGFzcyBBc3NpZ25pbmdTbG93UGF0aEdlbmVy
YXRvciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8SnVtcFR5cGU+IHsKK2NsYXNz
IEFzc2lnbmluZ1Nsb3dQYXRoR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0
aEdlbmVyYXRvcjxKdW1wVHlwZT4gewogcHVibGljOgogICAgIEFzc2lnbmluZ1Nsb3dQYXRoR2Vu
ZXJhdG9yKAogICAgICAgICBKdW1wVHlwZSBmcm9tLCBTcGVjdWxhdGl2ZUpJVCogaml0LApAQCAt
MjIzLDggKzIyMiw4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotcHJvdGVjdGVkOgot
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQor
cHJpdmF0ZToKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIHRoaXMtPmxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bWJlck9mQXNzaWdubWVudHM7IGktLTspCkBAIC0yMzIsNyArMjMxLDYg
QEAgcHJvdGVjdGVkOgogICAgICAgICB0aGlzLT5qdW1wVG8oaml0KTsKICAgICB9CiAKLXByaXZh
dGU6CiAgICAgRGVzdGluYXRpb25UeXBlIG1fZGVzdGluYXRpb25bbnVtYmVyT2ZBc3NpZ25tZW50
c107CiAgICAgU291cmNlVHlwZSBtX3NvdXJjZVtudW1iZXJPZkFzc2lnbm1lbnRzXTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NuaXBwZXRQYXJhbXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU25pcHBldFBhcmFtcy5oCmluZGV4IDZhZjE0
NjIyOGFiNjlkMmZlYTBlYWQ5ZTdhMmViNzU5ZmJhOTQ0MTQuLmU0MmMyNzBlNDAzMzc2Y2I2NTkw
YjNhYjgwOWU5NjU1ZTBjMDA3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU25pcHBldFBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U25pcHBldFBhcmFtcy5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKICAgICAKIGNsYXNzIFNwZWN1bGF0aXZlSklUOwogCi1jbGFzcyBTbmlwcGV0UGFy
YW1zIDogcHVibGljIEpTQzo6U25pcHBldFBhcmFtcyB7CitjbGFzcyBTbmlwcGV0UGFyYW1zIGZp
bmFsIDogcHVibGljIEpTQzo6U25pcHBldFBhcmFtcyB7CiBwdWJsaWM6CiAgICAgU25pcHBldFBh
cmFtcyhTcGVjdWxhdGl2ZUpJVCogaml0LCBWZWN0b3I8VmFsdWU+JiYgcmVncywgVmVjdG9yPEdQ
UlJlZz4mJiBncFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+JiYgZnBTY3JhdGNoKQogICAgICAgICA6
IEpTQzo6U25pcHBldFBhcmFtcyhqaXQtPnZtKCksIFdURk1vdmUocmVncyksIFdURk1vdmUoZ3BT
Y3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKQpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotI2RlZmluZSBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVy
YXRpb25UeXBlLCBSZXN1bHRUeXBlLCAuLi4pIHZvaWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2FsbEhlbHBlcnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRU
eXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJHU19fPiBhcmdzKSBvdmVycmlkZTsKKyNkZWZpbmUgSlND
X0RFRklORV9DQUxMX09QRVJBVElPTlMoT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgLi4uKSB2
b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0NhbGxIZWxw
ZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FSR1NfXz4g
YXJncykgZmluYWw7CiAgICAgU05JUFBFVF9TTE9XX1BBVEhfQ0FMTFMoSlNDX0RFRklORV9DQUxM
X09QRVJBVElPTlMpCiAjdW5kZWYgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCA2NzIwZTIzZTkzZTk3MzQy
Njg1ZTFmYjFkYTcwYWI4MTUzNGUyMWJmLi5iY2YwZTY5ZDhhMzFiNjM4NThhMGIwNWY4ZWE4NDJj
MTVkYzg2OTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApA
QCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKICNpZiBF
TkFCTEUoREZHX0pJVCkKIAotY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0
b21hdGljVGhyZWFkIHsKK2NsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IGZpbmFsIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkQm9keShjb25zdCBBYnN0cmFj
dExvY2tlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3QsIFRocmVhZERhdGEmIGRhdGEsIEJv
eDxMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwg
aW50IHJlbGF0aXZlUHJpb3JpdHkpCiAgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwg
bG9jaywgV1RGTW92ZShjb25kaXRpb24pLCBUaHJlYWRUeXBlOjpDb21waWxlcikKQEAgLTQ3LDEz
ICs0NywxMyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIG5hbWUo
KSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBmaW5hbAogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fd29ya2xpc3QubV90aHJlYWROYW1lLmRhdGEoKTsKICAgICB9
CiAKLXByb3RlY3RlZDoKLSAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXIm
IGxvY2tlcikgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiBsb2NrZXIpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAobV93b3JrbGlz
dC5tX3F1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpXYWl0
OwpAQCAtNzMsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgY2xhc3MgV29ya1Njb3Bl
OwogICAgIGZyaWVuZCBjbGFzcyBXb3JrU2NvcGU7Ci0gICAgY2xhc3MgV29ya1Njb3BlIHsKKyAg
ICBjbGFzcyBXb3JrU2NvcGUgZmluYWwgewogICAgIHB1YmxpYzoKICAgICAgICAgV29ya1Njb3Bl
KFRocmVhZEJvZHkmIHRocmVhZCkKICAgICAgICAgICAgIDogbV90aHJlYWQodGhyZWFkKQpAQCAt
OTMsNyArOTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFRocmVhZEJvZHkmIG1fdGhyZWFkOwog
ICAgIH07CiAgICAgCi0gICAgV29ya1Jlc3VsdCB3b3JrKCkgb3ZlcnJpZGUKKyAgICBXb3JrUmVz
dWx0IHdvcmsoKSBmaW5hbAogICAgIHsKICAgICAgICAgV29ya1Njb3BlIHdvcmtTY29wZSgqdGhp
cyk7CiAKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBXb3Jr
UmVzdWx0OjpDb250aW51ZTsKICAgICB9CiAgICAgCi0gICAgdm9pZCB0aHJlYWREaWRTdGFydCgp
IG92ZXJyaWRlCisgICAgdm9pZCB0aHJlYWREaWRTdGFydCgpIGZpbmFsCiAgICAgewogICAgICAg
ICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpLCBtX3dvcmts
aXN0LCAiOiBUaHJlYWQgc3RhcnRlZCIpOwogICAgICAgICAKQEAgLTE1MCw3ICsxNTAsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIG1fY29tcGlsYXRpb25TY29wZSA9IG1ha2VVbmlxdWU8Q29tcGls
YXRpb25TY29wZT4oKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNv
bnN0IEFic3RyYWN0TG9ja2VyJikgb3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZElzU3RvcHBpbmco
Y29uc3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbAogICAgIHsKICAgICAgICAgLy8gV2UncmUgaG9s
ZGluZyB0aGUgV29ya2xpc3Q6Om1fbG9jaywgc28gd2Ugc2hvdWxkIGJlIGNhcmVmdWwgbm90IHRv
IGRlYWRsb2NrLgogICAgICAgICAKQEAgLTE2Miw3ICsxNjIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIG1fcGxhbiA9IG51bGxwdHI7CiAgICAgfQogCi1wcml2YXRlOgogICAgIFdvcmtsaXN0JiBt
X3dvcmtsaXN0OwogICAgIFRocmVhZERhdGEmIG1fZGF0YTsKICAgICBpbnQgbV9yZWxhdGl2ZVBy
aW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbmlwcGV0
UGFyYW1zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNuaXBwZXRQYXJhbXMuaApp
bmRleCBmMTNmZDEyNjNiMjljYTc4OWM0Y2I3YTU0YmIxODI1MjM0MTZmYjgyLi4xYWYyYmQzOGY0
ZGI2ODY0MTY1MGQwMTcxZDA1Yjk4Y2E0ZTNmNGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFNuaXBwZXRQYXJhbXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFNuaXBwZXRQYXJhbXMuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEZUTCB7CiAKIGNsYXNzIFN0YXRlOwogCi1jbGFzcyBTbmlwcGV0UGFyYW1z
IDogcHVibGljIEpTQzo6U25pcHBldFBhcmFtcyB7CitjbGFzcyBTbmlwcGV0UGFyYW1zIGZpbmFs
IDogcHVibGljIEpTQzo6U25pcHBldFBhcmFtcyB7CiBwdWJsaWM6CiAgICAgU25pcHBldFBhcmFt
cyhTdGF0ZSYgc3RhdGUsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFt
cywgREZHOjpOb2RlKiBub2RlLCBCb3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9u
cywgVmVjdG9yPFZhbHVlPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBWZWN0
b3I8RlBSUmVnPiYmIGZwU2NyYXRjaCkKICAgICAgICAgOiBKU0M6OlNuaXBwZXRQYXJhbXMoc3Rh
dGUudm0oKSwgV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2Ny
YXRjaCkpCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0jZGVm
aW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5cGUs
IC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBsKENDYWxsSGVscGVyczo6SnVtcExpc3QsIEND
YWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5cGUsIHN0ZDo6dHVwbGU8X19WQV9B
UkdTX18+IGFyZ3MpIG92ZXJyaWRlOworI2RlZmluZSBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9O
UyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAuLi4pIHZvaWQgYWRkU2xvd1BhdGhDYWxsSW1w
bChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2FsbEhlbHBlcnMmLCBPcGVyYXRpb25UeXBlLCBS
ZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJHU19fPiBhcmdzKSBmaW5hbDsKICAgICBTTklQ
UEVUX1NMT1dfUEFUSF9DQUxMUyhKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUykKICN1bmRlZiBK
U0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9CbG9ja0RpcmVjdG9yeS5jcHAKaW5kZXggMTJjOWM2ZjRjMmYxN2M2M2VmYjM0Mzc2NmJjMTY2
YjY5MjBkM2Q0Zi4uNWNlMjI2MTg2OWQ4Y2UwOTBkNWQ3ZGRkZTIxMjFhMTc5NDRkMjAxMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcApAQCAtMzA5
LDE0ICszMDksMTQgQEAgdm9pZCBCbG9ja0RpcmVjdG9yeTo6YXNzZXJ0Tm9VbnN3ZXB0KCkKIAog
UmVmUHRyPFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4+IEJsb2NrRGlyZWN0b3J5
OjpwYXJhbGxlbE5vdEVtcHR5QmxvY2tTb3VyY2UoKQogewotICAgIGNsYXNzIFRhc2sgOiBwdWJs
aWMgU2hhcmVkVGFzazxNYXJrZWRCbG9jazo6SGFuZGxlKigpPiB7CisgICAgY2xhc3MgVGFzayBm
aW5hbCA6IHB1YmxpYyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+IHsKICAgICBw
dWJsaWM6CiAgICAgICAgIFRhc2soQmxvY2tEaXJlY3RvcnkmIGRpcmVjdG9yeSkKICAgICAgICAg
ICAgIDogbV9kaXJlY3RvcnkoZGlyZWN0b3J5KQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIE1hcmtlZEJsb2NrOjpIYW5kbGUqIHJ1bigpIG92ZXJyaWRlCisgICAgICAg
IE1hcmtlZEJsb2NrOjpIYW5kbGUqIHJ1bigpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChtX2RvbmUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXgg
MDVjZjI4MjBmMzI0YWE1YzA5YTM0ZDIwMTI2MDY2NmM1MmUzNjg4Ni4uNTE1YWZmMTY3Nzg2YmJj
MTgwNjQwNWViYmY0NWU4ZjQ3YzA4YjkwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMjksMTYgKzI5LDE2IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBFZGVuR0NBY3Rpdml0
eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CitjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFsIDogcHVibGljIEdDQWN0aXZpdHlD
YWxsYmFjayB7CiBwdWJsaWM6CiAgICAgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKik7CiAK
LSAgICB2b2lkIGRvQ29sbGVjdGlvbihWTSYpIG92ZXJyaWRlOworICAgIHZvaWQgZG9Db2xsZWN0
aW9uKFZNJikgZmluYWw7CiAKLXByb3RlY3RlZDoKLSAgICBTZWNvbmRzIGxhc3RHQ0xlbmd0aChI
ZWFwJikgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3Zl
cnJpZGU7Ci0gICAgZG91YmxlIGRlYXRoUmF0ZShIZWFwJikgb3ZlcnJpZGU7Citwcml2YXRlOgor
ICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhlYXAmKSBmaW5hbDsKKyAgICBkb3VibGUgZ2NUaW1l
U2xpY2Uoc2l6ZV90IGJ5dGVzKSBmaW5hbDsKKyAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBm
aW5hbDsKIH07CiAKIGlubGluZSBSZWZQdHI8R0NBY3Rpdml0eUNhbGxiYWNrPiBHQ0FjdGl2aXR5
Q2FsbGJhY2s6OnRyeUNyZWF0ZUVkZW5UaW1lcihIZWFwKiBoZWFwKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IDY1MGFl
MTM4N2YxNmFhMDAzZDdkZGI5ODZmMDc1OGZjOWYxZWM0ODEuLmZhMWNhMzViOTE4MjViNTY3NjUz
MjZjYWU1ZjZmYmZjOGUxM2IwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTI5LDE5ICsyOSwxOSBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgRnVsbEdDQWN0aXZpdHlDYWxs
YmFjayA6IHB1YmxpYyBHQ0FjdGl2aXR5Q2FsbGJhY2sgeworY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBHQ0FjdGl2aXR5Q2FsbGJh
Y2sgewogcHVibGljOgogICAgIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwogCi0gICAg
dm9pZCBkb0NvbGxlY3Rpb24oVk0mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvQ29sbGVjdGlvbihW
TSYpIGZpbmFsOwogCiAgICAgYm9vbCBkaWRHQ1JlY2VudGx5KCkgY29uc3QgeyByZXR1cm4gbV9k
aWRHQ1JlY2VudGx5OyB9CiAgICAgdm9pZCBzZXREaWRHQ1JlY2VudGx5KCkgeyBtX2RpZEdDUmVj
ZW50bHkgPSB0cnVlOyB9CiAKLXByb3RlY3RlZDoKLSAgICBTZWNvbmRzIGxhc3RHQ0xlbmd0aChI
ZWFwJikgb3ZlcnJpZGU7Ci0gICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3Zl
cnJpZGU7Ci0gICAgZG91YmxlIGRlYXRoUmF0ZShIZWFwJikgb3ZlcnJpZGU7Citwcml2YXRlOgor
ICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhlYXAmKSBmaW5hbDsKKyAgICBkb3VibGUgZ2NUaW1l
U2xpY2Uoc2l6ZV90IGJ5dGVzKSBmaW5hbDsKKyAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBm
aW5hbDsKIAogICAgIGJvb2wgbV9kaWRHQ1JlY2VudGx5IHsgZmFsc2UgfTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDg2ZGQ2ZmFmNGUyMGU2ZTg3YWE2NDY3NmRlYWFi
NDVhOTMxMGE4MzUuLjRiOTBhYWM3OTBjOTZmOTJlZWFiY2QxOTYzZGU2MTQ1ZWQwYWY2ZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgcHJpdmF0
ZToKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKLWNsYXNzIEhlYXA6OkhlYXBUaHJlYWQg
OiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKK2NsYXNzIEhlYXA6OkhlYXBUaHJlYWQgZmluYWwg
OiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBIZWFwVGhyZWFkKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEhlYXAmIGhlYXApCiAgICAgICAgIDogQXV0b21hdGlj
VGhyZWFkKGxvY2tlciwgaGVhcC5tX3RocmVhZExvY2ssIGhlYXAubV90aHJlYWRDb25kaXRpb24u
Y29weVJlZigpKQpAQCAtMjQ1LDEzICsyNDUsMTMgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAK
LSAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICBjb25zdCBjaGFyKiBu
YW1lKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiAiSlNDIEhlYXAgQ29sbGVj
dG9yIFRocmVhZCI7CiAgICAgfQogICAgIAotcHJvdGVjdGVkOgotICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBvdmVycmlkZQorcHJpdmF0ZToKKyAgICBQ
b2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikgZmluYWwKICAgICB7
CiAgICAgICAgIGlmIChtX2hlYXAubV90aHJlYWRTaG91bGRTdG9wKSB7CiAgICAgICAgICAgICBt
X2hlYXAubm90aWZ5VGhyZWFkU3RvcHBpbmcobG9ja2VyKTsKQEAgLTI2NSwyMyArMjY1LDIyIEBA
IHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7CiAgICAgfQogICAg
IAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkg
ZmluYWwKICAgICB7CiAgICAgICAgIG1faGVhcC5jb2xsZWN0SW5Db2xsZWN0b3JUaHJlYWQoKTsK
ICAgICAgICAgcmV0dXJuIFdvcmtSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KICAgICAKLSAgICB2
b2lkIHRocmVhZERpZFN0YXJ0KCkgb3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkg
ZmluYWwKICAgICB7CiAgICAgICAgIFRocmVhZDo6cmVnaXN0ZXJHQ1RocmVhZChHQ1RocmVhZFR5
cGU6Ok1haW4pOwogICAgIH0KIAotICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhjb25zdCBBYnN0
cmFjdExvY2tlciYpIG92ZXJyaWRlCisgICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJikgZmluYWwKICAgICB7CiAgICAgICAgIG1faGVhcC5tX2NvbGxlY3RvclRo
cmVhZElzUnVubmluZyA9IGZhbHNlOwogICAgIH0KIAotcHJpdmF0ZToKICAgICBIZWFwJiBtX2hl
YXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggYjBiMzYxYjFhMGY2ZGVk
Y2QzZjk2MzNmZGE3NDJhM2ZmYWZiODY3Yy4uNzdkNGRlMTgzMjZhN2MwMzllMGM4NTI0ODdkNzE5
NDNmODNhYjk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtNDMxLDEyICs0MzEs
MTIgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1pbkV4dHJhTWVt
b3J5ID0gMjU2OwogICAgIAotICAgIGNsYXNzIENGaW5hbGl6ZXJPd25lciA6IHB1YmxpYyBXZWFr
SGFuZGxlT3duZXIgewotICAgICAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9p
ZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgY2xhc3MgQ0ZpbmFsaXplck93bmVyIGZpbmFsIDog
cHVibGljIFdlYWtIYW5kbGVPd25lciB7CisgICAgICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVu
a25vd24+LCB2b2lkKiBjb250ZXh0KSBmaW5hbDsKICAgICB9OwogCi0gICAgY2xhc3MgTGFtYmRh
RmluYWxpemVyT3duZXIgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKLSAgICAgICAgdm9pZCBm
aW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJyaWRlOworICAgIGNs
YXNzIExhbWJkYUZpbmFsaXplck93bmVyIGZpbmFsIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7
CisgICAgICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBm
aW5hbDsKICAgICB9OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc1ZhbGlkQWxsb2Nh
dGlvbihzaXplX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5j
cmVtZW50YWxTd2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuaAppbmRleCAxMjY0NmRlYmIwYmYyNzY2YTMwNTcxMzYzMzRiZjRkNDI3YjRmZTA5
Li40ZGUzODYwN2JmN2VjYjhmNzZmODk2NjY4N2YwMWJkOGMxYWNmYTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEhlYXA7CiBjbGFzcyBCbG9ja0RpcmVjdG9yeTsK
IAotY2xhc3MgSW5jcmVtZW50YWxTd2VlcGVyIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKK2Ns
YXNzIEluY3JlbWVudGFsU3dlZXBlciBmaW5hbCA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7CiBw
dWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTUnVuTG9vcFRpbWVyOwogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIGV4cGxpY2l0IEluY3JlbWVudGFsU3dlZXBlcihIZWFwKik7CkBAIC00MCw3ICs0MCw3
IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0U3dlZXBpbmcoSGVh
cCYpOwogICAgIHZvaWQgZnJlZUZhc3RNYWxsb2NNZW1vcnlBZnRlclN3ZWVwaW5nKCkgeyBtX3No
b3VsZEZyZWVGYXN0TWFsbG9jTWVtb3J5QWZ0ZXJTd2VlcGluZyA9IHRydWU7IH0KIAotICAgIHZv
aWQgZG9Xb3JrKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dvcmsoVk0mKSBmaW5hbDsKICAg
ICB2b2lkIHN0b3BTd2VlcGluZygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Jc29DZWxsU2V0LmNwcAppbmRleCA3ODZkMTE1OGYwOWM2ZDdhZWQxZWFlNWMxZTBkMjBm
MzI0ZDNkZGJjLi5iMjBkNjE0MGUyYmYyNDM2MTM0YTQ4NzQ2NWJiZjIzMzY4ZmUwZjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmNwcApAQCAtNDgsNyArNDgsNyBA
QCBJc29DZWxsU2V0Ojp+SXNvQ2VsbFNldCgpCiAKIFJlZjxTaGFyZWRUYXNrPE1hcmtlZEJsb2Nr
OjpIYW5kbGUqKCk+PiBJc29DZWxsU2V0OjpwYXJhbGxlbE5vdEVtcHR5TWFya2VkQmxvY2tTb3Vy
Y2UoKQogewotICAgIGNsYXNzIFRhc2sgOiBwdWJsaWMgU2hhcmVkVGFzazxNYXJrZWRCbG9jazo6
SGFuZGxlKigpPiB7CisgICAgY2xhc3MgVGFzayBmaW5hbCA6IHB1YmxpYyBTaGFyZWRUYXNrPE1h
cmtlZEJsb2NrOjpIYW5kbGUqKCk+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFRhc2soSXNvQ2Vs
bFNldCYgc2V0KQogICAgICAgICAgICAgOiBtX3NldChzZXQpCkBAIC01Niw3ICs1Niw3IEBAIFJl
ZjxTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+PiBJc29DZWxsU2V0OjpwYXJhbGxl
bE5vdEVtcHR5TWFya2VkQmxvY2tTCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgTWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgb3ZlcnJpZGUKKyAgICAgICAgTWFya2Vk
QmxvY2s6OkhhbmRsZSogcnVuKCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKG1f
ZG9uZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0SW5saW5lcy5oCmluZGV4IGY0ZmFlZjcxNGFmY2RjZWU2
YTAxMzYzZjRlYTg3YzA2MTI4ZWJlMjkuLmRjMmM4Yjc4NzhlY2Y1ZjYwMzczMjYxNjgwNzU0YmU1
ODI4YTZiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxT
ZXRJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldElu
bGluZXMuaApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIElzb0NlbGxTZXQ6OmZvckVhY2hNYXJrZWRD
ZWxsKGNvbnN0IEZ1bmMmIGZ1bmMpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgogUmVmPFNoYXJl
ZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPj4gSXNvQ2VsbFNldDo6Zm9yRWFjaE1hcmtlZENlbGxJ
blBhcmFsbGVsKGNvbnN0IEZ1bmMmIGZ1bmMpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1YmxpYyBT
aGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4geworICAgIGNsYXNzIFRhc2sgZmluYWwgOiBw
dWJsaWMgU2hhcmVkVGFzazx2b2lkKFNsb3RWaXNpdG9yJik+IHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIFRhc2soSXNvQ2VsbFNldCYgc2V0LCBjb25zdCBGdW5jJiBmdW5jKQogICAgICAgICAgICAg
OiBtX3NldChzZXQpCkBAIC0xMDMsNyArMTAzLDcgQEAgUmVmPFNoYXJlZFRhc2s8dm9pZChTbG90
VmlzaXRvciYpPj4gSXNvQ2VsbFNldDo6Zm9yRWFjaE1hcmtlZENlbGxJblBhcmFsbGVsKGNvbnMK
ICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB2b2lkIHJ1bihTbG90Vmlz
aXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBydW4oU2xvdFZpc2l0b3ImIHZp
c2l0b3IpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHdoaWxlIChNYXJrZWRCbG9jazo6
SGFuZGxlKiBoYW5kbGUgPSBtX2Jsb2NrU291cmNlLT5ydW4oKSkgewogICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGJsb2NrSW5kZXggPSBoYW5kbGUtPmluZGV4KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29IZWFwQ2VsbFR5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oCmluZGV4IDY2MWI2ZmNmYThmMWY1MjNmNWQz
ZTI5MDg5ZTA5ZGNmNWY3MjlkODUuLjg1ZmE5ZTkzODc1ZmRhNTQyMmFjZDIyMmZhMmZmMjllYjBi
Mjg4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxs
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5o
CkBAIC00Miw4ICs0Miw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8SXNv
SGVhcENlbGxUeXBlPihDZWxsVHlwZTo6bmVlZHNEZXN0cnVjdGlvbiA/IE5lZWRzRGVzdHJ1Y3Rp
b24gOiBEb2VzTm90TmVlZERlc3RydWN0aW9uLCAmQ2VsbFR5cGU6OmRlc3Ryb3kpOwogICAgIH0K
IAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6Okhh
bmRsZSYsIEZyZWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBk
ZXN0cm95KFZNJiwgSlNDZWxsKikgb3ZlcnJpZGU7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiwgRnJlZUxpc3QqKSBmaW5hbDsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqKSBmaW5hbDsKIAog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBvcGVyYXRvcigpKFZNJiwgSlNDZWxsKiBjZWxsKSBjb25z
dAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0lubGlu
ZWRIZWFwQ2VsbFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0lubGluZWRI
ZWFwQ2VsbFR5cGUuaAppbmRleCA0YjU2NjM1YzRhNDBiMTk1MDJjZDA2Nzg0ODc5YzdmYjhkNTNi
NTdjLi41ZDZlNzY4NjQ2OTE0MjM5Yjc0MjAwOGNiZmE0MWQwMTJlNDVmMzMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5lZEhlYXBDZWxsVHlwZS5oCkBA
IC00NSwxMiArNDUsMTIgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfTsKIAotICAgIHZvaWQg
ZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJlZUxp
c3QpIG92ZXJyaWRlCisgICAgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiBo
YW5kbGUsIEZyZWVMaXN0KiBmcmVlTGlzdCkgZmluYWwKICAgICB7CiAgICAgICAgIGhhbmRsZS5m
aW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5cGUoZnJlZUxpc3QsIERlc3Ryb3lGdW5jKCkpOwog
ICAgIH0KIAotICAgIHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCogY2VsbCkgb3ZlcnJpZGUKKyAg
ICB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqIGNlbGwpIGZpbmFsCiAgICAgewogICAgICAgICBD
ZWxsVHlwZTo6ZGVzdHJveShjZWxsKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9QYXJhbGxlbFNvdXJjZUFkYXB0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1BhcmFsbGVsU291cmNlQWRhcHRlci5oCmluZGV4IGY0YjY0NTYyNzRjMGZjM2Nl
ZGM4ZGIyNjY5YjkyMDUxYjI5NmY3NTIuLmJmZjQzZGNjZmFhYjAwZjVjMWViN2NmZGE2ZjBmMGE4
NjAwNWZlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1BhcmFsbGVs
U291cmNlQWRhcHRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1BhcmFsbGVs
U291cmNlQWRhcHRlci5oCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgT3V0ZXJUeXBlLCB0eXBlbmFtZSBJbm5lclR5cGUsIHR5cGVuYW1lIFVu
d3JhcEZ1bmM+Ci1jbGFzcyBQYXJhbGxlbFNvdXJjZUFkYXB0ZXIgOiBwdWJsaWMgU2hhcmVkVGFz
azxJbm5lclR5cGUoKT4geworY2xhc3MgUGFyYWxsZWxTb3VyY2VBZGFwdGVyIGZpbmFsIDogcHVi
bGljIFNoYXJlZFRhc2s8SW5uZXJUeXBlKCk+IHsKIHB1YmxpYzoKICAgICBQYXJhbGxlbFNvdXJj
ZUFkYXB0ZXIoUmVmUHRyPFNoYXJlZFRhc2s8T3V0ZXJUeXBlKCk+PiBvdXRlclNvdXJjZSwgY29u
c3QgVW53cmFwRnVuYyYgdW53cmFwRnVuYykKICAgICAgICAgOiBtX291dGVyU291cmNlKG91dGVy
U291cmNlKQpAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICBJbm5lclR5cGUgcnVuKCkgb3ZlcnJpZGUKKyAgICBJbm5lclR5cGUgcnVuKCkgZmluYWwKICAg
ICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKICAgICAgICAgZG8g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVy
LmgKaW5kZXggZjZiOTUyNGVlMmY0YzFkYzk0NzJhZTJiNDRlMjcyZWNhNzJkY2VhZC4uZGQxNTgz
ZjU4YWVhM2ZiOGRjMjgzNDg3Zjk4YzYzYjY5Y2Y1OGE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5oCkBAIC0zMSwxMiArMzEsMTIg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEhlYXA7CiAKLWNsYXNzIFN0b3BJZk5lY2Vzc2Fy
eVRpbWVyIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKK2NsYXNzIFN0b3BJZk5lY2Vzc2FyeVRp
bWVyIGZpbmFsIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIHB1YmxpYzoKICAgICB1c2luZyBC
YXNlID0gSlNSdW5Mb29wVGltZXI7CiAgICAgZXhwbGljaXQgU3RvcElmTmVjZXNzYXJ5VGltZXIo
Vk0mKTsKICAgICAKLSAgICB2b2lkIGRvV29yayhWTSYpIG92ZXJyaWRlOworICAgIHZvaWQgZG9X
b3JrKFZNJikgZmluYWw7CiAgICAgCiAgICAgdm9pZCBzY2hlZHVsZVNvb24oKTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZS5jcHAKaW5kZXggNjEzYmE1MmU3MjBkMDdjOTBh
ZmM1NTBhOTI4NWFmYTRiYWM3MWVkYS4uODRlMzRjM2RhY2VkMWVhM2EzNTViYzgwODYzYzRlMzhl
YTBmYTc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcApAQCAtOTAs
MTQgKzkwLDE0IEBAIE1hcmtlZEJsb2NrOjpIYW5kbGUqIFN1YnNwYWNlOjpmaW5kRW1wdHlCbG9j
a1RvU3RlYWwoKQogCiBSZWY8U2hhcmVkVGFzazxCbG9ja0RpcmVjdG9yeSooKT4+IFN1YnNwYWNl
OjpwYXJhbGxlbERpcmVjdG9yeVNvdXJjZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1YmxpYyBT
aGFyZWRUYXNrPEJsb2NrRGlyZWN0b3J5KigpPiB7CisgICAgY2xhc3MgVGFzayBmaW5hbCA6IHB1
YmxpYyBTaGFyZWRUYXNrPEJsb2NrRGlyZWN0b3J5KigpPiB7CiAgICAgcHVibGljOgogICAgICAg
ICBUYXNrKEJsb2NrRGlyZWN0b3J5KiBkaXJlY3RvcnkpCiAgICAgICAgICAgICA6IG1fZGlyZWN0
b3J5KGRpcmVjdG9yeSkKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBC
bG9ja0RpcmVjdG9yeSogcnVuKCkgb3ZlcnJpZGUKKyAgICAgICAgQmxvY2tEaXJlY3RvcnkqIHJ1
bigpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9sb2NrKTsKICAgICAgICAgICAgIEJsb2NrRGlyZWN0b3J5KiByZXN1bHQgPSBtX2RpcmVjdG9y
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlSW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2VJbmxpbmVzLmgKaW5kZXgg
ZjRmZjcwY2M5ZTg1Zjg4YmEzZTBmYjFlNDEzMDRjODAxODRlNDAyYy4uMDYyYWQ5NjE0OTIwNWY1
MTlhZDhkOTM4NjM3YThjZTFmY2I0MzlkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU3Vic3BhY2VJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU3Vic3BhY2VJbmxpbmVzLmgKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBTdWJzcGFjZTo6Zm9y
RWFjaE1hcmtlZENlbGwoY29uc3QgRnVuYyYgZnVuYykKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+
CiBSZWY8U2hhcmVkVGFzazx2b2lkKFNsb3RWaXNpdG9yJik+PiBTdWJzcGFjZTo6Zm9yRWFjaE1h
cmtlZENlbGxJblBhcmFsbGVsKGNvbnN0IEZ1bmMmIGZ1bmMpCiB7Ci0gICAgY2xhc3MgVGFzayA6
IHB1YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4geworICAgIGNsYXNzIFRhc2sg
ZmluYWwgOiBwdWJsaWMgU2hhcmVkVGFzazx2b2lkKFNsb3RWaXNpdG9yJik+IHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFRhc2soU3Vic3BhY2UmIHN1YnNwYWNlLCBjb25zdCBGdW5jJiBmdW5jKQog
ICAgICAgICAgICAgOiBtX3N1YnNwYWNlKHN1YnNwYWNlKQpAQCAtOTcsNyArOTcsNyBAQCBSZWY8
U2hhcmVkVGFzazx2b2lkKFNsb3RWaXNpdG9yJik+PiBTdWJzcGFjZTo6Zm9yRWFjaE1hcmtlZENl
bGxJblBhcmFsbGVsKGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgdm9pZCBydW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpIG92ZXJyaWRlCisgICAgICAgIHZvaWQg
cnVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICB3
aGlsZSAoTWFya2VkQmxvY2s6OkhhbmRsZSogaGFuZGxlID0gbV9ibG9ja1NvdXJjZS0+cnVuKCkp
IHsKICAgICAgICAgICAgICAgICBoYW5kbGUtPmZvckVhY2hNYXJrZWRDZWxsKApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCmluZGV4IGU1M2Nj
NjBhYWIzNWViNTU1Njg1NDQyZGZlZjE3NTkwYjgzMWE1YzIuLmNkZWU0NWYyZDZiMzM3N2YxZTA1
MjNjZmU0MDFhZTI4YmNmMmRmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmgKQEAgLTQ1LDExICs0NSwxMSBAQCBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKIGNsYXNzIEluamVjdGVkU2NyaXB0TW9kdWxlOwogY2xhc3MgSW5zcGVjdG9yRW52
aXJvbm1lbnQ7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVjdGVkU2NyaXB0IDogcHVi
bGljIEluamVjdGVkU2NyaXB0QmFzZSB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbmplY3Rl
ZFNjcmlwdCBmaW5hbCA6IHB1YmxpYyBJbmplY3RlZFNjcmlwdEJhc2UgewogcHVibGljOgogICAg
IEluamVjdGVkU2NyaXB0KCk7CiAgICAgSW5qZWN0ZWRTY3JpcHQoRGVwcmVjYXRlZDo6U2NyaXB0
T2JqZWN0LCBJbnNwZWN0b3JFbnZpcm9ubWVudCopOwotICAgIH5JbmplY3RlZFNjcmlwdCgpIG92
ZXJyaWRlOworICAgIH5JbmplY3RlZFNjcmlwdCgpIGZpbmFsOwogCiAgICAgc3RydWN0IEV4ZWN1
dGVPcHRpb25zIHsKICAgICAgICAgU3RyaW5nIG9iamVjdEdyb3VwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50LmgKaW5kZXggZTE3Mjc5Mzc5YWQzN2RiMGUxZjM3YzdmYzkzNmQzYjNlNDliNjYxOC4u
NGRhNzQ3M2IzMGJiMjMzYzMxMGZjNDY2ZDFhYjZhMzMyY2RlZjZjYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29u
c29sZUNsaWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0Q29uc29s
ZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBKU0M6OkNvbnNvbGVDbGllbnQgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEpTR2xvYmFsT2JqZWN0Q29u
c29sZUNsaWVudChJbnNwZWN0b3JDb25zb2xlQWdlbnQqKTsKLSAgICB+SlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50KCkgb3ZlcnJpZGUgeyB9CisgICAgfkpTR2xvYmFsT2JqZWN0Q29uc29sZUNs
aWVudCgpIGZpbmFsIHsgfQogCiAgICAgc3RhdGljIGJvb2wgbG9nVG9TeXN0ZW1Db25zb2xlKCk7
CiAgICAgc3RhdGljIHZvaWQgc2V0TG9nVG9TeXN0ZW1Db25zb2xlKGJvb2wpOwpAQCAtNDgsMTkg
KzQ4LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdl
bnQoSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudCogYWdlbnQpIHsgbV9zY3JpcHRQcm9maWxl
ckFnZW50ID0gYWdlbnQ7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFu
ZExldmVsKE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBS
ZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvdW50KEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBvdmVycmlkZTsKLSAgICB2b2lkIGNv
dW50UmVzZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJy
aWRlOwotICAgIHZvaWQgcHJvZmlsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHRha2VIZWFwU25h
cHNob3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRl
OwotICAgIHZvaWQgdGltZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJl
bCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0aW1lTG9nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHRpbWVFbmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92
ZXJyaWRlOwotICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlY29yZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZWNv
cmRFbmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJy
aWRlOwotICAgIHZvaWQgc2NyZWVuc2hvdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlw
dEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZl
bChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNj
cmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CisgICAgdm9pZCBjb3VudChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgZmluYWw7CisgICAgdm9pZCBjb3VudFJlc2V0KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2b2lk
IHByb2ZpbGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIGZpbmFs
OworICAgIHZvaWQgcHJvZmlsZUVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgZmluYWw7CisgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBmaW5hbDsKKyAgICB2b2lkIHRpbWUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQgdGlt
ZUxvZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgUmVmPFNjcmlw
dEFyZ3VtZW50cz4mJikgZmluYWw7CisgICAgdm9pZCB0aW1lRW5kKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2b2lkIHRpbWVTdGFtcChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CisgICAgdm9p
ZCByZWNvcmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIGZp
bmFsOworICAgIHZvaWQgcmVjb3JkRW5kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIHNjcmVlbnNob3QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIGZpbmFsOwogCiAgICAgdm9pZCB3YXJuVW5p
bXBsZW1lbnRlZChjb25zdCBTdHJpbmcmIG1ldGhvZCk7CiAgICAgdm9pZCBpbnRlcm5hbEFkZE1l
c3NhZ2UoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
LmgKaW5kZXggNjFiZjA0MWIwOGMzOTRlZGNmMmY0Njg3NDZjNzM0NmFlM2Y0MGI0Mi4uY2RmM2Rl
Nzc1MzZmNWNmMDdmN2MyZmJmZTA1Njg4NjU1ZGU3OGE5YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0
SW5zcGVjdG9yQ29udHJvbGxlciBmaW5hbAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcihKU0M6OkpTR2xv
YmFsT2JqZWN0Jik7Ci0gICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpIG92
ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoKSBmaW5hbDsK
IAogICAgIHZvaWQgY29ubmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRv
bWF0aWNJbnNwZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpOwogICAgIHZvaWQgZGlzY29u
bmVjdEZyb250ZW5kKEZyb250ZW5kQ2hhbm5lbCYpOwpAQCAtODMsMjIgKzgzLDIyIEBAIHB1Ymxp
YzoKIAogICAgIEpTQzo6Q29uc29sZUNsaWVudCogY29uc29sZUNsaWVudCgpIGNvbnN0OwogCi0g
ICAgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBjYW5BY2Nlc3NJbnNwZWN0ZWRTY3JpcHRTdGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KikgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbEhh
bmRsZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIEluc3BlY3Rv
ckV2YWx1YXRlSGFuZGxlciBldmFsdWF0ZUhhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
b2lkIGZyb250ZW5kSW5pdGlhbGl6ZWQoKSBvdmVycmlkZTsKKyAgICBib29sIGRldmVsb3BlckV4
dHJhc0VuYWJsZWQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGNhbkFjY2Vzc0luc3BlY3RlZFNj
cmlwdFN0YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsSGFuZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVy
KCkgY29uc3QgZmluYWw7CisgICAgSW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFu
ZGxlcigpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZnJvbnRlbmRJbml0aWFsaXplZCgpIGZpbmFs
OwogICAgIFdURjo6U3RvcHdhdGNoJiBleGVjdXRpb25TdG9wd2F0Y2goKSBjb25zdCBmaW5hbDsK
LSAgICBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigp
IG92ZXJyaWRlOwotICAgIEpTQzo6Vk0mIHZtKCkgb3ZlcnJpZGU7CisgICAgSlNHbG9iYWxPYmpl
Y3RTY3JpcHREZWJ1Z1NlcnZlciYgc2NyaXB0RGVidWdTZXJ2ZXIoKSBmaW5hbDsKKyAgICBKU0M6
OlZNJiB2bSgpIGZpbmFsOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpCi0gICAgQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50KiBhdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2F1Z21lbnRpbmdDbGllbnQ7IH0gCi0gICAgdm9pZCBzZXRBdWdtZW50YWJsZUluc3BlY3RvckNv
bnRyb2xsZXJDbGllbnQoQXVnbWVudGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50KiBjbGll
bnQpIG92ZXJyaWRlIHsgbV9hdWdtZW50aW5nQ2xpZW50ID0gY2xpZW50OyB9CisgICAgQXVnbWVu
dGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50KiBhdWdtZW50YWJsZUluc3BlY3RvckNvbnRy
b2xsZXJDbGllbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F1Z21lbnRpbmdDbGllbnQ7IH0g
CisgICAgdm9pZCBzZXRBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQoQXVnbWVu
dGFibGVJbnNwZWN0b3JDb250cm9sbGVyQ2xpZW50KiBjbGllbnQpIGZpbmFsIHsgbV9hdWdtZW50
aW5nQ2xpZW50ID0gY2xpZW50OyB9CiAKLSAgICBjb25zdCBGcm9udGVuZFJvdXRlciYgZnJvbnRl
bmRSb3V0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Zyb250ZW5kUm91dGVyLmdldCgp
OyB9Ci0gICAgQmFja2VuZERpc3BhdGNoZXImIGJhY2tlbmREaXNwYXRjaGVyKCkgb3ZlcnJpZGUg
eyByZXR1cm4gbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQoKTsgfQotICAgIHZvaWQgYXBwZW5kRXh0
cmFBZ2VudChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yQWdlbnRCYXNlPikgb3ZlcnJpZGU7Cisg
ICAgY29uc3QgRnJvbnRlbmRSb3V0ZXImIGZyb250ZW5kUm91dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9mcm9udGVuZFJvdXRlci5nZXQoKTsgfQorICAgIEJhY2tlbmREaXNwYXRjaGVyJiBi
YWNrZW5kRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJuIG1fYmFja2VuZERpc3BhdGNoZXIuZ2V0
KCk7IH0KKyAgICB2b2lkIGFwcGVuZEV4dHJhQWdlbnQoc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rv
ckFnZW50QmFzZT4pIGZpbmFsOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3Jp
cHREZWJ1Z1NlcnZlci5oCmluZGV4IGExOTg0NDhhMWZmZGQxYzNiMDE5YmFkZjhiODY4YTU4YmMw
N2YyNmIuLmRhYWJjZjc2NGUxN2QxZWQ2ZGNmNzZjYzU5ZmMzOWU3ZWI5ZTc4NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHRE
ZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9i
YWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC0zNSwyNSArMzUsMjUgQEAgY2xhc3MgSlNH
bG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlciBmaW5hbCA6IHB1YmxpYyBTY3JpcHREZWJ1Z1Nl
cnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9i
YWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcihKU0M6OkpTR2xvYmFsT2JqZWN0Jik7Ci0gICAgfkpT
R2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIoKSBvdmVycmlkZSB7IH0KKyAgICB+SlNHbG9i
YWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcigpIGZpbmFsIHsgfQogCiAgICAgSlNDOjpKU0dsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxPYmplY3Q7IH0K
IAogICAgIHN0YXRpYyBSdW5Mb29wTW9kZSBydW5Mb29wTW9kZSgpOwogCiBwcml2YXRlOgotICAg
IHZvaWQgYXR0YWNoRGVidWdnZXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRldGFjaERlYnVnZ2Vy
KGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRhY2hEZWJ1Z2dl
cigpIGZpbmFsOworICAgIHZvaWQgZGV0YWNoRGVidWdnZXIoYm9vbCBpc0JlaW5nRGVzdHJveWVk
KSBmaW5hbDsKIAotICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVjdCopIG92ZXJy
aWRlIHsgfQotICAgIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0dsb2JhbE9iamVjdCopIG92ZXJy
aWRlIHsgfQotICAgIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBvdmVycmlkZTsKLSAg
ICBib29sIGlzQ29udGVudFNjcmlwdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
KSBmaW5hbCB7IH0KKyAgICB2b2lkIHJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCkgZmluYWw7Cisg
ICAgYm9vbCBpc0NvbnRlbnRTY3JpcHQoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBOT1RFOiBDdXJyZW50bHkgYWxsIGV4Y2VwdGlv
bnMgYXJlIHJlcG9ydGVkIGF0IHRoZSBBUEkgYm91bmRhcnkgdGhyb3VnaCByZXBvcnRBUElFeGNl
cHRpb24uCiAgICAgLy8gVW50aWwgYSB0aW1lIGNvbWVzIHdoZXJlIGFuIGV4Y2VwdGlvbiBjYW4g
YmUgY2F1c2VkIG91dHNpZGUgb2YgdGhlIEFQSSAoZS5nLiBzZXRUaW1lb3V0CiAgICAgLy8gb3Ig
c29tZSBvdGhlciBhc3luYyBvcGVyYXRpb24gaW4gYSBwdXJlIEpTQ29udGV4dCkgd2UgY2FuIGln
bm9yZSBleGNlcHRpb25zIHJlcG9ydGVkIGhlcmUuCi0gICAgdm9pZCByZXBvcnRFeGNlcHRpb24o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhjZXB0aW9uKikgY29uc3Qgb3ZlcnJpZGUgeyB9
CisgICAgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhj
ZXB0aW9uKikgY29uc3QgZmluYWwgeyB9CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2ds
b2JhbE9iamVjdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IGY5Nzk1ZjAzOGQ0NjU1MDg0NWY3
M2RjOTEyNjZlYTAyN2FhMjY3Y2EuLjZhZDdkNTAxMjg2ODdiNjY1NGE4ZTlmZTJlNWVkODc5MGEx
NzIxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmpl
Y3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC03NjUsNyArNzY1LDcgQEAgcHVibGljOgogCiAg
ICAgSGFzaFNldDxKU0NlbGwqPiYgaG9sZGVycygpIHsgcmV0dXJuIG1faG9sZGVyczsgfQogCi0g
ICAgdm9pZCBhbmFseXplRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbiByZWFzb24pIG92ZXJyaWRlCisgICAgdm9pZCBhbmFseXplRWRnZShK
U0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbiByZWFz
b24pIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQodG8pOwogICAgICAgICBBU1NFUlQodG8t
PnZtKCkuaGVhcFByb2ZpbGVyKCktPmFjdGl2ZUhlYXBBbmFseXplcigpID09IHRoaXMpOwpAQCAt
NzkwLDE0ICs3OTAsMTQgQEAgcHVibGljOgogICAgICAgICBlbHNlIGlmICghZnJvbSB8fCByZWFz
b24gIT0gU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpOb25lKQogICAgICAgICAgICAgbV9y
b290c1RvSW5jbHVkZS5hZGQodG8pOwogICAgIH0KLSAgICB2b2lkIGFuYWx5emVQcm9wZXJ0eU5h
bWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqKSBvdmVy
cmlkZSB7IGFuYWx5emVFZGdlKGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246
Ok5vbmUpOyB9Ci0gICAgdm9pZCBhbmFseXplVmFyaWFibGVOYW1lRWRnZShKU0NlbGwqIGZyb20s
IEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBsKikgb3ZlcnJpZGUgeyBhbmFseXplRWRnZShm
cm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpOb25lKTsgfQotICAgIHZvaWQg
YW5hbHl6ZUluZGV4RWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIHVpbnQzMl90KSBvdmVy
cmlkZSB7IGFuYWx5emVFZGdlKGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246
Ok5vbmUpOyB9Ci0KLSAgICB2b2lkIGFuYWx5emVOb2RlKEpTQ2VsbCopIG92ZXJyaWRlIHsgfQot
ICAgIHZvaWQgc2V0T3BhcXVlUm9vdFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwg
Y29uc3QgY2hhciopIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoSlNDZWxsKiwgdm9pZCopIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgc2V0TGFiZWxGb3JDZWxs
KEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgYW5hbHl6ZVBy
b3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1w
bCopIGZpbmFsIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1Jl
YXNvbjo6Tm9uZSk7IH0KKyAgICB2b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCog
ZnJvbSwgSlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqKSBmaW5hbCB7IGFuYWx5emVFZGdl
KGZyb20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9CisgICAgdm9p
ZCBhbmFseXplSW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QpIGZp
bmFsIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KKworICAgIHZvaWQgYW5hbHl6ZU5vZGUoSlNDZWxsKikgZmluYWwgeyB9CisgICAg
dm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBjb25z
dCBjaGFyKikgZmluYWwgeyB9CisgICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChKU0Nl
bGwqLCB2b2lkKikgZmluYWwgeyB9CisgICAgdm9pZCBzZXRMYWJlbEZvckNlbGwoSlNDZWxsKiwg
Y29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAppbmRleCBhMjFhNTg5NGFiNzMy
NjRjOGZhNDcxNmJmYWM2OTg4ODI4YThkNDI2Li40NWFkZGEyYTg2OTkxOTVkYjg5ZjFmMDQyZDM1
M2VlN2Y0ZGM5ZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgKQEAgLTQ3LDE2ICs0NywxNiBAQCBjbGFzcyBK
U19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JB
Z2VudEJhc2UsIHB1YmxpYwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIEluc3BlY3RvckFnZW50KEFnZW50Q29udGV4dCYpOwotICAgIH5JbnNwZWN0b3JBZ2VudCgp
IG92ZXJyaWRlOworICAgIH5JbnNwZWN0b3JBZ2VudCgpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVj
dG9yQWdlbnRCYXNlCi0gICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRl
bmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5k
RGlzcGF0Y2hlciopIGZpbmFsOworICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAvLyBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW5pdGlh
bGl6ZWQoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZShFcnJvclN0cmlu
ZyYpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIGZpbmFsOworICAgIHZv
aWQgaW5pdGlhbGl6ZWQoRXJyb3JTdHJpbmcmKSBmaW5hbDsKIAogICAgIC8vIENvbW1hbmRMaW5l
QVBJCiAgICAgdm9pZCBpbnNwZWN0KFJlZlB0cjxQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiYmIG9iamVjdFRvSW5zcGVjdCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBoaW50cyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKaW5kZXggOTc5MTA1NmM5MjQw
OTBjYzYzYmVmODE3NDM5NGY1MWNiNjhmZGJjMC4uN2U3Y2RjOWY5NzUwNjc3NjYyOTc0MGFhZGNi
NTRmYjRkYTAwZDA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQu
aApAQCAtNDQsMjAgKzQ0LDIwIEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3RvclNj
cmlwdFByb2ZpbGVyQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlCiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJB
Z2VudChBZ2VudENvbnRleHQmKTsKLSAgICB+SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudCgp
IG92ZXJyaWRlOworICAgIH5JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KCkgZmluYWw7CiAK
ICAgICAvLyBJbnNwZWN0b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJv
dXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAogICAgIC8vIFNjcmlw
dFByb2ZpbGVyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBzdGFydFRyYWNraW5n
KEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBsZXMpIG92ZXJyaWRlOwotICAg
IHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFy
dFRyYWNraW5nKEVycm9yU3RyaW5nJiwgY29uc3QgYm9vbCogaW5jbHVkZVNhbXBsZXMpIGZpbmFs
OworICAgIHZvaWQgc3RvcFRyYWNraW5nKEVycm9yU3RyaW5nJikgZmluYWw7CiAKICAgICAvLyBK
U0M6OkRlYnVnZ2VyOjpQcm9maWxpbmdDbGllbnQKLSAgICBib29sIGlzQWxyZWFkeVByb2ZpbGlu
ZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIFNlY29uZHMgd2lsbEV2YWx1YXRlU2NyaXB0KCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdChTZWNvbmRzLCBKU0M6OlByb2ZpbGlu
Z1JlYXNvbikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0FscmVhZHlQcm9maWxpbmcoKSBjb25zdCBm
aW5hbDsKKyAgICBTZWNvbmRzIHdpbGxFdmFsdWF0ZVNjcmlwdCgpIGZpbmFsOworICAgIHZvaWQg
ZGlkRXZhbHVhdGVTY3JpcHQoU2Vjb25kcywgSlNDOjpQcm9maWxpbmdSZWFzb24pIGZpbmFsOwog
CiBwcml2YXRlOgogICAgIHZvaWQgYWRkRXZlbnQoU2Vjb25kcyBzdGFydFRpbWUsIFNlY29uZHMg
ZW5kVGltZSwgSlNDOjpQcm9maWxpbmdSZWFzb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50LmgK
aW5kZXggMWViN2FiYjJmYTIxZDdhOGVjMDgzMzE2MGY1M2U1YzUyM2VjNDMxNy4uYjkyOWRkZmZl
MjljM2ZiMDg4YWI2NzE0MDg3Yzk5MzAyYzI3NTIxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2Vu
dC5oCkBAIC0zNywyMCArMzcsMjAgQEAgY2xhc3MgSW5zcGVjdG9yVGFyZ2V0OwogCiB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9y
VGFyZ2V0QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgVGFyZ2V0QmFj
a2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluc3BlY3Rv
clRhcmdldEFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIFRh
cmdldEJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
SW5zcGVjdG9yVGFyZ2V0QWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIEluc3BlY3RvclRhcmdldEFnZW50KEZyb250ZW5kUm91dGVyJiwgQmFja2VuZERp
c3BhdGNoZXImKTsKLSAgICB+SW5zcGVjdG9yVGFyZ2V0QWdlbnQoKSBvdmVycmlkZTsKKyAgICB+
SW5zcGVjdG9yVGFyZ2V0QWdlbnQoKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3RvckFnZW50QmFz
ZQogICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwg
QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKICAgICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gVGFyZ2V0QmFja2Vu
ZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBzZXRQYXVzZU9uU3RhcnQoRXJyb3JTdHJpbmcm
LCBib29sIHBhdXNlT25TdGFydCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXN1bWUoRXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmIHRhcmdldElkKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFBhdXNl
T25TdGFydChFcnJvclN0cmluZyYsIGJvb2wgcGF1c2VPblN0YXJ0KSBmaW5hbDsKKyAgICB2b2lk
IHJlc3VtZShFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQpIGZpbmFsOwogICAg
IHZvaWQgc2VuZE1lc3NhZ2VUb1RhcmdldChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdGFy
Z2V0SWQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CiAKICAgICAvLyBUYXJnZXQgbGlm
ZWN5Y2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaAppbmRleCA0OTIxZDMzMDZl
ZDU3YmI0MDljODE2NzFhYzEzYzJmNDMyMTAzYmM4Li43ZDQ2NzBkMDRkYzdmZDMzMDgzYTE1MDYx
ZDM3NzY1YjFhNmMzZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaApAQCAt
MzgsMTAgKzM4LDEwIEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudCBmaW5hbCA6IHB1
YmxpYyBJbnNwZWN0b3JBdWRpdEFnZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBKU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoSlNBZ2VudENvbnRleHQmKTsK
LSAgICB+SlNHbG9iYWxPYmplY3RBdWRpdEFnZW50KCkgb3ZlcnJpZGU7CisgICAgfkpTR2xvYmFs
T2JqZWN0QXVkaXRBZ2VudCgpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkKSBvdmVycmlkZTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZv
ckV2YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7
CiAKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dERlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCmluZGV4IGQ3NjA1NzEzNzU1ZmE3OGM5NGRh
MTMyMWZkZWZiODg3Nzc3MzIyZjEuLjNiODhkZWFiNzc1M2VhNWRhMWFhNzNmYzAyYjJhM2UyNzFj
M2UwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oCkBAIC0zNiwx
OCArMzYsMTggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50IGZpbmFsIDogcHVi
bGljIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudChKU0FnZW50Q29udGV4
dCYsIEluc3BlY3RvckNvbnNvbGVBZ2VudCopOwotICAgIH5KU0dsb2JhbE9iamVjdERlYnVnZ2Vy
QWdlbnQoKSBvdmVycmlkZTsKKyAgICB+SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KCkgZmlu
YWw7CiAKICAgICAvLyBTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdm9pZCBicmVha3BvaW50QWN0
aW9uTG9nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0
cmluZyYpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0Rm9yRXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBv
dmVycmlkZTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JT
dHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CiAKICAgICAvLyBO
T1RFOiBKYXZhU2NyaXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0byBtdXRlIGEgY29u
c29sZSBiZWNhdXNlIG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUg
b3V0c2lkZSBvZiB0aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0LgotICAgIHZvaWQg
bXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIG11dGVDb25zb2xlKCkgZmluYWwgeyB9CisgICAgdm9pZCB1bm11
dGVDb25zb2xlKCkgZmluYWwgeyB9CiAKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIG1fY29u
c29sZUFnZW50IHsgbnVsbHB0ciB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5oCmluZGV4IGEzNDdkZTRlZjBhYzg2NDVkZGU1NjVhMzYwYTBkNzVlNWNlOTkyZjQuLjZm
MGNlOTA1OWQ3MjMzODM3OGIxZDQ3YTcxYTcyNWMzOTJjZDI3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RSdW50aW1lQWdlbnQuaApAQCAtMzksMTUgKzM5LDE1IEBAIGNsYXNzIEpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQoSlNBZ2VudENvbnRleHQmKTsKLSAgICB+SlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQoKSBvdmVycmlkZTsKKyAgICB+SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQoKSBm
aW5hbDsKIAogcHJpdmF0ZToKLSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2
YWwoRXJyb3JTdHJpbmcmLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgb3ZlcnJpZGU7
CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwg
Y29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIGZpbmFsOwogCiAgICAgLy8gTk9URTogSmF2
YVNjcmlwdCBpbnNwZWN0b3IgZG9lcyBub3QgeWV0IG5lZWQgdG8gbXV0ZSBhIGNvbnNvbGUgYmVj
YXVzZSBubyBtZXNzYWdlcwogICAgIC8vIGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIG91dHNpZGUg
b2YgdGhlIEFQSSBib3VuZGFyeSBvciBjb25zb2xlIG9iamVjdC4KLSAgICB2b2lkIG11dGVDb25z
b2xlKCkgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9
CisgICAgdm9pZCBtdXRlQ29uc29sZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgdW5tdXRlQ29uc29s
ZSgpIGZpbmFsIHsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bnRpbWVGcm9udGVuZERpc3Bh
dGNoZXI+IG1fZnJvbnRlbmREaXNwYXRjaGVyOwogICAgIFJlZlB0cjxSdW50aW1lQmFja2VuZERp
c3BhdGNoZXI+IG1fYmFja2VuZERpc3BhdGNoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVybmF0ZURpc3BhdGNoYWJsZUFnZW50
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVybmF0
ZURpc3BhdGNoYWJsZUFnZW50LmgKaW5kZXggNTAxYmZkYTliNDc5MjY3OTc3MjAxYTAzOTI2YTc0
NjNiNTE3MzllZS4uYTZiMThjZjM3NmYzOGY2OTcyYTA1YWNjMjdkMTRkYzYyMDY1NTlmYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hdWdtZW50YWJsZS9BbHRl
cm5hdGVEaXNwYXRjaGFibGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRlRGlzcGF0Y2hhYmxlQWdlbnQuaApAQCAtNTEsMTEg
KzUxLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9hbHRlcm5hdGVEaXNwYXRjaGVyLT5zZXRCYWNr
ZW5kRGlzcGF0Y2hlcihudWxscHRyKTsKICAgICB9CiAKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJp
ZGUKKyAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlcios
IEJhY2tlbmREaXNwYXRjaGVyKikgZmluYWwKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCB3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZQorICAg
IHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmlu
YWwKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCmluZGV4
IGM4NWI2NGEwNTNmOGZmMGNjMDA5MjA3ZmUwYzk3ZDgxMmE0NzBjNmMuLjY3MzM3ZDczMDRmNDJk
NmQxNzYxYTA5YjE0MDQwNmJhMjcyYWNiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1Rh
cmdldC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICNlbHNlCiAgICAgUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0KFJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldCYpOwogI2VuZGlmCi0gICAgflJl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldCgpIG92ZXJyaWRlOworICAgIH5SZW1vdGVDb25uZWN0aW9u
VG9UYXJnZXQoKSBmaW5hbDsKIAogICAgIC8vIE1haW4gQVBJLgogICAgIGJvb2wgc2V0dXAoYm9v
bCBpc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZSwgYm9vbCBhdXRvbWF0aWNhbGx5UGF1c2Ug
PSBmYWxzZSk7CkBAIC03Nyw4ICs3Nyw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgLy8gRnJv
bnRlbmRDaGFubmVsIG92ZXJyaWRlcy4KLSAgICBDb25uZWN0aW9uVHlwZSBjb25uZWN0aW9uVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbm5lY3Rpb25UeXBlOjpSZW1vdGU7IH0KLSAg
ICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICBDb25uZWN0aW9uVHlwZSBjb25uZWN0aW9uVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bm5lY3Rpb25UeXBlOjpSZW1vdGU7IH0KKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChj
b25zdCBTdHJpbmcmKSBmaW5hbDsKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUlu
c3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3Rl
SW5zcGVjdG9yLmgKaW5kZXggZTI1NjJjZjMyNTM0MTg5YjFhMDE0OGYxODNlMzRiYjk0NWM1MmJh
Yy4uNGE2MTBhYTJhOGRjOTI4NDk2OWJlNWY5NWFjNmVhYWYwMDgwZDk1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVj
dG9yLmgKQEAgLTIwNyw5ICsyMDcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZEF1dG9tYXRp
Y0luc3BlY3Rpb25DYW5kaWRhdGVNZXNzYWdlKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICB2b2lkIHhwY0Nvbm5lY3Rpb25SZWNlaXZlZE1lc3NhZ2UoUmVtb3RlSW5zcGVjdG9yWFBDQ29u
bmVjdGlvbiosIE5TU3RyaW5nICptZXNzYWdlTmFtZSwgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB4cGNDb25uZWN0aW9uRmFpbGVkKFJlbW90ZUluc3BlY3RvclhQ
Q0Nvbm5lY3Rpb24qKSBvdmVycmlkZTsKLSAgICB2b2lkIHhwY0Nvbm5lY3Rpb25VbmhhbmRsZWRN
ZXNzYWdlKFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24qLCB4cGNfb2JqZWN0X3QpIG92ZXJy
aWRlOworICAgIHZvaWQgeHBjQ29ubmVjdGlvblJlY2VpdmVkTWVzc2FnZShSZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uKiwgTlNTdHJpbmcgKm1lc3NhZ2VOYW1lLCBOU0RpY3Rpb25hcnkgKnVz
ZXJJbmZvKSBmaW5hbDsKKyAgICB2b2lkIHhwY0Nvbm5lY3Rpb25GYWlsZWQoUmVtb3RlSW5zcGVj
dG9yWFBDQ29ubmVjdGlvbiopIGZpbmFsOworICAgIHZvaWQgeHBjQ29ubmVjdGlvblVuaGFuZGxl
ZE1lc3NhZ2UoUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbiosIHhwY19vYmplY3RfdCkgZmlu
YWw7CiAKICAgICB2b2lkIHJlY2VpdmVkU2V0dXBNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlcklu
Zm8pOwogICAgIHZvaWQgcmVjZWl2ZWREYXRhTWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZXJJbmZv
KTsKQEAgLTIyMyw4ICsyMjMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjZWl2ZWRBdXRvbWF0
aW9uU2Vzc2lvblJlcXVlc3RNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8pOwogI2VuZGlm
CiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQotICAgIEhhc2hNYXA8U3RyaW5nLCBD
YWxsSGFuZGxlcj4mIGRpc3BhdGNoTWFwKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRDbG9zZShD
b25uZWN0aW9uSUQpIG92ZXJyaWRlOworICAgIEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4m
IGRpc3BhdGNoTWFwKCkgZmluYWw7CisgICAgdm9pZCBkaWRDbG9zZShDb25uZWN0aW9uSUQpIGZp
bmFsOwogCiAgICAgdm9pZCBzZW5kV2ViSW5zcGVjdG9yRXZlbnQoY29uc3QgU3RyaW5nJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAppbmRleCA4ZjhlZjA1OTRh
MzFlZGI4YjY0NGE3MTQ1MDMzMzQxNTBiNGM3N2EyLi4wMDhjNmZkMGYxZjAzNDU0MjIxNzE2NTBk
OTRlOTQ3M2QwODU3M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZl
ci5oCkBAIC00Niw4ICs0Niw4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVz
dHJveWVkPFJlbW90ZUluc3BlY3RvclNlcnZlcj47CiAgICAgUmVtb3RlSW5zcGVjdG9yU2VydmVy
KCkgeyBTb2NrZXQ6OmluaXQoKTsgfQogCi0gICAgYm9vbCBkaWRBY2NlcHQoQ29ubmVjdGlvbklE
IGFjY2VwdGVkSUQsIENvbm5lY3Rpb25JRCBsaXN0ZW5lcklELCBTb2NrZXQ6OkRvbWFpbikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaWRDbG9zZShDb25uZWN0aW9uSUQpIG92ZXJyaWRlIHsgfQorICAg
IGJvb2wgZGlkQWNjZXB0KENvbm5lY3Rpb25JRCBhY2NlcHRlZElELCBDb25uZWN0aW9uSUQgbGlz
dGVuZXJJRCwgU29ja2V0OjpEb21haW4pIGZpbmFsOworICAgIHZvaWQgZGlkQ2xvc2UoQ29ubmVj
dGlvbklEKSBmaW5hbCB7IH0KIAogICAgIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gbV9zZXJ2ZXI7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2NvZGVnZW4vY3BwX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weQpp
bmRleCBjN2IxYzg3ZTExOThkNjZlZjY5OGY5ZWM4YTkyNDcxMjdiOTJkYzAwLi45NmI1NWU0MTYy
YzY2ODA0OWNhYTY0NzM2YjY0MTlhZjQ0NTY4OGRiIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRl
cy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weQpAQCAtOTUsNyArOTUsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgIiIiJHtjbGFzc0FuZEV4cG9ydE1hY3JvfSAke2RvbWFpbk5hbWV9QmFja2VuZERpc3Bh
dGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8JHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVyPiBjcmVh
dGUoQmFja2VuZERpc3BhdGNoZXImLCAke2RvbWFpbk5hbWV9QmFja2VuZERpc3BhdGNoZXJIYW5k
bGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBt
ZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpP
YmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiAke2NvbW1hbmREZWNsYXJhdGlvbnN9CiBwcml2YXRl
OgogICAgICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0Y2hlcihCYWNrZW5kRGlzcGF0Y2hlciYs
ICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29i
amNfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRjaGVy
X2hlYWRlci5weQppbmRleCAwNTEyMmM2Y2FiZGQyMmM0YjliMDA3Zjk4ZmZlZWMxZjgyYjM0Y2Rj
Li5lZDhjYzU5NmQzMTAzMDNiYzJmMTZiN2NhNWJmNzA2NDdjMGI0NDBmIDEwMDc1NQotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9v
YmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3Bh
dGNoZXJfaGVhZGVyLnB5CkBAIC0xMTEsNSArMTExLDUgQEAgY2xhc3MgT2JqQ0JhY2tlbmREaXNw
YXRjaGVySGVhZGVyR2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICAgICAgJ2NvbW1h
bmROYW1lJzogY29tbWFuZC5jb21tYW5kX25hbWUsCiAgICAgICAgICAgICAncGFyYW1ldGVycyc6
ICcsICcuam9pbihwYXJhbWV0ZXJzKSwKICAgICAgICAgfQotICAgICAgICBsaW5lcy5hcHBlbmQo
JyAgICB2aXJ0dWFsIHZvaWQgJShjb21tYW5kTmFtZSlzKCUocGFyYW1ldGVycylzKSBvdmVycmlk
ZTsnICUgY29tbWFuZF9hcmdzKQorICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICB2b2lkICUoY29t
bWFuZE5hbWUpcyglKHBhcmFtZXRlcnMpcykgZmluYWw7JyAlIGNvbW1hbmRfYXJncykKICAgICAg
ICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0
aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRm
b3JtLmpzb24tcmVzdWx0CmluZGV4IDliM2NlZTZiZTY1ZWE1MWZhYTYzNGI3MmFjYjg3MTU0OTA2
NWZlMzAuLmM2ZTY4ZjRhOWFlZGQzZDg0MzY3MGEyMmYwY2I4MzUzMTdlZjY0MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhw
ZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9k
ZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtMTUzLDcgKzE1Myw3
IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1
YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxOZXR3b3JrQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYs
IE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxv
bmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBt
ZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25z
dCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHBy
aXZhdGU6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09O
OjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVf
RElTUEFUQ0hFUlMpCkBAIC01ODksNyArNTg5LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdv
cmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVOZXR3b3JrQmFja2UK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9y
TmV0d29ya0JhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbE5ldHdvcmtEb21haW5IYW5k
bGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkUmVz
b3VyY2UobG9uZyByZXF1ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8
VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5l
cmljL2V4cGVjdGVkL2NvbW1hbmQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJs
ZVR5cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9t
YWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CmluZGV4IDQ4NWFhNjFlNmI3MWU4M2I3MzYw
MWM5NjZmMWUxYmJkZDdkMmFmNTcuLjQzMTNmYTkxNTFlOTJjZDAzYjAwOGIzYzM1ZWFiZDM3ZDk5
MTdmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21h
aW4tZGVidWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRU
eXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdApAQCAtMTUzLDcg
KzE1Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFs
IDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPERvbWFpbkJhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3BhdGNo
ZXImLCBEb21haW5CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNo
KGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4m
JiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBj
b25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsK
IHByaXZhdGU6CiAgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTKQpAQCAtNTE2LDcgKzUxNiw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JEb21haW5C
YWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEb21haW5CYWNrZW5kCiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3RvckRv
bWFpbkJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRsZXI+
IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgQ29t
bWFuZChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVx
dWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2NvbERv
bWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2Nv
bW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMt
d2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKaW5kZXggNTliM2UzY2ZkOGFjNmZiYmIx
YzNhY2MzNzc0MjE0OTExMmM1ZDdjYy4uZmM1YzQxZGI1M2FiNmJjNDBjYTRhNTM0N2VhNzJhODdi
NzM0MThhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUu
anNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNv
bi1yZXN1bHQKQEAgLTE3OSw3ICsxNzksNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBEYXRhYmFzZUJh
Y2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRj
aGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPERhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI+
IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERhdGFiYXNlQmFja2VuZERpc3BhdGNoZXJIYW5k
bGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBt
ZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpP
YmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgZXhlY3V0ZVNRTFN5
bmNPcHRpb25hbFJldHVyblZhbHVlcyhsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVj
dD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2b2lkIGV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJu
VmFsdWVzKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMp
OwpAQCAtODY1LDEwICs4NjUsMTAgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2Vu
ZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlRGF0YWJhc2VCYWMKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRGF0YWJhc2VC
YWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xEYXRhYmFzZURvbWFpbkhhbmRsZXI+IGhh
bmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0
ZVNRTFN5bmNPcHRpb25hbFJldHVyblZhbHVlcyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFi
YXNlSWQsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnkpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCBleGVjdXRlU1FMQXN5bmNPcHRpb25hbFJldHVyblZhbHVlcyhsb25nIHJlcXVlc3RJZCwgaW50
IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnkpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgdm9pZCBleGVjdXRlU1FMU3luYyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNl
SWQsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnkpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBl
eGVjdXRlU1FMQXN5bmMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlkLCBjb25zdCBT
dHJpbmcmIGluX3F1ZXJ5KSBvdmVycmlkZTsKKyAgICB2b2lkIGV4ZWN1dGVTUUxTeW5jT3B0aW9u
YWxSZXR1cm5WYWx1ZXMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlkLCBjb25zdCBT
dHJpbmcmIGluX3F1ZXJ5KSBmaW5hbDsKKyAgICB2b2lkIGV4ZWN1dGVTUUxBc3luY09wdGlvbmFs
UmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgU3Ry
aW5nJiBpbl9xdWVyeSkgZmluYWw7CisgICAgdm9pZCBleGVjdXRlU1FMU3luYyhsb25nIHJlcXVl
c3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnkpIGZpbmFsOwor
ICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJhc2VJ
ZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0
cjxpZDxUZXN0UHJvdG9jb2xEYXRhYmFzZURvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFy
YW1ldGVycy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1y
ZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAppbmRleCAwOWY1NTg3NzE4ZDNjNzQzMWU2ODZl
NWQ0NWM5ODFmZmIyNjYzZDk0Li44NTk0MWVkNTFmMTEyNDRiM2QzNDM3YzgwMDI1MDRmNTMxNDMx
MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJu
LXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25h
bC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CkBAIC0xNjIsNyArMTYyLDcgQEAg
cHJvdGVjdGVkOgogY2xhc3MgRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1Ymxp
YyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3BhdGNoZXImLCBE
YXRhYmFzZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9u
ZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1l
c3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJp
dmF0ZToKICAgICB2b2lkIGV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyByZXF1ZXN0
SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAgICAgdm9pZCBleGVjdXRl
Tm9PcHRpb25hbFBhcmFtZXRlcnMobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+
JiYgcGFyYW1ldGVycyk7CkBAIC03ODAsOCArNzgwLDggQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRh
dGFiYXNlQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlRGF0YWJhc2VC
YWMKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVj
dG9yRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xEYXRhYmFzZURvbWFp
bkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZXhlY3V0ZUFsbE9wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJZCwgY29uc3Qg
SlNPTjo6QXJyYXkqIGluX2NvbHVtbk5hbWVzLCBjb25zdCBTdHJpbmcqIGluX25vdGVzLCBjb25z
dCBkb3VibGUqIGluX3RpbWVzdGFtcCwgY29uc3QgSlNPTjo6T2JqZWN0KiBpbl92YWx1ZXMsIGNv
bnN0IEpTT046OlZhbHVlKiBpbl9wYXlsb2FkLCBjb25zdCBpbnQqIGluX2RhdGFiYXNlSWQsIGNv
bnN0IEpTT046Ok9iamVjdCogaW5fc3FsRXJyb3IsIGNvbnN0IFN0cmluZyogaW5fc2NyZWVuQ29s
b3IsIGNvbnN0IEpTT046OkFycmF5KiBpbl9hbHRlcm5hdGVDb2xvcnMsIGNvbnN0IFN0cmluZyog
aW5fcHJpbnRDb2xvcikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVOb09wdGlv
bmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJZCwgY29uc3QgSlNPTjo6QXJyYXkmIGluX2NvbHVt
bk5hbWVzLCBjb25zdCBTdHJpbmcmIGluX25vdGVzLCBkb3VibGUgaW5fdGltZXN0YW1wLCBjb25z
dCBKU09OOjpPYmplY3QmIGluX3ZhbHVlcywgSlNPTjo6VmFsdWUgaW5fcGF5bG9hZCwgaW50IGlu
X2RhdGFiYXNlSWQsIGNvbnN0IEpTT046Ok9iamVjdCYgaW5fc3FsRXJyb3IsIGNvbnN0IFN0cmlu
ZyYgaW5fc2NyZWVuQ29sb3IsIGNvbnN0IEpTT046OkFycmF5JiBpbl9hbHRlcm5hdGVDb2xvcnMs
IGNvbnN0IFN0cmluZyYgaW5fcHJpbnRDb2xvcikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRl
QWxsT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBKU09OOjpBcnJheSog
aW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyogaW5fbm90ZXMsIGNvbnN0IGRvdWJsZSogaW5f
dGltZXN0YW1wLCBjb25zdCBKU09OOjpPYmplY3QqIGluX3ZhbHVlcywgY29uc3QgSlNPTjo6VmFs
dWUqIGluX3BheWxvYWQsIGNvbnN0IGludCogaW5fZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6T2Jq
ZWN0KiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nKiBpbl9zY3JlZW5Db2xvciwgY29uc3QgSlNP
Tjo6QXJyYXkqIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nKiBpbl9wcmludENvbG9y
KSBmaW5hbDsKKyAgICB2b2lkIGV4ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVl
c3RJZCwgY29uc3QgSlNPTjo6QXJyYXkmIGluX2NvbHVtbk5hbWVzLCBjb25zdCBTdHJpbmcmIGlu
X25vdGVzLCBkb3VibGUgaW5fdGltZXN0YW1wLCBjb25zdCBKU09OOjpPYmplY3QmIGluX3ZhbHVl
cywgSlNPTjo6VmFsdWUgaW5fcGF5bG9hZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IEpTT046
Ok9iamVjdCYgaW5fc3FsRXJyb3IsIGNvbnN0IFN0cmluZyYgaW5fc2NyZWVuQ29sb3IsIGNvbnN0
IEpTT046OkFycmF5JiBpbl9hbHRlcm5hdGVDb2xvcnMsIGNvbnN0IFN0cmluZyYgaW5fcHJpbnRD
b2xvcikgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEYXRh
YmFzZURvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2Rv
bWFpbi1kZWJ1Z2dhYmxlVHlwZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tZGVidWdnYWJs
ZVR5cGVzLmpzb24tcmVzdWx0CmluZGV4IDNkNjViMDQ0NzhjMzQ0ZmYzZjY3YzliMTEzMTA3NDM2
N2NjNDQ2M2IuLmY1YjU5MTdhYTBiNDExYzI5OTcyOWRmMTg1NzM3ZGU2ZWJjNjczNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5l
cmljL2V4cGVjdGVkL2RvbWFpbi1kZWJ1Z2dhYmxlVHlwZXMuanNvbi1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdApAQCAtMTUzLDcgKzE1Myw3IEBA
IHByb3RlY3RlZDoKIGNsYXNzIERvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGlj
IFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PERvbWFpbkJhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3BhdGNoZXImLCBEb21h
aW5CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdl
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6
CiAgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
KQpAQCAtNTE2LDcgKzUxNiw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlz
cGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEb21haW5CYWNrZW5kCiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3RvckRvbWFpbkJhY2tl
bmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRsZXI+IGhhbmRsZXIp
IHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgQ29tbWFuZChsb25n
IHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkKSBm
aW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2NvbERvbWFpbkRvbWFp
bkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJn
ZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJl
c3VsdAppbmRleCBjYzA4YWU5OWMyZDhmYzQxMWUyYjllNWI1M2MzMWI5NTIxYzU0ZWU2Li5kMzBm
MjRiNWMzNTI4OTY5OTQ1Y2U3ZmUxNzhiMDIxMmI1ZTQ4ZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9k
b21haW4tdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUuanNvbi1yZXN1
bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dl
bmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2Fi
bGVUeXBlLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcgQEAgcHJvdGVjdGVkOgogY2xhc3Mg
RG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2Vu
ZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RG9tYWluQmFja2VuZERpc3Bh
dGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERvbWFpbkJhY2tlbmREaXNwYXRjaGVy
SGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNP
Tjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJpdmF0ZToKICAgICB2b2lkIENvbW1hbmQo
bG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYg
RU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCkBAIC01MTYsNyArNTE2LDcg
QEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVi
bGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVz
dFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4gaGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFu
ZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkKSBvdmVycmlk
ZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdh
dGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGVzLmpzb24tcmVzdWx0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGVzLmpzb24tcmVzdWx0CmluZGV4IGFlOGYwOTNlNzRh
YmYyMDkwYTBlZGY4NzZhMDVhMjhlNmYzOTE1M2QuLmY4OTQ4YTJmNzQ3MDEyNWJjMmQ1MzNlOWVk
NTQzNDg0OWQ4MmRiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29u
LXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQKQEAgLTE1
Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBEb21haW5CYWNrZW5kRGlzcGF0Y2hlciBm
aW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNw
YXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNw
YXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmpl
Y3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJ
ZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmlu
YWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpT
T046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1MTYsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9t
YWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlRG9tYWluQmFja2Vu
ZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0
b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5k
bGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lk
IENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgQ29tbWFuZChsb25n
IHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9j
b2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9kb21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3VsdAppbmRleCAzYjkw
N2M3NDVmZWRmOTZiOTQ3ODZiZDk1NWZiODMyZTI3ZmY2NTQ4Li4yYzA3Y2IxMzQ3ZjNjNjJjNDll
ZWE0N2Y0NWZhNzE5ZGU1NGRiMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW5zLXdpdGgtdmFy
eWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12
YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQKQEAgLTE4Nyw3ICsxODcsNyBAQCBwcm90
ZWN0ZWQ6CiBjbGFzcyBOZXR3b3JrMUJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFN1
cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5l
dHdvcmsxQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIE5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJl
cXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3Ry
aW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRl
OgogICAgIHZvaWQgbG9hZFJlc291cmNlMShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcml2YXRlOgogY2xhc3MgTmV0d29yazNCYWNr
ZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hl
ciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxOZXR3b3JrM0JhY2tlbmREaXNwYXRjaGVyPiBj
cmVhdGUoQmFja2VuZERpc3BhdGNoZXImLCBOZXR3b3JrM0JhY2tlbmREaXNwYXRjaGVySGFuZGxl
ciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0
aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlz
cGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2Jq
ZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJpdmF0ZToKICAgICB2b2lkIGxvYWRSZXNvdXJjZTEo
bG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAgICAg
dm9pZCBsb2FkUmVzb3VyY2UyKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IHBhcmFtZXRlcnMpOwpAQCAtNzQ1LDcgKzc0NSw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JOZXR3
b3JrMUJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZU5ldHdvcmsxQmFj
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3Rv
ck5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sTmV0d29yazFEb21haW5I
YW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGxvYWRSZXNvdXJjZTEobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgbG9h
ZFJlc291cmNlMShsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0
cjxpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsK
QEAgLTc1NCwxMyArNzU0LDEzIEBAIGNsYXNzIE9iakNJbnNwZWN0b3JOZXR3b3JrM0JhY2tlbmRE
aXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZU5ldHdvcmszQmFjCiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFj
a2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sTmV0d29yazNEb21haW5IYW5kbGVyPiBoYW5k
bGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZTEobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVz
b3VyY2UyKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
c291cmNlMyhsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRS
ZXNvdXJjZTQobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVzb3VyY2U1KGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9h
ZFJlc291cmNlNihsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxv
YWRSZXNvdXJjZTcobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZFJlc291
cmNlMShsb25nIHJlcXVlc3RJZCkgZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2UyKGxvbmcg
cmVxdWVzdElkKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZTMobG9uZyByZXF1ZXN0SWQp
IGZpbmFsOworICAgIHZvaWQgbG9hZFJlc291cmNlNChsb25nIHJlcXVlc3RJZCkgZmluYWw7Cisg
ICAgdm9pZCBsb2FkUmVzb3VyY2U1KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAgICB2b2lkIGxv
YWRSZXNvdXJjZTYobG9uZyByZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9hZFJlc291cmNl
Nyhsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxUZXN0
UHJvdG9jb2xOZXR3b3JrM0RvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmlj
L2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZW51bS12YWx1ZXMuanNv
bi1yZXN1bHQKaW5kZXggNTk3NTdiYjcwYjA1YjFmZDkyNjhiMjhkZDFkZDMxMTdiZDViNDJjZi4u
ZjA2ZmViYjc4ZDcxZWRhYjJmNWFiNjlmZTg2ZmExNTRhOGMxNWM0YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvZW51bS12YWx1ZXMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZW51bS12YWx1ZXMuanNvbi1y
ZXN1bHQKQEAgLTE3MCw3ICsxNzAsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBDb21tYW5kRG9tYWlu
QmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3Bh
dGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q29tbWFuZERvbWFpbkJhY2tlbmREaXNw
YXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3BhdGNoZXImLCBDb21tYW5kRG9tYWluQmFja2VuZERp
c3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29u
c3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2Qs
IFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQg
Y29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCkBAIC02MzMsNyArNjMzLDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckNvbW1hbmRE
b21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVDb21tYW4KICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yQ29t
bWFuZERvbWFpbkJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbENvbW1hbmREb21haW5E
b21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmly
dHVhbCB2b2lkIGNvbW1hbmRXaXRoRW51bVJldHVyblZhbHVlKGxvbmcgcmVxdWVzdElkKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNvbW1hbmRXaXRoRW51bVJldHVyblZhbHVlKGxvbmcgcmVxdWVzdElk
KSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2NvbENvbW1hbmRE
b21haW5Eb21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9l
dmVudC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3Vs
dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmlj
L2V4cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBl
Lmpzb24tcmVzdWx0CmluZGV4IDM5NDRmNDhmYWIzNTBiN2MxZmE1ZmY5ZWQzMGViZjA5YzgxMjc1
M2MuLmQ4OWE5N2ZmNTVkZmVjNDM5N2UwZWI3NGFiNWRmZDFlNDQwZTc0ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4
cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpz
b24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRl
YnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcgQEAgcHJvdGVjdGVkOgog
Y2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFs
QmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RG9tYWluQmFja2Vu
ZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERvbWFpbkJhY2tlbmREaXNw
YXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBS
ZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJpdmF0ZToKICAgICB2b2lkIENv
bW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCkBAIC01MTYsNyAr
NTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFs
IDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIo
aWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4gaGFuZGxlcikgeyBtX2RlbGVnYXRl
ID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkKSBv
dmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIGZpbmFsOwogcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4+IG1f
ZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZl
YXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZl
YXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0CmluZGV4IDFiZGE3MTI1Mjk1ZDc5YTNlNWMxOGUwOTY0
NWI2OWNhODU5MWM4MTYuLjA5NDZiNTNlM2Y4MTc3ZDc2NjY2NTgxN2ZjOWIyNDI1YjQ1OThmYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5q
c29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFy
ZHMuanNvbi1yZXN1bHQKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBOZXR3
b3JrMUJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmRE
aXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmsxQmFja2VuZERpc3Bh
dGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIE5ldHdvcmsxQmFja2VuZERpc3BhdGNo
ZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3Ry
aW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxK
U09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgbG9hZFJl
c291cmNlKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMp
OwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQpAQCAtNjE0LDcg
KzYxNCw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JOZXR3b3JrMUJhY2tlbmREaXNwYXRjaGVyIGZp
bmFsIDogcHVibGljIEFsdGVybmF0ZU5ldHdvcmsxQmFjCiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3Rvck5ldHdvcmsxQmFja2VuZERpc3BhdGNo
ZXIoaWQ8VGVzdFByb3RvY29sTmV0d29yazFEb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVs
ZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJl
cXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQp
IGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sTmV0d29yazFE
b21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25z
LXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1w
bGF0Zm9ybS5qc29uLXJlc3VsdAppbmRleCA5YjNjZWU2YmU2NWVhNTFmYWE2MzRiNzJhY2I4NzE1
NDkwNjVmZTMwLi5jNmU2OGY0YTlhZWRkM2Q4NDM2NzBhMjJmMGNiODM1MzE3ZWY2NDA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFj
L2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0
ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsx
NTMsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBOZXR3b3JrQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8TmV0d29ya0JhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3BhdGNo
ZXImLCBOZXR3b3JrQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRj
aChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+
JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwg
Y29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7
CiBwcml2YXRlOgogICAgIHZvaWQgbG9hZFJlc291cmNlKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8
SlNPTjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJO
QVRFX0RJU1BBVENIRVJTKQpAQCAtNTg5LDcgKzU4OSw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JO
ZXR3b3JrQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29ya0Jh
Y2tlCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3Bl
Y3Rvck5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrRG9tYWlu
SGFuZGxlcj4gaGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwg
dm9pZCBsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgbG9h
ZFJlc291cmNlKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbE5ldHdvcmtEb21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0ZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCmluZGV4IDE5ODBlZWFmY2I5
NzFjYTM5NmI2YTU5NWYwM2RiNmE5NWQ3YjdiMzMuLmQ0M2UwOGNjN2MyYzMzNmVjMjM1MzlhNzJk
ZmY5NmNlMGZiMGM5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
V29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3Qu
Y3BwCkBAIC05NSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRmluaXNoZWRDb21w
aWxpbmcgeyBmYWxzZSB9OwogfTsKIAotY2xhc3MgSklUV29ya2xpc3Q6OlRocmVhZCA6IHB1Ymxp
YyBBdXRvbWF0aWNUaHJlYWQgeworY2xhc3MgSklUV29ya2xpc3Q6OlRocmVhZCBmaW5hbCA6IHB1
YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25zdCBBYnN0cmFj
dExvY2tlciYgbG9ja2VyLCBKSVRXb3JrbGlzdCYgd29ya2xpc3QpCiAgICAgICAgIDogQXV0b21h
dGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5tX2NvbmRpdGlvbi5j
b3B5UmVmKCkpCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgICAgICBtX3dvcmtsaXN0
Lm1fbnVtQXZhaWxhYmxlVGhyZWFkcysrOwogICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIG5hbWUo
KSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBmaW5hbAogICAg
IHsKICNpZiBPUyhMSU5VWCkKICAgICAgICAgcmV0dXJuICJKSVRXb3JrZXIiOwpAQCAtMTEzLDgg
KzExMyw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KICAgICAKLXByb3RlY3RlZDoKLSAgICBQ
b2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZQorcHJpdmF0ZToK
KyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbAogICAgIHsK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVhZHMp
OwogICAgICAgICAKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVy
biBQb2xsUmVzdWx0OjpXb3JrOwogICAgIH0KICAgICAKLSAgICBXb3JrUmVzdWx0IHdvcmsoKSBv
dmVycmlkZQorICAgIFdvcmtSZXN1bHQgd29yaygpIGZpbmFsCiAgICAgewogICAgICAgICBSRUxF
QVNFX0FTU0VSVCghbV9teVBsYW5zLmlzRW1wdHkoKSk7CiAgICAgICAgIApAQCAtMTQ2LDggKzE0
Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVh
ZHMrKzsKICAgICAgICAgcmV0dXJuIFdvcmtSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KLSAgICAK
LXByaXZhdGU6CisKICAgICBKSVRXb3JrbGlzdCYgbV93b3JrbGlzdDsKICAgICBQbGFucyBtX215
UGxhbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDQzZDEzMWM4
MzU4Y2U5ZTMxOWJkMzllOTc1ZDkxZTBhZTNmNzBkMjkuLmNhNGUwZTAyOGVkNTAxOGY2MjdiZTVm
NjNiZGRmYmIxMDViYTc3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAg
LTMwMSw4ICszMDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTnVsbE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGlzTnVsbCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgSlNWYWx1ZSBqc1ZhbHVl
KEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4ganNOdWxsKCk7IH0K
KyAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIEpTVmFsdWUganNWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGpzTnVsbCgpOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIEJvb2xlYW5Ob2RlIGZpbmFsIDog
cHVibGljIENvbnN0YW50Tm9kZSB7CkBAIC0zMTEsOCArMzExLDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIGJvb2wgdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9CiAKICAgICBwcml2YXRl
OgotICAgICAgICBib29sIGlzQm9vbGVhbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KLSAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4ganNCb29sZWFuKG1fdmFsdWUpOyB9CisgICAgICAgIGJvb2wgaXNCb29s
ZWFuKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBKU1ZhbHVlIGpzVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBmaW5hbCB7IHJldHVybiBqc0Jvb2xlYW4obV92
YWx1ZSk7IH0KIAogICAgICAgICBib29sIG1fdmFsdWU7CiAgICAgfTsKQEAgLTM1Miw4ICszNTIs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgdmFsdWUoKSB7
IHJldHVybiBtX3ZhbHVlOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGlzU3RyaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBKU1ZhbHVlIGpzVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBpc1N0
cmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgSlNWYWx1ZSBqc1Zh
bHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciYgbV92YWx1ZTsKICAgICB9OwpAQCAtNTQ5LDcgKzU0OSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyKiByYXcoKSB7IHJldHVybiBtX3JhdzsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBtX2Nvb2tlZDsKICAg
ICAgICAgY29uc3QgSWRlbnRpZmllciogbV9yYXc7CkBAIC01NzcsNyArNTc3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4
cHJlc3Npb25zKCkgY29uc3QgeyByZXR1cm4gbV90ZW1wbGF0ZUV4cHJlc3Npb25zOyB9CiAKICAg
ICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogCiAgICAgICAgIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIG1fdGVtcGxhdGVT
dHJpbmdzOwogICAgICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogbV90ZW1wbGF0ZUV4
cHJlc3Npb25zOwpAQCAtNTkwLDcgKzU5MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBU
ZW1wbGF0ZUxpdGVyYWxOb2RlKiB0ZW1wbGF0ZUxpdGVyYWwoKSBjb25zdCB7IHJldHVybiBtX3Rl
bXBsYXRlTGl0ZXJhbDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9k
ZSogbV90YWc7CiAgICAgICAgIFRlbXBsYXRlTGl0ZXJhbE5vZGUqIG1fdGVtcGxhdGVMaXRlcmFs
OwpAQCAtNjAxLDcgKzYwMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdFeHBOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4sIGNvbnN0
IElkZW50aWZpZXImIGZsYWdzKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciYgbV9wYXR0ZXJuOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2ZsYWdzOwpA
QCAtNjEyLDcgKzYxMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBUaGlzTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgfTsKIAogICAgIGNsYXNz
IFN1cGVyTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBAIC02MjAsOCArNjIw
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN1cGVyTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNTdXBlck5vZGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7
CisgICAgICAgIGJvb2wgaXNTdXBlck5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgfTsKIAogICAgIGNsYXNzIEltcG9ydE5v
ZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNz
aW9uRGF0YSB7CkBAIC02MjksOCArNjI5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIElt
cG9ydE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNJbXBvcnROb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBib29s
IGlzSW1wb3J0Tm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07
CkBAIC02NDksNyArNjQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBib29sIGlzTmV3VGFyZ2V0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
IH07CiAKICAgICBjbGFzcyBJbXBvcnRNZXRhTm9kZSBmaW5hbCA6IHB1YmxpYyBNZXRhUHJvcGVy
dHlOb2RlIHsKQEAgLTY1OCw3ICs2NTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIGJvb2wgaXNJbXBvcnRNZXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAgLTY3MCwx
MSArNjcwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudDsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAot
ICAgICAgICBib29sIGlzUHVyZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlOwot
ICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgICAgIGJvb2wgaXNSZXNvbHZlTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgYm9vbCBpc1B1cmUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBmaW5h
bDsKKyAgICAgICAgYm9vbCBpc0xvY2F0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQorICAgICAgICBib29sIGlzUmVzb2x2ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICAgICAgSlNUZXh0
UG9zaXRpb24gbV9zdGFydDsKQEAgLTcwMSwxNSArNzAxLDE1IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBBcnJheU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRWxlbWVudE5vZGUqKTsK
ICAgICAgICAgQXJyYXlOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCBlbGlzaW9uLCBF
bGVtZW50Tm9kZSopOwogCi0gICAgICAgIGJvb2wgaXNBcnJheUxpdGVyYWwoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNBcnJheUxpdGVyYWwoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgQXJndW1lbnRMaXN0Tm9kZSogdG9B
cmd1bWVudExpc3QoUGFyc2VyQXJlbmEmLCBpbnQsIGludCkgY29uc3Q7CiAKICAgICAgICAgRWxl
bWVudE5vZGUqIGVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9CiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAotICAgICAgICBib29sIGlzU2ltcGxlQXJyYXkoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICAgICAgYm9vbCBpc1NpbXBsZUFycmF5KCkgY29uc3QgZmluYWw7CiAKICAgICAgICAgRWxlbWVu
dE5vZGUqIG1fZWxlbWVudDsKICAgICAgICAgaW50IG1fZWxpc2lvbjsKQEAgLTc3Nyw3ICs3Nzcs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCosIFJlZ2lzdGVySUQqLCBWZWN0b3I8SlNUZXh0
UG9zaXRpb24+Kik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0ID0gbnVs
bHB0cikgb3ZlcnJpZGUKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCA9IG51bGxwdHIpIGZpbmFsCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBlbWl0Qnl0ZWNvZGUoZ2VuZXJhdG9yLCBkc3Qs
IG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICB9CkBAIC03OTIsMTAgKzc5MiwxMCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIE9iamVjdExpdGVyYWxOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYpOwogICAgICAgICBPYmplY3RMaXRlcmFsTm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBQcm9wZXJ0eUxpc3ROb2RlKik7Ci0gICAgICAgIGJvb2wgaXNPYmplY3RM
aXRlcmFsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlz
T2JqZWN0TGl0ZXJhbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZSogbV9saXN0OwogICAgIH07CkBAIC04MTAs
MTAgKzgxMCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzdWJzY3JpcHRIYXNB
c3NpZ25tZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHM7IH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0xvY2F0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBib29sIGlzQnJhY2tldEFjY2Vzc29yTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0xvY2F0aW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzQnJhY2tldEFj
Y2Vzc29yTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7
CkBAIC04MjgsMTAgKzgyOCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnQ7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0xvY2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgICAgICBib29sIGlzRG90QWNjZXNzb3JOb2RlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNEb3RBY2Nlc3Nvck5vZGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFz
ZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTg0NCw5ICs4NDQsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb24oKSBj
b25zdCB7IHJldHVybiBtX2V4cHJlc3Npb247IH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAg
ICAgICAgCi0gICAgICAgIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzU3ByZWFkRXhwcmVzc2lvbigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcmVz
c2lvbjsKICAgICB9OwogICAgIApAQCAtODU3LDcgKzg1Nyw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhw
cmVzc2lvbjsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgICAgICAKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fZXhwcmVzc2lvbjsKICAgICB9OwpAQCAtODcxLDcgKzg3MSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKICAgICB9OwogCiAgICAgY2xhc3MgQXJndW1lbnRzTm9kZSBmaW5hbCA6IHB1YmxpYyBQ
YXJzZXJBcmVuYUZyZWVhYmxlIHsKQEAgLTg4OCw3ICs4ODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgTmV3RXhwck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5v
ZGUqLCBBcmd1bWVudHNOb2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJnczsKQEAgLTg5OSw5
ICs4OTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRXZhbEZ1bmN0aW9uQ2FsbE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNG
dW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJv
b2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAg
ICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwogICAgIH07CkBAIC05MTEsOSArOTExLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEZ1bmN0aW9uQ2FsbFZhbHVlTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIEFyZ3VtZW50c05vZGUqLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29s
IGlzRnVuY3Rpb25DYWxsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAg
ICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1f
YXJnczsKQEAgLTkyNCw5ICs5MjQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rp
b25DYWxsUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmll
ciYsIEFyZ3VtZW50c05vZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIm
IG1faWRlbnQ7CiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJnczsKQEAgLTkzNyw5ICs5Mzcs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25DYWxsQnJhY2tldE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2Rl
KiBzdWJzY3JpcHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIEFyZ3VtZW50c05vZGUq
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAotICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKQEAgLTk3MSw3ICs5NzEsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBCeXRlY29kZUludHJpbnNpY05vZGUoVHlwZSwgY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6RW50cnksIGNvbnN0IElkZW50
aWZpZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKIAotICAgICAgICBib29sIGlzQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzQnl0ZWNvZGVJbnRyaW5zaWNO
b2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgICAgICBCeXRlY29kZUludHJpbnNpY1JlZ2lz
dHJ5OjpFbnRyeSBlbnRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZW50cnk7IH0KQEAgLTk4Myw5ICs5
ODMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICN1bmRlZiBKU0NfREVDTEFSRV9CWVRFQ09ERV9JTlRS
SU5TSUNfRlVOQ1RJT05TCiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNGdW5jdGlv
bkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RnVuY3Rpb247
IH0KKyAgICAgICAgYm9vbCBpc0Z1bmN0aW9uQ2FsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
dHlwZSA9PSBUeXBlOjpGdW5jdGlvbjsgfQogCiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnk6OkVudHJ5IG1fZW50cnk7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7
CkBAIC05OTgsNyArOTk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENhbGxGdW5jdGlv
bkNhbGxEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNl
LCBjb25zdCBJZGVudGlmaWVyJiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCwgc2l6ZV90IGRpc3RhbmNlVG9Jbm5lcm1vc3RDYWxsT3JBcHBseSk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIGZpbmFsOwogICAgICAgICBzaXplX3QgbV9kaXN0YW5jZVRvSW5uZXJtb3N0Q2Fs
bE9yQXBwbHk7CiAgICAgfTsKICAgICAKQEAgLTEwMDcsNyArMTAwNyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBBcmd1bWVudHNO
b2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kLCBzaXplX3QgZGlzdGFu
Y2VUb0lubmVybW9zdENhbGxPckFwcGx5KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIHNpemVf
dCBtX2Rpc3RhbmNlVG9Jbm5lcm1vc3RDYWxsT3JBcHBseTsKICAgICB9OwogCkBAIC0xMDE2LDcg
KzEwMTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRGVsZXRlUmVzb2x2ZU5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGJvb2wgaXNE
ZWxldGVOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC0xMDI4LDcgKzEw
MjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRGVsZXRlQnJhY2tldE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBz
dWJzY3JpcHQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IGZpbmFsOwogCiAgICAgICAgIGJvb2wgaXNEZWxldGVOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCkBAIC0xMDQxLDcgKzEwNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgRGVsZXRlRG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSog
YmFzZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGJvb2wgaXNEZWxldGVOb2RlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC0xMDU0LDcgKzEwNTQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgRGVsZXRlVmFsdWVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IEV4cHJlc3Npb25Ob2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGJvb2wgaXNEZWxl
dGVOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC0xMDY2LDcgKzEwNjYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVm9pZE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTEwODgsNyArMTA4OCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBUeXBlT2ZWYWx1ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7
CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
ZXhwcjsKICAgICB9OwpAQCAtMTExMiwxMCArMTExMiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgUG9zdGZpeE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUq
LCBPcGVyYXRvciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRSZXNvbHZlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBvdmVycmlkZTsKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJyYWNrZXQoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0RG90KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdFJlc29sdmUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0QnJhY2tldChCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRE
b3QoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
IH07CiAKICAgICBjbGFzcyBVbmFyeU9wTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBA
IC0xMTM5LDkgKzExMzksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVW5hcnlQbHVzTm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAotICAgICAgICBFeHByZXNzaW9uTm9kZSogc3RyaXBVbmFyeVBsdXMoKSBvdmVycmlkZSB7
IHJldHVybiBleHByKCk7IH0KKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHN0cmlwVW5hcnlQbHVz
KCkgZmluYWwgeyByZXR1cm4gZXhwcigpOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIE5lZ2F0ZU5v
ZGUgZmluYWwgOiBwdWJsaWMgVW5hcnlPcE5vZGUgewpAQCAtMTE1OCw3ICsxMTU4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICBMb2dpY2FsTm90Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwg
TGFiZWwmIHRydWVUYXJnZXQsIExhYmVsJiBmYWxzZVRhcmdldCwgRmFsbFRocm91Z2hNb2RlKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBMYWJlbCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBG
YWxsVGhyb3VnaE1vZGUpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBCaW5hcnlPcE5vZGUg
OiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewpAQCAtMTIxNywxNCArMTIxNywxNCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFkZE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKLSAgICAgICAgYm9vbCBpc0FkZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0FkZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KICAgICB9OwogCiAgICAgY2xhc3MgU3ViTm9kZSBmaW5hbCA6IHB1Ymxp
YyBCaW5hcnlPcE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgU3ViTm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHBy
MiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKIAotICAgICAgICBib29sIGlzU3VidHJhY3Qo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNTdWJ0cmFj
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB9OwogCiAgICAgY2xhc3MgTGVm
dFNoaWZ0Tm9kZSBmaW5hbCA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewpAQCAtMTI3Niw3ICsxMjc2
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEluc3RhbmNlT2ZOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAg
ICAgY2xhc3MgSW5Ob2RlIGZpbmFsIDogcHVibGljIFRocm93YWJsZUJpbmFyeU9wTm9kZSB7CkBA
IC0xMjg0LDcgKzEyODQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW5Ob2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9
OwogCiAgICAgY2xhc3MgRXF1YWxOb2RlIGZpbmFsIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CkBA
IC0xMjkyLDcgKzEyOTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRXF1YWxOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAg
ICB9OwogCiAgICAgY2xhc3MgTm90RXF1YWxOb2RlIGZpbmFsIDogcHVibGljIEJpbmFyeU9wTm9k
ZSB7CkBAIC0xMzA1LDcgKzEzMDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RyaWN0
RXF1YWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwg
RXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3MgTm90U3RyaWN0RXF1YWxOb2RlIGZpbmFsIDog
cHVibGljIEJpbmFyeU9wTm9kZSB7CkBAIC0xMzM0LDggKzEzMzQsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgTG9naWNhbE9wTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgTG9naWNhbE9wZXJhdG9yKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIHZv
aWQgZW1pdEJ5dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwgTGFi
ZWwmIHRydWVUYXJnZXQsIExhYmVsJiBmYWxzZVRhcmdldCwgRmFsbFRocm91Z2hNb2RlKSBvdmVy
cmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNv
ZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJlbCYgdHJ1ZVRhcmdl
dCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIGZpbmFsOwogCiAgICAgICAg
IExvZ2ljYWxPcGVyYXRvciBtX29wZXJhdG9yOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9l
eHByMTsKQEAgLTEzNzYsNyArMTM3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDb25k
aXRpb25hbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGxvZ2lj
YWwsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fbG9naWNhbDsKICAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fZXhwcjE7CkBAIC0xMzg4LDcgKzEzODgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgUmVhZE1vZGlmeVJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqICByaWdodCwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lk
ZW50OwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKQEAgLTE0MDEsNyArMTQwMSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2
ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9y
LCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAg
ICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBt
X3JpZ2h0OwpAQCAtMTQxMiwxMSArMTQxMiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFz
cyBBc3NpZ25SZXNvbHZlTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGlj
IFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnblJl
c29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIEFzc2lnbm1lbnRDb250ZXh0KTsKLSAgICAgICAgYm9vbCBpc0Fz
c2lnblJlc29sdmVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAg
ICBib29sIGlzQXNzaWduUmVzb2x2ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwor
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1f
aWRlbnQ7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OwpAQCAtMTQyOCw3ICsxNDI4
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlYWRNb2RpZnlCcmFja2V0Tm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUq
IHN1YnNjcmlwdCwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3Jp
cHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7
CkBAIC0xNDQzLDcgKzE0NDMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU2hvcnRDaXJj
dWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKQEAgLTE0NTgsNyArMTQ1OCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBBc3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhw
cmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJp
Z2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKQEAgLTE0NzIsNyArMTQ3Miw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBBc3NpZ25Eb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvbk5v
ZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBtX2Jhc2U7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CkBAIC0xNDg1
LDcgKzE0ODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVhZE1vZGlmeURvdE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50
aWZpZXImLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNz
aWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIGNvbnN0
IElkZW50aWZpZXImIG1faWRlbnQ7CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRv
ciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1f
aWRlbnQ7CkBAIC0xNTEzLDcgKzE1MTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQXNz
aWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAgICAgCiAgICAgY2xh
c3MgQ29tbWFOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAgLTE1MjQsOCAr
MTUyNCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDb21tYU5vZGUqIG5leHQoKSB7IHJl
dHVybiBtX25leHQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNDb21tYU5vZGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIGJvb2wgaXNDb21tYU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fZXhwcjsKICAgICAgICAgQ29tbWFOb2RlKiBtX25leHQgeyBudWxscHRyIH07CkBAIC0x
NTYwLDEyICsxNTYwLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdGF0ZW1lbnROb2Rl
KiBsYXN0U3RhdGVtZW50KCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGhhc0NvbXBsZXRpb25W
YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICBib29sIGhhc0Vhcmx5QnJlYWtPckNvbnRp
bnVlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkg
Y29uc3QgZmluYWw7CisgICAgICAgIGJvb2wgaGFzRWFybHlCcmVha09yQ29udGludWUoKSBjb25z
dCBmaW5hbDsKIAotICAgICAgICBib29sIGlzQmxvY2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCbG9jaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgICAgICBTb3VyY2VFbGVtZW50cyogbV9zdGF0ZW1lbnRzOwogICAgIH07CkBA
IC0xNTc1LDIxICsxNTc1LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFbXB0eVN0YXRl
bWVudE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJik7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGhhc0Nv
bXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAg
IGJvb2wgaXNFbXB0eVN0YXRlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
KyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQorICAgICAgICBib29sIGlzRW1wdHlTdGF0ZW1lbnQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgfTsKICAgICAKICAgICBjbGFzcyBEZWJ1Z2dlclN0YXRlbWVudE5v
ZGUgZmluYWwgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBE
ZWJ1Z2dlclN0YXRlbWVudE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJik7CiAKLSAgICAgICAg
Ym9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQotICAgICAgICBib29sIGlzRGVidWdnZXJTdGF0ZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCBpc0RlYnVnZ2VyU3RhdGVtZW50KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAg
ICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xh
c3MgRXhwclN0YXRlbWVudE5vZGUgZmluYWwgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7CkBAIC0x
NTk5LDkgKzE1OTksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IGV4cHIoKSBjb25zdCB7IHJldHVybiBtX2V4cHI7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IGJvb2wgaXNFeHByU3RhdGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgICAgICBib29sIGlzRXhwclN0YXRlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xNjEwLDkgKzE2MTAsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIERlY2xhcmF0aW9uU3RhdGVtZW50
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9v
bCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQor
ICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtMTYy
Miw3ICsxNjIyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5VmFyRXhwcmVzc2lv
bihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJik7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE2
MzIsNyArMTYzMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFbXB0eUxldEV4cHJlc3Np
b24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwogICAgIH07CkBAIC0x
NjQyLDcgKzE2NDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSWZFbHNlTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogY29uZGl0aW9uLCBTdGF0ZW1lbnRO
b2RlKiBpZkJsb2NrLCBTdGF0ZW1lbnROb2RlKiBlbHNlQmxvY2spOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIGJvb2wg
dHJ5Rm9sZEJyZWFrQW5kQ29udGludWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBTdGF0ZW1lbnROb2Rl
KiBpZkJsb2NrLAogICAgICAgICAgICAgTGFiZWwqJiB0cnVlVGFyZ2V0LCBGYWxsVGhyb3VnaE1v
ZGUmKTsKIApAQCAtMTY1Niw3ICsxNjU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIERv
V2hpbGVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFN0YXRlbWVudE5vZGUqLCBFeHByZXNz
aW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAg
ICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgZmluYWw7CiAKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV9zdGF0ZW1lbnQ7CiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CkBAIC0xNjY3LDcgKzE2NjcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgV2hpbGVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJl
c3Npb25Ob2RlKiwgU3RhdGVtZW50Tm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fZXhwcjsKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV9zdGF0ZW1lbnQ7CkBAIC0xNjc5LDcg
KzE2NzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRm9yTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwg
RXhwcmVzc2lvbk5vZGUqIGV4cHIzLCBTdGF0ZW1lbnROb2RlKiwgVmFyaWFibGVFbnZpcm9ubWVu
dCYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjE7CiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2V4cHIyOwpAQCAtMTcxMiwxOCArMTcxMiwxOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgUmVnaXN0ZXJJRCogdHJ5R2V0Qm91bmRMb2NhbChCeXRlY29kZUdlbmVyYXRv
ciYpOwogICAgICAgICB2b2lkIGVtaXRMb29wSGVhZGVyKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogcHJvcGVydHlOYW1lKTsKIAotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBmaW5hbDsKICAgICB9OwogICAgIAogICAgIGNsYXNzIEZvck9mTm9kZSBmaW5hbCA6IHB1
YmxpYyBFbnVtZXJhdGlvbk5vZGUgewogICAgICAgICBKU0NfTUFLRV9QQVJTRVJfQVJFTkFfREVM
RVRBQkxFX0FMTE9DQVRFRChGb3JPZk5vZGUpOwogICAgIHB1YmxpYzoKICAgICAgICAgRm9yT2ZO
b2RlKGJvb2wsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgRXhwcmVz
c2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKiwgVmFyaWFibGVFbnZpcm9ubWVudCYpOwotICAgICAg
ICBib29sIGlzRm9yT2ZOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAg
ICAgICBib29sIGlzRm9yT2ZOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAg
ICAgICBib29sIGlzRm9yQXdhaXQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9yQXdhaXQ7IH0KIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwog
CiAgICAgICAgIGNvbnN0IGJvb2wgbV9pc0ZvckF3YWl0OwogICAgIH07CkBAIC0xNzM0LDkgKzE3
MzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTGFiZWwqIHRyaXZpYWxUYXJnZXQoQnl0
ZWNvZGVHZW5lcmF0b3ImKTsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBo
YXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotICAg
ICAgICBib29sIGlzQ29udGludWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGlzQ29udGludWUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAg
ICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwogICAgIH07CkBAIC0xNzQ3LDkgKzE3NDcsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTGFiZWwqIHRyaXZpYWxUYXJnZXQoQnl0ZWNvZGVH
ZW5lcmF0b3ImKTsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBoYXNDb21w
bGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICBi
b29sIGlzQnJlYWsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZv
aWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGlzQnJlYWsoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX2lkZW50OwogICAgIH07CkBAIC0xNzYxLDkgKzE3NjEsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHZhbHVlKCkgeyByZXR1cm4gbV92YWx1ZTsg
fQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKLSAgICAgICAgYm9vbCBpc1JldHVybk5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNSZXR1cm5Ob2RlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3ZhbHVlOwogICAgIH07CkBA
IC0xNzczLDcgKzE3NzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV2l0aE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKiwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCB1aW50MzJfdCBleHByZXNzaW9uTGVuZ3RoKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwog
CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IG1fc3RhdGVtZW50OwpAQCAtMTc4NSwxMSArMTc4NSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIExhYmVsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBTdGF0ZW1lbnROb2RlKik7CiAKLSAgICAgICAgYm9vbCBpc0xh
YmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzTGFi
ZWwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc3Rh
dGVtZW50LT5oYXNDb21wbGV0aW9uVmFsdWUoKTsgfQotICAgICAgICB2b2lkIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Cisg
ICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9z
dGF0ZW1lbnQtPmhhc0NvbXBsZXRpb25WYWx1ZSgpOyB9CisgICAgICAgIHZvaWQgZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAog
ICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX25hbWU7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IG1fc3RhdGVtZW50OwpAQCAtMTgwMCw3ICsxODAwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIFRocm93Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7
CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtMTgxMSw3ICsx
ODExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRyeU5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgU3RhdGVtZW50Tm9kZSogdHJ5QmxvY2ssIERlc3RydWN0dXJpbmdQYXR0ZXJuTm9k
ZSogY2F0Y2hQYXR0ZXJuLCBTdGF0ZW1lbnROb2RlKiBjYXRjaEJsb2NrLCBWYXJpYWJsZUVudmly
b25tZW50JiBjYXRjaEVudmlyb25tZW50LCBTdGF0ZW1lbnROb2RlKiBmaW5hbGx5QmxvY2spOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7
CiAKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV90cnlCbG9jazsKICAgICAgICAgRGVzdHJ1Y3R1
cmluZ1BhdHRlcm5Ob2RlKiBtX2NhdGNoUGF0dGVybjsKQEAgLTE5MTIsNyArMTkxMiw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2NvcGVJc0Z1bmN0
aW9uID0gZmFsc2U7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAg
ICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKICAgICAgICAgdW5zaWduZWQgbV9zdGFydENvbHVtbjsKICAgICAgICAg
dW5zaWduZWQgbV9lbmRDb2x1bW47CiAgICAgfTsKQEAgLTE5MjcsNyArMTkyNyw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2NvcGVJc0Z1bmN0aW9u
ID0gZmFsc2U7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBmaW5hbDsKIAogICAgICAgICB1bnNpZ25lZCBtX2VuZENvbHVtbjsKICAgICB9OwpAQCAt
MTk0Nyw3ICsxOTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgICAgICB1
bnNpZ25lZCBtX3N0YXJ0Q29sdW1uOwogICAgICAgICB1bnNpZ25lZCBtX2VuZENvbHVtbjsKICAg
ICAgICAgUmVmPE1vZHVsZVNjb3BlRGF0YT4gbV9tb2R1bGVTY29wZURhdGE7CkBAIC0yMDA4LDgg
KzIwMDgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTW9kdWxlTmFtZU5vZGUqIG1vZHVs
ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZU5hbWU7IH0KIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBhbmFseXplTW9kdWxlKE1vZHVsZUFu
YWx5emVyJikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgdm9pZCBhbmFs
eXplTW9kdWxlKE1vZHVsZUFuYWx5emVyJikgZmluYWw7CiAKICAgICAgICAgSW1wb3J0U3BlY2lm
aWVyTGlzdE5vZGUqIG1fc3BlY2lmaWVyTGlzdDsKICAgICAgICAgTW9kdWxlTmFtZU5vZGUqIG1f
bW9kdWxlTmFtZTsKQEAgLTIwMjIsOCArMjAyMiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBNb2R1bGVOYW1lTm9kZSogbW9kdWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFt
ZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lk
IGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOworICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsK
IAogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbV9tb2R1bGVOYW1lOwogICAgIH07CkBAIC0yMDM2
LDggKzIwMzYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYg
bG9jYWxOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbE5hbWU7IH0KIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBhbmFseXplTW9kdWxlKE1vZHVs
ZUFuYWx5emVyJikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgdm9pZCBh
bmFseXplTW9kdWxlKE1vZHVsZUFuYWx5emVyJikgZmluYWw7CiAgICAgICAgIFN0YXRlbWVudE5v
ZGUqIG1fZGVjbGFyYXRpb247CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fbG9jYWxOYW1l
OwogICAgIH07CkBAIC0yMDQ5LDggKzIwNDksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Y29uc3QgU3RhdGVtZW50Tm9kZSYgZGVjbGFyYXRpb24oKSBjb25zdCB7IHJldHVybiAqbV9kZWNs
YXJhdGlvbjsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOworICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBm
aW5hbDsKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV9kZWNsYXJhdGlvbjsKICAgICB9OwogCkBA
IC0yMDg5LDggKzIwODksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTW9kdWxlTmFtZU5v
ZGUqIG1vZHVsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZU5hbWU7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBhbmFseXplTW9kdWxl
KE1vZHVsZUFuYWx5emVyJikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAg
dm9pZCBhbmFseXplTW9kdWxlKE1vZHVsZUFuYWx5emVyJikgZmluYWw7CiAgICAgICAgIEV4cG9y
dFNwZWNpZmllckxpc3ROb2RlKiBtX3NwZWNpZmllckxpc3Q7CiAgICAgICAgIE1vZHVsZU5hbWVO
b2RlKiBtX21vZHVsZU5hbWUgeyBudWxscHRyIH07CiAgICAgfTsKQEAgLTIxOTAsOSArMjE5MCw5
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1l
dGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogCi0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNGdW5jdGlvbk5vZGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlv
bk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgdm9pZCBmaW5p
c2hQYXJzaW5nKGNvbnN0IElkZW50aWZpZXImLCBGdW5jdGlvbk1vZGUpOwogICAgICAgICAKQEAg
LTIyNDQsOSArMjI0NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBcnJvd0Z1bmNFeHBy
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgRnVuY3Rpb25N
ZXRhZGF0YU5vZGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAg
ICAgIGJvb2wgaXNBcnJvd0Z1bmNFeHByTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgYm9vbCBpc0Fycm93RnVuY0V4cHJOb2RlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBNZXRob2REZWZpbml0aW9uTm9kZSBm
aW5hbCA6IHB1YmxpYyBGdW5jRXhwck5vZGUgewpAQCAtMjI1NCw3ICsyMjU0LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIE1ldGhvZERlZmluaXRpb25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBGdW5jdGlvbk1ldGFkYXRhTm9kZSosIGNvbnN0IFNv
dXJjZUNvZGUmKTsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3Mg
WWllbGRFeHByTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93
YWJsZUV4cHJlc3Npb25EYXRhIHsKQEAgLTIyNjUsNyArMjI2NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBib29sIGRlbGVnYXRlKCkgY29uc3QgeyByZXR1cm4gbV9kZWxlZ2F0ZTsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9hcmd1bWVudDsKICAg
ICAgICAgYm9vbCBtX2RlbGVnYXRlOwpAQCAtMjI3OCw3ICsyMjc4LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBhcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
YXJndW1lbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7
CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
YXJndW1lbnQ7CiAgICAgfTsKQEAgLTIyODksOSArMjI4OSw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBEZWZpbmVGaWVsZE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRl
bnRpZmllciosIEV4cHJlc3Npb25Ob2RlKiwgVHlwZSk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqIGRlc3Rp
bmF0aW9uID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZGVzdGluYXRpb24gPSBudWxscHRyKSBmaW5h
bDsKIAotICAgICAgICBib29sIGlzRGVmaW5lRmllbGROb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzRGVmaW5lRmllbGROb2RlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG1faWRlbnQ7
CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Fzc2lnbjsKQEAgLTIzMTMsOSArMjMxMyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGhhc0luc3RhbmNlRmllbGRzKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc0VsZW1lbnRzID8gbV9jbGFzc0VsZW1lbnRzLT5oYXNJbnN0YW5jZUZp
ZWxkcygpIDogZmFsc2U7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0NsYXNz
RXhwck5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wg
aXNDbGFzc0V4cHJOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAg
IFNvdXJjZUNvZGUgbV9jbGFzc1NvdXJjZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9u
YW1lOwpAQCAtMjM2MywxMCArMjM2MywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IERlc3RydWN0dXJpbmdQYXR0ZXJuTm9kZSogcGF0dGVybjsKICAgICAgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBkZWZhdWx0VmFsdWU7CiAgICAgICAgIH07Ci0gICAgICAgIHZvaWQgY29sbGVjdEJv
dW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
ICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0
IG92ZXJyaWRlOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGlyZWN0QmluZGluZyhCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqIGRzdCwgRXhwcmVzc2lvbk5vZGUqKSBvdmVycmlkZTsK
LSAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgICAgIHZvaWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+Jikg
Y29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCopIGNvbnN0IGZpbmFsOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGlyZWN0
QmluZGluZyhCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqIGRzdCwgRXhwcmVzc2lvbk5v
ZGUqKSBmaW5hbDsKKyAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qg
ZmluYWw7CiAKICAgICAgICAgVmVjdG9yPEVudHJ5PiBtX3RhcmdldFBhdHRlcm5zOwogICAgIH07
CkBAIC0yNDAwLDkgKzI0MDAsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRl
bnRpZmllcj4mKSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQg
dG9TdHJpbmcoU3RyaW5nQnVpbGRlciYpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2b2lkIGNv
bGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IGZpbmFsOwor
ICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qg
ZmluYWw7CiAgICAgICAgIHN0cnVjdCBFbnRyeSB7CiAgICAgICAgICAgICBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWU7CiAgICAgICAgICAgICBFeHByZXNzaW9uTm9kZSogcHJvcGVydHlF
eHByZXNzaW9uOwpAQCAtMjQyNSwxMSArMjQyNSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKCkgY29uc3QgeyByZXR1cm4gbV9kaXZv
dEVuZDsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3Vu
ZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50
aWZpZXI+JikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5n
KFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKICAgICAgICAgCi0gICAgICAgIGJvb2wgaXNC
aW5kaW5nTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBpc0JpbmRpbmdOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAg
IEpTVGV4dFBvc2l0aW9uIG1fZGl2b3RTdGFydDsKICAgICAgICAgSlNUZXh0UG9zaXRpb24gbV9k
aXZvdEVuZDsKQEAgLTI0NDEsMTQgKzI0NDEsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVi
bGljOgogICAgICAgICBSZXN0UGFyYW1ldGVyTm9kZShEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUq
LCB1bnNpZ25lZCBudW1QYXJhbWV0ZXJzVG9Ta2lwKTsKIAotICAgICAgICBib29sIGlzUmVzdFBh
cmFtZXRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBp
c1Jlc3RQYXJhbWV0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
dm9pZCBlbWl0KEJ5dGVjb2RlR2VuZXJhdG9yJik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2
b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IG92
ZXJyaWRlOwotICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqKSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWls
ZGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgY29sbGVjdEJvdW5kSWRlbnRpZmll
cnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgYmluZFZh
bHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IGZpbmFsOworICAgICAg
ICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBE
ZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUqIG1fcGF0dGVybjsKICAgICAgICAgdW5zaWduZWQgbV9u
dW1QYXJhbWV0ZXJzVG9Ta2lwOwpAQCAtMjQ2MywxMSArMjQ2MywxMSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKCkgY29uc3QgeyByZXR1
cm4gbV9kaXZvdEVuZDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBjb2xsZWN0Qm91
bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBvdmVycmlkZTsKLSAgICAg
ICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciYpIGNvbnN0IG92
ZXJyaWRlOworICAgICAgICB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVu
dGlmaWVyPiYpIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCB0b1N0cmlu
ZyhTdHJpbmdCdWlsZGVyJikgY29uc3QgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Fzc2lnbm1l
bnRFbGVtZW50Tm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAg
Ym9vbCBpc0Fzc2lnbm1lbnRFbGVtZW50Tm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgICAgICBKU1RleHRQb3NpdGlvbiBtX2Rpdm90U3RhcnQ7CiAgICAgICAgIEpTVGV4
dFBvc2l0aW9uIG1fZGl2b3RFbmQ7CkBAIC0yNDgwLDkgKzI0ODAsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2RlKiBiaW5kaW5ncygpIHsgcmV0dXJu
IG1fYmluZGluZ3M7IH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0Fz
c2lnbm1lbnRMb2NhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAg
ICAgYm9vbCBpc0Rlc3RydWN0dXJpbmdOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBib29sIGlzQXNzaWdu
bWVudExvY2F0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29s
IGlzRGVzdHJ1Y3R1cmluZ05vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2Rl
KiBtX2JpbmRpbmdzOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9pbml0aWFsaXplcjsKQEAg
LTI1MjMsMTIgKzI1MjMsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAg
ICBGdW5jRGVjbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYs
IEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiwgY29uc3QgU291cmNlQ29kZSYpOwogCi0gICAgICAgIGJv
b2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICAgICAgYm9vbCBpc0Z1bmNEZWNsTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGlzRnVuY0RlY2xOb2RlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICBGdW5jdGlvbk1ldGFkYXRhTm9kZSogbWV0YWRhdGEo
KSB7IHJldHVybiBtX21ldGFkYXRhOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBGdW5jdGlvbk1ldGFkYXRhTm9k
ZSogbV9tZXRhZGF0YTsKICAgICB9OwpAQCAtMjUzOCw5ICsyNTM4LDkgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIENsYXNzRGVjbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqIGNsYXNzRXhwcmVzc2lvbik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGhhc0NvbXBsZXRp
b25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wg
aGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
ICAgICBFeHByZXNzaW9uTm9kZSogbV9jbGFzc0RlY2xhcmF0aW9uOwogICAgIH07CkBAIC0yNTkz
LDcgKzI1OTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3dpdGNoTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIENhc2VCbG9ja05vZGUqLCBWYXJpYWJs
ZUVudmlyb25tZW50JiwgRnVuY3Rpb25TdGFjayYmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBtX2V4cHI7CiAgICAgICAgIENhc2VCbG9ja05vZGUqIG1fYmxvY2s7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggMzNlMzlkMWE4Nzc4
ZGIyOTgyMzU5ZWMyYTg0ZTY4YmZkOTZmNTQzNC4uYjYyZjM5MzJjMjEzMjI5OTY2OWUyZDA1Mjk5
N2Y3MjViNzYwMDNjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuaApAQCAtMTMxLDE5ICsxMzEsMTkgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNv
ZGVCbG9jazsKICAgICB9OwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIGNsYXNzIFdl
YkFzc2VtYmx5U291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgeworICAgIGNs
YXNzIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgU291cmNlUHJvdmlk
ZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyPiBjcmVhdGUoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihXVEZNb3ZlKGRhdGEpLCBz
b3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgdW5zaWdu
ZWQgaGFzaCgpIGNvbnN0IG92ZXJyaWRlCisgICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCBm
aW5hbAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gbV9zb3VyY2UuaW1wbCgpLT5oYXNo
KCk7CiAgICAgICAgIH0KIAotICAgICAgICBTdHJpbmdWaWV3IHNvdXJjZSgpIGNvbnN0IG92ZXJy
aWRlCisgICAgICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWwKICAgICAgICAgewog
ICAgICAgICAgICAgcmV0dXJuIG1fc291cmNlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0YVZpZXcuaAppbmRleCBiZDI4ZTcxZGM0NmUyOTkwNDViYjExN2NjYmI3
ZTE3NDRkMzA4OTIzLi5kYTA2YjRiYjIxNDQ2YjZlYjZlOTVmZGZiOWUyNDVmYjYxYjM1YzgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKQEAgLTMwLDIwICszMCwx
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgRGF0YVZpZXcgOiBwdWJsaWMgQXJyYXlC
dWZmZXJWaWV3IHsKLXByb3RlY3RlZDoKLSAgICBEYXRhVmlldyhSZWZQdHI8QXJyYXlCdWZmZXI+
JiYsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwotICAgIAorY2xh
c3MgRGF0YVZpZXcgZmluYWwgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKIHB1YmxpYzoKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPERhdGFWaWV3PiBjcmVhdGUoUmVmUHRyPEFy
cmF5QnVmZmVyPiYmLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAg
IHN0YXRpYyBSZWY8RGF0YVZpZXc+IGNyZWF0ZShSZWZQdHI8QXJyYXlCdWZmZXI+JiYpOwogICAg
IAotICAgIFR5cGVkQXJyYXlUeXBlIGdldFR5cGUoKSBjb25zdCBvdmVycmlkZQorICAgIFR5cGVk
QXJyYXlUeXBlIGdldFR5cGUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIFR5
cGVEYXRhVmlldzsKICAgICB9CiAKLSAgICBKU0FycmF5QnVmZmVyVmlldyogd3JhcChKU0dsb2Jh
bE9iamVjdCosIEpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGU7CisgICAgSlNBcnJheUJ1ZmZlclZp
ZXcqIHdyYXAoSlNHbG9iYWxPYmplY3QqLCBKU0dsb2JhbE9iamVjdCopIGZpbmFsOwogICAgIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgVCBnZXQodW5zaWduZWQgb2Zmc2V0LCBib29s
IGxpdHRsZUVuZGlhbiwgYm9vbCogc3RhdHVzID0gbnVsbHB0cikKQEAgLTg0LDYgKzgxLDkgQEAg
cHVibGljOgogICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxUKj4oc3RhdGljX2Nhc3Q8dWludDhf
dCo+KG1fYmFzZUFkZHJlc3MuZ2V0KGJ5dGVMZW5ndGgoKSkpICsgb2Zmc2V0KSA9CiAgICAgICAg
ICAgICBmbGlwQnl0ZXNJZkxpdHRsZUVuZGlhbih2YWx1ZSwgbGl0dGxlRW5kaWFuKTsKICAgICB9
CisKK3ByaXZhdGU6CisgICAgRGF0YVZpZXcoUmVmUHRyPEFycmF5QnVmZmVyPiYmLCB1bnNpZ25l
ZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRG91YmxlUHJl
ZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3Vi
bGVQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAppbmRleCBhY2Y1NjVkMzhkMDdlNzIwOWRhYjYyNjlm
MDgxMDBhOGI0ZjYxZDI1Li4zY2YwYjQ4MGYwZWM1ZjNmOGQ2M2JjZDZjYWZkNWEyMTY1ZmRmMTFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3VibGVQcmVkaWN0
aW9uRnV6emVyQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3Vi
bGVQcmVkaWN0aW9uRnV6emVyQWdlbnQuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBEb3VibGVQ
cmVkaWN0aW9uRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgewogcHVibGlj
OgogICAgIERvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudChWTSYpOwogCi0gICAgU3BlY3VsYXRl
ZFR5cGUgZ2V0UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3Vs
YXRlZFR5cGUpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rpb24oQ29k
ZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBlKSBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRmlsZUJhc2VkRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ZpbGVCYXNlZEZ1enplckFnZW50LmgKaW5kZXggNzVlMDMzNTcxOTEwODBjMTM3YTQ4MjMy
MzhiNTRhNzNiNGM4ZjFiNy4uNjQ5ZTMwNjAwY2NiNGFlZDg2MTk2NjQ3YWRiYjg3MmE2MTgxZTc1
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmlsZUJhc2VkRnV6
emVyQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaWxlQmFzZWRG
dXp6ZXJBZ2VudC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBGaWxlQmFzZWRGdXp6
ZXJBZ2VudChWTSYpOwogCiBwcml2YXRlOgotICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rp
b25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRlZFR5cGUg
b3JpZ2luYWwpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rpb25JbnRl
cm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRlZFR5cGUgb3JpZ2lu
YWwpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCmluZGV4IDRmODY0
ZWQwY2IxZDI3ZmZmZThhZTM2ZTJkOTQ0NmJkZGJhYmExMDcuLmNjZWU2YWFkNzgxYTYwNmI1NGMw
Yjg2ZDg5ZWY5Yzg0MjIwNThjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCkBAIC0xMTAsMTIgKzExMCwxMiBAQCBw
dWJsaWM6CiAgICAgUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5Vmlldz4gc3ViYXJyYXkoaW50IHN0
YXJ0KSBjb25zdDsKICAgICBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJheShp
bnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogICAgIAotICAgIFR5cGVkQXJyYXlUeXBlIGdldFR5
cGUoKSBjb25zdCBvdmVycmlkZQorICAgIFR5cGVkQXJyYXlUeXBlIGdldFR5cGUoKSBjb25zdCBm
aW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIEFkYXB0b3I6OnR5cGVWYWx1ZTsKICAgICB9CiAK
LSAgICBKU0FycmF5QnVmZmVyVmlldyogd3JhcChKU0dsb2JhbE9iamVjdCosIEpTR2xvYmFsT2Jq
ZWN0Kikgb3ZlcnJpZGU7CisgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHdyYXAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0dsb2JhbE9iamVjdCopIGZpbmFsOwogCiBwcml2YXRlOgogICAgIEdlbmVyaWNUeXBl
ZEFycmF5VmlldyhSZWZQdHI8QXJyYXlCdWZmZXI+JiYsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01pY3JvdGFzay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3Jv
dGFzay5jcHAKaW5kZXggM2E1M2ZjYjdlMGU4ODJkZWQ5MjVkODU1YTEyMzA3ZWRhZGMwYzU1My4u
ZjkzMzUzMWM3NDdmYzBiZmIwZWU1OWJmOWRlMWMzYmUzNDIzMTMzNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90YXNrLmNwcApAQCAtNTUsNyArNTUsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcnVuKEpTR2xvYmFsT2JqZWN0Kikg
b3ZlcnJpZGU7CisgICAgdm9pZCBydW4oSlNHbG9iYWxPYmplY3QqKSBmaW5hbDsKIAogICAgIFN0
cm9uZzxVbmtub3duPiBtX2pvYjsKICAgICBTdHJvbmc8VW5rbm93bj4gbV9hcmd1bWVudHNbbWF4
QXJndW1lbnRzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
cnJvd2luZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmgKaW5kZXgg
NzlhNmI3OTc3OGMwNDU0YTgzMGM0YmQ1MmQ3ZWQ4OWVjNTVlYjA3Ni4uN2I1MjA3NDk2ZDEyNDM3
Y2NmNjljY2JlM2YwYzhlZjg1NDBkODlkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1
enplckFnZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgTmFycm93aW5nTnVtYmVyUHJlZGlj
dGlvbkZ1enplckFnZW50IGZpbmFsIDogcHVibGljIE51bWJlclByZWRpY3Rpb25GdXp6ZXIKIHB1
YmxpYzoKICAgICBOYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQoVk0mKTsKIAot
ICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9y
aWdpbiYsIFNwZWN1bGF0ZWRUeXBlKSBvdmVycmlkZTsKKyAgICBTcGVjdWxhdGVkVHlwZSBnZXRQ
cmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkg
ZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFk
YXB0aXZlV2F0Y2hwb2ludC5oCmluZGV4IGVjYzRkMDY2NWYzMTU0MzVjOWIxNmMwYTUxMTU1NGE3
YTNiNGRhZTQuLjlmY2M5ZDIwMzVlN2M1YmI4ODZhMmYwMDUwYzlhODQxMjE5ZjRhZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3BlcnR5Q2hhbmdl
QWRhcHRpdmVXYXRjaHBvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQuaApAQCAtNDIsMTIgKzQyLDEy
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
b3ZlcnJpZGUKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAg
cmV0dXJuIG1fb3duZXItPmlzTGl2ZSgpOwogICAgIH0KIAotICAgIHZvaWQgaGFuZGxlRmlyZShW
TSYgdm0sIGNvbnN0IEZpcmVEZXRhaWwmKSBvdmVycmlkZQorICAgIHZvaWQgaGFuZGxlRmlyZShW
TSYgdm0sIGNvbnN0IEZpcmVEZXRhaWwmKSBmaW5hbAogICAgIHsKICAgICAgICAgbV93YXRjaHBv
aW50U2V0LmZpcmVBbGwodm0sIFN0cmluZ0ZpcmVEZXRhaWwoIk9iamVjdCBQcm9wZXJ0eSBpcyBj
aGFuZ2VkLiIpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9QcmVkaWN0aW9uRmlsZUNyZWF0aW5nRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oCmluZGV4
IDYxNzAyOGQ5MmM2NDE0OGNiYzEzMTIxYjgzZDc1NDY0YmQwZTIxMzkuLmEwMmFjZDZmOGQyMmMy
MTQ1NTUyMjU0ZmI5Mzk2MmE1MWQwNDE3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJB
Z2VudC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBQcmVkaWN0aW9uRmlsZUNyZWF0
aW5nRnV6emVyQWdlbnQoVk0mKTsKIAogcHJpdmF0ZToKLSAgICBTcGVjdWxhdGVkVHlwZSBnZXRQ
cmVkaWN0aW9uSW50ZXJuYWwoQ29kZUJsb2NrKiwgUHJlZGljdGlvblRhcmdldCYsIFNwZWN1bGF0
ZWRUeXBlIG9yaWdpbmFsKSBvdmVycmlkZTsKKyAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0
aW9uSW50ZXJuYWwoQ29kZUJsb2NrKiwgUHJlZGljdGlvblRhcmdldCYsIFNwZWN1bGF0ZWRUeXBl
IG9yaWdpbmFsKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZVRpbWVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlVGltZXIuaAppbmRleCA2ZTRmOWZhYjU1ZWQxOGMw
MDk0ZWVhOTdkNTFmNWU0MjJjYzBmZTcyLi4zYTRkMGYyOWFlMmQyOGNmM2U0MDRiZWZiNTQ2ZjUz
Y2QwYmJhZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9t
aXNlVGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlVGlt
ZXIuaApAQCAtMzgsMTEgKzM4LDExIEBAIGNsYXNzIEpTUHJvbWlzZTsKIGNsYXNzIFZNOwogY2xh
c3MgSlNDZWxsOwogCi1jbGFzcyBQcm9taXNlVGltZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIg
eworY2xhc3MgUHJvbWlzZVRpbWVyIGZpbmFsIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNSdW5Mb29wVGltZXI7CiAKLSAgICB2b2lkIGRvV29y
ayhWTSYpIG92ZXJyaWRlOworICAgIHZvaWQgZG9Xb3JrKFZNJikgZmluYWw7CiAKICAgICB2b2lk
IGFkZFBlbmRpbmdQcm9taXNlKFZNJiwgSlNQcm9taXNlKiwgVmVjdG9yPFN0cm9uZzxKU0NlbGw+
PiYmIGRlcGVuZGVuY2llcyk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBoYXNQZW5kaW5n
UHJvbWlzZShKU1Byb21pc2UqIHRpY2tldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SYW5kb21pemluZ0Z1enplckFnZW50LmgKaW5kZXggNmM3NGFkMDNhNjI5
N2I4YzZkMmMyOTNmZTE4YzI2ZDVhZTcwNGQ4YS4uMWRlN2JiN2Y3NWY0ZTg1OTAwZjliNmU0NDkx
YjdmNTRjZTliMmIwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmFuZG9taXppbmdGdXp6ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBSYW5k
b21pemluZ0Z1enplckFnZW50IGZpbmFsIDogcHVibGljIEZ1enplckFnZW50IHsKIHB1YmxpYzoK
ICAgICBSYW5kb21pemluZ0Z1enplckFnZW50KFZNJik7CiAKLSAgICBTcGVjdWxhdGVkVHlwZSBn
ZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxhdGVkVHlw
ZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2RlQmxvY2sq
LCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUpIGZpbmFsOwogCiBwcml2YXRlOgog
ICAgIFdlYWtSYW5kb20gbV9yYW5kb207CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ2FjaGUuaAppbmRleCA3YjEyNjNkZTFkYmU1MzdkYTQzNjUyNTZjM2QyM2ZiM2ZiYzQ0
NjZlLi44MjczN2Q4ZjljNjhkZTE4ZTg3ZjVlNTdjZWEwYTYwMjEwZTg4ODg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKQEAgLTQxLDcgKzQxLDcgQEAg
bmFtZXNwYWNlIFlhcnIgewogZW51bSBjbGFzcyBGbGFncyA6IHVpbnQ4X3Q7CiB9CiAKLWNsYXNz
IFJlZ0V4cENhY2hlIDogcHJpdmF0ZSBXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgUmVnRXhwQ2Fj
aGUgZmluYWwgOiBwcml2YXRlIFdlYWtIYW5kbGVPd25lciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAKICAgICBmcmllbmQgY2xhc3MgUmVnRXhwOwpAQCAtNTksMTIgKzU5LDExIEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBtYXhTdHJvbmdDYWNoZWFibGVQYXR0ZXJuTGVuZ3RoID0gMjU2OwogCiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbnQgbWF4U3Ryb25nQ2FjaGVhYmxlRW50cmllcyA9IDMyOwogCi0gICAg
dm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBmaW5hbDsK
IAogICAgIFJlZ0V4cCogZW5zdXJlRW1wdHlSZWdFeHBTbG93KFZNJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IDA5ZDc1MjU0YzZiMTMyOWZh
Nzk4ZDZmNzdmNWQ2MGM1ZGE0MWExZWMuLmM2MmFmY2U2ZTk2MzAyNjk4MmZhZDg5N2M2NGU1YWY4
YmFkOGU2MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNw
cApAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgSGFzaFNldDxTdHJ1Y3R1cmUqPiYgbGl2ZVN0cnVj
dHVyZVNldCA9ICoobmV3IEhhc2hTZXQ8U3RydWN0dXJlKj4pOwogI2VuZGlmCiAKIGNsYXNzIFNp
bmdsZVNsb3RUcmFuc2l0aW9uV2Vha093bmVyIGZpbmFsIDogcHVibGljIFdlYWtIYW5kbGVPd25l
ciB7Ci0gICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92
ZXJyaWRlCisgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQp
IGZpbmFsCiAgICAgewogICAgICAgICBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUqIHRhYmxlID0g
cmVpbnRlcnByZXRfY2FzdDxTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUqPihjb250ZXh0KTsKICAg
ICAgICAgQVNTRVJUKHRhYmxlLT5pc1VzaW5nU2luZ2xlU2xvdCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAppbmRleCBiNWE5
OGRiZTRjOWIzMmJhZmZhNmY0OGMyYmNlNDcwNmEwMTEwNDJkLi5kODUzNGEwZWY0ZTBkNmNhOWEw
YWUzODUxYmJmN2QyYzU4OWFmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCkBAIC04Niw4ICs4Niw4IEBAIHB1YmxpYzoK
ICAgICBPYmplY3RUb1N0cmluZ0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2lu
dChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYsIFN0cnVjdHVyZVJhcmVEYXRhKik7CiAK
IHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBo
YW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgaGFuZGxlRmlyZShWTSYsIGNvbnN0IEZpcmVE
ZXRhaWwmKSBmaW5hbDsKIAogICAgIFN0cnVjdHVyZVJhcmVEYXRhKiBtX3N0cnVjdHVyZVJhcmVE
YXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJh
cHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXgg
ZDM3ZThjODZjNmJhNWE1YzY0MWFiOTUwZWQ3NDQ2Y2RiNDJhNWI3YS4uNjE1ZWM5ZWM1NTEwNDdj
Mzc2Y2M2N2VmYWFlYWZiMzVhMWU2MWEzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1UcmFwcy5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0pOwog
ICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0
IGNoYXIqIG5hbWUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuICJKU0MgVk1U
cmFwcyBTaWduYWwgU2VuZGVyIFRocmVhZCI7CiAgICAgfQpAQCAtMjQ4LDcgKzI0OCw3IEBAIHB1
YmxpYzoKICAgICBWTVRyYXBzJiB0cmFwcygpIHsgcmV0dXJuIG1fdm0udHJhcHMoKTsgfQogCiBw
cml2YXRlOgotICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJy
aWRlCisgICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgZmluYWwKICAg
ICB7CiAgICAgICAgIGlmICh0cmFwcygpLm1faXNTaHV0dGluZ0Rvd24pCiAgICAgICAgICAgICBy
ZXR1cm4gUG9sbFJlc3VsdDo6U3RvcDsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAg
ICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V29yazsKICAgICB9CiAKLSAgICBXb3JrUmVzdWx0IHdv
cmsoKSBvdmVycmlkZQorICAgIFdvcmtSZXN1bHQgd29yaygpIGZpbmFsCiAgICAgewogICAgICAg
ICBWTSYgdm0gPSBtX3ZtOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2lkZW5pbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaApp
bmRleCA3NTlmNWVkYWY5NGE3NTAwMmQyYjNhOWQ3MTk2MGNmMGYxNzdlODgyLi5mNjA4ZWY3ZDI3
MDZhZmE5ZTliNmY0MjcxMjU4NDczYjYxY2Q2ZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlv
bkZ1enplckFnZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV2lkZW5pbmdOdW1iZXJQcmVk
aWN0aW9uRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgTnVtYmVyUHJlZGljdGlvbkZ1enplckEK
IHB1YmxpYzoKICAgICBXaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudChWTSYpOwog
Ci0gICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2Rl
T3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdl
dFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBl
KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IGFkZDliMTZkZGM2OGZmZmY4ZGE5M2JlNzIyMGVk
NDM3YmY5NmE1NTguLjk1NmVmZGI4NTRhZmZmMzBmMGRjYjBjNzkyMTExZmY1MzE3NDNlMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTI0NiwxMCAr
MjQ2LDEwIEBAIHByaXZhdGU6CiAgICAgV3JpdGVCYXJyaWVyPFJvb3Q+IG1fcm9vdDsKIH07CiAK
LWNsYXNzIEVsZW1lbnRIYW5kbGVPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgeworY2xh
c3MgRWxlbWVudEhhbmRsZU93bmVyIGZpbmFsIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKSBvdmVycmlkZQorICAg
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNv
bikgZmluYWwKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQpAQCAtMjU5LDcgKzI1OSw3IEBAIHB1Ymxp
YzoKICAgICB9CiB9OwogCi1jbGFzcyBSb290IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
IHsKK2NsYXNzIFJvb3QgZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0Rlc3RydWN0aWJsZU9iamVjdDsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CkBAIC0xNDY1LDkgKzE0NjUsOSBA
QCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgZGlkUmVjZWl2
ZVNlY3Rpb25EYXRhKFdhc206OlNlY3Rpb24pIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAg
ICAgICAgYm9vbCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBXYXNtOjpG
dW5jdGlvbkRhdGEmKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZvaWQgZGlk
RmluaXNoUGFyc2luZygpIG92ZXJyaWRlIHsgfQorICAgICAgICBib29sIGRpZFJlY2VpdmVTZWN0
aW9uRGF0YShXYXNtOjpTZWN0aW9uKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJv
b2wgZGlkUmVjZWl2ZUZ1bmN0aW9uRGF0YSh1bnNpZ25lZCwgY29uc3QgV2FzbTo6RnVuY3Rpb25E
YXRhJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2b2lkIGRpZEZpbmlzaFBhcnNp
bmcoKSBmaW5hbCB7IH0KIAogICAgICAgICBXYXNtU3RyZWFtaW5nUGFyc2VyKiBtX3BhcnNlcjsK
ICAgICB9OwpAQCAtMjY5MSw3ICsyNjkxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICB2b2lkIHNvdXJjZVBhcnNlZChKU0dsb2JhbE9iamVjdCosIFNvdXJjZVByb3ZpZGVyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlCisgICAgdm9pZCBzb3VyY2VQYXJzZWQo
SlNHbG9iYWxPYmplY3QqLCBTb3VyY2VQcm92aWRlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcm
KSBmaW5hbAogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxh
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uaAppbmRleCAyOTRh
NzQzMDkxNTFjOTM4N2RlMWJkYTNkNGZjMjIwY2I4Nzc1YmFjLi5mYjRlMWUyNTk2MjBkYmI3NTQ3
NmZjNzZjOTJkY2VjNjI1Mzg2NDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21C
QlFQbGFuLmgKQEAgLTU2LDE5ICs1NiwxOSBAQCBwdWJsaWM6CiAKICAgICBCQlFQbGFuKENvbnRl
eHQqLCBSZWY8TW9kdWxlSW5mb3JtYXRpb24+LCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBDb2Rl
QmxvY2sqLCBDb21wbGV0aW9uVGFzayYmKTsKIAotICAgIGJvb2wgaGFzV29yaygpIGNvbnN0IG92
ZXJyaWRlCisgICAgYm9vbCBoYXNXb3JrKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIGlm
IChtX2FzeW5jV29yayA9PSBBc3luY1dvcms6OlZhbGlkYXRpb24pCiAgICAgICAgICAgICByZXR1
cm4gbV9zdGF0ZSA8IFN0YXRlOjpWYWxpZGF0ZWQ7CiAgICAgICAgIHJldHVybiBtX3N0YXRlIDwg
U3RhdGU6OkNvbXBpbGVkOwogICAgIH0KIAotICAgIHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9y
dCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0KSBmaW5hbDsKIAog
ICAgIHVzaW5nIENhbGxlZUluaXRpYWxpemVyID0gRnVuY3Rpb248dm9pZCh1aW50MzJfdCwgUmVm
UHRyPEVtYmVkZGVyRW50cnlwb2ludENhbGxlZT4mJiwgUmVmPEJCUUNhbGxlZT4mJik+OwogICAg
IHZvaWQgaW5pdGlhbGl6ZUNhbGxlZXMoY29uc3QgQ2FsbGVlSW5pdGlhbGl6ZXImKTsKIAotICAg
IGJvb2wgZGlkUmVjZWl2ZUZ1bmN0aW9uRGF0YSh1bnNpZ25lZCwgY29uc3QgRnVuY3Rpb25EYXRh
Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBj
b25zdCBGdW5jdGlvbkRhdGEmKSBmaW5hbDsKIAogICAgIGJvb2wgcGFyc2VBbmRWYWxpZGF0ZU1v
ZHVsZSgpCiAgICAgewpAQCAtNzYsOSArNzYsOSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIGJvb2wgcHJlcGFyZUltcGwoKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBpbGVGdW5j
dGlvbih1aW50MzJfdCBmdW5jdGlvbkluZGV4KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENvbXBs
ZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZTsKKyAgICBib29s
IHByZXBhcmVJbXBsKCkgZmluYWw7CisgICAgdm9pZCBjb21waWxlRnVuY3Rpb24odWludDMyX3Qg
ZnVuY3Rpb25JbmRleCkgZmluYWw7CisgICAgdm9pZCBkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKGNv
bnN0IEFic3RyYWN0TG9ja2VyJikgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJu
YWxGdW5jdGlvbj4gY29tcGlsZUZ1bmN0aW9uKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIENvbXBp
bGF0aW9uQ29udGV4dCYsIFZlY3RvcjxVbmxpbmtlZFdhc21Ub1dhc21DYWxsPiYsIFRpZXJVcENv
dW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaAppbmRleCAzYTQ5
YzVmMjhmZGI3OTVkMjU2YmQyN2RjNTJjMjQzZDhlMjVjYTc5Li5iYTM5ZTU2YzIzMTQ0MGJiZmIx
NDJlN2EzODQ4NGNjZjRmNjc1YTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQ2FsbGVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxlZS5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIE9NR0Zvck9T
UkVudHJ5Q2FsbGVlKiBvc3JFbnRyeUNhbGxlZSgpIHsgcmV0dXJuIG1fb3NyRW50cnlDYWxsZWUu
Z2V0KCk7IH0KLSAgICB2b2lkIHNldE9TUkVudHJ5Q2FsbGVlKFJlZjxPTUdGb3JPU1JFbnRyeUNh
bGxlZT4mJiBvc3JFbnRyeUNhbGxlZSkgb3ZlcnJpZGUKKyAgICB2b2lkIHNldE9TUkVudHJ5Q2Fs
bGVlKFJlZjxPTUdGb3JPU1JFbnRyeUNhbGxlZT4mJiBvc3JFbnRyeUNhbGxlZSkgZmluYWwKICAg
ICB7CiAgICAgICAgIG1fb3NyRW50cnlDYWxsZWUgPSBXVEZNb3ZlKG9zckVudHJ5Q2FsbGVlKTsK
ICAgICB9CkBAIC0xOTIsOSArMTkyLDkgQEAgcHVibGljOgogICAgIH0KIAogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgc2V0RW50cnlwb2ludChNYWNyb0Fzc2VtYmxlckNvZGVQdHI8V2FzbUVu
dHJ5UHRyVGFnPik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
PFdhc21FbnRyeVB0clRhZz4gZW50cnlwb2ludCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEpTX0VY
UE9SVF9QUklWQVRFIFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBjYWxsZWVTYXZlUmVnaXN0ZXJzKCkg
b3ZlcnJpZGU7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RkOjp0dXBsZTx2b2lkKiwgdm9pZCo+
IHJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyPFdhc21FbnRyeVB0clRhZz4gZW50cnlwb2ludCgpIGNvbnN0IGZpbmFsOwor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBjYWxsZWVTYXZlUmVn
aXN0ZXJzKCkgZmluYWw7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RkOjp0dXBsZTx2b2lkKiwg
dm9pZCo+IHJhbmdlKCkgY29uc3QgZmluYWw7CiAKICAgICBKSVRDYWxsZWUqIHJlcGxhY2VtZW50
KCkgeyByZXR1cm4gbV9yZXBsYWNlbWVudC5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVwbGFjZW1l
bnQoUmVmPEpJVENhbGxlZT4mJiByZXBsYWNlbWVudCkKQEAgLTIwMyw3ICsyMDMsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgT01HRm9yT1NSRW50cnlDYWxsZWUqIG9zckVudHJ5Q2FsbGVlKCkg
eyByZXR1cm4gbV9vc3JFbnRyeUNhbGxlZS5nZXQoKTsgfQotICAgIHZvaWQgc2V0T1NSRW50cnlD
YWxsZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2FsbGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBvdmVycmlk
ZQorICAgIHZvaWQgc2V0T1NSRW50cnlDYWxsZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2FsbGVlPiYm
IG9zckVudHJ5Q2FsbGVlKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9vc3JFbnRyeUNhbGxlZSA9
IFdURk1vdmUob3NyRW50cnlDYWxsZWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludFBsYW4uaAppbmRleCA5MzM1YjNhMDViODBjYWU0NWRiODljY2M0OGM1YmMx
OWMxZDVlZDU4Li5mYjg0OTFiYWIzMGRmYWI3OWMzN2YxMmFlYmJjMWVlNDFkMWU4NWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oCkBAIC02NiwxOSArNjYs
MTkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gV1RGTW92ZShtX2VtYmVkZGVyQ2FsbGVlcyk7
CiAgICAgfQogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICBib29sIGhh
c1dvcmsoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fc3RhdGUgPCBTdGF0
ZTo6Q29tcGlsZWQ7CiAgICAgfQogCi0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0KSBv
dmVycmlkZTsKKyAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIGZpbmFsOwogCi0gICAg
Ym9vbCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBGdW5jdGlvbkRhdGEm
KSBvdmVycmlkZTsKKyAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNv
bnN0IEZ1bmN0aW9uRGF0YSYpIGZpbmFsOwogCiBwcml2YXRlOgotICAgIGJvb2wgcHJlcGFyZUlt
cGwoKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBmdW5jdGlv
bkluZGV4KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3Qg
QWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZTsKKyAgICBib29sIHByZXBhcmVJbXBsKCkgZmluYWw7
CisgICAgdm9pZCBjb21waWxlRnVuY3Rpb24odWludDMyX3QgZnVuY3Rpb25JbmRleCkgZmluYWw7
CisgICAgdm9pZCBkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKGNvbnN0IEFic3RyYWN0TG9ja2VyJikg
ZmluYWw7CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEZ1bmN0aW9uQ29kZUJsb2NrPj4g
bV93YXNtSW50ZXJuYWxGdW5jdGlvbnM7CiAgICAgY29uc3QgUmVmPExMSW50Q2FsbGVlPiogbV9j
YWxsZWVzIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5oCmluZGV4IDhhNWVhNTUxMjA0ODU4ZjFmNzEyMmU3OWEy
YTlhYTZjNjg4MDUyYzkuLmJiOWU0ODc0Y2U4YmE1NjQxYjgxYjFmZGU5OWYxZGVjZDdlYjcyNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRy
eVBsYW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50
cnlQbGFuLmgKQEAgLTQzLDkgKzQzLDkgQEAgY2xhc3MgT01HRm9yT1NSRW50cnlQbGFuIGZpbmFs
IDogcHVibGljIFBsYW4gewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBQbGFuOwogCi0gICAg
Ym9vbCBoYXNXb3JrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fY29tcGxldGVkOyB9Ci0g
ICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0KSBvdmVycmlkZTsKLSAgICBib29sIG11bHRp
VGhyZWFkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaGFz
V29yaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2NvbXBsZXRlZDsgfQorICAgIHZvaWQgd29y
ayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CisgICAgYm9vbCBtdWx0aVRocmVhZGVkKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5vdGU6IENvbXBsZXRpb25UYXNr
IHNob3VsZCBub3QgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgUGxhbiBvdGhlcndpc2UgdGhlcmUg
d2lsbCBiZSBhIHJlZmVyZW5jZSBjeWNsZS4KICAgICBPTUdGb3JPU1JFbnRyeVBsYW4oQ29udGV4
dCosIFJlZjxNb2R1bGU+JiYsIFJlZjxDYWxsZWU+JiYsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgs
IHVpbnQzMl90IGxvb3BJbmRleCwgTWVtb3J5TW9kZSwgQ29tcGxldGlvblRhc2smJik7CkBAIC01
NCw4ICs1NCw4IEBAIHByaXZhdGU6CiAgICAgLy8gRm9yIHNvbWUgcmVhc29uIGZyaWVuZHNoaXAg
ZG9lc24ndCBleHRlbmQgdG8gcGFyZW50IGNsYXNzZXMuLi4KICAgICB1c2luZyBCYXNlOjptX2xv
Y2s7CiAKLSAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Nv
bXBsZXRlZDsgfQotICAgIHZvaWQgY29tcGxldGUoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tl
cikgb3ZlcnJpZGUKKyAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NvbXBsZXRlZDsgfQorICAgIHZvaWQgY29tcGxldGUoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxv
Y2tlcikgZmluYWwKICAgICB7CiAgICAgICAgIG1fY29tcGxldGVkID0gdHJ1ZTsKICAgICAgICAg
cnVuQ29tcGxldGlvblRhc2tzKGxvY2tlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT01HUGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9NR1BsYW4uaAppbmRleCBjYjc5YjQzOWQ0ZTk5NGQ4NzBlOWRjOTA4OWM0M2E3ZjU4NjAyNTY2
Li43N2ExZDgyYTViYmY3NjgxNGNlNzEzODlmNGQ1Y2Q2NjAwOGYyZDQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmgKQEAgLTQxLDkgKzQxLDkgQEAgY2xhc3MgT01H
UGxhbiBmaW5hbCA6IHB1YmxpYyBQbGFuIHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gUGxh
bjsKIAotICAgIGJvb2wgaGFzV29yaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFtX2NvbXBs
ZXRlZDsgfQotICAgIHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBtdWx0aVRocmVhZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICBib29sIGhhc1dvcmsoKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9jb21wbGV0ZWQ7IH0KKyAg
ICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIGZpbmFsOworICAgIGJvb2wgbXVsdGlUaHJl
YWRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBOb3RlOiBDb21w
bGV0aW9uVGFzayBzaG91bGQgbm90IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIFBsYW4gb3RoZXJ3
aXNlIHRoZXJlIHdpbGwgYmUgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgT01HUGxhbihDb250ZXh0
KiwgUmVmPE1vZHVsZT4mJiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCwgTWVtb3J5TW9kZSwgQ29t
cGxldGlvblRhc2smJik7CkBAIC01Miw4ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgLy8gRm9yIHNv
bWUgcmVhc29uIGZyaWVuZHNoaXAgZG9lc24ndCBleHRlbmQgdG8gcGFyZW50IGNsYXNzZXMuLi4K
ICAgICB1c2luZyBCYXNlOjptX2xvY2s7CiAKLSAgICBib29sIGlzQ29tcGxldGUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2NvbXBsZXRlZDsgfQotICAgIHZvaWQgY29tcGxldGUoY29uc3Qg
QWJzdHJhY3RMb2NrZXImIGxvY2tlcikgb3ZlcnJpZGUKKyAgICBib29sIGlzQ29tcGxldGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NvbXBsZXRlZDsgfQorICAgIHZvaWQgY29tcGxldGUoY29u
c3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikgZmluYWwKICAgICB7CiAgICAgICAgIG1fY29tcGxl
dGVkID0gdHJ1ZTsKICAgICAgICAgcnVuQ29tcGxldGlvblRhc2tzKGxvY2tlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAppbmRleCBkMTRmNzg3YTEyOTBh
YWU4NmYzZjcxNzM4ZDY5ZjFkZjY0MTNlZWQwLi42MGFmMDFhYTVlNWQ1MDhlODczNmY3ZWRiMTBi
OTc3NzdhN2E5NzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
V29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBQ
b2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZQorICAgIFBvbGxS
ZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewogICAgICAgICBh
dXRvJiBxdWV1ZSA9IHdvcmtsaXN0Lm1fcXVldWU7CiAgICAgICAgIHN5bmNocm9uaXplLm5vdGlm
eUFsbCgpOwpAQCAtOTAsNyArOTAsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gUG9sbFJl
c3VsdDo6V2FpdDsKICAgICB9CiAKLSAgICBXb3JrUmVzdWx0IHdvcmsoKSBvdmVycmlkZQorICAg
IFdvcmtSZXN1bHQgd29yaygpIGZpbmFsCiAgICAgewogICAgICAgICBhdXRvIGNvbXBsZXRlID0g
WyZdIChjb25zdCBBYnN0cmFjdExvY2tlciYpIHsKICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g
aG9sZCB0aGUgbG9jayB0byByZWxlYXNlIG91ciBwbGFuIG90aGVyd2lzZSB0aGUgbWFpbiB0aHJl
YWQsIHdoaWxlIGNhbmNlbGluZyBwbGFucwpAQCAtMTE3LDEyICsxMTcsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRlKGhvbGRMb2NrKCp3b3JrbGlzdC5tX2xvY2spKTsKICAg
ICB9CiAKLSAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBv
dmVycmlkZQorICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhjb25zdCBBYnN0cmFjdExvY2tlciYp
IGZpbmFsCiAgICAgewogICAgICAgICBjbGVhckxMSW50VGhyZWFkU3BlY2lmaWNDYWNoZSgpOwog
ICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0
IGNoYXIqIG5hbWUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuICJXYXNtIFdv
cmtsaXN0IEhlbHBlciBUaHJlYWQiOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVC5jcHAKaW5kZXggNmViOGExNmY5YjdkYmRiMGZiMjdkY2NhODM0NDc5NmY5OTE0OTczYi4u
NjRkYWNmMjI0MjQxNzhhYWZjYTBiZDgyY2UyNWI5YzQxNWQ4MDEwZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyOjp+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCkKIH0KIAogdGVtcGxhdGU8WWFyckpJVENv
bXBpbGVNb2RlIGNvbXBpbGVNb2RlPgotY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJy
SklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CitjbGFzcyBZYXJyR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKIAogI2lm
IENQVShBUk1fVEhVTUIyKQogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGlucHV0ID0gQVJN
UmVnaXN0ZXJzOjpyMDsKQEAgLTM5ODIsNyArMzk4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGNvZGVCbG9jay5zZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKCptX2ZhaWx1cmVSZWFzb24p
OwogICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIHZhcmlhbnQoKSBvdmVycmlkZQorICAgIGNvbnN0
IGNoYXIqIHZhcmlhbnQoKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKGNvbXBpbGVNb2RlID09
IE1hdGNoT25seSkgewogICAgICAgICAgICAgaWYgKG1fY2hhclNpemUgPT0gQ2hhcjgpCkBAIC0z
OTk3LDE3ICszOTk3LDE3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICIxNi1iaXQgcmVndWxh
ciBleHByZXNzaW9uIjsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBvcENvdW50KCkgb3ZlcnJpZGUK
KyAgICB1bnNpZ25lZCBvcENvdW50KCkgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX29w
cy5zaXplKCk7CiAgICAgfQogCi0gICAgdm9pZCBkdW1wUGF0dGVyblN0cmluZyhQcmludFN0cmVh
bSYgb3V0KSBvdmVycmlkZQorICAgIHZvaWQgZHVtcFBhdHRlcm5TdHJpbmcoUHJpbnRTdHJlYW0m
IG91dCkgZmluYWwKICAgICB7CiAgICAgICAgIG1fcGF0dGVybi5kdW1wUGF0dGVyblN0cmluZyhv
dXQsIG1fcGF0dGVyblN0cmluZyk7CiAgICAgfQogCi0gICAgaW50IGR1bXBGb3IoUHJpbnRTdHJl
YW0mIG91dCwgdW5zaWduZWQgb3BJbmRleCkgb3ZlcnJpZGUKKyAgICBpbnQgZHVtcEZvcihQcmlu
dFN0cmVhbSYgb3V0LCB1bnNpZ25lZCBvcEluZGV4KSBmaW5hbAogICAgIHsKICAgICAgICAgaWYg
KG9wSW5kZXggPj0gb3BDb3VudCgpKQogICAgICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuY3BwCmluZGV4IDM2YzZkYzk4YWNkMmI2ZGM5MzE3MmM4YWM1YWU4MjY5ODhlZDc4NDYuLjBh
YmE4NTY3NzI1MmQzYmFmZTFlZmZlOTI5MDM0ZDc4ODFkN2Q2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMu
Y3BwCkBAIC0yNzIsMTAgKzI3MiwxMCBAQCB2b2lkIFdURlJlcG9ydEFyZ3VtZW50QXNzZXJ0aW9u
RmFpbHVyZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogZgogICAgIHBy
aW50Q2FsbFNpdGUoZmlsZSwgbGluZSwgZnVuY3Rpb24pOwogfQogCi1jbGFzcyBDcmFzaExvZ1By
aW50U3RyZWFtIDogcHVibGljIFByaW50U3RyZWFtIHsKK2NsYXNzIENyYXNoTG9nUHJpbnRTdHJl
YW0gZmluYWwgOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIFdURl9BVFRSSUJV
VEVfUFJJTlRGKDIsIDApCi0gICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFf
bGlzdCBhcmdMaXN0KSBvdmVycmlkZQorICAgIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3Jt
YXQsIHZhX2xpc3QgYXJnTGlzdCkgZmluYWwKICAgICB7CiAgICAgICAgIHZwcmludGZfc3RkZXJy
X2NvbW1vbihmb3JtYXQsIGFyZ0xpc3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0V4cGVjdGVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCmluZGV4IGNhZTY4MTE3
ODJlNTYyMzM0Yjk1ZTMxNjYxNWFlNTkxZTEzZTgwY2UuLmU1NDA3NWFmNWRkY2I2YjI5MWYzODk4
NjllODgxZDJlNmQ5NTUwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgK
KysrIGIvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaApAQCAtMjEzLDcgKzIxMyw3IEBAIHRlbXBs
YXRlPGNsYXNzIEU+CiBjbGFzcyBiYWRfZXhwZWN0ZWRfYWNjZXNzIDogcHVibGljIGJhZF9leHBl
Y3RlZF9hY2Nlc3M8dm9pZD4gewogcHVibGljOgogICAgIGV4cGxpY2l0IGJhZF9leHBlY3RlZF9h
Y2Nlc3MoRSB2YWwpIDogdmFsKHZhbCkgeyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiB3aGF0
KCkgY29uc3Qgbm9leGNlcHQgb3ZlcnJpZGUgeyByZXR1cm4gc3RkOjpleGNlcHRpb246OndoYXQo
KTsgfQorICAgIGNvbnN0IGNoYXIqIHdoYXQoKSBjb25zdCBub2V4Y2VwdCBvdmVycmlkZSB7IHJl
dHVybiBzdGQ6OmV4Y2VwdGlvbjo6d2hhdCgpOyB9CiAgICAgRSYgZXJyb3IoKSAmIHsgcmV0dXJu
IHZhbDsgfQogICAgIGNvbnN0IEUmIGVycm9yKCkgY29uc3QmIHsgcmV0dXJuIHZhbDsgfQogICAg
IEUmJiBlcnJvcigpICYmIHsgcmV0dXJuIHN0ZDo6bW92ZSh2YWwpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRTdHJlYW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVQcmlu
dFN0cmVhbS5oCmluZGV4IDU2MWJjZjdmMDJjMjg5NDliNjFlMWRhNDRlZGVhZGViZDExNDIxYzUu
LmQzNDEyM2Q0ZmViMzhjMTgyNWZhODliZjM3ODVjZGFiODgwYzE4NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0ZpbGVQcmludFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVQ
cmludFN0cmVhbS5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFz
cyBGaWxlUHJpbnRTdHJlYW0gOiBwdWJsaWMgUHJpbnRTdHJlYW0geworY2xhc3MgRmlsZVByaW50
U3RyZWFtIGZpbmFsIDogcHVibGljIFByaW50U3RyZWFtIHsKIHB1YmxpYzoKICAgICBlbnVtIEFk
b3B0aW9uTW9kZSB7CiAgICAgICAgIEFkb3B0LApAQCAtMzgsMTQgKzM4LDE0IEBAIHB1YmxpYzoK
ICAgICB9OwogICAgIAogICAgIEZpbGVQcmludFN0cmVhbShGSUxFKiwgQWRvcHRpb25Nb2RlID0g
QWRvcHQpOwotICAgIHZpcnR1YWwgfkZpbGVQcmludFN0cmVhbSgpOworICAgIH5GaWxlUHJpbnRT
dHJlYW0oKSBmaW5hbDsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxGaWxlUHJpbnRTdHJlYW0+IG9wZW4oY29uc3QgY2hhciogZmlsZW5hbWUsIGNv
bnN0IGNoYXIqIG1vZGUpOwogICAgIAogICAgIEZJTEUqIGZpbGUoKSB7IHJldHVybiBtX2ZpbGU7
IH0KICAgICAKLSAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBv
dmVycmlkZSBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKLSAgICB2b2lkIGZsdXNoKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgZmlu
YWwgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CisgICAgdm9pZCBmbHVzaCgpIGZpbmFsOwog
CiBwcml2YXRlOgogICAgIEZJTEUqIG1fZmlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0pTT05WYWx1ZXMuaCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAppbmRleCA4NTY4ODlh
MjZlMDcxMmY5MDE4Y2Y3ZDE4NTRmM2Q5MjM0NWExY2U4Li5lYmFiYzQ0OWY4ODBiMzlkM2ZhZGU3
OGNkNjFiMWM0ZDVlMGU2ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVz
LmgKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCkBAIC0xODMsNyArMTgzLDcgQEAg
cHVibGljOgogICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3QgZmluYWw7CiAKIHByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIH5PYmplY3RCYXNlKCk7CisgICAgfk9iamVjdEJhc2UoKSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgYXNPYmplY3QoUmVmUHRyPE9iamVjdD4mIG91dHB1dCkgb3ZlcnJpZGU7
CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBj
b25zdCBmaW5hbDsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkFycmF5QmFzZSgpOworICAg
IH5BcnJheUJhc2UoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgYXNBcnJheShSZWZQdHI8QXJyYXk+
Jikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlZFByaW50U3Ry
ZWFtLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZWRQcmludFN0cmVhbS5oCmluZGV4IDZlYjkwYWFl
ODA4ZTdmMmI5ZjQ0ZDQyZTU2ZTNhOTQzNTc0NjljNTcuLmU0ZmFkYjg1ZGJiM2ZkYWRjODY4MmQ4
ZTI1NGM2MmJmNGNmZWI1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlZFByaW50
U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9ja2VkUHJpbnRTdHJlYW0uaApAQCAtMzUs
MTYgKzM1LDE1IEBAIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTG9ja2VkUHJpbnRTdHJlYW0gOiBw
dWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIExvY2tlZFByaW50U3RyZWFtKHN0ZDo6
dW5pcXVlX3B0cjxQcmludFN0cmVhbT4gdGFyZ2V0KTsKLSAgICB2aXJ0dWFsIH5Mb2NrZWRQcmlu
dFN0cmVhbSgpOworICAgIH5Mb2NrZWRQcmludFN0cmVhbSgpIGZpbmFsOwogICAgIAotICAgIHZv
aWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIG92ZXJyaWRlIFdURl9BVFRS
SUJVVEVfUFJJTlRGKDIsIDApOwotICAgIHZvaWQgZmx1c2goKSBvdmVycmlkZTsKLQotcHJvdGVj
dGVkOgotICAgIFByaW50U3RyZWFtJiBiZWdpbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5kKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkg
ZmluYWwgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CisgICAgdm9pZCBmbHVzaCgpIGZpbmFs
OwogCiBwcml2YXRlOgorICAgIFByaW50U3RyZWFtJiBiZWdpbigpIGZpbmFsOworICAgIHZvaWQg
ZW5kKCkgZmluYWw7CisKICAgICAvLyBUaGlzIG5lZWRzIHRvIGJlIGEgcmVjdXJzaXZlIGxvY2sg
YmVjYXVzZSBhIHByaW50SW50ZXJuYWwgb3IgZHVtcCBtZXRob2QgY291bGQgYXNzZXJ0LAogICAg
IC8vIGFuZCB0aGF0IGFzc2VydCBtaWdodCB3YW50IHRvIGxvZy4gQmV0dGVyIHRvIGxldCBpdC4g
VGhpcyBuZWVkcyB0byBiZSBhIFdvcmRMb2NrIHNvIHRoYXQKICAgICAvLyBMb2NrZWRQcmludFN0
cmVhbSAoaS5lLiBjYXRhTG9nKSBjYW4gYmUgdXNlZCB0byBkZWJ1ZyBQYXJraW5nTG90IGFuZCBM
b2NrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oIGIvU291
cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCmluZGV4IGM4N2VlZjc5YzcwYjUxNGY4ZGNl
N2U5NTVmYTJlNmRkOTY4YmQ1MjYuLjU5ZjgxMTRlY2QyZDk3YTkxZjA0ZmZhZTcwMTk3ZGJhMzg3
Y2UyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmgKQEAgLTQwLDExICs0MCwxMSBAQCBu
YW1lc3BhY2UgV1RGIHsKIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBPU0xvZ1ByaW50U3RyZWFt
IGZpbmFsIDogcHVibGljIFByaW50U3RyZWFtIHsKIHB1YmxpYzoKICAgICBPU0xvZ1ByaW50U3Ry
ZWFtKG9zX2xvZ190LCBvc19sb2dfdHlwZV90KTsKLSAgICB2aXJ0dWFsIH5PU0xvZ1ByaW50U3Ry
ZWFtKCk7CisgICAgfk9TTG9nUHJpbnRTdHJlYW0oKSBmaW5hbDsKICAgICAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE9TTG9nUHJpbnRTdHJlYW0+IG9wZW4oY29uc3QgY2hhciogc3Vic3lz
dGVtLCBjb25zdCBjaGFyKiBjYXRlZ29yeSwgb3NfbG9nX3R5cGVfdCA9IE9TX0xPR19UWVBFX0RF
RkFVTFQpOwogICAgIAotICAgIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xp
c3QpIG92ZXJyaWRlIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOworICAgIHZvaWQgdnByaW50
Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIGZpbmFsIFdURl9BVFRSSUJVVEVfUFJJTlRG
KDIsIDApOwogCiBwcml2YXRlOgogICAgIG9zX2xvZ190IG1fbG9nOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5jcHAKaW5kZXggNGY5YTkyMmMwODRiMjIyNWRkMTg1YzQ1NTRkY2U0M2Ri
OTA0OWJkMC4uMTYxZjI1YzUzNDhlZDYxNzg3NjgwNmM5NWU5OGY1ZjhiYTU0NmRkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBQ
YXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBpbmcoKQogICAgIGNsaWVudC0+cnVuVGFzayh0
YXNrKTsKIH0KIAotY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpUaHJlYWQgOiBwdWJsaWMgQXV0
b21hdGljVGhyZWFkIHsKK2NsYXNzIFBhcmFsbGVsSGVscGVyUG9vbDo6VGhyZWFkIGZpbmFsIDog
cHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYgcG9vbCkKICAgICAgICAgOiBB
dXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtBdmFpbGFibGVD
b25kaXRpb24uY29weVJlZigpKQpAQCAtMTc3LDEzICsxNzcsMTMgQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAgICAgCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAg
Y29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gbV9w
b29sLm1fdGhyZWFkTmFtZS5kYXRhKCk7CiAgICAgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgUG9sbFJl
c3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIG92ZXJyaWRlCitwcml2YXRl
OgorICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKG1fcG9vbC5tX2lzRHlpbmcpCiAgICAgICAgICAgICByZXR1
cm4gUG9sbFJlc3VsdDo6U3RvcDsKQEAgLTE5NSwxNSArMTk1LDE0IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7CiAgICAgfQogICAgIAotICAgIFdvcmtSZXN1
bHQgd29yaygpIG92ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAg
ICAgICAgIG1fY2xpZW50LT5ydW5UYXNrKG1fdGFzayk7CiAgICAgICAgIG1fY2xpZW50ID0gbnVs
bHB0cjsKICAgICAgICAgbV90YXNrID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIFdvcmtSZXN1
bHQ6OkNvbnRpbnVlOwogICAgIH0KLSAgICAKLXByaXZhdGU6CisKICAgICBQYXJhbGxlbEhlbHBl
clBvb2wmIG1fcG9vbDsKICAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogbV9jbGllbnQgeyBudWxs
cHRyIH07CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IG1fdGFzazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApp
bmRleCBjZWFjMmVkYTQ4NTNmNWFhYWU2NDI1YzQyYWFjNjYxODk3ZTlkMGExLi4yMTc2ODRlNzRk
MDU0YjkzNWEzNTc2OGE2NDk0NmZiYTdmNWM0MzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9SdW5Mb29wLmgKKysrIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCkBAIC01NSw3ICs1NSw3
IEBAIHVzaW5nIFJ1bkxvb3BNb2RlID0gdW5zaWduZWQ7CiAjZGVmaW5lIERlZmF1bHRSdW5Mb29w
TW9kZSAwCiAjZW5kaWYKIAotY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNo
ZXIgeworY2xhc3MgUnVuTG9vcCBmaW5hbCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bkxvb3ApOwogcHVibGljOgogICAgIC8vIE11c3Qg
YmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkIChleGNlcHQgZm9yIHRoZSBNYWMgcGxhdGZv
cm0sIHdoZXJlIGl0CkBAIC02NSw5ICs2NSw5IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFJ1bkxvb3AmIGN1cnJlbnQoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFJ1bkxvb3AmIG1haW4oKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJv
b2wgaXNNYWluKCk7Ci0gICAgflJ1bkxvb3AoKTsKKyAgICB+UnVuTG9vcCgpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKIAogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgdm9pZCBydW4oKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
dG9wKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgotICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRp
bWVyQmFzZSB7CisgICAgY2xhc3MgVGltZXIgZmluYWwgOiBwdWJsaWMgVGltZXJCYXNlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJG
aXJlZEZ1bmN0aW9uKSgpOwogCkBAIC0xNjgsNyArMTY4LDcgQEAgcHVibGljOgogICAgICAgICB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUgeyAobV9vYmpl
Y3QtPiptX2Z1bmN0aW9uKSgpOyB9CisgICAgICAgIHZvaWQgZmlyZWQoKSBmaW5hbCB7IChtX29i
amVjdC0+Km1fZnVuY3Rpb24pKCk7IH0KIAogICAgICAgICAvLyBUaGlzIG9yZGVyIHNob3VsZCBi
ZSBtYWludGFpbmVkIGR1ZSB0byBNU1ZDIGJ1Zy4KICAgICAgICAgLy8gaHR0cDovL2NvbXB1dGVy
LXByb2dyYW1taW5nLWZvcnVtLmNvbS83LXZjLm5ldC82ZmJjMzAyNjVmODYwYWQxLmh0bQpAQCAt
MTc3LDcgKzE3Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRf
TE9PUCkKLSAgICBjbGFzcyBEaXNwYXRjaFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAg
Y2xhc3MgRGlzcGF0Y2hUaW1lciBmaW5hbCA6IHB1YmxpYyBUaW1lckJhc2UgewogICAgIHB1Ymxp
YzoKICAgICAgICAgRGlzcGF0Y2hUaW1lcihSdW5Mb29wJiBydW5Mb29wKQogICAgICAgICAgICAg
OiBUaW1lckJhc2UocnVuTG9vcCkKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBtX2Z1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7CiAgICAgICAgIH0KICAgICBwcml2
YXRlOgotICAgICAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUgeyBtX2Z1bmN0aW9uKCk7IH0KKyAg
ICAgICAgdm9pZCBmaXJlZCgpIGZpbmFsIHsgbV9mdW5jdGlvbigpOyB9CiAKICAgICAgICAgRnVu
Y3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9TaGFyZWRUYXNrLmggYi9Tb3VyY2UvV1RGL3d0Zi9TaGFyZWRUYXNrLmgKaW5kZXggOWZm
YmZmZThhYjdjYjJlMjRhZmQzZmEyMjgzNTUzYTkxMjEzOWQwYi4uMjg1ZWQyZDg3ZDA3YzRhYTIz
YjJhZmQxNDJiN2M0ZjVkZGNkZTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2hhcmVk
VGFzay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NoYXJlZFRhc2suaApAQCAtNzMsNyArNzMsNyBA
QCBwdWJsaWM6CiAvLyB5b3UgZG9uJ3Qgd2FudCB0byB1c2UgdGhpcyBjbGFzcyBkaXJlY3RseS4g
VXNlIGNyZWF0ZVNoYXJlZFRhc2soKSBpbnN0ZWFkLgogdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rp
b25UeXBlLCB0eXBlbmFtZSBGdW5jdG9yPiBjbGFzcyBTaGFyZWRUYXNrRnVuY3RvcjsKIHRlbXBs
YXRlPHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50VHlwZXMsIHR5cGVu
YW1lIEZ1bmN0b3I+Ci1jbGFzcyBTaGFyZWRUYXNrRnVuY3RvcjxSZXN1bHRUeXBlIChBcmd1bWVu
dFR5cGVzLi4uKSwgRnVuY3Rvcj4gOiBwdWJsaWMgU2hhcmVkVGFzazxSZXN1bHRUeXBlIChBcmd1
bWVudFR5cGVzLi4uKT4geworY2xhc3MgU2hhcmVkVGFza0Z1bmN0b3I8UmVzdWx0VHlwZShBcmd1
bWVudFR5cGVzLi4uKSwgRnVuY3Rvcj4gZmluYWwgOiBwdWJsaWMgU2hhcmVkVGFzazxSZXN1bHRU
eXBlKEFyZ3VtZW50VHlwZXMuLi4pPiB7CiBwdWJsaWM6CiAgICAgU2hhcmVkVGFza0Z1bmN0b3Io
Y29uc3QgRnVuY3RvciYgZnVuY3RvcikKICAgICAgICAgOiBtX2Z1bmN0b3IoZnVuY3RvcikKQEAg
LTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBSZXN1bHRUeXBl
IHJ1bihBcmd1bWVudFR5cGVzLi4uIGFyZ3VtZW50cykgb3ZlcnJpZGUKKyAgICBSZXN1bHRUeXBl
IHJ1bihBcmd1bWVudFR5cGVzLi4uIGFyZ3VtZW50cykgZmluYWwKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX2Z1bmN0b3Ioc3RkOjpmb3J3YXJkPEFyZ3VtZW50VHlwZXM+KGFyZ3VtZW50cykuLi4p
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5oCmluZGV4IDY1ZWU0ZDYyNzNkNDJl
YmM2ZWY1N2Y0MTU4ZWMwNDU4Nzk3ZDZlNTQuLjM2MjVlYWI1ZjFhYWYxMTA5ZTA1M2NiZDFhMWI1
MjEyNzgxZmM0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFt
LmgKKysrIGIvU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaApAQCAtMzEsMTIgKzMx
LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBTdHJpbmdQcmludFN0cmVhbSA6IHB1
YmxpYyBQcmludFN0cmVhbSB7CitjbGFzcyBTdHJpbmdQcmludFN0cmVhbSBmaW5hbCA6IHB1Ymxp
YyBQcmludFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZ1By
aW50U3RyZWFtKCk7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflN0cmluZ1ByaW50
U3RyZWFtKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5TdHJpbmdQcmludFN0cmVhbSgpIGZp
bmFsOwogICAgIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHZwcmludGYoY29uc3QgY2hh
ciogZm9ybWF0LCB2YV9saXN0KSBvdmVycmlkZSBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwg
dmFfbGlzdCkgZmluYWwgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CiAKICAgICBzaXplX3Qg
bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0OyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmluZGV4
IDI5MjJmZGZiOGQ4NGJlOGQxNWYxZTZiNDM0YTc4MDEyNDFmYjgwNzQuLjQ5NjU5ZGJhOTk5NTFi
ZmNjYzRkYzhhMDA0ZTUzMzI1MTM3MTBjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dv
cmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC01Niw5ICs1Niw5
IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8
V29ya1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6OlNlcmlhbCwg
UU9TID0gUU9TOjpEZWZhdWx0KTsKLSAgICB2aXJ0dWFsIH5Xb3JrUXVldWUoKTsKKyAgICB+V29y
a1F1ZXVlKCkgZmluYWw7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaChG
dW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgZGlzcGF0Y2hBZnRlcihTZWNvbmRzLCBGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGNvbmN1cnJlbnRBcHBseShzaXplX3Qg
aXRlcmF0aW9ucywgV1RGOjpGdW5jdGlvbjx2b2lkKHNpemVfdCBpbmRleCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3Jr
ZXJQb29sLmNwcAppbmRleCA4NTc4MDNlZDc5MDg5MWU4YWUyMDBhM2FmYzgwOWYyNjkzODNkZjY0
Li5jYjZhY2ZkOTZiZjcxYWZhNmVkZjYxOTllZjNhZjYxNjBhYTA5OTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQ
b29sLmNwcApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3Bvb2wu
c2hvdWxkU2xlZXAobG9ja2VyKTsKICAgICB9CiAKLSAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29u
c3Qgb3ZlcnJpZGUKKyAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgZmluYWwKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX3Bvb2wubmFtZSgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399104</attachid>
            <date>2020-05-11 23:30:20 -0700</date>
            <delta_ts>2020-05-11 23:39:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211772-20200511233019.patch</filename>
            <type>text/plain</type>
            <size>195488</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YWNmNzU3NGYyMDNhMTIzNjc3NjA4MDJiNzdmY2Y2Mzk1MTVhN2MxLi45NjYyNjU2NTRhYjM5MWI5
OGRlYzJiODFiODgxMzQ0ZDkyMDNkNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDIgQEAKKzIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgorCisgICAgICAgIEZpeCBleGlzdGluZyB1c2FnZSBvZiBmaW5hbC9vdmVycmlkZS92
aXJ0dWFsIGluIEpTQyBhbmQgV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTE3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEFQSS9KU0FQSVdyYXBwZXJPYmplY3QubW06CisgICAgICAgICogQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFNvdXJjZVByb3ZpZGVy
Lmg6CisgICAgICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAqIEFQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogQVBJL2dsaWIv
SlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHA6CisgICAgICAgICogQVBJL2dsaWIvSlNDV2Vha1Zh
bHVlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHA6
CisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaDoKKyAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29kZS9WYXJpYWJsZVdyaXRl
RmlyZURldGFpbC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1dhdGNocG9pbnQuaDoKKyAgICAgICAg
KiBkZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50Lmg6CisgICAg
ICAgICogZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgICogZGZnL0RGR1NuaXBwZXRQ
YXJhbXMuaDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAqIGZ0bC9G
VExTbmlwcGV0UGFyYW1zLmg6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHA6Cisg
ICAgICAgICogaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgor
ICAgICAgICAqIGhlYXAvSXNvQ2VsbFNldC5jcHA6CisgICAgICAgICogaGVhcC9Jc29DZWxsU2V0
SW5saW5lcy5oOgorICAgICAgICAqIGhlYXAvSXNvSGVhcENlbGxUeXBlLmg6CisgICAgICAgICog
aGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmg6CisgICAgICAgICogaGVhcC9QYXJhbGxlbFNv
dXJjZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmg6Cisg
ICAgICAgICogaGVhcC9TdWJzcGFjZS5jcHA6CisgICAgICAgICogaGVhcC9TdWJzcGFjZUlubGlu
ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JUYXJnZXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dERlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3Rvci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3Bw
X2dlbmVyYXRvcl90ZW1wbGF0ZXMucHk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgt
bWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1k
ZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24t
cmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5n
LWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJl
c3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5q
c29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4
cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpz
b24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9u
cy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBqaXQvSklUV29ya2xp
c3QuY3BwOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAgKiBy
dW50aW1lL0RvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAqIHJ1bnRpbWUv
RmlsZUJhc2VkRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFy
cmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNaWNyb3Rhc2suY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50Lmg6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50Lmg6CisgICAg
ICAgICogcnVudGltZS9Qcm9taXNlVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1JhbmRvbWl6
aW5nRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENhY2hlLmg6CisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
UmFyZURhdGEuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICog
cnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uaDoKKyAg
ICAgICAgKiB3YXNtL1dhc21DYWxsZWUuaDoKKyAgICAgICAgKiB3YXNtL1dhc21MTEludFBsYW4u
aDoKKyAgICAgICAgKiB3YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PTUdQbGFuLmg6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAg
ICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisKIDIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5XSBSdW4gbW9kZXJu
aXplLXVzZS1vdmVycmlkZSBvdmVyIEpTQywgdGhlbiBlbnN1cmUgYXMgbXVjaCBhcyBwb3NzaWJs
ZSBpcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBjNDhhZDJkMDg4MjgwNTFlZGMyZDBkZjM4NTRmMGEwMDQzMGY1MDY3
Li4yMzBiODVhMmViNzdkMWFmODI4YjBjMjkxZjRmYTJkYjA1MjFlMzQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDIwLTA1LTExICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KKworICAgICAgICBGaXggZXhpc3RpbmcgdXNhZ2Ugb2YgZmluYWwvb3ZlcnJpZGUvdmlydHVh
bCBpbiBKU0MgYW5kIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjExNzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0V4cGVjdGVkLmg6
CisgICAgICAgICogd3RmL0ZpbGVQcmludFN0cmVhbS5oOgorICAgICAgICAqIHd0Zi9KU09OVmFs
dWVzLmg6CisgICAgICAgICogd3RmL0xvY2tlZFByaW50U3RyZWFtLmg6CisgICAgICAgICogd3Rm
L09TTG9nUHJpbnRTdHJlYW0uaDoKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cDoKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9TaGFyZWRUYXNrLmg6
CisgICAgICAgICogd3RmL1N0cmluZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1dvcmtR
dWV1ZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmNwcDoKKwogMjAyMC0wNS0xMSAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW2JtYWxsb2Nd
W1dURl0gQWRkIGNvbXB1dGluZyBtZW1vcnkgc2l6ZSBpbXBsZW1lbnRhdGlvbiBmb3IgRnJlZUJT
RApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpp
bmRleCA5MWJjY2E1NGViOGE0NDcyYTI3ZDhjYWJjNjIzMjhmNWY3ODc2MTQyLi5lMjlmYWY5Zjhj
ZWRjYTc2ZWRhY2UzMmFmZDAxNGNkZTBhZjUyNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogCi1jbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJP
YmplY3RIYW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
Kikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29u
c3QgY2hhcioqKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqKSBmaW5hbDsKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOwogfTsKIAogc3RhdGljIEpTQVBJV3JhcHBlck9i
amVjdEhhbmRsZU93bmVyKiBqc0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQppbmRleCA2M2Q2NDkyYzJkZTQ5
YmNjNjcwNGQ3MDY3NWFiYmU4NzdmZDRkZWY3Li5jMTg3MzdiZjg3NmI2ZGQ1MjBhMzM3Mjk0Yjlj
MjIzOTI3NTk5OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFu
YWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFs
dWUubW0KQEAgLTM5LDEwICszOSwxMCBAQAogI2ltcG9ydCAiSlNDSW5saW5lcy5oIgogI2ltcG9y
dCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLWNsYXNzIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNNYW5hZ2VkVmFsdWVI
YW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6
Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU01h
bmFnZWRWYWx1ZUhhbmRsZU93bmVyJiBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0U291cmNlUHJvdmlkZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4
IDA5ZTQwMThkZDhkMjM0OTNiZmRkMzlmYTA0M2VkODM4NWRjODQyMGYuLjY3N2I3YTA5Y2VjNzlm
Y2E5NDQyNzdmNjQ4MmE3M2Y4MjliMmZmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBj
bGFzcyBKU1NjcmlwdDsKIAotY2xhc3MgSlNTY3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBK
U0M6OlNvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIEpTU2NyaXB0U291cmNlUHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gQXJncz4KICAgICBzdGF0aWMgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IGNy
ZWF0ZShKU1NjcmlwdCAqc2NyaXB0LCBBcmdzJiYuLi4gYXJncykKQEAgLTM3LDkgKzM3LDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU1NjcmlwdFNvdXJjZVByb3Zp
ZGVyKHNjcmlwdCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAgfQogCi0gICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0cmluZ1ZpZXcgc291cmNlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEpTQzo6Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5
dGVjb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZpbmFs
OworICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPEpTQzo6
Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCmluZGV4IDExNWU1MWQ0OGYwMDI5OWVh
NjNkYzc1NDAwNjc5ODJjM2QyYzAwNGIuLjc0NTRmOThiNDA5NzE5NTlmYTU5MTVjOTY0NjlkZGFj
MjIyY2YxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJh
Y2tGdW5jdGlvbi5tbQpAQCAtNTUsOCArNTUsOCBAQCBDYWxsYmFja0FyZ3VtZW50Ojp+Q2FsbGJh
Y2tBcmd1bWVudCgpCiB7CiB9CiAKLWNsYXNzIENhbGxiYWNrQXJndW1lbnRCb29sZWFuIDogcHVi
bGljIENhbGxiYWNrQXJndW1lbnQgewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2Nh
dGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFs
dWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqKSBvdmVycmlkZQorY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudEJvb2xlYW4gZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBz
ZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpT
Q29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIGZpbmFs
CiAgICAgewogICAgICAgICBib29sIHZhbHVlID0gSlNWYWx1ZVRvQm9vbGVhbihbY29udGV4dCBK
U0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVudCk7CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFy
Z3VtZW50OiZ2YWx1ZSBhdEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKQEAgLTY0LDggKzY0LDggQEAg
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4
dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBvdmVycmlkZQor
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVnZXIgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1
bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIg
YXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2Vw
dGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIFQgdmFsdWUgPSAoVClKU0M6OnRvSW50MzIo
SlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGFyZ3VtZW50LCBl
eGNlcHRpb24pKTsKQEAgLTc2LDggKzc2LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudERvdWJsZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50
IHsKLSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1
bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50RG91Ymxl
IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52b2Nh
dGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNv
bnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmluYWwK
ICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAgICAg
ICBUIHZhbHVlID0gKFQpSlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtODcsMjMgKzg3LDIzIEBAIGNsYXNzIENhbGxi
YWNrQXJndW1lbnREb3VibGUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsK
IAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEpTVmFsdWUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVu
dCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJn
dW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNW
YWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50SlNWYWx1ZSBmaW5hbCA6
IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmlu
dm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBK
U1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIEpT
VmFsdWUgKnZhbHVlID0gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjphcmd1bWVudCBpbkNv
bnRleHQ6Y29udGV4dF07CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZ2YWx1ZSBh
dEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja0FyZ3Vt
ZW50SWQgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBD
YWxsYmFja0FyZ3VtZW50SWQgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAg
dm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1i
ZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiop
IGZpbmFsCiAgICAgewogICAgICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9PYmplY3QoY29udGV4dCwg
YXJndW1lbnQpOwogICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomdmFsdWUgYXRJbmRl
eDphcmd1bWVudE51bWJlcl07CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudE9m
Q2xhc3MgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CitjbGFzcyBDYWxsYmFja0FyZ3VtZW50
T2ZDbGFzcyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKIHB1YmxpYzoKICAgICBD
YWxsYmFja0FyZ3VtZW50T2ZDbGFzcyhDbGFzcyBjbHMpCiAgICAgICAgIDogbV9jbGFzcyhjbHMp
CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lk
IHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pIG92ZXJyaWRlCisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBO
U0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBh
cmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNT
RVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiBjb250ZXh0UmVmID0gW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXTsKQEAgLTEzNCw4ICsx
MzQsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDbGFzcz4gbV9jbGFzczsKIH07CiAKLWNs
YXNzIENhbGxiYWNrQXJndW1lbnROU051bWJlciA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNOdW1iZXIg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb051bWJlcihbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBh
cmd1bWVudCwgZXhjZXB0aW9uKTsKQEAgLTE0NSw4ICsxNDUsOCBAQCBjbGFzcyBDYWxsYmFja0Fy
Z3VtZW50TlNOdW1iZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAot
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudE5TU3RyaW5nIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU1N0cmlu
ZyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9j
YXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpj
b250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAg
ICAgaWQgdmFsdWUgPSB2YWx1ZVRvU3RyaW5nKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0s
IGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTU2LDggKzE1Niw4IEBAIGNsYXNzIENhbGxiYWNr
QXJndW1lbnROU1N0cmluZyA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9Owog
Ci1jbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEYXRlIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU0RhdGUg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb0RhdGUoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJn
dW1lbnQsIGV4Y2VwdGlvbik7CkBAIC0xNjcsOCArMTY3LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudE5TRGF0ZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9OwogCi1jbGFz
cyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKLSAg
ICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51
bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSBmaW5h
bCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0
LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFsCiAgICAg
ewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAgICAgaWQg
dmFsdWUgPSB2YWx1ZVRvQXJyYXkoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJndW1l
bnQsIGV4Y2VwdGlvbik7CkBAIC0xNzgsOCArMTc4LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVu
dE5TQXJyYXkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAotY2xhc3Mg
Q2FsbGJhY2tBcmd1bWVudE5TRGljdGlvbmFyeSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEaWN0aW9u
YXJ5IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52
b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmlu
YWwKICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAg
ICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9EaWN0aW9uYXJ5KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGNsYXNzIENh
bGxiYWNrQXJndW1lbnROU0RpY3Rpb25hcnkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAg
ICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdCA6IHB1YmxpYyBDYWxsYmFj
a0FyZ3VtZW50IHsKK2NsYXNzIENhbGxiYWNrQXJndW1lbnRTdHJ1Y3QgZmluYWwgOiBwdWJsaWMg
Q2FsbGJhY2tBcmd1bWVudCB7CiBwdWJsaWM6CiAgICAgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdChO
U0ludm9jYXRpb24gKmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlw
ZSkKICAgICAgICAgOiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9u
KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVt
YmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYq
KSBvdmVycmlkZQorICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRl
Z2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1l
bnQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgSlNWYWx1ZSAqdmFsdWUgPSBb
SlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmFyZ3VtZW50IGluQ29udGV4dDpjb250ZXh0XTsK
ICAgICAgICAgW21fY29udmVyc2lvbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDp2YWx1ZV07
CkBAIC0yMTAsNyArMjEwLDcgQEAgcHJpdmF0ZToKICAgICBTdHJ1Y3RCdWZmZXIgbV9idWZmZXI7
CiB9OwogCi1jbGFzcyBBcmd1bWVudFR5cGVEZWxlZ2F0ZSB7CitjbGFzcyBBcmd1bWVudFR5cGVE
ZWxlZ2F0ZSBmaW5hbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8Q2Fs
bGJhY2tBcmd1bWVudD4gUmVzdWx0VHlwZTsKIApAQCAtMjg5LDE1ICsyODksMTUgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICosIEpTQ29udGV4dCAq
LCBKU1ZhbHVlUmVmKikgPSAwOwogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRWb2lkIDogcHVi
bGljIENhbGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKiwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNr
UmVzdWx0Vm9pZCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CisgICAgSlNWYWx1ZVJl
ZiBnZXQoTlNJbnZvY2F0aW9uICosIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoW2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSk7CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRJ
ZCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7Ci0gICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYqKSBvdmVycmlk
ZQorY2xhc3MgQ2FsbGJhY2tSZXN1bHRJZCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7
CisgICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgaWQgdmFsdWU7CiAg
ICAgICAgIFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMDYsOCArMzA2
LDggQEAgY2xhc3MgQ2FsbGJhY2tSZXN1bHRJZCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIDog
cHVibGljIENhbGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitj
bGFzcyBDYWxsYmFja1Jlc3VsdE51bWVyaWMgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQg
eworICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0
ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIFQgdmFsdWU7CiAg
ICAgICAgIFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMTUsOCArMzE1
LDggQEAgY2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIDogcHVibGljIENhbGxiYWNrUmVzdWx0
IHsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja1Jlc3VsdEJvb2xlYW4gOiBwdWJsaWMgQ2Fs
bGJhY2tSZXN1bHQgewotICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlv
biwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJpZGUKK2NsYXNzIENhbGxi
YWNrUmVzdWx0Qm9vbGVhbiBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CisgICAgSlNW
YWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQs
IEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgYm9vbCB2YWx1ZTsKICAgICAgICAg
W2ludm9jYXRpb24gZ2V0UmV0dXJuVmFsdWU6JnZhbHVlXTsKQEAgLTMyNCw3ICszMjQsNyBAQCBj
bGFzcyBDYWxsYmFja1Jlc3VsdEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgewogICAg
IH0KIH07CiAKLWNsYXNzIENhbGxiYWNrUmVzdWx0U3RydWN0IDogcHVibGljIENhbGxiYWNrUmVz
dWx0IHsKK2NsYXNzIENhbGxiYWNrUmVzdWx0U3RydWN0IGZpbmFsIDogcHVibGljIENhbGxiYWNr
UmVzdWx0IHsKIHB1YmxpYzoKICAgICBDYWxsYmFja1Jlc3VsdFN0cnVjdChOU0ludm9jYXRpb24g
KmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlwZSkKICAgICAgICAg
OiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9uKQpAQCAtMzMzLDcg
KzMzMyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEpTVmFsdWVSZWYg
Z2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVl
UmVmKikgb3ZlcnJpZGUKKyAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKmludm9jYXRp
b24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZpbmFsCiAgICAgewogICAgICAg
ICBbaW52b2NhdGlvbiBnZXRSZXR1cm5WYWx1ZTptX2J1ZmZlcl07CiAKQEAgLTM1MCw3ICszNTAs
NyBAQCBwcml2YXRlOgogICAgIFN0cnVjdEJ1ZmZlciBtX2J1ZmZlcjsKIH07CiAKLWNsYXNzIFJl
c3VsdFR5cGVEZWxlZ2F0ZSB7CitjbGFzcyBSZXN1bHRUeXBlRGVsZWdhdGUgZmluYWwgewogcHVi
bGljOgogICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENhbGxiYWNrUmVzdWx0PiBSZXN1bHRU
eXBlOwogCkBAIC00MDksNyArNDA5LDcgQEAgZW51bSBDYWxsYmFja1R5cGUgewogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsIHsKK2NsYXNzIE9iakND
YWxsYmFja0Z1bmN0aW9uSW1wbCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsKE5TSW52b2NhdGlvbiAqaW52
b2NhdGlvbiwgQ2FsbGJhY2tUeXBlIHR5cGUsIENsYXNzIGluc3RhbmNlQ2xhc3MsIHN0ZDo6dW5p
cXVlX3B0cjxDYWxsYmFja0FyZ3VtZW50PiBhcmd1bWVudHMsIHN0ZDo6dW5pcXVlX3B0cjxDYWxs
YmFja1Jlc3VsdD4gcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcAppbmRleCBlMmI2NTkyOTIy
MDc1MGNiYWRjOGUzNDJhZDE3ODFiMTlmMjE2ZDM5Li5kOGFmZTgwOGYxMTAyNjM0YmNjMDkwNWRm
NzQzZTJjZTc4ZmYxZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcApAQCAtMzEsOSArMzEsOSBA
QAogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCi1jbGFzcyBKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5kbGVPd25lciA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5k
bGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0g
ICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikg
ZmluYWw7CiB9OwogCiBzdGF0aWMgSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0SGFuZGxlT3duZXIq
IGpzQVBJV3JhcHBlckdsb2JhbE9iamVjdEhhbmRsZU93bmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcApp
bmRleCBlYTM0MTIzNjczYTEzM2MwMTkzOWFmNjU2Nzk4NzJhN2U3OTFkYTk4Li4yMzM0YTFiNTdm
MjllYzIwZjQ5YjkxOWQyMTQ5ZDFiN2U4MDAxZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCkBAIC0z
MywxMCArMzMsMTAgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAotY2xhc3MgSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNBUElXcmFwcGVyT2JqZWN0SGFu
ZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgot
ICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCopIG92ZXJy
aWRlOwotICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIq
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKikgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwg
Y29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5k
bGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1dlYWtWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDV2Vha1ZhbHVlLmNwcAppbmRleCBlNWMwNGVjNzg1ZTEz
NzU0MTIzMmQyZWRmNWJiZDk1NmE4ZTlhMGJiLi5kZjk3OTliZTg4YmRjM2VhZWQwOWFiMWUwYjQ0
NDE0OGYwMDhkZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDV2Vha1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlND
V2Vha1ZhbHVlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBqc2NXZWFrVmFsdWVD
bGVhcihKU0NXZWFrVmFsdWUqIHdlYWtWYWx1ZSkKICAgICBwcml2LT53ZWFrVmFsdWVSZWYuY2xl
YXIoKTsKIH0KIAotY2xhc3MgSlNDV2Vha1ZhbHVlSGFuZGxlT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNDV2Vha1ZhbHVlSGFuZGxlT3duZXIgZmluYWwgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZvaWQgZmluYWxpemUo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGUKKyAgICB2
b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZp
bmFsCiAgICAgewogICAgICAgICBhdXRvKiB3ZWFrVmFsdWUgPSBKU0NfV0VBS19WQUxVRShjb250
ZXh0KTsKICAgICAgICAganNjV2Vha1ZhbHVlQ2xlYXIod2Vha1ZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuY3BwCmluZGV4IDY5YjVlZTEwNmIyZTgxNzU1Nzc3OTcxYmUyNzE0YzRhMWE5OGNiYmMuLjhm
YjkxODNhZDFmMjIwMGI1NGQxZjU2MTVlNzU3N2ZhODY5MWUyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1z
LmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEp1bXBUeXBlLCB0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIFJlc3VsdFR5cGUs
IHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWNsYXNzIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcldpdGhB
cmd1bWVudHMgOiBwdWJsaWMgQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXM6OlNsb3dQYXRoQ2FsbEdl
bmVyYXRvciB7CitjbGFzcyBTbG93UGF0aENhbGxHZW5lcmF0b3JXaXRoQXJndW1lbnRzIGZpbmFs
IDogcHVibGljIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zOjpTbG93UGF0aENhbGxHZW5lcmF0b3Ig
ewogcHVibGljOgogICAgIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcldpdGhBcmd1bWVudHMoSnVtcFR5
cGUgZnJvbSwgQ0NhbGxIZWxwZXJzOjpMYWJlbCB0bywgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uLCBS
ZXN1bHRUeXBlIHJlc3VsdCwgc3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+IGFyZ3VtZW50cykKICAg
ICAgICAgOiBtX2Zyb20oZnJvbSkKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uczsKICAgICB9CiAKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGdl
bmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBlcnMmIGppdCkgb3ZlcnJpZGUKKyAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBl
cnMmIGppdCkgZmluYWwKICAgICB7CiAgICAgICAgIG1fZnJvbS5saW5rKCZqaXQpOwogICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvbnMgPSBnZW5lcmF0ZUltcGwoc3RhdGUs
IHVzZWRSZWdpc3RlcnNCeVNuaXBwZXQsIGppdCwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0
ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4oKSk7CkBAIC05
Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnM7CiAgICAgfQog
Ci1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIEp1bXBUeXBlIG1fZnJvbTsKICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIG1fdG87CiAgICAgRnVuY3Rpb25UeXBlIG1fZnVuY3Rpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBh
cmFtcy5oCmluZGV4IDJjMmJhNWY1NTBlZWE5MDQ2ODQ0ZWUyODkyNjA5OWZjNzc4OGQxYWMuLjIz
ZGQ3N2IwMjg3YWY2YTJkMjJjZTM5ODBhNmMzZGFmYjMwZWM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5o
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBzdHJ1Y3QgQWNjZXNzR2VuZXJh
dGlvblN0YXRlOwogCi1jbGFzcyBBY2Nlc3NDYXNlU25pcHBldFBhcmFtcyA6IHB1YmxpYyBTbmlw
cGV0UGFyYW1zIHsKK2NsYXNzIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zIGZpbmFsIDogcHVibGlj
IFNuaXBwZXRQYXJhbXMgewogcHVibGljOgogICAgIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zKFZN
JiB2bSwgVmVjdG9yPFZhbHVlPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBW
ZWN0b3I8RlBSUmVnPiYmIGZwU2NyYXRjaCkKICAgICAgICAgOiBTbmlwcGV0UGFyYW1zKHZtLCBX
VEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSkKQEAg
LTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZW1pdFNs
b3dQYXRoQ2FsbHMoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnNCeVNuaXBwZXQsIENDYWxsSGVscGVycyYpOwogCiBwcml2YXRlOgotI2RlZmlu
ZSBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAu
Li4pIHZvaWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2Fs
bEhlbHBlcnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJH
U19fPiBhcmdzKSBvdmVycmlkZTsKKyNkZWZpbmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMo
T3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgLi4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwo
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVz
dWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FSR1NfXz4gYXJncykgZmluYWw7CiAgICAgU05JUFBF
VF9TTE9XX1BBVEhfQ0FMTFMoSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMpCiAjdW5kZWYgSlND
X0RFRklORV9DQUxMX09QRVJBVElPTlMKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQ
YXRoQ2FsbEdlbmVyYXRvcj4+IG1fZ2VuZXJhdG9yczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggODM0MDgyZDgyN2FlY2ZiZTQ3NmYxZWIwNTdi
MTg1OWVlOWFiNDJiYi4uNWFhN2RiNDQyMGVmZWI3YWUzMzRiYjM5MWUwMzFmMGQ5M2Q3N2U0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTI2
Niw3ICsyNjYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtJiBv
dXQsIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBjb25zdCBJQwogCiBuYW1lc3BhY2UgewogCi1j
bGFzcyBQdXRUb1Njb3BlRmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsKK2NsYXNzIFB1
dFRvU2NvcGVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwgewogcHVibGljOgog
ICAgIFB1dFRvU2NvcGVGaXJlRGV0YWlsKENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCkKICAgICAgICAgOiBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC0yNzQs
NyArMjc0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0IG92ZXJyaWRlCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBvdXQucHJpbnQoIkxpbmtpbmcgcHV0
X3RvX3Njb3BlIGluICIsIEZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAoanNDYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KG1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSkpLCAiIGZvciAiLCBtX2lk
ZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAppbmRleCBhZWIzNDU2
MjFmYmI2YjFjZmU2YzUyMmE3YjFkYzBhYzNiMmFjY2I0Li4yNzU0YjMxZWUxNmIzODhjZjE3MTU5
YTM2NjZlMGJiZTc1MDJjYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKQEAg
LTY0LDcgKzY0LDcgQEAgY2xhc3MgQWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dh
dGNocG9pbnQgZmluYWwgOiBwdWJsaWMgQWRhcHRpdmVJbmZlcnIKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBZGFwdGl2ZVZhbHVlU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCk7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKLSAgICB2b2lkIGhhbmRsZUZpcmUoVk0mLCBj
b25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29u
c3QgRmlyZURldGFpbCYpIGZpbmFsOwogCiBwdWJsaWM6CiAgICAgQWRhcHRpdmVWYWx1ZVN0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24m
IGtleSwgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvJiBob2xkZXIpCkBAIC03OSw3ICs3
OSw3IEBAIHByaXZhdGU6CiAgICAgUGFja2VkUHRyPFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHVi
SW5mbz4gbV9ob2xkZXI7CiB9OwogCi1jbGFzcyBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1Yklu
Zm8geworY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvIGZpbmFsIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8pOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaAppbmRleCA0
MmZmYjFiNTk5ZjdiMTljMzM5ZTViODA5NTc4MjE4Yzg2ZGM3MjcwLi5iOGRkYmRjYjM2ZTRmYzg5
NzJiMWU2NWE5M2ZkNjUwNzJjZTAyNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTT2JqZWN0OwogY2xhc3MgUHJvcGVydHlOYW1l
OwogCi1jbGFzcyBWYXJpYWJsZVdyaXRlRmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsK
K2NsYXNzIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwg
ewogcHVibGljOgogICAgIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsKEpTT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFByb3BlcnR5TmFtZSYgbmFtZSkKICAgICAgICAgOiBtX29iamVjdChvYmplY3QpCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAg
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHRvdWNoKFZNJiwgV2F0Y2hwb2lu
dFNldCosIEpTT2JqZWN0KiwgY29uc3QgUHJvcGVydHlOYW1lJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCmluZGV4IDUxYmNlMzgwMDM0ZTA1YjYxZmVl
NjI5ZWU2ODQxMTdlMDIyOTNhYjguLjc3YzZkZmMyZjA4ZDY4ZGNkMDIxNzMzMjgwMzFmYWJmNDFm
NTBhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBv
aW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApA
QCAtNTcsMjEgKzU3LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0ID0gMDsKIH07CiAKLWNsYXNzIFN0cmluZ0ZpcmVEZXRhaWwgOiBwdWJsaWMg
RmlyZURldGFpbCB7CitjbGFzcyBTdHJpbmdGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVE
ZXRhaWwgewogcHVibGljOgogICAgIFN0cmluZ0ZpcmVEZXRhaWwoY29uc3QgY2hhciogc3RyaW5n
KQogICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgY2hh
ciogbV9zdHJpbmc7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KLWNsYXNzIExh
enlGaXJlRGV0YWlsIDogcHVibGljIEZpcmVEZXRhaWwgeworY2xhc3MgTGF6eUZpcmVEZXRhaWwg
ZmluYWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CiBwdWJsaWM6CiAgICAgTGF6eUZpcmVEZXRhaWwo
Y29uc3QgVHlwZXMmLi4uIGFyZ3MpCiAgICAgewpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIH0pOwogICAgIH0KIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dCBvdmVycmlkZSB7IG1fbGFtYmRhKG91dCk7IH0KKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QgZmluYWwgeyBtX2xhbWJkYShvdXQpOyB9CiAKIHByaXZhdGU6CiAgICAgU2Nv
cGVkTGFtYmRhPHZvaWQoUHJpbnRTdHJlYW0mKT4gbV9sYW1iZGE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0
Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2ZUluZmVycmVk
UHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuaAppbmRleCBkMTdlMTk4ZjczMDNlYWU3MGFhMDBhOGJl
MmYxMDNiMDM5NTY0NTZhLi4yNzc2ZDkxY2FiNWFlNzFiNTVhNzViNzU5YTFkMmYzMGMwZmJkNTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkYXB0aXZlSW5mZXJy
ZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmgKQEAgLTM3LDkg
KzM3LDkgQEAgcHVibGljOgogICAgIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hw
b2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYsIENvZGVCbG9jayopOwogCiBwcml2
YXRlOgotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURl
dGFpbCYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRmlyZShWTSYsIGNvbnN0IEZpcmVEZXRh
aWwmKSBmaW5hbDsKIAogICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2s7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0
b3IuaAppbmRleCA1NWE5ODlkZTFiZjJhNmI5MGQ5ZjUyZjJlNjA5NzVmM2IwN2IxMTg1Li5lOTc4
YjZmODA4MDczMjgyZWZhYjRjMmFkOThmMTE1MTg0NGJiNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaApA
QCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNs
YXNzIEFycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2Vu
ZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdD4geworY2xhc3MgQXJyYXlpZnlTbG93UGF0
aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQXJyYXlpZnlTbG93UGF0aEdlbmVy
YXRvcigKICAgICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBmcm9tLCBTcGVj
dWxhdGl2ZUpJVCogaml0LCBOb2RlKiBub2RlLCBHUFJSZWcgYmFzZUdQUiwKQEAgLTY4LDggKzY4
LDggQEAgcHVibGljOgogICAgICAgICBtX2JhZEluZGV4aW5nVHlwZUp1bXAgPSBqaXQtPnNwZWN1
bGF0aW9uQ2hlY2soQmFkSW5kZXhpbmdUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbCht
X2Jhc2VHUFIpLCBudWxscHRyKTsKICAgICB9CiAgICAgCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitwcml2YXRlOgor
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBmaW5hbAogICAg
IHsKICAgICAgICAgbGlua0Zyb20oaml0KTsKICAgICAgICAgCkBAIC0xMzIsOCArMTMyLDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAganVtcFRvKGppdCk7CiAgICAgfQotICAgIAot
cHJpdmF0ZToKKwogICAgIE5vZGVUeXBlIG1fb3A7CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBt
X3N0cnVjdHVyZTsKICAgICBBcnJheU1vZGUgbV9hcnJheU1vZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJh
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNs
b3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggZmVlZmVmYzZkOWE0ZTMzNGI1MGEwNzE1MmNkZjNjNGEz
MDJiOTc5OC4uMjNmZDQ1NDdjNTliOTJhOTM0Mzc0MmE1ODRmN2RkY2RmMjkxZjllYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93
UGF0aEdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFy
cmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIENhbGxBcnJheUFsbG9jYXRvclNs
b3dQYXRoR2VuZXJhdG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3Q+IHsKK2NsYXNzIENhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0
aEdlbmVyYXRvcigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZyb20sIFNwZWN1
bGF0aXZlSklUKiBqaXQsIFBfSklUT3BlcmF0aW9uX1ZtU3RaQiBmdW5jdGlvbiwKQEAgLTQ5LDgg
KzQ5LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1w
bChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICB2
b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZh
dGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFs
CiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAgLTYyLDggKzYyLDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBqaXQtPm1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9y
ZXN1bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSksIG1fc3RvcmFnZUdQUik7CiAg
ICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KLSAgICAKLXByaXZhdGU6CisKICAgICBQX0pJVE9w
ZXJhdGlvbl9WbVN0WkIgbV9mdW5jdGlvbjsKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAg
R1BSUmVnIG1fc3RvcmFnZUdQUjsKQEAgLTcyLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbiwgMj4gbV9wbGFuczsKIH07CiAKLWNsYXNzIENhbGxB
cnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVNpemVTbG93UGF0aEdlbmVyYXRvciA6IHB1YmxpYyBK
dW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0PiB7CitjbGFz
cyBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTaXplU2xvd1BhdGhHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdD4gewogcHVibGljOgogICAgIENhbGxBcnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVNpemVT
bG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZyb20s
IFNwZWN1bGF0aXZlSklUKiBqaXQsIFBfSklUT3BlcmF0aW9uX0dTdFpCIGZ1bmN0aW9uLApAQCAt
ODksOCArODgsOCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnNJbXBsKGZhbHNlLCBtX3BsYW5zLCByZXN1bHRHUFIpOwogICAgIH0KIAotcHJvdGVjdGVkOgot
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQor
cHJpdmF0ZToKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpAQCAtMTExLDggKzExMCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgaml0LT5tX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICBq
dW1wVG8oaml0KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRPcGVyYXRpb25f
R1N0WkIgbV9mdW5jdGlvbjsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fY29udGlndW91c1N0
cnVjdHVyZTsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fYXJyYXlTdG9yYWdlT3JDb250aWd1
b3VzU3RydWN0dXJlOwpAQCAtMTIzLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFNp
bGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDI+IG1fcGxhbnM7CiB9OwogCi1jbGFzcyBDYWxsQXJyYXlB
bGxvY2F0b3JXaXRoVmFyaWFibGVTdHJ1Y3R1cmVWYXJpYWJsZVNpemVTbG93UGF0aEdlbmVyYXRv
ciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBM
aXN0PiB7CitjbGFzcyBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTdHJ1Y3R1cmVWYXJp
YWJsZVNpemVTbG93UGF0aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhH
ZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQ2FsbEFy
cmF5QWxsb2NhdG9yV2l0aFZhcmlhYmxlU3RydWN0dXJlVmFyaWFibGVTaXplU2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9tLCBTcGVjdWxhdGl2
ZUpJVCogaml0LCBQX0pJVE9wZXJhdGlvbl9HU3RaQiBmdW5jdGlvbiwKQEAgLTEzOSw4ICsxMzcs
OCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZh
bHNlLCBtX3BsYW5zLCByZXN1bHRHUFIpOwogICAgIH0KIAotcHJvdGVjdGVkOgotICAgIHZvaWQg
Z2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQorcHJpdmF0ZToK
KyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwKICAg
ICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpAQCAtMTUxLDggKzE0OSw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgaml0LT5tX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICBqdW1wVG8oaml0
KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRPcGVyYXRpb25fR1N0WkIgbV9m
dW5jdGlvbjsKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyIG1fZ2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Ns
b3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggMGRkYjMwODA3MWEwMGJkOGU0NjZkNTA5NmYxNTJjZmI3
NjUyOTQ5Mi4uMzAyMDUwMzhkMmEzZDQ2MTg0YmM3NjZhMDA3YWRlNzdiMzM4ZDYyNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1l
bnRzU2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhbGxDcmVhdGVEaXJlY3RBcmd1bWVudHNTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0zNSw3ICsz
NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIFRoaXMgY2FsbHMg
b3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzIGJ1dCB0aGVuIHJlc3RvcmVzIHRoZSB2YWx1
ZSBvZiBsZW5ndGhHUFIuCi1jbGFzcyBDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhH
ZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdD4geworY2xhc3MgQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRz
U2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9t
LCBTcGVjdWxhdGl2ZUpJVCogaml0LCBHUFJSZWcgcmVzdWx0R1BSLCBSZWdpc3RlcmVkU3RydWN0
dXJlIHN0cnVjdHVyZSwKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAg
ICB9CiAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVK
SVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNw
ZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAg
LTY0LDggKzY0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MobV9yZXN1bHRHUFIsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSksIG1f
bGVuZ3RoR1BSKTsKICAgICAgICAganVtcFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToK
KwogICAgIEdQUlJlZyBtX3Jlc3VsdEdQUjsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fc3Ry
dWN0dXJlOwogICAgIEdQUlJlZyBtX2xlbmd0aEdQUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IuaAppbmRleCBiZGU2Njc2MGFjNGVkOGM2OWVhOTgzMGMwY2U2ZWFmMTNjMjRjNDk4
Li5mYWJjZTAxODJkZTkwMDI1M2YwZGYzZjBiZjJlOTMwMTg3YzBmZjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2Vu
ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0
QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wPiB7CitjbGFzcyBTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXA+
IHsKIHB1YmxpYzoKICAgICBTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcigKICAg
ICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXAmIGZyb20sIFNwZWN1bGF0aXZlSklUKiBq
aXQsIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0ciBn
bG9iYWxPYmplY3QsIEdQUlJlZyBiYXNlUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcpCkBAIC00Nyw4
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5zaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0lt
cGwoZmFsc2UsIG1fcGxhbnMsIGV4dHJhY3RSZXN1bHQocmVzdWx0UmVncykpOwogICAgIH0KICAg
ICAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQq
IGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1
bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAg
ICAgICAKQEAgLTc3LDggKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAganVt
cFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIEpTVmFsdWVSZWdzIG1fcmVz
dWx0UmVnczsKICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIgbV9nbG9iYWxPYmplY3Q7
CiAgICAgR1BSUmVnIG1fYmFzZVJlZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2xvd1BhdGhHZW5lcmF0b3IuaAppbmRleCBmMWQzYjBiODcxNGJjMmExZDA1OWM4NDdmYTU1
YTIxZmMxYzNlMTU0Li45ODFlODZjZDdkZGIwMWNhNDk1NDNiNGU1Mzc2MDAxYmU4MTYwMTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5o
CkBAIC0xNTYsOCArMTU2LDcgQEAgcHJvdGVjdGVkOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
SnVtcFR5cGUsIHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgotY2xhc3MgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRo
R2VuZXJhdG9yCi0gICAgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBS
ZXN1bHRUeXBlPiB7CitjbGFzcyBDYWxsUmVzdWx0QW5kQXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBSZXN1bHRU
eXBlPiB7CiBwdWJsaWM6CiAgICAgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJh
dG9yKAogICAgICAgICBKdW1wVHlwZSBmcm9tLCBTcGVjdWxhdGl2ZUpJVCogaml0LCBGdW5jdGlv
blR5cGUgZnVuY3Rpb24sCkBAIC0xNjgsNyArMTY3LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAgICAgdGVtcGxhdGU8c2l6ZV90Li4uIEFyZ3VtZW50
c0luZGV4PgogICAgIHZvaWQgdW5wYWNrQW5kR2VuZXJhdGUoU3BlY3VsYXRpdmVKSVQqIGppdCwg
c3RkOjppbmRleF9zZXF1ZW5jZTxBcmd1bWVudHNJbmRleC4uLj4pCiAgICAgewpAQCAtMTgwLDcg
KzE3OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dGVhckRvd24oaml0KTsKICAgICB9
CiAKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJp
ZGUKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwK
ICAgICB7CiAgICAgICAgIHVucGFja0FuZEdlbmVyYXRlKGppdCwgc3RkOjptYWtlX2luZGV4X3Nl
cXVlbmNlPHN0ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4o
KSk7CiAgICAgfQpAQCAtMjA5LDcgKzIwOCw3IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8U2xv
d1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoQ2FsbCgKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSnVt
cFR5cGUsIHR5cGVuYW1lIERlc3RpbmF0aW9uVHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZSwgdW5z
aWduZWQgbnVtYmVyT2ZBc3NpZ25tZW50cz4KLWNsYXNzIEFzc2lnbmluZ1Nsb3dQYXRoR2VuZXJh
dG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZT4geworY2xhc3Mg
QXNzaWduaW5nU2xvd1BhdGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRo
R2VuZXJhdG9yPEp1bXBUeXBlPiB7CiBwdWJsaWM6CiAgICAgQXNzaWduaW5nU2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIEp1bXBUeXBlIGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQsCkBAIC0y
MjMsOCArMjIyLDggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi1wcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitw
cml2YXRlOgorICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBm
aW5hbAogICAgIHsKICAgICAgICAgdGhpcy0+bGlua0Zyb20oaml0KTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbnVtYmVyT2ZBc3NpZ25tZW50czsgaS0tOykKQEAgLTIzMiw3ICsyMzEsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmp1bXBUbyhqaXQpOwogICAgIH0KIAotcHJpdmF0
ZToKICAgICBEZXN0aW5hdGlvblR5cGUgbV9kZXN0aW5hdGlvbltudW1iZXJPZkFzc2lnbm1lbnRz
XTsKICAgICBTb3VyY2VUeXBlIG1fc291cmNlW251bWJlck9mQXNzaWdubWVudHNdOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU25pcHBldFBhcmFtcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbmlwcGV0UGFyYW1zLmgKaW5kZXggNmFmMTQ2
MjI4YWI2OWQyZmVhMGVhZDllN2EyZWI3NTlmYmE5NDQxNC4uZTQyYzI3MGU0MDMzNzZjYjY1OTBi
M2FiODA5ZTk2NTVlMGMwMDdmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTbmlwcGV0UGFyYW1zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
bmlwcGV0UGFyYW1zLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogICAgIAogY2xhc3MgU3BlY3VsYXRpdmVKSVQ7CiAKLWNsYXNzIFNuaXBwZXRQYXJh
bXMgOiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKK2NsYXNzIFNuaXBwZXRQYXJhbXMgZmlu
YWwgOiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBTbmlwcGV0UGFy
YW1zKFNwZWN1bGF0aXZlSklUKiBqaXQsIFZlY3RvcjxWYWx1ZT4mJiByZWdzLCBWZWN0b3I8R1BS
UmVnPiYmIGdwU2NyYXRjaCwgVmVjdG9yPEZQUlJlZz4mJiBmcFNjcmF0Y2gpCiAgICAgICAgIDog
SlNDOjpTbmlwcGV0UGFyYW1zKGppdC0+dm0oKSwgV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNj
cmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0jZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKE9wZXJh
dGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBsKENDYWxs
SGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5
cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIG92ZXJyaWRlOworI2RlZmluZSBKU0Nf
REVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAuLi4pIHZv
aWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2FsbEhlbHBl
cnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJHU19fPiBh
cmdzKSBmaW5hbDsKICAgICBTTklQUEVUX1NMT1dfUEFUSF9DQUxMUyhKU0NfREVGSU5FX0NBTExf
T1BFUkFUSU9OUykKICN1bmRlZiBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDY3MjBlMjNlOTNlOTczNDI2
ODVlMWZiMWRhNzBhYjgxNTM0ZTIxYmYuLmJjZjBlNjlkOGEzMWI2Mzg1OGEwYjA1ZjhlYTg0MmMx
NWRjODY5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBA
IC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCi1jbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgeworY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJsaWMg
QXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBp
bnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBs
b2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQpAQCAtNDcsMTMg
KzQ3LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAg
ewogICAgICAgICByZXR1cm4gbV93b3JrbGlzdC5tX3RocmVhZE5hbWUuZGF0YSgpOwogICAgIH0K
IAotcHJvdGVjdGVkOgotICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKSBvdmVycmlkZQorcHJpdmF0ZToKKyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGxvY2tlcikgZmluYWwKICAgICB7CiAgICAgICAgIGlmIChtX3dvcmtsaXN0
Lm1fcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7
CkBAIC03Myw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICAKICAgICBjbGFzcyBXb3JrU2NvcGU7
CiAgICAgZnJpZW5kIGNsYXNzIFdvcmtTY29wZTsKLSAgICBjbGFzcyBXb3JrU2NvcGUgeworICAg
IGNsYXNzIFdvcmtTY29wZSBmaW5hbCB7CiAgICAgcHVibGljOgogICAgICAgICBXb3JrU2NvcGUo
VGhyZWFkQm9keSYgdGhyZWFkKQogICAgICAgICAgICAgOiBtX3RocmVhZCh0aHJlYWQpCkBAIC05
Myw3ICs5Myw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgVGhyZWFkQm9keSYgbV90aHJlYWQ7CiAg
ICAgfTsKICAgICAKLSAgICBXb3JrUmVzdWx0IHdvcmsoKSBvdmVycmlkZQorICAgIFdvcmtSZXN1
bHQgd29yaygpIGZpbmFsCiAgICAgewogICAgICAgICBXb3JrU2NvcGUgd29ya1Njb3BlKCp0aGlz
KTsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIFdvcmtS
ZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KICAgICAKLSAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkg
b3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkgZmluYWwKICAgICB7CiAgICAgICAg
IGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCksIG1fd29ya2xp
c3QsICI6IFRocmVhZCBzdGFydGVkIik7CiAgICAgICAgIApAQCAtMTUwLDcgKzE1MCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgbV9jb21waWxhdGlvblNjb3BlID0gbWFrZVVuaXF1ZTxDb21waWxh
dGlvblNjb3BlPigpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29u
c3QgQWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZQorICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhj
b25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewogICAgICAgICAvLyBXZSdyZSBob2xk
aW5nIHRoZSBXb3JrbGlzdDo6bV9sb2NrLCBzbyB3ZSBzaG91bGQgYmUgY2FyZWZ1bCBub3QgdG8g
ZGVhZGxvY2suCiAgICAgICAgIApAQCAtMTYyLDcgKzE2Miw2IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgbV9wbGFuID0gbnVsbHB0cjsKICAgICB9CiAKLXByaXZhdGU6CiAgICAgV29ya2xpc3QmIG1f
d29ya2xpc3Q7CiAgICAgVGhyZWFkRGF0YSYgbV9kYXRhOwogICAgIGludCBtX3JlbGF0aXZlUHJp
b3JpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNuaXBwZXRQ
YXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCmlu
ZGV4IGYxM2ZkMTI2M2IyOWNhNzg5YzRjYjdhNTRiYjE4MjUyMzQxNmZiODIuLjFhZjJiZDM4ZjRk
YjY4NjQxNjUwZDAxNzFkMDViOThjYTRlM2Y0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKIAogY2xhc3MgU3RhdGU7CiAKLWNsYXNzIFNuaXBwZXRQYXJhbXMg
OiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKK2NsYXNzIFNuaXBwZXRQYXJhbXMgZmluYWwg
OiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBTbmlwcGV0UGFyYW1z
KFN0YXRlJiBzdGF0ZSwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
LCBERkc6Ok5vZGUqIG5vZGUsIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25z
LCBWZWN0b3I8VmFsdWU+JiYgcmVncywgVmVjdG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3Rv
cjxGUFJSZWc+JiYgZnBTY3JhdGNoKQogICAgICAgICA6IEpTQzo6U25pcHBldFBhcmFtcyhzdGF0
ZS52bSgpLCBXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3Jh
dGNoKSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSNkZWZp
bmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMoT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwg
Li4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0Nh
bGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FS
R1NfXz4gYXJncykgb3ZlcnJpZGU7CisjZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05T
KE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBs
KENDYWxsSGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJl
c3VsdFR5cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIGZpbmFsOwogICAgIFNOSVBQ
RVRfU0xPV19QQVRIX0NBTExTKEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKQogI3VuZGVmIEpT
Q19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0Jsb2NrRGlyZWN0b3J5LmNwcAppbmRleCAxMmM5YzZmNGMyZjE3YzYzZWZiMzQzNzY2YmMxNjZi
NjkyMGQzZDRmLi41Y2UyMjYxODY5ZDhjZTA5MGQ1ZDdkZGRlMjEyMWExNzk0NGQyMDEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCkBAIC0zMDks
MTQgKzMwOSwxNCBAQCB2b2lkIEJsb2NrRGlyZWN0b3J5Ojphc3NlcnROb1Vuc3dlcHQoKQogCiBS
ZWZQdHI8U2hhcmVkVGFzazxNYXJrZWRCbG9jazo6SGFuZGxlKigpPj4gQmxvY2tEaXJlY3Rvcnk6
OnBhcmFsbGVsTm90RW1wdHlCbG9ja1NvdXJjZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1Ymxp
YyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZp
bmFsIDogcHVibGljIFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4gewogICAgIHB1
YmxpYzoKICAgICAgICAgVGFzayhCbG9ja0RpcmVjdG9yeSYgZGlyZWN0b3J5KQogICAgICAgICAg
ICAgOiBtX2RpcmVjdG9yeShkaXJlY3RvcnkpCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgTWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgb3ZlcnJpZGUKKyAgICAgICAg
TWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKG1fZG9uZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCAw
NWNmMjgyMGYzMjRhYTVjMDlhMzRkMjAxMjYwNjY2YzUyZTM2ODg2Li41MTVhZmYxNjc3ODZiYmMx
ODA2NDA1ZWJiZjQ1ZThmNDdjMDhiOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0yOSwxNiArMjksMTYgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKK2NsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgR0NBY3Rpdml0eUNh
bGxiYWNrIHsKIHB1YmxpYzoKICAgICBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqKTsKIAot
ICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb0NvbGxlY3Rp
b24oVk0mKSBmaW5hbDsKIAotcHJvdGVjdGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhl
YXAmKSBvdmVycmlkZTsKLSAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBvdmVycmlkZTsKK3ByaXZhdGU6Cisg
ICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoSGVhcCYpIGZpbmFsOworICAgIGRvdWJsZSBnY1RpbWVT
bGljZShzaXplX3QgYnl0ZXMpIGZpbmFsOworICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIGZp
bmFsOwogfTsKIAogaW5saW5lIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlD
YWxsYmFjazo6dHJ5Q3JlYXRlRWRlblRpbWVyKEhlYXAqIGhlYXApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNjUwYWUx
Mzg3ZjE2YWEwMDNkN2RkYjk4NmYwNzU4ZmM5ZjFlYzQ4MS4uZmExY2EzNWI5MTgyNWI1Njc2NTMy
NmNhZTVmNmZiZmM4ZTEzYjBiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMjksMTkgKzI5LDE5IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rpdml0eUNhbGxi
YWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFsIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFj
ayB7CiBwdWJsaWM6CiAgICAgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKik7CiAKLSAgICB2
b2lkIGRvQ29sbGVjdGlvbihWTSYpIG92ZXJyaWRlOworICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZN
JikgZmluYWw7CiAKICAgICBib29sIGRpZEdDUmVjZW50bHkoKSBjb25zdCB7IHJldHVybiBtX2Rp
ZEdDUmVjZW50bHk7IH0KICAgICB2b2lkIHNldERpZEdDUmVjZW50bHkoKSB7IG1fZGlkR0NSZWNl
bnRseSA9IHRydWU7IH0KIAotcHJvdGVjdGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhl
YXAmKSBvdmVycmlkZTsKLSAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBvdmVycmlkZTsKK3ByaXZhdGU6Cisg
ICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoSGVhcCYpIGZpbmFsOworICAgIGRvdWJsZSBnY1RpbWVT
bGljZShzaXplX3QgYnl0ZXMpIGZpbmFsOworICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIGZp
bmFsOwogCiAgICAgYm9vbCBtX2RpZEdDUmVjZW50bHkgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggODZkZDZmYWY0ZTIwZTZlODdhYTY0Njc2ZGVhYWI0
NWE5MzEwYTgzNS4uNGI5MGFhYzc5MGM5NmY5MmVlYWJjZDE5NjNkZTYxNDVlZDBhZjZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBwcml2YXRl
OgogCiB9IC8vIGFub255bW91cyBuYW1lc3BhY2UKIAotY2xhc3MgSGVhcDo6SGVhcFRocmVhZCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgeworY2xhc3MgSGVhcDo6SGVhcFRocmVhZCBmaW5hbCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIEhlYXBUaHJlYWQoY29uc3Qg
QWJzdHJhY3RMb2NrZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKICAgICAgICAgOiBBdXRvbWF0aWNU
aHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbi5j
b3B5UmVmKCkpCkBAIC0yNDUsMTMgKzI0NSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0IGNoYXIqIG5h
bWUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuICJKU0MgSGVhcCBDb2xsZWN0
b3IgVGhyZWFkIjsKICAgICB9CiAgICAgCi1wcm90ZWN0ZWQ6Ci0gICAgUG9sbFJlc3VsdCBwb2xs
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIG92ZXJyaWRlCitwcml2YXRlOgorICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsK
ICAgICAgICAgaWYgKG1faGVhcC5tX3RocmVhZFNob3VsZFN0b3ApIHsKICAgICAgICAgICAgIG1f
aGVhcC5ub3RpZnlUaHJlYWRTdG9wcGluZyhsb2NrZXIpOwpAQCAtMjY1LDIzICsyNjUsMjIgQEAg
cHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKICAgICB9CiAgICAg
Ci0gICAgV29ya1Jlc3VsdCB3b3JrKCkgb3ZlcnJpZGUKKyAgICBXb3JrUmVzdWx0IHdvcmsoKSBm
aW5hbAogICAgIHsKICAgICAgICAgbV9oZWFwLmNvbGxlY3RJbkNvbGxlY3RvclRocmVhZCgpOwog
ICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7CiAgICAgfQogICAgIAotICAgIHZv
aWQgdGhyZWFkRGlkU3RhcnQoKSBvdmVycmlkZQorICAgIHZvaWQgdGhyZWFkRGlkU3RhcnQoKSBm
aW5hbAogICAgIHsKICAgICAgICAgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlw
ZTo6TWFpbik7CiAgICAgfQogCi0gICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJikgb3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9oZWFwLm1fY29sbGVjdG9yVGhy
ZWFkSXNSdW5uaW5nID0gZmFsc2U7CiAgICAgfQogCi1wcml2YXRlOgogICAgIEhlYXAmIG1faGVh
cDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCBiMGIzNjFiMWEwZjZkZWRj
ZDNmOTYzM2ZkYTc0MmEzZmZhZmI4NjdjLi43N2Q0ZGUxODMyNmE3YzAzOWUwYzg1MjQ4N2Q3MTk0
M2Y4M2FiOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00MzEsMTIgKzQzMSwx
MiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluRXh0cmFNZW1v
cnkgPSAyNTY7CiAgICAgCi0gICAgY2xhc3MgQ0ZpbmFsaXplck93bmVyIDogcHVibGljIFdlYWtI
YW5kbGVPd25lciB7Ci0gICAgICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0KSBvdmVycmlkZTsKKyAgICBjbGFzcyBDRmluYWxpemVyT3duZXIgZmluYWwgOiBw
dWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKKyAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIH07CiAKLSAgICBjbGFzcyBMYW1iZGFG
aW5hbGl6ZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewotICAgICAgICB2b2lkIGZp
bmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgY2xh
c3MgTGFtYmRhRmluYWxpemVyT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsK
KyAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZp
bmFsOwogICAgIH07CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWRBbGxvY2F0
aW9uKHNpemVfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5oCmluZGV4IDEyNjQ2ZGViYjBiZjI3NjZhMzA1NzEzNjMzNGJmNGQ0MjdiNGZlMDku
LjRkZTM4NjA3YmY3ZWNiOGY3NmY4OTY2Njg3ZjAxYmQ4YzFhY2ZhMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSGVhcDsKIGNsYXNzIEJsb2NrRGlyZWN0b3J5Owog
Ci1jbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgeworY2xh
c3MgSW5jcmVtZW50YWxTd2VlcGVyIGZpbmFsIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNSdW5Mb29wVGltZXI7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqKTsKQEAgLTQwLDcgKzQwLDcg
QEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnRTd2VlcGluZyhIZWFw
Jik7CiAgICAgdm9pZCBmcmVlRmFzdE1hbGxvY01lbW9yeUFmdGVyU3dlZXBpbmcoKSB7IG1fc2hv
dWxkRnJlZUZhc3RNYWxsb2NNZW1vcnlBZnRlclN3ZWVwaW5nID0gdHJ1ZTsgfQogCi0gICAgdm9p
ZCBkb1dvcmsoVk0mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvV29yayhWTSYpIGZpbmFsOwogICAg
IHZvaWQgc3RvcFN3ZWVwaW5nKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0lzb0NlbGxTZXQuY3BwCmluZGV4IDc4NmQxMTU4ZjA5YzZkN2FlZDFlYWU1YzFlMGQyMGYz
MjRkM2RkYmMuLmIyMGQ2MTQwZTJiZjI0MzYxMzRhNDg3NDY1YmJmMjMzNjhmZTBmMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwCkBAIC00OCw3ICs0OCw3IEBA
IElzb0NlbGxTZXQ6On5Jc29DZWxsU2V0KCkKIAogUmVmPFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6
OkhhbmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVsTm90RW1wdHlNYXJrZWRCbG9ja1NvdXJj
ZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1YmxpYyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpI
YW5kbGUqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZpbmFsIDogcHVibGljIFNoYXJlZFRhc2s8TWFy
a2VkQmxvY2s6OkhhbmRsZSooKT4gewogICAgIHB1YmxpYzoKICAgICAgICAgVGFzayhJc29DZWxs
U2V0JiBzZXQpCiAgICAgICAgICAgICA6IG1fc2V0KHNldCkKQEAgLTU2LDcgKzU2LDcgQEAgUmVm
PFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVs
Tm90RW1wdHlNYXJrZWRCbG9ja1MKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICBNYXJrZWRCbG9jazo6SGFuZGxlKiBydW4oKSBvdmVycmlkZQorICAgICAgICBNYXJrZWRC
bG9jazo6SGFuZGxlKiBydW4oKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9k
b25lKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0lzb0NlbGxTZXRJbmxpbmVzLmgKaW5kZXggZjRmYWVmNzE0YWZjZGNlZTZh
MDEzNjNmNGVhODdjMDYxMjhlYmUyOS4uZGMyYzhiNzg3OGVjZjVmNjAzNzMyNjE2ODA3NTRiZTU4
MjhhNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNl
dElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0SW5s
aW5lcy5oCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgSXNvQ2VsbFNldDo6Zm9yRWFjaE1hcmtlZENl
bGwoY29uc3QgRnVuYyYgZnVuYykKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiBSZWY8U2hhcmVk
VGFzazx2b2lkKFNsb3RWaXNpdG9yJik+PiBJc29DZWxsU2V0Ojpmb3JFYWNoTWFya2VkQ2VsbElu
UGFyYWxsZWwoY29uc3QgRnVuYyYgZnVuYykKIHsKLSAgICBjbGFzcyBUYXNrIDogcHVibGljIFNo
YXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPiB7CisgICAgY2xhc3MgVGFzayBmaW5hbCA6IHB1
YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4gewogICAgIHB1YmxpYzoKICAgICAg
ICAgVGFzayhJc29DZWxsU2V0JiBzZXQsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgICAgICAgICA6
IG1fc2V0KHNldCkKQEAgLTEwMyw3ICsxMDMsNyBAQCBSZWY8U2hhcmVkVGFzazx2b2lkKFNsb3RW
aXNpdG9yJik+PiBJc29DZWxsU2V0Ojpmb3JFYWNoTWFya2VkQ2VsbEluUGFyYWxsZWwoY29ucwog
ICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgcnVuKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKSBvdmVycmlkZQorICAgICAgICB2b2lkIHJ1bihTbG90VmlzaXRvciYgdmlz
aXRvcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgd2hpbGUgKE1hcmtlZEJsb2NrOjpI
YW5kbGUqIGhhbmRsZSA9IG1fYmxvY2tTb3VyY2UtPnJ1bigpKSB7CiAgICAgICAgICAgICAgICAg
dW5zaWduZWQgYmxvY2tJbmRleCA9IGhhbmRsZS0+aW5kZXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgKaW5kZXggNjYxYjZmY2ZhOGYxZjUyM2Y1ZDNl
MjkwODllMDlkY2Y1ZjcyOWQ4NS4uODVmYTllOTM4NzVmZGE1NDIyYWNkMjIyZmEyZmYyOWViMGIy
ODhjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgK
QEAgLTQyLDggKzQyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxJc29I
ZWFwQ2VsbFR5cGU+KENlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uID8gTmVlZHNEZXN0cnVjdGlv
biA6IERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sICZDZWxsVHlwZTo6ZGVzdHJveSk7CiAgICAgfQog
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFu
ZGxlJiwgRnJlZUxpc3QqKSBvdmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRl
c3Ryb3koVk0mLCBKU0NlbGwqKSBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
IGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmLCBGcmVlTGlzdCopIGZpbmFsOworICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCopIGZpbmFsOwogCiAg
ICAgQUxXQVlTX0lOTElORSB2b2lkIG9wZXJhdG9yKCkoVk0mLCBKU0NlbGwqIGNlbGwpIGNvbnN0
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5l
ZEhlYXBDZWxsVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5lZEhl
YXBDZWxsVHlwZS5oCmluZGV4IDRiNTY2MzVjNGE0MGIxOTUwMmNkMDY3ODQ4NzljN2ZiOGQ1M2I1
N2MuLjVkNmU3Njg2NDY5MTQyMzliNzQyMDA4Y2JmYTQxZDAxMmU0NWYzMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0lubGluZWRIZWFwQ2VsbFR5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmgKQEAg
LTQ1LDEyICs0NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdm9pZCBm
aW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiBoYW5kbGUsIEZyZWVMaXN0KiBmcmVlTGlz
dCkgb3ZlcnJpZGUKKyAgICB2b2lkIGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmIGhh
bmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgaGFuZGxlLmZp
bmlzaFN3ZWVwS25vd2luZ0hlYXBDZWxsVHlwZShmcmVlTGlzdCwgRGVzdHJveUZ1bmMoKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKiBjZWxsKSBvdmVycmlkZQorICAg
IHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCogY2VsbCkgZmluYWwKICAgICB7CiAgICAgICAgIENl
bGxUeXBlOjpkZXN0cm95KGNlbGwpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1BhcmFsbGVsU291cmNlQWRhcHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvUGFyYWxsZWxTb3VyY2VBZGFwdGVyLmgKaW5kZXggZjRiNjQ1NjI3NGMwZmMzY2Vk
YzhkYjI2NjliOTIwNTFiMjk2Zjc1Mi4uYmZmNDNkY2NmYWFiMDBmNWMxZWI3Y2ZkYTZmMGYwYTg2
MDA1ZmVkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUGFyYWxsZWxT
b3VyY2VBZGFwdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUGFyYWxsZWxT
b3VyY2VBZGFwdGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBPdXRlclR5cGUsIHR5cGVuYW1lIElubmVyVHlwZSwgdHlwZW5hbWUgVW53
cmFwRnVuYz4KLWNsYXNzIFBhcmFsbGVsU291cmNlQWRhcHRlciA6IHB1YmxpYyBTaGFyZWRUYXNr
PElubmVyVHlwZSgpPiB7CitjbGFzcyBQYXJhbGxlbFNvdXJjZUFkYXB0ZXIgZmluYWwgOiBwdWJs
aWMgU2hhcmVkVGFzazxJbm5lclR5cGUoKT4gewogcHVibGljOgogICAgIFBhcmFsbGVsU291cmNl
QWRhcHRlcihSZWZQdHI8U2hhcmVkVGFzazxPdXRlclR5cGUoKT4+IG91dGVyU291cmNlLCBjb25z
dCBVbndyYXBGdW5jJiB1bndyYXBGdW5jKQogICAgICAgICA6IG1fb3V0ZXJTb3VyY2Uob3V0ZXJT
b3VyY2UpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAg
IElubmVyVHlwZSBydW4oKSBvdmVycmlkZQorICAgIElubmVyVHlwZSBydW4oKSBmaW5hbAogICAg
IHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwogICAgICAgICBkbyB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlU
aW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIu
aAppbmRleCBmNmI5NTI0ZWUyZjRjMWRjOTQ3MmFlMmI0NGUyNzJlY2E3MmRjZWFkLi5kZDE1ODNm
NThhZWEzZmI4ZGMyODM0ODdmOThjNjNiNjljZjU4YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmgKQEAgLTMxLDEyICszMSwxMiBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGVhcDsKIAotY2xhc3MgU3RvcElmTmVjZXNzYXJ5
VGltZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgeworY2xhc3MgU3RvcElmTmVjZXNzYXJ5VGlt
ZXIgZmluYWwgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogcHVibGljOgogICAgIHVzaW5nIEJh
c2UgPSBKU1J1bkxvb3BUaW1lcjsKICAgICBleHBsaWNpdCBTdG9wSWZOZWNlc3NhcnlUaW1lcihW
TSYpOwogICAgIAotICAgIHZvaWQgZG9Xb3JrKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dv
cmsoVk0mKSBmaW5hbDsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlU29vbigpOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcAppbmRleCA2MTNiYTUyZTcyMGQwN2M5MGFm
YzU1MGE5Mjg1YWZhNGJhYzcxZWRhLi44NGUzNGMzZGFjZWQxZWEzYTM1NWJjODA4NjNjNGUzOGVh
MGZhNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2UuY3BwCkBAIC05MCwx
NCArOTAsMTQgQEAgTWFya2VkQmxvY2s6OkhhbmRsZSogU3Vic3BhY2U6OmZpbmRFbXB0eUJsb2Nr
VG9TdGVhbCgpCiAKIFJlZjxTaGFyZWRUYXNrPEJsb2NrRGlyZWN0b3J5KigpPj4gU3Vic3BhY2U6
OnBhcmFsbGVsRGlyZWN0b3J5U291cmNlKCkKIHsKLSAgICBjbGFzcyBUYXNrIDogcHVibGljIFNo
YXJlZFRhc2s8QmxvY2tEaXJlY3RvcnkqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZpbmFsIDogcHVi
bGljIFNoYXJlZFRhc2s8QmxvY2tEaXJlY3RvcnkqKCk+IHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFRhc2soQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSkKICAgICAgICAgICAgIDogbV9kaXJlY3Rv
cnkoZGlyZWN0b3J5KQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEJs
b2NrRGlyZWN0b3J5KiBydW4oKSBvdmVycmlkZQorICAgICAgICBCbG9ja0RpcmVjdG9yeSogcnVu
KCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2xvY2spOwogICAgICAgICAgICAgQmxvY2tEaXJlY3RvcnkqIHJlc3VsdCA9IG1fZGlyZWN0b3J5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2VJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAppbmRleCBm
NGZmNzBjYzllODVmODhiYTNlMGZiMWU0MTMwNGM4MDE4NGU0MDJjLi4wNjJhZDk2MTQ5MjA1ZjUx
OWFkOGQ5Mzg2MzdhOGNlMWZjYjQzOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TdWJzcGFjZUlubGluZXMuaApAQCAtODgsNyArODgsNyBAQCB2b2lkIFN1YnNwYWNlOjpmb3JF
YWNoTWFya2VkQ2VsbChjb25zdCBGdW5jJiBmdW5jKQogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4K
IFJlZjxTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IFN1YnNwYWNlOjpmb3JFYWNoTWFy
a2VkQ2VsbEluUGFyYWxsZWwoY29uc3QgRnVuYyYgZnVuYykKIHsKLSAgICBjbGFzcyBUYXNrIDog
cHVibGljIFNoYXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPiB7CisgICAgY2xhc3MgVGFzayBm
aW5hbCA6IHB1YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4gewogICAgIHB1Ymxp
YzoKICAgICAgICAgVGFzayhTdWJzcGFjZSYgc3Vic3BhY2UsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAg
ICAgICAgICAgICA6IG1fc3Vic3BhY2Uoc3Vic3BhY2UpCkBAIC05Nyw3ICs5Nyw3IEBAIFJlZjxT
aGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IFN1YnNwYWNlOjpmb3JFYWNoTWFya2VkQ2Vs
bEluUGFyYWxsZWwoY29uc3QKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICB2b2lkIHJ1bihTbG90VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBy
dW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHdo
aWxlIChNYXJrZWRCbG9jazo6SGFuZGxlKiBoYW5kbGUgPSBtX2Jsb2NrU291cmNlLT5ydW4oKSkg
ewogICAgICAgICAgICAgICAgIGhhbmRsZS0+Zm9yRWFjaE1hcmtlZENlbGwoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggZTUzY2M2
MGFhYjM1ZWI1NTU2ODU0NDJkZmVmMTc1OTBiODMxYTVjMi4uY2RlZTQ1ZjJkNmIzMzc3ZjFlMDUy
M2NmZTQwMWFlMjhiY2YyZGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNDUsMTEgKzQ1LDExIEBAIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNb2R1bGU7CiBjbGFzcyBJbnNwZWN0b3JFbnZp
cm9ubWVudDsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHQgOiBwdWJs
aWMgSW5qZWN0ZWRTY3JpcHRCYXNlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVjdGVk
U2NyaXB0IGZpbmFsIDogcHVibGljIEluamVjdGVkU2NyaXB0QmFzZSB7CiBwdWJsaWM6CiAgICAg
SW5qZWN0ZWRTY3JpcHQoKTsKICAgICBJbmplY3RlZFNjcmlwdChEZXByZWNhdGVkOjpTY3JpcHRP
YmplY3QsIEluc3BlY3RvckVudmlyb25tZW50Kik7Ci0gICAgfkluamVjdGVkU2NyaXB0KCkgb3Zl
cnJpZGU7CisgICAgfkluamVjdGVkU2NyaXB0KCkgZmluYWw7CiAKICAgICBzdHJ1Y3QgRXhlY3V0
ZU9wdGlvbnMgewogICAgICAgICBTdHJpbmcgb2JqZWN0R3JvdXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQuaAppbmRleCBlMTcyNzkzNzlhZDM3ZGIwZTFmMzdjN2ZjOTM2ZDNiM2U0OWI2NjE4Li40
ZGE3NDczYjMwYmIyMzNjMzEwZmM0NjZkMWFiNmEzMzJjZGVmNmNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCopOwotICAgIH5KU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQoKSBvdmVycmlkZSB7IH0KKyAgICB+SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50KCkgZmluYWwgeyB9CiAKICAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3RlbUNvbnNvbGUoKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCk7CkBAIC00OCwxOSAr
NDgsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dChJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KiBhZ2VudCkgeyBtX3NjcmlwdFByb2ZpbGVy
QWdlbnQgPSBhZ2VudDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOwotICAgIHZvaWQgY291
bnRSZXNldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBwcm9maWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2ZpbGVFbmQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGFrZUhlYXBTbmFw
c2hvdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0aW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVs
KSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVMb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgdGltZUVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVjb3JkKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlY29y
ZEVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzY3JlZW5zaG90KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNvdW50KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlND
OjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQg
cHJvZmlsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgZmluYWw7
CisgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBmaW5hbDsKKyAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIGZpbmFsOworICAgIHZvaWQgdGltZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgZmluYWw7CisgICAgdm9pZCB0aW1l
TG9nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIHRpbWVFbmQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRFbmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRB
cmd1bWVudHM+JiYpIGZpbmFsOworICAgIHZvaWQgc2NyZWVuc2hvdChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CiAKICAgICB2b2lkIHdhcm5Vbmlt
cGxlbWVudGVkKGNvbnN0IFN0cmluZyYgbWV0aG9kKTsKICAgICB2b2lkIGludGVybmFsQWRkTWVz
c2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVm
PFNjcmlwdEFyZ3VtZW50cz4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
aAppbmRleCA2MWJmMDQxYjA4YzM5NGVkY2YyZjQ2ODc0NmM3MzQ2YWUzZjQwYjQyLi5jZGYzZGU3
NzUzNmY1Y2YwN2Y3YzJmYmZlMDU2ODg2NTVkZTc4YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyIGZpbmFsCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTQzo6SlNHbG9i
YWxPYmplY3QmKTsKLSAgICB+SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKCkgb3Zl
cnJpZGU7CisgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpIGZpbmFsOwog
CiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9t
YXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7CiAgICAgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJik7CkBAIC04MywyMiArODMsMjIgQEAgcHVibGlj
OgogCiAgICAgSlNDOjpDb25zb2xlQ2xpZW50KiBjb25zb2xlQ2xpZW50KCkgY29uc3Q7CiAKLSAg
ICBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29s
IGNhbkFjY2Vzc0luc3BlY3RlZFNjcmlwdFN0YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsSGFu
ZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW5zcGVjdG9y
RXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgZnJvbnRlbmRJbml0aWFsaXplZCgpIG92ZXJyaWRlOworICAgIGJvb2wgZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgY2FuQWNjZXNzSW5zcGVjdGVkU2Ny
aXB0U3RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGxIYW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIo
KSBjb25zdCBmaW5hbDsKKyAgICBJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5k
bGVyKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBmcm9udGVuZEluaXRpYWxpemVkKCkgZmluYWw7
CiAgICAgV1RGOjpTdG9wd2F0Y2gmIGV4ZWN1dGlvblN0b3B3YXRjaCgpIGNvbnN0IGZpbmFsOwot
ICAgIEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkg
b3ZlcnJpZGU7Ci0gICAgSlNDOjpWTSYgdm0oKSBvdmVycmlkZTsKKyAgICBKU0dsb2JhbE9iamVj
dFNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIGZpbmFsOworICAgIEpTQzo6
Vk0mIHZtKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykKLSAgICBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRh
YmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
YXVnbWVudGluZ0NsaWVudDsgfSAKLSAgICB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29u
dHJvbGxlckNsaWVudChBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVu
dCkgb3ZlcnJpZGUgeyBtX2F1Z21lbnRpbmdDbGllbnQgPSBjbGllbnQ7IH0KKyAgICBBdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJv
bGxlckNsaWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXVnbWVudGluZ0NsaWVudDsgfSAK
KyAgICB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudChBdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkgZmluYWwgeyBtX2F1Z21lbnRp
bmdDbGllbnQgPSBjbGllbnQ7IH0KIAotICAgIGNvbnN0IEZyb250ZW5kUm91dGVyJiBmcm9udGVu
ZFJvdXRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCk7
IH0KLSAgICBCYWNrZW5kRGlzcGF0Y2hlciYgYmFja2VuZERpc3BhdGNoZXIoKSBvdmVycmlkZSB7
IHJldHVybiBtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpOyB9Ci0gICAgdm9pZCBhcHBlbmRFeHRy
YUFnZW50KHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2VudEJhc2U+KSBvdmVycmlkZTsKKyAg
ICBjb25zdCBGcm9udGVuZFJvdXRlciYgZnJvbnRlbmRSb3V0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2Zyb250ZW5kUm91dGVyLmdldCgpOyB9CisgICAgQmFja2VuZERpc3BhdGNoZXImIGJh
Y2tlbmREaXNwYXRjaGVyKCkgZmluYWwgeyByZXR1cm4gbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQo
KTsgfQorICAgIHZvaWQgYXBwZW5kRXh0cmFBZ2VudChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
QWdlbnRCYXNlPikgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlw
dERlYnVnU2VydmVyLmgKaW5kZXggYTE5ODQ0OGExZmZkZDFjM2IwMTliYWRmOGI4NjhhNThiYzA3
ZjI2Yi4uZGFhYmNmNzY0ZTE3ZDFlZDZkY2Y3NmNjNTlmYzM5ZTdlYjllNzg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERl
YnVnU2VydmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTM1LDI1ICszNSwyNSBAQCBjbGFzcyBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyIGZpbmFsIDogcHVibGljIFNjcmlwdERlYnVnU2Vy
dmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyKEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKLSAgICB+SlNH
bG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlIHsgfQorICAgIH5KU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyKCkgZmluYWwgeyB9CiAKICAgICBKU0M6OkpTR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdDsgfQog
CiAgICAgc3RhdGljIFJ1bkxvb3BNb2RlIHJ1bkxvb3BNb2RlKCk7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBhdHRhY2hEZWJ1Z2dlcigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGV0YWNoRGVidWdnZXIo
Ym9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaERlYnVnZ2Vy
KCkgZmluYWw7CisgICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihib29sIGlzQmVpbmdEZXN0cm95ZWQp
IGZpbmFsOwogCi0gICAgdm9pZCBkaWRQYXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpIG92ZXJyaWRlOwotICAg
IGJvb2wgaXNDb250ZW50U2NyaXB0KEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVj
dCopIGZpbmFsIHsgfQorICAgIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0dsb2JhbE9iamVjdCop
IGZpbmFsIHsgfQorICAgIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBmaW5hbDsKKyAg
ICBib29sIGlzQ29udGVudFNjcmlwdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5PVEU6IEN1cnJlbnRseSBhbGwgZXhjZXB0aW9u
cyBhcmUgcmVwb3J0ZWQgYXQgdGhlIEFQSSBib3VuZGFyeSB0aHJvdWdoIHJlcG9ydEFQSUV4Y2Vw
dGlvbi4KICAgICAvLyBVbnRpbCBhIHRpbWUgY29tZXMgd2hlcmUgYW4gZXhjZXB0aW9uIGNhbiBi
ZSBjYXVzZWQgb3V0c2lkZSBvZiB0aGUgQVBJIChlLmcuIHNldFRpbWVvdXQKICAgICAvLyBvciBz
b21lIG90aGVyIGFzeW5jIG9wZXJhdGlvbiBpbiBhIHB1cmUgSlNDb250ZXh0KSB3ZSBjYW4gaWdu
b3JlIGV4Y2VwdGlvbnMgcmVwb3J0ZWQgaGVyZS4KLSAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qKSBjb25zdCBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNl
cHRpb24qKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xv
YmFsT2JqZWN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggZjk3OTVmMDM4ZDQ2NTUwODQ1Zjcz
ZGM5MTI2NmVhMDI3YWEyNjdjYS4uNmFkN2Q1MDEyODY4N2I2NjU0YThlOWZlMmU1ZWQ4NzkwYTE3
MjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVj
dGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTc2NSw3ICs3NjUsNyBAQCBwdWJsaWM6CiAKICAg
ICBIYXNoU2V0PEpTQ2VsbCo+JiBob2xkZXJzKCkgeyByZXR1cm4gbV9ob2xkZXJzOyB9CiAKLSAg
ICB2b2lkIGFuYWx5emVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6
OlJvb3RNYXJrUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKKyAgICB2b2lkIGFuYWx5emVFZGdlKEpT
Q2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJlYXNv
bikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVCh0byk7CiAgICAgICAgIEFTU0VSVCh0by0+
dm0oKS5oZWFwUHJvZmlsZXIoKS0+YWN0aXZlSGVhcEFuYWx5emVyKCkgPT0gdGhpcyk7CkBAIC03
OTAsMTQgKzc5MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGVsc2UgaWYgKCFmcm9tIHx8IHJlYXNv
biAhPSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpCiAgICAgICAgICAgICBtX3Jv
b3RzVG9JbmNsdWRlLmFkZCh0byk7CiAgICAgfQotICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFt
ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCopIG92ZXJy
aWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLSAgICB2b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwg
SlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqKSBvdmVycmlkZSB7IGFuYWx5emVFZGdlKGZy
b20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9Ci0gICAgdm9pZCBh
bmFseXplSW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QpIG92ZXJy
aWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLQotICAgIHZvaWQgYW5hbHl6ZU5vZGUoSlNDZWxsKikgb3ZlcnJpZGUgeyB9Ci0g
ICAgdm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBj
b25zdCBjaGFyKikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChKU0NlbGwqLCB2b2lkKikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBzZXRMYWJlbEZvckNlbGwo
SlNDZWxsKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBhbmFseXplUHJv
cGVydHlOYW1lRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBs
KikgZmluYWwgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpOb25lKTsgfQorICAgIHZvaWQgYW5hbHl6ZVZhcmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBm
cm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCopIGZpbmFsIHsgYW5hbHl6ZUVkZ2Uo
ZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6Tm9uZSk7IH0KKyAgICB2b2lk
IGFuYWx5emVJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50MzJfdCkgZmlu
YWwgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpO
b25lKTsgfQorCisgICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxsKEpTQ2VsbCosIGNvbnN0
IGNoYXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldFdyYXBwZWRPYmplY3RGb3JDZWxsKEpTQ2Vs
bCosIHZvaWQqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldExhYmVsRm9yQ2VsbChKU0NlbGwqLCBj
b25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAogI2lmbmRlZiBOREVCVUcKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCmluZGV4IGEyMWE1ODk0YWI3MzI2
NGM4ZmE0NzE2YmZhYzY5ODg4MjhhOGQ0MjYuLjQ1YWRkYTJhODY5OTE5NWRiODlmMWYwNDJkMzUz
ZWU3ZjRkYzlmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaApAQCAtNDcsMTYgKzQ3LDE2IEBAIGNsYXNzIEpT
X0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFn
ZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgSW5zcGVjdG9yQWdlbnQoQWdlbnRDb250ZXh0Jik7Ci0gICAgfkluc3BlY3RvckFnZW50KCkg
b3ZlcnJpZGU7CisgICAgfkluc3BlY3RvckFnZW50KCkgZmluYWw7CiAKICAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmRE
aXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbml0aWFs
aXplZChFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIGZpbmFsOwogCiAgICAgLy8gQ29tbWFuZExpbmVB
UEkKICAgICB2b2lkIGluc3BlY3QoUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q+JiYgb2JqZWN0VG9JbnNwZWN0LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGhpbnRzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clNjcmlwdFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAppbmRleCA5NzkxMDU2YzkyNDA5
MGNjNjNiZWY4MTc0Mzk0ZjUxY2I2OGZkYmMwLi43ZTdjZGM5Zjk3NTA2Nzc2NjI5NzQwYWFkY2I1
NGZiNGRhMDBkMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5o
CkBAIC00NCwyMCArNDQsMjAgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yU2Ny
aXB0UHJvZmlsZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2UKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFn
ZW50KEFnZW50Q29udGV4dCYpOwotICAgIH5JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KCkg
b3ZlcnJpZGU7CisgICAgfkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKSBmaW5hbDsKIAog
ICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91
dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gU2NyaXB0
UHJvZmlsZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmco
RXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0
VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgZmluYWw7
CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBmaW5hbDsKIAogICAgIC8vIEpT
Qzo6RGVidWdnZXI6OlByb2ZpbGluZ0NsaWVudAotICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU2Vjb25kcyB3aWxsRXZhbHVhdGVTY3JpcHQoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMsIEpTQzo6UHJvZmlsaW5n
UmVhc29uKSBvdmVycmlkZTsKKyAgICBib29sIGlzQWxyZWFkeVByb2ZpbGluZygpIGNvbnN0IGZp
bmFsOworICAgIFNlY29uZHMgd2lsbEV2YWx1YXRlU2NyaXB0KCkgZmluYWw7CisgICAgdm9pZCBk
aWRFdmFsdWF0ZVNjcmlwdChTZWNvbmRzLCBKU0M6OlByb2ZpbGluZ1JlYXNvbikgZmluYWw7CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBhZGRFdmVudChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBl
bmRUaW1lLCBKU0M6OlByb2ZpbGluZ1JlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaApp
bmRleCAxZWI3YWJiMmZhMjFkN2E4ZWMwODMzMTYwZjUzZTVjNTIzZWM0MzE3Li5iOTI5ZGRmZmUy
OWMzZmIwODhhYjY3MTQwODdjOTkzMDJjMjc1MjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50
LmgKQEAgLTM3LDIwICszNywyMCBAQCBjbGFzcyBJbnNwZWN0b3JUYXJnZXQ7CiAKIHR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JU
YXJnZXRBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBUYXJnZXRCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIgeworY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9y
VGFyZ2V0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgVGFy
Z2V0QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bnNwZWN0b3JUYXJnZXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRSb3V0ZXImLCBCYWNrZW5kRGlz
cGF0Y2hlciYpOwotICAgIH5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpIG92ZXJyaWRlOworICAgIH5J
bnNwZWN0b3JUYXJnZXRBZ2VudCgpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNl
CiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBC
YWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAvLyBUYXJnZXRCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHNldFBhdXNlT25TdGFydChFcnJvclN0cmluZyYs
IGJvb2wgcGF1c2VPblN0YXJ0KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3VtZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGF1c2VP
blN0YXJ0KEVycm9yU3RyaW5nJiwgYm9vbCBwYXVzZU9uU3RhcnQpIGZpbmFsOworICAgIHZvaWQg
cmVzdW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCkgZmluYWw7CiAgICAg
dm9pZCBzZW5kTWVzc2FnZVRvVGFyZ2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0YXJn
ZXRJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKIAogICAgIC8vIFRhcmdldCBsaWZl
Y3ljbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCmluZGV4IDQ5MjFkMzMwNmVk
NTdiYjQwOWM4MTY3MWFjMTNjMmY0MzIxMDNiYzguLjdkNDY3MGQwNGRjN2ZkMzMwODNhMTUwNjFk
Mzc3NjViMWE2YzNlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCkBAIC0z
OCwxMCArMzgsMTAgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50IGZpbmFsIDogcHVi
bGljIEluc3BlY3RvckF1ZGl0QWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0FnZW50Q29udGV4dCYpOwot
ICAgIH5KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoKSBvdmVycmlkZTsKKyAgICB+SlNHbG9iYWxP
YmplY3RBdWRpdEFnZW50KCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpIG92ZXJyaWRlOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsK
IAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0
RGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKaW5kZXggZDc2MDU3MTM3NTVmYTc4Yzk0ZGEx
MzIxZmRlZmI4ODc3NzczMjJmMS4uM2I4OGRlYWI3NzUzZWE1ZGExYWE3M2ZjMDJiMmEzZTI3MWMz
ZTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE4
ICszNiwxOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0
JiwgSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7Ci0gICAgfkpTR2xvYmFsT2JqZWN0RGVidWdnZXJB
Z2VudCgpIG92ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoKSBmaW5h
bDsKIAogICAgIC8vIFNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rp
b25Mb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92
ZXJyaWRlOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsKIAogICAgIC8vIE5P
VEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBuZWVkIHRvIG11dGUgYSBjb25z
b2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2VudCB0byB0aGUgY29uc29sZSBv
dXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBvYmplY3QuCi0gICAgdm9pZCBt
dXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJy
aWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIHVubXV0
ZUNvbnNvbGUoKSBmaW5hbCB7IH0KIAogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9jb25z
b2xlQWdlbnQgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKaW5kZXggYTM0N2RlNGVmMGFjODY0NWRkZTU2NWEzNjBhMGQ3NWU1Y2U5OTJmNC4uNmYw
Y2U5MDU5ZDcyMzM4Mzc4YjFkNDdhNzFhNzI1YzM5MmNkMjc3YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oCkBAIC0zOSwxNSArMzksMTUgQEAgY2xhc3MgSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudChKU0FnZW50Q29udGV4dCYpOwotICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRp
bWVBZ2VudCgpIG92ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudCgpIGZp
bmFsOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZh
bChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsK
KyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CiAKICAgICAvLyBOT1RFOiBKYXZh
U2NyaXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0byBtdXRlIGEgY29uc29sZSBiZWNh
dXNlIG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUgb3V0c2lkZSBv
ZiB0aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0LgotICAgIHZvaWQgbXV0ZUNvbnNv
bGUoKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIG11dGVDb25zb2xlKCkgZmluYWwgeyB9CisgICAgdm9pZCB1bm11dGVDb25zb2xl
KCkgZmluYWwgeyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVudGltZUZyb250ZW5kRGlzcGF0
Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlz
cGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRlRGlzcGF0Y2hhYmxlQWdlbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRl
RGlzcGF0Y2hhYmxlQWdlbnQuaAppbmRleCA1MDFiZmRhOWI0NzkyNjc5NzcyMDFhMDM5MjZhNzQ2
M2I1MTczOWVlLi5hNmIxOGNmMzc2ZjM4ZjY5NzJhMDVhY2MyN2QxNGRjNjIwNjU1OWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hdWdtZW50YWJsZS9BbHRlcm5hdGVEaXNwYXRjaGFibGVBZ2VudC5oCkBAIC01MSwxMSAr
NTEsMTEgQEAgcHVibGljOgogICAgICAgICBtX2FsdGVybmF0ZURpc3BhdGNoZXItPnNldEJhY2tl
bmREaXNwYXRjaGVyKG51bGxwdHIpOwogICAgIH0KIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwg
QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbAogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlCisgICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5h
bAogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKaW5kZXgg
Yzg1YjY0YTA1M2Y4ZmYwY2MwMDkyMDdmZTBjOTdkODEyYTQ3MGM2Yy4uNjczMzdkNzMwNGY0MmQ2
ZDE3NjFhMDliMTQwNDA2YmEyNzJhY2JiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogI2Vsc2UKICAgICBSZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQoUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Jik7CiAjZW5kaWYKLSAgICB+UmVt
b3RlQ29ubmVjdGlvblRvVGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgflJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldCgpIGZpbmFsOwogCiAgICAgLy8gTWFpbiBBUEkuCiAgICAgYm9vbCBzZXR1cChib29s
IGlzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlLCBib29sIGF1dG9tYXRpY2FsbHlQYXVzZSA9
IGZhbHNlKTsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGcm9u
dGVuZENoYW5uZWwgb3ZlcnJpZGVzLgotICAgIENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29ubmVjdGlvblR5cGU6OlJlbW90ZTsgfQotICAg
IHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29u
bmVjdGlvblR5cGU6OlJlbW90ZTsgfQorICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpIGZpbmFsOwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5z
cGVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJ
bnNwZWN0b3IuaAppbmRleCBlMjU2MmNmMzI1MzQxODliMWEwMTQ4ZjE4M2UzNGJiOTQ1YzUyYmFj
Li40YTYxMGFhMmE4ZGM5Mjg0OTY5YmU1Zjk1YWM2ZWFhZjAwODBkOTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0
b3IuaApAQCAtMjA3LDkgKzIwNyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kQXV0b21hdGlj
SW5zcGVjdGlvbkNhbmRpZGF0ZU1lc3NhZ2UoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHZvaWQgeHBjQ29ubmVjdGlvblJlY2VpdmVkTWVzc2FnZShSZW1vdGVJbnNwZWN0b3JYUENDb25u
ZWN0aW9uKiwgTlNTdHJpbmcgKm1lc3NhZ2VOYW1lLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKSBv
dmVycmlkZTsKLSAgICB2b2lkIHhwY0Nvbm5lY3Rpb25GYWlsZWQoUmVtb3RlSW5zcGVjdG9yWFBD
Q29ubmVjdGlvbiopIG92ZXJyaWRlOwotICAgIHZvaWQgeHBjQ29ubmVjdGlvblVuaGFuZGxlZE1l
c3NhZ2UoUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbiosIHhwY19vYmplY3RfdCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB4cGNDb25uZWN0aW9uUmVjZWl2ZWRNZXNzYWdlKFJlbW90ZUluc3BlY3Rv
clhQQ0Nvbm5lY3Rpb24qLCBOU1N0cmluZyAqbWVzc2FnZU5hbWUsIE5TRGljdGlvbmFyeSAqdXNl
ckluZm8pIGZpbmFsOworICAgIHZvaWQgeHBjQ29ubmVjdGlvbkZhaWxlZChSZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uKikgZmluYWw7CisgICAgdm9pZCB4cGNDb25uZWN0aW9uVW5oYW5kbGVk
TWVzc2FnZShSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uKiwgeHBjX29iamVjdF90KSBmaW5h
bDsKIAogICAgIHZvaWQgcmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
byk7CiAgICAgdm9pZCByZWNlaXZlZERhdGFNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8p
OwpAQCAtMjIzLDggKzIyMyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNlaXZlZEF1dG9tYXRp
b25TZXNzaW9uUmVxdWVzdE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyk7CiAjZW5kaWYK
ICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCi0gICAgSGFzaE1hcDxTdHJpbmcsIENh
bGxIYW5kbGVyPiYgZGlzcGF0Y2hNYXAoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKENv
bm5lY3Rpb25JRCkgb3ZlcnJpZGU7CisgICAgSGFzaE1hcDxTdHJpbmcsIENhbGxIYW5kbGVyPiYg
ZGlzcGF0Y2hNYXAoKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgZmlu
YWw7CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5oCmluZGV4IDhmOGVmMDU5NGEz
MWVkYjhiNjQ0YTcxNDUwMzMzNDE1MGI0Yzc3YTIuLjAwOGM2ZmQwZjFmMDM0NTQyMjE3MTY1MGQ5
NGU5NDczZDA4NTczZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVy
LmgKQEAgLTQ2LDggKzQ2LDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0
cm95ZWQ8UmVtb3RlSW5zcGVjdG9yU2VydmVyPjsKICAgICBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIo
KSB7IFNvY2tldDo6aW5pdCgpOyB9CiAKLSAgICBib29sIGRpZEFjY2VwdChDb25uZWN0aW9uSUQg
YWNjZXB0ZWRJRCwgQ29ubmVjdGlvbklEIGxpc3RlbmVySUQsIFNvY2tldDo6RG9tYWluKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgb3ZlcnJpZGUgeyB9CisgICAg
Ym9vbCBkaWRBY2NlcHQoQ29ubmVjdGlvbklEIGFjY2VwdGVkSUQsIENvbm5lY3Rpb25JRCBsaXN0
ZW5lcklELCBTb2NrZXQ6OkRvbWFpbikgZmluYWw7CisgICAgdm9pZCBkaWRDbG9zZShDb25uZWN0
aW9uSUQpIGZpbmFsIHsgfQogCiAgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBtX3NlcnZlcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5Cmlu
ZGV4IGM3YjFjODdlMTE5OGQ2NmVmNjk4ZjllYzhhOTI0NzEyN2I5MmRjMDAuLjk2YjU1ZTQxNjJj
NjY4MDQ5Y2FhNjQ3MzZiNjQxOWFmNDQ1Njg4ZGIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVz
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2Vu
L2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CkBAIC05NSw3ICs5NSw3IEBAIHByb3RlY3RlZDoK
ICAgICAiIiIke2NsYXNzQW5kRXhwb3J0TWFjcm99ICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0
Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjwke2RvbWFpbk5hbWV9QmFja2VuZERpc3BhdGNoZXI+IGNyZWF0
ZShCYWNrZW5kRGlzcGF0Y2hlciYsICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9i
amVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKICR7Y29tbWFuZERlY2xhcmF0aW9uc30KIHByaXZhdGU6
CiAgICAgJHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVyKEJhY2tlbmREaXNwYXRjaGVyJiwg
JHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2Jq
Y19iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJf
aGVhZGVyLnB5CmluZGV4IDA1MTIyYzZjYWJkZDIyYzRiOWIwMDdmOThmZmVlYzFmODJiMzRjZGMu
LmVkOGNjNTk2ZDMxMDMwM2JjMmYxNmI3Y2E1YmY3MDY0N2MwYjQ0MGYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29i
amNfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkKQEAgLTExMSw1ICsxMTEsNSBAQCBjbGFzcyBPYmpDQmFja2VuZERpc3Bh
dGNoZXJIZWFkZXJHZW5lcmF0b3IoT2JqQ0dlbmVyYXRvcik6CiAgICAgICAgICAgICAnY29tbWFu
ZE5hbWUnOiBjb21tYW5kLmNvbW1hbmRfbmFtZSwKICAgICAgICAgICAgICdwYXJhbWV0ZXJzJzog
JywgJy5qb2luKHBhcmFtZXRlcnMpLAogICAgICAgICB9Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgn
ICAgIHZpcnR1YWwgdm9pZCAlKGNvbW1hbmROYW1lKXMoJShwYXJhbWV0ZXJzKXMpIG92ZXJyaWRl
OycgJSBjb21tYW5kX2FyZ3MpCisgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIHZvaWQgJShjb21t
YW5kTmFtZSlzKCUocGFyYW1ldGVycylzKSBmaW5hbDsnICUgY29tbWFuZF9hcmdzKQogICAgICAg
ICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRo
LW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZv
cm0uanNvbi1yZXN1bHQKaW5kZXggOWIzY2VlNmJlNjVlYTUxZmFhNjM0YjcyYWNiODcxNTQ5MDY1
ZmUzMC4uYzZlNjhmNGE5YWVkZDNkODQzNjcwYTIyZjBjYjgzNTMxN2VmNjQwNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBl
Y3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2Rl
ZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcg
QEAgcHJvdGVjdGVkOgogY2xhc3MgTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVi
bGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwg
TmV0d29ya0JhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9u
ZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1l
c3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJp
dmF0ZToKICAgICB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046
Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9E
SVNQQVRDSEVSUykKQEAgLTU4OSw3ICs1ODksNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yTmV0d29y
a0JhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZU5ldHdvcmtCYWNrZQog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JO
ZXR3b3JrQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRs
ZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
bG9hZFJlc291cmNlKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRSZXNv
dXJjZShsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxU
ZXN0UHJvdG9jb2xOZXR3b3JrRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxl
VHlwZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21h
aW4tZGVidWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKaW5kZXggNDg1YWE2MWU2YjcxZTgzYjczNjAx
Yzk2NmYxZTFiYmRkN2QyYWY1Ny4uNDMxM2ZhOTE1MWU5MmNkMDNiMDA4YjNjMzVlYWJkMzdkOTkx
N2Y3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFp
bi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kLXRhcmdldFR5
cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CkBAIC0xNTMsNyAr
MTUzLDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8RG9tYWluQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hl
ciYsIERvbWFpbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2go
bG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYm
IG1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNv
bnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwog
cHJpdmF0ZToKICAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCkBAIC01MTYsNyArNTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJh
Y2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9t
YWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4g
aGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21t
YW5kKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1
ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9t
YWluRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29t
bWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13
aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdAppbmRleCA1OWIzZTNjZmQ4YWM2ZmJiYjFj
M2FjYzM3NzQyMTQ5MTEyYzVkN2NjLi5mYzVjNDFkYjUzYWI2YmM0MGNhNGE1MzQ3ZWE3MmE4N2I3
MzQxOGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5q
c29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29u
LXJlc3VsdApAQCAtMTc5LDcgKzE3OSw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERhdGFiYXNlQmFj
a2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNo
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcj4g
Y3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9i
amVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBleGVjdXRlU1FMU3lu
Y09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0
PiYmIHBhcmFtZXRlcnMpOwogICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5W
YWx1ZXMobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CkBAIC04NjUsMTAgKzg2NSwxMCBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5k
RGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEYXRhYmFzZUJhYwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEYXRhYmFzZUJh
Y2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlcj4gaGFu
ZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBleGVjdXRl
U1FMU3luY09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJh
c2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQg
aW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIGV4ZWN1dGVTUUxTeW5jKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJhc2VJ
ZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGV4
ZWN1dGVTUUxBc3luYyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgaW5fcXVlcnkpIG92ZXJyaWRlOworICAgIHZvaWQgZXhlY3V0ZVNRTFN5bmNPcHRpb25h
bFJldHVyblZhbHVlcyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgaW5fcXVlcnkpIGZpbmFsOworICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxS
ZXR1cm5WYWx1ZXMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlkLCBjb25zdCBTdHJp
bmcmIGluX3F1ZXJ5KSBmaW5hbDsKKyAgICB2b2lkIGV4ZWN1dGVTUUxTeW5jKGxvbmcgcmVxdWVz
dElkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgZmluYWw7Cisg
ICAgdm9pZCBleGVjdXRlU1FMQXN5bmMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlk
LCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5KSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJh
bWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJl
dHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4IDA5ZjU1ODc3MThkM2M3NDMxZTY4NmU1
ZDQ1Yzk4MWZmYjI2NjNkOTQuLjg1OTQxZWQ1MWYxMTI0NGIzZDM0MzdjODAwMjUwNGY1MzE0MzEy
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4t
cGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFs
LWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTE2Miw3ICsxNjIsNyBAQCBw
cm90ZWN0ZWQ6CiBjbGFzcyBEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGlj
IFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PERhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERh
dGFiYXNlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25n
IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVz
c2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2
YXRlOgogICAgIHZvaWQgZXhlY3V0ZUFsbE9wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJ
ZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2b2lkIGV4ZWN1dGVO
b09wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzKTsKQEAgLTc4MCw4ICs3ODAsOCBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRGF0
YWJhc2VCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEYXRhYmFzZUJh
YwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0
b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWlu
SGFuZGxlcj4gaGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwg
dm9pZCBleGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBK
U09OOjpBcnJheSogaW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyogaW5fbm90ZXMsIGNvbnN0
IGRvdWJsZSogaW5fdGltZXN0YW1wLCBjb25zdCBKU09OOjpPYmplY3QqIGluX3ZhbHVlcywgY29u
c3QgSlNPTjo6VmFsdWUqIGluX3BheWxvYWQsIGNvbnN0IGludCogaW5fZGF0YWJhc2VJZCwgY29u
c3QgSlNPTjo6T2JqZWN0KiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nKiBpbl9zY3JlZW5Db2xv
ciwgY29uc3QgSlNPTjo6QXJyYXkqIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nKiBp
bl9wcmludENvbG9yKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZU5vT3B0aW9u
YWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBKU09OOjpBcnJheSYgaW5fY29sdW1u
TmFtZXMsIGNvbnN0IFN0cmluZyYgaW5fbm90ZXMsIGRvdWJsZSBpbl90aW1lc3RhbXAsIGNvbnN0
IEpTT046Ok9iamVjdCYgaW5fdmFsdWVzLCBKU09OOjpWYWx1ZSBpbl9wYXlsb2FkLCBpbnQgaW5f
ZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6T2JqZWN0JiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5n
JiBpbl9zY3JlZW5Db2xvciwgY29uc3QgSlNPTjo6QXJyYXkmIGluX2FsdGVybmF0ZUNvbG9ycywg
Y29uc3QgU3RyaW5nJiBpbl9wcmludENvbG9yKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4ZWN1dGVB
bGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyByZXF1ZXN0SWQsIGNvbnN0IEpTT046OkFycmF5KiBp
bl9jb2x1bW5OYW1lcywgY29uc3QgU3RyaW5nKiBpbl9ub3RlcywgY29uc3QgZG91YmxlKiBpbl90
aW1lc3RhbXAsIGNvbnN0IEpTT046Ok9iamVjdCogaW5fdmFsdWVzLCBjb25zdCBKU09OOjpWYWx1
ZSogaW5fcGF5bG9hZCwgY29uc3QgaW50KiBpbl9kYXRhYmFzZUlkLCBjb25zdCBKU09OOjpPYmpl
Y3QqIGluX3NxbEVycm9yLCBjb25zdCBTdHJpbmcqIGluX3NjcmVlbkNvbG9yLCBjb25zdCBKU09O
OjpBcnJheSogaW5fYWx0ZXJuYXRlQ29sb3JzLCBjb25zdCBTdHJpbmcqIGluX3ByaW50Q29sb3Ip
IGZpbmFsOworICAgIHZvaWQgZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVz
dElkLCBjb25zdCBKU09OOjpBcnJheSYgaW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyYgaW5f
bm90ZXMsIGRvdWJsZSBpbl90aW1lc3RhbXAsIGNvbnN0IEpTT046Ok9iamVjdCYgaW5fdmFsdWVz
LCBKU09OOjpWYWx1ZSBpbl9wYXlsb2FkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6
T2JqZWN0JiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nJiBpbl9zY3JlZW5Db2xvciwgY29uc3Qg
SlNPTjo6QXJyYXkmIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nJiBpbl9wcmludENv
bG9yKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2NvbERhdGFi
YXNlRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9t
YWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1kZWJ1Z2dhYmxl
VHlwZXMuanNvbi1yZXN1bHQKaW5kZXggM2Q2NWIwNDQ3OGMzNDRmZjNmNjdjOWIxMTMxMDc0MzY3
Y2M0NDYzYi4uZjViNTkxN2FhMGI0MTFjMjk5NzI5ZGYxODU3MzdkZTZlYmM2NzM1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9kb21haW4tZGVidWdnYWJsZVR5cGVzLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcgQEAg
cHJvdGVjdGVkOgogY2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMg
U3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
RG9tYWluQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERvbWFp
bkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1
ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2Up
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJpdmF0ZToK
ICAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMp
CkBAIC01MTYsNyArNTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJhY2tlbmREaXNw
YXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2Vu
ZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4gaGFuZGxlcikg
eyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21tYW5kKGxvbmcg
cmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIGZp
bmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWlu
SGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdl
dFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVz
dWx0CmluZGV4IGNjMDhhZTk5YzJkOGZjNDExZTJiOWU1YjUzYzMxYjk1MjFjNTRlZTYuLmQzMGYy
NGI1YzM1Mjg5Njk5NDVjZTdmZTE3OGIwMjEyYjVlNDhkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2Rv
bWFpbi10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJs
ZVR5cGUuanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBE
b21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5k
RGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5kRGlzcGF0
Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3BhdGNoZXJI
YW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5n
JiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09O
OjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29tbWFuZChs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1MTYsNyBA
QCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJs
aWMgQWx0ZXJuYXRlRG9tYWluQmFja2VuZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0
UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5k
bGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRl
OworICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAg
IFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9l
eHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQKaW5kZXggYWU4ZjA5M2U3NGFi
ZjIwOTBhMGVkZjg3NmEwNWEyOGU2ZjM5MTUzZC4uZjg5NDhhMmY3NDcwMTI1YmMyZDUzM2U5ZWQ1
NDM0ODQ5ZDgyZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGVzLmpzb24t
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJlc3VsdApAQCAtMTUz
LDcgKzE1Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZp
bmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPERvbWFpbkJhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3Bh
dGNoZXImLCBEb21haW5CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3Bh
dGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVj
dD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElk
LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5h
bDsKIHByaXZhdGU6CiAgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQpAQCAtNTE2LDcgKzUxNiw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JEb21h
aW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEb21haW5CYWNrZW5k
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3Rv
ckRvbWFpbkJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRs
ZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
Q29tbWFuZChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBDb21tYW5kKGxvbmcg
cmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2Nv
bERvbWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9k
b21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0CmluZGV4IDNiOTA3
Yzc0NWZlZGY5NmI5NDc4NmJkOTU1ZmI4MzJlMjdmZjY1NDguLjJjMDdjYjEzNDdmM2M2MmM0OWVl
YTQ3ZjQ1ZmE3MTlkZTU0ZGIyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12YXJ5
aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZh
cnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3VsdApAQCAtMTg3LDcgKzE4Nyw3IEBAIHByb3Rl
Y3RlZDoKIGNsYXNzIE5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3Vw
cGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0
d29yazFCYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgTmV0d29y
azFCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdl
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6
CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UxKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKQpAQCAtMjA0LDcgKzIwNCw3IEBAIHByaXZhdGU6CiBjbGFzcyBOZXR3b3JrM0JhY2tl
bmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI+IGNy
ZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
Kik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRo
b2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNw
YXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmpl
Y3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgbG9hZFJlc291cmNlMShs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2
b2lkIGxvYWRSZXNvdXJjZTIobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycyk7CkBAIC03NDUsNyArNzQ1LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazFCYWMK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9y
TmV0d29yazFCYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhh
bmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlMShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
UmVzb3VyY2UxKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbE5ldHdvcmsxRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpA
QCAtNzU0LDEzICs3NTQsMTMgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERp
c3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazNCYWMKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yTmV0d29yazNCYWNr
ZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrM0RvbWFpbkhhbmRsZXI+IGhhbmRs
ZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291
cmNlMShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZTIobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVz
b3VyY2UzKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
c291cmNlNChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRS
ZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVzb3VyY2U2KGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9h
ZFJlc291cmNlNyhsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkUmVzb3Vy
Y2UxKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZTIobG9uZyBy
ZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9hZFJlc291cmNlMyhsb25nIHJlcXVlc3RJZCkg
ZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2U0KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAg
ICB2b2lkIGxvYWRSZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9h
ZFJlc291cmNlNihsb25nIHJlcXVlc3RJZCkgZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2U3
KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQ
cm90b2NvbE5ldHdvcmszRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZW51bS12YWx1ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29u
LXJlc3VsdAppbmRleCA1OTc1N2JiNzBiMDViMWZkOTI2OGIyOGRkMWRkMzExN2JkNWI0MmNmLi5m
MDZmZWJiNzhkNzFlZGFiMmY1YWI2OWZlODZmYTE1NGE4YzE1YzRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9lbnVtLXZhbHVlcy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29uLXJl
c3VsdApAQCAtMTcwLDcgKzE3MCw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIENvbW1hbmREb21haW5C
YWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0
Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDb21tYW5kRG9tYWluQmFja2VuZERpc3Bh
dGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIENvbW1hbmREb21haW5CYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25z
dCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwg
UmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBj
b21tYW5kV2l0aEVudW1SZXR1cm5WYWx1ZShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykKQEAgLTYzMyw3ICs2MzMsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yQ29tbWFuZERv
bWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZUNvbW1hbgogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JDb21t
YW5kRG9tYWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sQ29tbWFuZERvbWFpbkRv
bWFpbkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgY29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQpIG92ZXJy
aWRlOworICAgIHZvaWQgY29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQp
IGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sQ29tbWFuZERv
bWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2
ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUu
anNvbi1yZXN1bHQKaW5kZXggMzk0NGY0OGZhYjM1MGI3YzFmYTVmZjllZDMwZWJmMDljODEyNzUz
Yy4uZDg5YTk3ZmY1NWRmZWM0Mzk3ZTBlYjc0YWI1ZGZkMWU0NDBlNzRmYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUuanNv
bi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVi
dWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBj
bGFzcyBEb21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxC
YWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5k
RGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJl
ZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29t
bWFuZChsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1
MTYsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgQWx0ZXJuYXRlRG9tYWluQmFja2VuZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihp
ZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUg
PSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92
ZXJyaWRlOworICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRl
OgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9k
ZWxlZ2F0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVh
dHVyZS1ndWFyZHMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVh
dHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKaW5kZXggMWJkYTcxMjUyOTVkNzlhM2U1YzE4ZTA5NjQ1
YjY5Y2E4NTkxYzgxNi4uMDk0NmI1M2UzZjgxNzdkNzY2NjY1ODE3ZmM5YjI0MjViNDU5OGZiZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpz
b24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJk
cy5qc29uLXJlc3VsdApAQCAtMTY0LDcgKzE2NCw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERp
c3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29yazFCYWNrZW5kRGlzcGF0
Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgTmV0d29yazFCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpT
T046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkUmVz
b3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCkBAIC02MTQsNyAr
NjE0LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIgZmlu
YWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazFCYWMKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yTmV0d29yazFCYWNrZW5kRGlzcGF0Y2hl
cihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxl
Z2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKGxvbmcgcmVx
dWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkg
ZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURv
bWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMt
d2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBs
YXRmb3JtLmpzb24tcmVzdWx0CmluZGV4IDliM2NlZTZiZTY1ZWE1MWZhYTYzNGI3MmFjYjg3MTU0
OTA2NWZlMzAuLmM2ZTY4ZjRhOWFlZGQzZDg0MzY3MGEyMmYwY2I4MzUzMTdlZjY0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMv
ZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3Rl
ZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtMTUzLDcgKzE1
Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6
IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxOZXR3b3JrQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hl
ciYsIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNo
KGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4m
JiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBj
b25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsK
IHByaXZhdGU6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5B
VEVfRElTUEFUQ0hFUlMpCkBAIC01ODksNyArNTg5LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5l
dHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVOZXR3b3JrQmFj
a2UKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVj
dG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbE5ldHdvcmtEb21haW5I
YW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
UmVzb3VyY2UobG9uZyByZXF1ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8
aWQ8VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggMTk4MGVlYWZjYjk3
MWNhMzk2YjZhNTk1ZjAzZGI2YTk1ZDdiN2IzMy4uZDQzZTA4Y2M3YzJjMzM2ZWMyMzUzOWE3MmRm
Zjk2Y2UwZmIwYzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5j
cHAKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNGaW5pc2hlZENvbXBp
bGluZyB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CitjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIGZpbmFsIDogcHVi
bGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKICAgICAgICAgOiBBdXRvbWF0
aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0aW9uLmNv
cHlSZWYoKSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd29ya2xpc3Qu
bV9udW1BdmFpbGFibGVUaHJlYWRzKys7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAg
ewogI2lmIE9TKExJTlVYKQogICAgICAgICByZXR1cm4gIkpJVFdvcmtlciI7CkBAIC0xMTMsOCAr
MTEzLDggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogICAgIAotcHJvdGVjdGVkOgotICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlCitwcml2YXRlOgor
ICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewog
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFkcyk7
CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJu
IFBvbGxSZXN1bHQ6Oldvcms7CiAgICAgfQogICAgIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92
ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFtX215UGxhbnMuaXNFbXB0eSgpKTsKICAgICAgICAgCkBAIC0xNDYsOCArMTQ2
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFk
cysrOwogICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7CiAgICAgfQotICAgIAot
cHJpdmF0ZToKKwogICAgIEpJVFdvcmtsaXN0JiBtX3dvcmtsaXN0OwogICAgIFBsYW5zIG1fbXlQ
bGFuczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggNDNkMTMxYzgz
NThjZTllMzE5YmQzOWU5NzVkOTFlMGFlM2Y3MGQyOS4uY2E0ZTBlMDI4ZWQ1MDE4ZjYyN2JlNWY2
M2JkZGZiYjEwNWJhNzcxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAt
MzAxLDggKzMwMSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBOdWxsTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUo
Qnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBqc051bGwoKTsgfQor
ICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgSlNWYWx1ZSBqc1ZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgZmluYWwgeyByZXR1
cm4ganNOdWxsKCk7IH0KICAgICB9OwogCiAgICAgY2xhc3MgQm9vbGVhbk5vZGUgZmluYWwgOiBw
dWJsaWMgQ29uc3RhbnROb2RlIHsKQEAgLTMxMSw4ICszMTEsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgYm9vbCB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIGJvb2wgaXNCb29sZWFuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBqc0Jvb2xlYW4obV92YWx1ZSk7IH0KKyAgICAgICAgYm9vbCBpc0Jvb2xl
YW4oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIEpTVmFsdWUganNWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGpzQm9vbGVhbihtX3Zh
bHVlKTsgfQogCiAgICAgICAgIGJvb2wgbV92YWx1ZTsKICAgICB9OwpAQCAtMzUyLDggKzM1Miw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgpIHsg
cmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNTdHJpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIEpTVmFsdWUganNWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICBib29sIGlzU3Ry
aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBKU1ZhbHVlIGpzVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3ZhbHVlOwogICAgIH07CkBAIC01NDksNyArNTQ5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdygpIHsgcmV0dXJuIG1fcmF3OyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG1fY29va2VkOwogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyKiBtX3JhdzsKQEAgLTU3Nyw3ICs1NzcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhw
cmVzc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX3RlbXBsYXRlRXhwcmVzc2lvbnM7IH0KIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CiAKICAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogbV90ZW1wbGF0ZVN0
cmluZ3M7CiAgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX3RlbXBsYXRlRXhw
cmVzc2lvbnM7CkBAIC01OTAsNyArNTkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRl
bXBsYXRlTGl0ZXJhbE5vZGUqIHRlbXBsYXRlTGl0ZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVt
cGxhdGVMaXRlcmFsOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2Rl
KiBtX3RhZzsKICAgICAgICAgVGVtcGxhdGVMaXRlcmFsTm9kZSogbV90ZW1wbGF0ZUxpdGVyYWw7
CkBAIC02MDEsNyArNjAxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ0V4cE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3Qg
SWRlbnRpZmllciYgZmxhZ3MpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3BhdHRlcm47CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fZmxhZ3M7CkBA
IC02MTIsNyArNjEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRoaXNOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3Mg
U3VwZXJOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAgLTYyMCw4ICs2MjAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3VwZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc1N1cGVyTm9kZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgYm9vbCBpc1N1cGVyTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3MgSW1wb3J0Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Np
b25EYXRhIHsKQEAgLTYyOSw4ICs2MjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW1w
b3J0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0ltcG9ydE5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wg
aXNJbXBvcnROb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsK
QEAgLTY0OSw3ICs2NDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIGJvb2wgaXNOZXdUYXJnZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAg
fTsKIAogICAgIGNsYXNzIEltcG9ydE1ldGFOb2RlIGZpbmFsIDogcHVibGljIE1ldGFQcm9wZXJ0
eU5vZGUgewpAQCAtNjU4LDcgKzY1OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCBpc0ltcG9ydE1ldGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtNjcwLDEx
ICs2NzAsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50OyB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0g
ICAgICAgIGJvb2wgaXNQdXJlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgICAgIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
LSAgICAgICAgYm9vbCBpc1Jlc29sdmVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGlzUHVyZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFs
OworICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CisgICAgICAgIGJvb2wgaXNSZXNvbHZlTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwogICAgICAgICBKU1RleHRQ
b3NpdGlvbiBtX3N0YXJ0OwpAQCAtNzAxLDE1ICs3MDEsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEFycmF5Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFbGVtZW50Tm9kZSopOwog
ICAgICAgICBBcnJheU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50IGVsaXNpb24sIEVs
ZW1lbnROb2RlKik7CiAKLSAgICAgICAgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBBcmd1bWVudExpc3ROb2RlKiB0b0Fy
Z3VtZW50TGlzdChQYXJzZXJBcmVuYSYsIGludCwgaW50KSBjb25zdDsKIAogICAgICAgICBFbGVt
ZW50Tm9kZSogZWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCi0gICAgICAgIGJvb2wgaXNTaW1wbGVBcnJheSgpIGNvbnN0IG92ZXJyaWRlOworICAg
ICAgICBib29sIGlzU2ltcGxlQXJyYXkoKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBFbGVtZW50
Tm9kZSogbV9lbGVtZW50OwogICAgICAgICBpbnQgbV9lbGlzaW9uOwpAQCAtNzc3LDcgKzc3Nyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiwgUmVnaXN0ZXJJRCosIFZlY3RvcjxKU1RleHRQ
b3NpdGlvbj4qKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QgPSBudWxs
cHRyKSBvdmVycmlkZQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0ID0gbnVsbHB0cikgZmluYWwKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGVtaXRCeXRlY29kZShnZW5lcmF0b3IsIGRzdCwg
bnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIH0KQEAgLTc5MiwxMCArNzkyLDEwIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgT2JqZWN0TGl0ZXJhbE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJik7CiAgICAgICAgIE9iamVjdExpdGVyYWxOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIFByb3BlcnR5TGlzdE5vZGUqKTsKLSAgICAgICAgYm9vbCBpc09iamVjdExp
dGVyYWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNP
YmplY3RMaXRlcmFsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAogICAgICAgICBQcm9wZXJ0eUxpc3ROb2RlKiBtX2xpc3Q7CiAgICAgfTsKQEAgLTgxMCwx
MCArODEwLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIHN1YnNjcmlwdEhhc0Fz
c2lnbm1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50czsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIGJvb2wgaXNCcmFja2V0QWNjZXNzb3JOb2RlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzTG9jYXRpb24o
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCcmFja2V0QWNj
ZXNzb3JOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
QEAgLTgyOCwxMCArODI4LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudDsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAotICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9Ci0gICAgICAgIGJvb2wgaXNEb3RBY2Nlc3Nvck5vZGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0RvdEFjY2Vzc29yTm9kZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNl
OwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwpAQCAtODQ0LDkgKzg0NCw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZXhwcmVzc2lvbjsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
ICAgICAKLSAgICAgICAgYm9vbCBpc1NwcmVhZEV4cHJlc3Npb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9uKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByZXNz
aW9uOwogICAgIH07CiAgICAgCkBAIC04NTcsNyArODU3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBy
ZXNzaW9uOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIAogICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9leHByZXNzaW9uOwogICAgIH07CkBAIC04NzEsNyArODcxLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogICAgIH07CiAKICAgICBjbGFzcyBBcmd1bWVudHNOb2RlIGZpbmFsIDogcHVibGljIFBh
cnNlckFyZW5hRnJlZWFibGUgewpAQCAtODg4LDcgKzg4OCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBOZXdFeHByTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9k
ZSosIEFyZ3VtZW50c05vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIG1fZXhwcjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtODk5LDkg
Kzg5OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFdmFsRnVuY3Rpb25DYWxsTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1
bmN0aW9uQ2FsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBpc0Z1bmN0aW9uQ2FsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAg
ICBBcmd1bWVudHNOb2RlKiBtX2FyZ3M7CiAgICAgfTsKQEAgLTkxMSw5ICs5MTEsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25DYWxsVmFsdWVOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wg
aXNGdW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9h
cmdzOwpAQCAtOTI0LDkgKzkyNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlv
bkNhbGxSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVy
JiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYg
bV9pZGVudDsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtOTM3LDkgKzkzNyw5
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlvbkNhbGxCcmFja2V0Tm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUq
IHN1YnNjcmlwdCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgQXJndW1lbnRzTm9kZSos
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwog
Ci0gICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtOTcxLDcgKzk3MSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljTm9kZShUeXBlLCBjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpFbnRyeSwgY29uc3QgSWRlbnRp
ZmllciYsIEFyZ3VtZW50c05vZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RF
bmQpOwogCi0gICAgICAgIGJvb2wgaXNCeXRlY29kZUludHJpbnNpY05vZGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCeXRlY29kZUludHJpbnNpY05v
ZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0
cnk6OkVudHJ5IGVudHJ5KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeTsgfQpAQCAtOTgzLDkgKzk4
Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogI3VuZGVmIEpTQ19ERUNMQVJFX0JZVEVDT0RFX0lOVFJJ
TlNJQ19GVU5DVElPTlMKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1bmN0aW9u
Q2FsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpGdW5jdGlvbjsg
fQorICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OkZ1bmN0aW9uOyB9CiAKICAgICAgICAgQnl0ZWNvZGVJbnRyaW5zaWNSZWdp
c3RyeTo6RW50cnkgbV9lbnRyeTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsK
QEAgLTk5OCw3ICs5OTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ2FsbEZ1bmN0aW9u
Q2FsbERvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kLCBzaXplX3QgZGlzdGFuY2VUb0lubmVybW9zdENhbGxPckFwcGx5KTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAgICAgICAgIHNpemVfdCBtX2Rpc3RhbmNlVG9Jbm5lcm1vc3RDYWxs
T3JBcHBseTsKICAgICB9OwogICAgIApAQCAtMTAwNyw3ICsxMDA3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIEFyZ3VtZW50c05v
ZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQsIHNpemVfdCBkaXN0YW5j
ZVRvSW5uZXJtb3N0Q2FsbE9yQXBwbHkpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICAgICAgc2l6ZV90
IG1fZGlzdGFuY2VUb0lubmVybW9zdENhbGxPckFwcGx5OwogICAgIH07CiAKQEAgLTEwMTYsNyAr
MTAxNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVSZXNvbHZlTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0Rl
bGV0ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwMjgsNyArMTAy
OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVCcmFja2V0Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1
YnNjcmlwdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKQEAgLTEwNDEsNyArMTA0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBEZWxldGVEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0ZU5vZGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwNTQsNyArMTA1NCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBEZWxldGVWYWx1ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
RXhwcmVzc2lvbk5vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0
ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwNjYsNyArMTA2Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWb2lkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNz
aW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xMDc4LDcgKzEwNzgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTA4OCw3ICsxMDg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFR5cGVPZlZhbHVlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9l
eHByOwogICAgIH07CkBAIC0xMTEyLDEwICsxMTEyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBQb3N0Zml4Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSos
IE9wZXJhdG9yLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdFJlc29sdmUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0QnJhY2tldChCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXREb3QoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0UmVzb2x2ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCcmFja2V0KEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERv
dChCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAg
fTsKIAogICAgIGNsYXNzIFVuYXJ5T3BOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAg
LTExMzksOSArMTEzOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBVbmFyeVBsdXNOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFs
OwogCi0gICAgICAgIEV4cHJlc3Npb25Ob2RlKiBzdHJpcFVuYXJ5UGx1cygpIG92ZXJyaWRlIHsg
cmV0dXJuIGV4cHIoKTsgfQorICAgICAgICBFeHByZXNzaW9uTm9kZSogc3RyaXBVbmFyeVBsdXMo
KSBmaW5hbCB7IHJldHVybiBleHByKCk7IH0KICAgICB9OwogCiAgICAgY2xhc3MgTmVnYXRlTm9k
ZSBmaW5hbCA6IHB1YmxpYyBVbmFyeU9wTm9kZSB7CkBAIC0xMTU4LDcgKzExNTgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIExvZ2ljYWxOb3ROb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAgICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBM
YWJlbCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIG92
ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29udGV4dChCeXRl
Y29kZUdlbmVyYXRvciYsIExhYmVsJiB0cnVlVGFyZ2V0LCBMYWJlbCYgZmFsc2VUYXJnZXQsIEZh
bGxUaHJvdWdoTW9kZSkgZmluYWw7CiAgICAgfTsKIAogICAgIGNsYXNzIEJpbmFyeU9wTm9kZSA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBAIC0xMjE3LDE0ICsxMjE3LDE0IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgQWRkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzKTsKIAotICAgICAgICBib29sIGlzQWRkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzQWRkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBTdWJOb2RlIGZpbmFsIDogcHVibGlj
IEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBTdWJOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCi0gICAgICAgIGJvb2wgaXNTdWJ0cmFjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc1N1YnRyYWN0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBMZWZ0
U2hpZnROb2RlIGZpbmFsIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CkBAIC0xMjc2LDcgKzEyNzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW5zdGFuY2VPZk5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIs
IGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAg
ICBjbGFzcyBJbk5vZGUgZmluYWwgOiBwdWJsaWMgVGhyb3dhYmxlQmluYXJ5T3BOb2RlIHsKQEAg
LTEyODQsNyArMTI4NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJbk5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07
CiAKICAgICBjbGFzcyBFcXVhbE5vZGUgZmluYWwgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAg
LTEyOTIsNyArMTI5Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFcXVhbE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9k
ZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
IH07CiAKICAgICBjbGFzcyBOb3RFcXVhbE5vZGUgZmluYWwgOiBwdWJsaWMgQmluYXJ5T3BOb2Rl
IHsKQEAgLTEzMDUsNyArMTMwNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpY3RF
cXVhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBF
eHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBOb3RTdHJpY3RFcXVhbE5vZGUgZmluYWwgOiBw
dWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAgLTEzMzQsOCArMTMzNCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBMb2dpY2FsT3BOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBMb2dpY2FsT3BlcmF0b3IpOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJl
bCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGVtaXRCeXRlY29k
ZUluQ29uZGl0aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiB0cnVlVGFyZ2V0
LCBMYWJlbCYgZmFsc2VUYXJnZXQsIEZhbGxUaHJvdWdoTW9kZSkgZmluYWw7CiAKICAgICAgICAg
TG9naWNhbE9wZXJhdG9yIG1fb3BlcmF0b3I7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4
cHIxOwpAQCAtMTM3Niw3ICsxMzc2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbmRp
dGlvbmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbG9naWNh
bCwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9sb2dpY2FsOwogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9leHByMTsKQEAgLTEzODgsNyArMTM4OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBi
b29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRl
bnQ7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OwpAQCAtMTQwMSw3ICsxNDAxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZl
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3Is
IEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
cmlnaHQ7CkBAIC0xNDEyLDExICsxNDEyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNz
IEFzc2lnblJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduUmVz
b2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJl
c3Npb25Ob2RlKiByaWdodCwgQXNzaWdubWVudENvbnRleHQpOwotICAgICAgICBib29sIGlzQXNz
aWduUmVzb2x2ZU5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGJvb2wgaXNBc3NpZ25SZXNvbHZlTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Cisg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9p
ZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CkBAIC0xNDI4LDcgKzE0Mjgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSog
c3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlw
dEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
QEAgLTE0NDMsNyArMTQ0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lv
bk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yLCBFeHByZXNz
aW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRI
YXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtMTQ1OCw3ICsxNDU4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtMTQ3Miw3ICsxNDcyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbkRvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9k
ZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTE0ODUs
NyArMTQ4NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWFkTW9kaWZ5RG90Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRp
ZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3Np
Z25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3Qg
SWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTE0OTksNyArMTQ5OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9y
LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9p
ZGVudDsKQEAgLTE1MTMsNyArMTUxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBc3Np
Z25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgfTsKICAgICAKICAgICBjbGFz
cyBDb21tYU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewpAQCAtMTUyNCw4ICsx
NTI0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbW1hTm9kZSogbmV4dCgpIHsgcmV0
dXJuIG1fbmV4dDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0NvbW1hTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgYm9vbCBpc0NvbW1hTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9k
ZSogbV9leHByOwogICAgICAgICBDb21tYU5vZGUqIG1fbmV4dCB7IG51bGxwdHIgfTsKQEAgLTE1
NjAsMTIgKzE1NjAsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IGxhc3RTdGF0ZW1lbnQoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAgIGJvb2wgaGFzRWFybHlCcmVha09yQ29udGlu
dWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgYm9vbCBoYXNFYXJseUJyZWFrT3JDb250aW51ZSgpIGNvbnN0
IGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNCbG9jaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0Jsb2NrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgICAgIFNvdXJjZUVsZW1lbnRzKiBtX3N0YXRlbWVudHM7CiAgICAgfTsKQEAg
LTE1NzUsMjEgKzE1NzUsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5U3RhdGVt
ZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29t
cGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAg
Ym9vbCBpc0VtcHR5U3RhdGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgICAgIGJvb2wgaXNFbXB0eVN0YXRlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KICAgICB9OwogICAgIAogICAgIGNsYXNzIERlYnVnZ2VyU3RhdGVtZW50Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIERl
YnVnZ2VyU3RhdGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAotICAgICAgICBi
b29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIGJvb2wgaXNEZWJ1Z2dlclN0YXRlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGlzRGVidWdnZXJTdGF0ZW1lbnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFz
cyBFeHByU3RhdGVtZW50Tm9kZSBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKQEAgLTE1
OTksOSArMTU5OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSog
ZXhwcigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwcjsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
Ym9vbCBpc0V4cHJTdGF0ZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIGJvb2wgaXNFeHByU3RhdGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAgLTE2MTAsOSArMTYxMCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgRGVjbGFyYXRpb25TdGF0ZW1lbnQo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29s
IGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xNjIy
LDcgKzE2MjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRW1wdHlWYXJFeHByZXNzaW9u
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTYz
Miw3ICsxNjMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5TGV0RXhwcmVzc2lv
bihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJik7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE2
NDIsNyArMTY0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJZkVsc2VOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBjb25kaXRpb24sIFN0YXRlbWVudE5v
ZGUqIGlmQmxvY2ssIFN0YXRlbWVudE5vZGUqIGVsc2VCbG9jayk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICAgICAgYm9vbCB0
cnlGb2xkQnJlYWtBbmRDb250aW51ZShCeXRlY29kZUdlbmVyYXRvciYsIFN0YXRlbWVudE5vZGUq
IGlmQmxvY2ssCiAgICAgICAgICAgICBMYWJlbComIHRydWVUYXJnZXQsIEZhbGxUaHJvdWdoTW9k
ZSYpOwogCkBAIC0xNjU2LDcgKzE2NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRG9X
aGlsZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgU3RhdGVtZW50Tm9kZSosIEV4cHJlc3Np
b25Ob2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBmaW5hbDsKIAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKQEAgLTE2NjcsNyArMTY2Nyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBXaGlsZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSog
bV9leHByOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKQEAgLTE2NzksNyAr
MTY3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGb3JOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBF
eHByZXNzaW9uTm9kZSogZXhwcjMsIFN0YXRlbWVudE5vZGUqLCBWYXJpYWJsZUVudmlyb25tZW50
Jik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQg
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByMTsKICAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fZXhwcjI7CkBAIC0xNzEyLDE4ICsxNzEyLDE4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBSZWdpc3RlcklEKiB0cnlHZXRCb3VuZExvY2FsKEJ5dGVjb2RlR2VuZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdExvb3BIZWFkZXIoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogICAgIH07CiAgICAgCiAgICAgY2xhc3MgRm9yT2ZOb2RlIGZpbmFsIDogcHVi
bGljIEVudW1lcmF0aW9uTm9kZSB7CiAgICAgICAgIEpTQ19NQUtFX1BBUlNFUl9BUkVOQV9ERUxF
VEFCTEVfQUxMT0NBVEVEKEZvck9mTm9kZSk7CiAgICAgcHVibGljOgogICAgICAgICBGb3JPZk5v
ZGUoYm9vbCwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqLCBFeHByZXNz
aW9uTm9kZSosIFN0YXRlbWVudE5vZGUqLCBWYXJpYWJsZUVudmlyb25tZW50Jik7Ci0gICAgICAg
IGJvb2wgaXNGb3JPZk5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIGJvb2wgaXNGb3JPZk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAg
ICAgIGJvb2wgaXNGb3JBd2FpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb3JBd2FpdDsgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAK
ICAgICAgICAgY29uc3QgYm9vbCBtX2lzRm9yQXdhaXQ7CiAgICAgfTsKQEAgLTE3MzQsOSArMTcz
NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMYWJlbCogdHJpdmlhbFRhcmdldChCeXRl
Y29kZUdlbmVyYXRvciYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGhh
c0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
ICAgIGJvb2wgaXNDb250aW51ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAg
ICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNDb250aW51ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAg
IGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE3NDcsOSArMTc0Nyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMYWJlbCogdHJpdmlhbFRhcmdldChCeXRlY29kZUdl
bmVyYXRvciYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGhhc0NvbXBs
ZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIGJv
b2wgaXNCcmVhaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNCcmVhaygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE3NjEsOSArMTc2MSw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAotICAgICAgICBib29sIGlzUmV0dXJuTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgYm9vbCBpc1JldHVybk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fdmFsdWU7CiAgICAgfTsKQEAg
LTE3NzMsNyArMTc3Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXaXRoTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIFN0YXRlbWVudE5vZGUqLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIHVpbnQzMl90IGV4cHJlc3Npb25MZW5ndGgpOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAK
ICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CkBAIC0xNzg1LDExICsxNzg1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHB1YmxpYzoKICAgICAgICAgTGFiZWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIFN0YXRlbWVudE5vZGUqKTsKIAotICAgICAgICBib29sIGlzTGFi
ZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNMYWJl
bCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0
ZW1lbnQtPmhhc0NvbXBsZXRpb25WYWx1ZSgpOyB9Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAg
ICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0
YXRlbWVudC0+aGFzQ29tcGxldGlvblZhbHVlKCk7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAg
ICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fbmFtZTsKICAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CkBAIC0xODAwLDcgKzE4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgVGhyb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xODExLDcgKzE4
MTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVHJ5Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBTdGF0ZW1lbnROb2RlKiB0cnlCbG9jaywgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2Rl
KiBjYXRjaFBhdHRlcm4sIFN0YXRlbWVudE5vZGUqIGNhdGNoQmxvY2ssIFZhcmlhYmxlRW52aXJv
bm1lbnQmIGNhdGNoRW52aXJvbm1lbnQsIFN0YXRlbWVudE5vZGUqIGZpbmFsbHlCbG9jayk7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3RyeUJsb2NrOwogICAgICAgICBEZXN0cnVjdHVy
aW5nUGF0dGVybk5vZGUqIG1fY2F0Y2hQYXR0ZXJuOwpAQCAtMTkxMiw3ICsxOTEyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rp
b24gPSBmYWxzZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0Q29sdW1uOwogICAgICAgICB1
bnNpZ25lZCBtX2VuZENvbHVtbjsKICAgICB9OwpAQCAtMTkyNyw3ICsxOTI3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rpb24g
PSBmYWxzZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogCiAgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAgIH07CkBAIC0x
OTQ3LDcgKzE5NDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIHVu
c2lnbmVkIG1fc3RhcnRDb2x1bW47CiAgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAg
ICAgICBSZWY8TW9kdWxlU2NvcGVEYXRhPiBtX21vZHVsZVNjb3BlRGF0YTsKQEAgLTIwMDgsOCAr
MjAwOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbW9kdWxl
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFtZTsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5h
bHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGFuYWx5
emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKIAogICAgICAgICBJbXBvcnRTcGVjaWZp
ZXJMaXN0Tm9kZSogbV9zcGVjaWZpZXJMaXN0OwogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbV9t
b2R1bGVOYW1lOwpAQCAtMjAyMiw4ICsyMDIyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE1vZHVsZU5hbWVOb2RlKiBtb2R1bGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVOYW1l
OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQg
YW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CisgICAgICAgIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIGZpbmFsOwog
CiAgICAgICAgIE1vZHVsZU5hbWVOb2RlKiBtX21vZHVsZU5hbWU7CiAgICAgfTsKQEAgLTIwMzYs
OCArMjAzNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBs
b2NhbE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsTmFtZTsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxl
QW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGFu
YWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKICAgICAgICAgU3RhdGVtZW50Tm9k
ZSogbV9kZWNsYXJhdGlvbjsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9sb2NhbE5hbWU7
CiAgICAgfTsKQEAgLTIwNDksOCArMjA0OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBj
b25zdCBTdGF0ZW1lbnROb2RlJiBkZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuICptX2RlY2xh
cmF0aW9uOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIG92ZXJyaWRlOworICAgICAgICB2
b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CisgICAgICAgIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIGZp
bmFsOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX2RlY2xhcmF0aW9uOwogICAgIH07CiAKQEAg
LTIwODksOCArMjA4OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNb2R1bGVOYW1lTm9k
ZSogbW9kdWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFtZTsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUo
TW9kdWxlQW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2
b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKICAgICAgICAgRXhwb3J0
U3BlY2lmaWVyTGlzdE5vZGUqIG1fc3BlY2lmaWVyTGlzdDsKICAgICAgICAgTW9kdWxlTmFtZU5v
ZGUqIG1fbW9kdWxlTmFtZSB7IG51bGxwdHIgfTsKICAgICB9OwpAQCAtMjE5MCw5ICsyMTkwLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0
ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzOyB9CiAKLSAgICAgICAgdm9pZCBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1bmN0aW9uTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0Z1bmN0aW9u
Tm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICB2b2lkIGZpbmlz
aFBhcnNpbmcoY29uc3QgSWRlbnRpZmllciYsIEZ1bmN0aW9uTW9kZSk7CiAgICAgICAgIApAQCAt
MjI0NCw5ICsyMjQ0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFycm93RnVuY0V4cHJO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBGdW5jdGlvbk1l
dGFkYXRhTm9kZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAg
ICAgYm9vbCBpc0Fycm93RnVuY0V4cHJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGlzQXJyb3dGdW5jRXhwck5vZGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIE1ldGhvZERlZmluaXRpb25Ob2RlIGZp
bmFsIDogcHVibGljIEZ1bmNFeHByTm9kZSB7CkBAIC0yMjU0LDcgKzIyNTQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWV0aG9kRGVmaW5pdGlvbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiwgY29uc3QgU291
cmNlQ29kZSYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBZ
aWVsZEV4cHJOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dh
YmxlRXhwcmVzc2lvbkRhdGEgewpAQCAtMjI2NSw3ICsyMjY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIGJvb2wgZGVsZWdhdGUoKSBjb25zdCB7IHJldHVybiBtX2RlbGVnYXRlOyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2FyZ3VtZW50OwogICAg
ICAgICBib29sIG1fZGVsZWdhdGU7CkBAIC0yMjc4LDcgKzIyNzgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGFyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9h
cmd1bWVudDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9h
cmd1bWVudDsKICAgICB9OwpAQCAtMjI4OSw5ICsyMjg5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIERlZmluZUZpZWxkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVu
dGlmaWVyKiwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZGVzdGlu
YXRpb24gPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiBkZXN0aW5hdGlvbiA9IG51bGxwdHIpIGZpbmFs
OwogCi0gICAgICAgIGJvb2wgaXNEZWZpbmVGaWVsZE5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNEZWZpbmVGaWVsZE5vZGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciogbV9pZGVudDsK
ICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYXNzaWduOwpAQCAtMjMxMyw5ICsyMzEzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgaGFzSW5zdGFuY2VGaWVsZHMoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzRWxlbWVudHMgPyBtX2NsYXNzRWxlbWVudHMtPmhhc0luc3RhbmNlRmll
bGRzKCkgOiBmYWxzZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzQ2xhc3NF
eHByTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBp
c0NsYXNzRXhwck5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
U291cmNlQ29kZSBtX2NsYXNzU291cmNlOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX25h
bWU7CkBAIC0yMzYzLDEwICsyMzYzLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
RGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2RlKiBwYXR0ZXJuOwogICAgICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIGRlZmF1bHRWYWx1ZTsKICAgICAgICAgfTsKLSAgICAgICAgdm9pZCBjb2xsZWN0Qm91
bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBvdmVycmlkZTsKLSAgICAg
ICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RCaW5kaW5nKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9kZSopIG92ZXJyaWRlOwot
ICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RC
aW5kaW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9k
ZSopIGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKIAogICAgICAgICBWZWN0b3I8RW50cnk+IG1fdGFyZ2V0UGF0dGVybnM7CiAgICAgfTsK
QEAgLTI0MDAsOSArMjQwMCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBw
cml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVu
dGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdm9pZCB0
b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgY29s
bGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QgZmluYWw7Cisg
ICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNv
bnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKICAgICAgICAgc3RydWN0IEVudHJ5IHsKICAgICAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eUV4
cHJlc3Npb247CkBAIC0yNDI1LDExICsyNDI1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90
RW5kOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgY29sbGVjdEJvdW5k
SWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IG92
ZXJyaWRlOwotICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRp
Zmllcj4mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgdG9TdHJpbmco
U3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgICAgICAKLSAgICAgICAgYm9vbCBpc0Jp
bmRpbmdOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29s
IGlzQmluZGluZ05vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
SlNUZXh0UG9zaXRpb24gbV9kaXZvdFN0YXJ0OwogICAgICAgICBKU1RleHRQb3NpdGlvbiBtX2Rp
dm90RW5kOwpAQCAtMjQ0MSwxNCArMjQ0MSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFJlc3RQYXJhbWV0ZXJOb2RlKERlc3RydWN0dXJpbmdQYXR0ZXJuTm9kZSos
IHVuc2lnbmVkIG51bVBhcmFtZXRlcnNUb1NraXApOwogCi0gICAgICAgIGJvb2wgaXNSZXN0UGFy
YW1ldGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlz
UmVzdFBhcmFtZXRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICB2
b2lkIGVtaXQoQnl0ZWNvZGVHZW5lcmF0b3ImKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZv
aWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCopIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxk
ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVy
cyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAg
IHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogCiAgICAgICAgIERl
c3RydWN0dXJpbmdQYXR0ZXJuTm9kZSogbV9wYXR0ZXJuOwogICAgICAgICB1bnNpZ25lZCBtX251
bVBhcmFtZXRlcnNUb1NraXA7CkBAIC0yNDYzLDExICsyNDYzLDExIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVy
biBtX2Rpdm90RW5kOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3Vu
ZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50
aWZpZXI+JikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5n
KFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKIAotICAgICAgICBib29sIGlzQXNzaWdubWVu
dEVsZW1lbnROb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBi
b29sIGlzQXNzaWdubWVudEVsZW1lbnROb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fZGl2b3RTdGFydDsKICAgICAgICAgSlNUZXh0
UG9zaXRpb24gbV9kaXZvdEVuZDsKQEAgLTI0ODAsOSArMjQ4MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUqIGJpbmRpbmdzKCkgeyByZXR1cm4g
bV9iaW5kaW5nczsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGlzQXNz
aWdubWVudExvY2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAg
ICBib29sIGlzRGVzdHJ1Y3R1cmluZ05vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNBc3NpZ25t
ZW50TG9jYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wg
aXNEZXN0cnVjdHVyaW5nTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUq
IG1fYmluZGluZ3M7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2luaXRpYWxpemVyOwpAQCAt
MjUyMywxMiArMjUyMywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IEZ1bmNEZWNsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwg
RnVuY3Rpb25NZXRhZGF0YU5vZGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CiAKLSAgICAgICAgYm9v
bCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQot
ICAgICAgICBib29sIGlzRnVuY0RlY2xOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jRGVjbE5vZGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CiAgICAgICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBtZXRhZGF0YSgp
IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
KiBtX21ldGFkYXRhOwogICAgIH07CkBAIC0yNTM4LDkgKzI1MzgsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQ2xhc3NEZWNsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSogY2xhc3NFeHByZXNzaW9uKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29tcGxldGlv
blZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCBo
YXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2NsYXNzRGVjbGFyYXRpb247CiAgICAgfTsKQEAgLTI1OTMs
NyArMjU5Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTd2l0Y2hOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQ2FzZUJsb2NrTm9kZSosIFZhcmlhYmxl
RW52aXJvbm1lbnQmLCBGdW5jdGlvblN0YWNrJiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fZXhwcjsKICAgICAgICAgQ2FzZUJsb2NrTm9kZSogbV9ibG9jazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCAzM2UzOWQxYTg3Nzhk
YjI5ODIzNTllYzJhODRlNjhiZmQ5NmY1NDM0Li5iNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUyOTk3
ZjcyNWI3NjAwM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlci5oCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrOwogICAgIH07CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgY2xhc3MgV2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CisgICAgY2xh
c3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VQcm92aWRl
ciB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI+IGNyZWF0ZShWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4m
IHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFdURk1vdmUoZGF0YSksIHNv
dXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpKSk7CiAgICAgICAgIH0KIAotICAgICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZp
bmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZS5pbXBsKCktPmhhc2go
KTsKICAgICAgICAgfQogCi0gICAgICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3Qgb3ZlcnJp
ZGUKKyAgICAgICAgU3RyaW5nVmlldyBzb3VyY2UoKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gbV9zb3VyY2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRhVmlldy5oCmluZGV4IGJkMjhlNzFkYzQ2ZTI5OTA0NWJiMTE3Y2NiYjdl
MTc0NGQzMDg5MjMuLmRhMDZiNGJiMjE0NDZiNmViNmU5NWZkZmI5ZTI0NWZiNjFiMzVjODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaApAQCAtMzAsMjAgKzMwLDE3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1
ZmZlclZpZXcgewotcHJvdGVjdGVkOgotICAgIERhdGFWaWV3KFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7Ci0gICAgCitjbGFz
cyBEYXRhVmlldyBmaW5hbCA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogcHVibGljOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8RGF0YVZpZXc+IGNyZWF0ZShSZWZQdHI8QXJy
YXlCdWZmZXI+JiYsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAg
c3RhdGljIFJlZjxEYXRhVmlldz4gY3JlYXRlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7CiAgICAg
Ci0gICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgVHlwZWRB
cnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gVHlw
ZURhdGFWaWV3OwogICAgIH0KIAotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEpTR2xvYmFs
T2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZTsKKyAgICBKU0FycmF5QnVmZmVyVmll
dyogd3JhcChKU0dsb2JhbE9iamVjdCosIEpTR2xvYmFsT2JqZWN0KikgZmluYWw7CiAgICAgCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBUIGdldCh1bnNpZ25lZCBvZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBib29sKiBzdGF0dXMgPSBudWxscHRyKQpAQCAtODQsNiArODEsOSBAQCBw
dWJsaWM6CiAgICAgICAgICpyZWludGVycHJldF9jYXN0PFQqPihzdGF0aWNfY2FzdDx1aW50OF90
Kj4obV9iYXNlQWRkcmVzcy5nZXQoYnl0ZUxlbmd0aCgpKSkgKyBvZmZzZXQpID0KICAgICAgICAg
ICAgIGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKHZhbHVlLCBsaXR0bGVFbmRpYW4pOwogICAgIH0K
KworcHJpdmF0ZToKKyAgICBEYXRhVmlldyhSZWZQdHI8QXJyYXlCdWZmZXI+JiYsIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3VibGVQcmVk
aWN0aW9uRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJs
ZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCmluZGV4IGFjZjU2NWQzOGQwN2U3MjA5ZGFiNjI2OWYw
ODEwMGE4YjRmNjFkMjUuLjNjZjBiNDgwZjBlYzVmM2Y4ZDYzYmNkNmNhZmQ1YTIxNjVmZGYxMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJsZVByZWRpY3Rp
b25GdXp6ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJs
ZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIERvdWJsZVBy
ZWRpY3Rpb25GdXp6ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBGdXp6ZXJBZ2VudCB7CiBwdWJsaWM6
CiAgICAgRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50KFZNJik7CiAKLSAgICBTcGVjdWxhdGVk
VHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxh
dGVkVHlwZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2Rl
QmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GaWxlQmFzZWRGdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmlsZUJhc2VkRnV6emVyQWdlbnQuaAppbmRleCA3NWUwMzM1NzE5MTA4MGMxMzdhNDgyMzIz
OGI1NGE3M2I0YzhmMWI3Li42NDllMzA2MDBjY2I0YWVkODYxOTY2NDdhZGJiODcyYTYxODFlNzUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaWxlQmFzZWRGdXp6
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbGVCYXNlZEZ1
enplckFnZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEZpbGVCYXNlZEZ1enpl
ckFnZW50KFZNJik7CiAKIHByaXZhdGU6Ci0gICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlv
bkludGVybmFsKENvZGVCbG9jayosIFByZWRpY3Rpb25UYXJnZXQmLCBTcGVjdWxhdGVkVHlwZSBv
cmlnaW5hbCkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbkludGVy
bmFsKENvZGVCbG9jayosIFByZWRpY3Rpb25UYXJnZXQmLCBTcGVjdWxhdGVkVHlwZSBvcmlnaW5h
bCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggNGY4NjRl
ZDBjYjFkMjdmZmZlOGFlMzZlMmQ5NDQ2YmRkYmFiYTEwNy4uY2NlZTZhYWQ3ODFhNjA2YjU0YzBi
ODZkODllZjljODQyMjA1OGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKQEAgLTExMCwxMiArMTEwLDEyIEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJheShpbnQgc3Rh
cnQpIGNvbnN0OwogICAgIFJlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGlu
dCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAgICAgCi0gICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlw
ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gQWRhcHRvcjo6dHlwZVZhbHVlOwogICAgIH0KIAot
ICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEpTR2xvYmFsT2JqZWN0KiwgSlNHbG9iYWxPYmpl
Y3QqKSBvdmVycmlkZTsKKyAgICBKU0FycmF5QnVmZmVyVmlldyogd3JhcChKU0dsb2JhbE9iamVj
dCosIEpTR2xvYmFsT2JqZWN0KikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR2VuZXJpY1R5cGVk
QXJyYXlWaWV3KFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTWljcm90YXNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90
YXNrLmNwcAppbmRleCAzYTUzZmNiN2UwZTg4MmRlZDkyNWQ4NTVhMTIzMDdlZGFkYzBjNTUzLi5m
OTMzNTMxYzc0N2ZjMGJmYjBlZTU5YmY5ZGUxYzNiZTM0MjMxMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suY3BwCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBydW4oSlNHbG9iYWxPYmplY3QqKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJ1bihKU0dsb2JhbE9iamVjdCopIGZpbmFsOwogCiAgICAgU3Ry
b25nPFVua25vd24+IG1fam9iOwogICAgIFN0cm9uZzxVbmtub3duPiBtX2FyZ3VtZW50c1ttYXhB
cmd1bWVudHNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFy
cm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAppbmRleCA3
OWE2Yjc5Nzc4YzA0NTRhODMwYzRiZDUyZDdlZDg5ZWM1NWViMDc2Li43YjUyMDc0OTZkMTI0Mzdj
Y2Y2OWNjYmUzZjBjOGVmODU0MGQ4OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6
emVyQWdlbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBOYXJyb3dpbmdOdW1iZXJQcmVkaWN0
aW9uRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgTnVtYmVyUHJlZGljdGlvbkZ1enplcgogcHVi
bGljOgogICAgIE5hcnJvd2luZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudChWTSYpOwogCi0g
ICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3Jp
Z2luJiwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFBy
ZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBlKSBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50LmgKaW5kZXggZWNjNGQwNjY1ZjMxNTQzNWM5YjE2YzBhNTExNTU0YTdh
M2I0ZGFlNC4uOWZjYzlkMjAzNWU3YzViYjg4NmEyZjAwNTBjOWE4NDEyMTlmNGFlZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oCkBAIC00MiwxMiArNDIsMTIg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBv
dmVycmlkZQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9vd25lci0+aXNMaXZlKCk7CiAgICAgfQogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZN
JiB2bSwgY29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlCisgICAgdm9pZCBoYW5kbGVGaXJlKFZN
JiB2bSwgY29uc3QgRmlyZURldGFpbCYpIGZpbmFsCiAgICAgewogICAgICAgICBtX3dhdGNocG9p
bnRTZXQuZmlyZUFsbCh2bSwgU3RyaW5nRmlyZURldGFpbCgiT2JqZWN0IFByb3BlcnR5IGlzIGNo
YW5nZWQuIikpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmgKaW5kZXgg
NjE3MDI4ZDkyYzY0MTQ4Y2JjMTMxMjFiODNkNzU0NjRiZDBlMjEzOS4uYTAyYWNkNmY4ZDIyYzIx
NDU1NTIyNTRmYjkzOTYyYTUxZDA0MTczNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFn
ZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIFByZWRpY3Rpb25GaWxlQ3JlYXRp
bmdGdXp6ZXJBZ2VudChWTSYpOwogCiBwcml2YXRlOgotICAgIFNwZWN1bGF0ZWRUeXBlIGdldFBy
ZWRpY3Rpb25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRl
ZFR5cGUgb3JpZ2luYWwpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rp
b25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRlZFR5cGUg
b3JpZ2luYWwpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlVGltZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VUaW1lci5oCmluZGV4IDZlNGY5ZmFiNTVlZDE4YzAw
OTRlZWE5N2Q1MWY1ZTQyMmNjMGZlNzIuLjNhNGQwZjI5YWUyZDI4Y2YzZTQwNGJlZmI1NDZmNTNj
ZDBiYmFlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21p
c2VUaW1lci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VUaW1l
ci5oCkBAIC0zOCwxMSArMzgsMTEgQEAgY2xhc3MgSlNQcm9taXNlOwogY2xhc3MgVk07CiBjbGFz
cyBKU0NlbGw7CiAKLWNsYXNzIFByb21pc2VUaW1lciA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7
CitjbGFzcyBQcm9taXNlVGltZXIgZmluYWwgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1J1bkxvb3BUaW1lcjsKIAotICAgIHZvaWQgZG9Xb3Jr
KFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dvcmsoVk0mKSBmaW5hbDsKIAogICAgIHZvaWQg
YWRkUGVuZGluZ1Byb21pc2UoVk0mLCBKU1Byb21pc2UqLCBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+
JiYgZGVwZW5kZW5jaWVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc1BlbmRpbmdQ
cm9taXNlKEpTUHJvbWlzZSogdGlja2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaAppbmRleCA2Yzc0YWQwM2E2Mjk3
YjhjNmQyYzI5M2ZlMThjMjZkNWFlNzA0ZDhhLi4xZGU3YmI3Zjc1ZjRlODU5MDBmOWI2ZTQ0OTFi
N2Y1NGNlOWIyYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
YW5kb21pemluZ0Z1enplckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmFuZG9taXppbmdGdXp6ZXJBZ2VudC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFJhbmRv
bWl6aW5nRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgewogcHVibGljOgog
ICAgIFJhbmRvbWl6aW5nRnV6emVyQWdlbnQoVk0mKTsKIAotICAgIFNwZWN1bGF0ZWRUeXBlIGdl
dFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBl
KSBvdmVycmlkZTsKKyAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayos
IGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDYWNoZS5oCmluZGV4IDdiMTI2M2RlMWRiZTUzN2RhNDM2NTI1NmMzZDIzZmIzZmJjNDQ2
NmUuLjgyNzM3ZDhmOWM2OGRlMThlODdmNWU1N2NlYTBhNjAyMTBlODg4ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuaApAQCAtNDEsNyArNDEsNyBAQCBu
YW1lc3BhY2UgWWFyciB7CiBlbnVtIGNsYXNzIEZsYWdzIDogdWludDhfdDsKIH0KIAotY2xhc3Mg
UmVnRXhwQ2FjaGUgOiBwcml2YXRlIFdlYWtIYW5kbGVPd25lciB7CitjbGFzcyBSZWdFeHBDYWNo
ZSBmaW5hbCA6IHByaXZhdGUgV2Vha0hhbmRsZU93bmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIAogICAgIGZyaWVuZCBjbGFzcyBSZWdFeHA7CkBAIC01OSwxMiArNTksMTEgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICAKICAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG1heFN0cm9uZ0NhY2hlYWJsZVBhdHRlcm5MZW5ndGggPSAyNTY7CiAKICAgICBzdGF0
aWMgY29uc3RleHByIGludCBtYXhTdHJvbmdDYWNoZWFibGVFbnRyaWVzID0gMzI7CiAKLSAgICB2
b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwog
CiAgICAgUmVnRXhwKiBlbnN1cmVFbXB0eVJlZ0V4cFNsb3coVk0mKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggMDlkNzUyNTRjNmIxMzI5ZmE3
OThkNmY3N2Y1ZDYwYzVkYTQxYTFlYy4uYzYyYWZjZTZlOTYzMDI2OTgyZmFkODk3YzY0ZTVhZjhi
YWQ4ZTYyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cnVjdHVyZSo+JiBsaXZlU3RydWN0
dXJlU2V0ID0gKihuZXcgSGFzaFNldDxTdHJ1Y3R1cmUqPik7CiAjZW5kaWYKIAogY2xhc3MgU2lu
Z2xlU2xvdFRyYW5zaXRpb25XZWFrT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVy
IHsKLSAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3Zl
cnJpZGUKKyAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkg
ZmluYWwKICAgICB7CiAgICAgICAgIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSogdGFibGUgPSBy
ZWludGVycHJldF9jYXN0PFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSo+KGNvbnRleHQpOwogICAg
ICAgICBBU1NFUlQodGFibGUtPmlzVXNpbmdTaW5nbGVTbG90KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCmluZGV4IGI1YTk4
ZGJlNGM5YjMyYmFmZmE2ZjQ4YzJiY2U0NzA2YTAxMTA0MmQuLmQ4NTM0YTBlZjRlMGQ2Y2E5YTBh
ZTM4NTFiYmY3ZDJjNTg5YWZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKQEAgLTg2LDggKzg2LDggQEAgcHVibGljOgog
ICAgIE9iamVjdFRvU3RyaW5nQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiwgU3RydWN0dXJlUmFyZURhdGEqKTsKIAog
cHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhh
bmRsZUZpcmUoVk0mLCBjb25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURl
dGFpbCYpIGZpbmFsOwogCiAgICAgU3RydWN0dXJlUmFyZURhdGEqIG1fc3RydWN0dXJlUmFyZURh
dGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCBk
MzdlOGM4NmM2YmE1YTVjNjQxYWI5NTBlZDc0NDZjZGI0MmE1YjdhLi42MTVlYzllYzU1MTA0N2Mz
NzZjYzY3ZWZhYWVhZmIzNWExZTYxYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTVRyYXBzLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgfSk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gIkpTQyBWTVRy
YXBzIFNpZ25hbCBTZW5kZXIgVGhyZWFkIjsKICAgICB9CkBAIC0yNDgsNyArMjQ4LDcgQEAgcHVi
bGljOgogICAgIFZNVHJhcHMmIHRyYXBzKCkgeyByZXR1cm4gbV92bS50cmFwcygpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgb3ZlcnJp
ZGUKKyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKHRyYXBzKCkubV9pc1NodXR0aW5nRG93bikKICAgICAgICAgICAgIHJl
dHVybiBQb2xsUmVzdWx0OjpTdG9wOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBQb2xsUmVzdWx0OjpXb3JrOwogICAgIH0KIAotICAgIFdvcmtSZXN1bHQgd29y
aygpIG92ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAg
IFZNJiB2bSA9IG1fdm07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCmlu
ZGV4IDc1OWY1ZWRhZjk0YTc1MDAyZDJiM2E5ZDcxOTYwY2YwZjE3N2U4ODIuLmY2MDhlZjdkMjcw
NmFmYTllOWI2ZjQyNzEyNTg0NzNiNjFjZDZmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2lkZW5pbmdOdW1iZXJQcmVkaWN0aW9u
RnV6emVyQWdlbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXaWRlbmluZ051bWJlclByZWRp
Y3Rpb25GdXp6ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBOdW1iZXJQcmVkaWN0aW9uRnV6emVyQQog
cHVibGljOgogICAgIFdpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50KFZNJik7CiAK
LSAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVP
cmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0
UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUp
IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggYWRkOWIxNmRkYzY4ZmZmZjhkYTkzYmU3MjIwZWQ0
MzdiZjk2YTU1OC4uOTU2ZWZkYjg1NGFmZmYzMGYwZGNiMGM3OTIxMTFmZjUzMTc0M2UwZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtMjQ2LDEwICsy
NDYsMTAgQEAgcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8Um9vdD4gbV9yb290OwogfTsKIAot
Y2xhc3MgRWxlbWVudEhhbmRsZU93bmVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CitjbGFz
cyBFbGVtZW50SGFuZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pIG92ZXJyaWRlCisgICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KSBmaW5hbAogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGlj
OgogICAgIH0KIH07CiAKLWNsYXNzIFJvb3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qg
eworY2xhc3MgUm9vdCBmaW5hbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJs
aWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0OwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KQEAgLTE0NjUsOSArMTQ2NSw5IEBA
IHB1YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkaWRSZWNlaXZl
U2VjdGlvbkRhdGEoV2FzbTo6U2VjdGlvbikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNvbnN0IFdhc206OkZ1
bmN0aW9uRGF0YSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdm9pZCBkaWRG
aW5pc2hQYXJzaW5nKCkgb3ZlcnJpZGUgeyB9CisgICAgICAgIGJvb2wgZGlkUmVjZWl2ZVNlY3Rp
b25EYXRhKFdhc206OlNlY3Rpb24pIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBXYXNtOjpGdW5jdGlvbkRh
dGEmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZvaWQgZGlkRmluaXNoUGFyc2lu
ZygpIGZpbmFsIHsgfQogCiAgICAgICAgIFdhc21TdHJlYW1pbmdQYXJzZXIqIG1fcGFyc2VyOwog
ICAgIH07CkBAIC0yNjkxLDcgKzI2OTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgc291cmNlUGFyc2VkKEpTR2xvYmFsT2JqZWN0KiwgU291cmNlUHJvdmlkZXIqLCBp
bnQsIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGUKKyAgICB2b2lkIHNvdXJjZVBhcnNlZChK
U0dsb2JhbE9iamVjdCosIFNvdXJjZVByb3ZpZGVyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYp
IGZpbmFsCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFu
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5oCmluZGV4IDI5NGE3
NDMwOTE1MWM5Mzg3ZGUxYmRhM2Q0ZmMyMjBjYjg3NzViYWMuLmZiNGUxZTI1OTYyMGRiYjc1NDc2
ZmM3NmM5MmRjZWM2MjUzODY0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CQlFQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJC
UVBsYW4uaApAQCAtNTYsMTkgKzU2LDE5IEBAIHB1YmxpYzoKIAogICAgIEJCUVBsYW4oQ29udGV4
dCosIFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4sIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIENvZGVC
bG9jayosIENvbXBsZXRpb25UYXNrJiYpOwogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICBib29sIGhhc1dvcmsoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgaWYg
KG1fYXN5bmNXb3JrID09IEFzeW5jV29yazo6VmFsaWRhdGlvbikKICAgICAgICAgICAgIHJldHVy
biBtX3N0YXRlIDwgU3RhdGU6OlZhbGlkYXRlZDsKICAgICAgICAgcmV0dXJuIG1fc3RhdGUgPCBT
dGF0ZTo6Q29tcGlsZWQ7CiAgICAgfQogCi0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0
KSBvdmVycmlkZTsKKyAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIGZpbmFsOwogCiAg
ICAgdXNpbmcgQ2FsbGVlSW5pdGlhbGl6ZXIgPSBGdW5jdGlvbjx2b2lkKHVpbnQzMl90LCBSZWZQ
dHI8RW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlPiYmLCBSZWY8QkJRQ2FsbGVlPiYmKT47CiAgICAg
dm9pZCBpbml0aWFsaXplQ2FsbGVlcyhjb25zdCBDYWxsZWVJbml0aWFsaXplciYpOwogCi0gICAg
Ym9vbCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBGdW5jdGlvbkRhdGEm
KSBvdmVycmlkZTsKKyAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNv
bnN0IEZ1bmN0aW9uRGF0YSYpIGZpbmFsOwogCiAgICAgYm9vbCBwYXJzZUFuZFZhbGlkYXRlTW9k
dWxlKCkKICAgICB7CkBAIC03Niw5ICs3Niw5IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgYm9vbCBwcmVwYXJlSW1wbCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGlsZUZ1bmN0
aW9uKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ29tcGxl
dGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlOworICAgIGJvb2wg
cHJlcGFyZUltcGwoKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBm
dW5jdGlvbkluZGV4KSBmaW5hbDsKKyAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29u
c3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5h
bEZ1bmN0aW9uPiBjb21waWxlRnVuY3Rpb24odWludDMyX3QgZnVuY3Rpb25JbmRleCwgQ29tcGls
YXRpb25Db250ZXh0JiwgVmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNhbGw+JiwgVGllclVwQ291
bnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCmluZGV4IDNhNDlj
NWYyOGZkYjc5NWQyNTZiZDI3ZGM1MmMyNDNkOGUyNWNhNzkuLmJhMzllNTZjMjMxNDQwYmJmYjE0
MmU3YTM4NDg0Y2NmNGY2NzVhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2Fs
bGVlLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgT01HRm9yT1NS
RW50cnlDYWxsZWUqIG9zckVudHJ5Q2FsbGVlKCkgeyByZXR1cm4gbV9vc3JFbnRyeUNhbGxlZS5n
ZXQoKTsgfQotICAgIHZvaWQgc2V0T1NSRW50cnlDYWxsZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2Fs
bGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBvdmVycmlkZQorICAgIHZvaWQgc2V0T1NSRW50cnlDYWxs
ZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2FsbGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBmaW5hbAogICAg
IHsKICAgICAgICAgbV9vc3JFbnRyeUNhbGxlZSA9IFdURk1vdmUob3NyRW50cnlDYWxsZWUpOwog
ICAgIH0KQEAgLTE5Miw5ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCBzZXRFbnRyeXBvaW50KE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxXYXNtRW50
cnlQdHJUYWc+KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdpc3RlcnMoKSBv
dmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnR1cGxlPHZvaWQqLCB2b2lkKj4g
cmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI8V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50KCkgY29uc3QgZmluYWw7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdp
c3RlcnMoKSBmaW5hbDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnR1cGxlPHZvaWQqLCB2
b2lkKj4gcmFuZ2UoKSBjb25zdCBmaW5hbDsKIAogICAgIEpJVENhbGxlZSogcmVwbGFjZW1lbnQo
KSB7IHJldHVybiBtX3JlcGxhY2VtZW50LmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXBsYWNlbWVu
dChSZWY8SklUQ2FsbGVlPiYmIHJlcGxhY2VtZW50KQpAQCAtMjAzLDcgKzIwMyw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBPTUdGb3JPU1JFbnRyeUNhbGxlZSogb3NyRW50cnlDYWxsZWUoKSB7
IHJldHVybiBtX29zckVudHJ5Q2FsbGVlLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRPU1JFbnRyeUNh
bGxlZShSZWY8T01HRm9yT1NSRW50cnlDYWxsZWU+JiYgb3NyRW50cnlDYWxsZWUpIG92ZXJyaWRl
CisgICAgdm9pZCBzZXRPU1JFbnRyeUNhbGxlZShSZWY8T01HRm9yT1NSRW50cnlDYWxsZWU+JiYg
b3NyRW50cnlDYWxsZWUpIGZpbmFsCiAgICAgewogICAgICAgICBtX29zckVudHJ5Q2FsbGVlID0g
V1RGTW92ZShvc3JFbnRyeUNhbGxlZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50UGxhbi5oCmluZGV4IDkzMzViM2EwNWI4MGNhZTQ1ZGI4OWNjYzQ4YzViYzE5
YzFkNWVkNTguLmZiODQ5MWJhYjMwZGZhYjc5YzM3ZjEyYWViYmMxZWU0MWQxZTg1ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmgKQEAgLTY2LDE5ICs2Niwx
OSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fZW1iZWRkZXJDYWxsZWVzKTsK
ICAgICB9CiAKLSAgICBib29sIGhhc1dvcmsoKSBjb25zdCBvdmVycmlkZQorICAgIGJvb2wgaGFz
V29yaygpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gbV9zdGF0ZSA8IFN0YXRl
OjpDb21waWxlZDsKICAgICB9CiAKLSAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIG92
ZXJyaWRlOworICAgIHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CiAKLSAgICBi
b29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNvbnN0IEZ1bmN0aW9uRGF0YSYp
IG92ZXJyaWRlOworICAgIGJvb2wgZGlkUmVjZWl2ZUZ1bmN0aW9uRGF0YSh1bnNpZ25lZCwgY29u
c3QgRnVuY3Rpb25EYXRhJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBwcmVwYXJlSW1w
bCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGlsZUZ1bmN0aW9uKHVpbnQzMl90IGZ1bmN0aW9u
SW5kZXgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBB
YnN0cmFjdExvY2tlciYpIG92ZXJyaWRlOworICAgIGJvb2wgcHJlcGFyZUltcGwoKSBmaW5hbDsK
KyAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBmdW5jdGlvbkluZGV4KSBmaW5hbDsK
KyAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImKSBm
aW5hbDsKIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb25Db2RlQmxvY2s+PiBt
X3dhc21JbnRlcm5hbEZ1bmN0aW9uczsKICAgICBjb25zdCBSZWY8TExJbnRDYWxsZWU+KiBtX2Nh
bGxlZXMgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT01HRm9yT1NSRW50cnlQbGFuLmgKaW5kZXggOGE1ZWE1NTEyMDQ4NThmMWY3MTIyZTc5YTJh
OWFhNmM2ODgwNTJjOS4uYmI5ZTQ4NzRjZThiYTU2NDFiODFiMWZkZTk5ZjFkZWNkN2ViNzI2MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5
UGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRy
eVBsYW4uaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBPTUdGb3JPU1JFbnRyeVBsYW4gZmluYWwg
OiBwdWJsaWMgUGxhbiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFBsYW47CiAKLSAgICBi
b29sIGhhc1dvcmsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhbV9jb21wbGV0ZWQ7IH0KLSAg
ICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIG92ZXJyaWRlOwotICAgIGJvb2wgbXVsdGlU
aHJlYWRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBoYXNX
b3JrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fY29tcGxldGVkOyB9CisgICAgdm9pZCB3b3Jr
KENvbXBpbGF0aW9uRWZmb3J0KSBmaW5hbDsKKyAgICBib29sIG11bHRpVGhyZWFkZWQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTm90ZTogQ29tcGxldGlvblRhc2sg
c2hvdWxkIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBQbGFuIG90aGVyd2lzZSB0aGVyZSB3
aWxsIGJlIGEgcmVmZXJlbmNlIGN5Y2xlLgogICAgIE9NR0Zvck9TUkVudHJ5UGxhbihDb250ZXh0
KiwgUmVmPE1vZHVsZT4mJiwgUmVmPENhbGxlZT4mJiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCwg
dWludDMyX3QgbG9vcEluZGV4LCBNZW1vcnlNb2RlLCBDb21wbGV0aW9uVGFzayYmKTsKQEAgLTU0
LDggKzU0LDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3Igc29tZSByZWFzb24gZnJpZW5kc2hpcCBk
b2Vzbid0IGV4dGVuZCB0byBwYXJlbnQgY2xhc3Nlcy4uLgogICAgIHVzaW5nIEJhc2U6Om1fbG9j
azsKIAotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29t
cGxldGVkOyB9Ci0gICAgdm9pZCBjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KSBvdmVycmlkZQorICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29tcGxldGVkOyB9CisgICAgdm9pZCBjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICBy
dW5Db21wbGV0aW9uVGFza3MobG9ja2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PTUdQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T01HUGxhbi5oCmluZGV4IGNiNzliNDM5ZDRlOTk0ZDg3MGU5ZGM5MDg5YzQzYTdmNTg2MDI1NjYu
Ljc3YTFkODJhNWJiZjc2ODE0Y2U3MTM4OWY0ZDVjZDY2MDA4ZjJkNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBPTUdQ
bGFuIGZpbmFsIDogcHVibGljIFBsYW4gewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBQbGFu
OwogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fY29tcGxl
dGVkOyB9Ci0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0KSBvdmVycmlkZTsKLSAgICBi
b29sIG11bHRpVGhyZWFkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaGFzV29yaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2NvbXBsZXRlZDsgfQorICAg
IHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CisgICAgYm9vbCBtdWx0aVRocmVh
ZGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5vdGU6IENvbXBs
ZXRpb25UYXNrIHNob3VsZCBub3QgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgUGxhbiBvdGhlcndp
c2UgdGhlcmUgd2lsbCBiZSBhIHJlZmVyZW5jZSBjeWNsZS4KICAgICBPTUdQbGFuKENvbnRleHQq
LCBSZWY8TW9kdWxlPiYmLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBNZW1vcnlNb2RlLCBDb21w
bGV0aW9uVGFzayYmKTsKQEAgLTUyLDggKzUyLDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3Igc29t
ZSByZWFzb24gZnJpZW5kc2hpcCBkb2Vzbid0IGV4dGVuZCB0byBwYXJlbnQgY2xhc3Nlcy4uLgog
ICAgIHVzaW5nIEJhc2U6Om1fbG9jazsKIAotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9Ci0gICAgdm9pZCBjb21wbGV0ZShjb25zdCBB
YnN0cmFjdExvY2tlciYgbG9ja2VyKSBvdmVycmlkZQorICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9CisgICAgdm9pZCBjb21wbGV0ZShjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9jb21wbGV0
ZWQgPSB0cnVlOwogICAgICAgICBydW5Db21wbGV0aW9uVGFza3MobG9ja2VyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IGQxNGY3ODdhMTI5MGFh
ZTg2ZjNmNzE3MzhkNjlmMWRmNjQxM2VlZDAuLjYwYWYwMWFhNWU1ZDUwOGU4NzM2ZjdlZGIxMGI5
Nzc3N2E3YTk3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21X
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlCisgICAgUG9sbFJl
c3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgZmluYWwKICAgICB7CiAgICAgICAgIGF1
dG8mIHF1ZXVlID0gd29ya2xpc3QubV9xdWV1ZTsKICAgICAgICAgc3luY2hyb25pemUubm90aWZ5
QWxsKCk7CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBQb2xsUmVz
dWx0OjpXYWl0OwogICAgIH0KIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92ZXJyaWRlCisgICAg
V29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAgIGF1dG8gY29tcGxldGUgPSBb
Jl0gKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgewogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBo
b2xkIHRoZSBsb2NrIHRvIHJlbGVhc2Ugb3VyIHBsYW4gb3RoZXJ3aXNlIHRoZSBtYWluIHRocmVh
ZCwgd2hpbGUgY2FuY2VsaW5nIHBsYW5zCkBAIC0xMTcsMTIgKzExNywxMiBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gY29tcGxldGUoaG9sZExvY2soKndvcmtsaXN0Lm1fbG9jaykpOwogICAg
IH0KIAotICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhjb25zdCBBYnN0cmFjdExvY2tlciYpIG92
ZXJyaWRlCisgICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFic3RyYWN0TG9ja2VyJikg
ZmluYWwKICAgICB7CiAgICAgICAgIGNsZWFyTExJbnRUaHJlYWRTcGVjaWZpY0NhY2hlKCk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gIldhc20gV29y
a2xpc3QgSGVscGVyIFRocmVhZCI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCA2ZWI4YTE2ZjliN2RiZGIwZmIyN2RjY2E4MzQ0Nzk2Zjk5MTQ5NzNiLi42
NGRhY2YyMjQyNDE3OGFhZmNhMGJkODJjZTI1YjljNDE1ZDgwMTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtNjksNyArNjksNyBAQCBNYXRjaGluZ0NvbnRleHRI
b2xkZXI6On5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKQogfQogCiB0ZW1wbGF0ZTxZYXJySklUQ29t
cGlsZU1vZGUgY29tcGlsZU1vZGU+Ci1jbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJK
SVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKK2NsYXNzIFlhcnJHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAjaWYg
Q1BVKEFSTV9USFVNQjIpCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBBUk1S
ZWdpc3RlcnM6OnIwOwpAQCAtMzk4Miw3ICszOTgyLDcgQEAgcHVibGljOgogICAgICAgICAgICAg
Y29kZUJsb2NrLnNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oKm1fZmFpbHVyZVJlYXNvbik7
CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogdmFyaWFudCgpIG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogdmFyaWFudCgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAoY29tcGlsZU1vZGUgPT0g
TWF0Y2hPbmx5KSB7CiAgICAgICAgICAgICBpZiAobV9jaGFyU2l6ZSA9PSBDaGFyOCkKQEAgLTM5
OTcsMTcgKzM5OTcsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gIjE2LWJpdCByZWd1bGFy
IGV4cHJlc3Npb24iOwogICAgIH0KIAotICAgIHVuc2lnbmVkIG9wQ291bnQoKSBvdmVycmlkZQor
ICAgIHVuc2lnbmVkIG9wQ291bnQoKSBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3Bz
LnNpemUoKTsKICAgICB9CiAKLSAgICB2b2lkIGR1bXBQYXR0ZXJuU3RyaW5nKFByaW50U3RyZWFt
JiBvdXQpIG92ZXJyaWRlCisgICAgdm9pZCBkdW1wUGF0dGVyblN0cmluZyhQcmludFN0cmVhbSYg
b3V0KSBmaW5hbAogICAgIHsKICAgICAgICAgbV9wYXR0ZXJuLmR1bXBQYXR0ZXJuU3RyaW5nKG91
dCwgbV9wYXR0ZXJuU3RyaW5nKTsKICAgICB9CiAKLSAgICBpbnQgZHVtcEZvcihQcmludFN0cmVh
bSYgb3V0LCB1bnNpZ25lZCBvcEluZGV4KSBvdmVycmlkZQorICAgIGludCBkdW1wRm9yKFByaW50
U3RyZWFtJiBvdXQsIHVuc2lnbmVkIG9wSW5kZXgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAo
b3BJbmRleCA+PSBvcENvdW50KCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKaW5kZXggMzZjNmRjOThhY2QyYjZkYzkzMTcyYzhhYzVhZTgyNjk4OGVkNzg0Ni4uMGFi
YTg1Njc3MjUyZDNiYWZlMWVmZmU5MjkwMzRkNzg4MWQ3ZDZjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKQEAgLTI3MiwxMCArMjcyLDEwIEBAIHZvaWQgV1RGUmVwb3J0QXJndW1lbnRBc3NlcnRpb25G
YWlsdXJlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmCiAgICAgcHJp
bnRDYWxsU2l0ZShmaWxlLCBsaW5lLCBmdW5jdGlvbik7CiB9CiAKLWNsYXNzIENyYXNoTG9nUHJp
bnRTdHJlYW0gOiBwdWJsaWMgUHJpbnRTdHJlYW0geworY2xhc3MgQ3Jhc2hMb2dQcmludFN0cmVh
bSBmaW5hbCA6IHB1YmxpYyBQcmludFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgV1RGX0FUVFJJQlVU
RV9QUklOVEYoMiwgMCkKLSAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9s
aXN0IGFyZ0xpc3QpIG92ZXJyaWRlCisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgdmFfbGlzdCBhcmdMaXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgdnByaW50Zl9zdGRlcnJf
Y29tbW9uKGZvcm1hdCwgYXJnTGlzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKaW5kZXggY2FlNjgxMTc4
MmU1NjIzMzRiOTVlMzE2NjE1YWU1OTFlMTNlODBjZS4uZTU0MDc1YWY1ZGRjYjZiMjkxZjM4OTg2
OWU4ODFkMmU2ZDk1NTAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC0yMTMsNyArMjEzLDcgQEAgdGVtcGxh
dGU8Y2xhc3MgRT4KIGNsYXNzIGJhZF9leHBlY3RlZF9hY2Nlc3MgOiBwdWJsaWMgYmFkX2V4cGVj
dGVkX2FjY2Vzczx2b2lkPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgYmFkX2V4cGVjdGVkX2Fj
Y2VzcyhFIHZhbCkgOiB2YWwodmFsKSB7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHdoYXQo
KSBjb25zdCBub2V4Y2VwdCBvdmVycmlkZSB7IHJldHVybiBzdGQ6OmV4Y2VwdGlvbjo6d2hhdCgp
OyB9CisgICAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IG92ZXJyaWRlIHsgcmV0
dXJuIHN0ZDo6ZXhjZXB0aW9uOjp3aGF0KCk7IH0KICAgICBFJiBlcnJvcigpICYgeyByZXR1cm4g
dmFsOyB9CiAgICAgY29uc3QgRSYgZXJyb3IoKSBjb25zdCYgeyByZXR1cm4gdmFsOyB9CiAgICAg
RSYmIGVycm9yKCkgJiYgeyByZXR1cm4gc3RkOjptb3ZlKHZhbCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0ZpbGVQcmludFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVByaW50
U3RyZWFtLmgKaW5kZXggNTYxYmNmN2YwMmMyODk0OWI2MWUxZGE0NGVkZWFkZWJkMTE0MjFjNS4u
ZDM0MTIzZDRmZWIzOGMxODI1ZmE4OWJmMzc4NWNkYWI4ODBjMTg1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvRmlsZVByaW50U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVBy
aW50U3RyZWFtLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWNsYXNz
IEZpbGVQcmludFN0cmVhbSA6IHB1YmxpYyBQcmludFN0cmVhbSB7CitjbGFzcyBGaWxlUHJpbnRT
dHJlYW0gZmluYWwgOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIGVudW0gQWRv
cHRpb25Nb2RlIHsKICAgICAgICAgQWRvcHQsCkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgog
ICAgIH07CiAgICAgCiAgICAgRmlsZVByaW50U3RyZWFtKEZJTEUqLCBBZG9wdGlvbk1vZGUgPSBB
ZG9wdCk7Ci0gICAgdmlydHVhbCB+RmlsZVByaW50U3RyZWFtKCk7CisgICAgfkZpbGVQcmludFN0
cmVhbSgpIGZpbmFsOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEZpbGVQcmludFN0cmVhbT4gb3Blbihjb25zdCBjaGFyKiBmaWxlbmFtZSwgY29u
c3QgY2hhciogbW9kZSk7CiAgICAgCiAgICAgRklMRSogZmlsZSgpIHsgcmV0dXJuIG1fZmlsZTsg
fQogICAgIAotICAgIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIG92
ZXJyaWRlIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwotICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBmaW5h
bCBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKKyAgICB2b2lkIGZsdXNoKCkgZmluYWw7CiAK
IHByaXZhdGU6CiAgICAgRklMRSogbV9maWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
SlNPTlZhbHVlcy5oIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCmluZGV4IDg1Njg4OWEy
NmUwNzEyZjkwMThjZjdkMTg1NGYzZDkyMzQ1YTFjZTguLmViYWJjNDQ5Zjg4MGIzOWQzZmFkZTc4
Y2Q2MWIxYzRkNWUwZTY4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKQEAgLTE4Myw3ICsxODMsNyBAQCBw
dWJsaWM6CiAgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgfk9iamVjdEJhc2UoKTsKKyAgICB+T2JqZWN0QmFzZSgpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBhc09iamVjdChSZWZQdHI8T2JqZWN0PiYgb3V0cHV0KSBvdmVycmlkZTsK
IApAQCAtMzAxLDcgKzMwMSw3IEBAIHB1YmxpYzoKICAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGNv
bnN0IGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+QXJyYXlCYXNlKCk7CisgICAg
fkFycmF5QmFzZSgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBhc0FycmF5KFJlZlB0cjxBcnJheT4m
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9ja2VkUHJpbnRTdHJl
YW0uaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlZFByaW50U3RyZWFtLmgKaW5kZXggNmViOTBhYWU4
MDhlN2YyYjlmNDRkNDJlNTZlM2E5NDM1NzQ2OWM1Ny4uZTRmYWRiODVkYmIzZmRhZGM4NjgyZDhl
MjU0YzYyYmY0Y2ZlYjU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9ja2VkUHJpbnRT
dHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZWRQcmludFN0cmVhbS5oCkBAIC0zNSwx
NiArMzUsMTUgQEAgbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBMb2NrZWRQcmludFN0cmVhbSA6IHB1
YmxpYyBQcmludFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgTG9ja2VkUHJpbnRTdHJlYW0oc3RkOjp1
bmlxdWVfcHRyPFByaW50U3RyZWFtPiB0YXJnZXQpOwotICAgIHZpcnR1YWwgfkxvY2tlZFByaW50
U3RyZWFtKCk7CisgICAgfkxvY2tlZFByaW50U3RyZWFtKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgb3ZlcnJpZGUgV1RGX0FUVFJJ
QlVURV9QUklOVEYoMiwgMCk7Ci0gICAgdm9pZCBmbHVzaCgpIG92ZXJyaWRlOwotCi1wcm90ZWN0
ZWQ6Ci0gICAgUHJpbnRTdHJlYW0mIGJlZ2luKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbmQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBm
aW5hbCBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKKyAgICB2b2lkIGZsdXNoKCkgZmluYWw7
CiAKIHByaXZhdGU6CisgICAgUHJpbnRTdHJlYW0mIGJlZ2luKCkgZmluYWw7CisgICAgdm9pZCBl
bmQoKSBmaW5hbDsKKwogICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgYSByZWN1cnNpdmUgbG9jayBi
ZWNhdXNlIGEgcHJpbnRJbnRlcm5hbCBvciBkdW1wIG1ldGhvZCBjb3VsZCBhc3NlcnQsCiAgICAg
Ly8gYW5kIHRoYXQgYXNzZXJ0IG1pZ2h0IHdhbnQgdG8gbG9nLiBCZXR0ZXIgdG8gbGV0IGl0LiBU
aGlzIG5lZWRzIHRvIGJlIGEgV29yZExvY2sgc28gdGhhdAogICAgIC8vIExvY2tlZFByaW50U3Ry
ZWFtIChpLmUuIGNhdGFMb2cpIGNhbiBiZSB1c2VkIHRvIGRlYnVnIFBhcmtpbmdMb3QgYW5kIExv
Y2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmgKaW5kZXggYzg3ZWVmNzljNzBiNTE0ZjhkY2U3
ZTk1NWZhMmU2ZGQ5NjhiZDUyNi4uNTlmODExNGVjZDJkOTdhOTFmMDRmZmFlNzAxOTdkYmEzODdj
ZTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uaApAQCAtNDAsMTEgKzQwLDExIEBAIG5h
bWVzcGFjZSBXVEYgewogY2xhc3MgV1RGX0VYUE9SVF9QUklWQVRFIE9TTG9nUHJpbnRTdHJlYW0g
ZmluYWwgOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIE9TTG9nUHJpbnRTdHJl
YW0ob3NfbG9nX3QsIG9zX2xvZ190eXBlX3QpOwotICAgIHZpcnR1YWwgfk9TTG9nUHJpbnRTdHJl
YW0oKTsKKyAgICB+T1NMb2dQcmludFN0cmVhbSgpIGZpbmFsOwogICAgIAogICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8T1NMb2dQcmludFN0cmVhbT4gb3Blbihjb25zdCBjaGFyKiBzdWJzeXN0
ZW0sIGNvbnN0IGNoYXIqIGNhdGVnb3J5LCBvc19sb2dfdHlwZV90ID0gT1NfTE9HX1RZUEVfREVG
QVVMVCk7CiAgICAgCi0gICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlz
dCkgb3ZlcnJpZGUgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CisgICAgdm9pZCB2cHJpbnRm
KGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgZmluYWwgV1RGX0FUVFJJQlVURV9QUklOVEYo
MiwgMCk7CiAKIHByaXZhdGU6CiAgICAgb3NfbG9nX3QgbV9sb2c7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYvUGFyYWxs
ZWxIZWxwZXJQb29sLmNwcAppbmRleCA0ZjlhOTIyYzA4NGIyMjI1ZGQxODVjNDU1NGRjZTQzZGI5
MDQ5YmQwLi4xNjFmMjVjNTM0OGVkNjE3ODc2ODA2Yzk1ZTk4ZjVmOGJhNTQ2ZGQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFBh
cmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiAgICAgY2xpZW50LT5ydW5UYXNrKHRh
c2spOwogfQogCi1jbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZCA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgeworY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpUaHJlYWQgZmluYWwgOiBw
dWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImIGxvY2tlciwgUGFyYWxsZWxIZWxwZXJQb29sJiBwb29sKQogICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJsZUNv
bmRpdGlvbi5jb3B5UmVmKCkpCkBAIC0xNzcsMTMgKzE3NywxMyBAQCBwdWJsaWM6CiAgICAgewog
ICAgIH0KICAgICAKLSAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICBj
b25zdCBjaGFyKiBuYW1lKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX3Bv
b2wubV90aHJlYWROYW1lLmRhdGEoKTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICBQb2xsUmVz
dWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikgb3ZlcnJpZGUKK3ByaXZhdGU6
CisgICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIGZpbmFs
CiAgICAgewogICAgICAgICBpZiAobV9wb29sLm1faXNEeWluZykKICAgICAgICAgICAgIHJldHVy
biBQb2xsUmVzdWx0OjpTdG9wOwpAQCAtMTk1LDE1ICsxOTUsMTQgQEAgcHJvdGVjdGVkOgogICAg
ICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKICAgICB9CiAgICAgCi0gICAgV29ya1Jlc3Vs
dCB3b3JrKCkgb3ZlcnJpZGUKKyAgICBXb3JrUmVzdWx0IHdvcmsoKSBmaW5hbAogICAgIHsKICAg
ICAgICAgbV9jbGllbnQtPnJ1blRhc2sobV90YXNrKTsKICAgICAgICAgbV9jbGllbnQgPSBudWxs
cHRyOwogICAgICAgICBtX3Rhc2sgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gV29ya1Jlc3Vs
dDo6Q29udGludWU7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIFBhcmFsbGVsSGVscGVy
UG9vbCYgbV9wb29sOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxw
dHIgfTsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gbV90YXNrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmlu
ZGV4IGNlYWMyZWRhNDg1M2Y1YWFhZTY0MjVjNDJhYWM2NjE4OTdlOWQwYTEuLjIxNzY4NGU3NGQw
NTRiOTM1YTM1NzY4YTY0OTQ2ZmJhN2Y1YzQzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTU1LDcgKzU1LDcg
QEAgdXNpbmcgUnVuTG9vcE1vZGUgPSB1bnNpZ25lZDsKICNkZWZpbmUgRGVmYXVsdFJ1bkxvb3BN
b2RlIDAKICNlbmRpZgogCi1jbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hl
ciB7CitjbGFzcyBSdW5Mb29wIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUnVuTG9vcCk7CiBwdWJsaWM6CiAgICAgLy8gTXVzdCBi
ZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9y
bSwgd2hlcmUgaXQKQEAgLTY1LDkgKzY1LDkgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUnVuTG9vcCYgY3VycmVudCgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgUnVuTG9vcCYgbWFpbigpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9v
bCBpc01haW4oKTsKLSAgICB+UnVuTG9vcCgpOworICAgIH5SdW5Mb29wKCkgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIGRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQoKT4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOwogCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyB2b2lkIHJ1bigpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0
b3AoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+Ci0gICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGlt
ZXJCYXNlIHsKKyAgICBjbGFzcyBUaW1lciBmaW5hbCA6IHB1YmxpYyBUaW1lckJhc2UgewogICAg
IHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiB2b2lkIChUaW1lckZpcmVkQ2xhc3M6OipUaW1lckZp
cmVkRnVuY3Rpb24pKCk7CiAKQEAgLTE2OCw3ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZSB7IChtX29iamVj
dC0+Km1fZnVuY3Rpb24pKCk7IH0KKyAgICAgICAgdm9pZCBmaXJlZCgpIGZpbmFsIHsgKG1fb2Jq
ZWN0LT4qbV9mdW5jdGlvbikoKTsgfQogCiAgICAgICAgIC8vIFRoaXMgb3JkZXIgc2hvdWxkIGJl
IG1haW50YWluZWQgZHVlIHRvIE1TVkMgYnVnLgogICAgICAgICAvLyBodHRwOi8vY29tcHV0ZXIt
cHJvZ3JhbW1pbmctZm9ydW0uY29tLzctdmMubmV0LzZmYmMzMDI2NWY4NjBhZDEuaHRtCkBAIC0x
NzcsNyArMTc3LDcgQEAgcHVibGljOgogICAgIH07CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9M
T09QKQotICAgIGNsYXNzIERpc3BhdGNoVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKKyAgICBj
bGFzcyBEaXNwYXRjaFRpbWVyIGZpbmFsIDogcHVibGljIFRpbWVyQmFzZSB7CiAgICAgcHVibGlj
OgogICAgICAgICBEaXNwYXRjaFRpbWVyKFJ1bkxvb3AmIHJ1bkxvb3ApCiAgICAgICAgICAgICA6
IFRpbWVyQmFzZShydW5Mb29wKQpAQCAtMTg5LDcgKzE4OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIG1fZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKICAgICAgICAgfQogICAgIHByaXZh
dGU6Ci0gICAgICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZSB7IG1fZnVuY3Rpb24oKTsgfQorICAg
ICAgICB2b2lkIGZpcmVkKCkgZmluYWwgeyBtX2Z1bmN0aW9uKCk7IH0KIAogICAgICAgICBGdW5j
dGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1NoYXJlZFRhc2suaCBiL1NvdXJjZS9XVEYvd3RmL1NoYXJlZFRhc2suaAppbmRleCA5ZmZi
ZmZlOGFiN2NiMmUyNGFmZDNmYTIyODM1NTNhOTEyMTM5ZDBiLi4yODVlZDJkODdkMDdjNGFhMjNi
MmFmZDE0MmI3YzRmNWRkY2RlNDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TaGFyZWRU
YXNrLmgKKysrIGIvU291cmNlL1dURi93dGYvU2hhcmVkVGFzay5oCkBAIC03Myw3ICs3Myw3IEBA
IHB1YmxpYzoKIC8vIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGlzIGNsYXNzIGRpcmVjdGx5LiBV
c2UgY3JlYXRlU2hhcmVkVGFzaygpIGluc3RlYWQuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlv
blR5cGUsIHR5cGVuYW1lIEZ1bmN0b3I+IGNsYXNzIFNoYXJlZFRhc2tGdW5jdG9yOwogdGVtcGxh
dGU8dHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRUeXBlcywgdHlwZW5h
bWUgRnVuY3Rvcj4KLWNsYXNzIFNoYXJlZFRhc2tGdW5jdG9yPFJlc3VsdFR5cGUgKEFyZ3VtZW50
VHlwZXMuLi4pLCBGdW5jdG9yPiA6IHB1YmxpYyBTaGFyZWRUYXNrPFJlc3VsdFR5cGUgKEFyZ3Vt
ZW50VHlwZXMuLi4pPiB7CitjbGFzcyBTaGFyZWRUYXNrRnVuY3RvcjxSZXN1bHRUeXBlKEFyZ3Vt
ZW50VHlwZXMuLi4pLCBGdW5jdG9yPiBmaW5hbCA6IHB1YmxpYyBTaGFyZWRUYXNrPFJlc3VsdFR5
cGUoQXJndW1lbnRUeXBlcy4uLik+IHsKIHB1YmxpYzoKICAgICBTaGFyZWRUYXNrRnVuY3Rvcihj
b25zdCBGdW5jdG9yJiBmdW5jdG9yKQogICAgICAgICA6IG1fZnVuY3RvcihmdW5jdG9yKQpAQCAt
ODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFJlc3VsdFR5cGUg
cnVuKEFyZ3VtZW50VHlwZXMuLi4gYXJndW1lbnRzKSBvdmVycmlkZQorICAgIFJlc3VsdFR5cGUg
cnVuKEFyZ3VtZW50VHlwZXMuLi4gYXJndW1lbnRzKSBmaW5hbAogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fZnVuY3RvcihzdGQ6OmZvcndhcmQ8QXJndW1lbnRUeXBlcz4oYXJndW1lbnRzKS4uLik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaCBi
L1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgKaW5kZXggNjVlZTRkNjI3M2Q0MmVi
YzZlZjU3ZjQxNThlYzA0NTg3OTdkNmU1NC4uMzYyNWVhYjVmMWFhZjExMDllMDUzY2JkMWExYjUy
MTI3ODFmYzQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5oCkBAIC0zMSwxMiArMzEs
MTIgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWNsYXNzIFN0cmluZ1ByaW50U3RyZWFtIDogcHVi
bGljIFByaW50U3RyZWFtIHsKK2NsYXNzIFN0cmluZ1ByaW50U3RyZWFtIGZpbmFsIDogcHVibGlj
IFByaW50U3RyZWFtIHsKIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nUHJp
bnRTdHJlYW0oKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+U3RyaW5nUHJpbnRT
dHJlYW0oKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflN0cmluZ1ByaW50U3RyZWFtKCkgZmlu
YWw7CiAgICAgCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgdnByaW50Zihjb25zdCBjaGFy
KiBmb3JtYXQsIHZhX2xpc3QpIG92ZXJyaWRlIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwor
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2
YV9saXN0KSBmaW5hbCBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKIAogICAgIHNpemVfdCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX25leHQ7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKaW5kZXgg
MjkyMmZkZmI4ZDg0YmU4ZDE1ZjFlNmI0MzRhNzgwMTI0MWZiODA3NC4uNDk2NTlkYmE5OTk1MWJm
Y2NjNGRjOGEwMDRlNTMzMjUxMzcxMGM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29y
a1F1ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKQEAgLTU2LDkgKzU2LDkg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxX
b3JrUXVldWU+IGNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlID0gVHlwZTo6U2VyaWFsLCBR
T1MgPSBRT1M6OkRlZmF1bHQpOwotICAgIHZpcnR1YWwgfldvcmtRdWV1ZSgpOworICAgIH5Xb3Jr
UXVldWUoKSBmaW5hbDsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoKEZ1
bmN0aW9uPHZvaWQoKT4mJikgb3ZlcnJpZGU7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBkaXNwYXRjaEFmdGVyKFNlY29uZHMsIEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgY29uY3VycmVudEFwcGx5KHNpemVfdCBp
dGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoc2l6ZV90IGluZGV4KT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtl
clBvb2wuY3BwCmluZGV4IDg1NzgwM2VkNzkwODkxZThhZTIwMGEzYWZjODA5ZjI2OTM4M2RmNjQu
LmNiNmFjZmQ5NmJmNzFhZmE2ZWRmNjE5OWVmM2FmNjE2MGFhMDk5MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBv
b2wuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcG9vbC5z
aG91bGRTbGVlcChsb2NrZXIpOwogICAgIH0KIAotICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25z
dCBvdmVycmlkZQorICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBmaW5hbAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fcG9vbC5uYW1lKCk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399105</attachid>
            <date>2020-05-11 23:39:21 -0700</date>
            <delta_ts>2020-05-12 00:10:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211772-20200511233920.patch</filename>
            <type>text/plain</type>
            <size>194926</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YWNmNzU3NGYyMDNhMTIzNjc3NjA4MDJiNzdmY2Y2Mzk1MTVhN2MxLi45NjYyNjU2NTRhYjM5MWI5
OGRlYzJiODFiODgxMzQ0ZDkyMDNkNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDIgQEAKKzIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgorCisgICAgICAgIEZpeCBleGlzdGluZyB1c2FnZSBvZiBmaW5hbC9vdmVycmlkZS92
aXJ0dWFsIGluIEpTQyBhbmQgV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTE3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEFQSS9KU0FQSVdyYXBwZXJPYmplY3QubW06CisgICAgICAgICogQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFNvdXJjZVByb3ZpZGVy
Lmg6CisgICAgICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAqIEFQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogQVBJL2dsaWIv
SlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHA6CisgICAgICAgICogQVBJL2dsaWIvSlNDV2Vha1Zh
bHVlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHA6
CisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaDoKKyAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29kZS9WYXJpYWJsZVdyaXRl
RmlyZURldGFpbC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1dhdGNocG9pbnQuaDoKKyAgICAgICAg
KiBkZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50Lmg6CisgICAg
ICAgICogZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgICogZGZnL0RGR1NuaXBwZXRQ
YXJhbXMuaDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAqIGZ0bC9G
VExTbmlwcGV0UGFyYW1zLmg6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHA6Cisg
ICAgICAgICogaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgor
ICAgICAgICAqIGhlYXAvSXNvQ2VsbFNldC5jcHA6CisgICAgICAgICogaGVhcC9Jc29DZWxsU2V0
SW5saW5lcy5oOgorICAgICAgICAqIGhlYXAvSXNvSGVhcENlbGxUeXBlLmg6CisgICAgICAgICog
aGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmg6CisgICAgICAgICogaGVhcC9QYXJhbGxlbFNv
dXJjZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmg6Cisg
ICAgICAgICogaGVhcC9TdWJzcGFjZS5jcHA6CisgICAgICAgICogaGVhcC9TdWJzcGFjZUlubGlu
ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JUYXJnZXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dERlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3Rvci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3Bw
X2dlbmVyYXRvcl90ZW1wbGF0ZXMucHk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgt
bWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1k
ZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24t
cmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5n
LWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJl
c3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5q
c29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4
cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpz
b24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9u
cy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBqaXQvSklUV29ya2xp
c3QuY3BwOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAgKiBy
dW50aW1lL0RvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAqIHJ1bnRpbWUv
RmlsZUJhc2VkRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFy
cmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNaWNyb3Rhc2suY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50Lmg6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50Lmg6CisgICAg
ICAgICogcnVudGltZS9Qcm9taXNlVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1JhbmRvbWl6
aW5nRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENhY2hlLmg6CisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
UmFyZURhdGEuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICog
cnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uaDoKKyAg
ICAgICAgKiB3YXNtL1dhc21DYWxsZWUuaDoKKyAgICAgICAgKiB3YXNtL1dhc21MTEludFBsYW4u
aDoKKyAgICAgICAgKiB3YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PTUdQbGFuLmg6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAg
ICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisKIDIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5XSBSdW4gbW9kZXJu
aXplLXVzZS1vdmVycmlkZSBvdmVyIEpTQywgdGhlbiBlbnN1cmUgYXMgbXVjaCBhcyBwb3NzaWJs
ZSBpcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBjNDhhZDJkMDg4MjgwNTFlZGMyZDBkZjM4NTRmMGEwMDQzMGY1MDY3
Li4yMzBiODVhMmViNzdkMWFmODI4YjBjMjkxZjRmYTJkYjA1MjFlMzQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDIwLTA1LTExICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KKworICAgICAgICBGaXggZXhpc3RpbmcgdXNhZ2Ugb2YgZmluYWwvb3ZlcnJpZGUvdmlydHVh
bCBpbiBKU0MgYW5kIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjExNzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0V4cGVjdGVkLmg6
CisgICAgICAgICogd3RmL0ZpbGVQcmludFN0cmVhbS5oOgorICAgICAgICAqIHd0Zi9KU09OVmFs
dWVzLmg6CisgICAgICAgICogd3RmL0xvY2tlZFByaW50U3RyZWFtLmg6CisgICAgICAgICogd3Rm
L09TTG9nUHJpbnRTdHJlYW0uaDoKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cDoKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9TaGFyZWRUYXNrLmg6
CisgICAgICAgICogd3RmL1N0cmluZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1dvcmtR
dWV1ZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmNwcDoKKwogMjAyMC0wNS0xMSAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW2JtYWxsb2Nd
W1dURl0gQWRkIGNvbXB1dGluZyBtZW1vcnkgc2l6ZSBpbXBsZW1lbnRhdGlvbiBmb3IgRnJlZUJT
RApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpp
bmRleCA5MWJjY2E1NGViOGE0NDcyYTI3ZDhjYWJjNjIzMjhmNWY3ODc2MTQyLi5lMjlmYWY5Zjhj
ZWRjYTc2ZWRhY2UzMmFmZDAxNGNkZTBhZjUyNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogCi1jbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJP
YmplY3RIYW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
Kikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29u
c3QgY2hhcioqKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqKSBmaW5hbDsKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOwogfTsKIAogc3RhdGljIEpTQVBJV3JhcHBlck9i
amVjdEhhbmRsZU93bmVyKiBqc0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQppbmRleCA2M2Q2NDkyYzJkZTQ5
YmNjNjcwNGQ3MDY3NWFiYmU4NzdmZDRkZWY3Li5jMTg3MzdiZjg3NmI2ZGQ1MjBhMzM3Mjk0Yjlj
MjIzOTI3NTk5OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFu
YWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFs
dWUubW0KQEAgLTM5LDEwICszOSwxMCBAQAogI2ltcG9ydCAiSlNDSW5saW5lcy5oIgogI2ltcG9y
dCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLWNsYXNzIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNNYW5hZ2VkVmFsdWVI
YW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6
Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU01h
bmFnZWRWYWx1ZUhhbmRsZU93bmVyJiBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0U291cmNlUHJvdmlkZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4
IDA5ZTQwMThkZDhkMjM0OTNiZmRkMzlmYTA0M2VkODM4NWRjODQyMGYuLjY3N2I3YTA5Y2VjNzlm
Y2E5NDQyNzdmNjQ4MmE3M2Y4MjliMmZmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBj
bGFzcyBKU1NjcmlwdDsKIAotY2xhc3MgSlNTY3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBK
U0M6OlNvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIEpTU2NyaXB0U291cmNlUHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gQXJncz4KICAgICBzdGF0aWMgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IGNy
ZWF0ZShKU1NjcmlwdCAqc2NyaXB0LCBBcmdzJiYuLi4gYXJncykKQEAgLTM3LDkgKzM3LDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU1NjcmlwdFNvdXJjZVByb3Zp
ZGVyKHNjcmlwdCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAgfQogCi0gICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0cmluZ1ZpZXcgc291cmNlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEpTQzo6Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5
dGVjb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZpbmFs
OworICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPEpTQzo6
Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCmluZGV4IDExNWU1MWQ0OGYwMDI5OWVh
NjNkYzc1NDAwNjc5ODJjM2QyYzAwNGIuLjc0NTRmOThiNDA5NzE5NTlmYTU5MTVjOTY0NjlkZGFj
MjIyY2YxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJh
Y2tGdW5jdGlvbi5tbQpAQCAtNTUsOCArNTUsOCBAQCBDYWxsYmFja0FyZ3VtZW50Ojp+Q2FsbGJh
Y2tBcmd1bWVudCgpCiB7CiB9CiAKLWNsYXNzIENhbGxiYWNrQXJndW1lbnRCb29sZWFuIDogcHVi
bGljIENhbGxiYWNrQXJndW1lbnQgewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2Nh
dGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFs
dWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqKSBvdmVycmlkZQorY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudEJvb2xlYW4gZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBz
ZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpT
Q29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIGZpbmFs
CiAgICAgewogICAgICAgICBib29sIHZhbHVlID0gSlNWYWx1ZVRvQm9vbGVhbihbY29udGV4dCBK
U0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVudCk7CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFy
Z3VtZW50OiZ2YWx1ZSBhdEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKQEAgLTY0LDggKzY0LDggQEAg
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4
dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBvdmVycmlkZQor
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVnZXIgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1
bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIg
YXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2Vw
dGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIFQgdmFsdWUgPSAoVClKU0M6OnRvSW50MzIo
SlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGFyZ3VtZW50LCBl
eGNlcHRpb24pKTsKQEAgLTc2LDggKzc2LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudERvdWJsZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50
IHsKLSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1
bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50RG91Ymxl
IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52b2Nh
dGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNv
bnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmluYWwK
ICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAgICAg
ICBUIHZhbHVlID0gKFQpSlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtODcsMjMgKzg3LDIzIEBAIGNsYXNzIENhbGxi
YWNrQXJndW1lbnREb3VibGUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsK
IAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEpTVmFsdWUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVu
dCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJn
dW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNW
YWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50SlNWYWx1ZSBmaW5hbCA6
IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmlu
dm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBK
U1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIEpT
VmFsdWUgKnZhbHVlID0gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjphcmd1bWVudCBpbkNv
bnRleHQ6Y29udGV4dF07CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZ2YWx1ZSBh
dEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja0FyZ3Vt
ZW50SWQgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBD
YWxsYmFja0FyZ3VtZW50SWQgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAg
dm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1i
ZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiop
IGZpbmFsCiAgICAgewogICAgICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9PYmplY3QoY29udGV4dCwg
YXJndW1lbnQpOwogICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomdmFsdWUgYXRJbmRl
eDphcmd1bWVudE51bWJlcl07CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudE9m
Q2xhc3MgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CitjbGFzcyBDYWxsYmFja0FyZ3VtZW50
T2ZDbGFzcyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKIHB1YmxpYzoKICAgICBD
YWxsYmFja0FyZ3VtZW50T2ZDbGFzcyhDbGFzcyBjbHMpCiAgICAgICAgIDogbV9jbGFzcyhjbHMp
CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lk
IHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pIG92ZXJyaWRlCisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBO
U0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBh
cmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNT
RVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiBjb250ZXh0UmVmID0gW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXTsKQEAgLTEzNCw4ICsx
MzQsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDbGFzcz4gbV9jbGFzczsKIH07CiAKLWNs
YXNzIENhbGxiYWNrQXJndW1lbnROU051bWJlciA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNOdW1iZXIg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb051bWJlcihbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBh
cmd1bWVudCwgZXhjZXB0aW9uKTsKQEAgLTE0NSw4ICsxNDUsOCBAQCBjbGFzcyBDYWxsYmFja0Fy
Z3VtZW50TlNOdW1iZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAot
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudE5TU3RyaW5nIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU1N0cmlu
ZyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9j
YXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpj
b250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAg
ICAgaWQgdmFsdWUgPSB2YWx1ZVRvU3RyaW5nKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0s
IGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTU2LDggKzE1Niw4IEBAIGNsYXNzIENhbGxiYWNr
QXJndW1lbnROU1N0cmluZyA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9Owog
Ci1jbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEYXRlIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU0RhdGUg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb0RhdGUoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJn
dW1lbnQsIGV4Y2VwdGlvbik7CkBAIC0xNjcsOCArMTY3LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudE5TRGF0ZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9OwogCi1jbGFz
cyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKLSAg
ICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51
bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSBmaW5h
bCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0
LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFsCiAgICAg
ewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAgICAgaWQg
dmFsdWUgPSB2YWx1ZVRvQXJyYXkoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJndW1l
bnQsIGV4Y2VwdGlvbik7CkBAIC0xNzgsOCArMTc4LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVu
dE5TQXJyYXkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAotY2xhc3Mg
Q2FsbGJhY2tBcmd1bWVudE5TRGljdGlvbmFyeSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEaWN0aW9u
YXJ5IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52
b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmlu
YWwKICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAg
ICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9EaWN0aW9uYXJ5KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGNsYXNzIENh
bGxiYWNrQXJndW1lbnROU0RpY3Rpb25hcnkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAg
ICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdCA6IHB1YmxpYyBDYWxsYmFj
a0FyZ3VtZW50IHsKK2NsYXNzIENhbGxiYWNrQXJndW1lbnRTdHJ1Y3QgZmluYWwgOiBwdWJsaWMg
Q2FsbGJhY2tBcmd1bWVudCB7CiBwdWJsaWM6CiAgICAgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdChO
U0ludm9jYXRpb24gKmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlw
ZSkKICAgICAgICAgOiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9u
KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVt
YmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYq
KSBvdmVycmlkZQorICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRl
Z2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1l
bnQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgSlNWYWx1ZSAqdmFsdWUgPSBb
SlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmFyZ3VtZW50IGluQ29udGV4dDpjb250ZXh0XTsK
ICAgICAgICAgW21fY29udmVyc2lvbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDp2YWx1ZV07
CkBAIC0yMTAsNyArMjEwLDcgQEAgcHJpdmF0ZToKICAgICBTdHJ1Y3RCdWZmZXIgbV9idWZmZXI7
CiB9OwogCi1jbGFzcyBBcmd1bWVudFR5cGVEZWxlZ2F0ZSB7CitjbGFzcyBBcmd1bWVudFR5cGVE
ZWxlZ2F0ZSBmaW5hbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8Q2Fs
bGJhY2tBcmd1bWVudD4gUmVzdWx0VHlwZTsKIApAQCAtMjg5LDE1ICsyODksMTUgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICosIEpTQ29udGV4dCAq
LCBKU1ZhbHVlUmVmKikgPSAwOwogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRWb2lkIDogcHVi
bGljIENhbGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKiwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNr
UmVzdWx0Vm9pZCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CisgICAgSlNWYWx1ZVJl
ZiBnZXQoTlNJbnZvY2F0aW9uICosIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoW2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSk7CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRJ
ZCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7Ci0gICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYqKSBvdmVycmlk
ZQorY2xhc3MgQ2FsbGJhY2tSZXN1bHRJZCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7
CisgICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgaWQgdmFsdWU7CiAg
ICAgICAgIFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMDYsOCArMzA2
LDggQEAgY2xhc3MgQ2FsbGJhY2tSZXN1bHRJZCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIDog
cHVibGljIENhbGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitj
bGFzcyBDYWxsYmFja1Jlc3VsdE51bWVyaWMgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQg
eworICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0
ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIFQgdmFsdWU7CiAg
ICAgICAgIFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMTUsOCArMzE1
LDggQEAgY2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIDogcHVibGljIENhbGxiYWNrUmVzdWx0
IHsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja1Jlc3VsdEJvb2xlYW4gOiBwdWJsaWMgQ2Fs
bGJhY2tSZXN1bHQgewotICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlv
biwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJpZGUKK2NsYXNzIENhbGxi
YWNrUmVzdWx0Qm9vbGVhbiBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CisgICAgSlNW
YWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQs
IEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgYm9vbCB2YWx1ZTsKICAgICAgICAg
W2ludm9jYXRpb24gZ2V0UmV0dXJuVmFsdWU6JnZhbHVlXTsKQEAgLTMyNCw3ICszMjQsNyBAQCBj
bGFzcyBDYWxsYmFja1Jlc3VsdEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgewogICAg
IH0KIH07CiAKLWNsYXNzIENhbGxiYWNrUmVzdWx0U3RydWN0IDogcHVibGljIENhbGxiYWNrUmVz
dWx0IHsKK2NsYXNzIENhbGxiYWNrUmVzdWx0U3RydWN0IGZpbmFsIDogcHVibGljIENhbGxiYWNr
UmVzdWx0IHsKIHB1YmxpYzoKICAgICBDYWxsYmFja1Jlc3VsdFN0cnVjdChOU0ludm9jYXRpb24g
KmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlwZSkKICAgICAgICAg
OiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9uKQpAQCAtMzMzLDcg
KzMzMyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEpTVmFsdWVSZWYg
Z2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVl
UmVmKikgb3ZlcnJpZGUKKyAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKmludm9jYXRp
b24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZpbmFsCiAgICAgewogICAgICAg
ICBbaW52b2NhdGlvbiBnZXRSZXR1cm5WYWx1ZTptX2J1ZmZlcl07CiAKQEAgLTM1MCw3ICszNTAs
NyBAQCBwcml2YXRlOgogICAgIFN0cnVjdEJ1ZmZlciBtX2J1ZmZlcjsKIH07CiAKLWNsYXNzIFJl
c3VsdFR5cGVEZWxlZ2F0ZSB7CitjbGFzcyBSZXN1bHRUeXBlRGVsZWdhdGUgZmluYWwgewogcHVi
bGljOgogICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENhbGxiYWNrUmVzdWx0PiBSZXN1bHRU
eXBlOwogCkBAIC00MDksNyArNDA5LDcgQEAgZW51bSBDYWxsYmFja1R5cGUgewogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsIHsKK2NsYXNzIE9iakND
YWxsYmFja0Z1bmN0aW9uSW1wbCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsKE5TSW52b2NhdGlvbiAqaW52
b2NhdGlvbiwgQ2FsbGJhY2tUeXBlIHR5cGUsIENsYXNzIGluc3RhbmNlQ2xhc3MsIHN0ZDo6dW5p
cXVlX3B0cjxDYWxsYmFja0FyZ3VtZW50PiBhcmd1bWVudHMsIHN0ZDo6dW5pcXVlX3B0cjxDYWxs
YmFja1Jlc3VsdD4gcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcAppbmRleCBlMmI2NTkyOTIy
MDc1MGNiYWRjOGUzNDJhZDE3ODFiMTlmMjE2ZDM5Li5kOGFmZTgwOGYxMTAyNjM0YmNjMDkwNWRm
NzQzZTJjZTc4ZmYxZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcApAQCAtMzEsOSArMzEsOSBA
QAogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCi1jbGFzcyBKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5kbGVPd25lciA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5k
bGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0g
ICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikg
ZmluYWw7CiB9OwogCiBzdGF0aWMgSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0SGFuZGxlT3duZXIq
IGpzQVBJV3JhcHBlckdsb2JhbE9iamVjdEhhbmRsZU93bmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcApp
bmRleCBlYTM0MTIzNjczYTEzM2MwMTkzOWFmNjU2Nzk4NzJhN2U3OTFkYTk4Li4yMzM0YTFiNTdm
MjllYzIwZjQ5YjkxOWQyMTQ5ZDFiN2U4MDAxZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCkBAIC0z
MywxMCArMzMsMTAgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAotY2xhc3MgSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNBUElXcmFwcGVyT2JqZWN0SGFu
ZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgot
ICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCopIG92ZXJy
aWRlOwotICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIq
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKikgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwg
Y29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5k
bGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1dlYWtWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDV2Vha1ZhbHVlLmNwcAppbmRleCBlNWMwNGVjNzg1ZTEz
NzU0MTIzMmQyZWRmNWJiZDk1NmE4ZTlhMGJiLi5kZjk3OTliZTg4YmRjM2VhZWQwOWFiMWUwYjQ0
NDE0OGYwMDhkZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDV2Vha1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlND
V2Vha1ZhbHVlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBqc2NXZWFrVmFsdWVD
bGVhcihKU0NXZWFrVmFsdWUqIHdlYWtWYWx1ZSkKICAgICBwcml2LT53ZWFrVmFsdWVSZWYuY2xl
YXIoKTsKIH0KIAotY2xhc3MgSlNDV2Vha1ZhbHVlSGFuZGxlT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNDV2Vha1ZhbHVlSGFuZGxlT3duZXIgZmluYWwgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZvaWQgZmluYWxpemUo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGUKKyAgICB2
b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZp
bmFsCiAgICAgewogICAgICAgICBhdXRvKiB3ZWFrVmFsdWUgPSBKU0NfV0VBS19WQUxVRShjb250
ZXh0KTsKICAgICAgICAganNjV2Vha1ZhbHVlQ2xlYXIod2Vha1ZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuY3BwCmluZGV4IDY5YjVlZTEwNmIyZTgxNzU1Nzc3OTcxYmUyNzE0YzRhMWE5OGNiYmMuLjhm
YjkxODNhZDFmMjIwMGI1NGQxZjU2MTVlNzU3N2ZhODY5MWUyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1z
LmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEp1bXBUeXBlLCB0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIFJlc3VsdFR5cGUs
IHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWNsYXNzIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcldpdGhB
cmd1bWVudHMgOiBwdWJsaWMgQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXM6OlNsb3dQYXRoQ2FsbEdl
bmVyYXRvciB7CitjbGFzcyBTbG93UGF0aENhbGxHZW5lcmF0b3JXaXRoQXJndW1lbnRzIGZpbmFs
IDogcHVibGljIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zOjpTbG93UGF0aENhbGxHZW5lcmF0b3Ig
ewogcHVibGljOgogICAgIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcldpdGhBcmd1bWVudHMoSnVtcFR5
cGUgZnJvbSwgQ0NhbGxIZWxwZXJzOjpMYWJlbCB0bywgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uLCBS
ZXN1bHRUeXBlIHJlc3VsdCwgc3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+IGFyZ3VtZW50cykKICAg
ICAgICAgOiBtX2Zyb20oZnJvbSkKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uczsKICAgICB9CiAKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGdl
bmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBlcnMmIGppdCkgb3ZlcnJpZGUKKyAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBl
cnMmIGppdCkgZmluYWwKICAgICB7CiAgICAgICAgIG1fZnJvbS5saW5rKCZqaXQpOwogICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvbnMgPSBnZW5lcmF0ZUltcGwoc3RhdGUs
IHVzZWRSZWdpc3RlcnNCeVNuaXBwZXQsIGppdCwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0
ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4oKSk7CkBAIC05
Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnM7CiAgICAgfQog
Ci1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIEp1bXBUeXBlIG1fZnJvbTsKICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIG1fdG87CiAgICAgRnVuY3Rpb25UeXBlIG1fZnVuY3Rpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBh
cmFtcy5oCmluZGV4IDJjMmJhNWY1NTBlZWE5MDQ2ODQ0ZWUyODkyNjA5OWZjNzc4OGQxYWMuLjIz
ZGQ3N2IwMjg3YWY2YTJkMjJjZTM5ODBhNmMzZGFmYjMwZWM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5o
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBzdHJ1Y3QgQWNjZXNzR2VuZXJh
dGlvblN0YXRlOwogCi1jbGFzcyBBY2Nlc3NDYXNlU25pcHBldFBhcmFtcyA6IHB1YmxpYyBTbmlw
cGV0UGFyYW1zIHsKK2NsYXNzIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zIGZpbmFsIDogcHVibGlj
IFNuaXBwZXRQYXJhbXMgewogcHVibGljOgogICAgIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zKFZN
JiB2bSwgVmVjdG9yPFZhbHVlPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBW
ZWN0b3I8RlBSUmVnPiYmIGZwU2NyYXRjaCkKICAgICAgICAgOiBTbmlwcGV0UGFyYW1zKHZtLCBX
VEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSkKQEAg
LTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZW1pdFNs
b3dQYXRoQ2FsbHMoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnNCeVNuaXBwZXQsIENDYWxsSGVscGVycyYpOwogCiBwcml2YXRlOgotI2RlZmlu
ZSBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAu
Li4pIHZvaWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2Fs
bEhlbHBlcnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJH
U19fPiBhcmdzKSBvdmVycmlkZTsKKyNkZWZpbmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMo
T3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgLi4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwo
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVz
dWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FSR1NfXz4gYXJncykgZmluYWw7CiAgICAgU05JUFBF
VF9TTE9XX1BBVEhfQ0FMTFMoSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMpCiAjdW5kZWYgSlND
X0RFRklORV9DQUxMX09QRVJBVElPTlMKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQ
YXRoQ2FsbEdlbmVyYXRvcj4+IG1fZ2VuZXJhdG9yczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggODM0MDgyZDgyN2FlY2ZiZTQ3NmYxZWIwNTdi
MTg1OWVlOWFiNDJiYi4uNWFhN2RiNDQyMGVmZWI3YWUzMzRiYjM5MWUwMzFmMGQ5M2Q3N2U0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTI2
Niw3ICsyNjYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtJiBv
dXQsIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBjb25zdCBJQwogCiBuYW1lc3BhY2UgewogCi1j
bGFzcyBQdXRUb1Njb3BlRmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsKK2NsYXNzIFB1
dFRvU2NvcGVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwgewogcHVibGljOgog
ICAgIFB1dFRvU2NvcGVGaXJlRGV0YWlsKENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCkKICAgICAgICAgOiBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC0yNzQs
NyArMjc0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0IG92ZXJyaWRlCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBvdXQucHJpbnQoIkxpbmtpbmcgcHV0
X3RvX3Njb3BlIGluICIsIEZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAoanNDYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KG1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSkpLCAiIGZvciAiLCBtX2lk
ZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAppbmRleCBhZWIzNDU2
MjFmYmI2YjFjZmU2YzUyMmE3YjFkYzBhYzNiMmFjY2I0Li4yNzU0YjMxZWUxNmIzODhjZjE3MTU5
YTM2NjZlMGJiZTc1MDJjYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKQEAg
LTY0LDcgKzY0LDcgQEAgY2xhc3MgQWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dh
dGNocG9pbnQgZmluYWwgOiBwdWJsaWMgQWRhcHRpdmVJbmZlcnIKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBZGFwdGl2ZVZhbHVlU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCk7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKLSAgICB2b2lkIGhhbmRsZUZpcmUoVk0mLCBj
b25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29u
c3QgRmlyZURldGFpbCYpIGZpbmFsOwogCiBwdWJsaWM6CiAgICAgQWRhcHRpdmVWYWx1ZVN0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24m
IGtleSwgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvJiBob2xkZXIpCkBAIC03OSw3ICs3
OSw3IEBAIHByaXZhdGU6CiAgICAgUGFja2VkUHRyPFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHVi
SW5mbz4gbV9ob2xkZXI7CiB9OwogCi1jbGFzcyBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1Yklu
Zm8geworY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvIGZpbmFsIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8pOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaAppbmRleCA0
MmZmYjFiNTk5ZjdiMTljMzM5ZTViODA5NTc4MjE4Yzg2ZGM3MjcwLi5iOGRkYmRjYjM2ZTRmYzg5
NzJiMWU2NWE5M2ZkNjUwNzJjZTAyNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTT2JqZWN0OwogY2xhc3MgUHJvcGVydHlOYW1l
OwogCi1jbGFzcyBWYXJpYWJsZVdyaXRlRmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsK
K2NsYXNzIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwg
ewogcHVibGljOgogICAgIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsKEpTT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFByb3BlcnR5TmFtZSYgbmFtZSkKICAgICAgICAgOiBtX29iamVjdChvYmplY3QpCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAg
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHRvdWNoKFZNJiwgV2F0Y2hwb2lu
dFNldCosIEpTT2JqZWN0KiwgY29uc3QgUHJvcGVydHlOYW1lJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCmluZGV4IDUxYmNlMzgwMDM0ZTA1YjYxZmVl
NjI5ZWU2ODQxMTdlMDIyOTNhYjguLjc3YzZkZmMyZjA4ZDY4ZGNkMDIxNzMzMjgwMzFmYWJmNDFm
NTBhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBv
aW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApA
QCAtNTcsMjEgKzU3LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0ID0gMDsKIH07CiAKLWNsYXNzIFN0cmluZ0ZpcmVEZXRhaWwgOiBwdWJsaWMg
RmlyZURldGFpbCB7CitjbGFzcyBTdHJpbmdGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVE
ZXRhaWwgewogcHVibGljOgogICAgIFN0cmluZ0ZpcmVEZXRhaWwoY29uc3QgY2hhciogc3RyaW5n
KQogICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgY2hh
ciogbV9zdHJpbmc7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KLWNsYXNzIExh
enlGaXJlRGV0YWlsIDogcHVibGljIEZpcmVEZXRhaWwgeworY2xhc3MgTGF6eUZpcmVEZXRhaWwg
ZmluYWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CiBwdWJsaWM6CiAgICAgTGF6eUZpcmVEZXRhaWwo
Y29uc3QgVHlwZXMmLi4uIGFyZ3MpCiAgICAgewpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIH0pOwogICAgIH0KIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dCBvdmVycmlkZSB7IG1fbGFtYmRhKG91dCk7IH0KKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QgZmluYWwgeyBtX2xhbWJkYShvdXQpOyB9CiAKIHByaXZhdGU6CiAgICAgU2Nv
cGVkTGFtYmRhPHZvaWQoUHJpbnRTdHJlYW0mKT4gbV9sYW1iZGE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0
Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2ZUluZmVycmVk
UHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuaAppbmRleCBkMTdlMTk4ZjczMDNlYWU3MGFhMDBhOGJl
MmYxMDNiMDM5NTY0NTZhLi4yNzc2ZDkxY2FiNWFlNzFiNTVhNzViNzU5YTFkMmYzMGMwZmJkNTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkYXB0aXZlSW5mZXJy
ZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmgKQEAgLTM3LDkg
KzM3LDkgQEAgcHVibGljOgogICAgIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hw
b2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYsIENvZGVCbG9jayopOwogCiBwcml2
YXRlOgotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURl
dGFpbCYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRmlyZShWTSYsIGNvbnN0IEZpcmVEZXRh
aWwmKSBmaW5hbDsKIAogICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2s7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0
b3IuaAppbmRleCA1NWE5ODlkZTFiZjJhNmI5MGQ5ZjUyZjJlNjA5NzVmM2IwN2IxMTg1Li5lOTc4
YjZmODA4MDczMjgyZWZhYjRjMmFkOThmMTE1MTg0NGJiNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaApA
QCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNs
YXNzIEFycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2Vu
ZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdD4geworY2xhc3MgQXJyYXlpZnlTbG93UGF0
aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQXJyYXlpZnlTbG93UGF0aEdlbmVy
YXRvcigKICAgICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBmcm9tLCBTcGVj
dWxhdGl2ZUpJVCogaml0LCBOb2RlKiBub2RlLCBHUFJSZWcgYmFzZUdQUiwKQEAgLTY4LDggKzY4
LDggQEAgcHVibGljOgogICAgICAgICBtX2JhZEluZGV4aW5nVHlwZUp1bXAgPSBqaXQtPnNwZWN1
bGF0aW9uQ2hlY2soQmFkSW5kZXhpbmdUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbCht
X2Jhc2VHUFIpLCBudWxscHRyKTsKICAgICB9CiAgICAgCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitwcml2YXRlOgor
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBmaW5hbAogICAg
IHsKICAgICAgICAgbGlua0Zyb20oaml0KTsKICAgICAgICAgCkBAIC0xMzIsOCArMTMyLDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAganVtcFRvKGppdCk7CiAgICAgfQotICAgIAot
cHJpdmF0ZToKKwogICAgIE5vZGVUeXBlIG1fb3A7CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBt
X3N0cnVjdHVyZTsKICAgICBBcnJheU1vZGUgbV9hcnJheU1vZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJh
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNs
b3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggZmVlZmVmYzZkOWE0ZTMzNGI1MGEwNzE1MmNkZjNjNGEz
MDJiOTc5OC4uMjNmZDQ1NDdjNTliOTJhOTM0Mzc0MmE1ODRmN2RkY2RmMjkxZjllYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93
UGF0aEdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFy
cmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIENhbGxBcnJheUFsbG9jYXRvclNs
b3dQYXRoR2VuZXJhdG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3Q+IHsKK2NsYXNzIENhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0
aEdlbmVyYXRvcigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZyb20sIFNwZWN1
bGF0aXZlSklUKiBqaXQsIFBfSklUT3BlcmF0aW9uX1ZtU3RaQiBmdW5jdGlvbiwKQEAgLTQ5LDgg
KzQ5LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1w
bChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICB2
b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZh
dGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFs
CiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAgLTYyLDggKzYyLDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBqaXQtPm1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9y
ZXN1bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSksIG1fc3RvcmFnZUdQUik7CiAg
ICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KLSAgICAKLXByaXZhdGU6CisKICAgICBQX0pJVE9w
ZXJhdGlvbl9WbVN0WkIgbV9mdW5jdGlvbjsKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAg
R1BSUmVnIG1fc3RvcmFnZUdQUjsKQEAgLTcyLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbiwgMj4gbV9wbGFuczsKIH07CiAKLWNsYXNzIENhbGxB
cnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVNpemVTbG93UGF0aEdlbmVyYXRvciA6IHB1YmxpYyBK
dW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0PiB7CitjbGFz
cyBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTaXplU2xvd1BhdGhHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdD4gewogcHVibGljOgogICAgIENhbGxBcnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVNpemVT
bG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZyb20s
IFNwZWN1bGF0aXZlSklUKiBqaXQsIFBfSklUT3BlcmF0aW9uX0dTdFpCIGZ1bmN0aW9uLApAQCAt
ODksOCArODgsOCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnNJbXBsKGZhbHNlLCBtX3BsYW5zLCByZXN1bHRHUFIpOwogICAgIH0KIAotcHJvdGVjdGVkOgot
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQor
cHJpdmF0ZToKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpAQCAtMTExLDggKzExMCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgaml0LT5tX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICBq
dW1wVG8oaml0KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRPcGVyYXRpb25f
R1N0WkIgbV9mdW5jdGlvbjsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fY29udGlndW91c1N0
cnVjdHVyZTsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fYXJyYXlTdG9yYWdlT3JDb250aWd1
b3VzU3RydWN0dXJlOwpAQCAtMTIzLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFNp
bGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDI+IG1fcGxhbnM7CiB9OwogCi1jbGFzcyBDYWxsQXJyYXlB
bGxvY2F0b3JXaXRoVmFyaWFibGVTdHJ1Y3R1cmVWYXJpYWJsZVNpemVTbG93UGF0aEdlbmVyYXRv
ciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBM
aXN0PiB7CitjbGFzcyBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTdHJ1Y3R1cmVWYXJp
YWJsZVNpemVTbG93UGF0aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhH
ZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQ2FsbEFy
cmF5QWxsb2NhdG9yV2l0aFZhcmlhYmxlU3RydWN0dXJlVmFyaWFibGVTaXplU2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9tLCBTcGVjdWxhdGl2
ZUpJVCogaml0LCBQX0pJVE9wZXJhdGlvbl9HU3RaQiBmdW5jdGlvbiwKQEAgLTEzOSw4ICsxMzcs
OCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZh
bHNlLCBtX3BsYW5zLCByZXN1bHRHUFIpOwogICAgIH0KIAotcHJvdGVjdGVkOgotICAgIHZvaWQg
Z2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQorcHJpdmF0ZToK
KyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwKICAg
ICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpAQCAtMTUxLDggKzE0OSw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgaml0LT5tX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICBqdW1wVG8oaml0
KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRPcGVyYXRpb25fR1N0WkIgbV9m
dW5jdGlvbjsKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyIG1fZ2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Ns
b3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggMGRkYjMwODA3MWEwMGJkOGU0NjZkNTA5NmYxNTJjZmI3
NjUyOTQ5Mi4uMzAyMDUwMzhkMmEzZDQ2MTg0YmM3NjZhMDA3YWRlNzdiMzM4ZDYyNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1l
bnRzU2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhbGxDcmVhdGVEaXJlY3RBcmd1bWVudHNTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0zNSw3ICsz
NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIFRoaXMgY2FsbHMg
b3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzIGJ1dCB0aGVuIHJlc3RvcmVzIHRoZSB2YWx1
ZSBvZiBsZW5ndGhHUFIuCi1jbGFzcyBDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhH
ZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdD4geworY2xhc3MgQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRz
U2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9t
LCBTcGVjdWxhdGl2ZUpJVCogaml0LCBHUFJSZWcgcmVzdWx0R1BSLCBSZWdpc3RlcmVkU3RydWN0
dXJlIHN0cnVjdHVyZSwKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAg
ICB9CiAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVK
SVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNw
ZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAg
LTY0LDggKzY0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MobV9yZXN1bHRHUFIsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSksIG1f
bGVuZ3RoR1BSKTsKICAgICAgICAganVtcFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToK
KwogICAgIEdQUlJlZyBtX3Jlc3VsdEdQUjsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fc3Ry
dWN0dXJlOwogICAgIEdQUlJlZyBtX2xlbmd0aEdQUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IuaAppbmRleCBiZGU2Njc2MGFjNGVkOGM2OWVhOTgzMGMwY2U2ZWFmMTNjMjRjNDk4
Li5mYWJjZTAxODJkZTkwMDI1M2YwZGYzZjBiZjJlOTMwMTg3YzBmZjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2Vu
ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0
QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wPiB7CitjbGFzcyBTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXA+
IHsKIHB1YmxpYzoKICAgICBTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcigKICAg
ICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXAmIGZyb20sIFNwZWN1bGF0aXZlSklUKiBq
aXQsIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0ciBn
bG9iYWxPYmplY3QsIEdQUlJlZyBiYXNlUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcpCkBAIC00Nyw4
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5zaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0lt
cGwoZmFsc2UsIG1fcGxhbnMsIGV4dHJhY3RSZXN1bHQocmVzdWx0UmVncykpOwogICAgIH0KICAg
ICAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQq
IGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1
bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAg
ICAgICAKQEAgLTc3LDggKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAganVt
cFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIEpTVmFsdWVSZWdzIG1fcmVz
dWx0UmVnczsKICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIgbV9nbG9iYWxPYmplY3Q7
CiAgICAgR1BSUmVnIG1fYmFzZVJlZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2xvd1BhdGhHZW5lcmF0b3IuaAppbmRleCBmMWQzYjBiODcxNGJjMmExZDA1OWM4NDdmYTU1
YTIxZmMxYzNlMTU0Li45ODFlODZjZDdkZGIwMWNhNDk1NDNiNGU1Mzc2MDAxYmU4MTYwMTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5o
CkBAIC0xNTYsOCArMTU2LDcgQEAgcHJvdGVjdGVkOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
SnVtcFR5cGUsIHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgotY2xhc3MgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRo
R2VuZXJhdG9yCi0gICAgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBS
ZXN1bHRUeXBlPiB7CitjbGFzcyBDYWxsUmVzdWx0QW5kQXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBSZXN1bHRU
eXBlPiB7CiBwdWJsaWM6CiAgICAgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJh
dG9yKAogICAgICAgICBKdW1wVHlwZSBmcm9tLCBTcGVjdWxhdGl2ZUpJVCogaml0LCBGdW5jdGlv
blR5cGUgZnVuY3Rpb24sCkBAIC0xNjgsNyArMTY3LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAgICAgdGVtcGxhdGU8c2l6ZV90Li4uIEFyZ3VtZW50
c0luZGV4PgogICAgIHZvaWQgdW5wYWNrQW5kR2VuZXJhdGUoU3BlY3VsYXRpdmVKSVQqIGppdCwg
c3RkOjppbmRleF9zZXF1ZW5jZTxBcmd1bWVudHNJbmRleC4uLj4pCiAgICAgewpAQCAtMTgwLDcg
KzE3OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dGVhckRvd24oaml0KTsKICAgICB9
CiAKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJp
ZGUKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwK
ICAgICB7CiAgICAgICAgIHVucGFja0FuZEdlbmVyYXRlKGppdCwgc3RkOjptYWtlX2luZGV4X3Nl
cXVlbmNlPHN0ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4o
KSk7CiAgICAgfQpAQCAtMjA5LDcgKzIwOCw3IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8U2xv
d1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoQ2FsbCgKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSnVt
cFR5cGUsIHR5cGVuYW1lIERlc3RpbmF0aW9uVHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZSwgdW5z
aWduZWQgbnVtYmVyT2ZBc3NpZ25tZW50cz4KLWNsYXNzIEFzc2lnbmluZ1Nsb3dQYXRoR2VuZXJh
dG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZT4geworY2xhc3Mg
QXNzaWduaW5nU2xvd1BhdGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRo
R2VuZXJhdG9yPEp1bXBUeXBlPiB7CiBwdWJsaWM6CiAgICAgQXNzaWduaW5nU2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIEp1bXBUeXBlIGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQsCkBAIC0y
MjMsOCArMjIyLDggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi1wcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitw
cml2YXRlOgorICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBm
aW5hbAogICAgIHsKICAgICAgICAgdGhpcy0+bGlua0Zyb20oaml0KTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbnVtYmVyT2ZBc3NpZ25tZW50czsgaS0tOykKQEAgLTIzMiw3ICsyMzEsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmp1bXBUbyhqaXQpOwogICAgIH0KIAotcHJpdmF0
ZToKICAgICBEZXN0aW5hdGlvblR5cGUgbV9kZXN0aW5hdGlvbltudW1iZXJPZkFzc2lnbm1lbnRz
XTsKICAgICBTb3VyY2VUeXBlIG1fc291cmNlW251bWJlck9mQXNzaWdubWVudHNdOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU25pcHBldFBhcmFtcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbmlwcGV0UGFyYW1zLmgKaW5kZXggNmFmMTQ2
MjI4YWI2OWQyZmVhMGVhZDllN2EyZWI3NTlmYmE5NDQxNC4uZTQyYzI3MGU0MDMzNzZjYjY1OTBi
M2FiODA5ZTk2NTVlMGMwMDdmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTbmlwcGV0UGFyYW1zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
bmlwcGV0UGFyYW1zLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogICAgIAogY2xhc3MgU3BlY3VsYXRpdmVKSVQ7CiAKLWNsYXNzIFNuaXBwZXRQYXJh
bXMgOiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKK2NsYXNzIFNuaXBwZXRQYXJhbXMgZmlu
YWwgOiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBTbmlwcGV0UGFy
YW1zKFNwZWN1bGF0aXZlSklUKiBqaXQsIFZlY3RvcjxWYWx1ZT4mJiByZWdzLCBWZWN0b3I8R1BS
UmVnPiYmIGdwU2NyYXRjaCwgVmVjdG9yPEZQUlJlZz4mJiBmcFNjcmF0Y2gpCiAgICAgICAgIDog
SlNDOjpTbmlwcGV0UGFyYW1zKGppdC0+dm0oKSwgV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNj
cmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0jZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKE9wZXJh
dGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBsKENDYWxs
SGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5
cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIG92ZXJyaWRlOworI2RlZmluZSBKU0Nf
REVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAuLi4pIHZv
aWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2FsbEhlbHBl
cnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJHU19fPiBh
cmdzKSBmaW5hbDsKICAgICBTTklQUEVUX1NMT1dfUEFUSF9DQUxMUyhKU0NfREVGSU5FX0NBTExf
T1BFUkFUSU9OUykKICN1bmRlZiBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDY3MjBlMjNlOTNlOTczNDI2
ODVlMWZiMWRhNzBhYjgxNTM0ZTIxYmYuLmJjZjBlNjlkOGEzMWI2Mzg1OGEwYjA1ZjhlYTg0MmMx
NWRjODY5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBA
IC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCi1jbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgeworY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJsaWMg
QXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBp
bnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBs
b2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQpAQCAtNDcsMTMg
KzQ3LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAg
ewogICAgICAgICByZXR1cm4gbV93b3JrbGlzdC5tX3RocmVhZE5hbWUuZGF0YSgpOwogICAgIH0K
IAotcHJvdGVjdGVkOgotICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKSBvdmVycmlkZQorcHJpdmF0ZToKKyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGxvY2tlcikgZmluYWwKICAgICB7CiAgICAgICAgIGlmIChtX3dvcmtsaXN0
Lm1fcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7
CkBAIC03Myw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICAKICAgICBjbGFzcyBXb3JrU2NvcGU7
CiAgICAgZnJpZW5kIGNsYXNzIFdvcmtTY29wZTsKLSAgICBjbGFzcyBXb3JrU2NvcGUgeworICAg
IGNsYXNzIFdvcmtTY29wZSBmaW5hbCB7CiAgICAgcHVibGljOgogICAgICAgICBXb3JrU2NvcGUo
VGhyZWFkQm9keSYgdGhyZWFkKQogICAgICAgICAgICAgOiBtX3RocmVhZCh0aHJlYWQpCkBAIC05
Myw3ICs5Myw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgVGhyZWFkQm9keSYgbV90aHJlYWQ7CiAg
ICAgfTsKICAgICAKLSAgICBXb3JrUmVzdWx0IHdvcmsoKSBvdmVycmlkZQorICAgIFdvcmtSZXN1
bHQgd29yaygpIGZpbmFsCiAgICAgewogICAgICAgICBXb3JrU2NvcGUgd29ya1Njb3BlKCp0aGlz
KTsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIFdvcmtS
ZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KICAgICAKLSAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkg
b3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkgZmluYWwKICAgICB7CiAgICAgICAg
IGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCksIG1fd29ya2xp
c3QsICI6IFRocmVhZCBzdGFydGVkIik7CiAgICAgICAgIApAQCAtMTUwLDcgKzE1MCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgbV9jb21waWxhdGlvblNjb3BlID0gbWFrZVVuaXF1ZTxDb21waWxh
dGlvblNjb3BlPigpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29u
c3QgQWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZQorICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhj
b25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewogICAgICAgICAvLyBXZSdyZSBob2xk
aW5nIHRoZSBXb3JrbGlzdDo6bV9sb2NrLCBzbyB3ZSBzaG91bGQgYmUgY2FyZWZ1bCBub3QgdG8g
ZGVhZGxvY2suCiAgICAgICAgIApAQCAtMTYyLDcgKzE2Miw2IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgbV9wbGFuID0gbnVsbHB0cjsKICAgICB9CiAKLXByaXZhdGU6CiAgICAgV29ya2xpc3QmIG1f
d29ya2xpc3Q7CiAgICAgVGhyZWFkRGF0YSYgbV9kYXRhOwogICAgIGludCBtX3JlbGF0aXZlUHJp
b3JpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNuaXBwZXRQ
YXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCmlu
ZGV4IGYxM2ZkMTI2M2IyOWNhNzg5YzRjYjdhNTRiYjE4MjUyMzQxNmZiODIuLjFhZjJiZDM4ZjRk
YjY4NjQxNjUwZDAxNzFkMDViOThjYTRlM2Y0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKIAogY2xhc3MgU3RhdGU7CiAKLWNsYXNzIFNuaXBwZXRQYXJhbXMg
OiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKK2NsYXNzIFNuaXBwZXRQYXJhbXMgZmluYWwg
OiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBTbmlwcGV0UGFyYW1z
KFN0YXRlJiBzdGF0ZSwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
LCBERkc6Ok5vZGUqIG5vZGUsIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25z
LCBWZWN0b3I8VmFsdWU+JiYgcmVncywgVmVjdG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3Rv
cjxGUFJSZWc+JiYgZnBTY3JhdGNoKQogICAgICAgICA6IEpTQzo6U25pcHBldFBhcmFtcyhzdGF0
ZS52bSgpLCBXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3Jh
dGNoKSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSNkZWZp
bmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMoT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwg
Li4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0Nh
bGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FS
R1NfXz4gYXJncykgb3ZlcnJpZGU7CisjZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05T
KE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBs
KENDYWxsSGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJl
c3VsdFR5cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIGZpbmFsOwogICAgIFNOSVBQ
RVRfU0xPV19QQVRIX0NBTExTKEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKQogI3VuZGVmIEpT
Q19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0Jsb2NrRGlyZWN0b3J5LmNwcAppbmRleCAxMmM5YzZmNGMyZjE3YzYzZWZiMzQzNzY2YmMxNjZi
NjkyMGQzZDRmLi41Y2UyMjYxODY5ZDhjZTA5MGQ1ZDdkZGRlMjEyMWExNzk0NGQyMDEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCkBAIC0zMDks
MTQgKzMwOSwxNCBAQCB2b2lkIEJsb2NrRGlyZWN0b3J5Ojphc3NlcnROb1Vuc3dlcHQoKQogCiBS
ZWZQdHI8U2hhcmVkVGFzazxNYXJrZWRCbG9jazo6SGFuZGxlKigpPj4gQmxvY2tEaXJlY3Rvcnk6
OnBhcmFsbGVsTm90RW1wdHlCbG9ja1NvdXJjZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1Ymxp
YyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZp
bmFsIDogcHVibGljIFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4gewogICAgIHB1
YmxpYzoKICAgICAgICAgVGFzayhCbG9ja0RpcmVjdG9yeSYgZGlyZWN0b3J5KQogICAgICAgICAg
ICAgOiBtX2RpcmVjdG9yeShkaXJlY3RvcnkpCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgTWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgb3ZlcnJpZGUKKyAgICAgICAg
TWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKG1fZG9uZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCAw
NWNmMjgyMGYzMjRhYTVjMDlhMzRkMjAxMjYwNjY2YzUyZTM2ODg2Li41MTVhZmYxNjc3ODZiYmMx
ODA2NDA1ZWJiZjQ1ZThmNDdjMDhiOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0yOSwxNiArMjksMTYgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKK2NsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgR0NBY3Rpdml0eUNh
bGxiYWNrIHsKIHB1YmxpYzoKICAgICBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqKTsKIAot
ICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb0NvbGxlY3Rp
b24oVk0mKSBmaW5hbDsKIAotcHJvdGVjdGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhl
YXAmKSBvdmVycmlkZTsKLSAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBvdmVycmlkZTsKK3ByaXZhdGU6Cisg
ICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoSGVhcCYpIGZpbmFsOworICAgIGRvdWJsZSBnY1RpbWVT
bGljZShzaXplX3QgYnl0ZXMpIGZpbmFsOworICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIGZp
bmFsOwogfTsKIAogaW5saW5lIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlD
YWxsYmFjazo6dHJ5Q3JlYXRlRWRlblRpbWVyKEhlYXAqIGhlYXApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNjUwYWUx
Mzg3ZjE2YWEwMDNkN2RkYjk4NmYwNzU4ZmM5ZjFlYzQ4MS4uZmExY2EzNWI5MTgyNWI1Njc2NTMy
NmNhZTVmNmZiZmM4ZTEzYjBiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMjksMTkgKzI5LDE5IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rpdml0eUNhbGxi
YWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFsIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFj
ayB7CiBwdWJsaWM6CiAgICAgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKik7CiAKLSAgICB2
b2lkIGRvQ29sbGVjdGlvbihWTSYpIG92ZXJyaWRlOworICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZN
JikgZmluYWw7CiAKICAgICBib29sIGRpZEdDUmVjZW50bHkoKSBjb25zdCB7IHJldHVybiBtX2Rp
ZEdDUmVjZW50bHk7IH0KICAgICB2b2lkIHNldERpZEdDUmVjZW50bHkoKSB7IG1fZGlkR0NSZWNl
bnRseSA9IHRydWU7IH0KIAotcHJvdGVjdGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhl
YXAmKSBvdmVycmlkZTsKLSAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBvdmVycmlkZTsKK3ByaXZhdGU6Cisg
ICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoSGVhcCYpIGZpbmFsOworICAgIGRvdWJsZSBnY1RpbWVT
bGljZShzaXplX3QgYnl0ZXMpIGZpbmFsOworICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIGZp
bmFsOwogCiAgICAgYm9vbCBtX2RpZEdDUmVjZW50bHkgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggODZkZDZmYWY0ZTIwZTZlODdhYTY0Njc2ZGVhYWI0
NWE5MzEwYTgzNS4uNGI5MGFhYzc5MGM5NmY5MmVlYWJjZDE5NjNkZTYxNDVlZDBhZjZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBwcml2YXRl
OgogCiB9IC8vIGFub255bW91cyBuYW1lc3BhY2UKIAotY2xhc3MgSGVhcDo6SGVhcFRocmVhZCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgeworY2xhc3MgSGVhcDo6SGVhcFRocmVhZCBmaW5hbCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIEhlYXBUaHJlYWQoY29uc3Qg
QWJzdHJhY3RMb2NrZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKICAgICAgICAgOiBBdXRvbWF0aWNU
aHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbi5j
b3B5UmVmKCkpCkBAIC0yNDUsMTMgKzI0NSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0IGNoYXIqIG5h
bWUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuICJKU0MgSGVhcCBDb2xsZWN0
b3IgVGhyZWFkIjsKICAgICB9CiAgICAgCi1wcm90ZWN0ZWQ6Ci0gICAgUG9sbFJlc3VsdCBwb2xs
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIG92ZXJyaWRlCitwcml2YXRlOgorICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsK
ICAgICAgICAgaWYgKG1faGVhcC5tX3RocmVhZFNob3VsZFN0b3ApIHsKICAgICAgICAgICAgIG1f
aGVhcC5ub3RpZnlUaHJlYWRTdG9wcGluZyhsb2NrZXIpOwpAQCAtMjY1LDIzICsyNjUsMjIgQEAg
cHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKICAgICB9CiAgICAg
Ci0gICAgV29ya1Jlc3VsdCB3b3JrKCkgb3ZlcnJpZGUKKyAgICBXb3JrUmVzdWx0IHdvcmsoKSBm
aW5hbAogICAgIHsKICAgICAgICAgbV9oZWFwLmNvbGxlY3RJbkNvbGxlY3RvclRocmVhZCgpOwog
ICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7CiAgICAgfQogICAgIAotICAgIHZv
aWQgdGhyZWFkRGlkU3RhcnQoKSBvdmVycmlkZQorICAgIHZvaWQgdGhyZWFkRGlkU3RhcnQoKSBm
aW5hbAogICAgIHsKICAgICAgICAgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlw
ZTo6TWFpbik7CiAgICAgfQogCi0gICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJikgb3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9oZWFwLm1fY29sbGVjdG9yVGhy
ZWFkSXNSdW5uaW5nID0gZmFsc2U7CiAgICAgfQogCi1wcml2YXRlOgogICAgIEhlYXAmIG1faGVh
cDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCBiMGIzNjFiMWEwZjZkZWRj
ZDNmOTYzM2ZkYTc0MmEzZmZhZmI4NjdjLi43N2Q0ZGUxODMyNmE3YzAzOWUwYzg1MjQ4N2Q3MTk0
M2Y4M2FiOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00MzEsMTIgKzQzMSwx
MiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluRXh0cmFNZW1v
cnkgPSAyNTY7CiAgICAgCi0gICAgY2xhc3MgQ0ZpbmFsaXplck93bmVyIDogcHVibGljIFdlYWtI
YW5kbGVPd25lciB7Ci0gICAgICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0KSBvdmVycmlkZTsKKyAgICBjbGFzcyBDRmluYWxpemVyT3duZXIgZmluYWwgOiBw
dWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKKyAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIH07CiAKLSAgICBjbGFzcyBMYW1iZGFG
aW5hbGl6ZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewotICAgICAgICB2b2lkIGZp
bmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgY2xh
c3MgTGFtYmRhRmluYWxpemVyT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsK
KyAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZp
bmFsOwogICAgIH07CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWRBbGxvY2F0
aW9uKHNpemVfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5oCmluZGV4IDEyNjQ2ZGViYjBiZjI3NjZhMzA1NzEzNjMzNGJmNGQ0MjdiNGZlMDku
LjRkZTM4NjA3YmY3ZWNiOGY3NmY4OTY2Njg3ZjAxYmQ4YzFhY2ZhMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSGVhcDsKIGNsYXNzIEJsb2NrRGlyZWN0b3J5Owog
Ci1jbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgeworY2xh
c3MgSW5jcmVtZW50YWxTd2VlcGVyIGZpbmFsIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNSdW5Mb29wVGltZXI7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqKTsKQEAgLTQwLDcgKzQwLDcg
QEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnRTd2VlcGluZyhIZWFw
Jik7CiAgICAgdm9pZCBmcmVlRmFzdE1hbGxvY01lbW9yeUFmdGVyU3dlZXBpbmcoKSB7IG1fc2hv
dWxkRnJlZUZhc3RNYWxsb2NNZW1vcnlBZnRlclN3ZWVwaW5nID0gdHJ1ZTsgfQogCi0gICAgdm9p
ZCBkb1dvcmsoVk0mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvV29yayhWTSYpIGZpbmFsOwogICAg
IHZvaWQgc3RvcFN3ZWVwaW5nKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0lzb0NlbGxTZXQuY3BwCmluZGV4IDc4NmQxMTU4ZjA5YzZkN2FlZDFlYWU1YzFlMGQyMGYz
MjRkM2RkYmMuLmIyMGQ2MTQwZTJiZjI0MzYxMzRhNDg3NDY1YmJmMjMzNjhmZTBmMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwCkBAIC00OCw3ICs0OCw3IEBA
IElzb0NlbGxTZXQ6On5Jc29DZWxsU2V0KCkKIAogUmVmPFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6
OkhhbmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVsTm90RW1wdHlNYXJrZWRCbG9ja1NvdXJj
ZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1YmxpYyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpI
YW5kbGUqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZpbmFsIDogcHVibGljIFNoYXJlZFRhc2s8TWFy
a2VkQmxvY2s6OkhhbmRsZSooKT4gewogICAgIHB1YmxpYzoKICAgICAgICAgVGFzayhJc29DZWxs
U2V0JiBzZXQpCiAgICAgICAgICAgICA6IG1fc2V0KHNldCkKQEAgLTU2LDcgKzU2LDcgQEAgUmVm
PFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVs
Tm90RW1wdHlNYXJrZWRCbG9ja1MKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICBNYXJrZWRCbG9jazo6SGFuZGxlKiBydW4oKSBvdmVycmlkZQorICAgICAgICBNYXJrZWRC
bG9jazo6SGFuZGxlKiBydW4oKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9k
b25lKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0lzb0NlbGxTZXRJbmxpbmVzLmgKaW5kZXggZjRmYWVmNzE0YWZjZGNlZTZh
MDEzNjNmNGVhODdjMDYxMjhlYmUyOS4uZGMyYzhiNzg3OGVjZjVmNjAzNzMyNjE2ODA3NTRiZTU4
MjhhNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNl
dElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0SW5s
aW5lcy5oCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgSXNvQ2VsbFNldDo6Zm9yRWFjaE1hcmtlZENl
bGwoY29uc3QgRnVuYyYgZnVuYykKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiBSZWY8U2hhcmVk
VGFzazx2b2lkKFNsb3RWaXNpdG9yJik+PiBJc29DZWxsU2V0Ojpmb3JFYWNoTWFya2VkQ2VsbElu
UGFyYWxsZWwoY29uc3QgRnVuYyYgZnVuYykKIHsKLSAgICBjbGFzcyBUYXNrIDogcHVibGljIFNo
YXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPiB7CisgICAgY2xhc3MgVGFzayBmaW5hbCA6IHB1
YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4gewogICAgIHB1YmxpYzoKICAgICAg
ICAgVGFzayhJc29DZWxsU2V0JiBzZXQsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgICAgICAgICA6
IG1fc2V0KHNldCkKQEAgLTEwMyw3ICsxMDMsNyBAQCBSZWY8U2hhcmVkVGFzazx2b2lkKFNsb3RW
aXNpdG9yJik+PiBJc29DZWxsU2V0Ojpmb3JFYWNoTWFya2VkQ2VsbEluUGFyYWxsZWwoY29ucwog
ICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgcnVuKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKSBvdmVycmlkZQorICAgICAgICB2b2lkIHJ1bihTbG90VmlzaXRvciYgdmlz
aXRvcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgd2hpbGUgKE1hcmtlZEJsb2NrOjpI
YW5kbGUqIGhhbmRsZSA9IG1fYmxvY2tTb3VyY2UtPnJ1bigpKSB7CiAgICAgICAgICAgICAgICAg
dW5zaWduZWQgYmxvY2tJbmRleCA9IGhhbmRsZS0+aW5kZXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgKaW5kZXggNjYxYjZmY2ZhOGYxZjUyM2Y1ZDNl
MjkwODllMDlkY2Y1ZjcyOWQ4NS4uODVmYTllOTM4NzVmZGE1NDIyYWNkMjIyZmEyZmYyOWViMGIy
ODhjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgK
QEAgLTQyLDggKzQyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxJc29I
ZWFwQ2VsbFR5cGU+KENlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uID8gTmVlZHNEZXN0cnVjdGlv
biA6IERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sICZDZWxsVHlwZTo6ZGVzdHJveSk7CiAgICAgfQog
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFu
ZGxlJiwgRnJlZUxpc3QqKSBvdmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRl
c3Ryb3koVk0mLCBKU0NlbGwqKSBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
IGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmLCBGcmVlTGlzdCopIGZpbmFsOworICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCopIGZpbmFsOwogCiAg
ICAgQUxXQVlTX0lOTElORSB2b2lkIG9wZXJhdG9yKCkoVk0mLCBKU0NlbGwqIGNlbGwpIGNvbnN0
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5l
ZEhlYXBDZWxsVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5lZEhl
YXBDZWxsVHlwZS5oCmluZGV4IDRiNTY2MzVjNGE0MGIxOTUwMmNkMDY3ODQ4NzljN2ZiOGQ1M2I1
N2MuLjVkNmU3Njg2NDY5MTQyMzliNzQyMDA4Y2JmYTQxZDAxMmU0NWYzMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0lubGluZWRIZWFwQ2VsbFR5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmgKQEAg
LTQ1LDEyICs0NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdm9pZCBm
aW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiBoYW5kbGUsIEZyZWVMaXN0KiBmcmVlTGlz
dCkgb3ZlcnJpZGUKKyAgICB2b2lkIGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmIGhh
bmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgaGFuZGxlLmZp
bmlzaFN3ZWVwS25vd2luZ0hlYXBDZWxsVHlwZShmcmVlTGlzdCwgRGVzdHJveUZ1bmMoKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKiBjZWxsKSBvdmVycmlkZQorICAg
IHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCogY2VsbCkgZmluYWwKICAgICB7CiAgICAgICAgIENl
bGxUeXBlOjpkZXN0cm95KGNlbGwpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1BhcmFsbGVsU291cmNlQWRhcHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvUGFyYWxsZWxTb3VyY2VBZGFwdGVyLmgKaW5kZXggZjRiNjQ1NjI3NGMwZmMzY2Vk
YzhkYjI2NjliOTIwNTFiMjk2Zjc1Mi4uYmZmNDNkY2NmYWFiMDBmNWMxZWI3Y2ZkYTZmMGYwYTg2
MDA1ZmVkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUGFyYWxsZWxT
b3VyY2VBZGFwdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUGFyYWxsZWxT
b3VyY2VBZGFwdGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBPdXRlclR5cGUsIHR5cGVuYW1lIElubmVyVHlwZSwgdHlwZW5hbWUgVW53
cmFwRnVuYz4KLWNsYXNzIFBhcmFsbGVsU291cmNlQWRhcHRlciA6IHB1YmxpYyBTaGFyZWRUYXNr
PElubmVyVHlwZSgpPiB7CitjbGFzcyBQYXJhbGxlbFNvdXJjZUFkYXB0ZXIgZmluYWwgOiBwdWJs
aWMgU2hhcmVkVGFzazxJbm5lclR5cGUoKT4gewogcHVibGljOgogICAgIFBhcmFsbGVsU291cmNl
QWRhcHRlcihSZWZQdHI8U2hhcmVkVGFzazxPdXRlclR5cGUoKT4+IG91dGVyU291cmNlLCBjb25z
dCBVbndyYXBGdW5jJiB1bndyYXBGdW5jKQogICAgICAgICA6IG1fb3V0ZXJTb3VyY2Uob3V0ZXJT
b3VyY2UpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAg
IElubmVyVHlwZSBydW4oKSBvdmVycmlkZQorICAgIElubmVyVHlwZSBydW4oKSBmaW5hbAogICAg
IHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwogICAgICAgICBkbyB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlU
aW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIu
aAppbmRleCBmNmI5NTI0ZWUyZjRjMWRjOTQ3MmFlMmI0NGUyNzJlY2E3MmRjZWFkLi5kZDE1ODNm
NThhZWEzZmI4ZGMyODM0ODdmOThjNjNiNjljZjU4YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmgKQEAgLTMxLDEyICszMSwxMiBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGVhcDsKIAotY2xhc3MgU3RvcElmTmVjZXNzYXJ5
VGltZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgeworY2xhc3MgU3RvcElmTmVjZXNzYXJ5VGlt
ZXIgZmluYWwgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogcHVibGljOgogICAgIHVzaW5nIEJh
c2UgPSBKU1J1bkxvb3BUaW1lcjsKICAgICBleHBsaWNpdCBTdG9wSWZOZWNlc3NhcnlUaW1lcihW
TSYpOwogICAgIAotICAgIHZvaWQgZG9Xb3JrKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dv
cmsoVk0mKSBmaW5hbDsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlU29vbigpOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcAppbmRleCA2MTNiYTUyZTcyMGQwN2M5MGFm
YzU1MGE5Mjg1YWZhNGJhYzcxZWRhLi44NGUzNGMzZGFjZWQxZWEzYTM1NWJjODA4NjNjNGUzOGVh
MGZhNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2UuY3BwCkBAIC05MCwx
NCArOTAsMTQgQEAgTWFya2VkQmxvY2s6OkhhbmRsZSogU3Vic3BhY2U6OmZpbmRFbXB0eUJsb2Nr
VG9TdGVhbCgpCiAKIFJlZjxTaGFyZWRUYXNrPEJsb2NrRGlyZWN0b3J5KigpPj4gU3Vic3BhY2U6
OnBhcmFsbGVsRGlyZWN0b3J5U291cmNlKCkKIHsKLSAgICBjbGFzcyBUYXNrIDogcHVibGljIFNo
YXJlZFRhc2s8QmxvY2tEaXJlY3RvcnkqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZpbmFsIDogcHVi
bGljIFNoYXJlZFRhc2s8QmxvY2tEaXJlY3RvcnkqKCk+IHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFRhc2soQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSkKICAgICAgICAgICAgIDogbV9kaXJlY3Rv
cnkoZGlyZWN0b3J5KQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEJs
b2NrRGlyZWN0b3J5KiBydW4oKSBvdmVycmlkZQorICAgICAgICBCbG9ja0RpcmVjdG9yeSogcnVu
KCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2xvY2spOwogICAgICAgICAgICAgQmxvY2tEaXJlY3RvcnkqIHJlc3VsdCA9IG1fZGlyZWN0b3J5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2VJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAppbmRleCBm
NGZmNzBjYzllODVmODhiYTNlMGZiMWU0MTMwNGM4MDE4NGU0MDJjLi4wNjJhZDk2MTQ5MjA1ZjUx
OWFkOGQ5Mzg2MzdhOGNlMWZjYjQzOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TdWJzcGFjZUlubGluZXMuaApAQCAtODgsNyArODgsNyBAQCB2b2lkIFN1YnNwYWNlOjpmb3JF
YWNoTWFya2VkQ2VsbChjb25zdCBGdW5jJiBmdW5jKQogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4K
IFJlZjxTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IFN1YnNwYWNlOjpmb3JFYWNoTWFy
a2VkQ2VsbEluUGFyYWxsZWwoY29uc3QgRnVuYyYgZnVuYykKIHsKLSAgICBjbGFzcyBUYXNrIDog
cHVibGljIFNoYXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPiB7CisgICAgY2xhc3MgVGFzayBm
aW5hbCA6IHB1YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4gewogICAgIHB1Ymxp
YzoKICAgICAgICAgVGFzayhTdWJzcGFjZSYgc3Vic3BhY2UsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAg
ICAgICAgICAgICA6IG1fc3Vic3BhY2Uoc3Vic3BhY2UpCkBAIC05Nyw3ICs5Nyw3IEBAIFJlZjxT
aGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IFN1YnNwYWNlOjpmb3JFYWNoTWFya2VkQ2Vs
bEluUGFyYWxsZWwoY29uc3QKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICB2b2lkIHJ1bihTbG90VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBy
dW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHdo
aWxlIChNYXJrZWRCbG9jazo6SGFuZGxlKiBoYW5kbGUgPSBtX2Jsb2NrU291cmNlLT5ydW4oKSkg
ewogICAgICAgICAgICAgICAgIGhhbmRsZS0+Zm9yRWFjaE1hcmtlZENlbGwoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggZTUzY2M2
MGFhYjM1ZWI1NTU2ODU0NDJkZmVmMTc1OTBiODMxYTVjMi4uY2RlZTQ1ZjJkNmIzMzc3ZjFlMDUy
M2NmZTQwMWFlMjhiY2YyZGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNDUsMTEgKzQ1LDExIEBAIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNb2R1bGU7CiBjbGFzcyBJbnNwZWN0b3JFbnZp
cm9ubWVudDsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHQgOiBwdWJs
aWMgSW5qZWN0ZWRTY3JpcHRCYXNlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVjdGVk
U2NyaXB0IGZpbmFsIDogcHVibGljIEluamVjdGVkU2NyaXB0QmFzZSB7CiBwdWJsaWM6CiAgICAg
SW5qZWN0ZWRTY3JpcHQoKTsKICAgICBJbmplY3RlZFNjcmlwdChEZXByZWNhdGVkOjpTY3JpcHRP
YmplY3QsIEluc3BlY3RvckVudmlyb25tZW50Kik7Ci0gICAgfkluamVjdGVkU2NyaXB0KCkgb3Zl
cnJpZGU7CisgICAgfkluamVjdGVkU2NyaXB0KCkgZmluYWw7CiAKICAgICBzdHJ1Y3QgRXhlY3V0
ZU9wdGlvbnMgewogICAgICAgICBTdHJpbmcgb2JqZWN0R3JvdXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQuaAppbmRleCBlMTcyNzkzNzlhZDM3ZGIwZTFmMzdjN2ZjOTM2ZDNiM2U0OWI2NjE4Li40
ZGE3NDczYjMwYmIyMzNjMzEwZmM0NjZkMWFiNmEzMzJjZGVmNmNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCopOwotICAgIH5KU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQoKSBvdmVycmlkZSB7IH0KKyAgICB+SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50KCkgZmluYWwgeyB9CiAKICAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3RlbUNvbnNvbGUoKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCk7CkBAIC00OCwxOSAr
NDgsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dChJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KiBhZ2VudCkgeyBtX3NjcmlwdFByb2ZpbGVy
QWdlbnQgPSBhZ2VudDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOwotICAgIHZvaWQgY291
bnRSZXNldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBwcm9maWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2ZpbGVFbmQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGFrZUhlYXBTbmFw
c2hvdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0aW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVs
KSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVMb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgdGltZUVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVjb3JkKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlY29y
ZEVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzY3JlZW5zaG90KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNvdW50KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlND
OjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQg
cHJvZmlsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgZmluYWw7
CisgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBmaW5hbDsKKyAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIGZpbmFsOworICAgIHZvaWQgdGltZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgZmluYWw7CisgICAgdm9pZCB0aW1l
TG9nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIHRpbWVFbmQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRFbmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRB
cmd1bWVudHM+JiYpIGZpbmFsOworICAgIHZvaWQgc2NyZWVuc2hvdChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CiAKICAgICB2b2lkIHdhcm5Vbmlt
cGxlbWVudGVkKGNvbnN0IFN0cmluZyYgbWV0aG9kKTsKICAgICB2b2lkIGludGVybmFsQWRkTWVz
c2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVm
PFNjcmlwdEFyZ3VtZW50cz4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
aAppbmRleCA2MWJmMDQxYjA4YzM5NGVkY2YyZjQ2ODc0NmM3MzQ2YWUzZjQwYjQyLi5jZGYzZGU3
NzUzNmY1Y2YwN2Y3YzJmYmZlMDU2ODg2NTVkZTc4YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyIGZpbmFsCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTQzo6SlNHbG9i
YWxPYmplY3QmKTsKLSAgICB+SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKCkgb3Zl
cnJpZGU7CisgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpIGZpbmFsOwog
CiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9t
YXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7CiAgICAgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJik7CkBAIC04MywyMiArODMsMjIgQEAgcHVibGlj
OgogCiAgICAgSlNDOjpDb25zb2xlQ2xpZW50KiBjb25zb2xlQ2xpZW50KCkgY29uc3Q7CiAKLSAg
ICBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29s
IGNhbkFjY2Vzc0luc3BlY3RlZFNjcmlwdFN0YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsSGFu
ZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW5zcGVjdG9y
RXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgZnJvbnRlbmRJbml0aWFsaXplZCgpIG92ZXJyaWRlOworICAgIGJvb2wgZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgY2FuQWNjZXNzSW5zcGVjdGVkU2Ny
aXB0U3RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGxIYW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIo
KSBjb25zdCBmaW5hbDsKKyAgICBJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5k
bGVyKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBmcm9udGVuZEluaXRpYWxpemVkKCkgZmluYWw7
CiAgICAgV1RGOjpTdG9wd2F0Y2gmIGV4ZWN1dGlvblN0b3B3YXRjaCgpIGNvbnN0IGZpbmFsOwot
ICAgIEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkg
b3ZlcnJpZGU7Ci0gICAgSlNDOjpWTSYgdm0oKSBvdmVycmlkZTsKKyAgICBKU0dsb2JhbE9iamVj
dFNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIGZpbmFsOworICAgIEpTQzo6
Vk0mIHZtKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykKLSAgICBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRh
YmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
YXVnbWVudGluZ0NsaWVudDsgfSAKLSAgICB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29u
dHJvbGxlckNsaWVudChBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVu
dCkgb3ZlcnJpZGUgeyBtX2F1Z21lbnRpbmdDbGllbnQgPSBjbGllbnQ7IH0KKyAgICBBdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJv
bGxlckNsaWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXVnbWVudGluZ0NsaWVudDsgfSAK
KyAgICB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudChBdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkgZmluYWwgeyBtX2F1Z21lbnRp
bmdDbGllbnQgPSBjbGllbnQ7IH0KIAotICAgIGNvbnN0IEZyb250ZW5kUm91dGVyJiBmcm9udGVu
ZFJvdXRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCk7
IH0KLSAgICBCYWNrZW5kRGlzcGF0Y2hlciYgYmFja2VuZERpc3BhdGNoZXIoKSBvdmVycmlkZSB7
IHJldHVybiBtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpOyB9Ci0gICAgdm9pZCBhcHBlbmRFeHRy
YUFnZW50KHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2VudEJhc2U+KSBvdmVycmlkZTsKKyAg
ICBjb25zdCBGcm9udGVuZFJvdXRlciYgZnJvbnRlbmRSb3V0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2Zyb250ZW5kUm91dGVyLmdldCgpOyB9CisgICAgQmFja2VuZERpc3BhdGNoZXImIGJh
Y2tlbmREaXNwYXRjaGVyKCkgZmluYWwgeyByZXR1cm4gbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQo
KTsgfQorICAgIHZvaWQgYXBwZW5kRXh0cmFBZ2VudChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
QWdlbnRCYXNlPikgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlw
dERlYnVnU2VydmVyLmgKaW5kZXggYTE5ODQ0OGExZmZkZDFjM2IwMTliYWRmOGI4NjhhNThiYzA3
ZjI2Yi4uZGFhYmNmNzY0ZTE3ZDFlZDZkY2Y3NmNjNTlmYzM5ZTdlYjllNzg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERl
YnVnU2VydmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTM1LDI1ICszNSwyNSBAQCBjbGFzcyBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyIGZpbmFsIDogcHVibGljIFNjcmlwdERlYnVnU2Vy
dmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyKEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKLSAgICB+SlNH
bG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlIHsgfQorICAgIH5KU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyKCkgZmluYWwgeyB9CiAKICAgICBKU0M6OkpTR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdDsgfQog
CiAgICAgc3RhdGljIFJ1bkxvb3BNb2RlIHJ1bkxvb3BNb2RlKCk7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBhdHRhY2hEZWJ1Z2dlcigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGV0YWNoRGVidWdnZXIo
Ym9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaERlYnVnZ2Vy
KCkgZmluYWw7CisgICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihib29sIGlzQmVpbmdEZXN0cm95ZWQp
IGZpbmFsOwogCi0gICAgdm9pZCBkaWRQYXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpIG92ZXJyaWRlOwotICAg
IGJvb2wgaXNDb250ZW50U2NyaXB0KEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVj
dCopIGZpbmFsIHsgfQorICAgIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0dsb2JhbE9iamVjdCop
IGZpbmFsIHsgfQorICAgIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBmaW5hbDsKKyAg
ICBib29sIGlzQ29udGVudFNjcmlwdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5PVEU6IEN1cnJlbnRseSBhbGwgZXhjZXB0aW9u
cyBhcmUgcmVwb3J0ZWQgYXQgdGhlIEFQSSBib3VuZGFyeSB0aHJvdWdoIHJlcG9ydEFQSUV4Y2Vw
dGlvbi4KICAgICAvLyBVbnRpbCBhIHRpbWUgY29tZXMgd2hlcmUgYW4gZXhjZXB0aW9uIGNhbiBi
ZSBjYXVzZWQgb3V0c2lkZSBvZiB0aGUgQVBJIChlLmcuIHNldFRpbWVvdXQKICAgICAvLyBvciBz
b21lIG90aGVyIGFzeW5jIG9wZXJhdGlvbiBpbiBhIHB1cmUgSlNDb250ZXh0KSB3ZSBjYW4gaWdu
b3JlIGV4Y2VwdGlvbnMgcmVwb3J0ZWQgaGVyZS4KLSAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qKSBjb25zdCBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNl
cHRpb24qKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xv
YmFsT2JqZWN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggZjk3OTVmMDM4ZDQ2NTUwODQ1Zjcz
ZGM5MTI2NmVhMDI3YWEyNjdjYS4uNmFkN2Q1MDEyODY4N2I2NjU0YThlOWZlMmU1ZWQ4NzkwYTE3
MjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVj
dGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTc2NSw3ICs3NjUsNyBAQCBwdWJsaWM6CiAKICAg
ICBIYXNoU2V0PEpTQ2VsbCo+JiBob2xkZXJzKCkgeyByZXR1cm4gbV9ob2xkZXJzOyB9CiAKLSAg
ICB2b2lkIGFuYWx5emVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6
OlJvb3RNYXJrUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKKyAgICB2b2lkIGFuYWx5emVFZGdlKEpT
Q2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJlYXNv
bikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVCh0byk7CiAgICAgICAgIEFTU0VSVCh0by0+
dm0oKS5oZWFwUHJvZmlsZXIoKS0+YWN0aXZlSGVhcEFuYWx5emVyKCkgPT0gdGhpcyk7CkBAIC03
OTAsMTQgKzc5MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGVsc2UgaWYgKCFmcm9tIHx8IHJlYXNv
biAhPSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpCiAgICAgICAgICAgICBtX3Jv
b3RzVG9JbmNsdWRlLmFkZCh0byk7CiAgICAgfQotICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFt
ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCopIG92ZXJy
aWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLSAgICB2b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwg
SlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqKSBvdmVycmlkZSB7IGFuYWx5emVFZGdlKGZy
b20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9Ci0gICAgdm9pZCBh
bmFseXplSW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QpIG92ZXJy
aWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLQotICAgIHZvaWQgYW5hbHl6ZU5vZGUoSlNDZWxsKikgb3ZlcnJpZGUgeyB9Ci0g
ICAgdm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBj
b25zdCBjaGFyKikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChKU0NlbGwqLCB2b2lkKikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBzZXRMYWJlbEZvckNlbGwo
SlNDZWxsKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBhbmFseXplUHJv
cGVydHlOYW1lRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBs
KikgZmluYWwgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpOb25lKTsgfQorICAgIHZvaWQgYW5hbHl6ZVZhcmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBm
cm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCopIGZpbmFsIHsgYW5hbHl6ZUVkZ2Uo
ZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6Tm9uZSk7IH0KKyAgICB2b2lk
IGFuYWx5emVJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50MzJfdCkgZmlu
YWwgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpO
b25lKTsgfQorCisgICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxsKEpTQ2VsbCosIGNvbnN0
IGNoYXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldFdyYXBwZWRPYmplY3RGb3JDZWxsKEpTQ2Vs
bCosIHZvaWQqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldExhYmVsRm9yQ2VsbChKU0NlbGwqLCBj
b25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAogI2lmbmRlZiBOREVCVUcKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCmluZGV4IGEyMWE1ODk0YWI3MzI2
NGM4ZmE0NzE2YmZhYzY5ODg4MjhhOGQ0MjYuLjQ1YWRkYTJhODY5OTE5NWRiODlmMWYwNDJkMzUz
ZWU3ZjRkYzlmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaApAQCAtNDcsMTYgKzQ3LDE2IEBAIGNsYXNzIEpT
X0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFn
ZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgSW5zcGVjdG9yQWdlbnQoQWdlbnRDb250ZXh0Jik7Ci0gICAgfkluc3BlY3RvckFnZW50KCkg
b3ZlcnJpZGU7CisgICAgfkluc3BlY3RvckFnZW50KCkgZmluYWw7CiAKICAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmRE
aXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbml0aWFs
aXplZChFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIGZpbmFsOwogCiAgICAgLy8gQ29tbWFuZExpbmVB
UEkKICAgICB2b2lkIGluc3BlY3QoUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q+JiYgb2JqZWN0VG9JbnNwZWN0LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGhpbnRzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clNjcmlwdFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAppbmRleCA5NzkxMDU2YzkyNDA5
MGNjNjNiZWY4MTc0Mzk0ZjUxY2I2OGZkYmMwLi43ZTdjZGM5Zjk3NTA2Nzc2NjI5NzQwYWFkY2I1
NGZiNGRhMDBkMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5o
CkBAIC00NCwyMCArNDQsMjAgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yU2Ny
aXB0UHJvZmlsZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2UKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFn
ZW50KEFnZW50Q29udGV4dCYpOwotICAgIH5JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KCkg
b3ZlcnJpZGU7CisgICAgfkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKSBmaW5hbDsKIAog
ICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91
dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gU2NyaXB0
UHJvZmlsZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmco
RXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0
VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgZmluYWw7
CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBmaW5hbDsKIAogICAgIC8vIEpT
Qzo6RGVidWdnZXI6OlByb2ZpbGluZ0NsaWVudAotICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU2Vjb25kcyB3aWxsRXZhbHVhdGVTY3JpcHQoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMsIEpTQzo6UHJvZmlsaW5n
UmVhc29uKSBvdmVycmlkZTsKKyAgICBib29sIGlzQWxyZWFkeVByb2ZpbGluZygpIGNvbnN0IGZp
bmFsOworICAgIFNlY29uZHMgd2lsbEV2YWx1YXRlU2NyaXB0KCkgZmluYWw7CisgICAgdm9pZCBk
aWRFdmFsdWF0ZVNjcmlwdChTZWNvbmRzLCBKU0M6OlByb2ZpbGluZ1JlYXNvbikgZmluYWw7CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBhZGRFdmVudChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBl
bmRUaW1lLCBKU0M6OlByb2ZpbGluZ1JlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaApp
bmRleCAxZWI3YWJiMmZhMjFkN2E4ZWMwODMzMTYwZjUzZTVjNTIzZWM0MzE3Li5iOTI5ZGRmZmUy
OWMzZmIwODhhYjY3MTQwODdjOTkzMDJjMjc1MjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50
LmgKQEAgLTM3LDIwICszNywyMCBAQCBjbGFzcyBJbnNwZWN0b3JUYXJnZXQ7CiAKIHR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JU
YXJnZXRBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBUYXJnZXRCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIgeworY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9y
VGFyZ2V0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgVGFy
Z2V0QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bnNwZWN0b3JUYXJnZXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRSb3V0ZXImLCBCYWNrZW5kRGlz
cGF0Y2hlciYpOwotICAgIH5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpIG92ZXJyaWRlOworICAgIH5J
bnNwZWN0b3JUYXJnZXRBZ2VudCgpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNl
CiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBC
YWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAvLyBUYXJnZXRCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHNldFBhdXNlT25TdGFydChFcnJvclN0cmluZyYs
IGJvb2wgcGF1c2VPblN0YXJ0KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3VtZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGF1c2VP
blN0YXJ0KEVycm9yU3RyaW5nJiwgYm9vbCBwYXVzZU9uU3RhcnQpIGZpbmFsOworICAgIHZvaWQg
cmVzdW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCkgZmluYWw7CiAgICAg
dm9pZCBzZW5kTWVzc2FnZVRvVGFyZ2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0YXJn
ZXRJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKIAogICAgIC8vIFRhcmdldCBsaWZl
Y3ljbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCmluZGV4IDQ5MjFkMzMwNmVk
NTdiYjQwOWM4MTY3MWFjMTNjMmY0MzIxMDNiYzguLjdkNDY3MGQwNGRjN2ZkMzMwODNhMTUwNjFk
Mzc3NjViMWE2YzNlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCkBAIC0z
OCwxMCArMzgsMTAgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50IGZpbmFsIDogcHVi
bGljIEluc3BlY3RvckF1ZGl0QWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0FnZW50Q29udGV4dCYpOwot
ICAgIH5KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoKSBvdmVycmlkZTsKKyAgICB+SlNHbG9iYWxP
YmplY3RBdWRpdEFnZW50KCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpIG92ZXJyaWRlOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsK
IAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0
RGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKaW5kZXggZDc2MDU3MTM3NTVmYTc4Yzk0ZGEx
MzIxZmRlZmI4ODc3NzczMjJmMS4uM2I4OGRlYWI3NzUzZWE1ZGExYWE3M2ZjMDJiMmEzZTI3MWMz
ZTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE4
ICszNiwxOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0
JiwgSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7Ci0gICAgfkpTR2xvYmFsT2JqZWN0RGVidWdnZXJB
Z2VudCgpIG92ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoKSBmaW5h
bDsKIAogICAgIC8vIFNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rp
b25Mb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92
ZXJyaWRlOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsKIAogICAgIC8vIE5P
VEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBuZWVkIHRvIG11dGUgYSBjb25z
b2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2VudCB0byB0aGUgY29uc29sZSBv
dXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBvYmplY3QuCi0gICAgdm9pZCBt
dXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJy
aWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIHVubXV0
ZUNvbnNvbGUoKSBmaW5hbCB7IH0KIAogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9jb25z
b2xlQWdlbnQgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKaW5kZXggYTM0N2RlNGVmMGFjODY0NWRkZTU2NWEzNjBhMGQ3NWU1Y2U5OTJmNC4uNmYw
Y2U5MDU5ZDcyMzM4Mzc4YjFkNDdhNzFhNzI1YzM5MmNkMjc3YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oCkBAIC0zOSwxNSArMzksMTUgQEAgY2xhc3MgSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudChKU0FnZW50Q29udGV4dCYpOwotICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRp
bWVBZ2VudCgpIG92ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudCgpIGZp
bmFsOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZh
bChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsK
KyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CiAKICAgICAvLyBOT1RFOiBKYXZh
U2NyaXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0byBtdXRlIGEgY29uc29sZSBiZWNh
dXNlIG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUgb3V0c2lkZSBv
ZiB0aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0LgotICAgIHZvaWQgbXV0ZUNvbnNv
bGUoKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIG11dGVDb25zb2xlKCkgZmluYWwgeyB9CisgICAgdm9pZCB1bm11dGVDb25zb2xl
KCkgZmluYWwgeyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVudGltZUZyb250ZW5kRGlzcGF0
Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlz
cGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRlRGlzcGF0Y2hhYmxlQWdlbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRl
RGlzcGF0Y2hhYmxlQWdlbnQuaAppbmRleCA1MDFiZmRhOWI0NzkyNjc5NzcyMDFhMDM5MjZhNzQ2
M2I1MTczOWVlLi5hNmIxOGNmMzc2ZjM4ZjY5NzJhMDVhY2MyN2QxNGRjNjIwNjU1OWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hdWdtZW50YWJsZS9BbHRlcm5hdGVEaXNwYXRjaGFibGVBZ2VudC5oCkBAIC01MSwxMSAr
NTEsMTEgQEAgcHVibGljOgogICAgICAgICBtX2FsdGVybmF0ZURpc3BhdGNoZXItPnNldEJhY2tl
bmREaXNwYXRjaGVyKG51bGxwdHIpOwogICAgIH0KIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwg
QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbAogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlCisgICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5h
bAogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKaW5kZXgg
Yzg1YjY0YTA1M2Y4ZmYwY2MwMDkyMDdmZTBjOTdkODEyYTQ3MGM2Yy4uNjczMzdkNzMwNGY0MmQ2
ZDE3NjFhMDliMTQwNDA2YmEyNzJhY2JiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogI2Vsc2UKICAgICBSZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQoUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Jik7CiAjZW5kaWYKLSAgICB+UmVt
b3RlQ29ubmVjdGlvblRvVGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgflJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldCgpIGZpbmFsOwogCiAgICAgLy8gTWFpbiBBUEkuCiAgICAgYm9vbCBzZXR1cChib29s
IGlzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlLCBib29sIGF1dG9tYXRpY2FsbHlQYXVzZSA9
IGZhbHNlKTsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGcm9u
dGVuZENoYW5uZWwgb3ZlcnJpZGVzLgotICAgIENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29ubmVjdGlvblR5cGU6OlJlbW90ZTsgfQotICAg
IHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29u
bmVjdGlvblR5cGU6OlJlbW90ZTsgfQorICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpIGZpbmFsOwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5z
cGVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJ
bnNwZWN0b3IuaAppbmRleCBlMjU2MmNmMzI1MzQxODliMWEwMTQ4ZjE4M2UzNGJiOTQ1YzUyYmFj
Li40YTYxMGFhMmE4ZGM5Mjg0OTY5YmU1Zjk1YWM2ZWFhZjAwODBkOTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0
b3IuaApAQCAtMjA3LDkgKzIwNyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kQXV0b21hdGlj
SW5zcGVjdGlvbkNhbmRpZGF0ZU1lc3NhZ2UoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHZvaWQgeHBjQ29ubmVjdGlvblJlY2VpdmVkTWVzc2FnZShSZW1vdGVJbnNwZWN0b3JYUENDb25u
ZWN0aW9uKiwgTlNTdHJpbmcgKm1lc3NhZ2VOYW1lLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKSBv
dmVycmlkZTsKLSAgICB2b2lkIHhwY0Nvbm5lY3Rpb25GYWlsZWQoUmVtb3RlSW5zcGVjdG9yWFBD
Q29ubmVjdGlvbiopIG92ZXJyaWRlOwotICAgIHZvaWQgeHBjQ29ubmVjdGlvblVuaGFuZGxlZE1l
c3NhZ2UoUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbiosIHhwY19vYmplY3RfdCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB4cGNDb25uZWN0aW9uUmVjZWl2ZWRNZXNzYWdlKFJlbW90ZUluc3BlY3Rv
clhQQ0Nvbm5lY3Rpb24qLCBOU1N0cmluZyAqbWVzc2FnZU5hbWUsIE5TRGljdGlvbmFyeSAqdXNl
ckluZm8pIGZpbmFsOworICAgIHZvaWQgeHBjQ29ubmVjdGlvbkZhaWxlZChSZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uKikgZmluYWw7CisgICAgdm9pZCB4cGNDb25uZWN0aW9uVW5oYW5kbGVk
TWVzc2FnZShSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uKiwgeHBjX29iamVjdF90KSBmaW5h
bDsKIAogICAgIHZvaWQgcmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
byk7CiAgICAgdm9pZCByZWNlaXZlZERhdGFNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8p
OwpAQCAtMjIzLDggKzIyMyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNlaXZlZEF1dG9tYXRp
b25TZXNzaW9uUmVxdWVzdE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyk7CiAjZW5kaWYK
ICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCi0gICAgSGFzaE1hcDxTdHJpbmcsIENh
bGxIYW5kbGVyPiYgZGlzcGF0Y2hNYXAoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKENv
bm5lY3Rpb25JRCkgb3ZlcnJpZGU7CisgICAgSGFzaE1hcDxTdHJpbmcsIENhbGxIYW5kbGVyPiYg
ZGlzcGF0Y2hNYXAoKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgZmlu
YWw7CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5oCmluZGV4IDhmOGVmMDU5NGEz
MWVkYjhiNjQ0YTcxNDUwMzMzNDE1MGI0Yzc3YTIuLjAwOGM2ZmQwZjFmMDM0NTQyMjE3MTY1MGQ5
NGU5NDczZDA4NTczZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVy
LmgKQEAgLTQ2LDggKzQ2LDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0
cm95ZWQ8UmVtb3RlSW5zcGVjdG9yU2VydmVyPjsKICAgICBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIo
KSB7IFNvY2tldDo6aW5pdCgpOyB9CiAKLSAgICBib29sIGRpZEFjY2VwdChDb25uZWN0aW9uSUQg
YWNjZXB0ZWRJRCwgQ29ubmVjdGlvbklEIGxpc3RlbmVySUQsIFNvY2tldDo6RG9tYWluKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgb3ZlcnJpZGUgeyB9CisgICAg
Ym9vbCBkaWRBY2NlcHQoQ29ubmVjdGlvbklEIGFjY2VwdGVkSUQsIENvbm5lY3Rpb25JRCBsaXN0
ZW5lcklELCBTb2NrZXQ6OkRvbWFpbikgZmluYWw7CisgICAgdm9pZCBkaWRDbG9zZShDb25uZWN0
aW9uSUQpIGZpbmFsIHsgfQogCiAgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBtX3NlcnZlcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5Cmlu
ZGV4IGM3YjFjODdlMTE5OGQ2NmVmNjk4ZjllYzhhOTI0NzEyN2I5MmRjMDAuLjk2YjU1ZTQxNjJj
NjY4MDQ5Y2FhNjQ3MzZiNjQxOWFmNDQ1Njg4ZGIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVz
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2Vu
L2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CkBAIC05NSw3ICs5NSw3IEBAIHByb3RlY3RlZDoK
ICAgICAiIiIke2NsYXNzQW5kRXhwb3J0TWFjcm99ICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0
Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjwke2RvbWFpbk5hbWV9QmFja2VuZERpc3BhdGNoZXI+IGNyZWF0
ZShCYWNrZW5kRGlzcGF0Y2hlciYsICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9i
amVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKICR7Y29tbWFuZERlY2xhcmF0aW9uc30KIHByaXZhdGU6
CiAgICAgJHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVyKEJhY2tlbmREaXNwYXRjaGVyJiwg
JHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2Jq
Y19iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJf
aGVhZGVyLnB5CmluZGV4IDA1MTIyYzZjYWJkZDIyYzRiOWIwMDdmOThmZmVlYzFmODJiMzRjZGMu
LmVkOGNjNTk2ZDMxMDMwM2JjMmYxNmI3Y2E1YmY3MDY0N2MwYjQ0MGYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29i
amNfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkKQEAgLTExMSw1ICsxMTEsNSBAQCBjbGFzcyBPYmpDQmFja2VuZERpc3Bh
dGNoZXJIZWFkZXJHZW5lcmF0b3IoT2JqQ0dlbmVyYXRvcik6CiAgICAgICAgICAgICAnY29tbWFu
ZE5hbWUnOiBjb21tYW5kLmNvbW1hbmRfbmFtZSwKICAgICAgICAgICAgICdwYXJhbWV0ZXJzJzog
JywgJy5qb2luKHBhcmFtZXRlcnMpLAogICAgICAgICB9Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgn
ICAgIHZpcnR1YWwgdm9pZCAlKGNvbW1hbmROYW1lKXMoJShwYXJhbWV0ZXJzKXMpIG92ZXJyaWRl
OycgJSBjb21tYW5kX2FyZ3MpCisgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIHZvaWQgJShjb21t
YW5kTmFtZSlzKCUocGFyYW1ldGVycylzKSBmaW5hbDsnICUgY29tbWFuZF9hcmdzKQogICAgICAg
ICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRo
LW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZv
cm0uanNvbi1yZXN1bHQKaW5kZXggOWIzY2VlNmJlNjVlYTUxZmFhNjM0YjcyYWNiODcxNTQ5MDY1
ZmUzMC4uYzZlNjhmNGE5YWVkZDNkODQzNjcwYTIyZjBjYjgzNTMxN2VmNjQwNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBl
Y3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2Rl
ZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcg
QEAgcHJvdGVjdGVkOgogY2xhc3MgTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVi
bGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwg
TmV0d29ya0JhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9u
ZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1l
c3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJp
dmF0ZToKICAgICB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046
Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9E
SVNQQVRDSEVSUykKQEAgLTU4OSw3ICs1ODksNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yTmV0d29y
a0JhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZU5ldHdvcmtCYWNrZQog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JO
ZXR3b3JrQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRs
ZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
bG9hZFJlc291cmNlKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRSZXNv
dXJjZShsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxU
ZXN0UHJvdG9jb2xOZXR3b3JrRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxl
VHlwZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21h
aW4tZGVidWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKaW5kZXggNDg1YWE2MWU2YjcxZTgzYjczNjAx
Yzk2NmYxZTFiYmRkN2QyYWY1Ny4uNDMxM2ZhOTE1MWU5MmNkMDNiMDA4YjNjMzVlYWJkMzdkOTkx
N2Y3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFp
bi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kLXRhcmdldFR5
cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CkBAIC0xNTMsNyAr
MTUzLDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8RG9tYWluQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hl
ciYsIERvbWFpbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2go
bG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYm
IG1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNv
bnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwog
cHJpdmF0ZToKICAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCkBAIC01MTYsNyArNTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJh
Y2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9t
YWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4g
aGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21t
YW5kKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1
ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9t
YWluRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29t
bWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13
aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdAppbmRleCA1OWIzZTNjZmQ4YWM2ZmJiYjFj
M2FjYzM3NzQyMTQ5MTEyYzVkN2NjLi5mYzVjNDFkYjUzYWI2YmM0MGNhNGE1MzQ3ZWE3MmE4N2I3
MzQxOGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5q
c29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29u
LXJlc3VsdApAQCAtMTc5LDcgKzE3OSw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERhdGFiYXNlQmFj
a2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNo
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcj4g
Y3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9i
amVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBleGVjdXRlU1FMU3lu
Y09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0
PiYmIHBhcmFtZXRlcnMpOwogICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5W
YWx1ZXMobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CkBAIC04NjUsMTAgKzg2NSwxMCBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5k
RGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEYXRhYmFzZUJhYwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEYXRhYmFzZUJh
Y2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlcj4gaGFu
ZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBleGVjdXRl
U1FMU3luY09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJh
c2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQg
aW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIGV4ZWN1dGVTUUxTeW5jKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJhc2VJ
ZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGV4
ZWN1dGVTUUxBc3luYyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgaW5fcXVlcnkpIG92ZXJyaWRlOworICAgIHZvaWQgZXhlY3V0ZVNRTFN5bmNPcHRpb25h
bFJldHVyblZhbHVlcyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgaW5fcXVlcnkpIGZpbmFsOworICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxS
ZXR1cm5WYWx1ZXMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlkLCBjb25zdCBTdHJp
bmcmIGluX3F1ZXJ5KSBmaW5hbDsKKyAgICB2b2lkIGV4ZWN1dGVTUUxTeW5jKGxvbmcgcmVxdWVz
dElkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgZmluYWw7Cisg
ICAgdm9pZCBleGVjdXRlU1FMQXN5bmMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlk
LCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5KSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJh
bWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJl
dHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4IDA5ZjU1ODc3MThkM2M3NDMxZTY4NmU1
ZDQ1Yzk4MWZmYjI2NjNkOTQuLjg1OTQxZWQ1MWYxMTI0NGIzZDM0MzdjODAwMjUwNGY1MzE0MzEy
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4t
cGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFs
LWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTE2Miw3ICsxNjIsNyBAQCBw
cm90ZWN0ZWQ6CiBjbGFzcyBEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGlj
IFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PERhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERh
dGFiYXNlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25n
IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVz
c2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2
YXRlOgogICAgIHZvaWQgZXhlY3V0ZUFsbE9wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJ
ZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2b2lkIGV4ZWN1dGVO
b09wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzKTsKQEAgLTc4MCw4ICs3ODAsOCBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRGF0
YWJhc2VCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEYXRhYmFzZUJh
YwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0
b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWlu
SGFuZGxlcj4gaGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwg
dm9pZCBleGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBK
U09OOjpBcnJheSogaW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyogaW5fbm90ZXMsIGNvbnN0
IGRvdWJsZSogaW5fdGltZXN0YW1wLCBjb25zdCBKU09OOjpPYmplY3QqIGluX3ZhbHVlcywgY29u
c3QgSlNPTjo6VmFsdWUqIGluX3BheWxvYWQsIGNvbnN0IGludCogaW5fZGF0YWJhc2VJZCwgY29u
c3QgSlNPTjo6T2JqZWN0KiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nKiBpbl9zY3JlZW5Db2xv
ciwgY29uc3QgSlNPTjo6QXJyYXkqIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nKiBp
bl9wcmludENvbG9yKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZU5vT3B0aW9u
YWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBKU09OOjpBcnJheSYgaW5fY29sdW1u
TmFtZXMsIGNvbnN0IFN0cmluZyYgaW5fbm90ZXMsIGRvdWJsZSBpbl90aW1lc3RhbXAsIGNvbnN0
IEpTT046Ok9iamVjdCYgaW5fdmFsdWVzLCBKU09OOjpWYWx1ZSBpbl9wYXlsb2FkLCBpbnQgaW5f
ZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6T2JqZWN0JiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5n
JiBpbl9zY3JlZW5Db2xvciwgY29uc3QgSlNPTjo6QXJyYXkmIGluX2FsdGVybmF0ZUNvbG9ycywg
Y29uc3QgU3RyaW5nJiBpbl9wcmludENvbG9yKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4ZWN1dGVB
bGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyByZXF1ZXN0SWQsIGNvbnN0IEpTT046OkFycmF5KiBp
bl9jb2x1bW5OYW1lcywgY29uc3QgU3RyaW5nKiBpbl9ub3RlcywgY29uc3QgZG91YmxlKiBpbl90
aW1lc3RhbXAsIGNvbnN0IEpTT046Ok9iamVjdCogaW5fdmFsdWVzLCBjb25zdCBKU09OOjpWYWx1
ZSogaW5fcGF5bG9hZCwgY29uc3QgaW50KiBpbl9kYXRhYmFzZUlkLCBjb25zdCBKU09OOjpPYmpl
Y3QqIGluX3NxbEVycm9yLCBjb25zdCBTdHJpbmcqIGluX3NjcmVlbkNvbG9yLCBjb25zdCBKU09O
OjpBcnJheSogaW5fYWx0ZXJuYXRlQ29sb3JzLCBjb25zdCBTdHJpbmcqIGluX3ByaW50Q29sb3Ip
IGZpbmFsOworICAgIHZvaWQgZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVz
dElkLCBjb25zdCBKU09OOjpBcnJheSYgaW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyYgaW5f
bm90ZXMsIGRvdWJsZSBpbl90aW1lc3RhbXAsIGNvbnN0IEpTT046Ok9iamVjdCYgaW5fdmFsdWVz
LCBKU09OOjpWYWx1ZSBpbl9wYXlsb2FkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6
T2JqZWN0JiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nJiBpbl9zY3JlZW5Db2xvciwgY29uc3Qg
SlNPTjo6QXJyYXkmIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nJiBpbl9wcmludENv
bG9yKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2NvbERhdGFi
YXNlRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9t
YWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1kZWJ1Z2dhYmxl
VHlwZXMuanNvbi1yZXN1bHQKaW5kZXggM2Q2NWIwNDQ3OGMzNDRmZjNmNjdjOWIxMTMxMDc0MzY3
Y2M0NDYzYi4uZjViNTkxN2FhMGI0MTFjMjk5NzI5ZGYxODU3MzdkZTZlYmM2NzM1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9kb21haW4tZGVidWdnYWJsZVR5cGVzLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcgQEAg
cHJvdGVjdGVkOgogY2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMg
U3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
RG9tYWluQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERvbWFp
bkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1
ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2Up
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJpdmF0ZToK
ICAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMp
CkBAIC01MTYsNyArNTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJhY2tlbmREaXNw
YXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2Vu
ZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4gaGFuZGxlcikg
eyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21tYW5kKGxvbmcg
cmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIGZp
bmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWlu
SGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdl
dFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVz
dWx0CmluZGV4IGNjMDhhZTk5YzJkOGZjNDExZTJiOWU1YjUzYzMxYjk1MjFjNTRlZTYuLmQzMGYy
NGI1YzM1Mjg5Njk5NDVjZTdmZTE3OGIwMjEyYjVlNDhkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2Rv
bWFpbi10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJs
ZVR5cGUuanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBE
b21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5k
RGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5kRGlzcGF0
Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3BhdGNoZXJI
YW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5n
JiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09O
OjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29tbWFuZChs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1MTYsNyBA
QCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJs
aWMgQWx0ZXJuYXRlRG9tYWluQmFja2VuZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0
UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5k
bGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRl
OworICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAg
IFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9l
eHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQKaW5kZXggYWU4ZjA5M2U3NGFi
ZjIwOTBhMGVkZjg3NmEwNWEyOGU2ZjM5MTUzZC4uZjg5NDhhMmY3NDcwMTI1YmMyZDUzM2U5ZWQ1
NDM0ODQ5ZDgyZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGVzLmpzb24t
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJlc3VsdApAQCAtMTUz
LDcgKzE1Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZp
bmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPERvbWFpbkJhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3Bh
dGNoZXImLCBEb21haW5CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3Bh
dGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVj
dD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElk
LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5h
bDsKIHByaXZhdGU6CiAgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQpAQCAtNTE2LDcgKzUxNiw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JEb21h
aW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEb21haW5CYWNrZW5k
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3Rv
ckRvbWFpbkJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRs
ZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
Q29tbWFuZChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBDb21tYW5kKGxvbmcg
cmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2Nv
bERvbWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9k
b21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0CmluZGV4IDNiOTA3
Yzc0NWZlZGY5NmI5NDc4NmJkOTU1ZmI4MzJlMjdmZjY1NDguLjJjMDdjYjEzNDdmM2M2MmM0OWVl
YTQ3ZjQ1ZmE3MTlkZTU0ZGIyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12YXJ5
aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZh
cnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3VsdApAQCAtMTg3LDcgKzE4Nyw3IEBAIHByb3Rl
Y3RlZDoKIGNsYXNzIE5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3Vw
cGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0
d29yazFCYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgTmV0d29y
azFCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdl
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6
CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UxKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKQpAQCAtMjA0LDcgKzIwNCw3IEBAIHByaXZhdGU6CiBjbGFzcyBOZXR3b3JrM0JhY2tl
bmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI+IGNy
ZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
Kik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRo
b2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNw
YXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmpl
Y3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgbG9hZFJlc291cmNlMShs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2
b2lkIGxvYWRSZXNvdXJjZTIobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycyk7CkBAIC03NDUsNyArNzQ1LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazFCYWMK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9y
TmV0d29yazFCYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhh
bmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlMShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
UmVzb3VyY2UxKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbE5ldHdvcmsxRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpA
QCAtNzU0LDEzICs3NTQsMTMgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERp
c3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazNCYWMKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yTmV0d29yazNCYWNr
ZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrM0RvbWFpbkhhbmRsZXI+IGhhbmRs
ZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291
cmNlMShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZTIobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVz
b3VyY2UzKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
c291cmNlNChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRS
ZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVzb3VyY2U2KGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9h
ZFJlc291cmNlNyhsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkUmVzb3Vy
Y2UxKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZTIobG9uZyBy
ZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9hZFJlc291cmNlMyhsb25nIHJlcXVlc3RJZCkg
ZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2U0KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAg
ICB2b2lkIGxvYWRSZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9h
ZFJlc291cmNlNihsb25nIHJlcXVlc3RJZCkgZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2U3
KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQ
cm90b2NvbE5ldHdvcmszRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZW51bS12YWx1ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29u
LXJlc3VsdAppbmRleCA1OTc1N2JiNzBiMDViMWZkOTI2OGIyOGRkMWRkMzExN2JkNWI0MmNmLi5m
MDZmZWJiNzhkNzFlZGFiMmY1YWI2OWZlODZmYTE1NGE4YzE1YzRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9lbnVtLXZhbHVlcy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29uLXJl
c3VsdApAQCAtMTcwLDcgKzE3MCw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIENvbW1hbmREb21haW5C
YWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0
Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDb21tYW5kRG9tYWluQmFja2VuZERpc3Bh
dGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIENvbW1hbmREb21haW5CYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25z
dCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwg
UmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBj
b21tYW5kV2l0aEVudW1SZXR1cm5WYWx1ZShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykKQEAgLTYzMyw3ICs2MzMsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yQ29tbWFuZERv
bWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZUNvbW1hbgogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JDb21t
YW5kRG9tYWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sQ29tbWFuZERvbWFpbkRv
bWFpbkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgY29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQpIG92ZXJy
aWRlOworICAgIHZvaWQgY29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQp
IGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sQ29tbWFuZERv
bWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2
ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUu
anNvbi1yZXN1bHQKaW5kZXggMzk0NGY0OGZhYjM1MGI3YzFmYTVmZjllZDMwZWJmMDljODEyNzUz
Yy4uZDg5YTk3ZmY1NWRmZWM0Mzk3ZTBlYjc0YWI1ZGZkMWU0NDBlNzRmYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUuanNv
bi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVi
dWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBj
bGFzcyBEb21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxC
YWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5k
RGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJl
ZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29t
bWFuZChsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1
MTYsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgQWx0ZXJuYXRlRG9tYWluQmFja2VuZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihp
ZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUg
PSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92
ZXJyaWRlOworICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRl
OgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9k
ZWxlZ2F0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVh
dHVyZS1ndWFyZHMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVh
dHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKaW5kZXggMWJkYTcxMjUyOTVkNzlhM2U1YzE4ZTA5NjQ1
YjY5Y2E4NTkxYzgxNi4uMDk0NmI1M2UzZjgxNzdkNzY2NjY1ODE3ZmM5YjI0MjViNDU5OGZiZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpz
b24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJk
cy5qc29uLXJlc3VsdApAQCAtMTY0LDcgKzE2NCw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERp
c3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29yazFCYWNrZW5kRGlzcGF0
Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgTmV0d29yazFCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpT
T046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkUmVz
b3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCkBAIC02MTQsNyAr
NjE0LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIgZmlu
YWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazFCYWMKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yTmV0d29yazFCYWNrZW5kRGlzcGF0Y2hl
cihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxl
Z2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKGxvbmcgcmVx
dWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkg
ZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURv
bWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMt
d2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBs
YXRmb3JtLmpzb24tcmVzdWx0CmluZGV4IDliM2NlZTZiZTY1ZWE1MWZhYTYzNGI3MmFjYjg3MTU0
OTA2NWZlMzAuLmM2ZTY4ZjRhOWFlZGQzZDg0MzY3MGEyMmYwY2I4MzUzMTdlZjY0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMv
ZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3Rl
ZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtMTUzLDcgKzE1
Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6
IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxOZXR3b3JrQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hl
ciYsIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNo
KGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4m
JiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBj
b25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsK
IHByaXZhdGU6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5B
VEVfRElTUEFUQ0hFUlMpCkBAIC01ODksNyArNTg5LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5l
dHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVOZXR3b3JrQmFj
a2UKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVj
dG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbE5ldHdvcmtEb21haW5I
YW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
UmVzb3VyY2UobG9uZyByZXF1ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8
aWQ8VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggMTk4MGVlYWZjYjk3
MWNhMzk2YjZhNTk1ZjAzZGI2YTk1ZDdiN2IzMy4uZDQzZTA4Y2M3YzJjMzM2ZWMyMzUzOWE3MmRm
Zjk2Y2UwZmIwYzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5j
cHAKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNGaW5pc2hlZENvbXBp
bGluZyB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CitjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIGZpbmFsIDogcHVi
bGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKICAgICAgICAgOiBBdXRvbWF0
aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0aW9uLmNv
cHlSZWYoKSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd29ya2xpc3Qu
bV9udW1BdmFpbGFibGVUaHJlYWRzKys7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAg
ewogI2lmIE9TKExJTlVYKQogICAgICAgICByZXR1cm4gIkpJVFdvcmtlciI7CkBAIC0xMTMsOCAr
MTEzLDggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogICAgIAotcHJvdGVjdGVkOgotICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlCitwcml2YXRlOgor
ICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewog
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFkcyk7
CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJu
IFBvbGxSZXN1bHQ6Oldvcms7CiAgICAgfQogICAgIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92
ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFtX215UGxhbnMuaXNFbXB0eSgpKTsKICAgICAgICAgCkBAIC0xNDYsOCArMTQ2
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFk
cysrOwogICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7CiAgICAgfQotICAgIAot
cHJpdmF0ZToKKwogICAgIEpJVFdvcmtsaXN0JiBtX3dvcmtsaXN0OwogICAgIFBsYW5zIG1fbXlQ
bGFuczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggNDNkMTMxYzgz
NThjZTllMzE5YmQzOWU5NzVkOTFlMGFlM2Y3MGQyOS4uY2E0ZTBlMDI4ZWQ1MDE4ZjYyN2JlNWY2
M2JkZGZiYjEwNWJhNzcxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAt
MzAxLDggKzMwMSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBOdWxsTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUo
Qnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBqc051bGwoKTsgfQor
ICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgSlNWYWx1ZSBqc1ZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgZmluYWwgeyByZXR1
cm4ganNOdWxsKCk7IH0KICAgICB9OwogCiAgICAgY2xhc3MgQm9vbGVhbk5vZGUgZmluYWwgOiBw
dWJsaWMgQ29uc3RhbnROb2RlIHsKQEAgLTMxMSw4ICszMTEsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgYm9vbCB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIGJvb2wgaXNCb29sZWFuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBqc0Jvb2xlYW4obV92YWx1ZSk7IH0KKyAgICAgICAgYm9vbCBpc0Jvb2xl
YW4oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIEpTVmFsdWUganNWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGpzQm9vbGVhbihtX3Zh
bHVlKTsgfQogCiAgICAgICAgIGJvb2wgbV92YWx1ZTsKICAgICB9OwpAQCAtMzUyLDggKzM1Miw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgpIHsg
cmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNTdHJpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIEpTVmFsdWUganNWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICBib29sIGlzU3Ry
aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBKU1ZhbHVlIGpzVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3ZhbHVlOwogICAgIH07CkBAIC01NDksNyArNTQ5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdygpIHsgcmV0dXJuIG1fcmF3OyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG1fY29va2VkOwogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyKiBtX3JhdzsKQEAgLTU3Nyw3ICs1NzcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhw
cmVzc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX3RlbXBsYXRlRXhwcmVzc2lvbnM7IH0KIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CiAKICAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogbV90ZW1wbGF0ZVN0
cmluZ3M7CiAgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX3RlbXBsYXRlRXhw
cmVzc2lvbnM7CkBAIC01OTAsNyArNTkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRl
bXBsYXRlTGl0ZXJhbE5vZGUqIHRlbXBsYXRlTGl0ZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVt
cGxhdGVMaXRlcmFsOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2Rl
KiBtX3RhZzsKICAgICAgICAgVGVtcGxhdGVMaXRlcmFsTm9kZSogbV90ZW1wbGF0ZUxpdGVyYWw7
CkBAIC02MDEsNyArNjAxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ0V4cE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3Qg
SWRlbnRpZmllciYgZmxhZ3MpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3BhdHRlcm47CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fZmxhZ3M7CkBA
IC02MTIsNyArNjEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRoaXNOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3Mg
U3VwZXJOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAgLTYyMCw4ICs2MjAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3VwZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc1N1cGVyTm9kZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgYm9vbCBpc1N1cGVyTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3MgSW1wb3J0Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Np
b25EYXRhIHsKQEAgLTYyOSw4ICs2MjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW1w
b3J0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0ltcG9ydE5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wg
aXNJbXBvcnROb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsK
QEAgLTY0OSw3ICs2NDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIGJvb2wgaXNOZXdUYXJnZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAg
fTsKIAogICAgIGNsYXNzIEltcG9ydE1ldGFOb2RlIGZpbmFsIDogcHVibGljIE1ldGFQcm9wZXJ0
eU5vZGUgewpAQCAtNjU4LDcgKzY1OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCBpc0ltcG9ydE1ldGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtNjcwLDEx
ICs2NzAsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50OyB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0g
ICAgICAgIGJvb2wgaXNQdXJlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgICAgIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
LSAgICAgICAgYm9vbCBpc1Jlc29sdmVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGlzUHVyZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFs
OworICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CisgICAgICAgIGJvb2wgaXNSZXNvbHZlTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwogICAgICAgICBKU1RleHRQ
b3NpdGlvbiBtX3N0YXJ0OwpAQCAtNzAxLDE1ICs3MDEsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEFycmF5Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFbGVtZW50Tm9kZSopOwog
ICAgICAgICBBcnJheU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50IGVsaXNpb24sIEVs
ZW1lbnROb2RlKik7CiAKLSAgICAgICAgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBBcmd1bWVudExpc3ROb2RlKiB0b0Fy
Z3VtZW50TGlzdChQYXJzZXJBcmVuYSYsIGludCwgaW50KSBjb25zdDsKIAogICAgICAgICBFbGVt
ZW50Tm9kZSogZWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCi0gICAgICAgIGJvb2wgaXNTaW1wbGVBcnJheSgpIGNvbnN0IG92ZXJyaWRlOworICAg
ICAgICBib29sIGlzU2ltcGxlQXJyYXkoKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBFbGVtZW50
Tm9kZSogbV9lbGVtZW50OwogICAgICAgICBpbnQgbV9lbGlzaW9uOwpAQCAtNzc3LDcgKzc3Nyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiwgUmVnaXN0ZXJJRCosIFZlY3RvcjxKU1RleHRQ
b3NpdGlvbj4qKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QgPSBudWxs
cHRyKSBvdmVycmlkZQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0ID0gbnVsbHB0cikgZmluYWwKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGVtaXRCeXRlY29kZShnZW5lcmF0b3IsIGRzdCwg
bnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIH0KQEAgLTc5MiwxMCArNzkyLDEwIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgT2JqZWN0TGl0ZXJhbE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJik7CiAgICAgICAgIE9iamVjdExpdGVyYWxOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIFByb3BlcnR5TGlzdE5vZGUqKTsKLSAgICAgICAgYm9vbCBpc09iamVjdExp
dGVyYWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNP
YmplY3RMaXRlcmFsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAogICAgICAgICBQcm9wZXJ0eUxpc3ROb2RlKiBtX2xpc3Q7CiAgICAgfTsKQEAgLTgxMCwx
MCArODEwLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIHN1YnNjcmlwdEhhc0Fz
c2lnbm1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50czsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIGJvb2wgaXNCcmFja2V0QWNjZXNzb3JOb2RlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzTG9jYXRpb24o
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCcmFja2V0QWNj
ZXNzb3JOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
QEAgLTgyOCwxMCArODI4LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudDsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAotICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9Ci0gICAgICAgIGJvb2wgaXNEb3RBY2Nlc3Nvck5vZGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0RvdEFjY2Vzc29yTm9kZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNl
OwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwpAQCAtODQ0LDkgKzg0NCw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZXhwcmVzc2lvbjsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
ICAgICAKLSAgICAgICAgYm9vbCBpc1NwcmVhZEV4cHJlc3Npb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9uKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByZXNz
aW9uOwogICAgIH07CiAgICAgCkBAIC04NTcsNyArODU3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBy
ZXNzaW9uOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIAogICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9leHByZXNzaW9uOwogICAgIH07CkBAIC04NzEsNyArODcxLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogICAgIH07CiAKICAgICBjbGFzcyBBcmd1bWVudHNOb2RlIGZpbmFsIDogcHVibGljIFBh
cnNlckFyZW5hRnJlZWFibGUgewpAQCAtODg4LDcgKzg4OCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBOZXdFeHByTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9k
ZSosIEFyZ3VtZW50c05vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIG1fZXhwcjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtODk5LDkg
Kzg5OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFdmFsRnVuY3Rpb25DYWxsTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1
bmN0aW9uQ2FsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBpc0Z1bmN0aW9uQ2FsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAg
ICBBcmd1bWVudHNOb2RlKiBtX2FyZ3M7CiAgICAgfTsKQEAgLTkxMSw5ICs5MTEsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25DYWxsVmFsdWVOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wg
aXNGdW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9h
cmdzOwpAQCAtOTI0LDkgKzkyNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlv
bkNhbGxSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVy
JiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYg
bV9pZGVudDsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtOTM3LDkgKzkzNyw5
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlvbkNhbGxCcmFja2V0Tm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUq
IHN1YnNjcmlwdCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgQXJndW1lbnRzTm9kZSos
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwog
Ci0gICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtOTcxLDcgKzk3MSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljTm9kZShUeXBlLCBjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpFbnRyeSwgY29uc3QgSWRlbnRp
ZmllciYsIEFyZ3VtZW50c05vZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RF
bmQpOwogCi0gICAgICAgIGJvb2wgaXNCeXRlY29kZUludHJpbnNpY05vZGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCeXRlY29kZUludHJpbnNpY05v
ZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0
cnk6OkVudHJ5IGVudHJ5KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeTsgfQpAQCAtOTgzLDkgKzk4
Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogI3VuZGVmIEpTQ19ERUNMQVJFX0JZVEVDT0RFX0lOVFJJ
TlNJQ19GVU5DVElPTlMKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1bmN0aW9u
Q2FsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpGdW5jdGlvbjsg
fQorICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OkZ1bmN0aW9uOyB9CiAKICAgICAgICAgQnl0ZWNvZGVJbnRyaW5zaWNSZWdp
c3RyeTo6RW50cnkgbV9lbnRyeTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsK
QEAgLTk5OCw3ICs5OTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ2FsbEZ1bmN0aW9u
Q2FsbERvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kLCBzaXplX3QgZGlzdGFuY2VUb0lubmVybW9zdENhbGxPckFwcGx5KTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAgICAgICAgIHNpemVfdCBtX2Rpc3RhbmNlVG9Jbm5lcm1vc3RDYWxs
T3JBcHBseTsKICAgICB9OwogICAgIApAQCAtMTAwNyw3ICsxMDA3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIEFyZ3VtZW50c05v
ZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQsIHNpemVfdCBkaXN0YW5j
ZVRvSW5uZXJtb3N0Q2FsbE9yQXBwbHkpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICAgICAgc2l6ZV90
IG1fZGlzdGFuY2VUb0lubmVybW9zdENhbGxPckFwcGx5OwogICAgIH07CiAKQEAgLTEwMTYsNyAr
MTAxNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVSZXNvbHZlTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0Rl
bGV0ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwMjgsNyArMTAy
OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVCcmFja2V0Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1
YnNjcmlwdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKQEAgLTEwNDEsNyArMTA0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBEZWxldGVEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0ZU5vZGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwNTQsNyArMTA1NCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBEZWxldGVWYWx1ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
RXhwcmVzc2lvbk5vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0
ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwNjYsNyArMTA2Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWb2lkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNz
aW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xMDc4LDcgKzEwNzgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTA4OCw3ICsxMDg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFR5cGVPZlZhbHVlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9l
eHByOwogICAgIH07CkBAIC0xMTEyLDEwICsxMTEyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBQb3N0Zml4Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSos
IE9wZXJhdG9yLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdFJlc29sdmUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0QnJhY2tldChCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXREb3QoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0UmVzb2x2ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCcmFja2V0KEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERv
dChCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAg
fTsKIAogICAgIGNsYXNzIFVuYXJ5T3BOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAg
LTExMzksOSArMTEzOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBVbmFyeVBsdXNOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFs
OwogCi0gICAgICAgIEV4cHJlc3Npb25Ob2RlKiBzdHJpcFVuYXJ5UGx1cygpIG92ZXJyaWRlIHsg
cmV0dXJuIGV4cHIoKTsgfQorICAgICAgICBFeHByZXNzaW9uTm9kZSogc3RyaXBVbmFyeVBsdXMo
KSBmaW5hbCB7IHJldHVybiBleHByKCk7IH0KICAgICB9OwogCiAgICAgY2xhc3MgTmVnYXRlTm9k
ZSBmaW5hbCA6IHB1YmxpYyBVbmFyeU9wTm9kZSB7CkBAIC0xMTU4LDcgKzExNTgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIExvZ2ljYWxOb3ROb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAgICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBM
YWJlbCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIG92
ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29udGV4dChCeXRl
Y29kZUdlbmVyYXRvciYsIExhYmVsJiB0cnVlVGFyZ2V0LCBMYWJlbCYgZmFsc2VUYXJnZXQsIEZh
bGxUaHJvdWdoTW9kZSkgZmluYWw7CiAgICAgfTsKIAogICAgIGNsYXNzIEJpbmFyeU9wTm9kZSA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBAIC0xMjE3LDE0ICsxMjE3LDE0IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgQWRkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzKTsKIAotICAgICAgICBib29sIGlzQWRkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzQWRkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBTdWJOb2RlIGZpbmFsIDogcHVibGlj
IEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBTdWJOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCi0gICAgICAgIGJvb2wgaXNTdWJ0cmFjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc1N1YnRyYWN0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBMZWZ0
U2hpZnROb2RlIGZpbmFsIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CkBAIC0xMjc2LDcgKzEyNzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW5zdGFuY2VPZk5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIs
IGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAg
ICBjbGFzcyBJbk5vZGUgZmluYWwgOiBwdWJsaWMgVGhyb3dhYmxlQmluYXJ5T3BOb2RlIHsKQEAg
LTEyODQsNyArMTI4NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJbk5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07
CiAKICAgICBjbGFzcyBFcXVhbE5vZGUgZmluYWwgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAg
LTEyOTIsNyArMTI5Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFcXVhbE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9k
ZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
IH07CiAKICAgICBjbGFzcyBOb3RFcXVhbE5vZGUgZmluYWwgOiBwdWJsaWMgQmluYXJ5T3BOb2Rl
IHsKQEAgLTEzMDUsNyArMTMwNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpY3RF
cXVhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBF
eHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBOb3RTdHJpY3RFcXVhbE5vZGUgZmluYWwgOiBw
dWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAgLTEzMzQsOCArMTMzNCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBMb2dpY2FsT3BOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBMb2dpY2FsT3BlcmF0b3IpOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJl
bCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGVtaXRCeXRlY29k
ZUluQ29uZGl0aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiB0cnVlVGFyZ2V0
LCBMYWJlbCYgZmFsc2VUYXJnZXQsIEZhbGxUaHJvdWdoTW9kZSkgZmluYWw7CiAKICAgICAgICAg
TG9naWNhbE9wZXJhdG9yIG1fb3BlcmF0b3I7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4
cHIxOwpAQCAtMTM3Niw3ICsxMzc2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbmRp
dGlvbmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbG9naWNh
bCwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9sb2dpY2FsOwogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9leHByMTsKQEAgLTEzODgsNyArMTM4OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBi
b29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRl
bnQ7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OwpAQCAtMTQwMSw3ICsxNDAxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZl
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3Is
IEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
cmlnaHQ7CkBAIC0xNDEyLDExICsxNDEyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNz
IEFzc2lnblJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduUmVz
b2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJl
c3Npb25Ob2RlKiByaWdodCwgQXNzaWdubWVudENvbnRleHQpOwotICAgICAgICBib29sIGlzQXNz
aWduUmVzb2x2ZU5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGJvb2wgaXNBc3NpZ25SZXNvbHZlTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Cisg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9p
ZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CkBAIC0xNDI4LDcgKzE0Mjgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSog
c3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlw
dEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
QEAgLTE0NDMsNyArMTQ0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lv
bk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yLCBFeHByZXNz
aW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRI
YXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtMTQ1OCw3ICsxNDU4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtMTQ3Miw3ICsxNDcyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbkRvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9k
ZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTE0ODUs
NyArMTQ4NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWFkTW9kaWZ5RG90Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRp
ZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3Np
Z25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3Qg
SWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTE0OTksNyArMTQ5OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9y
LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9p
ZGVudDsKQEAgLTE1MTMsNyArMTUxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBc3Np
Z25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgfTsKICAgICAKICAgICBjbGFz
cyBDb21tYU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewpAQCAtMTUyNCw4ICsx
NTI0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbW1hTm9kZSogbmV4dCgpIHsgcmV0
dXJuIG1fbmV4dDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0NvbW1hTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgYm9vbCBpc0NvbW1hTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9k
ZSogbV9leHByOwogICAgICAgICBDb21tYU5vZGUqIG1fbmV4dCB7IG51bGxwdHIgfTsKQEAgLTE1
NjAsMTIgKzE1NjAsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IGxhc3RTdGF0ZW1lbnQoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAgIGJvb2wgaGFzRWFybHlCcmVha09yQ29udGlu
dWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgYm9vbCBoYXNFYXJseUJyZWFrT3JDb250aW51ZSgpIGNvbnN0
IGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNCbG9jaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0Jsb2NrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgICAgIFNvdXJjZUVsZW1lbnRzKiBtX3N0YXRlbWVudHM7CiAgICAgfTsKQEAg
LTE1NzUsMjEgKzE1NzUsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5U3RhdGVt
ZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29t
cGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAg
Ym9vbCBpc0VtcHR5U3RhdGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgICAgIGJvb2wgaXNFbXB0eVN0YXRlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KICAgICB9OwogICAgIAogICAgIGNsYXNzIERlYnVnZ2VyU3RhdGVtZW50Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIERl
YnVnZ2VyU3RhdGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAotICAgICAgICBi
b29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIGJvb2wgaXNEZWJ1Z2dlclN0YXRlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGlzRGVidWdnZXJTdGF0ZW1lbnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFz
cyBFeHByU3RhdGVtZW50Tm9kZSBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKQEAgLTE1
OTksOSArMTU5OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSog
ZXhwcigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwcjsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
Ym9vbCBpc0V4cHJTdGF0ZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIGJvb2wgaXNFeHByU3RhdGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAgLTE2MTAsOSArMTYxMCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgRGVjbGFyYXRpb25TdGF0ZW1lbnQo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29s
IGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xNjIy
LDcgKzE2MjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRW1wdHlWYXJFeHByZXNzaW9u
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTYz
Miw3ICsxNjMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5TGV0RXhwcmVzc2lv
bihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJik7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE2
NDIsNyArMTY0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJZkVsc2VOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBjb25kaXRpb24sIFN0YXRlbWVudE5v
ZGUqIGlmQmxvY2ssIFN0YXRlbWVudE5vZGUqIGVsc2VCbG9jayk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICAgICAgYm9vbCB0
cnlGb2xkQnJlYWtBbmRDb250aW51ZShCeXRlY29kZUdlbmVyYXRvciYsIFN0YXRlbWVudE5vZGUq
IGlmQmxvY2ssCiAgICAgICAgICAgICBMYWJlbComIHRydWVUYXJnZXQsIEZhbGxUaHJvdWdoTW9k
ZSYpOwogCkBAIC0xNjU2LDcgKzE2NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRG9X
aGlsZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgU3RhdGVtZW50Tm9kZSosIEV4cHJlc3Np
b25Ob2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBmaW5hbDsKIAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKQEAgLTE2NjcsNyArMTY2Nyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBXaGlsZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSog
bV9leHByOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKQEAgLTE2NzksNyAr
MTY3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGb3JOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBF
eHByZXNzaW9uTm9kZSogZXhwcjMsIFN0YXRlbWVudE5vZGUqLCBWYXJpYWJsZUVudmlyb25tZW50
Jik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQg
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByMTsKICAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fZXhwcjI7CkBAIC0xNzEyLDE4ICsxNzEyLDE4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBSZWdpc3RlcklEKiB0cnlHZXRCb3VuZExvY2FsKEJ5dGVjb2RlR2VuZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdExvb3BIZWFkZXIoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogICAgIH07CiAgICAgCiAgICAgY2xhc3MgRm9yT2ZOb2RlIGZpbmFsIDogcHVi
bGljIEVudW1lcmF0aW9uTm9kZSB7CiAgICAgICAgIEpTQ19NQUtFX1BBUlNFUl9BUkVOQV9ERUxF
VEFCTEVfQUxMT0NBVEVEKEZvck9mTm9kZSk7CiAgICAgcHVibGljOgogICAgICAgICBGb3JPZk5v
ZGUoYm9vbCwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqLCBFeHByZXNz
aW9uTm9kZSosIFN0YXRlbWVudE5vZGUqLCBWYXJpYWJsZUVudmlyb25tZW50Jik7Ci0gICAgICAg
IGJvb2wgaXNGb3JPZk5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIGJvb2wgaXNGb3JPZk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAg
ICAgIGJvb2wgaXNGb3JBd2FpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb3JBd2FpdDsgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAK
ICAgICAgICAgY29uc3QgYm9vbCBtX2lzRm9yQXdhaXQ7CiAgICAgfTsKQEAgLTE3MzQsOSArMTcz
NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMYWJlbCogdHJpdmlhbFRhcmdldChCeXRl
Y29kZUdlbmVyYXRvciYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGhh
c0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
ICAgIGJvb2wgaXNDb250aW51ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAg
ICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNDb250aW51ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAg
IGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE3NDcsOSArMTc0Nyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMYWJlbCogdHJpdmlhbFRhcmdldChCeXRlY29kZUdl
bmVyYXRvciYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGhhc0NvbXBs
ZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIGJv
b2wgaXNCcmVhaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNCcmVhaygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE3NjEsOSArMTc2MSw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAotICAgICAgICBib29sIGlzUmV0dXJuTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgYm9vbCBpc1JldHVybk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fdmFsdWU7CiAgICAgfTsKQEAg
LTE3NzMsNyArMTc3Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXaXRoTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIFN0YXRlbWVudE5vZGUqLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIHVpbnQzMl90IGV4cHJlc3Npb25MZW5ndGgpOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAK
ICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CkBAIC0xNzg1LDExICsxNzg1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHB1YmxpYzoKICAgICAgICAgTGFiZWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIFN0YXRlbWVudE5vZGUqKTsKIAotICAgICAgICBib29sIGlzTGFi
ZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNMYWJl
bCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0
ZW1lbnQtPmhhc0NvbXBsZXRpb25WYWx1ZSgpOyB9Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAg
ICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0
YXRlbWVudC0+aGFzQ29tcGxldGlvblZhbHVlKCk7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAg
ICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fbmFtZTsKICAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CkBAIC0xODAwLDcgKzE4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgVGhyb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xODExLDcgKzE4
MTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVHJ5Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBTdGF0ZW1lbnROb2RlKiB0cnlCbG9jaywgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2Rl
KiBjYXRjaFBhdHRlcm4sIFN0YXRlbWVudE5vZGUqIGNhdGNoQmxvY2ssIFZhcmlhYmxlRW52aXJv
bm1lbnQmIGNhdGNoRW52aXJvbm1lbnQsIFN0YXRlbWVudE5vZGUqIGZpbmFsbHlCbG9jayk7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3RyeUJsb2NrOwogICAgICAgICBEZXN0cnVjdHVy
aW5nUGF0dGVybk5vZGUqIG1fY2F0Y2hQYXR0ZXJuOwpAQCAtMTkxMiw3ICsxOTEyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rp
b24gPSBmYWxzZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0Q29sdW1uOwogICAgICAgICB1
bnNpZ25lZCBtX2VuZENvbHVtbjsKICAgICB9OwpAQCAtMTkyNyw3ICsxOTI3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rpb24g
PSBmYWxzZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogCiAgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAgIH07CkBAIC0x
OTQ3LDcgKzE5NDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIHVu
c2lnbmVkIG1fc3RhcnRDb2x1bW47CiAgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAg
ICAgICBSZWY8TW9kdWxlU2NvcGVEYXRhPiBtX21vZHVsZVNjb3BlRGF0YTsKQEAgLTIwMDgsOCAr
MjAwOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbW9kdWxl
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFtZTsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5h
bHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGFuYWx5
emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKIAogICAgICAgICBJbXBvcnRTcGVjaWZp
ZXJMaXN0Tm9kZSogbV9zcGVjaWZpZXJMaXN0OwogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbV9t
b2R1bGVOYW1lOwpAQCAtMjAyMiw4ICsyMDIyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE1vZHVsZU5hbWVOb2RlKiBtb2R1bGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVOYW1l
OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQg
YW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CisgICAgICAgIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIGZpbmFsOwog
CiAgICAgICAgIE1vZHVsZU5hbWVOb2RlKiBtX21vZHVsZU5hbWU7CiAgICAgfTsKQEAgLTIwMzYs
OCArMjAzNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBs
b2NhbE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsTmFtZTsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxl
QW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGFu
YWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKICAgICAgICAgU3RhdGVtZW50Tm9k
ZSogbV9kZWNsYXJhdGlvbjsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9sb2NhbE5hbWU7
CiAgICAgfTsKQEAgLTIwNDksOCArMjA0OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBj
b25zdCBTdGF0ZW1lbnROb2RlJiBkZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuICptX2RlY2xh
cmF0aW9uOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIG92ZXJyaWRlOworICAgICAgICB2
b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CisgICAgICAgIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIGZp
bmFsOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX2RlY2xhcmF0aW9uOwogICAgIH07CiAKQEAg
LTIwODksOCArMjA4OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNb2R1bGVOYW1lTm9k
ZSogbW9kdWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFtZTsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUo
TW9kdWxlQW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2
b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKICAgICAgICAgRXhwb3J0
U3BlY2lmaWVyTGlzdE5vZGUqIG1fc3BlY2lmaWVyTGlzdDsKICAgICAgICAgTW9kdWxlTmFtZU5v
ZGUqIG1fbW9kdWxlTmFtZSB7IG51bGxwdHIgfTsKICAgICB9OwpAQCAtMjE5MCw5ICsyMTkwLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0
ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzOyB9CiAKLSAgICAgICAgdm9pZCBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1bmN0aW9uTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0Z1bmN0aW9u
Tm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICB2b2lkIGZpbmlz
aFBhcnNpbmcoY29uc3QgSWRlbnRpZmllciYsIEZ1bmN0aW9uTW9kZSk7CiAgICAgICAgIApAQCAt
MjI0NCw5ICsyMjQ0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFycm93RnVuY0V4cHJO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBGdW5jdGlvbk1l
dGFkYXRhTm9kZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAg
ICAgYm9vbCBpc0Fycm93RnVuY0V4cHJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGlzQXJyb3dGdW5jRXhwck5vZGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIE1ldGhvZERlZmluaXRpb25Ob2RlIGZp
bmFsIDogcHVibGljIEZ1bmNFeHByTm9kZSB7CkBAIC0yMjU0LDcgKzIyNTQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWV0aG9kRGVmaW5pdGlvbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiwgY29uc3QgU291
cmNlQ29kZSYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBZ
aWVsZEV4cHJOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dh
YmxlRXhwcmVzc2lvbkRhdGEgewpAQCAtMjI2NSw3ICsyMjY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIGJvb2wgZGVsZWdhdGUoKSBjb25zdCB7IHJldHVybiBtX2RlbGVnYXRlOyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2FyZ3VtZW50OwogICAg
ICAgICBib29sIG1fZGVsZWdhdGU7CkBAIC0yMjc4LDcgKzIyNzgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGFyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9h
cmd1bWVudDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9h
cmd1bWVudDsKICAgICB9OwpAQCAtMjI4OSw5ICsyMjg5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIERlZmluZUZpZWxkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVu
dGlmaWVyKiwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZGVzdGlu
YXRpb24gPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiBkZXN0aW5hdGlvbiA9IG51bGxwdHIpIGZpbmFs
OwogCi0gICAgICAgIGJvb2wgaXNEZWZpbmVGaWVsZE5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNEZWZpbmVGaWVsZE5vZGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciogbV9pZGVudDsK
ICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYXNzaWduOwpAQCAtMjMxMyw5ICsyMzEzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgaGFzSW5zdGFuY2VGaWVsZHMoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzRWxlbWVudHMgPyBtX2NsYXNzRWxlbWVudHMtPmhhc0luc3RhbmNlRmll
bGRzKCkgOiBmYWxzZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzQ2xhc3NF
eHByTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBp
c0NsYXNzRXhwck5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
U291cmNlQ29kZSBtX2NsYXNzU291cmNlOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX25h
bWU7CkBAIC0yMzYzLDEwICsyMzYzLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
RGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2RlKiBwYXR0ZXJuOwogICAgICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIGRlZmF1bHRWYWx1ZTsKICAgICAgICAgfTsKLSAgICAgICAgdm9pZCBjb2xsZWN0Qm91
bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBvdmVycmlkZTsKLSAgICAg
ICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RCaW5kaW5nKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9kZSopIG92ZXJyaWRlOwot
ICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RC
aW5kaW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9k
ZSopIGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKIAogICAgICAgICBWZWN0b3I8RW50cnk+IG1fdGFyZ2V0UGF0dGVybnM7CiAgICAgfTsK
QEAgLTI0MDAsOSArMjQwMCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBw
cml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVu
dGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdm9pZCB0
b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgY29s
bGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QgZmluYWw7Cisg
ICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNv
bnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKICAgICAgICAgc3RydWN0IEVudHJ5IHsKICAgICAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eUV4
cHJlc3Npb247CkBAIC0yNDI1LDExICsyNDI1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90
RW5kOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgY29sbGVjdEJvdW5k
SWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IG92
ZXJyaWRlOwotICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRp
Zmllcj4mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgdG9TdHJpbmco
U3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgICAgICAKLSAgICAgICAgYm9vbCBpc0Jp
bmRpbmdOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29s
IGlzQmluZGluZ05vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
SlNUZXh0UG9zaXRpb24gbV9kaXZvdFN0YXJ0OwogICAgICAgICBKU1RleHRQb3NpdGlvbiBtX2Rp
dm90RW5kOwpAQCAtMjQ0MSwxNCArMjQ0MSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFJlc3RQYXJhbWV0ZXJOb2RlKERlc3RydWN0dXJpbmdQYXR0ZXJuTm9kZSos
IHVuc2lnbmVkIG51bVBhcmFtZXRlcnNUb1NraXApOwogCi0gICAgICAgIGJvb2wgaXNSZXN0UGFy
YW1ldGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlz
UmVzdFBhcmFtZXRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICB2
b2lkIGVtaXQoQnl0ZWNvZGVHZW5lcmF0b3ImKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZv
aWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCopIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxk
ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVy
cyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAg
IHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogCiAgICAgICAgIERl
c3RydWN0dXJpbmdQYXR0ZXJuTm9kZSogbV9wYXR0ZXJuOwogICAgICAgICB1bnNpZ25lZCBtX251
bVBhcmFtZXRlcnNUb1NraXA7CkBAIC0yNDYzLDExICsyNDYzLDExIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVy
biBtX2Rpdm90RW5kOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3Vu
ZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50
aWZpZXI+JikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5n
KFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKIAotICAgICAgICBib29sIGlzQXNzaWdubWVu
dEVsZW1lbnROb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBi
b29sIGlzQXNzaWdubWVudEVsZW1lbnROb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fZGl2b3RTdGFydDsKICAgICAgICAgSlNUZXh0
UG9zaXRpb24gbV9kaXZvdEVuZDsKQEAgLTI0ODAsOSArMjQ4MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUqIGJpbmRpbmdzKCkgeyByZXR1cm4g
bV9iaW5kaW5nczsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGlzQXNz
aWdubWVudExvY2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAg
ICBib29sIGlzRGVzdHJ1Y3R1cmluZ05vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNBc3NpZ25t
ZW50TG9jYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wg
aXNEZXN0cnVjdHVyaW5nTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUq
IG1fYmluZGluZ3M7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2luaXRpYWxpemVyOwpAQCAt
MjUyMywxMiArMjUyMywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IEZ1bmNEZWNsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwg
RnVuY3Rpb25NZXRhZGF0YU5vZGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CiAKLSAgICAgICAgYm9v
bCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQot
ICAgICAgICBib29sIGlzRnVuY0RlY2xOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jRGVjbE5vZGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CiAgICAgICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBtZXRhZGF0YSgp
IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
KiBtX21ldGFkYXRhOwogICAgIH07CkBAIC0yNTM4LDkgKzI1MzgsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQ2xhc3NEZWNsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSogY2xhc3NFeHByZXNzaW9uKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29tcGxldGlv
blZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCBo
YXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2NsYXNzRGVjbGFyYXRpb247CiAgICAgfTsKQEAgLTI1OTMs
NyArMjU5Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTd2l0Y2hOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQ2FzZUJsb2NrTm9kZSosIFZhcmlhYmxl
RW52aXJvbm1lbnQmLCBGdW5jdGlvblN0YWNrJiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fZXhwcjsKICAgICAgICAgQ2FzZUJsb2NrTm9kZSogbV9ibG9jazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCAzM2UzOWQxYTg3Nzhk
YjI5ODIzNTllYzJhODRlNjhiZmQ5NmY1NDM0Li5iNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUyOTk3
ZjcyNWI3NjAwM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlci5oCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrOwogICAgIH07CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgY2xhc3MgV2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CisgICAgY2xh
c3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VQcm92aWRl
ciB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI+IGNyZWF0ZShWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4m
IHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFdURk1vdmUoZGF0YSksIHNv
dXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpKSk7CiAgICAgICAgIH0KIAotICAgICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZp
bmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZS5pbXBsKCktPmhhc2go
KTsKICAgICAgICAgfQogCi0gICAgICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3Qgb3ZlcnJp
ZGUKKyAgICAgICAgU3RyaW5nVmlldyBzb3VyY2UoKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gbV9zb3VyY2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRhVmlldy5oCmluZGV4IGJkMjhlNzFkYzQ2ZTI5OTA0NWJiMTE3Y2NiYjdl
MTc0NGQzMDg5MjMuLmRhMDZiNGJiMjE0NDZiNmViNmU5NWZkZmI5ZTI0NWZiNjFiMzVjODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaApAQCAtMzAsMjAgKzMwLDE3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1
ZmZlclZpZXcgewotcHJvdGVjdGVkOgotICAgIERhdGFWaWV3KFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7Ci0gICAgCitjbGFz
cyBEYXRhVmlldyBmaW5hbCA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogcHVibGljOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8RGF0YVZpZXc+IGNyZWF0ZShSZWZQdHI8QXJy
YXlCdWZmZXI+JiYsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAg
c3RhdGljIFJlZjxEYXRhVmlldz4gY3JlYXRlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7CiAgICAg
Ci0gICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgVHlwZWRB
cnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gVHlw
ZURhdGFWaWV3OwogICAgIH0KIAotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEpTR2xvYmFs
T2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZTsKKyAgICBKU0FycmF5QnVmZmVyVmll
dyogd3JhcChKU0dsb2JhbE9iamVjdCosIEpTR2xvYmFsT2JqZWN0KikgZmluYWw7CiAgICAgCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBUIGdldCh1bnNpZ25lZCBvZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBib29sKiBzdGF0dXMgPSBudWxscHRyKQpAQCAtODQsNiArODEsOSBAQCBw
dWJsaWM6CiAgICAgICAgICpyZWludGVycHJldF9jYXN0PFQqPihzdGF0aWNfY2FzdDx1aW50OF90
Kj4obV9iYXNlQWRkcmVzcy5nZXQoYnl0ZUxlbmd0aCgpKSkgKyBvZmZzZXQpID0KICAgICAgICAg
ICAgIGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKHZhbHVlLCBsaXR0bGVFbmRpYW4pOwogICAgIH0K
KworcHJpdmF0ZToKKyAgICBEYXRhVmlldyhSZWZQdHI8QXJyYXlCdWZmZXI+JiYsIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3VibGVQcmVk
aWN0aW9uRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJs
ZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCmluZGV4IGFjZjU2NWQzOGQwN2U3MjA5ZGFiNjI2OWYw
ODEwMGE4YjRmNjFkMjUuLjNjZjBiNDgwZjBlYzVmM2Y4ZDYzYmNkNmNhZmQ1YTIxNjVmZGYxMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJsZVByZWRpY3Rp
b25GdXp6ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJs
ZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIERvdWJsZVBy
ZWRpY3Rpb25GdXp6ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBGdXp6ZXJBZ2VudCB7CiBwdWJsaWM6
CiAgICAgRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50KFZNJik7CiAKLSAgICBTcGVjdWxhdGVk
VHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxh
dGVkVHlwZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2Rl
QmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GaWxlQmFzZWRGdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmlsZUJhc2VkRnV6emVyQWdlbnQuaAppbmRleCA3NWUwMzM1NzE5MTA4MGMxMzdhNDgyMzIz
OGI1NGE3M2I0YzhmMWI3Li42NDllMzA2MDBjY2I0YWVkODYxOTY2NDdhZGJiODcyYTYxODFlNzUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaWxlQmFzZWRGdXp6
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbGVCYXNlZEZ1
enplckFnZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEZpbGVCYXNlZEZ1enpl
ckFnZW50KFZNJik7CiAKIHByaXZhdGU6Ci0gICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlv
bkludGVybmFsKENvZGVCbG9jayosIFByZWRpY3Rpb25UYXJnZXQmLCBTcGVjdWxhdGVkVHlwZSBv
cmlnaW5hbCkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbkludGVy
bmFsKENvZGVCbG9jayosIFByZWRpY3Rpb25UYXJnZXQmLCBTcGVjdWxhdGVkVHlwZSBvcmlnaW5h
bCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggNGY4NjRl
ZDBjYjFkMjdmZmZlOGFlMzZlMmQ5NDQ2YmRkYmFiYTEwNy4uY2NlZTZhYWQ3ODFhNjA2YjU0YzBi
ODZkODllZjljODQyMjA1OGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKQEAgLTExMCwxMiArMTEwLDEyIEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJheShpbnQgc3Rh
cnQpIGNvbnN0OwogICAgIFJlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGlu
dCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAgICAgCi0gICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlw
ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gQWRhcHRvcjo6dHlwZVZhbHVlOwogICAgIH0KIAot
ICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEpTR2xvYmFsT2JqZWN0KiwgSlNHbG9iYWxPYmpl
Y3QqKSBvdmVycmlkZTsKKyAgICBKU0FycmF5QnVmZmVyVmlldyogd3JhcChKU0dsb2JhbE9iamVj
dCosIEpTR2xvYmFsT2JqZWN0KikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR2VuZXJpY1R5cGVk
QXJyYXlWaWV3KFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTWljcm90YXNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90
YXNrLmNwcAppbmRleCAzYTUzZmNiN2UwZTg4MmRlZDkyNWQ4NTVhMTIzMDdlZGFkYzBjNTUzLi5m
OTMzNTMxYzc0N2ZjMGJmYjBlZTU5YmY5ZGUxYzNiZTM0MjMxMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suY3BwCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBydW4oSlNHbG9iYWxPYmplY3QqKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJ1bihKU0dsb2JhbE9iamVjdCopIGZpbmFsOwogCiAgICAgU3Ry
b25nPFVua25vd24+IG1fam9iOwogICAgIFN0cm9uZzxVbmtub3duPiBtX2FyZ3VtZW50c1ttYXhB
cmd1bWVudHNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFy
cm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAppbmRleCA3
OWE2Yjc5Nzc4YzA0NTRhODMwYzRiZDUyZDdlZDg5ZWM1NWViMDc2Li43YjUyMDc0OTZkMTI0Mzdj
Y2Y2OWNjYmUzZjBjOGVmODU0MGQ4OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6
emVyQWdlbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBOYXJyb3dpbmdOdW1iZXJQcmVkaWN0
aW9uRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgTnVtYmVyUHJlZGljdGlvbkZ1enplcgogcHVi
bGljOgogICAgIE5hcnJvd2luZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudChWTSYpOwogCi0g
ICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3Jp
Z2luJiwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFBy
ZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBlKSBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50LmgKaW5kZXggZWNjNGQwNjY1ZjMxNTQzNWM5YjE2YzBhNTExNTU0YTdh
M2I0ZGFlNC4uOWZjYzlkMjAzNWU3YzViYjg4NmEyZjAwNTBjOWE4NDEyMTlmNGFlZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oCkBAIC00MiwxMiArNDIsMTIg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBv
dmVycmlkZQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9vd25lci0+aXNMaXZlKCk7CiAgICAgfQogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZN
JiB2bSwgY29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlCisgICAgdm9pZCBoYW5kbGVGaXJlKFZN
JiB2bSwgY29uc3QgRmlyZURldGFpbCYpIGZpbmFsCiAgICAgewogICAgICAgICBtX3dhdGNocG9p
bnRTZXQuZmlyZUFsbCh2bSwgU3RyaW5nRmlyZURldGFpbCgiT2JqZWN0IFByb3BlcnR5IGlzIGNo
YW5nZWQuIikpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmgKaW5kZXgg
NjE3MDI4ZDkyYzY0MTQ4Y2JjMTMxMjFiODNkNzU0NjRiZDBlMjEzOS4uYTAyYWNkNmY4ZDIyYzIx
NDU1NTIyNTRmYjkzOTYyYTUxZDA0MTczNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFn
ZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIFByZWRpY3Rpb25GaWxlQ3JlYXRp
bmdGdXp6ZXJBZ2VudChWTSYpOwogCiBwcml2YXRlOgotICAgIFNwZWN1bGF0ZWRUeXBlIGdldFBy
ZWRpY3Rpb25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRl
ZFR5cGUgb3JpZ2luYWwpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rp
b25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRlZFR5cGUg
b3JpZ2luYWwpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlVGltZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VUaW1lci5oCmluZGV4IDZlNGY5ZmFiNTVlZDE4YzAw
OTRlZWE5N2Q1MWY1ZTQyMmNjMGZlNzIuLjNhNGQwZjI5YWUyZDI4Y2YzZTQwNGJlZmI1NDZmNTNj
ZDBiYmFlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21p
c2VUaW1lci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VUaW1l
ci5oCkBAIC0zOCwxMSArMzgsMTEgQEAgY2xhc3MgSlNQcm9taXNlOwogY2xhc3MgVk07CiBjbGFz
cyBKU0NlbGw7CiAKLWNsYXNzIFByb21pc2VUaW1lciA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7
CitjbGFzcyBQcm9taXNlVGltZXIgZmluYWwgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1J1bkxvb3BUaW1lcjsKIAotICAgIHZvaWQgZG9Xb3Jr
KFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dvcmsoVk0mKSBmaW5hbDsKIAogICAgIHZvaWQg
YWRkUGVuZGluZ1Byb21pc2UoVk0mLCBKU1Byb21pc2UqLCBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+
JiYgZGVwZW5kZW5jaWVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc1BlbmRpbmdQ
cm9taXNlKEpTUHJvbWlzZSogdGlja2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaAppbmRleCA2Yzc0YWQwM2E2Mjk3
YjhjNmQyYzI5M2ZlMThjMjZkNWFlNzA0ZDhhLi4xZGU3YmI3Zjc1ZjRlODU5MDBmOWI2ZTQ0OTFi
N2Y1NGNlOWIyYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
YW5kb21pemluZ0Z1enplckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmFuZG9taXppbmdGdXp6ZXJBZ2VudC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFJhbmRv
bWl6aW5nRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgewogcHVibGljOgog
ICAgIFJhbmRvbWl6aW5nRnV6emVyQWdlbnQoVk0mKTsKIAotICAgIFNwZWN1bGF0ZWRUeXBlIGdl
dFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBl
KSBvdmVycmlkZTsKKyAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayos
IGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDYWNoZS5oCmluZGV4IDdiMTI2M2RlMWRiZTUzN2RhNDM2NTI1NmMzZDIzZmIzZmJjNDQ2
NmUuLjgyNzM3ZDhmOWM2OGRlMThlODdmNWU1N2NlYTBhNjAyMTBlODg4ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuaApAQCAtNDEsNyArNDEsNyBAQCBu
YW1lc3BhY2UgWWFyciB7CiBlbnVtIGNsYXNzIEZsYWdzIDogdWludDhfdDsKIH0KIAotY2xhc3Mg
UmVnRXhwQ2FjaGUgOiBwcml2YXRlIFdlYWtIYW5kbGVPd25lciB7CitjbGFzcyBSZWdFeHBDYWNo
ZSBmaW5hbCA6IHByaXZhdGUgV2Vha0hhbmRsZU93bmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIAogICAgIGZyaWVuZCBjbGFzcyBSZWdFeHA7CkBAIC01OSwxMiArNTksMTEgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICAKICAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG1heFN0cm9uZ0NhY2hlYWJsZVBhdHRlcm5MZW5ndGggPSAyNTY7CiAKICAgICBzdGF0
aWMgY29uc3RleHByIGludCBtYXhTdHJvbmdDYWNoZWFibGVFbnRyaWVzID0gMzI7CiAKLSAgICB2
b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwog
CiAgICAgUmVnRXhwKiBlbnN1cmVFbXB0eVJlZ0V4cFNsb3coVk0mKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggMDlkNzUyNTRjNmIxMzI5ZmE3
OThkNmY3N2Y1ZDYwYzVkYTQxYTFlYy4uYzYyYWZjZTZlOTYzMDI2OTgyZmFkODk3YzY0ZTVhZjhi
YWQ4ZTYyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cnVjdHVyZSo+JiBsaXZlU3RydWN0
dXJlU2V0ID0gKihuZXcgSGFzaFNldDxTdHJ1Y3R1cmUqPik7CiAjZW5kaWYKIAogY2xhc3MgU2lu
Z2xlU2xvdFRyYW5zaXRpb25XZWFrT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVy
IHsKLSAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3Zl
cnJpZGUKKyAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkg
ZmluYWwKICAgICB7CiAgICAgICAgIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSogdGFibGUgPSBy
ZWludGVycHJldF9jYXN0PFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSo+KGNvbnRleHQpOwogICAg
ICAgICBBU1NFUlQodGFibGUtPmlzVXNpbmdTaW5nbGVTbG90KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCmluZGV4IGI1YTk4
ZGJlNGM5YjMyYmFmZmE2ZjQ4YzJiY2U0NzA2YTAxMTA0MmQuLmQ4NTM0YTBlZjRlMGQ2Y2E5YTBh
ZTM4NTFiYmY3ZDJjNTg5YWZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKQEAgLTg2LDggKzg2LDggQEAgcHVibGljOgog
ICAgIE9iamVjdFRvU3RyaW5nQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiwgU3RydWN0dXJlUmFyZURhdGEqKTsKIAog
cHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhh
bmRsZUZpcmUoVk0mLCBjb25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURl
dGFpbCYpIGZpbmFsOwogCiAgICAgU3RydWN0dXJlUmFyZURhdGEqIG1fc3RydWN0dXJlUmFyZURh
dGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCBk
MzdlOGM4NmM2YmE1YTVjNjQxYWI5NTBlZDc0NDZjZGI0MmE1YjdhLi42MTVlYzllYzU1MTA0N2Mz
NzZjYzY3ZWZhYWVhZmIzNWExZTYxYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTVRyYXBzLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgfSk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gIkpTQyBWTVRy
YXBzIFNpZ25hbCBTZW5kZXIgVGhyZWFkIjsKICAgICB9CkBAIC0yNDgsNyArMjQ4LDcgQEAgcHVi
bGljOgogICAgIFZNVHJhcHMmIHRyYXBzKCkgeyByZXR1cm4gbV92bS50cmFwcygpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgb3ZlcnJp
ZGUKKyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKHRyYXBzKCkubV9pc1NodXR0aW5nRG93bikKICAgICAgICAgICAgIHJl
dHVybiBQb2xsUmVzdWx0OjpTdG9wOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBQb2xsUmVzdWx0OjpXb3JrOwogICAgIH0KIAotICAgIFdvcmtSZXN1bHQgd29y
aygpIG92ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAg
IFZNJiB2bSA9IG1fdm07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCmlu
ZGV4IDc1OWY1ZWRhZjk0YTc1MDAyZDJiM2E5ZDcxOTYwY2YwZjE3N2U4ODIuLmY2MDhlZjdkMjcw
NmFmYTllOWI2ZjQyNzEyNTg0NzNiNjFjZDZmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2lkZW5pbmdOdW1iZXJQcmVkaWN0aW9u
RnV6emVyQWdlbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXaWRlbmluZ051bWJlclByZWRp
Y3Rpb25GdXp6ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBOdW1iZXJQcmVkaWN0aW9uRnV6emVyQQog
cHVibGljOgogICAgIFdpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50KFZNJik7CiAK
LSAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVP
cmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0
UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUp
IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggYWRkOWIxNmRkYzY4ZmZmZjhkYTkzYmU3MjIwZWQ0
MzdiZjk2YTU1OC4uOTU2ZWZkYjg1NGFmZmYzMGYwZGNiMGM3OTIxMTFmZjUzMTc0M2UwZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtMjQ2LDEwICsy
NDYsMTAgQEAgcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8Um9vdD4gbV9yb290OwogfTsKIAot
Y2xhc3MgRWxlbWVudEhhbmRsZU93bmVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CitjbGFz
cyBFbGVtZW50SGFuZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pIG92ZXJyaWRlCisgICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KSBmaW5hbAogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGlj
OgogICAgIH0KIH07CiAKLWNsYXNzIFJvb3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qg
eworY2xhc3MgUm9vdCBmaW5hbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJs
aWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0OwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KQEAgLTE0NjUsOSArMTQ2NSw5IEBA
IHB1YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkaWRSZWNlaXZl
U2VjdGlvbkRhdGEoV2FzbTo6U2VjdGlvbikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNvbnN0IFdhc206OkZ1
bmN0aW9uRGF0YSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdm9pZCBkaWRG
aW5pc2hQYXJzaW5nKCkgb3ZlcnJpZGUgeyB9CisgICAgICAgIGJvb2wgZGlkUmVjZWl2ZVNlY3Rp
b25EYXRhKFdhc206OlNlY3Rpb24pIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBXYXNtOjpGdW5jdGlvbkRh
dGEmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZvaWQgZGlkRmluaXNoUGFyc2lu
ZygpIGZpbmFsIHsgfQogCiAgICAgICAgIFdhc21TdHJlYW1pbmdQYXJzZXIqIG1fcGFyc2VyOwog
ICAgIH07CkBAIC0yNjkxLDcgKzI2OTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgc291cmNlUGFyc2VkKEpTR2xvYmFsT2JqZWN0KiwgU291cmNlUHJvdmlkZXIqLCBp
bnQsIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGUKKyAgICB2b2lkIHNvdXJjZVBhcnNlZChK
U0dsb2JhbE9iamVjdCosIFNvdXJjZVByb3ZpZGVyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYp
IGZpbmFsCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFu
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5oCmluZGV4IDI5NGE3
NDMwOTE1MWM5Mzg3ZGUxYmRhM2Q0ZmMyMjBjYjg3NzViYWMuLmZiNGUxZTI1OTYyMGRiYjc1NDc2
ZmM3NmM5MmRjZWM2MjUzODY0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CQlFQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJC
UVBsYW4uaApAQCAtNTYsMTkgKzU2LDE5IEBAIHB1YmxpYzoKIAogICAgIEJCUVBsYW4oQ29udGV4
dCosIFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4sIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIENvZGVC
bG9jayosIENvbXBsZXRpb25UYXNrJiYpOwogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICBib29sIGhhc1dvcmsoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgaWYg
KG1fYXN5bmNXb3JrID09IEFzeW5jV29yazo6VmFsaWRhdGlvbikKICAgICAgICAgICAgIHJldHVy
biBtX3N0YXRlIDwgU3RhdGU6OlZhbGlkYXRlZDsKICAgICAgICAgcmV0dXJuIG1fc3RhdGUgPCBT
dGF0ZTo6Q29tcGlsZWQ7CiAgICAgfQogCi0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0
KSBvdmVycmlkZTsKKyAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIGZpbmFsOwogCiAg
ICAgdXNpbmcgQ2FsbGVlSW5pdGlhbGl6ZXIgPSBGdW5jdGlvbjx2b2lkKHVpbnQzMl90LCBSZWZQ
dHI8RW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlPiYmLCBSZWY8QkJRQ2FsbGVlPiYmKT47CiAgICAg
dm9pZCBpbml0aWFsaXplQ2FsbGVlcyhjb25zdCBDYWxsZWVJbml0aWFsaXplciYpOwogCi0gICAg
Ym9vbCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBGdW5jdGlvbkRhdGEm
KSBvdmVycmlkZTsKKyAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNv
bnN0IEZ1bmN0aW9uRGF0YSYpIGZpbmFsOwogCiAgICAgYm9vbCBwYXJzZUFuZFZhbGlkYXRlTW9k
dWxlKCkKICAgICB7CkBAIC03Niw5ICs3Niw5IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgYm9vbCBwcmVwYXJlSW1wbCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGlsZUZ1bmN0
aW9uKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ29tcGxl
dGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlOworICAgIGJvb2wg
cHJlcGFyZUltcGwoKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBm
dW5jdGlvbkluZGV4KSBmaW5hbDsKKyAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29u
c3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5h
bEZ1bmN0aW9uPiBjb21waWxlRnVuY3Rpb24odWludDMyX3QgZnVuY3Rpb25JbmRleCwgQ29tcGls
YXRpb25Db250ZXh0JiwgVmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNhbGw+JiwgVGllclVwQ291
bnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCmluZGV4IDNhNDlj
NWYyOGZkYjc5NWQyNTZiZDI3ZGM1MmMyNDNkOGUyNWNhNzkuLmJhMzllNTZjMjMxNDQwYmJmYjE0
MmU3YTM4NDg0Y2NmNGY2NzVhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2Fs
bGVlLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgT01HRm9yT1NS
RW50cnlDYWxsZWUqIG9zckVudHJ5Q2FsbGVlKCkgeyByZXR1cm4gbV9vc3JFbnRyeUNhbGxlZS5n
ZXQoKTsgfQotICAgIHZvaWQgc2V0T1NSRW50cnlDYWxsZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2Fs
bGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBvdmVycmlkZQorICAgIHZvaWQgc2V0T1NSRW50cnlDYWxs
ZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2FsbGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBmaW5hbAogICAg
IHsKICAgICAgICAgbV9vc3JFbnRyeUNhbGxlZSA9IFdURk1vdmUob3NyRW50cnlDYWxsZWUpOwog
ICAgIH0KQEAgLTE5Miw5ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCBzZXRFbnRyeXBvaW50KE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxXYXNtRW50
cnlQdHJUYWc+KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdpc3RlcnMoKSBv
dmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnR1cGxlPHZvaWQqLCB2b2lkKj4g
cmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI8V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50KCkgY29uc3QgZmluYWw7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdp
c3RlcnMoKSBmaW5hbDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnR1cGxlPHZvaWQqLCB2
b2lkKj4gcmFuZ2UoKSBjb25zdCBmaW5hbDsKIAogICAgIEpJVENhbGxlZSogcmVwbGFjZW1lbnQo
KSB7IHJldHVybiBtX3JlcGxhY2VtZW50LmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXBsYWNlbWVu
dChSZWY8SklUQ2FsbGVlPiYmIHJlcGxhY2VtZW50KQpAQCAtMjAzLDcgKzIwMyw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBPTUdGb3JPU1JFbnRyeUNhbGxlZSogb3NyRW50cnlDYWxsZWUoKSB7
IHJldHVybiBtX29zckVudHJ5Q2FsbGVlLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRPU1JFbnRyeUNh
bGxlZShSZWY8T01HRm9yT1NSRW50cnlDYWxsZWU+JiYgb3NyRW50cnlDYWxsZWUpIG92ZXJyaWRl
CisgICAgdm9pZCBzZXRPU1JFbnRyeUNhbGxlZShSZWY8T01HRm9yT1NSRW50cnlDYWxsZWU+JiYg
b3NyRW50cnlDYWxsZWUpIGZpbmFsCiAgICAgewogICAgICAgICBtX29zckVudHJ5Q2FsbGVlID0g
V1RGTW92ZShvc3JFbnRyeUNhbGxlZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50UGxhbi5oCmluZGV4IDkzMzViM2EwNWI4MGNhZTQ1ZGI4OWNjYzQ4YzViYzE5
YzFkNWVkNTguLmZiODQ5MWJhYjMwZGZhYjc5YzM3ZjEyYWViYmMxZWU0MWQxZTg1ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmgKQEAgLTY2LDE5ICs2Niwx
OSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fZW1iZWRkZXJDYWxsZWVzKTsK
ICAgICB9CiAKLSAgICBib29sIGhhc1dvcmsoKSBjb25zdCBvdmVycmlkZQorICAgIGJvb2wgaGFz
V29yaygpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gbV9zdGF0ZSA8IFN0YXRl
OjpDb21waWxlZDsKICAgICB9CiAKLSAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIG92
ZXJyaWRlOworICAgIHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CiAKLSAgICBi
b29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNvbnN0IEZ1bmN0aW9uRGF0YSYp
IG92ZXJyaWRlOworICAgIGJvb2wgZGlkUmVjZWl2ZUZ1bmN0aW9uRGF0YSh1bnNpZ25lZCwgY29u
c3QgRnVuY3Rpb25EYXRhJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBwcmVwYXJlSW1w
bCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGlsZUZ1bmN0aW9uKHVpbnQzMl90IGZ1bmN0aW9u
SW5kZXgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBB
YnN0cmFjdExvY2tlciYpIG92ZXJyaWRlOworICAgIGJvb2wgcHJlcGFyZUltcGwoKSBmaW5hbDsK
KyAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBmdW5jdGlvbkluZGV4KSBmaW5hbDsK
KyAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImKSBm
aW5hbDsKIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb25Db2RlQmxvY2s+PiBt
X3dhc21JbnRlcm5hbEZ1bmN0aW9uczsKICAgICBjb25zdCBSZWY8TExJbnRDYWxsZWU+KiBtX2Nh
bGxlZXMgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT01HRm9yT1NSRW50cnlQbGFuLmgKaW5kZXggOGE1ZWE1NTEyMDQ4NThmMWY3MTIyZTc5YTJh
OWFhNmM2ODgwNTJjOS4uYmI5ZTQ4NzRjZThiYTU2NDFiODFiMWZkZTk5ZjFkZWNkN2ViNzI2MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5
UGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRy
eVBsYW4uaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBPTUdGb3JPU1JFbnRyeVBsYW4gZmluYWwg
OiBwdWJsaWMgUGxhbiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFBsYW47CiAKLSAgICBi
b29sIGhhc1dvcmsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhbV9jb21wbGV0ZWQ7IH0KLSAg
ICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIG92ZXJyaWRlOwotICAgIGJvb2wgbXVsdGlU
aHJlYWRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBoYXNX
b3JrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fY29tcGxldGVkOyB9CisgICAgdm9pZCB3b3Jr
KENvbXBpbGF0aW9uRWZmb3J0KSBmaW5hbDsKKyAgICBib29sIG11bHRpVGhyZWFkZWQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTm90ZTogQ29tcGxldGlvblRhc2sg
c2hvdWxkIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBQbGFuIG90aGVyd2lzZSB0aGVyZSB3
aWxsIGJlIGEgcmVmZXJlbmNlIGN5Y2xlLgogICAgIE9NR0Zvck9TUkVudHJ5UGxhbihDb250ZXh0
KiwgUmVmPE1vZHVsZT4mJiwgUmVmPENhbGxlZT4mJiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCwg
dWludDMyX3QgbG9vcEluZGV4LCBNZW1vcnlNb2RlLCBDb21wbGV0aW9uVGFzayYmKTsKQEAgLTU0
LDggKzU0LDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3Igc29tZSByZWFzb24gZnJpZW5kc2hpcCBk
b2Vzbid0IGV4dGVuZCB0byBwYXJlbnQgY2xhc3Nlcy4uLgogICAgIHVzaW5nIEJhc2U6Om1fbG9j
azsKIAotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29t
cGxldGVkOyB9Ci0gICAgdm9pZCBjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KSBvdmVycmlkZQorICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29tcGxldGVkOyB9CisgICAgdm9pZCBjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICBy
dW5Db21wbGV0aW9uVGFza3MobG9ja2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PTUdQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T01HUGxhbi5oCmluZGV4IGNiNzliNDM5ZDRlOTk0ZDg3MGU5ZGM5MDg5YzQzYTdmNTg2MDI1NjYu
Ljc3YTFkODJhNWJiZjc2ODE0Y2U3MTM4OWY0ZDVjZDY2MDA4ZjJkNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBPTUdQ
bGFuIGZpbmFsIDogcHVibGljIFBsYW4gewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBQbGFu
OwogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fY29tcGxl
dGVkOyB9Ci0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0KSBvdmVycmlkZTsKLSAgICBi
b29sIG11bHRpVGhyZWFkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaGFzV29yaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2NvbXBsZXRlZDsgfQorICAg
IHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CisgICAgYm9vbCBtdWx0aVRocmVh
ZGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5vdGU6IENvbXBs
ZXRpb25UYXNrIHNob3VsZCBub3QgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgUGxhbiBvdGhlcndp
c2UgdGhlcmUgd2lsbCBiZSBhIHJlZmVyZW5jZSBjeWNsZS4KICAgICBPTUdQbGFuKENvbnRleHQq
LCBSZWY8TW9kdWxlPiYmLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBNZW1vcnlNb2RlLCBDb21w
bGV0aW9uVGFzayYmKTsKQEAgLTUyLDggKzUyLDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3Igc29t
ZSByZWFzb24gZnJpZW5kc2hpcCBkb2Vzbid0IGV4dGVuZCB0byBwYXJlbnQgY2xhc3Nlcy4uLgog
ICAgIHVzaW5nIEJhc2U6Om1fbG9jazsKIAotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9Ci0gICAgdm9pZCBjb21wbGV0ZShjb25zdCBB
YnN0cmFjdExvY2tlciYgbG9ja2VyKSBvdmVycmlkZQorICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9CisgICAgdm9pZCBjb21wbGV0ZShjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9jb21wbGV0
ZWQgPSB0cnVlOwogICAgICAgICBydW5Db21wbGV0aW9uVGFza3MobG9ja2VyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IGQxNGY3ODdhMTI5MGFh
ZTg2ZjNmNzE3MzhkNjlmMWRmNjQxM2VlZDAuLjYwYWYwMWFhNWU1ZDUwOGU4NzM2ZjdlZGIxMGI5
Nzc3N2E3YTk3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21X
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlCisgICAgUG9sbFJl
c3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgZmluYWwKICAgICB7CiAgICAgICAgIGF1
dG8mIHF1ZXVlID0gd29ya2xpc3QubV9xdWV1ZTsKICAgICAgICAgc3luY2hyb25pemUubm90aWZ5
QWxsKCk7CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBQb2xsUmVz
dWx0OjpXYWl0OwogICAgIH0KIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92ZXJyaWRlCisgICAg
V29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAgIGF1dG8gY29tcGxldGUgPSBb
Jl0gKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgewogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBo
b2xkIHRoZSBsb2NrIHRvIHJlbGVhc2Ugb3VyIHBsYW4gb3RoZXJ3aXNlIHRoZSBtYWluIHRocmVh
ZCwgd2hpbGUgY2FuY2VsaW5nIHBsYW5zCkBAIC0xMTcsMTIgKzExNywxMiBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gY29tcGxldGUoaG9sZExvY2soKndvcmtsaXN0Lm1fbG9jaykpOwogICAg
IH0KIAotICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhjb25zdCBBYnN0cmFjdExvY2tlciYpIG92
ZXJyaWRlCisgICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFic3RyYWN0TG9ja2VyJikg
ZmluYWwKICAgICB7CiAgICAgICAgIGNsZWFyTExJbnRUaHJlYWRTcGVjaWZpY0NhY2hlKCk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gIldhc20gV29y
a2xpc3QgSGVscGVyIFRocmVhZCI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCA2ZWI4YTE2ZjliN2RiZGIwZmIyN2RjY2E4MzQ0Nzk2Zjk5MTQ5NzNiLi42
NGRhY2YyMjQyNDE3OGFhZmNhMGJkODJjZTI1YjljNDE1ZDgwMTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtNjksNyArNjksNyBAQCBNYXRjaGluZ0NvbnRleHRI
b2xkZXI6On5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKQogfQogCiB0ZW1wbGF0ZTxZYXJySklUQ29t
cGlsZU1vZGUgY29tcGlsZU1vZGU+Ci1jbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJK
SVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKK2NsYXNzIFlhcnJHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAjaWYg
Q1BVKEFSTV9USFVNQjIpCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBBUk1S
ZWdpc3RlcnM6OnIwOwpAQCAtMzk4Miw3ICszOTgyLDcgQEAgcHVibGljOgogICAgICAgICAgICAg
Y29kZUJsb2NrLnNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oKm1fZmFpbHVyZVJlYXNvbik7
CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogdmFyaWFudCgpIG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogdmFyaWFudCgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAoY29tcGlsZU1vZGUgPT0g
TWF0Y2hPbmx5KSB7CiAgICAgICAgICAgICBpZiAobV9jaGFyU2l6ZSA9PSBDaGFyOCkKQEAgLTM5
OTcsMTcgKzM5OTcsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gIjE2LWJpdCByZWd1bGFy
IGV4cHJlc3Npb24iOwogICAgIH0KIAotICAgIHVuc2lnbmVkIG9wQ291bnQoKSBvdmVycmlkZQor
ICAgIHVuc2lnbmVkIG9wQ291bnQoKSBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3Bz
LnNpemUoKTsKICAgICB9CiAKLSAgICB2b2lkIGR1bXBQYXR0ZXJuU3RyaW5nKFByaW50U3RyZWFt
JiBvdXQpIG92ZXJyaWRlCisgICAgdm9pZCBkdW1wUGF0dGVyblN0cmluZyhQcmludFN0cmVhbSYg
b3V0KSBmaW5hbAogICAgIHsKICAgICAgICAgbV9wYXR0ZXJuLmR1bXBQYXR0ZXJuU3RyaW5nKG91
dCwgbV9wYXR0ZXJuU3RyaW5nKTsKICAgICB9CiAKLSAgICBpbnQgZHVtcEZvcihQcmludFN0cmVh
bSYgb3V0LCB1bnNpZ25lZCBvcEluZGV4KSBvdmVycmlkZQorICAgIGludCBkdW1wRm9yKFByaW50
U3RyZWFtJiBvdXQsIHVuc2lnbmVkIG9wSW5kZXgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAo
b3BJbmRleCA+PSBvcENvdW50KCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKaW5kZXggMzZjNmRjOThhY2QyYjZkYzkzMTcyYzhhYzVhZTgyNjk4OGVkNzg0Ni4uMGFi
YTg1Njc3MjUyZDNiYWZlMWVmZmU5MjkwMzRkNzg4MWQ3ZDZjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKQEAgLTI3MiwxMCArMjcyLDEwIEBAIHZvaWQgV1RGUmVwb3J0QXJndW1lbnRBc3NlcnRpb25G
YWlsdXJlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmCiAgICAgcHJp
bnRDYWxsU2l0ZShmaWxlLCBsaW5lLCBmdW5jdGlvbik7CiB9CiAKLWNsYXNzIENyYXNoTG9nUHJp
bnRTdHJlYW0gOiBwdWJsaWMgUHJpbnRTdHJlYW0geworY2xhc3MgQ3Jhc2hMb2dQcmludFN0cmVh
bSBmaW5hbCA6IHB1YmxpYyBQcmludFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgV1RGX0FUVFJJQlVU
RV9QUklOVEYoMiwgMCkKLSAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9s
aXN0IGFyZ0xpc3QpIG92ZXJyaWRlCisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgdmFfbGlzdCBhcmdMaXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgdnByaW50Zl9zdGRlcnJf
Y29tbW9uKGZvcm1hdCwgYXJnTGlzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKaW5kZXggY2FlNjgxMTc4
MmU1NjIzMzRiOTVlMzE2NjE1YWU1OTFlMTNlODBjZS4uZTU0MDc1YWY1ZGRjYjZiMjkxZjM4OTg2
OWU4ODFkMmU2ZDk1NTAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC0yMTMsNyArMjEzLDcgQEAgdGVtcGxh
dGU8Y2xhc3MgRT4KIGNsYXNzIGJhZF9leHBlY3RlZF9hY2Nlc3MgOiBwdWJsaWMgYmFkX2V4cGVj
dGVkX2FjY2Vzczx2b2lkPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgYmFkX2V4cGVjdGVkX2Fj
Y2VzcyhFIHZhbCkgOiB2YWwodmFsKSB7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHdoYXQo
KSBjb25zdCBub2V4Y2VwdCBvdmVycmlkZSB7IHJldHVybiBzdGQ6OmV4Y2VwdGlvbjo6d2hhdCgp
OyB9CisgICAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IG92ZXJyaWRlIHsgcmV0
dXJuIHN0ZDo6ZXhjZXB0aW9uOjp3aGF0KCk7IH0KICAgICBFJiBlcnJvcigpICYgeyByZXR1cm4g
dmFsOyB9CiAgICAgY29uc3QgRSYgZXJyb3IoKSBjb25zdCYgeyByZXR1cm4gdmFsOyB9CiAgICAg
RSYmIGVycm9yKCkgJiYgeyByZXR1cm4gc3RkOjptb3ZlKHZhbCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0ZpbGVQcmludFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVByaW50
U3RyZWFtLmgKaW5kZXggNTYxYmNmN2YwMmMyODk0OWI2MWUxZGE0NGVkZWFkZWJkMTE0MjFjNS4u
ZDM0MTIzZDRmZWIzOGMxODI1ZmE4OWJmMzc4NWNkYWI4ODBjMTg1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvRmlsZVByaW50U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVBy
aW50U3RyZWFtLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWNsYXNz
IEZpbGVQcmludFN0cmVhbSA6IHB1YmxpYyBQcmludFN0cmVhbSB7CitjbGFzcyBGaWxlUHJpbnRT
dHJlYW0gZmluYWwgOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIGVudW0gQWRv
cHRpb25Nb2RlIHsKICAgICAgICAgQWRvcHQsCkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgog
ICAgIH07CiAgICAgCiAgICAgRmlsZVByaW50U3RyZWFtKEZJTEUqLCBBZG9wdGlvbk1vZGUgPSBB
ZG9wdCk7Ci0gICAgdmlydHVhbCB+RmlsZVByaW50U3RyZWFtKCk7CisgICAgfkZpbGVQcmludFN0
cmVhbSgpIGZpbmFsOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPEZpbGVQcmludFN0cmVhbT4gb3Blbihjb25zdCBjaGFyKiBmaWxlbmFtZSwgY29u
c3QgY2hhciogbW9kZSk7CiAgICAgCiAgICAgRklMRSogZmlsZSgpIHsgcmV0dXJuIG1fZmlsZTsg
fQogICAgIAotICAgIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIG92
ZXJyaWRlIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwotICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBmaW5h
bCBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKKyAgICB2b2lkIGZsdXNoKCkgZmluYWw7CiAK
IHByaXZhdGU6CiAgICAgRklMRSogbV9maWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
SlNPTlZhbHVlcy5oIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCmluZGV4IDg1Njg4OWEy
NmUwNzEyZjkwMThjZjdkMTg1NGYzZDkyMzQ1YTFjZTguLmViYWJjNDQ5Zjg4MGIzOWQzZmFkZTc4
Y2Q2MWIxYzRkNWUwZTY4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKQEAgLTE4Myw3ICsxODMsNyBAQCBw
dWJsaWM6CiAgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgfk9iamVjdEJhc2UoKTsKKyAgICB+T2JqZWN0QmFzZSgpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBhc09iamVjdChSZWZQdHI8T2JqZWN0PiYgb3V0cHV0KSBvdmVycmlkZTsK
IApAQCAtMzAxLDcgKzMwMSw3IEBAIHB1YmxpYzoKICAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGNv
bnN0IGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+QXJyYXlCYXNlKCk7CisgICAg
fkFycmF5QmFzZSgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBhc0FycmF5KFJlZlB0cjxBcnJheT4m
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9ja2VkUHJpbnRTdHJl
YW0uaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlZFByaW50U3RyZWFtLmgKaW5kZXggNmViOTBhYWU4
MDhlN2YyYjlmNDRkNDJlNTZlM2E5NDM1NzQ2OWM1Ny4uZTRmYWRiODVkYmIzZmRhZGM4NjgyZDhl
MjU0YzYyYmY0Y2ZlYjU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTG9ja2VkUHJpbnRT
dHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZWRQcmludFN0cmVhbS5oCkBAIC0zNSwx
NiArMzUsMTUgQEAgbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBMb2NrZWRQcmludFN0cmVhbSA6IHB1
YmxpYyBQcmludFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgTG9ja2VkUHJpbnRTdHJlYW0oc3RkOjp1
bmlxdWVfcHRyPFByaW50U3RyZWFtPiB0YXJnZXQpOwotICAgIHZpcnR1YWwgfkxvY2tlZFByaW50
U3RyZWFtKCk7CisgICAgfkxvY2tlZFByaW50U3RyZWFtKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgb3ZlcnJpZGUgV1RGX0FUVFJJ
QlVURV9QUklOVEYoMiwgMCk7Ci0gICAgdm9pZCBmbHVzaCgpIG92ZXJyaWRlOwotCi1wcm90ZWN0
ZWQ6Ci0gICAgUHJpbnRTdHJlYW0mIGJlZ2luKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbmQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBm
aW5hbCBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKKyAgICB2b2lkIGZsdXNoKCkgZmluYWw7
CiAKIHByaXZhdGU6CisgICAgUHJpbnRTdHJlYW0mIGJlZ2luKCkgZmluYWw7CisgICAgdm9pZCBl
bmQoKSBmaW5hbDsKKwogICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgYSByZWN1cnNpdmUgbG9jayBi
ZWNhdXNlIGEgcHJpbnRJbnRlcm5hbCBvciBkdW1wIG1ldGhvZCBjb3VsZCBhc3NlcnQsCiAgICAg
Ly8gYW5kIHRoYXQgYXNzZXJ0IG1pZ2h0IHdhbnQgdG8gbG9nLiBCZXR0ZXIgdG8gbGV0IGl0LiBU
aGlzIG5lZWRzIHRvIGJlIGEgV29yZExvY2sgc28gdGhhdAogICAgIC8vIExvY2tlZFByaW50U3Ry
ZWFtIChpLmUuIGNhdGFMb2cpIGNhbiBiZSB1c2VkIHRvIGRlYnVnIFBhcmtpbmdMb3QgYW5kIExv
Y2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmgKaW5kZXggYzg3ZWVmNzljNzBiNTE0ZjhkY2U3
ZTk1NWZhMmU2ZGQ5NjhiZDUyNi4uNTlmODExNGVjZDJkOTdhOTFmMDRmZmFlNzAxOTdkYmEzODdj
ZTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uaApAQCAtNDAsMTEgKzQwLDExIEBAIG5h
bWVzcGFjZSBXVEYgewogY2xhc3MgV1RGX0VYUE9SVF9QUklWQVRFIE9TTG9nUHJpbnRTdHJlYW0g
ZmluYWwgOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIE9TTG9nUHJpbnRTdHJl
YW0ob3NfbG9nX3QsIG9zX2xvZ190eXBlX3QpOwotICAgIHZpcnR1YWwgfk9TTG9nUHJpbnRTdHJl
YW0oKTsKKyAgICB+T1NMb2dQcmludFN0cmVhbSgpIGZpbmFsOwogICAgIAogICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8T1NMb2dQcmludFN0cmVhbT4gb3Blbihjb25zdCBjaGFyKiBzdWJzeXN0
ZW0sIGNvbnN0IGNoYXIqIGNhdGVnb3J5LCBvc19sb2dfdHlwZV90ID0gT1NfTE9HX1RZUEVfREVG
QVVMVCk7CiAgICAgCi0gICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlz
dCkgb3ZlcnJpZGUgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CisgICAgdm9pZCB2cHJpbnRm
KGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgZmluYWwgV1RGX0FUVFJJQlVURV9QUklOVEYo
MiwgMCk7CiAKIHByaXZhdGU6CiAgICAgb3NfbG9nX3QgbV9sb2c7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYvUGFyYWxs
ZWxIZWxwZXJQb29sLmNwcAppbmRleCA0ZjlhOTIyYzA4NGIyMjI1ZGQxODVjNDU1NGRjZTQzZGI5
MDQ5YmQwLi4xNjFmMjVjNTM0OGVkNjE3ODc2ODA2Yzk1ZTk4ZjVmOGJhNTQ2ZGQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFBh
cmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiAgICAgY2xpZW50LT5ydW5UYXNrKHRh
c2spOwogfQogCi1jbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZCA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgeworY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpUaHJlYWQgZmluYWwgOiBw
dWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgQWJzdHJh
Y3RMb2NrZXImIGxvY2tlciwgUGFyYWxsZWxIZWxwZXJQb29sJiBwb29sKQogICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJsZUNv
bmRpdGlvbi5jb3B5UmVmKCkpCkBAIC0xNzcsMTMgKzE3NywxMyBAQCBwdWJsaWM6CiAgICAgewog
ICAgIH0KICAgICAKLSAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICBj
b25zdCBjaGFyKiBuYW1lKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX3Bv
b2wubV90aHJlYWROYW1lLmRhdGEoKTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICBQb2xsUmVz
dWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikgb3ZlcnJpZGUKK3ByaXZhdGU6
CisgICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIGZpbmFs
CiAgICAgewogICAgICAgICBpZiAobV9wb29sLm1faXNEeWluZykKICAgICAgICAgICAgIHJldHVy
biBQb2xsUmVzdWx0OjpTdG9wOwpAQCAtMTk1LDE1ICsxOTUsMTQgQEAgcHJvdGVjdGVkOgogICAg
ICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKICAgICB9CiAgICAgCi0gICAgV29ya1Jlc3Vs
dCB3b3JrKCkgb3ZlcnJpZGUKKyAgICBXb3JrUmVzdWx0IHdvcmsoKSBmaW5hbAogICAgIHsKICAg
ICAgICAgbV9jbGllbnQtPnJ1blRhc2sobV90YXNrKTsKICAgICAgICAgbV9jbGllbnQgPSBudWxs
cHRyOwogICAgICAgICBtX3Rhc2sgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gV29ya1Jlc3Vs
dDo6Q29udGludWU7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIFBhcmFsbGVsSGVscGVy
UG9vbCYgbV9wb29sOwogICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxw
dHIgfTsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gbV90YXNrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmlu
ZGV4IGNlYWMyZWRhNDg1M2Y1YWFhZTY0MjVjNDJhYWM2NjE4OTdlOWQwYTEuLjZkOTQwNmYyYWNm
Y2EzNTQ2MjczYjBlZWE2Y2ViYTAwMjg1OTdjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTU1LDcgKzU1LDcg
QEAgdXNpbmcgUnVuTG9vcE1vZGUgPSB1bnNpZ25lZDsKICNkZWZpbmUgRGVmYXVsdFJ1bkxvb3BN
b2RlIDAKICNlbmRpZgogCi1jbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hl
ciB7CitjbGFzcyBSdW5Mb29wIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUnVuTG9vcCk7CiBwdWJsaWM6CiAgICAgLy8gTXVzdCBi
ZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgKGV4Y2VwdCBmb3IgdGhlIE1hYyBwbGF0Zm9y
bSwgd2hlcmUgaXQKQEAgLTY1LDkgKzY1LDkgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgUnVuTG9vcCYgY3VycmVudCgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgUnVuTG9vcCYgbWFpbigpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9v
bCBpc01haW4oKTsKLSAgICB+UnVuTG9vcCgpOworICAgIH5SdW5Mb29wKCkgZmluYWw7CiAKLSAg
ICB2b2lkIGRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQoKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOwogCiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyB2b2lkIHJ1bigpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0b3Ao
KTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogI2lmIFVTRShXSU5ET1dT
X0VWRU5UX0xPT1ApCi0gICAgY2xhc3MgRGlzcGF0Y2hUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ug
eworICAgIGNsYXNzIERpc3BhdGNoVGltZXIgZmluYWwgOiBwdWJsaWMgVGltZXJCYXNlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIERpc3BhdGNoVGltZXIoUnVuTG9vcCYgcnVuTG9vcCkKICAgICAg
ICAgICAgIDogVGltZXJCYXNlKHJ1bkxvb3ApCkBAIC0xODksNyArMTg5LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgbV9mdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOwogICAgICAgICB9CiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBmaXJlZCgpIG92ZXJyaWRlIHsgbV9mdW5jdGlvbigp
OyB9CisgICAgICAgIHZvaWQgZmlyZWQoKSBmaW5hbCB7IG1fZnVuY3Rpb24oKTsgfQogCiAgICAg
ICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvU2hhcmVkVGFzay5oIGIvU291cmNlL1dURi93dGYvU2hhcmVkVGFzay5oCmlu
ZGV4IDlmZmJmZmU4YWI3Y2IyZTI0YWZkM2ZhMjI4MzU1M2E5MTIxMzlkMGIuLjI4NWVkMmQ4N2Qw
N2M0YWEyM2IyYWZkMTQyYjdjNGY1ZGRjZGU0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1NoYXJlZFRhc2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TaGFyZWRUYXNrLmgKQEAgLTczLDcg
KzczLDcgQEAgcHVibGljOgogLy8geW91IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgY2xhc3MgZGly
ZWN0bHkuIFVzZSBjcmVhdGVTaGFyZWRUYXNrKCkgaW5zdGVhZC4KIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgRnVuY3Rvcj4gY2xhc3MgU2hhcmVkVGFza0Z1bmN0b3I7
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXN1bHRUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudFR5cGVz
LCB0eXBlbmFtZSBGdW5jdG9yPgotY2xhc3MgU2hhcmVkVGFza0Z1bmN0b3I8UmVzdWx0VHlwZSAo
QXJndW1lbnRUeXBlcy4uLiksIEZ1bmN0b3I+IDogcHVibGljIFNoYXJlZFRhc2s8UmVzdWx0VHlw
ZSAoQXJndW1lbnRUeXBlcy4uLik+IHsKK2NsYXNzIFNoYXJlZFRhc2tGdW5jdG9yPFJlc3VsdFR5
cGUoQXJndW1lbnRUeXBlcy4uLiksIEZ1bmN0b3I+IGZpbmFsIDogcHVibGljIFNoYXJlZFRhc2s8
UmVzdWx0VHlwZShBcmd1bWVudFR5cGVzLi4uKT4gewogcHVibGljOgogICAgIFNoYXJlZFRhc2tG
dW5jdG9yKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCiAgICAgICAgIDogbV9mdW5jdG9yKGZ1bmN0
b3IpCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVz
dWx0VHlwZSBydW4oQXJndW1lbnRUeXBlcy4uLiBhcmd1bWVudHMpIG92ZXJyaWRlCisgICAgUmVz
dWx0VHlwZSBydW4oQXJndW1lbnRUeXBlcy4uLiBhcmd1bWVudHMpIGZpbmFsCiAgICAgewogICAg
ICAgICByZXR1cm4gbV9mdW5jdG9yKHN0ZDo6Zm9yd2FyZDxBcmd1bWVudFR5cGVzPihhcmd1bWVu
dHMpLi4uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0
cmVhbS5oIGIvU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAppbmRleCA2NWVlNGQ2
MjczZDQyZWJjNmVmNTdmNDE1OGVjMDQ1ODc5N2Q2ZTU0Li4zNjI1ZWFiNWYxYWFmMTEwOWUwNTNj
YmQxYTFiNTIxMjc4MWZjNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgKQEAgLTMx
LDEyICszMSwxMiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgU3RyaW5nUHJpbnRTdHJl
YW0gOiBwdWJsaWMgUHJpbnRTdHJlYW0geworY2xhc3MgU3RyaW5nUHJpbnRTdHJlYW0gZmluYWwg
OiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBT
dHJpbmdQcmludFN0cmVhbSgpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5TdHJp
bmdQcmludFN0cmVhbSgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB+U3RyaW5nUHJpbnRTdHJl
YW0oKSBmaW5hbDsKICAgICAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB2cHJpbnRmKGNv
bnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgb3ZlcnJpZGUgV1RGX0FUVFJJQlVURV9QUklOVEYo
MiwgMCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBm
b3JtYXQsIHZhX2xpc3QpIGZpbmFsIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwogCiAgICAg
c2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dDsgfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUu
aAppbmRleCAyOTIyZmRmYjhkODRiZThkMTVmMWU2YjQzNGE3ODAxMjQxZmI4MDc0Li40OTY1OWRi
YTk5OTUxYmZjY2M0ZGM4YTAwNGU1MzMyNTEzNzEwYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtNTYs
OSArNTYsOSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgUmVmPFdvcmtRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgPSBUeXBlOjpT
ZXJpYWwsIFFPUyA9IFFPUzo6RGVmYXVsdCk7Ci0gICAgdmlydHVhbCB+V29ya1F1ZXVlKCk7Cisg
ICAgfldvcmtRdWV1ZSgpIGZpbmFsOwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlz
cGF0Y2goRnVuY3Rpb248dm9pZCgpPiYmKSBvdmVycmlkZTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoQWZ0ZXIoU2Vjb25kcywgRnVuY3Rpb248dm9pZCgpPiYm
KTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjb25jdXJyZW50QXBwbHko
c2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVuY3Rpb248dm9pZChzaXplX3QgaW5kZXgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwIGIvU291cmNlL1dURi93
dGYvV29ya2VyUG9vbC5jcHAKaW5kZXggODU3ODAzZWQ3OTA4OTFlOGFlMjAwYTNhZmM4MDlmMjY5
MzgzZGY2NC4uY2I2YWNmZDk2YmY3MWFmYTZlZGY2MTk5ZWYzYWY2MTYwYWEwOTkwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
V29ya2VyUG9vbC5jcHAKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV9wb29sLnNob3VsZFNsZWVwKGxvY2tlcik7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFt
ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAg
ICAgewogICAgICAgICByZXR1cm4gbV9wb29sLm5hbWUoKTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399106</attachid>
            <date>2020-05-12 00:10:55 -0700</date>
            <delta_ts>2020-05-12 12:13:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211772-20200512001054.patch</filename>
            <type>text/plain</type>
            <size>194964</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YWNmNzU3NGYyMDNhMTIzNjc3NjA4MDJiNzdmY2Y2Mzk1MTVhN2MxLi45NjYyNjU2NTRhYjM5MWI5
OGRlYzJiODFiODgxMzQ0ZDkyMDNkNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDIgQEAKKzIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgorCisgICAgICAgIEZpeCBleGlzdGluZyB1c2FnZSBvZiBmaW5hbC9vdmVycmlkZS92
aXJ0dWFsIGluIEpTQyBhbmQgV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTE3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEFQSS9KU0FQSVdyYXBwZXJPYmplY3QubW06CisgICAgICAgICogQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFNvdXJjZVByb3ZpZGVy
Lmg6CisgICAgICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAqIEFQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogQVBJL2dsaWIv
SlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHA6CisgICAgICAgICogQVBJL2dsaWIvSlNDV2Vha1Zh
bHVlLmNwcDoKKyAgICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHA6
CisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaDoKKyAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29kZS9WYXJpYWJsZVdyaXRl
RmlyZURldGFpbC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1dhdGNocG9pbnQuaDoKKyAgICAgICAg
KiBkZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50Lmg6CisgICAg
ICAgICogZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcv
REZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAg
ICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgICogZGZnL0RGR1NuaXBwZXRQ
YXJhbXMuaDoKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAqIGZ0bC9G
VExTbmlwcGV0UGFyYW1zLmg6CisgICAgICAgICogaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHA6Cisg
ICAgICAgICogaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgor
ICAgICAgICAqIGhlYXAvSXNvQ2VsbFNldC5jcHA6CisgICAgICAgICogaGVhcC9Jc29DZWxsU2V0
SW5saW5lcy5oOgorICAgICAgICAqIGhlYXAvSXNvSGVhcENlbGxUeXBlLmg6CisgICAgICAgICog
aGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmg6CisgICAgICAgICogaGVhcC9QYXJhbGxlbFNv
dXJjZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmg6Cisg
ICAgICAgICogaGVhcC9TdWJzcGFjZS5jcHA6CisgICAgICAgICogaGVhcC9TdWJzcGFjZUlubGlu
ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JT
Y3JpcHRQcm9maWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JUYXJnZXRBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RBdWRpdEFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dERlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVDb25uZWN0aW9uVG9UYXJnZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3Rvci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3Bw
X2dlbmVyYXRvcl90ZW1wbGF0ZXMucHk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgt
bWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1k
ZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24t
cmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlLW1hdGNoaW5n
LWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJl
c3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5q
c29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4
cGVjdGVkL2V2ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpz
b24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9u
cy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBqaXQvSklUV29ya2xp
c3QuY3BwOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0YVZpZXcuaDoKKyAgICAgICAgKiBy
dW50aW1lL0RvdWJsZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAqIHJ1bnRpbWUv
RmlsZUJhc2VkRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFy
cmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNNaWNyb3Rhc2suY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvTmFycm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50Lmg6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50Lmg6CisgICAg
ICAgICogcnVudGltZS9Qcm9taXNlVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1JhbmRvbWl6
aW5nRnV6emVyQWdlbnQuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENhY2hlLmg6CisgICAg
ICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
UmFyZURhdGEuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwcy5jcHA6CisgICAgICAgICog
cnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uaDoKKyAg
ICAgICAgKiB3YXNtL1dhc21DYWxsZWUuaDoKKyAgICAgICAgKiB3YXNtL1dhc21MTEludFBsYW4u
aDoKKyAgICAgICAgKiB3YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uaDoKKyAgICAgICAgKiB3
YXNtL1dhc21PTUdQbGFuLmg6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAg
ICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisKIDIwMjAtMDUtMTEgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5XSBSdW4gbW9kZXJu
aXplLXVzZS1vdmVycmlkZSBvdmVyIEpTQywgdGhlbiBlbnN1cmUgYXMgbXVjaCBhcyBwb3NzaWJs
ZSBpcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCBjNDhhZDJkMDg4MjgwNTFlZGMyZDBkZjM4NTRmMGEwMDQzMGY1MDY3
Li4yMzBiODVhMmViNzdkMWFmODI4YjBjMjkxZjRmYTJkYjA1MjFlMzQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDIwLTA1LTExICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KKworICAgICAgICBGaXggZXhpc3RpbmcgdXNhZ2Ugb2YgZmluYWwvb3ZlcnJpZGUvdmlydHVh
bCBpbiBKU0MgYW5kIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjExNzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0V4cGVjdGVkLmg6
CisgICAgICAgICogd3RmL0ZpbGVQcmludFN0cmVhbS5oOgorICAgICAgICAqIHd0Zi9KU09OVmFs
dWVzLmg6CisgICAgICAgICogd3RmL0xvY2tlZFByaW50U3RyZWFtLmg6CisgICAgICAgICogd3Rm
L09TTG9nUHJpbnRTdHJlYW0uaDoKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cDoKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9TaGFyZWRUYXNrLmg6
CisgICAgICAgICogd3RmL1N0cmluZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1dvcmtR
dWV1ZS5oOgorICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmNwcDoKKwogMjAyMC0wNS0xMSAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW2JtYWxsb2Nd
W1dURl0gQWRkIGNvbXB1dGluZyBtZW1vcnkgc2l6ZSBpbXBsZW1lbnRhdGlvbiBmb3IgRnJlZUJT
RApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpp
bmRleCA5MWJjY2E1NGViOGE0NDcyYTI3ZDhjYWJjNjIzMjhmNWY3ODc2MTQyLi5lMjlmYWY5Zjhj
ZWRjYTc2ZWRhY2UzMmFmZDAxNGNkZTBhZjUyNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbQpAQCAtMzQsMTAgKzM0LDEwIEBACiAKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogCi1jbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJP
YmplY3RIYW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
Kikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29u
c3QgY2hhcioqKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqKSBmaW5hbDsKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopIGZpbmFsOwogfTsKIAogc3RhdGljIEpTQVBJV3JhcHBlck9i
amVjdEhhbmRsZU93bmVyKiBqc0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQppbmRleCA2M2Q2NDkyYzJkZTQ5
YmNjNjcwNGQ3MDY3NWFiYmU4NzdmZDRkZWY3Li5jMTg3MzdiZjg3NmI2ZGQ1MjBhMzM3Mjk0Yjlj
MjIzOTI3NTk5OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFu
YWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFs
dWUubW0KQEAgLTM5LDEwICszOSwxMCBAQAogI2ltcG9ydCAiSlNDSW5saW5lcy5oIgogI2ltcG9y
dCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLWNsYXNzIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNNYW5hZ2VkVmFsdWVI
YW5kbGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6
Ci0gICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU01h
bmFnZWRWYWx1ZUhhbmRsZU93bmVyJiBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0U291cmNlUHJvdmlkZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4
IDA5ZTQwMThkZDhkMjM0OTNiZmRkMzlmYTA0M2VkODM4NWRjODQyMGYuLjY3N2I3YTA5Y2VjNzlm
Y2E5NDQyNzdmNjQ4MmE3M2Y4MjliMmZmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNTY3JpcHRTb3VyY2VQcm92aWRlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBj
bGFzcyBKU1NjcmlwdDsKIAotY2xhc3MgSlNTY3JpcHRTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBK
U0M6OlNvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIEpTU2NyaXB0U291cmNlUHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgSlNDOjpTb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUuLi4gQXJncz4KICAgICBzdGF0aWMgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IGNy
ZWF0ZShKU1NjcmlwdCAqc2NyaXB0LCBBcmdzJiYuLi4gYXJncykKQEAgLTM3LDkgKzM3LDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU1NjcmlwdFNvdXJjZVByb3Zp
ZGVyKHNjcmlwdCwgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAgfQogCi0gICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0cmluZ1ZpZXcgc291cmNlKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPEpTQzo6Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5
dGVjb2RlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZpbmFs
OworICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPEpTQzo6
Q2FjaGVkQnl0ZWNvZGU+IGNhY2hlZEJ5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCmluZGV4IDExNWU1MWQ0OGYwMDI5OWVh
NjNkYzc1NDAwNjc5ODJjM2QyYzAwNGIuLjc0NTRmOThiNDA5NzE5NTlmYTU5MTVjOTY0NjlkZGFj
MjIyY2YxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJh
Y2tGdW5jdGlvbi5tbQpAQCAtNTUsOCArNTUsOCBAQCBDYWxsYmFja0FyZ3VtZW50Ojp+Q2FsbGJh
Y2tBcmd1bWVudCgpCiB7CiB9CiAKLWNsYXNzIENhbGxiYWNrQXJndW1lbnRCb29sZWFuIDogcHVi
bGljIENhbGxiYWNrQXJndW1lbnQgewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2Nh
dGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFs
dWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqKSBvdmVycmlkZQorY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudEJvb2xlYW4gZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBz
ZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpT
Q29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIGZpbmFs
CiAgICAgewogICAgICAgICBib29sIHZhbHVlID0gSlNWYWx1ZVRvQm9vbGVhbihbY29udGV4dCBK
U0dsb2JhbENvbnRleHRSZWZdLCBhcmd1bWVudCk7CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFy
Z3VtZW50OiZ2YWx1ZSBhdEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKQEAgLTY0LDggKzY0LDggQEAg
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7
CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9u
ICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4
dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBvdmVycmlkZQor
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVnZXIgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1
bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIg
YXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2Vw
dGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIFQgdmFsdWUgPSAoVClKU0M6OnRvSW50MzIo
SlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0sIGFyZ3VtZW50LCBl
eGNlcHRpb24pKTsKQEAgLTc2LDggKzc2LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEludGVn
ZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudERvdWJsZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50
IHsKLSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1
bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50RG91Ymxl
IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52b2Nh
dGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNv
bnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmluYWwK
ICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAgICAg
ICBUIHZhbHVlID0gKFQpSlNWYWx1ZVRvTnVtYmVyKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJl
Zl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtODcsMjMgKzg3LDIzIEBAIGNsYXNzIENhbGxi
YWNrQXJndW1lbnREb3VibGUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsK
IAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudEpTVmFsdWUgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVu
dCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJn
dW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNW
YWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50SlNWYWx1ZSBmaW5hbCA6
IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmlu
dm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBK
U1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIEpT
VmFsdWUgKnZhbHVlID0gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjphcmd1bWVudCBpbkNv
bnRleHQ6Y29udGV4dF07CiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50OiZ2YWx1ZSBh
dEluZGV4OmFyZ3VtZW50TnVtYmVyXTsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja0FyZ3Vt
ZW50SWQgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7Ci0gICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitjbGFzcyBD
YWxsYmFja0FyZ3VtZW50SWQgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAg
dm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1i
ZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiop
IGZpbmFsCiAgICAgewogICAgICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9PYmplY3QoY29udGV4dCwg
YXJndW1lbnQpOwogICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomdmFsdWUgYXRJbmRl
eDphcmd1bWVudE51bWJlcl07CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudE9m
Q2xhc3MgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CitjbGFzcyBDYWxsYmFja0FyZ3VtZW50
T2ZDbGFzcyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKIHB1YmxpYzoKICAgICBD
YWxsYmFja0FyZ3VtZW50T2ZDbGFzcyhDbGFzcyBjbHMpCiAgICAgICAgIDogbV9jbGFzcyhjbHMp
CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lk
IHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pIG92ZXJyaWRlCisgICAgdm9pZCBzZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBO
U0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiBh
cmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNT
RVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiBjb250ZXh0UmVmID0gW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXTsKQEAgLTEzNCw4ICsx
MzQsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDbGFzcz4gbV9jbGFzczsKIH07CiAKLWNs
YXNzIENhbGxiYWNrQXJndW1lbnROU051bWJlciA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNOdW1iZXIg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb051bWJlcihbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBh
cmd1bWVudCwgZXhjZXB0aW9uKTsKQEAgLTE0NSw4ICsxNDUsOCBAQCBjbGFzcyBDYWxsYmFja0Fy
Z3VtZW50TlNOdW1iZXIgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAot
Y2xhc3MgQ2FsbGJhY2tBcmd1bWVudE5TU3RyaW5nIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU1N0cmlu
ZyBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9j
YXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpj
b250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAg
ICAgaWQgdmFsdWUgPSB2YWx1ZVRvU3RyaW5nKFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0s
IGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTU2LDggKzE1Niw4IEBAIGNsYXNzIENhbGxiYWNr
QXJndW1lbnROU1N0cmluZyA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9Owog
Ci1jbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEYXRlIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQg
ewotICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3Vt
ZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNrQXJndW1lbnROU0RhdGUg
ZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CisgICAgdm9pZCBzZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBOU0ludGVnZXIgYXJndW1lbnROdW1iZXIsIEpTQ29udGV4dCAqY29u
dGV4dCwgSlNWYWx1ZVJlZiBhcmd1bWVudCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBmaW5hbAog
ICAgIHsKICAgICAgICAgQVNTRVJUKGV4Y2VwdGlvbiAmJiAhKmV4Y2VwdGlvbik7CiAgICAgICAg
IGlkIHZhbHVlID0gdmFsdWVUb0RhdGUoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJn
dW1lbnQsIGV4Y2VwdGlvbik7CkBAIC0xNjcsOCArMTY3LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1
bWVudE5TRGF0ZSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKICAgICB9CiB9OwogCi1jbGFz
cyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKLSAg
ICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51
bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNBcnJheSBmaW5h
bCA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsKKyAgICB2b2lkIHNldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVudE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0
LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIGZpbmFsCiAgICAg
ewogICAgICAgICBBU1NFUlQoZXhjZXB0aW9uICYmICEqZXhjZXB0aW9uKTsKICAgICAgICAgaWQg
dmFsdWUgPSB2YWx1ZVRvQXJyYXkoW2NvbnRleHQgSlNHbG9iYWxDb250ZXh0UmVmXSwgYXJndW1l
bnQsIGV4Y2VwdGlvbik7CkBAIC0xNzgsOCArMTc4LDggQEAgY2xhc3MgQ2FsbGJhY2tBcmd1bWVu
dE5TQXJyYXkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAgICAgfQogfTsKIAotY2xhc3Mg
Q2FsbGJhY2tBcmd1bWVudE5TRGljdGlvbmFyeSA6IHB1YmxpYyBDYWxsYmFja0FyZ3VtZW50IHsK
LSAgICB2b2lkIHNldChOU0ludm9jYXRpb24gKmludm9jYXRpb24sIE5TSW50ZWdlciBhcmd1bWVu
dE51bWJlciwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmIGFyZ3VtZW50LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIG92ZXJyaWRlCitjbGFzcyBDYWxsYmFja0FyZ3VtZW50TlNEaWN0aW9u
YXJ5IGZpbmFsIDogcHVibGljIENhbGxiYWNrQXJndW1lbnQgeworICAgIHZvaWQgc2V0KE5TSW52
b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgZmlu
YWwKICAgICB7CiAgICAgICAgIEFTU0VSVChleGNlcHRpb24gJiYgISpleGNlcHRpb24pOwogICAg
ICAgICBpZCB2YWx1ZSA9IHZhbHVlVG9EaWN0aW9uYXJ5KFtjb250ZXh0IEpTR2xvYmFsQ29udGV4
dFJlZl0sIGFyZ3VtZW50LCBleGNlcHRpb24pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIGNsYXNzIENh
bGxiYWNrQXJndW1lbnROU0RpY3Rpb25hcnkgOiBwdWJsaWMgQ2FsbGJhY2tBcmd1bWVudCB7CiAg
ICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdCA6IHB1YmxpYyBDYWxsYmFj
a0FyZ3VtZW50IHsKK2NsYXNzIENhbGxiYWNrQXJndW1lbnRTdHJ1Y3QgZmluYWwgOiBwdWJsaWMg
Q2FsbGJhY2tBcmd1bWVudCB7CiBwdWJsaWM6CiAgICAgQ2FsbGJhY2tBcmd1bWVudFN0cnVjdChO
U0ludm9jYXRpb24gKmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlw
ZSkKICAgICAgICAgOiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9u
KQpAQCAtMTk4LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRlZ2VyIGFyZ3VtZW50TnVt
YmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1lbnQsIEpTVmFsdWVSZWYq
KSBvdmVycmlkZQorICAgIHZvaWQgc2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNJbnRl
Z2VyIGFyZ3VtZW50TnVtYmVyLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYgYXJndW1l
bnQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgSlNWYWx1ZSAqdmFsdWUgPSBb
SlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmFyZ3VtZW50IGluQ29udGV4dDpjb250ZXh0XTsK
ICAgICAgICAgW21fY29udmVyc2lvbkludm9jYXRpb24gaW52b2tlV2l0aFRhcmdldDp2YWx1ZV07
CkBAIC0yMTAsNyArMjEwLDcgQEAgcHJpdmF0ZToKICAgICBTdHJ1Y3RCdWZmZXIgbV9idWZmZXI7
CiB9OwogCi1jbGFzcyBBcmd1bWVudFR5cGVEZWxlZ2F0ZSB7CitjbGFzcyBBcmd1bWVudFR5cGVE
ZWxlZ2F0ZSBmaW5hbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8Q2Fs
bGJhY2tBcmd1bWVudD4gUmVzdWx0VHlwZTsKIApAQCAtMjg5LDE1ICsyODksMTUgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICosIEpTQ29udGV4dCAq
LCBKU1ZhbHVlUmVmKikgPSAwOwogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRWb2lkIDogcHVi
bGljIENhbGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKiwg
SlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJpZGUKK2NsYXNzIENhbGxiYWNr
UmVzdWx0Vm9pZCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CisgICAgSlNWYWx1ZVJl
ZiBnZXQoTlNJbnZvY2F0aW9uICosIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoW2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSk7CiAgICAgfQogfTsKIAotY2xhc3MgQ2FsbGJhY2tSZXN1bHRJ
ZCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7Ci0gICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0
aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQsIEpTVmFsdWVSZWYqKSBvdmVycmlk
ZQorY2xhc3MgQ2FsbGJhY2tSZXN1bHRJZCBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7
CisgICAgSlNWYWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQg
KmNvbnRleHQsIEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgaWQgdmFsdWU7CiAg
ICAgICAgIFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMDYsOCArMzA2
LDggQEAgY2xhc3MgQ2FsbGJhY2tSZXN1bHRJZCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIDog
cHVibGljIENhbGxiYWNrUmVzdWx0IHsKLSAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24g
Kmludm9jYXRpb24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIG92ZXJyaWRlCitj
bGFzcyBDYWxsYmFja1Jlc3VsdE51bWVyaWMgZmluYWwgOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQg
eworICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0
ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgZmluYWwKICAgICB7CiAgICAgICAgIFQgdmFsdWU7CiAg
ICAgICAgIFtpbnZvY2F0aW9uIGdldFJldHVyblZhbHVlOiZ2YWx1ZV07CkBAIC0zMTUsOCArMzE1
LDggQEAgY2xhc3MgQ2FsbGJhY2tSZXN1bHROdW1lcmljIDogcHVibGljIENhbGxiYWNrUmVzdWx0
IHsKICAgICB9CiB9OwogCi1jbGFzcyBDYWxsYmFja1Jlc3VsdEJvb2xlYW4gOiBwdWJsaWMgQ2Fs
bGJhY2tSZXN1bHQgewotICAgIEpTVmFsdWVSZWYgZ2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlv
biwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVlUmVmKikgb3ZlcnJpZGUKK2NsYXNzIENhbGxi
YWNrUmVzdWx0Qm9vbGVhbiBmaW5hbCA6IHB1YmxpYyBDYWxsYmFja1Jlc3VsdCB7CisgICAgSlNW
YWx1ZVJlZiBnZXQoTlNJbnZvY2F0aW9uICppbnZvY2F0aW9uLCBKU0NvbnRleHQgKmNvbnRleHQs
IEpTVmFsdWVSZWYqKSBmaW5hbAogICAgIHsKICAgICAgICAgYm9vbCB2YWx1ZTsKICAgICAgICAg
W2ludm9jYXRpb24gZ2V0UmV0dXJuVmFsdWU6JnZhbHVlXTsKQEAgLTMyNCw3ICszMjQsNyBAQCBj
bGFzcyBDYWxsYmFja1Jlc3VsdEJvb2xlYW4gOiBwdWJsaWMgQ2FsbGJhY2tSZXN1bHQgewogICAg
IH0KIH07CiAKLWNsYXNzIENhbGxiYWNrUmVzdWx0U3RydWN0IDogcHVibGljIENhbGxiYWNrUmVz
dWx0IHsKK2NsYXNzIENhbGxiYWNrUmVzdWx0U3RydWN0IGZpbmFsIDogcHVibGljIENhbGxiYWNr
UmVzdWx0IHsKIHB1YmxpYzoKICAgICBDYWxsYmFja1Jlc3VsdFN0cnVjdChOU0ludm9jYXRpb24g
KmNvbnZlcnNpb25JbnZvY2F0aW9uLCBjb25zdCBjaGFyKiBlbmNvZGVkVHlwZSkKICAgICAgICAg
OiBtX2NvbnZlcnNpb25JbnZvY2F0aW9uKGNvbnZlcnNpb25JbnZvY2F0aW9uKQpAQCAtMzMzLDcg
KzMzMyw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEpTVmFsdWVSZWYg
Z2V0KE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgSlNDb250ZXh0ICpjb250ZXh0LCBKU1ZhbHVl
UmVmKikgb3ZlcnJpZGUKKyAgICBKU1ZhbHVlUmVmIGdldChOU0ludm9jYXRpb24gKmludm9jYXRp
b24sIEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZVJlZiopIGZpbmFsCiAgICAgewogICAgICAg
ICBbaW52b2NhdGlvbiBnZXRSZXR1cm5WYWx1ZTptX2J1ZmZlcl07CiAKQEAgLTM1MCw3ICszNTAs
NyBAQCBwcml2YXRlOgogICAgIFN0cnVjdEJ1ZmZlciBtX2J1ZmZlcjsKIH07CiAKLWNsYXNzIFJl
c3VsdFR5cGVEZWxlZ2F0ZSB7CitjbGFzcyBSZXN1bHRUeXBlRGVsZWdhdGUgZmluYWwgewogcHVi
bGljOgogICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPENhbGxiYWNrUmVzdWx0PiBSZXN1bHRU
eXBlOwogCkBAIC00MDksNyArNDA5LDcgQEAgZW51bSBDYWxsYmFja1R5cGUgewogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsIHsKK2NsYXNzIE9iakND
YWxsYmFja0Z1bmN0aW9uSW1wbCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsKE5TSW52b2NhdGlvbiAqaW52
b2NhdGlvbiwgQ2FsbGJhY2tUeXBlIHR5cGUsIENsYXNzIGluc3RhbmNlQ2xhc3MsIHN0ZDo6dW5p
cXVlX3B0cjxDYWxsYmFja0FyZ3VtZW50PiBhcmd1bWVudHMsIHN0ZDo6dW5pcXVlX3B0cjxDYWxs
YmFja1Jlc3VsdD4gcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcAppbmRleCBlMmI2NTkyOTIy
MDc1MGNiYWRjOGUzNDJhZDE3ODFiMTlmMjE2ZDM5Li5kOGFmZTgwOGYxMTAyNjM0YmNjMDkwNWRm
NzQzZTJjZTc4ZmYxZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0LmNwcApAQCAtMzEsOSArMzEsOSBA
QAogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCi1jbGFzcyBKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5kbGVPd25lciA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CitjbGFzcyBKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RIYW5k
bGVPd25lciBmaW5hbCA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0g
ICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikg
ZmluYWw7CiB9OwogCiBzdGF0aWMgSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0SGFuZGxlT3duZXIq
IGpzQVBJV3JhcHBlckdsb2JhbE9iamVjdEhhbmRsZU93bmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcApp
bmRleCBlYTM0MTIzNjczYTEzM2MwMTkzOWFmNjU2Nzk4NzJhN2U3OTFkYTk4Li4yMzM0YTFiNTdm
MjllYzIwZjQ5YjkxOWQyMTQ5ZDFiN2U4MDAxZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCkBAIC0z
MywxMCArMzMsMTAgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAotY2xhc3MgSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNBUElXcmFwcGVyT2JqZWN0SGFu
ZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgot
ICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCopIG92ZXJy
aWRlOwotICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIq
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKikgZmluYWw7CisgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwg
Y29uc3QgY2hhcioqKSBmaW5hbDsKIH07CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5k
bGVPd25lcioganNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1dlYWtWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDV2Vha1ZhbHVlLmNwcAppbmRleCBlNWMwNGVjNzg1ZTEz
NzU0MTIzMmQyZWRmNWJiZDk1NmE4ZTlhMGJiLi5kZjk3OTliZTg4YmRjM2VhZWQwOWFiMWUwYjQ0
NDE0OGYwMDhkZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDV2Vha1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlND
V2Vha1ZhbHVlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBqc2NXZWFrVmFsdWVD
bGVhcihKU0NXZWFrVmFsdWUqIHdlYWtWYWx1ZSkKICAgICBwcml2LT53ZWFrVmFsdWVSZWYuY2xl
YXIoKTsKIH0KIAotY2xhc3MgSlNDV2Vha1ZhbHVlSGFuZGxlT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgeworY2xhc3MgSlNDV2Vha1ZhbHVlSGFuZGxlT3duZXIgZmluYWwgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZvaWQgZmluYWxpemUo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGUKKyAgICB2
b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZp
bmFsCiAgICAgewogICAgICAgICBhdXRvKiB3ZWFrVmFsdWUgPSBKU0NfV0VBS19WQUxVRShjb250
ZXh0KTsKICAgICAgICAganNjV2Vha1ZhbHVlQ2xlYXIod2Vha1ZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuY3BwCmluZGV4IDY5YjVlZTEwNmIyZTgxNzU1Nzc3OTcxYmUyNzE0YzRhMWE5OGNiYmMuLjhm
YjkxODNhZDFmMjIwMGI1NGQxZjU2MTVlNzU3N2ZhODY5MWUyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1z
LmNwcApAQCAtMzUsNyArMzUsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEp1bXBUeXBlLCB0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIFJlc3VsdFR5cGUs
IHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWNsYXNzIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcldpdGhB
cmd1bWVudHMgOiBwdWJsaWMgQWNjZXNzQ2FzZVNuaXBwZXRQYXJhbXM6OlNsb3dQYXRoQ2FsbEdl
bmVyYXRvciB7CitjbGFzcyBTbG93UGF0aENhbGxHZW5lcmF0b3JXaXRoQXJndW1lbnRzIGZpbmFs
IDogcHVibGljIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zOjpTbG93UGF0aENhbGxHZW5lcmF0b3Ig
ewogcHVibGljOgogICAgIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcldpdGhBcmd1bWVudHMoSnVtcFR5
cGUgZnJvbSwgQ0NhbGxIZWxwZXJzOjpMYWJlbCB0bywgRnVuY3Rpb25UeXBlIGZ1bmN0aW9uLCBS
ZXN1bHRUeXBlIHJlc3VsdCwgc3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+IGFyZ3VtZW50cykKICAg
ICAgICAgOiBtX2Zyb20oZnJvbSkKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uczsKICAgICB9CiAKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGdl
bmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBlcnMmIGppdCkgb3ZlcnJpZGUKKyAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzQnlTbmlwcGV0LCBDQ2FsbEhlbHBl
cnMmIGppdCkgZmluYWwKICAgICB7CiAgICAgICAgIG1fZnJvbS5saW5rKCZqaXQpOwogICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvbnMgPSBnZW5lcmF0ZUltcGwoc3RhdGUs
IHVzZWRSZWdpc3RlcnNCeVNuaXBwZXQsIGppdCwgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0
ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4oKSk7CkBAIC05
Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnM7CiAgICAgfQog
Ci1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIEp1bXBUeXBlIG1fZnJvbTsKICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIG1fdG87CiAgICAgRnVuY3Rpb25UeXBlIG1fZnVuY3Rpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZVNuaXBwZXRQYXJh
bXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBh
cmFtcy5oCmluZGV4IDJjMmJhNWY1NTBlZWE5MDQ2ODQ0ZWUyODkyNjA5OWZjNzc4OGQxYWMuLjIz
ZGQ3N2IwMjg3YWY2YTJkMjJjZTM5ODBhNmMzZGFmYjMwZWM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlU25pcHBldFBhcmFtcy5o
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBzdHJ1Y3QgQWNjZXNzR2VuZXJh
dGlvblN0YXRlOwogCi1jbGFzcyBBY2Nlc3NDYXNlU25pcHBldFBhcmFtcyA6IHB1YmxpYyBTbmlw
cGV0UGFyYW1zIHsKK2NsYXNzIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zIGZpbmFsIDogcHVibGlj
IFNuaXBwZXRQYXJhbXMgewogcHVibGljOgogICAgIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zKFZN
JiB2bSwgVmVjdG9yPFZhbHVlPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBW
ZWN0b3I8RlBSUmVnPiYmIGZwU2NyYXRjaCkKICAgICAgICAgOiBTbmlwcGV0UGFyYW1zKHZtLCBX
VEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSkKQEAg
LTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZW1pdFNs
b3dQYXRoQ2FsbHMoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnNCeVNuaXBwZXQsIENDYWxsSGVscGVycyYpOwogCiBwcml2YXRlOgotI2RlZmlu
ZSBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAu
Li4pIHZvaWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2Fs
bEhlbHBlcnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJH
U19fPiBhcmdzKSBvdmVycmlkZTsKKyNkZWZpbmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMo
T3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgLi4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwo
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0NhbGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVz
dWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FSR1NfXz4gYXJncykgZmluYWw7CiAgICAgU05JUFBF
VF9TTE9XX1BBVEhfQ0FMTFMoSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMpCiAjdW5kZWYgSlND
X0RFRklORV9DQUxMX09QRVJBVElPTlMKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQ
YXRoQ2FsbEdlbmVyYXRvcj4+IG1fZ2VuZXJhdG9yczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggODM0MDgyZDgyN2FlY2ZiZTQ3NmYxZWIwNTdi
MTg1OWVlOWFiNDJiYi4uNWFhN2RiNDQyMGVmZWI3YWUzMzRiYjM5MWUwMzFmMGQ5M2Q3N2U0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTI2
Niw3ICsyNjYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtJiBv
dXQsIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBjb25zdCBJQwogCiBuYW1lc3BhY2UgewogCi1j
bGFzcyBQdXRUb1Njb3BlRmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsKK2NsYXNzIFB1
dFRvU2NvcGVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwgewogcHVibGljOgog
ICAgIFB1dFRvU2NvcGVGaXJlRGV0YWlsKENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCkKICAgICAgICAgOiBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC0yNzQs
NyArMjc0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0IG92ZXJyaWRlCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBvdXQucHJpbnQoIkxpbmtpbmcgcHV0
X3RvX3Njb3BlIGluICIsIEZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAoanNDYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KG1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSkpLCAiIGZvciAiLCBtX2lk
ZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAppbmRleCBhZWIzNDU2
MjFmYmI2YjFjZmU2YzUyMmE3YjFkYzBhYzNiMmFjY2I0Li4yNzU0YjMxZWUxNmIzODhjZjE3MTU5
YTM2NjZlMGJiZTc1MDJjYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKQEAg
LTY0LDcgKzY0LDcgQEAgY2xhc3MgQWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dh
dGNocG9pbnQgZmluYWwgOiBwdWJsaWMgQWRhcHRpdmVJbmZlcnIKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShBZGFwdGl2ZVZhbHVlU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCk7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKLSAgICB2b2lkIGhhbmRsZUZpcmUoVk0mLCBj
b25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29u
c3QgRmlyZURldGFpbCYpIGZpbmFsOwogCiBwdWJsaWM6CiAgICAgQWRhcHRpdmVWYWx1ZVN0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24m
IGtleSwgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvJiBob2xkZXIpCkBAIC03OSw3ICs3
OSw3IEBAIHByaXZhdGU6CiAgICAgUGFja2VkUHRyPFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHVi
SW5mbz4gbV9ob2xkZXI7CiB9OwogCi1jbGFzcyBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1Yklu
Zm8geworY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvIGZpbmFsIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8pOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaAppbmRleCA0
MmZmYjFiNTk5ZjdiMTljMzM5ZTViODA5NTc4MjE4Yzg2ZGM3MjcwLi5iOGRkYmRjYjM2ZTRmYzg5
NzJiMWU2NWE5M2ZkNjUwNzJjZTAyNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTT2JqZWN0OwogY2xhc3MgUHJvcGVydHlOYW1l
OwogCi1jbGFzcyBWYXJpYWJsZVdyaXRlRmlyZURldGFpbCA6IHB1YmxpYyBGaXJlRGV0YWlsIHsK
K2NsYXNzIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwg
ewogcHVibGljOgogICAgIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsKEpTT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFByb3BlcnR5TmFtZSYgbmFtZSkKICAgICAgICAgOiBtX29iamVjdChvYmplY3QpCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAg
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHRvdWNoKFZNJiwgV2F0Y2hwb2lu
dFNldCosIEpTT2JqZWN0KiwgY29uc3QgUHJvcGVydHlOYW1lJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCmluZGV4IDUxYmNlMzgwMDM0ZTA1YjYxZmVl
NjI5ZWU2ODQxMTdlMDIyOTNhYjguLjc3YzZkZmMyZjA4ZDY4ZGNkMDIxNzMzMjgwMzFmYWJmNDFm
NTBhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBv
aW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApA
QCAtNTcsMjEgKzU3LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0ID0gMDsKIH07CiAKLWNsYXNzIFN0cmluZ0ZpcmVEZXRhaWwgOiBwdWJsaWMg
RmlyZURldGFpbCB7CitjbGFzcyBTdHJpbmdGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVE
ZXRhaWwgewogcHVibGljOgogICAgIFN0cmluZ0ZpcmVEZXRhaWwoY29uc3QgY2hhciogc3RyaW5n
KQogICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgY2hh
ciogbV9zdHJpbmc7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KLWNsYXNzIExh
enlGaXJlRGV0YWlsIDogcHVibGljIEZpcmVEZXRhaWwgeworY2xhc3MgTGF6eUZpcmVEZXRhaWwg
ZmluYWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CiBwdWJsaWM6CiAgICAgTGF6eUZpcmVEZXRhaWwo
Y29uc3QgVHlwZXMmLi4uIGFyZ3MpCiAgICAgewpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIH0pOwogICAgIH0KIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dCBvdmVycmlkZSB7IG1fbGFtYmRhKG91dCk7IH0KKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QgZmluYWwgeyBtX2xhbWJkYShvdXQpOyB9CiAKIHByaXZhdGU6CiAgICAgU2Nv
cGVkTGFtYmRhPHZvaWQoUHJpbnRTdHJlYW0mKT4gbV9sYW1iZGE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0
Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2ZUluZmVycmVk
UHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuaAppbmRleCBkMTdlMTk4ZjczMDNlYWU3MGFhMDBhOGJl
MmYxMDNiMDM5NTY0NTZhLi4yNzc2ZDkxY2FiNWFlNzFiNTVhNzViNzU5YTFkMmYzMGMwZmJkNTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkYXB0aXZlSW5mZXJy
ZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmgKQEAgLTM3LDkg
KzM3LDkgQEAgcHVibGljOgogICAgIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hw
b2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYsIENvZGVCbG9jayopOwogCiBwcml2
YXRlOgotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURl
dGFpbCYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRmlyZShWTSYsIGNvbnN0IEZpcmVEZXRh
aWwmKSBmaW5hbDsKIAogICAgIENvZGVCbG9jayogbV9jb2RlQmxvY2s7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0
b3IuaAppbmRleCA1NWE5ODlkZTFiZjJhNmI5MGQ5ZjUyZjJlNjA5NzVmM2IwN2IxMTg1Li5lOTc4
YjZmODA4MDczMjgyZWZhYjRjMmFkOThmMTE1MTg0NGJiNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IuaApA
QCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNs
YXNzIEFycmF5aWZ5U2xvd1BhdGhHZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2Vu
ZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdD4geworY2xhc3MgQXJyYXlpZnlTbG93UGF0
aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQXJyYXlpZnlTbG93UGF0aEdlbmVy
YXRvcigKICAgICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBmcm9tLCBTcGVj
dWxhdGl2ZUpJVCogaml0LCBOb2RlKiBub2RlLCBHUFJSZWcgYmFzZUdQUiwKQEAgLTY4LDggKzY4
LDggQEAgcHVibGljOgogICAgICAgICBtX2JhZEluZGV4aW5nVHlwZUp1bXAgPSBqaXQtPnNwZWN1
bGF0aW9uQ2hlY2soQmFkSW5kZXhpbmdUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbCht
X2Jhc2VHUFIpLCBudWxscHRyKTsKICAgICB9CiAgICAgCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitwcml2YXRlOgor
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBmaW5hbAogICAg
IHsKICAgICAgICAgbGlua0Zyb20oaml0KTsKICAgICAgICAgCkBAIC0xMzIsOCArMTMyLDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAganVtcFRvKGppdCk7CiAgICAgfQotICAgIAot
cHJpdmF0ZToKKwogICAgIE5vZGVUeXBlIG1fb3A7CiAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBt
X3N0cnVjdHVyZTsKICAgICBBcnJheU1vZGUgbV9hcnJheU1vZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJh
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNs
b3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggZmVlZmVmYzZkOWE0ZTMzNGI1MGEwNzE1MmNkZjNjNGEz
MDJiOTc5OC4uMjNmZDQ1NDdjNTliOTJhOTM0Mzc0MmE1ODRmN2RkY2RmMjkxZjllYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93
UGF0aEdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFy
cmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIENhbGxBcnJheUFsbG9jYXRvclNs
b3dQYXRoR2VuZXJhdG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3Q+IHsKK2NsYXNzIENhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0
aEdlbmVyYXRvcigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZyb20sIFNwZWN1
bGF0aXZlSklUKiBqaXQsIFBfSklUT3BlcmF0aW9uX1ZtU3RaQiBmdW5jdGlvbiwKQEAgLTQ5LDgg
KzQ5LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1w
bChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAgICB9CiAKLXByb3RlY3RlZDoKLSAgICB2
b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZh
dGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFs
CiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAgLTYyLDggKzYyLDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBqaXQtPm1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9y
ZXN1bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSksIG1fc3RvcmFnZUdQUik7CiAg
ICAgICAgIGp1bXBUbyhqaXQpOwogICAgIH0KLSAgICAKLXByaXZhdGU6CisKICAgICBQX0pJVE9w
ZXJhdGlvbl9WbVN0WkIgbV9mdW5jdGlvbjsKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAg
R1BSUmVnIG1fc3RvcmFnZUdQUjsKQEAgLTcyLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8U2lsZW50UmVnaXN0ZXJTYXZlUGxhbiwgMj4gbV9wbGFuczsKIH07CiAKLWNsYXNzIENhbGxB
cnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVNpemVTbG93UGF0aEdlbmVyYXRvciA6IHB1YmxpYyBK
dW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0PiB7CitjbGFz
cyBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTaXplU2xvd1BhdGhHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1w
TGlzdD4gewogcHVibGljOgogICAgIENhbGxBcnJheUFsbG9jYXRvcldpdGhWYXJpYWJsZVNpemVT
bG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZyb20s
IFNwZWN1bGF0aXZlSklUKiBqaXQsIFBfSklUT3BlcmF0aW9uX0dTdFpCIGZ1bmN0aW9uLApAQCAt
ODksOCArODgsOCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3Rl
cnNJbXBsKGZhbHNlLCBtX3BsYW5zLCByZXN1bHRHUFIpOwogICAgIH0KIAotcHJvdGVjdGVkOgot
ICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQor
cHJpdmF0ZToKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkg
ZmluYWwKICAgICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpAQCAtMTExLDggKzExMCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgaml0LT5tX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICBq
dW1wVG8oaml0KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRPcGVyYXRpb25f
R1N0WkIgbV9mdW5jdGlvbjsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fY29udGlndW91c1N0
cnVjdHVyZTsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fYXJyYXlTdG9yYWdlT3JDb250aWd1
b3VzU3RydWN0dXJlOwpAQCAtMTIzLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFNp
bGVudFJlZ2lzdGVyU2F2ZVBsYW4sIDI+IG1fcGxhbnM7CiB9OwogCi1jbGFzcyBDYWxsQXJyYXlB
bGxvY2F0b3JXaXRoVmFyaWFibGVTdHJ1Y3R1cmVWYXJpYWJsZVNpemVTbG93UGF0aEdlbmVyYXRv
ciA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBM
aXN0PiB7CitjbGFzcyBDYWxsQXJyYXlBbGxvY2F0b3JXaXRoVmFyaWFibGVTdHJ1Y3R1cmVWYXJp
YWJsZVNpemVTbG93UGF0aEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhH
ZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0PiB7CiBwdWJsaWM6CiAgICAgQ2FsbEFy
cmF5QWxsb2NhdG9yV2l0aFZhcmlhYmxlU3RydWN0dXJlVmFyaWFibGVTaXplU2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9tLCBTcGVjdWxhdGl2
ZUpJVCogaml0LCBQX0pJVE9wZXJhdGlvbl9HU3RaQiBmdW5jdGlvbiwKQEAgLTEzOSw4ICsxMzcs
OCBAQCBwdWJsaWM6CiAgICAgICAgIGppdC0+c2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZh
bHNlLCBtX3BsYW5zLCByZXN1bHRHUFIpOwogICAgIH0KIAotcHJvdGVjdGVkOgotICAgIHZvaWQg
Z2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBvdmVycmlkZQorcHJpdmF0ZToK
KyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwKICAg
ICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpAQCAtMTUxLDggKzE0OSw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgaml0LT5tX2ppdC5leGNlcHRpb25DaGVjaygpOwogICAgICAgICBqdW1wVG8oaml0
KTsKICAgICB9Ci0gICAgCi1wcml2YXRlOgorCiAgICAgUF9KSVRPcGVyYXRpb25fR1N0WkIgbV9m
dW5jdGlvbjsKICAgICBHUFJSZWcgbV9yZXN1bHRHUFI7CiAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyIG1fZ2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Ns
b3dQYXRoR2VuZXJhdG9yLmgKaW5kZXggMGRkYjMwODA3MWEwMGJkOGU0NjZkNTA5NmYxNTJjZmI3
NjUyOTQ5Mi4uMzAyMDUwMzhkMmEzZDQ2MTg0YmM3NjZhMDA3YWRlNzdiMzM4ZDYyNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1l
bnRzU2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhbGxDcmVhdGVEaXJlY3RBcmd1bWVudHNTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0zNSw3ICsz
NSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIFRoaXMgY2FsbHMg
b3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzIGJ1dCB0aGVuIHJlc3RvcmVzIHRoZSB2YWx1
ZSBvZiBsZW5ndGhHUFIuCi1jbGFzcyBDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhH
ZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdD4geworY2xhc3MgQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3Q+IHsKIHB1YmxpYzoKICAgICBDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRz
U2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBmcm9t
LCBTcGVjdWxhdGl2ZUpJVCogaml0LCBHUFJSZWcgcmVzdWx0R1BSLCBSZWdpc3RlcmVkU3RydWN0
dXJlIHN0cnVjdHVyZSwKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogICAgICAgICBqaXQtPnNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgbV9wbGFucywgcmVzdWx0R1BSKTsKICAg
ICB9CiAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVK
SVQqIGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNw
ZWN1bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAg
LTY0LDggKzY0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MobV9yZXN1bHRHUFIsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSksIG1f
bGVuZ3RoR1BSKTsKICAgICAgICAganVtcFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToK
KwogICAgIEdQUlJlZyBtX3Jlc3VsdEdQUjsKICAgICBSZWdpc3RlcmVkU3RydWN0dXJlIG1fc3Ry
dWN0dXJlOwogICAgIEdQUlJlZyBtX2xlbmd0aEdQUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IuaAppbmRleCBiZGU2Njc2MGFjNGVkOGM2OWVhOTgzMGMwY2U2ZWFmMTNjMjRjNDk4
Li5mYWJjZTAxODJkZTkwMDI1M2YwZGYzZjBiZjJlOTMwMTg3YzBmZjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2Vu
ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0
QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRoR2VuZXJhdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wPiB7CitjbGFzcyBTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKdW1waW5nU2xvd1BhdGhHZW5lcmF0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXA+
IHsKIHB1YmxpYzoKICAgICBTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvcigKICAg
ICAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXAmIGZyb20sIFNwZWN1bGF0aXZlSklUKiBq
aXQsIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0ciBn
bG9iYWxPYmplY3QsIEdQUlJlZyBiYXNlUmVnLCBHUFJSZWcgcHJvcGVydHlSZWcpCkBAIC00Nyw4
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgaml0LT5zaWxlbnRTcGlsbEFsbFJlZ2lzdGVyc0lt
cGwoZmFsc2UsIG1fcGxhbnMsIGV4dHJhY3RSZXN1bHQocmVzdWx0UmVncykpOwogICAgIH0KICAg
ICAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQq
IGppdCkgb3ZlcnJpZGUKK3ByaXZhdGU6CisgICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1
bGF0aXZlSklUKiBqaXQpIGZpbmFsCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAg
ICAgICAKQEAgLTc3LDggKzc3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAKICAgICAgICAganVt
cFRvKGppdCk7CiAgICAgfQotICAgIAotcHJpdmF0ZToKKwogICAgIEpTVmFsdWVSZWdzIG1fcmVz
dWx0UmVnczsKICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIgbV9nbG9iYWxPYmplY3Q7
CiAgICAgR1BSUmVnIG1fYmFzZVJlZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2xvd1BhdGhHZW5lcmF0b3IuaAppbmRleCBmMWQzYjBiODcxNGJjMmExZDA1OWM4NDdmYTU1
YTIxZmMxYzNlMTU0Li45ODFlODZjZDdkZGIwMWNhNDk1NDNiNGU1Mzc2MDAxYmU4MTYwMTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5o
CkBAIC0xNTYsOCArMTU2LDcgQEAgcHJvdGVjdGVkOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
SnVtcFR5cGUsIHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgotY2xhc3MgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRo
R2VuZXJhdG9yCi0gICAgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBS
ZXN1bHRUeXBlPiB7CitjbGFzcyBDYWxsUmVzdWx0QW5kQXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgQ2FsbFNsb3dQYXRoR2VuZXJhdG9yPEp1bXBUeXBlLCBSZXN1bHRU
eXBlPiB7CiBwdWJsaWM6CiAgICAgQ2FsbFJlc3VsdEFuZEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJh
dG9yKAogICAgICAgICBKdW1wVHlwZSBmcm9tLCBTcGVjdWxhdGl2ZUpJVCogaml0LCBGdW5jdGlv
blR5cGUgZnVuY3Rpb24sCkBAIC0xNjgsNyArMTY3LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAgICAgdGVtcGxhdGU8c2l6ZV90Li4uIEFyZ3VtZW50
c0luZGV4PgogICAgIHZvaWQgdW5wYWNrQW5kR2VuZXJhdGUoU3BlY3VsYXRpdmVKSVQqIGppdCwg
c3RkOjppbmRleF9zZXF1ZW5jZTxBcmd1bWVudHNJbmRleC4uLj4pCiAgICAgewpAQCAtMTgwLDcg
KzE3OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+dGVhckRvd24oaml0KTsKICAgICB9
CiAKLSAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJp
ZGUKKyAgICB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgZmluYWwK
ICAgICB7CiAgICAgICAgIHVucGFja0FuZEdlbmVyYXRlKGppdCwgc3RkOjptYWtlX2luZGV4X3Nl
cXVlbmNlPHN0ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4o
KSk7CiAgICAgfQpAQCAtMjA5LDcgKzIwOCw3IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8U2xv
d1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoQ2FsbCgKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSnVt
cFR5cGUsIHR5cGVuYW1lIERlc3RpbmF0aW9uVHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZSwgdW5z
aWduZWQgbnVtYmVyT2ZBc3NpZ25tZW50cz4KLWNsYXNzIEFzc2lnbmluZ1Nsb3dQYXRoR2VuZXJh
dG9yIDogcHVibGljIEp1bXBpbmdTbG93UGF0aEdlbmVyYXRvcjxKdW1wVHlwZT4geworY2xhc3Mg
QXNzaWduaW5nU2xvd1BhdGhHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSnVtcGluZ1Nsb3dQYXRo
R2VuZXJhdG9yPEp1bXBUeXBlPiB7CiBwdWJsaWM6CiAgICAgQXNzaWduaW5nU2xvd1BhdGhHZW5l
cmF0b3IoCiAgICAgICAgIEp1bXBUeXBlIGZyb20sIFNwZWN1bGF0aXZlSklUKiBqaXQsCkBAIC0y
MjMsOCArMjIyLDggQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi1wcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCitw
cml2YXRlOgorICAgIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBm
aW5hbAogICAgIHsKICAgICAgICAgdGhpcy0+bGlua0Zyb20oaml0KTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbnVtYmVyT2ZBc3NpZ25tZW50czsgaS0tOykKQEAgLTIzMiw3ICsyMzEsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmp1bXBUbyhqaXQpOwogICAgIH0KIAotcHJpdmF0
ZToKICAgICBEZXN0aW5hdGlvblR5cGUgbV9kZXN0aW5hdGlvbltudW1iZXJPZkFzc2lnbm1lbnRz
XTsKICAgICBTb3VyY2VUeXBlIG1fc291cmNlW251bWJlck9mQXNzaWdubWVudHNdOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU25pcHBldFBhcmFtcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbmlwcGV0UGFyYW1zLmgKaW5kZXggNmFmMTQ2
MjI4YWI2OWQyZmVhMGVhZDllN2EyZWI3NTlmYmE5NDQxNC4uZTQyYzI3MGU0MDMzNzZjYjY1OTBi
M2FiODA5ZTk2NTVlMGMwMDdmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTbmlwcGV0UGFyYW1zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
bmlwcGV0UGFyYW1zLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogICAgIAogY2xhc3MgU3BlY3VsYXRpdmVKSVQ7CiAKLWNsYXNzIFNuaXBwZXRQYXJh
bXMgOiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKK2NsYXNzIFNuaXBwZXRQYXJhbXMgZmlu
YWwgOiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBTbmlwcGV0UGFy
YW1zKFNwZWN1bGF0aXZlSklUKiBqaXQsIFZlY3RvcjxWYWx1ZT4mJiByZWdzLCBWZWN0b3I8R1BS
UmVnPiYmIGdwU2NyYXRjaCwgVmVjdG9yPEZQUlJlZz4mJiBmcFNjcmF0Y2gpCiAgICAgICAgIDog
SlNDOjpTbmlwcGV0UGFyYW1zKGppdC0+dm0oKSwgV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNj
cmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0jZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKE9wZXJh
dGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBsKENDYWxs
SGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5
cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIG92ZXJyaWRlOworI2RlZmluZSBKU0Nf
REVGSU5FX0NBTExfT1BFUkFUSU9OUyhPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCAuLi4pIHZv
aWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0LCBDQ2FsbEhlbHBl
cnMmLCBPcGVyYXRpb25UeXBlLCBSZXN1bHRUeXBlLCBzdGQ6OnR1cGxlPF9fVkFfQVJHU19fPiBh
cmdzKSBmaW5hbDsKICAgICBTTklQUEVUX1NMT1dfUEFUSF9DQUxMUyhKU0NfREVGSU5FX0NBTExf
T1BFUkFUSU9OUykKICN1bmRlZiBKU0NfREVGSU5FX0NBTExfT1BFUkFUSU9OUwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDY3MjBlMjNlOTNlOTczNDI2
ODVlMWZiMWRhNzBhYjgxNTM0ZTIxYmYuLmJjZjBlNjlkOGEzMWI2Mzg1OGEwYjA1ZjhlYTg0MmMx
NWRjODY5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBA
IC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogI2lmIEVO
QUJMRShERkdfSklUKQogCi1jbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgeworY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJsaWMg
QXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBp
bnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBs
b2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQpAQCAtNDcsMTMg
KzQ3LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAg
ewogICAgICAgICByZXR1cm4gbV93b3JrbGlzdC5tX3RocmVhZE5hbWUuZGF0YSgpOwogICAgIH0K
IAotcHJvdGVjdGVkOgotICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyKSBvdmVycmlkZQorcHJpdmF0ZToKKyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGxvY2tlcikgZmluYWwKICAgICB7CiAgICAgICAgIGlmIChtX3dvcmtsaXN0
Lm1fcXVldWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7
CkBAIC03Myw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICAKICAgICBjbGFzcyBXb3JrU2NvcGU7
CiAgICAgZnJpZW5kIGNsYXNzIFdvcmtTY29wZTsKLSAgICBjbGFzcyBXb3JrU2NvcGUgeworICAg
IGNsYXNzIFdvcmtTY29wZSBmaW5hbCB7CiAgICAgcHVibGljOgogICAgICAgICBXb3JrU2NvcGUo
VGhyZWFkQm9keSYgdGhyZWFkKQogICAgICAgICAgICAgOiBtX3RocmVhZCh0aHJlYWQpCkBAIC05
Myw3ICs5Myw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgVGhyZWFkQm9keSYgbV90aHJlYWQ7CiAg
ICAgfTsKICAgICAKLSAgICBXb3JrUmVzdWx0IHdvcmsoKSBvdmVycmlkZQorICAgIFdvcmtSZXN1
bHQgd29yaygpIGZpbmFsCiAgICAgewogICAgICAgICBXb3JrU2NvcGUgd29ya1Njb3BlKCp0aGlz
KTsKIApAQCAtMTQwLDcgKzE0MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIFdvcmtS
ZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KICAgICAKLSAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkg
b3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZERpZFN0YXJ0KCkgZmluYWwKICAgICB7CiAgICAgICAg
IGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCksIG1fd29ya2xp
c3QsICI6IFRocmVhZCBzdGFydGVkIik7CiAgICAgICAgIApAQCAtMTUwLDcgKzE1MCw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgbV9jb21waWxhdGlvblNjb3BlID0gbWFrZVVuaXF1ZTxDb21waWxh
dGlvblNjb3BlPigpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29u
c3QgQWJzdHJhY3RMb2NrZXImKSBvdmVycmlkZQorICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhj
b25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewogICAgICAgICAvLyBXZSdyZSBob2xk
aW5nIHRoZSBXb3JrbGlzdDo6bV9sb2NrLCBzbyB3ZSBzaG91bGQgYmUgY2FyZWZ1bCBub3QgdG8g
ZGVhZGxvY2suCiAgICAgICAgIApAQCAtMTYyLDcgKzE2Miw2IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgbV9wbGFuID0gbnVsbHB0cjsKICAgICB9CiAKLXByaXZhdGU6CiAgICAgV29ya2xpc3QmIG1f
d29ya2xpc3Q7CiAgICAgVGhyZWFkRGF0YSYgbV9kYXRhOwogICAgIGludCBtX3JlbGF0aXZlUHJp
b3JpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNuaXBwZXRQ
YXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCmlu
ZGV4IGYxM2ZkMTI2M2IyOWNhNzg5YzRjYjdhNTRiYjE4MjUyMzQxNmZiODIuLjFhZjJiZDM4ZjRk
YjY4NjQxNjUwZDAxNzFkMDViOThjYTRlM2Y0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU25pcHBldFBhcmFtcy5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKIAogY2xhc3MgU3RhdGU7CiAKLWNsYXNzIFNuaXBwZXRQYXJhbXMg
OiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKK2NsYXNzIFNuaXBwZXRQYXJhbXMgZmluYWwg
OiBwdWJsaWMgSlNDOjpTbmlwcGV0UGFyYW1zIHsKIHB1YmxpYzoKICAgICBTbmlwcGV0UGFyYW1z
KFN0YXRlJiBzdGF0ZSwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
LCBERkc6Ok5vZGUqIG5vZGUsIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25z
LCBWZWN0b3I8VmFsdWU+JiYgcmVncywgVmVjdG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3Rv
cjxGUFJSZWc+JiYgZnBTY3JhdGNoKQogICAgICAgICA6IEpTQzo6U25pcHBldFBhcmFtcyhzdGF0
ZS52bSgpLCBXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3Jh
dGNoKSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSNkZWZp
bmUgSlNDX0RFRklORV9DQUxMX09QRVJBVElPTlMoT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwg
Li4uKSB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCwgQ0Nh
bGxIZWxwZXJzJiwgT3BlcmF0aW9uVHlwZSwgUmVzdWx0VHlwZSwgc3RkOjp0dXBsZTxfX1ZBX0FS
R1NfXz4gYXJncykgb3ZlcnJpZGU7CisjZGVmaW5lIEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05T
KE9wZXJhdGlvblR5cGUsIFJlc3VsdFR5cGUsIC4uLikgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBs
KENDYWxsSGVscGVyczo6SnVtcExpc3QsIENDYWxsSGVscGVycyYsIE9wZXJhdGlvblR5cGUsIFJl
c3VsdFR5cGUsIHN0ZDo6dHVwbGU8X19WQV9BUkdTX18+IGFyZ3MpIGZpbmFsOwogICAgIFNOSVBQ
RVRfU0xPV19QQVRIX0NBTExTKEpTQ19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TKQogI3VuZGVmIEpT
Q19ERUZJTkVfQ0FMTF9PUEVSQVRJT05TCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0Jsb2NrRGlyZWN0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0Jsb2NrRGlyZWN0b3J5LmNwcAppbmRleCAxMmM5YzZmNGMyZjE3YzYzZWZiMzQzNzY2YmMxNjZi
NjkyMGQzZDRmLi41Y2UyMjYxODY5ZDhjZTA5MGQ1ZDdkZGRlMjEyMWExNzk0NGQyMDEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tEaXJlY3RvcnkuY3BwCkBAIC0zMDks
MTQgKzMwOSwxNCBAQCB2b2lkIEJsb2NrRGlyZWN0b3J5Ojphc3NlcnROb1Vuc3dlcHQoKQogCiBS
ZWZQdHI8U2hhcmVkVGFzazxNYXJrZWRCbG9jazo6SGFuZGxlKigpPj4gQmxvY2tEaXJlY3Rvcnk6
OnBhcmFsbGVsTm90RW1wdHlCbG9ja1NvdXJjZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1Ymxp
YyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpIYW5kbGUqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZp
bmFsIDogcHVibGljIFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4gewogICAgIHB1
YmxpYzoKICAgICAgICAgVGFzayhCbG9ja0RpcmVjdG9yeSYgZGlyZWN0b3J5KQogICAgICAgICAg
ICAgOiBtX2RpcmVjdG9yeShkaXJlY3RvcnkpCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgTWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgb3ZlcnJpZGUKKyAgICAgICAg
TWFya2VkQmxvY2s6OkhhbmRsZSogcnVuKCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKG1fZG9uZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCAw
NWNmMjgyMGYzMjRhYTVjMDlhMzRkMjAxMjYwNjY2YzUyZTM2ODg2Li41MTVhZmYxNjc3ODZiYmMx
ODA2NDA1ZWJiZjQ1ZThmNDdjMDhiOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0yOSwxNiArMjksMTYgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKK2NsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgR0NBY3Rpdml0eUNh
bGxiYWNrIHsKIHB1YmxpYzoKICAgICBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqKTsKIAot
ICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb0NvbGxlY3Rp
b24oVk0mKSBmaW5hbDsKIAotcHJvdGVjdGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhl
YXAmKSBvdmVycmlkZTsKLSAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBvdmVycmlkZTsKK3ByaXZhdGU6Cisg
ICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoSGVhcCYpIGZpbmFsOworICAgIGRvdWJsZSBnY1RpbWVT
bGljZShzaXplX3QgYnl0ZXMpIGZpbmFsOworICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIGZp
bmFsOwogfTsKIAogaW5saW5lIFJlZlB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+IEdDQWN0aXZpdHlD
YWxsYmFjazo6dHJ5Q3JlYXRlRWRlblRpbWVyKEhlYXAqIGhlYXApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNjUwYWUx
Mzg3ZjE2YWEwMDNkN2RkYjk4NmYwNzU4ZmM5ZjFlYzQ4MS4uZmExY2EzNWI5MTgyNWI1Njc2NTMy
NmNhZTVmNmZiZmM4ZTEzYjBiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMjksMTkgKzI5LDE5IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rpdml0eUNhbGxi
YWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIGZpbmFsIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFj
ayB7CiBwdWJsaWM6CiAgICAgRnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKik7CiAKLSAgICB2
b2lkIGRvQ29sbGVjdGlvbihWTSYpIG92ZXJyaWRlOworICAgIHZvaWQgZG9Db2xsZWN0aW9uKFZN
JikgZmluYWw7CiAKICAgICBib29sIGRpZEdDUmVjZW50bHkoKSBjb25zdCB7IHJldHVybiBtX2Rp
ZEdDUmVjZW50bHk7IH0KICAgICB2b2lkIHNldERpZEdDUmVjZW50bHkoKSB7IG1fZGlkR0NSZWNl
bnRseSA9IHRydWU7IH0KIAotcHJvdGVjdGVkOgotICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKEhl
YXAmKSBvdmVycmlkZTsKLSAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVy
cmlkZTsKLSAgICBkb3VibGUgZGVhdGhSYXRlKEhlYXAmKSBvdmVycmlkZTsKK3ByaXZhdGU6Cisg
ICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoSGVhcCYpIGZpbmFsOworICAgIGRvdWJsZSBnY1RpbWVT
bGljZShzaXplX3QgYnl0ZXMpIGZpbmFsOworICAgIGRvdWJsZSBkZWF0aFJhdGUoSGVhcCYpIGZp
bmFsOwogCiAgICAgYm9vbCBtX2RpZEdDUmVjZW50bHkgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggODZkZDZmYWY0ZTIwZTZlODdhYTY0Njc2ZGVhYWI0
NWE5MzEwYTgzNS4uNGI5MGFhYzc5MGM5NmY5MmVlYWJjZDE5NjNkZTYxNDVlZDBhZjZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBwcml2YXRl
OgogCiB9IC8vIGFub255bW91cyBuYW1lc3BhY2UKIAotY2xhc3MgSGVhcDo6SGVhcFRocmVhZCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgeworY2xhc3MgSGVhcDo6SGVhcFRocmVhZCBmaW5hbCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIEhlYXBUaHJlYWQoY29uc3Qg
QWJzdHJhY3RMb2NrZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKICAgICAgICAgOiBBdXRvbWF0aWNU
aHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbi5j
b3B5UmVmKCkpCkBAIC0yNDUsMTMgKzI0NSwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIGNvbnN0IGNoYXIqIG5hbWUoKSBjb25zdCBvdmVycmlkZQorICAgIGNvbnN0IGNoYXIqIG5h
bWUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuICJKU0MgSGVhcCBDb2xsZWN0
b3IgVGhyZWFkIjsKICAgICB9CiAgICAgCi1wcm90ZWN0ZWQ6Ci0gICAgUG9sbFJlc3VsdCBwb2xs
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpIG92ZXJyaWRlCitwcml2YXRlOgorICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsK
ICAgICAgICAgaWYgKG1faGVhcC5tX3RocmVhZFNob3VsZFN0b3ApIHsKICAgICAgICAgICAgIG1f
aGVhcC5ub3RpZnlUaHJlYWRTdG9wcGluZyhsb2NrZXIpOwpAQCAtMjY1LDIzICsyNjUsMjIgQEAg
cHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKICAgICB9CiAgICAg
Ci0gICAgV29ya1Jlc3VsdCB3b3JrKCkgb3ZlcnJpZGUKKyAgICBXb3JrUmVzdWx0IHdvcmsoKSBm
aW5hbAogICAgIHsKICAgICAgICAgbV9oZWFwLmNvbGxlY3RJbkNvbGxlY3RvclRocmVhZCgpOwog
ICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7CiAgICAgfQogICAgIAotICAgIHZv
aWQgdGhyZWFkRGlkU3RhcnQoKSBvdmVycmlkZQorICAgIHZvaWQgdGhyZWFkRGlkU3RhcnQoKSBm
aW5hbAogICAgIHsKICAgICAgICAgVGhyZWFkOjpyZWdpc3RlckdDVGhyZWFkKEdDVGhyZWFkVHlw
ZTo6TWFpbik7CiAgICAgfQogCi0gICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJikgb3ZlcnJpZGUKKyAgICB2b2lkIHRocmVhZElzU3RvcHBpbmcoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9oZWFwLm1fY29sbGVjdG9yVGhy
ZWFkSXNSdW5uaW5nID0gZmFsc2U7CiAgICAgfQogCi1wcml2YXRlOgogICAgIEhlYXAmIG1faGVh
cDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCBiMGIzNjFiMWEwZjZkZWRj
ZDNmOTYzM2ZkYTc0MmEzZmZhZmI4NjdjLi43N2Q0ZGUxODMyNmE3YzAzOWUwYzg1MjQ4N2Q3MTk0
M2Y4M2FiOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC00MzEsMTIgKzQzMSwx
MiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWluRXh0cmFNZW1v
cnkgPSAyNTY7CiAgICAgCi0gICAgY2xhc3MgQ0ZpbmFsaXplck93bmVyIDogcHVibGljIFdlYWtI
YW5kbGVPd25lciB7Ci0gICAgICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0KSBvdmVycmlkZTsKKyAgICBjbGFzcyBDRmluYWxpemVyT3duZXIgZmluYWwgOiBw
dWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKKyAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIH07CiAKLSAgICBjbGFzcyBMYW1iZGFG
aW5hbGl6ZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewotICAgICAgICB2b2lkIGZp
bmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgY2xh
c3MgTGFtYmRhRmluYWxpemVyT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsK
KyAgICAgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZp
bmFsOwogICAgIH07CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWRBbGxvY2F0
aW9uKHNpemVfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5oCmluZGV4IDEyNjQ2ZGViYjBiZjI3NjZhMzA1NzEzNjMzNGJmNGQ0MjdiNGZlMDku
LjRkZTM4NjA3YmY3ZWNiOGY3NmY4OTY2Njg3ZjAxYmQ4YzFhY2ZhMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSGVhcDsKIGNsYXNzIEJsb2NrRGlyZWN0b3J5Owog
Ci1jbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgeworY2xh
c3MgSW5jcmVtZW50YWxTd2VlcGVyIGZpbmFsIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIHB1
YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNSdW5Mb29wVGltZXI7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqKTsKQEAgLTQwLDcgKzQwLDcg
QEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnRTd2VlcGluZyhIZWFw
Jik7CiAgICAgdm9pZCBmcmVlRmFzdE1hbGxvY01lbW9yeUFmdGVyU3dlZXBpbmcoKSB7IG1fc2hv
dWxkRnJlZUZhc3RNYWxsb2NNZW1vcnlBZnRlclN3ZWVwaW5nID0gdHJ1ZTsgfQogCi0gICAgdm9p
ZCBkb1dvcmsoVk0mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvV29yayhWTSYpIGZpbmFsOwogICAg
IHZvaWQgc3RvcFN3ZWVwaW5nKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0lzb0NlbGxTZXQuY3BwCmluZGV4IDc4NmQxMTU4ZjA5YzZkN2FlZDFlYWU1YzFlMGQyMGYz
MjRkM2RkYmMuLmIyMGQ2MTQwZTJiZjI0MzYxMzRhNDg3NDY1YmJmMjMzNjhmZTBmMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwCkBAIC00OCw3ICs0OCw3IEBA
IElzb0NlbGxTZXQ6On5Jc29DZWxsU2V0KCkKIAogUmVmPFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6
OkhhbmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVsTm90RW1wdHlNYXJrZWRCbG9ja1NvdXJj
ZSgpCiB7Ci0gICAgY2xhc3MgVGFzayA6IHB1YmxpYyBTaGFyZWRUYXNrPE1hcmtlZEJsb2NrOjpI
YW5kbGUqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZpbmFsIDogcHVibGljIFNoYXJlZFRhc2s8TWFy
a2VkQmxvY2s6OkhhbmRsZSooKT4gewogICAgIHB1YmxpYzoKICAgICAgICAgVGFzayhJc29DZWxs
U2V0JiBzZXQpCiAgICAgICAgICAgICA6IG1fc2V0KHNldCkKQEAgLTU2LDcgKzU2LDcgQEAgUmVm
PFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6OkhhbmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVs
Tm90RW1wdHlNYXJrZWRCbG9ja1MKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICBNYXJrZWRCbG9jazo6SGFuZGxlKiBydW4oKSBvdmVycmlkZQorICAgICAgICBNYXJrZWRC
bG9jazo6SGFuZGxlKiBydW4oKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9k
b25lKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0lzb0NlbGxTZXRJbmxpbmVzLmgKaW5kZXggZjRmYWVmNzE0YWZjZGNlZTZh
MDEzNjNmNGVhODdjMDYxMjhlYmUyOS4uZGMyYzhiNzg3OGVjZjVmNjAzNzMyNjE2ODA3NTRiZTU4
MjhhNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNl
dElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0SW5s
aW5lcy5oCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgSXNvQ2VsbFNldDo6Zm9yRWFjaE1hcmtlZENl
bGwoY29uc3QgRnVuYyYgZnVuYykKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CiBSZWY8U2hhcmVk
VGFzazx2b2lkKFNsb3RWaXNpdG9yJik+PiBJc29DZWxsU2V0Ojpmb3JFYWNoTWFya2VkQ2VsbElu
UGFyYWxsZWwoY29uc3QgRnVuYyYgZnVuYykKIHsKLSAgICBjbGFzcyBUYXNrIDogcHVibGljIFNo
YXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPiB7CisgICAgY2xhc3MgVGFzayBmaW5hbCA6IHB1
YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4gewogICAgIHB1YmxpYzoKICAgICAg
ICAgVGFzayhJc29DZWxsU2V0JiBzZXQsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAgICAgICAgICAgICA6
IG1fc2V0KHNldCkKQEAgLTEwMyw3ICsxMDMsNyBAQCBSZWY8U2hhcmVkVGFzazx2b2lkKFNsb3RW
aXNpdG9yJik+PiBJc29DZWxsU2V0Ojpmb3JFYWNoTWFya2VkQ2VsbEluUGFyYWxsZWwoY29ucwog
ICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHZvaWQgcnVuKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKSBvdmVycmlkZQorICAgICAgICB2b2lkIHJ1bihTbG90VmlzaXRvciYgdmlz
aXRvcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgd2hpbGUgKE1hcmtlZEJsb2NrOjpI
YW5kbGUqIGhhbmRsZSA9IG1fYmxvY2tTb3VyY2UtPnJ1bigpKSB7CiAgICAgICAgICAgICAgICAg
dW5zaWduZWQgYmxvY2tJbmRleCA9IGhhbmRsZS0+aW5kZXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgKaW5kZXggNjYxYjZmY2ZhOGYxZjUyM2Y1ZDNl
MjkwODllMDlkY2Y1ZjcyOWQ4NS4uODVmYTllOTM4NzVmZGE1NDIyYWNkMjIyZmEyZmYyOWViMGIy
ODhjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgK
QEAgLTQyLDggKzQyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxJc29I
ZWFwQ2VsbFR5cGU+KENlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uID8gTmVlZHNEZXN0cnVjdGlv
biA6IERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sICZDZWxsVHlwZTo6ZGVzdHJveSk7CiAgICAgfQog
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFu
ZGxlJiwgRnJlZUxpc3QqKSBvdmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRl
c3Ryb3koVk0mLCBKU0NlbGwqKSBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
IGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmLCBGcmVlTGlzdCopIGZpbmFsOworICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCopIGZpbmFsOwogCiAg
ICAgQUxXQVlTX0lOTElORSB2b2lkIG9wZXJhdG9yKCkoVk0mLCBKU0NlbGwqIGNlbGwpIGNvbnN0
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5l
ZEhlYXBDZWxsVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSW5saW5lZEhl
YXBDZWxsVHlwZS5oCmluZGV4IDRiNTY2MzVjNGE0MGIxOTUwMmNkMDY3ODQ4NzljN2ZiOGQ1M2I1
N2MuLjVkNmU3Njg2NDY5MTQyMzliNzQyMDA4Y2JmYTQxZDAxMmU0NWYzMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0lubGluZWRIZWFwQ2VsbFR5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29JbmxpbmVkSGVhcENlbGxUeXBlLmgKQEAg
LTQ1LDEyICs0NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdm9pZCBm
aW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiBoYW5kbGUsIEZyZWVMaXN0KiBmcmVlTGlz
dCkgb3ZlcnJpZGUKKyAgICB2b2lkIGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmIGhh
bmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgaGFuZGxlLmZp
bmlzaFN3ZWVwS25vd2luZ0hlYXBDZWxsVHlwZShmcmVlTGlzdCwgRGVzdHJveUZ1bmMoKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKiBjZWxsKSBvdmVycmlkZQorICAg
IHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCogY2VsbCkgZmluYWwKICAgICB7CiAgICAgICAgIENl
bGxUeXBlOjpkZXN0cm95KGNlbGwpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1BhcmFsbGVsU291cmNlQWRhcHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvUGFyYWxsZWxTb3VyY2VBZGFwdGVyLmgKaW5kZXggZjRiNjQ1NjI3NGMwZmMzY2Vk
YzhkYjI2NjliOTIwNTFiMjk2Zjc1Mi4uYmZmNDNkY2NmYWFiMDBmNWMxZWI3Y2ZkYTZmMGYwYTg2
MDA1ZmVkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUGFyYWxsZWxT
b3VyY2VBZGFwdGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUGFyYWxsZWxT
b3VyY2VBZGFwdGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBPdXRlclR5cGUsIHR5cGVuYW1lIElubmVyVHlwZSwgdHlwZW5hbWUgVW53
cmFwRnVuYz4KLWNsYXNzIFBhcmFsbGVsU291cmNlQWRhcHRlciA6IHB1YmxpYyBTaGFyZWRUYXNr
PElubmVyVHlwZSgpPiB7CitjbGFzcyBQYXJhbGxlbFNvdXJjZUFkYXB0ZXIgZmluYWwgOiBwdWJs
aWMgU2hhcmVkVGFzazxJbm5lclR5cGUoKT4gewogcHVibGljOgogICAgIFBhcmFsbGVsU291cmNl
QWRhcHRlcihSZWZQdHI8U2hhcmVkVGFzazxPdXRlclR5cGUoKT4+IG91dGVyU291cmNlLCBjb25z
dCBVbndyYXBGdW5jJiB1bndyYXBGdW5jKQogICAgICAgICA6IG1fb3V0ZXJTb3VyY2Uob3V0ZXJT
b3VyY2UpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAg
IElubmVyVHlwZSBydW4oKSBvdmVycmlkZQorICAgIElubmVyVHlwZSBydW4oKSBmaW5hbAogICAg
IHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwogICAgICAgICBkbyB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlU
aW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIu
aAppbmRleCBmNmI5NTI0ZWUyZjRjMWRjOTQ3MmFlMmI0NGUyNzJlY2E3MmRjZWFkLi5kZDE1ODNm
NThhZWEzZmI4ZGMyODM0ODdmOThjNjNiNjljZjU4YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmgKQEAgLTMxLDEyICszMSwxMiBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGVhcDsKIAotY2xhc3MgU3RvcElmTmVjZXNzYXJ5
VGltZXIgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgeworY2xhc3MgU3RvcElmTmVjZXNzYXJ5VGlt
ZXIgZmluYWwgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogcHVibGljOgogICAgIHVzaW5nIEJh
c2UgPSBKU1J1bkxvb3BUaW1lcjsKICAgICBleHBsaWNpdCBTdG9wSWZOZWNlc3NhcnlUaW1lcihW
TSYpOwogICAgIAotICAgIHZvaWQgZG9Xb3JrKFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dv
cmsoVk0mKSBmaW5hbDsKICAgICAKICAgICB2b2lkIHNjaGVkdWxlU29vbigpOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmNwcAppbmRleCA2MTNiYTUyZTcyMGQwN2M5MGFm
YzU1MGE5Mjg1YWZhNGJhYzcxZWRhLi44NGUzNGMzZGFjZWQxZWEzYTM1NWJjODA4NjNjNGUzOGVh
MGZhNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2UuY3BwCkBAIC05MCwx
NCArOTAsMTQgQEAgTWFya2VkQmxvY2s6OkhhbmRsZSogU3Vic3BhY2U6OmZpbmRFbXB0eUJsb2Nr
VG9TdGVhbCgpCiAKIFJlZjxTaGFyZWRUYXNrPEJsb2NrRGlyZWN0b3J5KigpPj4gU3Vic3BhY2U6
OnBhcmFsbGVsRGlyZWN0b3J5U291cmNlKCkKIHsKLSAgICBjbGFzcyBUYXNrIDogcHVibGljIFNo
YXJlZFRhc2s8QmxvY2tEaXJlY3RvcnkqKCk+IHsKKyAgICBjbGFzcyBUYXNrIGZpbmFsIDogcHVi
bGljIFNoYXJlZFRhc2s8QmxvY2tEaXJlY3RvcnkqKCk+IHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFRhc2soQmxvY2tEaXJlY3RvcnkqIGRpcmVjdG9yeSkKICAgICAgICAgICAgIDogbV9kaXJlY3Rv
cnkoZGlyZWN0b3J5KQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEJs
b2NrRGlyZWN0b3J5KiBydW4oKSBvdmVycmlkZQorICAgICAgICBCbG9ja0RpcmVjdG9yeSogcnVu
KCkgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2xvY2spOwogICAgICAgICAgICAgQmxvY2tEaXJlY3RvcnkqIHJlc3VsdCA9IG1fZGlyZWN0b3J5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2VJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAppbmRleCBm
NGZmNzBjYzllODVmODhiYTNlMGZiMWU0MTMwNGM4MDE4NGU0MDJjLi4wNjJhZDk2MTQ5MjA1ZjUx
OWFkOGQ5Mzg2MzdhOGNlMWZjYjQzOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TdWJzcGFjZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TdWJzcGFjZUlubGluZXMuaApAQCAtODgsNyArODgsNyBAQCB2b2lkIFN1YnNwYWNlOjpmb3JF
YWNoTWFya2VkQ2VsbChjb25zdCBGdW5jJiBmdW5jKQogdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4K
IFJlZjxTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IFN1YnNwYWNlOjpmb3JFYWNoTWFy
a2VkQ2VsbEluUGFyYWxsZWwoY29uc3QgRnVuYyYgZnVuYykKIHsKLSAgICBjbGFzcyBUYXNrIDog
cHVibGljIFNoYXJlZFRhc2s8dm9pZChTbG90VmlzaXRvciYpPiB7CisgICAgY2xhc3MgVGFzayBm
aW5hbCA6IHB1YmxpYyBTaGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4gewogICAgIHB1Ymxp
YzoKICAgICAgICAgVGFzayhTdWJzcGFjZSYgc3Vic3BhY2UsIGNvbnN0IEZ1bmMmIGZ1bmMpCiAg
ICAgICAgICAgICA6IG1fc3Vic3BhY2Uoc3Vic3BhY2UpCkBAIC05Nyw3ICs5Nyw3IEBAIFJlZjxT
aGFyZWRUYXNrPHZvaWQoU2xvdFZpc2l0b3ImKT4+IFN1YnNwYWNlOjpmb3JFYWNoTWFya2VkQ2Vs
bEluUGFyYWxsZWwoY29uc3QKICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICB2b2lkIHJ1bihTbG90VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBy
dW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHdo
aWxlIChNYXJrZWRCbG9jazo6SGFuZGxlKiBoYW5kbGUgPSBtX2Jsb2NrU291cmNlLT5ydW4oKSkg
ewogICAgICAgICAgICAgICAgIGhhbmRsZS0+Zm9yRWFjaE1hcmtlZENlbGwoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggZTUzY2M2
MGFhYjM1ZWI1NTU2ODU0NDJkZmVmMTc1OTBiODMxYTVjMi4uY2RlZTQ1ZjJkNmIzMzc3ZjFlMDUy
M2NmZTQwMWFlMjhiY2YyZGY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNDUsMTEgKzQ1LDExIEBAIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNb2R1bGU7CiBjbGFzcyBJbnNwZWN0b3JFbnZp
cm9ubWVudDsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5qZWN0ZWRTY3JpcHQgOiBwdWJs
aWMgSW5qZWN0ZWRTY3JpcHRCYXNlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEluamVjdGVk
U2NyaXB0IGZpbmFsIDogcHVibGljIEluamVjdGVkU2NyaXB0QmFzZSB7CiBwdWJsaWM6CiAgICAg
SW5qZWN0ZWRTY3JpcHQoKTsKICAgICBJbmplY3RlZFNjcmlwdChEZXByZWNhdGVkOjpTY3JpcHRP
YmplY3QsIEluc3BlY3RvckVudmlyb25tZW50Kik7Ci0gICAgfkluamVjdGVkU2NyaXB0KCkgb3Zl
cnJpZGU7CisgICAgfkluamVjdGVkU2NyaXB0KCkgZmluYWw7CiAKICAgICBzdHJ1Y3QgRXhlY3V0
ZU9wdGlvbnMgewogICAgICAgICBTdHJpbmcgb2JqZWN0R3JvdXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQuaAppbmRleCBlMTcyNzkzNzlhZDM3ZGIwZTFmMzdjN2ZjOTM2ZDNiM2U0OWI2NjE4Li40
ZGE3NDczYjMwYmIyMzNjMzEwZmM0NjZkMWFiNmEzMzJjZGVmNmNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50KEluc3BlY3RvckNvbnNvbGVBZ2VudCopOwotICAgIH5KU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQoKSBvdmVycmlkZSB7IH0KKyAgICB+SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50KCkgZmluYWwgeyB9CiAKICAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3RlbUNvbnNvbGUoKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCk7CkBAIC00OCwxOSAr
NDgsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dChJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KiBhZ2VudCkgeyBtX3NjcmlwdFByb2ZpbGVy
QWdlbnQgPSBhZ2VudDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFJl
ZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY291bnQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIG92ZXJyaWRlOwotICAgIHZvaWQgY291
bnRSZXNldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBwcm9maWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2ZpbGVFbmQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZvaWQgdGFrZUhlYXBTbmFw
c2hvdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0aW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVs
KSBvdmVycmlkZTsKLSAgICB2b2lkIHRpbWVMb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0
IFN0cmluZyYgbGFiZWwsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgdGltZUVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3Jp
cHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVjb3JkKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlY29y
ZEVuZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzY3JlZW5zaG90KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVs
KE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBSZWY8U2Ny
aXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNvdW50KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsKSBmaW5hbDsKKyAgICB2b2lkIGNvdW50UmVzZXQoSlND
OjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQg
cHJvZmlsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgZmluYWw7
CisgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBmaW5hbDsKKyAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIGNvbnN0IFN0cmluZyYgdGl0bGUpIGZpbmFsOworICAgIHZvaWQgdGltZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBsYWJlbCkgZmluYWw7CisgICAgdm9pZCB0aW1l
TG9nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBSZWY8U2NyaXB0
QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lkIHRpbWVFbmQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYgbGFiZWwpIGZpbmFsOworICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmlu
YWw7CisgICAgdm9pZCByZWNvcmRFbmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIFJlZjxTY3JpcHRB
cmd1bWVudHM+JiYpIGZpbmFsOworICAgIHZvaWQgc2NyZWVuc2hvdChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgUmVmPFNjcmlwdEFyZ3VtZW50cz4mJikgZmluYWw7CiAKICAgICB2b2lkIHdhcm5Vbmlt
cGxlbWVudGVkKGNvbnN0IFN0cmluZyYgbWV0aG9kKTsKICAgICB2b2lkIGludGVybmFsQWRkTWVz
c2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgUmVm
PFNjcmlwdEFyZ3VtZW50cz4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
aAppbmRleCA2MWJmMDQxYjA4YzM5NGVkY2YyZjQ2ODc0NmM3MzQ2YWUzZjQwYjQyLi5jZGYzZGU3
NzUzNmY1Y2YwN2Y3YzJmYmZlMDU2ODg2NTVkZTc4YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyIGZpbmFsCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTQzo6SlNHbG9i
YWxPYmplY3QmKTsKLSAgICB+SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKCkgb3Zl
cnJpZGU7CisgICAgfkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcigpIGZpbmFsOwog
CiAgICAgdm9pZCBjb25uZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9t
YXRpY0luc3BlY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSk7CiAgICAgdm9pZCBkaXNjb25u
ZWN0RnJvbnRlbmQoRnJvbnRlbmRDaGFubmVsJik7CkBAIC04MywyMiArODMsMjIgQEAgcHVibGlj
OgogCiAgICAgSlNDOjpDb25zb2xlQ2xpZW50KiBjb25zb2xlQ2xpZW50KCkgY29uc3Q7CiAKLSAg
ICBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29s
IGNhbkFjY2Vzc0luc3BlY3RlZFNjcmlwdFN0YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsSGFu
ZGxlciBmdW5jdGlvbkNhbGxIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW5zcGVjdG9y
RXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgZnJvbnRlbmRJbml0aWFsaXplZCgpIG92ZXJyaWRlOworICAgIGJvb2wgZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgY2FuQWNjZXNzSW5zcGVjdGVkU2Ny
aXB0U3RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCopIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGxIYW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIo
KSBjb25zdCBmaW5hbDsKKyAgICBJbnNwZWN0b3JFdmFsdWF0ZUhhbmRsZXIgZXZhbHVhdGVIYW5k
bGVyKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBmcm9udGVuZEluaXRpYWxpemVkKCkgZmluYWw7
CiAgICAgV1RGOjpTdG9wd2F0Y2gmIGV4ZWN1dGlvblN0b3B3YXRjaCgpIGNvbnN0IGZpbmFsOwot
ICAgIEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkg
b3ZlcnJpZGU7Ci0gICAgSlNDOjpWTSYgdm0oKSBvdmVycmlkZTsKKyAgICBKU0dsb2JhbE9iamVj
dFNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHREZWJ1Z1NlcnZlcigpIGZpbmFsOworICAgIEpTQzo6
Vk0mIHZtKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRD
SEVSUykKLSAgICBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRh
YmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
YXVnbWVudGluZ0NsaWVudDsgfSAKLSAgICB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29u
dHJvbGxlckNsaWVudChBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVu
dCkgb3ZlcnJpZGUgeyBtX2F1Z21lbnRpbmdDbGllbnQgPSBjbGllbnQ7IH0KKyAgICBBdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJv
bGxlckNsaWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXVnbWVudGluZ0NsaWVudDsgfSAK
KyAgICB2b2lkIHNldEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudChBdWdtZW50
YWJsZUluc3BlY3RvckNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkgZmluYWwgeyBtX2F1Z21lbnRp
bmdDbGllbnQgPSBjbGllbnQ7IH0KIAotICAgIGNvbnN0IEZyb250ZW5kUm91dGVyJiBmcm9udGVu
ZFJvdXRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJvbnRlbmRSb3V0ZXIuZ2V0KCk7
IH0KLSAgICBCYWNrZW5kRGlzcGF0Y2hlciYgYmFja2VuZERpc3BhdGNoZXIoKSBvdmVycmlkZSB7
IHJldHVybiBtX2JhY2tlbmREaXNwYXRjaGVyLmdldCgpOyB9Ci0gICAgdm9pZCBhcHBlbmRFeHRy
YUFnZW50KHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JBZ2VudEJhc2U+KSBvdmVycmlkZTsKKyAg
ICBjb25zdCBGcm9udGVuZFJvdXRlciYgZnJvbnRlbmRSb3V0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2Zyb250ZW5kUm91dGVyLmdldCgpOyB9CisgICAgQmFja2VuZERpc3BhdGNoZXImIGJh
Y2tlbmREaXNwYXRjaGVyKCkgZmluYWwgeyByZXR1cm4gbV9iYWNrZW5kRGlzcGF0Y2hlci5nZXQo
KTsgfQorICAgIHZvaWQgYXBwZW5kRXh0cmFBZ2VudChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9y
QWdlbnRCYXNlPikgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlw
dERlYnVnU2VydmVyLmgKaW5kZXggYTE5ODQ0OGExZmZkZDFjM2IwMTliYWRmOGI4NjhhNThiYzA3
ZjI2Yi4uZGFhYmNmNzY0ZTE3ZDFlZDZkY2Y3NmNjNTlmYzM5ZTdlYjllNzg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdFNjcmlwdERl
YnVnU2VydmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTM1LDI1ICszNSwyNSBAQCBjbGFzcyBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyIGZpbmFsIDogcHVibGljIFNjcmlwdERlYnVnU2Vy
dmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyKEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKLSAgICB+SlNH
bG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlIHsgfQorICAgIH5KU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyKCkgZmluYWwgeyB9CiAKICAgICBKU0M6OkpTR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdDsgfQog
CiAgICAgc3RhdGljIFJ1bkxvb3BNb2RlIHJ1bkxvb3BNb2RlKCk7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBhdHRhY2hEZWJ1Z2dlcigpIG92ZXJyaWRlOwotICAgIHZvaWQgZGV0YWNoRGVidWdnZXIo
Ym9vbCBpc0JlaW5nRGVzdHJveWVkKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaERlYnVnZ2Vy
KCkgZmluYWw7CisgICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihib29sIGlzQmVpbmdEZXN0cm95ZWQp
IGZpbmFsOwogCi0gICAgdm9pZCBkaWRQYXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpIG92ZXJyaWRlOwotICAg
IGJvb2wgaXNDb250ZW50U2NyaXB0KEpTQzo6SlNHbG9iYWxPYmplY3QqKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVj
dCopIGZpbmFsIHsgfQorICAgIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0dsb2JhbE9iamVjdCop
IGZpbmFsIHsgfQorICAgIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSBmaW5hbDsKKyAg
ICBib29sIGlzQ29udGVudFNjcmlwdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5PVEU6IEN1cnJlbnRseSBhbGwgZXhjZXB0aW9u
cyBhcmUgcmVwb3J0ZWQgYXQgdGhlIEFQSSBib3VuZGFyeSB0aHJvdWdoIHJlcG9ydEFQSUV4Y2Vw
dGlvbi4KICAgICAvLyBVbnRpbCBhIHRpbWUgY29tZXMgd2hlcmUgYW4gZXhjZXB0aW9uIGNhbiBi
ZSBjYXVzZWQgb3V0c2lkZSBvZiB0aGUgQVBJIChlLmcuIHNldFRpbWVvdXQKICAgICAvLyBvciBz
b21lIG90aGVyIGFzeW5jIG9wZXJhdGlvbiBpbiBhIHB1cmUgSlNDb250ZXh0KSB3ZSBjYW4gaWdu
b3JlIGV4Y2VwdGlvbnMgcmVwb3J0ZWQgaGVyZS4KLSAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qKSBjb25zdCBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGNl
cHRpb24qKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xv
YmFsT2JqZWN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggZjk3OTVmMDM4ZDQ2NTUwODQ1Zjcz
ZGM5MTI2NmVhMDI3YWEyNjdjYS4uNmFkN2Q1MDEyODY4N2I2NjU0YThlOWZlMmU1ZWQ4NzkwYTE3
MjE2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVj
dGVkU2NyaXB0SG9zdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTc2NSw3ICs3NjUsNyBAQCBwdWJsaWM6CiAKICAg
ICBIYXNoU2V0PEpTQ2VsbCo+JiBob2xkZXJzKCkgeyByZXR1cm4gbV9ob2xkZXJzOyB9CiAKLSAg
ICB2b2lkIGFuYWx5emVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6
OlJvb3RNYXJrUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKKyAgICB2b2lkIGFuYWx5emVFZGdlKEpT
Q2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJlYXNv
bikgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVCh0byk7CiAgICAgICAgIEFTU0VSVCh0by0+
dm0oKS5oZWFwUHJvZmlsZXIoKS0+YWN0aXZlSGVhcEFuYWx5emVyKCkgPT0gdGhpcyk7CkBAIC03
OTAsMTQgKzc5MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGVsc2UgaWYgKCFmcm9tIHx8IHJlYXNv
biAhPSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpCiAgICAgICAgICAgICBtX3Jv
b3RzVG9JbmNsdWRlLmFkZCh0byk7CiAgICAgfQotICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFt
ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCopIG92ZXJy
aWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLSAgICB2b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwg
SlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqKSBvdmVycmlkZSB7IGFuYWx5emVFZGdlKGZy
b20sIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmUpOyB9Ci0gICAgdm9pZCBh
bmFseXplSW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QpIG92ZXJy
aWRlIHsgYW5hbHl6ZUVkZ2UoZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Tm9uZSk7IH0KLQotICAgIHZvaWQgYW5hbHl6ZU5vZGUoSlNDZWxsKikgb3ZlcnJpZGUgeyB9Ci0g
ICAgdm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBj
b25zdCBjaGFyKikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChKU0NlbGwqLCB2b2lkKikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBzZXRMYWJlbEZvckNlbGwo
SlNDZWxsKiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBhbmFseXplUHJv
cGVydHlOYW1lRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBs
KikgZmluYWwgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpOb25lKTsgfQorICAgIHZvaWQgYW5hbHl6ZVZhcmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBm
cm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCopIGZpbmFsIHsgYW5hbHl6ZUVkZ2Uo
ZnJvbSwgdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6Tm9uZSk7IH0KKyAgICB2b2lk
IGFuYWx5emVJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50MzJfdCkgZmlu
YWwgeyBhbmFseXplRWRnZShmcm9tLCB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpO
b25lKTsgfQorCisgICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxsKEpTQ2VsbCosIGNvbnN0
IGNoYXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldFdyYXBwZWRPYmplY3RGb3JDZWxsKEpTQ2Vs
bCosIHZvaWQqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldExhYmVsRm9yQ2VsbChKU0NlbGwqLCBj
b25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAogI2lmbmRlZiBOREVCVUcKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCmluZGV4IGEyMWE1ODk0YWI3MzI2
NGM4ZmE0NzE2YmZhYzY5ODg4MjhhOGQ0MjYuLjQ1YWRkYTJhODY5OTE5NWRiODlmMWYwNDJkMzUz
ZWU3ZjRkYzlmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaApAQCAtNDcsMTYgKzQ3LDE2IEBAIGNsYXNzIEpT
X0VYUE9SVF9QUklWQVRFIEluc3BlY3RvckFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckFn
ZW50QmFzZSwgcHVibGljCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgSW5zcGVjdG9yQWdlbnQoQWdlbnRDb250ZXh0Jik7Ci0gICAgfkluc3BlY3RvckFnZW50KCkg
b3ZlcnJpZGU7CisgICAgfkluc3BlY3RvckFnZW50KCkgZmluYWw7CiAKICAgICAvLyBJbnNwZWN0
b3JBZ2VudEJhc2UKLSAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmRE
aXNwYXRjaGVyKikgZmluYWw7CisgICAgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChEaXNjb25uZWN0UmVhc29uKSBmaW5hbDsKIAogICAgIC8vIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVySGFuZGxlcgotICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbml0aWFs
aXplZChFcnJvclN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBpbml0aWFsaXplZChFcnJvclN0cmluZyYpIGZpbmFsOwogCiAgICAgLy8gQ29tbWFuZExpbmVB
UEkKICAgICB2b2lkIGluc3BlY3QoUmVmUHRyPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q+JiYgb2JqZWN0VG9JbnNwZWN0LCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGhpbnRzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clNjcmlwdFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaAppbmRleCA5NzkxMDU2YzkyNDA5
MGNjNjNiZWY4MTc0Mzk0ZjUxY2I2OGZkYmMwLi43ZTdjZGM5Zjk3NTA2Nzc2NjI5NzQwYWFkY2I1
NGZiNGRhMDBkMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5o
CkBAIC00NCwyMCArNDQsMjAgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yU2Ny
aXB0UHJvZmlsZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2UKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFn
ZW50KEFnZW50Q29udGV4dCYpOwotICAgIH5JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50KCkg
b3ZlcnJpZGU7CisgICAgfkluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQoKSBmaW5hbDsKIAog
ICAgIC8vIEluc3BlY3RvckFnZW50QmFzZQotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91
dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gU2NyaXB0
UHJvZmlsZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHN0YXJ0VHJhY2tpbmco
RXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0
VHJhY2tpbmcoRXJyb3JTdHJpbmcmLCBjb25zdCBib29sKiBpbmNsdWRlU2FtcGxlcykgZmluYWw7
CisgICAgdm9pZCBzdG9wVHJhY2tpbmcoRXJyb3JTdHJpbmcmKSBmaW5hbDsKIAogICAgIC8vIEpT
Qzo6RGVidWdnZXI6OlByb2ZpbGluZ0NsaWVudAotICAgIGJvb2wgaXNBbHJlYWR5UHJvZmlsaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU2Vjb25kcyB3aWxsRXZhbHVhdGVTY3JpcHQoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0KFNlY29uZHMsIEpTQzo6UHJvZmlsaW5n
UmVhc29uKSBvdmVycmlkZTsKKyAgICBib29sIGlzQWxyZWFkeVByb2ZpbGluZygpIGNvbnN0IGZp
bmFsOworICAgIFNlY29uZHMgd2lsbEV2YWx1YXRlU2NyaXB0KCkgZmluYWw7CisgICAgdm9pZCBk
aWRFdmFsdWF0ZVNjcmlwdChTZWNvbmRzLCBKU0M6OlByb2ZpbGluZ1JlYXNvbikgZmluYWw7CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBhZGRFdmVudChTZWNvbmRzIHN0YXJ0VGltZSwgU2Vjb25kcyBl
bmRUaW1lLCBKU0M6OlByb2ZpbGluZ1JlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yVGFyZ2V0QWdlbnQuaApp
bmRleCAxZWI3YWJiMmZhMjFkN2E4ZWMwODMzMTYwZjUzZTVjNTIzZWM0MzE3Li5iOTI5ZGRmZmUy
OWMzZmIwODhhYjY3MTQwODdjOTkzMDJjMjc1MjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JUYXJnZXRBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclRhcmdldEFnZW50
LmgKQEAgLTM3LDIwICszNywyMCBAQCBjbGFzcyBJbnNwZWN0b3JUYXJnZXQ7CiAKIHR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNwZWN0b3JU
YXJnZXRBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBUYXJnZXRCYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXIgeworY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9y
VGFyZ2V0QWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgVGFy
Z2V0QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bnNwZWN0b3JUYXJnZXRBZ2VudCk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgSW5zcGVjdG9yVGFyZ2V0QWdlbnQoRnJvbnRlbmRSb3V0ZXImLCBCYWNrZW5kRGlz
cGF0Y2hlciYpOwotICAgIH5JbnNwZWN0b3JUYXJnZXRBZ2VudCgpIG92ZXJyaWRlOworICAgIH5J
bnNwZWN0b3JUYXJnZXRBZ2VudCgpIGZpbmFsOwogCiAgICAgLy8gSW5zcGVjdG9yQWdlbnRCYXNl
CiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRSb3V0ZXIqLCBC
YWNrZW5kRGlzcGF0Y2hlciopIGZpbmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikgZmluYWw7CiAKICAgICAvLyBUYXJnZXRCYWNrZW5k
RGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHNldFBhdXNlT25TdGFydChFcnJvclN0cmluZyYs
IGJvb2wgcGF1c2VPblN0YXJ0KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3VtZShFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgdGFyZ2V0SWQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGF1c2VP
blN0YXJ0KEVycm9yU3RyaW5nJiwgYm9vbCBwYXVzZU9uU3RhcnQpIGZpbmFsOworICAgIHZvaWQg
cmVzdW1lKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0YXJnZXRJZCkgZmluYWw7CiAgICAg
dm9pZCBzZW5kTWVzc2FnZVRvVGFyZ2V0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0YXJn
ZXRJZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKIAogICAgIC8vIFRhcmdldCBsaWZl
Y3ljbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCmluZGV4IDQ5MjFkMzMwNmVk
NTdiYjQwOWM4MTY3MWFjMTNjMmY0MzIxMDNiYzguLjdkNDY3MGQwNGRjN2ZkMzMwODNhMTUwNjFk
Mzc3NjViMWE2YzNlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudC5oCkBAIC0z
OCwxMCArMzgsMTAgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RBdWRpdEFnZW50IGZpbmFsIDogcHVi
bGljIEluc3BlY3RvckF1ZGl0QWdlbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIEpTR2xvYmFsT2JqZWN0QXVkaXRBZ2VudChKU0FnZW50Q29udGV4dCYpOwot
ICAgIH5KU0dsb2JhbE9iamVjdEF1ZGl0QWdlbnQoKSBvdmVycmlkZTsKKyAgICB+SlNHbG9iYWxP
YmplY3RBdWRpdEFnZW50KCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25D
b250ZXh0SWQpIG92ZXJyaWRlOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsK
IAogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xvYmFsT2JqZWN0OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0
RGVidWdnZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKaW5kZXggZDc2MDU3MTM3NTVmYTc4Yzk0ZGEx
MzIxZmRlZmI4ODc3NzczMjJmMS4uM2I4OGRlYWI3NzUzZWE1ZGExYWE3M2ZjMDJiMmEzZTI3MWMz
ZTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgKQEAgLTM2LDE4
ICszNiwxOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50KEpTQWdlbnRDb250ZXh0
JiwgSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7Ci0gICAgfkpTR2xvYmFsT2JqZWN0RGVidWdnZXJB
Z2VudCgpIG92ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQoKSBmaW5h
bDsKIAogICAgIC8vIFNjcmlwdERlYnVnTGlzdGVuZXIKLSAgICB2b2lkIGJyZWFrcG9pbnRBY3Rp
b25Mb2coSlNDOjpKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHRGb3JFdmFsKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpIG92
ZXJyaWRlOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBmaW5hbDsKIAogICAgIC8vIE5P
VEU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90IHlldCBuZWVkIHRvIG11dGUgYSBjb25z
b2xlIGJlY2F1c2Ugbm8gbWVzc2FnZXMKICAgICAvLyBhcmUgc2VudCB0byB0aGUgY29uc29sZSBv
dXRzaWRlIG9mIHRoZSBBUEkgYm91bmRhcnkgb3IgY29uc29sZSBvYmplY3QuCi0gICAgdm9pZCBt
dXRlQ29uc29sZSgpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJy
aWRlIHsgfQorICAgIHZvaWQgbXV0ZUNvbnNvbGUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIHVubXV0
ZUNvbnNvbGUoKSBmaW5hbCB7IH0KIAogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9jb25z
b2xlQWdlbnQgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKaW5kZXggYTM0N2RlNGVmMGFjODY0NWRkZTU2NWEzNjBhMGQ3NWU1Y2U5OTJmNC4uNmYw
Y2U5MDU5ZDcyMzM4Mzc4YjFkNDdhNzFhNzI1YzM5MmNkMjc3YSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oCkBAIC0zOSwxNSArMzksMTUgQEAgY2xhc3MgSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudChKU0FnZW50Q29udGV4dCYpOwotICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRp
bWVBZ2VudCgpIG92ZXJyaWRlOworICAgIH5KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudCgpIGZp
bmFsOwogCiBwcml2YXRlOgotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZh
bChFcnJvclN0cmluZyYsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsK
KyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkgZmluYWw7CiAKICAgICAvLyBOT1RFOiBKYXZh
U2NyaXB0IGluc3BlY3RvciBkb2VzIG5vdCB5ZXQgbmVlZCB0byBtdXRlIGEgY29uc29sZSBiZWNh
dXNlIG5vIG1lc3NhZ2VzCiAgICAgLy8gYXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUgb3V0c2lkZSBv
ZiB0aGUgQVBJIGJvdW5kYXJ5IG9yIGNvbnNvbGUgb2JqZWN0LgotICAgIHZvaWQgbXV0ZUNvbnNv
bGUoKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIG11dGVDb25zb2xlKCkgZmluYWwgeyB9CisgICAgdm9pZCB1bm11dGVDb25zb2xl
KCkgZmluYWwgeyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVudGltZUZyb250ZW5kRGlzcGF0
Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFJ1bnRpbWVCYWNrZW5kRGlz
cGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRlRGlzcGF0Y2hhYmxlQWdlbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYXVnbWVudGFibGUvQWx0ZXJuYXRl
RGlzcGF0Y2hhYmxlQWdlbnQuaAppbmRleCA1MDFiZmRhOWI0NzkyNjc5NzcyMDFhMDM5MjZhNzQ2
M2I1MTczOWVlLi5hNmIxOGNmMzc2ZjM4ZjY5NzJhMDVhY2MyN2QxNGRjNjIwNjU1OWZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2F1Z21lbnRhYmxlL0FsdGVy
bmF0ZURpc3BhdGNoYWJsZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hdWdtZW50YWJsZS9BbHRlcm5hdGVEaXNwYXRjaGFibGVBZ2VudC5oCkBAIC01MSwxMSAr
NTEsMTEgQEAgcHVibGljOgogICAgICAgICBtX2FsdGVybmF0ZURpc3BhdGNoZXItPnNldEJhY2tl
bmREaXNwYXRjaGVyKG51bGxwdHIpOwogICAgIH0KIAotICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwgQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlk
ZQorICAgIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kUm91dGVyKiwg
QmFja2VuZERpc3BhdGNoZXIqKSBmaW5hbAogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHdpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlCisgICAg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKSBmaW5h
bAogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKaW5kZXgg
Yzg1YjY0YTA1M2Y4ZmYwY2MwMDkyMDdmZTBjOTdkODEyYTQ3MGM2Yy4uNjczMzdkNzMwNGY0MmQ2
ZDE3NjFhMDliMTQwNDA2YmEyNzJhY2JiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogI2Vsc2UKICAgICBSZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQoUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Jik7CiAjZW5kaWYKLSAgICB+UmVt
b3RlQ29ubmVjdGlvblRvVGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgflJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldCgpIGZpbmFsOwogCiAgICAgLy8gTWFpbiBBUEkuCiAgICAgYm9vbCBzZXR1cChib29s
IGlzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlLCBib29sIGF1dG9tYXRpY2FsbHlQYXVzZSA9
IGZhbHNlKTsKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGcm9u
dGVuZENoYW5uZWwgb3ZlcnJpZGVzLgotICAgIENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29ubmVjdGlvblR5cGU6OlJlbW90ZTsgfQotICAg
IHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29u
bmVjdGlvblR5cGU6OlJlbW90ZTsgfQorICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpIGZpbmFsOwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5z
cGVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJ
bnNwZWN0b3IuaAppbmRleCBlMjU2MmNmMzI1MzQxODliMWEwMTQ4ZjE4M2UzNGJiOTQ1YzUyYmFj
Li40YTYxMGFhMmE4ZGM5Mjg0OTY5YmU1Zjk1YWM2ZWFhZjAwODBkOTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0
b3IuaApAQCAtMjA3LDkgKzIwNyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kQXV0b21hdGlj
SW5zcGVjdGlvbkNhbmRpZGF0ZU1lc3NhZ2UoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHZvaWQgeHBjQ29ubmVjdGlvblJlY2VpdmVkTWVzc2FnZShSZW1vdGVJbnNwZWN0b3JYUENDb25u
ZWN0aW9uKiwgTlNTdHJpbmcgKm1lc3NhZ2VOYW1lLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKSBv
dmVycmlkZTsKLSAgICB2b2lkIHhwY0Nvbm5lY3Rpb25GYWlsZWQoUmVtb3RlSW5zcGVjdG9yWFBD
Q29ubmVjdGlvbiopIG92ZXJyaWRlOwotICAgIHZvaWQgeHBjQ29ubmVjdGlvblVuaGFuZGxlZE1l
c3NhZ2UoUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbiosIHhwY19vYmplY3RfdCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB4cGNDb25uZWN0aW9uUmVjZWl2ZWRNZXNzYWdlKFJlbW90ZUluc3BlY3Rv
clhQQ0Nvbm5lY3Rpb24qLCBOU1N0cmluZyAqbWVzc2FnZU5hbWUsIE5TRGljdGlvbmFyeSAqdXNl
ckluZm8pIGZpbmFsOworICAgIHZvaWQgeHBjQ29ubmVjdGlvbkZhaWxlZChSZW1vdGVJbnNwZWN0
b3JYUENDb25uZWN0aW9uKikgZmluYWw7CisgICAgdm9pZCB4cGNDb25uZWN0aW9uVW5oYW5kbGVk
TWVzc2FnZShSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uKiwgeHBjX29iamVjdF90KSBmaW5h
bDsKIAogICAgIHZvaWQgcmVjZWl2ZWRTZXR1cE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5m
byk7CiAgICAgdm9pZCByZWNlaXZlZERhdGFNZXNzYWdlKE5TRGljdGlvbmFyeSAqdXNlckluZm8p
OwpAQCAtMjIzLDggKzIyMyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNlaXZlZEF1dG9tYXRp
b25TZXNzaW9uUmVxdWVzdE1lc3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyk7CiAjZW5kaWYK
ICNpZiBVU0UoSU5TUEVDVE9SX1NPQ0tFVF9TRVJWRVIpCi0gICAgSGFzaE1hcDxTdHJpbmcsIENh
bGxIYW5kbGVyPiYgZGlzcGF0Y2hNYXAoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKENv
bm5lY3Rpb25JRCkgb3ZlcnJpZGU7CisgICAgSGFzaE1hcDxTdHJpbmcsIENhbGxIYW5kbGVyPiYg
ZGlzcGF0Y2hNYXAoKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgZmlu
YWw7CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNlcnZlci5oCmluZGV4IDhmOGVmMDU5NGEz
MWVkYjhiNjQ0YTcxNDUwMzMzNDE1MGI0Yzc3YTIuLjAwOGM2ZmQwZjFmMDM0NTQyMjE3MTY1MGQ5
NGU5NDczZDA4NTczZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVy
LmgKQEAgLTQ2LDggKzQ2LDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0
cm95ZWQ8UmVtb3RlSW5zcGVjdG9yU2VydmVyPjsKICAgICBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIo
KSB7IFNvY2tldDo6aW5pdCgpOyB9CiAKLSAgICBib29sIGRpZEFjY2VwdChDb25uZWN0aW9uSUQg
YWNjZXB0ZWRJRCwgQ29ubmVjdGlvbklEIGxpc3RlbmVySUQsIFNvY2tldDo6RG9tYWluKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpZENsb3NlKENvbm5lY3Rpb25JRCkgb3ZlcnJpZGUgeyB9CisgICAg
Ym9vbCBkaWRBY2NlcHQoQ29ubmVjdGlvbklEIGFjY2VwdGVkSUQsIENvbm5lY3Rpb25JRCBsaXN0
ZW5lcklELCBTb2NrZXQ6OkRvbWFpbikgZmluYWw7CisgICAgdm9pZCBkaWRDbG9zZShDb25uZWN0
aW9uSUQpIGZpbmFsIHsgfQogCiAgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBtX3NlcnZlcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5Cmlu
ZGV4IGM3YjFjODdlMTE5OGQ2NmVmNjk4ZjllYzhhOTI0NzEyN2I5MmRjMDAuLjk2YjU1ZTQxNjJj
NjY4MDQ5Y2FhNjQ3MzZiNjQxOWFmNDQ1Njg4ZGIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVz
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2Vu
L2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CkBAIC05NSw3ICs5NSw3IEBAIHByb3RlY3RlZDoK
ICAgICAiIiIke2NsYXNzQW5kRXhwb3J0TWFjcm99ICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0
Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjwke2RvbWFpbk5hbWV9QmFja2VuZERpc3BhdGNoZXI+IGNyZWF0
ZShCYWNrZW5kRGlzcGF0Y2hlciYsICR7ZG9tYWluTmFtZX1CYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9i
amVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKICR7Y29tbWFuZERlY2xhcmF0aW9uc30KIHByaXZhdGU6
CiAgICAgJHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVyKEJhY2tlbmREaXNwYXRjaGVyJiwg
JHtkb21haW5OYW1lfUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2Jq
Y19iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJf
aGVhZGVyLnB5CmluZGV4IDA1MTIyYzZjYWJkZDIyYzRiOWIwMDdmOThmZmVlYzFmODJiMzRjZGMu
LmVkOGNjNTk2ZDMxMDMwM2JjMmYxNmI3Y2E1YmY3MDY0N2MwYjQ0MGYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29i
amNfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkKQEAgLTExMSw1ICsxMTEsNSBAQCBjbGFzcyBPYmpDQmFja2VuZERpc3Bh
dGNoZXJIZWFkZXJHZW5lcmF0b3IoT2JqQ0dlbmVyYXRvcik6CiAgICAgICAgICAgICAnY29tbWFu
ZE5hbWUnOiBjb21tYW5kLmNvbW1hbmRfbmFtZSwKICAgICAgICAgICAgICdwYXJhbWV0ZXJzJzog
JywgJy5qb2luKHBhcmFtZXRlcnMpLAogICAgICAgICB9Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgn
ICAgIHZpcnR1YWwgdm9pZCAlKGNvbW1hbmROYW1lKXMoJShwYXJhbWV0ZXJzKXMpIG92ZXJyaWRl
OycgJSBjb21tYW5kX2FyZ3MpCisgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIHZvaWQgJShjb21t
YW5kTmFtZSlzKCUocGFyYW1ldGVycylzKSBmaW5hbDsnICUgY29tbWFuZF9hcmdzKQogICAgICAg
ICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRo
LW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZv
cm0uanNvbi1yZXN1bHQKaW5kZXggOWIzY2VlNmJlNjVlYTUxZmFhNjM0YjcyYWNiODcxNTQ5MDY1
ZmUzMC4uYzZlNjhmNGE5YWVkZDNkODQzNjcwYTIyZjBjYjgzNTMxN2VmNjQwNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBl
Y3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2Rl
ZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcg
QEAgcHJvdGVjdGVkOgogY2xhc3MgTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVi
bGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwg
TmV0d29ya0JhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9u
ZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1l
c3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0
IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJp
dmF0ZToKICAgICB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046
Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9E
SVNQQVRDSEVSUykKQEAgLTU4OSw3ICs1ODksNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yTmV0d29y
a0JhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZU5ldHdvcmtCYWNrZQog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JO
ZXR3b3JrQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRs
ZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
bG9hZFJlc291cmNlKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRSZXNv
dXJjZShsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxU
ZXN0UHJvdG9jb2xOZXR3b3JrRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxl
VHlwZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21h
aW4tZGVidWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKaW5kZXggNDg1YWE2MWU2YjcxZTgzYjczNjAx
Yzk2NmYxZTFiYmRkN2QyYWY1Ny4uNDMxM2ZhOTE1MWU5MmNkMDNiMDA4YjNjMzVlYWJkMzdkOTkx
N2Y3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZC10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFp
bi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kLXRhcmdldFR5
cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0CkBAIC0xNTMsNyAr
MTUzLDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8RG9tYWluQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hl
ciYsIERvbWFpbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2go
bG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYm
IG1lc3NhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNv
bnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwog
cHJpdmF0ZToKICAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpP
YmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCkBAIC01MTYsNyArNTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJh
Y2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9t
YWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4g
aGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21t
YW5kKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1
ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9t
YWluRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29t
bWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13
aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdAppbmRleCA1OWIzZTNjZmQ4YWM2ZmJiYjFj
M2FjYzM3NzQyMTQ5MTEyYzVkN2NjLi5mYzVjNDFkYjUzYWI2YmM0MGNhNGE1MzQ3ZWE3MmE4N2I3
MzQxOGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5q
c29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29u
LXJlc3VsdApAQCAtMTc5LDcgKzE3OSw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERhdGFiYXNlQmFj
a2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNo
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcj4g
Y3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlckhhbmRs
ZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1l
dGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
c3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9i
amVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBleGVjdXRlU1FMU3lu
Y09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2JqZWN0
PiYmIHBhcmFtZXRlcnMpOwogICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5W
YWx1ZXMobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CkBAIC04NjUsMTAgKzg2NSwxMCBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5k
RGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEYXRhYmFzZUJhYwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEYXRhYmFzZUJh
Y2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlcj4gaGFu
ZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBleGVjdXRl
U1FMU3luY09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJh
c2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJuVmFsdWVzKGxvbmcgcmVxdWVzdElkLCBpbnQg
aW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIGV4ZWN1dGVTUUxTeW5jKGxvbmcgcmVxdWVzdElkLCBpbnQgaW5fZGF0YWJhc2VJ
ZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGV4
ZWN1dGVTUUxBc3luYyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgaW5fcXVlcnkpIG92ZXJyaWRlOworICAgIHZvaWQgZXhlY3V0ZVNRTFN5bmNPcHRpb25h
bFJldHVyblZhbHVlcyhsb25nIHJlcXVlc3RJZCwgaW50IGluX2RhdGFiYXNlSWQsIGNvbnN0IFN0
cmluZyYgaW5fcXVlcnkpIGZpbmFsOworICAgIHZvaWQgZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxS
ZXR1cm5WYWx1ZXMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlkLCBjb25zdCBTdHJp
bmcmIGluX3F1ZXJ5KSBmaW5hbDsKKyAgICB2b2lkIGV4ZWN1dGVTUUxTeW5jKGxvbmcgcmVxdWVz
dElkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSkgZmluYWw7Cisg
ICAgdm9pZCBleGVjdXRlU1FMQXN5bmMobG9uZyByZXF1ZXN0SWQsIGludCBpbl9kYXRhYmFzZUlk
LCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5KSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJh
bWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJl
dHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4IDA5ZjU1ODc3MThkM2M3NDMxZTY4NmU1
ZDQ1Yzk4MWZmYjI2NjNkOTQuLjg1OTQxZWQ1MWYxMTI0NGIzZDM0MzdjODAwMjUwNGY1MzE0MzEy
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4t
cGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFs
LWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTE2Miw3ICsxNjIsNyBAQCBw
cm90ZWN0ZWQ6CiBjbGFzcyBEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGlj
IFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PERhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERh
dGFiYXNlQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25n
IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVz
c2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2
YXRlOgogICAgIHZvaWQgZXhlY3V0ZUFsbE9wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJ
ZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2b2lkIGV4ZWN1dGVO
b09wdGlvbmFsUGFyYW1ldGVycyhsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4m
JiBwYXJhbWV0ZXJzKTsKQEAgLTc4MCw4ICs3ODAsOCBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRGF0
YWJhc2VCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEYXRhYmFzZUJh
YwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0
b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERhdGFiYXNlRG9tYWlu
SGFuZGxlcj4gaGFuZGxlcikgeyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwg
dm9pZCBleGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBK
U09OOjpBcnJheSogaW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyogaW5fbm90ZXMsIGNvbnN0
IGRvdWJsZSogaW5fdGltZXN0YW1wLCBjb25zdCBKU09OOjpPYmplY3QqIGluX3ZhbHVlcywgY29u
c3QgSlNPTjo6VmFsdWUqIGluX3BheWxvYWQsIGNvbnN0IGludCogaW5fZGF0YWJhc2VJZCwgY29u
c3QgSlNPTjo6T2JqZWN0KiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nKiBpbl9zY3JlZW5Db2xv
ciwgY29uc3QgSlNPTjo6QXJyYXkqIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nKiBp
bl9wcmludENvbG9yKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZU5vT3B0aW9u
YWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVzdElkLCBjb25zdCBKU09OOjpBcnJheSYgaW5fY29sdW1u
TmFtZXMsIGNvbnN0IFN0cmluZyYgaW5fbm90ZXMsIGRvdWJsZSBpbl90aW1lc3RhbXAsIGNvbnN0
IEpTT046Ok9iamVjdCYgaW5fdmFsdWVzLCBKU09OOjpWYWx1ZSBpbl9wYXlsb2FkLCBpbnQgaW5f
ZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6T2JqZWN0JiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5n
JiBpbl9zY3JlZW5Db2xvciwgY29uc3QgSlNPTjo6QXJyYXkmIGluX2FsdGVybmF0ZUNvbG9ycywg
Y29uc3QgU3RyaW5nJiBpbl9wcmludENvbG9yKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4ZWN1dGVB
bGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyByZXF1ZXN0SWQsIGNvbnN0IEpTT046OkFycmF5KiBp
bl9jb2x1bW5OYW1lcywgY29uc3QgU3RyaW5nKiBpbl9ub3RlcywgY29uc3QgZG91YmxlKiBpbl90
aW1lc3RhbXAsIGNvbnN0IEpTT046Ok9iamVjdCogaW5fdmFsdWVzLCBjb25zdCBKU09OOjpWYWx1
ZSogaW5fcGF5bG9hZCwgY29uc3QgaW50KiBpbl9kYXRhYmFzZUlkLCBjb25zdCBKU09OOjpPYmpl
Y3QqIGluX3NxbEVycm9yLCBjb25zdCBTdHJpbmcqIGluX3NjcmVlbkNvbG9yLCBjb25zdCBKU09O
OjpBcnJheSogaW5fYWx0ZXJuYXRlQ29sb3JzLCBjb25zdCBTdHJpbmcqIGluX3ByaW50Q29sb3Ip
IGZpbmFsOworICAgIHZvaWQgZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzKGxvbmcgcmVxdWVz
dElkLCBjb25zdCBKU09OOjpBcnJheSYgaW5fY29sdW1uTmFtZXMsIGNvbnN0IFN0cmluZyYgaW5f
bm90ZXMsIGRvdWJsZSBpbl90aW1lc3RhbXAsIGNvbnN0IEpTT046Ok9iamVjdCYgaW5fdmFsdWVz
LCBKU09OOjpWYWx1ZSBpbl9wYXlsb2FkLCBpbnQgaW5fZGF0YWJhc2VJZCwgY29uc3QgSlNPTjo6
T2JqZWN0JiBpbl9zcWxFcnJvciwgY29uc3QgU3RyaW5nJiBpbl9zY3JlZW5Db2xvciwgY29uc3Qg
SlNPTjo6QXJyYXkmIGluX2FsdGVybmF0ZUNvbG9ycywgY29uc3QgU3RyaW5nJiBpbl9wcmludENv
bG9yKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2NvbERhdGFi
YXNlRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9t
YWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1kZWJ1Z2dhYmxl
VHlwZXMuanNvbi1yZXN1bHQKaW5kZXggM2Q2NWIwNDQ3OGMzNDRmZjNmNjdjOWIxMTMxMDc0MzY3
Y2M0NDYzYi4uZjViNTkxN2FhMGI0MTFjMjk5NzI5ZGYxODU3MzdkZTZlYmM2NzM1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvZG9tYWluLWRlYnVnZ2FibGVUeXBlcy5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9kb21haW4tZGVidWdnYWJsZVR5cGVzLmpzb24tcmVzdWx0CkBAIC0xNTMsNyArMTUzLDcgQEAg
cHJvdGVjdGVkOgogY2xhc3MgRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMg
U3VwcGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
RG9tYWluQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIERvbWFp
bkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciopOwotICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1
ZXN0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2Up
IG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2gobG9uZyByZXF1ZXN0SWQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBSZWY8SlNPTjo6T2JqZWN0PiYmIG1lc3NhZ2UpIGZpbmFsOwogcHJpdmF0ZToK
ICAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMp
CkBAIC01MTYsNyArNTE2LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3RvckRvbWFpbkJhY2tlbmREaXNw
YXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZURvbWFpbkJhY2tlbmQKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2Vu
ZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWluSGFuZGxlcj4gaGFuZGxlcikg
eyBtX2RlbGVnYXRlID0gaGFuZGxlcjsgfQotICAgIHZpcnR1YWwgdm9pZCBDb21tYW5kKGxvbmcg
cmVxdWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIGZp
bmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sRG9tYWluRG9tYWlu
SGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdl
dFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZG9tYWluLXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVz
dWx0CmluZGV4IGNjMDhhZTk5YzJkOGZjNDExZTJiOWU1YjUzYzMxYjk1MjFjNTRlZTYuLmQzMGYy
NGI1YzM1Mjg5Njk5NDVjZTdmZTE3OGIwMjEyYjVlNDhkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2Rv
bWFpbi10YXJnZXRUeXBlLW1hdGNoaW5nLWRvbWFpbi1kZWJ1Z2dhYmxlVHlwZS5qc29uLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJs
ZVR5cGUuanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBE
b21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5k
RGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5kRGlzcGF0
Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3BhdGNoZXJI
YW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5n
JiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09O
OjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29tbWFuZChs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1MTYsNyBA
QCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJs
aWMgQWx0ZXJuYXRlRG9tYWluQmFja2VuZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0
UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5k
bGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRl
OworICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRlOgogICAg
IFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9kZWxlZ2F0
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9l
eHBlY3RlZC9kb21haW4tdGFyZ2V0VHlwZXMuanNvbi1yZXN1bHQKaW5kZXggYWU4ZjA5M2U3NGFi
ZjIwOTBhMGVkZjg3NmEwNWEyOGU2ZjM5MTUzZC4uZjg5NDhhMmY3NDcwMTI1YmMyZDUzM2U5ZWQ1
NDM0ODQ5ZDgyZGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLXRhcmdldFR5cGVzLmpzb24t
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi10YXJnZXRUeXBlcy5qc29uLXJlc3VsdApAQCAtMTUz
LDcgKzE1Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIERvbWFpbkJhY2tlbmREaXNwYXRjaGVyIGZp
bmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPERvbWFpbkJhY2tlbmREaXNwYXRjaGVyPiBjcmVhdGUoQmFja2VuZERpc3Bh
dGNoZXImLCBEb21haW5CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3Bh
dGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVj
dD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElk
LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5h
bDsKIHByaXZhdGU6CiAgICAgdm9pZCBDb21tYW5kKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNP
Tjo6T2JqZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQpAQCAtNTE2LDcgKzUxNiw3IEBAIGNsYXNzIE9iakNJbnNwZWN0b3JEb21h
aW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVEb21haW5CYWNrZW5k
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgT2JqQ0luc3BlY3Rv
ckRvbWFpbkJhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbERvbWFpbkRvbWFpbkhhbmRs
ZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
Q29tbWFuZChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBDb21tYW5kKGxvbmcg
cmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQcm90b2Nv
bERvbWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9k
b21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0CmluZGV4IDNiOTA3
Yzc0NWZlZGY5NmI5NDc4NmJkOTU1ZmI4MzJlMjdmZjY1NDguLjJjMDdjYjEzNDdmM2M2MmM0OWVl
YTQ3ZjQ1ZmE3MTlkZTU0ZGIyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12YXJ5
aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZh
cnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3VsdApAQCAtMTg3LDcgKzE4Nyw3IEBAIHByb3Rl
Y3RlZDoKIGNsYXNzIE5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3Vw
cGxlbWVudGFsQmFja2VuZERpc3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0
d29yazFCYWNrZW5kRGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgTmV0d29y
azFCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdl
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6
CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UxKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SlNPTjo6T2Jq
ZWN0PiYmIHBhcmFtZXRlcnMpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BB
VENIRVJTKQpAQCAtMjA0LDcgKzIwNCw3IEBAIHByaXZhdGU6CiBjbGFzcyBOZXR3b3JrM0JhY2tl
bmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnRhbEJhY2tlbmREaXNwYXRjaGVy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI+IGNy
ZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXJIYW5kbGVy
Kik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRo
b2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNw
YXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmpl
Y3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgbG9hZFJlc291cmNlMShs
b25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsKICAgICB2
b2lkIGxvYWRSZXNvdXJjZTIobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYg
cGFyYW1ldGVycyk7CkBAIC03NDUsNyArNzQ1LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazFCYWMK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9y
TmV0d29yazFCYWNrZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhh
bmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgbG9hZFJlc291cmNlMShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
UmVzb3VyY2UxKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPFRlc3RQcm90b2NvbE5ldHdvcmsxRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpA
QCAtNzU0LDEzICs3NTQsMTMgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdvcmszQmFja2VuZERp
c3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazNCYWMKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yTmV0d29yazNCYWNr
ZW5kRGlzcGF0Y2hlcihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrM0RvbWFpbkhhbmRsZXI+IGhhbmRs
ZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291
cmNlMShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZTIobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVz
b3VyY2UzKGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
c291cmNlNChsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRS
ZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVzb3VyY2U2KGxvbmcgcmVxdWVzdElkKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9h
ZFJlc291cmNlNyhsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkUmVzb3Vy
Y2UxKGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZTIobG9uZyBy
ZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9hZFJlc291cmNlMyhsb25nIHJlcXVlc3RJZCkg
ZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2U0KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKKyAg
ICB2b2lkIGxvYWRSZXNvdXJjZTUobG9uZyByZXF1ZXN0SWQpIGZpbmFsOworICAgIHZvaWQgbG9h
ZFJlc291cmNlNihsb25nIHJlcXVlc3RJZCkgZmluYWw7CisgICAgdm9pZCBsb2FkUmVzb3VyY2U3
KGxvbmcgcmVxdWVzdElkKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPGlkPFRlc3RQ
cm90b2NvbE5ldHdvcmszRG9tYWluSGFuZGxlcj4+IG1fZGVsZWdhdGU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZW51bS12YWx1ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29u
LXJlc3VsdAppbmRleCA1OTc1N2JiNzBiMDViMWZkOTI2OGIyOGRkMWRkMzExN2JkNWI0MmNmLi5m
MDZmZWJiNzhkNzFlZGFiMmY1YWI2OWZlODZmYTE1NGE4YzE1YzRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9lbnVtLXZhbHVlcy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29uLXJl
c3VsdApAQCAtMTcwLDcgKzE3MCw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIENvbW1hbmREb21haW5C
YWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0
Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDb21tYW5kRG9tYWluQmFja2VuZERpc3Bh
dGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hlciYsIENvbW1hbmREb21haW5CYWNrZW5kRGlz
cGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25z
dCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwg
UmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBj
b21tYW5kV2l0aEVudW1SZXR1cm5WYWx1ZShsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9i
amVjdD4mJiBwYXJhbWV0ZXJzKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQ
QVRDSEVSUykKQEAgLTYzMyw3ICs2MzMsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yQ29tbWFuZERv
bWFpbkJhY2tlbmREaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIEFsdGVybmF0ZUNvbW1hbgogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JDb21t
YW5kRG9tYWluQmFja2VuZERpc3BhdGNoZXIoaWQ8VGVzdFByb3RvY29sQ29tbWFuZERvbWFpbkRv
bWFpbkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxlZ2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgY29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQpIG92ZXJy
aWRlOworICAgIHZvaWQgY29tbWFuZFdpdGhFbnVtUmV0dXJuVmFsdWUobG9uZyByZXF1ZXN0SWQp
IGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ8VGVzdFByb3RvY29sQ29tbWFuZERv
bWFpbkRvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2
ZW50LXRhcmdldFR5cGUtbWF0Y2hpbmctZG9tYWluLWRlYnVnZ2FibGVUeXBlLmpzb24tcmVzdWx0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUu
anNvbi1yZXN1bHQKaW5kZXggMzk0NGY0OGZhYjM1MGI3YzFmYTVmZjllZDMwZWJmMDljODEyNzUz
Yy4uZDg5YTk3ZmY1NWRmZWM0Mzk3ZTBlYjc0YWI1ZGZkMWU0NDBlNzRmYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVidWdnYWJsZVR5cGUuanNv
bi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvZXZlbnQtdGFyZ2V0VHlwZS1tYXRjaGluZy1kb21haW4tZGVi
dWdnYWJsZVR5cGUuanNvbi1yZXN1bHQKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcm90ZWN0ZWQ6CiBj
bGFzcyBEb21haW5CYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50YWxC
YWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEb21haW5CYWNrZW5k
RGlzcGF0Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgRG9tYWluQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIFJlZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaXNwYXRjaChsb25nIHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIFJl
ZjxKU09OOjpPYmplY3Q+JiYgbWVzc2FnZSkgZmluYWw7CiBwcml2YXRlOgogICAgIHZvaWQgQ29t
bWFuZChsb25nIHJlcXVlc3RJZCwgUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzKTsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKQEAgLTUxNiw3ICs1
MTYsNyBAQCBjbGFzcyBPYmpDSW5zcGVjdG9yRG9tYWluQmFja2VuZERpc3BhdGNoZXIgZmluYWwg
OiBwdWJsaWMgQWx0ZXJuYXRlRG9tYWluQmFja2VuZAogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIE9iakNJbnNwZWN0b3JEb21haW5CYWNrZW5kRGlzcGF0Y2hlcihp
ZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUg
PSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2b2lkIENvbW1hbmQobG9uZyByZXF1ZXN0SWQpIG92
ZXJyaWRlOworICAgIHZvaWQgQ29tbWFuZChsb25nIHJlcXVlc3RJZCkgZmluYWw7CiBwcml2YXRl
OgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xEb21haW5Eb21haW5IYW5kbGVyPj4gbV9k
ZWxlZ2F0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVh
dHVyZS1ndWFyZHMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVh
dHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKaW5kZXggMWJkYTcxMjUyOTVkNzlhM2U1YzE4ZTA5NjQ1
YjY5Y2E4NTkxYzgxNi4uMDk0NmI1M2UzZjgxNzdkNzY2NjY1ODE3ZmM5YjI0MjViNDU5OGZiZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpz
b24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJk
cy5qc29uLXJlc3VsdApAQCAtMTY0LDcgKzE2NCw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdv
cmsxQmFja2VuZERpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudGFsQmFja2VuZERp
c3BhdGNoZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29yazFCYWNrZW5kRGlzcGF0
Y2hlcj4gY3JlYXRlKEJhY2tlbmREaXNwYXRjaGVyJiwgTmV0d29yazFCYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpT
T046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkUmVz
b3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCkBAIC02MTQsNyAr
NjE0LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5ldHdvcmsxQmFja2VuZERpc3BhdGNoZXIgZmlu
YWwgOiBwdWJsaWMgQWx0ZXJuYXRlTmV0d29yazFCYWMKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVjdG9yTmV0d29yazFCYWNrZW5kRGlzcGF0Y2hl
cihpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURvbWFpbkhhbmRsZXI+IGhhbmRsZXIpIHsgbV9kZWxl
Z2F0ZSA9IGhhbmRsZXI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKGxvbmcgcmVx
dWVzdElkKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkg
ZmluYWw7CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZDxUZXN0UHJvdG9jb2xOZXR3b3JrMURv
bWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMt
d2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBs
YXRmb3JtLmpzb24tcmVzdWx0CmluZGV4IDliM2NlZTZiZTY1ZWE1MWZhYTYzNGI3MmFjYjg3MTU0
OTA2NWZlMzAuLmM2ZTY4ZjRhOWFlZGQzZDg0MzY3MGEyMmYwY2I4MzUzMTdlZjY0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMv
ZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21hYy9leHBlY3Rl
ZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtMTUzLDcgKzE1
Myw3IEBAIHByb3RlY3RlZDoKIGNsYXNzIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6
IHB1YmxpYyBTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0Y2hlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxOZXR3b3JrQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShCYWNrZW5kRGlzcGF0Y2hl
ciYsIE5ldHdvcmtCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIqKTsKLSAgICB2b2lkIGRpc3BhdGNo
KGxvbmcgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4m
JiBtZXNzYWdlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoKGxvbmcgcmVxdWVzdElkLCBj
b25zdCBTdHJpbmcmIG1ldGhvZCwgUmVmPEpTT046Ok9iamVjdD4mJiBtZXNzYWdlKSBmaW5hbDsK
IHByaXZhdGU6CiAgICAgdm9pZCBsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxK
U09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycyk7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5B
VEVfRElTUEFUQ0hFUlMpCkBAIC01ODksNyArNTg5LDcgQEAgY2xhc3MgT2JqQ0luc3BlY3Rvck5l
dHdvcmtCYWNrZW5kRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBBbHRlcm5hdGVOZXR3b3JrQmFj
a2UKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBPYmpDSW5zcGVj
dG9yTmV0d29ya0JhY2tlbmREaXNwYXRjaGVyKGlkPFRlc3RQcm90b2NvbE5ldHdvcmtEb21haW5I
YW5kbGVyPiBoYW5kbGVyKSB7IG1fZGVsZWdhdGUgPSBoYW5kbGVyOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGxvYWRSZXNvdXJjZShsb25nIHJlcXVlc3RJZCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2Fk
UmVzb3VyY2UobG9uZyByZXF1ZXN0SWQpIGZpbmFsOwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8
aWQ8VGVzdFByb3RvY29sTmV0d29ya0RvbWFpbkhhbmRsZXI+PiBtX2RlbGVnYXRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggMTk4MGVlYWZjYjk3
MWNhMzk2YjZhNTk1ZjAzZGI2YTk1ZDdiN2IzMy4uZDQzZTA4Y2M3YzJjMzM2ZWMyMzUzOWE3MmRm
Zjk2Y2UwZmIwYzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRX
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5j
cHAKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNGaW5pc2hlZENvbXBp
bGluZyB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CitjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIGZpbmFsIDogcHVi
bGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKICAgICAgICAgOiBBdXRvbWF0
aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0aW9uLmNv
cHlSZWYoKSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd29ya2xpc3Qu
bV9udW1BdmFpbGFibGVUaHJlYWRzKys7CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgp
IGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAg
ewogI2lmIE9TKExJTlVYKQogICAgICAgICByZXR1cm4gIkpJVFdvcmtlciI7CkBAIC0xMTMsOCAr
MTEzLDggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogICAgIAotcHJvdGVjdGVkOgotICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlCitwcml2YXRlOgor
ICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewog
ICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFkcyk7
CiAgICAgICAgIApAQCAtMTI2LDcgKzEyNiw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJu
IFBvbGxSZXN1bHQ6Oldvcms7CiAgICAgfQogICAgIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92
ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFtX215UGxhbnMuaXNFbXB0eSgpKTsKICAgICAgICAgCkBAIC0xNDYsOCArMTQ2
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFk
cysrOwogICAgICAgICByZXR1cm4gV29ya1Jlc3VsdDo6Q29udGludWU7CiAgICAgfQotICAgIAot
cHJpdmF0ZToKKwogICAgIEpJVFdvcmtsaXN0JiBtX3dvcmtsaXN0OwogICAgIFBsYW5zIG1fbXlQ
bGFuczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggNDNkMTMxYzgz
NThjZTllMzE5YmQzOWU5NzVkOTFlMGFlM2Y3MGQyOS4uY2E0ZTBlMDI4ZWQ1MDE4ZjYyN2JlNWY2
M2JkZGZiYjEwNWJhNzcxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAt
MzAxLDggKzMwMSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBOdWxsTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUo
Qnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBqc051bGwoKTsgfQor
ICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgSlNWYWx1ZSBqc1ZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgZmluYWwgeyByZXR1
cm4ganNOdWxsKCk7IH0KICAgICB9OwogCiAgICAgY2xhc3MgQm9vbGVhbk5vZGUgZmluYWwgOiBw
dWJsaWMgQ29uc3RhbnROb2RlIHsKQEAgLTMxMSw4ICszMTEsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgYm9vbCB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIGJvb2wgaXNCb29sZWFuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQotICAgICAgICBKU1ZhbHVlIGpzVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBqc0Jvb2xlYW4obV92YWx1ZSk7IH0KKyAgICAgICAgYm9vbCBpc0Jvb2xl
YW4oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIEpTVmFsdWUganNWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGpzQm9vbGVhbihtX3Zh
bHVlKTsgfQogCiAgICAgICAgIGJvb2wgbV92YWx1ZTsKICAgICB9OwpAQCAtMzUyLDggKzM1Miw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgpIHsg
cmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgaXNTdHJpbmco
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIEpTVmFsdWUganNWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICBib29sIGlzU3Ry
aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBKU1ZhbHVlIGpzVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3ZhbHVlOwogICAgIH07CkBAIC01NDksNyArNTQ5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdygpIHsgcmV0dXJuIG1fcmF3OyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG1fY29va2VkOwogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyKiBtX3JhdzsKQEAgLTU3Nyw3ICs1NzcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhw
cmVzc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX3RlbXBsYXRlRXhwcmVzc2lvbnM7IH0KIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CiAKICAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogbV90ZW1wbGF0ZVN0
cmluZ3M7CiAgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX3RlbXBsYXRlRXhw
cmVzc2lvbnM7CkBAIC01OTAsNyArNTkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRl
bXBsYXRlTGl0ZXJhbE5vZGUqIHRlbXBsYXRlTGl0ZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdGVt
cGxhdGVMaXRlcmFsOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2Rl
KiBtX3RhZzsKICAgICAgICAgVGVtcGxhdGVMaXRlcmFsTm9kZSogbV90ZW1wbGF0ZUxpdGVyYWw7
CkBAIC02MDEsNyArNjAxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ0V4cE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3Qg
SWRlbnRpZmllciYgZmxhZ3MpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3BhdHRlcm47CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fZmxhZ3M7CkBA
IC02MTIsNyArNjEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFRoaXNOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3Mg
U3VwZXJOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAgLTYyMCw4ICs2MjAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3VwZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc1N1cGVyTm9kZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgYm9vbCBpc1N1cGVyTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3MgSW1wb3J0Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Np
b25EYXRhIHsKQEAgLTYyOSw4ICs2MjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW1w
b3J0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0ltcG9ydE5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wg
aXNJbXBvcnROb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsK
QEAgLTY0OSw3ICs2NDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIGJvb2wgaXNOZXdUYXJnZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAg
fTsKIAogICAgIGNsYXNzIEltcG9ydE1ldGFOb2RlIGZpbmFsIDogcHVibGljIE1ldGFQcm9wZXJ0
eU5vZGUgewpAQCAtNjU4LDcgKzY1OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCBpc0ltcG9ydE1ldGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtNjcwLDEx
ICs2NzAsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50OyB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0g
ICAgICAgIGJvb2wgaXNQdXJlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgICAgIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
LSAgICAgICAgYm9vbCBpc1Jlc29sdmVOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGlzUHVyZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFs
OworICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CisgICAgICAgIGJvb2wgaXNSZXNvbHZlTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwogICAgICAgICBKU1RleHRQ
b3NpdGlvbiBtX3N0YXJ0OwpAQCAtNzAxLDE1ICs3MDEsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEFycmF5Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFbGVtZW50Tm9kZSopOwog
ICAgICAgICBBcnJheU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50IGVsaXNpb24sIEVs
ZW1lbnROb2RlKik7CiAKLSAgICAgICAgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBBcmd1bWVudExpc3ROb2RlKiB0b0Fy
Z3VtZW50TGlzdChQYXJzZXJBcmVuYSYsIGludCwgaW50KSBjb25zdDsKIAogICAgICAgICBFbGVt
ZW50Tm9kZSogZWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCi0gICAgICAgIGJvb2wgaXNTaW1wbGVBcnJheSgpIGNvbnN0IG92ZXJyaWRlOworICAg
ICAgICBib29sIGlzU2ltcGxlQXJyYXkoKSBjb25zdCBmaW5hbDsKIAogICAgICAgICBFbGVtZW50
Tm9kZSogbV9lbGVtZW50OwogICAgICAgICBpbnQgbV9lbGlzaW9uOwpAQCAtNzc3LDcgKzc3Nyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiwgUmVnaXN0ZXJJRCosIFZlY3RvcjxKU1RleHRQ
b3NpdGlvbj4qKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QgPSBudWxs
cHRyKSBvdmVycmlkZQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0ID0gbnVsbHB0cikgZmluYWwKICAg
ICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGVtaXRCeXRlY29kZShnZW5lcmF0b3IsIGRzdCwg
bnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIH0KQEAgLTc5MiwxMCArNzkyLDEwIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgT2JqZWN0TGl0ZXJhbE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJik7CiAgICAgICAgIE9iamVjdExpdGVyYWxOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIFByb3BlcnR5TGlzdE5vZGUqKTsKLSAgICAgICAgYm9vbCBpc09iamVjdExp
dGVyYWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNP
YmplY3RMaXRlcmFsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAogICAgICAgICBQcm9wZXJ0eUxpc3ROb2RlKiBtX2xpc3Q7CiAgICAgfTsKQEAgLTgxMCwx
MCArODEwLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIHN1YnNjcmlwdEhhc0Fz
c2lnbm1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50czsgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIGJvb2wgaXNCcmFja2V0QWNjZXNzb3JOb2RlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzTG9jYXRpb24o
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCcmFja2V0QWNj
ZXNzb3JOb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
QEAgLTgyOCwxMCArODI4LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudDsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAotICAgICAgICBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9Ci0gICAgICAgIGJvb2wgaXNEb3RBY2Nlc3Nvck5vZGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0RvdEFjY2Vzc29yTm9kZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNl
OwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwpAQCAtODQ0LDkgKzg0NCw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZXhwcmVzc2lvbjsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
ICAgICAKLSAgICAgICAgYm9vbCBpc1NwcmVhZEV4cHJlc3Npb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9uKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByZXNz
aW9uOwogICAgIH07CiAgICAgCkBAIC04NTcsNyArODU3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBy
ZXNzaW9uOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIAogICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9leHByZXNzaW9uOwogICAgIH07CkBAIC04NzEsNyArODcxLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogICAgIH07CiAKICAgICBjbGFzcyBBcmd1bWVudHNOb2RlIGZpbmFsIDogcHVibGljIFBh
cnNlckFyZW5hRnJlZWFibGUgewpAQCAtODg4LDcgKzg4OCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBOZXdFeHByTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9k
ZSosIEFyZ3VtZW50c05vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIG1fZXhwcjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtODk5LDkg
Kzg5OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFdmFsRnVuY3Rpb25DYWxsTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1
bmN0aW9uQ2FsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBpc0Z1bmN0aW9uQ2FsbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAg
ICBBcmd1bWVudHNOb2RlKiBtX2FyZ3M7CiAgICAgfTsKQEAgLTkxMSw5ICs5MTEsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25DYWxsVmFsdWVOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wg
aXNGdW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9h
cmdzOwpAQCAtOTI0LDkgKzkyNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlv
bkNhbGxSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVy
JiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYg
bV9pZGVudDsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtOTM3LDkgKzkzNyw5
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGdW5jdGlvbkNhbGxCcmFja2V0Tm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUq
IHN1YnNjcmlwdCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgQXJndW1lbnRzTm9kZSos
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwog
Ci0gICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jdGlvbkNhbGwoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtOTcxLDcgKzk3MSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljTm9kZShUeXBlLCBjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5OjpFbnRyeSwgY29uc3QgSWRlbnRp
ZmllciYsIEFyZ3VtZW50c05vZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RF
bmQpOwogCi0gICAgICAgIGJvb2wgaXNCeXRlY29kZUludHJpbnNpY05vZGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNCeXRlY29kZUludHJpbnNpY05v
ZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgICAgIEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0
cnk6OkVudHJ5IGVudHJ5KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeTsgfQpAQCAtOTgzLDkgKzk4
Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogI3VuZGVmIEpTQ19ERUNMQVJFX0JZVEVDT0RFX0lOVFJJ
TlNJQ19GVU5DVElPTlMKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1bmN0aW9u
Q2FsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpGdW5jdGlvbjsg
fQorICAgICAgICBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OkZ1bmN0aW9uOyB9CiAKICAgICAgICAgQnl0ZWNvZGVJbnRyaW5zaWNSZWdp
c3RyeTo6RW50cnkgbV9lbnRyeTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsK
QEAgLTk5OCw3ICs5OTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ2FsbEZ1bmN0aW9u
Q2FsbERvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kLCBzaXplX3QgZGlzdGFuY2VUb0lubmVybW9zdENhbGxPckFwcGx5KTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAgICAgICAgIHNpemVfdCBtX2Rpc3RhbmNlVG9Jbm5lcm1vc3RDYWxs
T3JBcHBseTsKICAgICB9OwogICAgIApAQCAtMTAwNyw3ICsxMDA3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIEFyZ3VtZW50c05v
ZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQsIHNpemVfdCBkaXN0YW5j
ZVRvSW5uZXJtb3N0Q2FsbE9yQXBwbHkpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICAgICAgc2l6ZV90
IG1fZGlzdGFuY2VUb0lubmVybW9zdENhbGxPckFwcGx5OwogICAgIH07CiAKQEAgLTEwMTYsNyAr
MTAxNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVSZXNvbHZlTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0Rl
bGV0ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwMjgsNyArMTAy
OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVCcmFja2V0Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1
YnNjcmlwdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKQEAgLTEwNDEsNyArMTA0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBEZWxldGVEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0ZU5vZGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwNTQsNyArMTA1NCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBEZWxldGVWYWx1ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
RXhwcmVzc2lvbk5vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgYm9vbCBpc0RlbGV0
ZU5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTEwNjYsNyArMTA2Niw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWb2lkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNz
aW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xMDc4LDcgKzEwNzgsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJp
ZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTA4OCw3ICsxMDg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFR5cGVPZlZhbHVlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9l
eHByOwogICAgIH07CkBAIC0xMTEyLDEwICsxMTEyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBQb3N0Zml4Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSos
IE9wZXJhdG9yLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdFJlc29sdmUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0QnJhY2tldChCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXREb3QoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0UmVzb2x2ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCcmFja2V0KEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERv
dChCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAg
fTsKIAogICAgIGNsYXNzIFVuYXJ5T3BOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKQEAg
LTExMzksOSArMTEzOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBVbmFyeVBsdXNOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFs
OwogCi0gICAgICAgIEV4cHJlc3Npb25Ob2RlKiBzdHJpcFVuYXJ5UGx1cygpIG92ZXJyaWRlIHsg
cmV0dXJuIGV4cHIoKTsgfQorICAgICAgICBFeHByZXNzaW9uTm9kZSogc3RyaXBVbmFyeVBsdXMo
KSBmaW5hbCB7IHJldHVybiBleHByKCk7IH0KICAgICB9OwogCiAgICAgY2xhc3MgTmVnYXRlTm9k
ZSBmaW5hbCA6IHB1YmxpYyBVbmFyeU9wTm9kZSB7CkBAIC0xMTU4LDcgKzExNTgsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIExvZ2ljYWxOb3ROb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAgICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBM
YWJlbCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIG92
ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29udGV4dChCeXRl
Y29kZUdlbmVyYXRvciYsIExhYmVsJiB0cnVlVGFyZ2V0LCBMYWJlbCYgZmFsc2VUYXJnZXQsIEZh
bGxUaHJvdWdoTW9kZSkgZmluYWw7CiAgICAgfTsKIAogICAgIGNsYXNzIEJpbmFyeU9wTm9kZSA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBAIC0xMjE3LDE0ICsxMjE3LDE0IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgQWRkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzKTsKIAotICAgICAgICBib29sIGlzQWRkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlzQWRkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBTdWJOb2RlIGZpbmFsIDogcHVibGlj
IEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBTdWJOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCi0gICAgICAgIGJvb2wgaXNTdWJ0cmFjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc1N1YnRyYWN0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBMZWZ0
U2hpZnROb2RlIGZpbmFsIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CkBAIC0xMjc2LDcgKzEyNzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSW5zdGFuY2VPZk5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIs
IGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAg
ICBjbGFzcyBJbk5vZGUgZmluYWwgOiBwdWJsaWMgVGhyb3dhYmxlQmluYXJ5T3BOb2RlIHsKQEAg
LTEyODQsNyArMTI4NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJbk5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07
CiAKICAgICBjbGFzcyBFcXVhbE5vZGUgZmluYWwgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAg
LTEyOTIsNyArMTI5Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFcXVhbE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9k
ZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAg
IH07CiAKICAgICBjbGFzcyBOb3RFcXVhbE5vZGUgZmluYWwgOiBwdWJsaWMgQmluYXJ5T3BOb2Rl
IHsKQEAgLTEzMDUsNyArMTMwNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJpY3RF
cXVhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBF
eHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBOb3RTdHJpY3RFcXVhbE5vZGUgZmluYWwgOiBw
dWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAgLTEzMzQsOCArMTMzNCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBMb2dpY2FsT3BOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBMb2dpY2FsT3BlcmF0b3IpOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJl
bCYgdHJ1ZVRhcmdldCwgTGFiZWwmIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIG92ZXJy
aWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGVtaXRCeXRlY29k
ZUluQ29uZGl0aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiB0cnVlVGFyZ2V0
LCBMYWJlbCYgZmFsc2VUYXJnZXQsIEZhbGxUaHJvdWdoTW9kZSkgZmluYWw7CiAKICAgICAgICAg
TG9naWNhbE9wZXJhdG9yIG1fb3BlcmF0b3I7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4
cHIxOwpAQCAtMTM3Niw3ICsxMzc2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbmRp
dGlvbmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbG9naWNh
bCwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRy
KSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9sb2dpY2FsOwogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9leHByMTsKQEAgLTEzODgsNyArMTM4OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBi
b29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRl
bnQ7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OwpAQCAtMTQwMSw3ICsxNDAxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZl
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3Is
IEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
cmlnaHQ7CkBAIC0xNDEyLDExICsxNDEyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNz
IEFzc2lnblJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduUmVz
b2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJl
c3Npb25Ob2RlKiByaWdodCwgQXNzaWdubWVudENvbnRleHQpOwotICAgICAgICBib29sIGlzQXNz
aWduUmVzb2x2ZU5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGJvb2wgaXNBc3NpZ25SZXNvbHZlTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Cisg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9p
ZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CkBAIC0xNDI4LDcgKzE0Mjgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSog
c3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlw
dEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
QEAgLTE0NDMsNyArMTQ0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lv
bk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yLCBFeHByZXNz
aW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRI
YXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtMTQ1OCw3ICsxNDU4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0g
bnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtMTQ3Miw3ICsxNDcyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbkRvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9k
ZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTE0ODUs
NyArMTQ4NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWFkTW9kaWZ5RG90Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRp
ZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3Np
Z25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3Qg
SWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTE0OTksNyArMTQ5OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9y
LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9p
ZGVudDsKQEAgLTE1MTMsNyArMTUxMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBc3Np
Z25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3Zl
cnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgfTsKICAgICAKICAgICBjbGFz
cyBDb21tYU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewpAQCAtMTUyNCw4ICsx
NTI0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbW1hTm9kZSogbmV4dCgpIHsgcmV0
dXJuIG1fbmV4dDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBpc0NvbW1hTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgYm9vbCBpc0NvbW1hTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9k
ZSogbV9leHByOwogICAgICAgICBDb21tYU5vZGUqIG1fbmV4dCB7IG51bGxwdHIgfTsKQEAgLTE1
NjAsMTIgKzE1NjAsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IGxhc3RTdGF0ZW1lbnQoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAgIGJvb2wgaGFzRWFybHlCcmVha09yQ29udGlu
dWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgYm9vbCBoYXNFYXJseUJyZWFrT3JDb250aW51ZSgpIGNvbnN0
IGZpbmFsOwogCi0gICAgICAgIGJvb2wgaXNCbG9jaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0Jsb2NrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgICAgIFNvdXJjZUVsZW1lbnRzKiBtX3N0YXRlbWVudHM7CiAgICAgfTsKQEAg
LTE1NzUsMjEgKzE1NzUsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5U3RhdGVt
ZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29t
cGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAg
Ym9vbCBpc0VtcHR5U3RhdGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgICAgIGJvb2wgaXNFbXB0eVN0YXRlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KICAgICB9OwogICAgIAogICAgIGNsYXNzIERlYnVnZ2VyU3RhdGVtZW50Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIERl
YnVnZ2VyU3RhdGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAotICAgICAgICBi
b29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgICAgIGJvb2wgaXNEZWJ1Z2dlclN0YXRlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGlzRGVidWdnZXJTdGF0ZW1lbnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBu
dWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFz
cyBFeHByU3RhdGVtZW50Tm9kZSBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKQEAgLTE1
OTksOSArMTU5OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSog
ZXhwcigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwcjsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
Ym9vbCBpc0V4cHJTdGF0ZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIGJvb2wgaXNFeHByU3RhdGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAgLTE2MTAsOSArMTYxMCw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgRGVjbGFyYXRpb25TdGF0ZW1lbnQo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29s
IGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgICAgIGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xNjIy
LDcgKzE2MjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRW1wdHlWYXJFeHByZXNzaW9u
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTYz
Miw3ICsxNjMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5TGV0RXhwcmVzc2lv
bihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJik7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZp
bmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE2
NDIsNyArMTY0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJZkVsc2VOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBjb25kaXRpb24sIFN0YXRlbWVudE5v
ZGUqIGlmQmxvY2ssIFN0YXRlbWVudE5vZGUqIGVsc2VCbG9jayk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKICAgICAgICAgYm9vbCB0
cnlGb2xkQnJlYWtBbmRDb250aW51ZShCeXRlY29kZUdlbmVyYXRvciYsIFN0YXRlbWVudE5vZGUq
IGlmQmxvY2ssCiAgICAgICAgICAgICBMYWJlbComIHRydWVUYXJnZXQsIEZhbGxUaHJvdWdoTW9k
ZSYpOwogCkBAIC0xNjU2LDcgKzE2NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRG9X
aGlsZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgU3RhdGVtZW50Tm9kZSosIEV4cHJlc3Np
b25Ob2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxs
cHRyKSBmaW5hbDsKIAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKQEAgLTE2NjcsNyArMTY2Nyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBXaGlsZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSog
bV9leHByOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKQEAgLTE2NzksNyAr
MTY3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGb3JOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBF
eHByZXNzaW9uTm9kZSogZXhwcjMsIFN0YXRlbWVudE5vZGUqLCBWYXJpYWJsZUVudmlyb25tZW50
Jik7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQg
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBm
aW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByMTsKICAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fZXhwcjI7CkBAIC0xNzEyLDE4ICsxNzEyLDE4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBSZWdpc3RlcklEKiB0cnlHZXRCb3VuZExvY2FsKEJ5dGVjb2RlR2VuZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdExvb3BIZWFkZXIoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogICAgIH07CiAgICAgCiAgICAgY2xhc3MgRm9yT2ZOb2RlIGZpbmFsIDogcHVi
bGljIEVudW1lcmF0aW9uTm9kZSB7CiAgICAgICAgIEpTQ19NQUtFX1BBUlNFUl9BUkVOQV9ERUxF
VEFCTEVfQUxMT0NBVEVEKEZvck9mTm9kZSk7CiAgICAgcHVibGljOgogICAgICAgICBGb3JPZk5v
ZGUoYm9vbCwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqLCBFeHByZXNz
aW9uTm9kZSosIFN0YXRlbWVudE5vZGUqLCBWYXJpYWJsZUVudmlyb25tZW50Jik7Ci0gICAgICAg
IGJvb2wgaXNGb3JPZk5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIGJvb2wgaXNGb3JPZk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAg
ICAgIGJvb2wgaXNGb3JBd2FpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb3JBd2FpdDsgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAK
ICAgICAgICAgY29uc3QgYm9vbCBtX2lzRm9yQXdhaXQ7CiAgICAgfTsKQEAgLTE3MzQsOSArMTcz
NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMYWJlbCogdHJpdmlhbFRhcmdldChCeXRl
Y29kZUdlbmVyYXRvciYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGhh
c0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
ICAgIGJvb2wgaXNDb250aW51ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAg
ICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNDb250aW51ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAg
IGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE3NDcsOSArMTc0Nyw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMYWJlbCogdHJpdmlhbFRhcmdldChCeXRlY29kZUdl
bmVyYXRvciYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGhhc0NvbXBs
ZXRpb25WYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIGJv
b2wgaXNCcmVhaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdm9p
ZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIp
IG92ZXJyaWRlOworICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNCcmVhaygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIG1faWRlbnQ7CiAgICAgfTsKQEAgLTE3NjEsOSArMTc2MSw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5h
bDsKIAotICAgICAgICBib29sIGlzUmV0dXJuTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgYm9vbCBpc1JldHVybk5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fdmFsdWU7CiAgICAgfTsKQEAg
LTE3NzMsNyArMTc3Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXaXRoTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIFN0YXRlbWVudE5vZGUqLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIHVpbnQzMl90IGV4cHJlc3Npb25MZW5ndGgpOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAK
ICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CkBAIC0xNzg1LDExICsxNzg1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHB1YmxpYzoKICAgICAgICAgTGFiZWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIFN0YXRlbWVudE5vZGUqKTsKIAotICAgICAgICBib29sIGlzTGFi
ZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNMYWJl
bCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IGJvb2wgaGFzQ29tcGxldGlvblZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0
ZW1lbnQtPmhhc0NvbXBsZXRpb25WYWx1ZSgpOyB9Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAg
ICAgICAgYm9vbCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3N0
YXRlbWVudC0+aGFzQ29tcGxldGlvblZhbHVlKCk7IH0KKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAg
ICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fbmFtZTsKICAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CkBAIC0xODAwLDcgKzE4MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgVGhyb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xODExLDcgKzE4
MTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVHJ5Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBTdGF0ZW1lbnROb2RlKiB0cnlCbG9jaywgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2Rl
KiBjYXRjaFBhdHRlcm4sIFN0YXRlbWVudE5vZGUqIGNhdGNoQmxvY2ssIFZhcmlhYmxlRW52aXJv
bm1lbnQmIGNhdGNoRW52aXJvbm1lbnQsIFN0YXRlbWVudE5vZGUqIGZpbmFsbHlCbG9jayk7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsK
IAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3RyeUJsb2NrOwogICAgICAgICBEZXN0cnVjdHVy
aW5nUGF0dGVybk5vZGUqIG1fY2F0Y2hQYXR0ZXJuOwpAQCAtMTkxMiw3ICsxOTEyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rp
b24gPSBmYWxzZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0Q29sdW1uOwogICAgICAgICB1
bnNpZ25lZCBtX2VuZENvbHVtbjsKICAgICB9OwpAQCAtMTkyNyw3ICsxOTI3LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBzY29wZUlzRnVuY3Rpb24g
PSBmYWxzZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIGZpbmFsOwogCiAgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAgIH07CkBAIC0x
OTQ3LDcgKzE5NDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAgICAgICAgIHVu
c2lnbmVkIG1fc3RhcnRDb2x1bW47CiAgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAg
ICAgICBSZWY8TW9kdWxlU2NvcGVEYXRhPiBtX21vZHVsZVNjb3BlRGF0YTsKQEAgLTIwMDgsOCAr
MjAwOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbW9kdWxl
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFtZTsgfQogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5h
bHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGFuYWx5
emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKIAogICAgICAgICBJbXBvcnRTcGVjaWZp
ZXJMaXN0Tm9kZSogbV9zcGVjaWZpZXJMaXN0OwogICAgICAgICBNb2R1bGVOYW1lTm9kZSogbV9t
b2R1bGVOYW1lOwpAQCAtMjAyMiw4ICsyMDIyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE1vZHVsZU5hbWVOb2RlKiBtb2R1bGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVOYW1l
OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQg
YW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmlu
YWw7CisgICAgICAgIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIGZpbmFsOwog
CiAgICAgICAgIE1vZHVsZU5hbWVOb2RlKiBtX21vZHVsZU5hbWU7CiAgICAgfTsKQEAgLTIwMzYs
OCArMjAzNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBs
b2NhbE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsTmFtZTsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxl
QW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2b2lkIGFu
YWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKICAgICAgICAgU3RhdGVtZW50Tm9k
ZSogbV9kZWNsYXJhdGlvbjsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9sb2NhbE5hbWU7
CiAgICAgfTsKQEAgLTIwNDksOCArMjA0OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBj
b25zdCBTdGF0ZW1lbnROb2RlJiBkZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuICptX2RlY2xh
cmF0aW9uOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIG92ZXJyaWRlOworICAgICAgICB2
b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0
cikgZmluYWw7CisgICAgICAgIHZvaWQgYW5hbHl6ZU1vZHVsZShNb2R1bGVBbmFseXplciYpIGZp
bmFsOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX2RlY2xhcmF0aW9uOwogICAgIH07CiAKQEAg
LTIwODksOCArMjA4OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNb2R1bGVOYW1lTm9k
ZSogbW9kdWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlTmFtZTsgfQogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGFuYWx5emVNb2R1bGUo
TW9kdWxlQW5hbHl6ZXImKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOworICAgICAgICB2
b2lkIGFuYWx5emVNb2R1bGUoTW9kdWxlQW5hbHl6ZXImKSBmaW5hbDsKICAgICAgICAgRXhwb3J0
U3BlY2lmaWVyTGlzdE5vZGUqIG1fc3BlY2lmaWVyTGlzdDsKICAgICAgICAgTW9kdWxlTmFtZU5v
ZGUqIG1fbW9kdWxlTmFtZSB7IG51bGxwdHIgfTsKICAgICB9OwpAQCAtMjE5MCw5ICsyMTkwLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0
ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzOyB9CiAKLSAgICAgICAgdm9pZCBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJy
aWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAgICAgYm9vbCBpc0Z1bmN0aW9uTm9kZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBpc0Z1bmN0aW9u
Tm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICB2b2lkIGZpbmlz
aFBhcnNpbmcoY29uc3QgSWRlbnRpZmllciYsIEZ1bmN0aW9uTW9kZSk7CiAgICAgICAgIApAQCAt
MjI0NCw5ICsyMjQ0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFycm93RnVuY0V4cHJO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBGdW5jdGlvbk1l
dGFkYXRhTm9kZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKLSAgICAg
ICAgYm9vbCBpc0Fycm93RnVuY0V4cHJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGlzQXJyb3dGdW5jRXhwck5vZGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIE1ldGhvZERlZmluaXRpb25Ob2RlIGZp
bmFsIDogcHVibGljIEZ1bmNFeHByTm9kZSB7CkBAIC0yMjU0LDcgKzIyNTQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWV0aG9kRGVmaW5pdGlvbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiwgY29uc3QgU291
cmNlQ29kZSYpOwogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92
ZXJyaWRlOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogICAgIH07CiAKICAgICBjbGFzcyBZ
aWVsZEV4cHJOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dh
YmxlRXhwcmVzc2lvbkRhdGEgewpAQCAtMjI2NSw3ICsyMjY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIGJvb2wgZGVsZWdhdGUoKSBjb25zdCB7IHJldHVybiBtX2RlbGVnYXRlOyB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxwdHIpIG92ZXJyaWRlOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51
bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2FyZ3VtZW50OwogICAg
ICAgICBib29sIG1fZGVsZWdhdGU7CkBAIC0yMjc4LDcgKzIyNzgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGFyZ3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9h
cmd1bWVudDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVycmlkZTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9h
cmd1bWVudDsKICAgICB9OwpAQCAtMjI4OSw5ICsyMjg5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIERlZmluZUZpZWxkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVu
dGlmaWVyKiwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZGVzdGlu
YXRpb24gPSBudWxscHRyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiBkZXN0aW5hdGlvbiA9IG51bGxwdHIpIGZpbmFs
OwogCi0gICAgICAgIGJvb2wgaXNEZWZpbmVGaWVsZE5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNEZWZpbmVGaWVsZE5vZGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciogbV9pZGVudDsK
ICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYXNzaWduOwpAQCAtMjMxMyw5ICsyMzEzLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgaGFzSW5zdGFuY2VGaWVsZHMoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzRWxlbWVudHMgPyBtX2NsYXNzRWxlbWVudHMtPmhhc0luc3RhbmNlRmll
bGRzKCkgOiBmYWxzZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBmaW5hbDsKIAotICAgICAgICBib29sIGlzQ2xhc3NF
eHByTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9vbCBp
c0NsYXNzRXhwck5vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
U291cmNlQ29kZSBtX2NsYXNzU291cmNlOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX25h
bWU7CkBAIC0yMzYzLDEwICsyMzYzLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
RGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2RlKiBwYXR0ZXJuOwogICAgICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIGRlZmF1bHRWYWx1ZTsKICAgICAgICAgfTsKLSAgICAgICAgdm9pZCBjb2xsZWN0Qm91
bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBvdmVycmlkZTsKLSAgICAg
ICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RCaW5kaW5nKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9kZSopIG92ZXJyaWRlOwot
ICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBj
b25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RC
aW5kaW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9k
ZSopIGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKIAogICAgICAgICBWZWN0b3I8RW50cnk+IG1fdGFyZ2V0UGF0dGVybnM7CiAgICAgfTsK
QEAgLTI0MDAsOSArMjQwMCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBw
cml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVu
dGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdm9pZCB0
b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgY29s
bGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QgZmluYWw7Cisg
ICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNv
bnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBm
aW5hbDsKICAgICAgICAgc3RydWN0IEVudHJ5IHsKICAgICAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eUV4
cHJlc3Npb247CkBAIC0yNDI1LDExICsyNDI1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90
RW5kOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgY29sbGVjdEJvdW5k
SWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IG92
ZXJyaWRlOwotICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRp
Zmllcj4mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgdG9TdHJpbmco
U3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogICAgICAgICAKLSAgICAgICAgYm9vbCBpc0Jp
bmRpbmdOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29s
IGlzQmluZGluZ05vZGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAg
SlNUZXh0UG9zaXRpb24gbV9kaXZvdFN0YXJ0OwogICAgICAgICBKU1RleHRQb3NpdGlvbiBtX2Rp
dm90RW5kOwpAQCAtMjQ0MSwxNCArMjQ0MSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFJlc3RQYXJhbWV0ZXJOb2RlKERlc3RydWN0dXJpbmdQYXR0ZXJuTm9kZSos
IHVuc2lnbmVkIG51bVBhcmFtZXRlcnNUb1NraXApOwogCi0gICAgICAgIGJvb2wgaXNSZXN0UGFy
YW1ldGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBib29sIGlz
UmVzdFBhcmFtZXRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICB2
b2lkIGVtaXQoQnl0ZWNvZGVHZW5lcmF0b3ImKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZv
aWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCopIGNvbnN0IG92ZXJyaWRlOwotICAgICAgICB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxk
ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVy
cyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBiaW5kVmFs
dWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CisgICAgICAg
IHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciYpIGNvbnN0IGZpbmFsOwogCiAgICAgICAgIERl
c3RydWN0dXJpbmdQYXR0ZXJuTm9kZSogbV9wYXR0ZXJuOwogICAgICAgICB1bnNpZ25lZCBtX251
bVBhcmFtZXRlcnNUb1NraXA7CkBAIC0yNDYzLDExICsyNDYzLDExIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVy
biBtX2Rpdm90RW5kOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNvbGxlY3RCb3Vu
ZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOwotICAgICAg
ICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgY29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50
aWZpZXI+JikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIHRvU3RyaW5n
KFN0cmluZ0J1aWxkZXImKSBjb25zdCBmaW5hbDsKIAotICAgICAgICBib29sIGlzQXNzaWdubWVu
dEVsZW1lbnROb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBi
b29sIGlzQXNzaWdubWVudEVsZW1lbnROb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fZGl2b3RTdGFydDsKICAgICAgICAgSlNUZXh0
UG9zaXRpb24gbV9kaXZvdEVuZDsKQEAgLTI0ODAsOSArMjQ4MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUqIGJpbmRpbmdzKCkgeyByZXR1cm4g
bV9iaW5kaW5nczsgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBib29sIGlzQXNz
aWdubWVudExvY2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAg
ICBib29sIGlzRGVzdHJ1Y3R1cmluZ05vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gbnVsbHB0cikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNBc3NpZ25t
ZW50TG9jYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGJvb2wg
aXNEZXN0cnVjdHVyaW5nTm9kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSBudWxscHRyKSBmaW5hbDsKIAogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUq
IG1fYmluZGluZ3M7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2luaXRpYWxpemVyOwpAQCAt
MjUyMywxMiArMjUyMywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IEZ1bmNEZWNsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwg
RnVuY3Rpb25NZXRhZGF0YU5vZGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CiAKLSAgICAgICAgYm9v
bCBoYXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQot
ICAgICAgICBib29sIGlzRnVuY0RlY2xOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgICAgICBib29sIGhhc0NvbXBsZXRpb25WYWx1ZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgaXNGdW5jRGVjbE5vZGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CiAgICAgICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2RlKiBtZXRhZGF0YSgp
IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCiAgICAgICAgIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
KiBtX21ldGFkYXRhOwogICAgIH07CkBAIC0yNTM4LDkgKzI1MzgsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQ2xhc3NEZWNsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSogY2xhc3NFeHByZXNzaW9uKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSBudWxscHRyKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IG51bGxwdHIpIGZpbmFsOwogCi0gICAgICAgIGJvb2wgaGFzQ29tcGxldGlv
blZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCBo
YXNDb21wbGV0aW9uVmFsdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2NsYXNzRGVjbGFyYXRpb247CiAgICAgfTsKQEAgLTI1OTMs
NyArMjU5Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTd2l0Y2hOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQ2FzZUJsb2NrTm9kZSosIFZhcmlhYmxl
RW52aXJvbm1lbnQmLCBGdW5jdGlvblN0YWNrJiYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IG51bGxw
dHIpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWw7CiAKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fZXhwcjsKICAgICAgICAgQ2FzZUJsb2NrTm9kZSogbV9ibG9jazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCAzM2UzOWQxYTg3Nzhk
YjI5ODIzNTllYzJhODRlNjhiZmQ5NmY1NDM0Li5iNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUyOTk3
ZjcyNWI3NjAwM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlci5oCkBAIC0xMzEsMTkgKzEzMSwxOSBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrOwogICAgIH07CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgY2xhc3MgV2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CisgICAgY2xh
c3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VQcm92aWRl
ciB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI+IGNyZWF0ZShWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4m
IHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFdURk1vdmUoZGF0YSksIHNv
dXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpKSk7CiAgICAgICAgIH0KIAotICAgICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZp
bmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZS5pbXBsKCktPmhhc2go
KTsKICAgICAgICAgfQogCi0gICAgICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3Qgb3ZlcnJp
ZGUKKyAgICAgICAgU3RyaW5nVmlldyBzb3VyY2UoKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gbV9zb3VyY2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRhVmlldy5oCmluZGV4IGJkMjhlNzFkYzQ2ZTI5OTA0NWJiMTE3Y2NiYjdl
MTc0NGQzMDg5MjMuLmRhMDZiNGJiMjE0NDZiNmViNmU5NWZkZmI5ZTI0NWZiNjFiMzVjODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGFWaWV3LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0YVZpZXcuaApAQCAtMzAsMjAgKzMwLDE3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1
ZmZlclZpZXcgewotcHJvdGVjdGVkOgotICAgIERhdGFWaWV3KFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7Ci0gICAgCitjbGFz
cyBEYXRhVmlldyBmaW5hbCA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogcHVibGljOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8RGF0YVZpZXc+IGNyZWF0ZShSZWZQdHI8QXJy
YXlCdWZmZXI+JiYsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAg
c3RhdGljIFJlZjxEYXRhVmlldz4gY3JlYXRlKFJlZlB0cjxBcnJheUJ1ZmZlcj4mJik7CiAgICAg
Ci0gICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgVHlwZWRB
cnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gVHlw
ZURhdGFWaWV3OwogICAgIH0KIAotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEpTR2xvYmFs
T2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZTsKKyAgICBKU0FycmF5QnVmZmVyVmll
dyogd3JhcChKU0dsb2JhbE9iamVjdCosIEpTR2xvYmFsT2JqZWN0KikgZmluYWw7CiAgICAgCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBUIGdldCh1bnNpZ25lZCBvZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBib29sKiBzdGF0dXMgPSBudWxscHRyKQpAQCAtODQsNiArODEsOSBAQCBw
dWJsaWM6CiAgICAgICAgICpyZWludGVycHJldF9jYXN0PFQqPihzdGF0aWNfY2FzdDx1aW50OF90
Kj4obV9iYXNlQWRkcmVzcy5nZXQoYnl0ZUxlbmd0aCgpKSkgKyBvZmZzZXQpID0KICAgICAgICAg
ICAgIGZsaXBCeXRlc0lmTGl0dGxlRW5kaWFuKHZhbHVlLCBsaXR0bGVFbmRpYW4pOwogICAgIH0K
KworcHJpdmF0ZToKKyAgICBEYXRhVmlldyhSZWZQdHI8QXJyYXlCdWZmZXI+JiYsIHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Eb3VibGVQcmVk
aWN0aW9uRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJs
ZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCmluZGV4IGFjZjU2NWQzOGQwN2U3MjA5ZGFiNjI2OWYw
ODEwMGE4YjRmNjFkMjUuLjNjZjBiNDgwZjBlYzVmM2Y4ZDYzYmNkNmNhZmQ1YTIxNjVmZGYxMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJsZVByZWRpY3Rp
b25GdXp6ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RvdWJs
ZVByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIERvdWJsZVBy
ZWRpY3Rpb25GdXp6ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBGdXp6ZXJBZ2VudCB7CiBwdWJsaWM6
CiAgICAgRG91YmxlUHJlZGljdGlvbkZ1enplckFnZW50KFZNJik7CiAKLSAgICBTcGVjdWxhdGVk
VHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxh
dGVkVHlwZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2Rl
QmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GaWxlQmFzZWRGdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmlsZUJhc2VkRnV6emVyQWdlbnQuaAppbmRleCA3NWUwMzM1NzE5MTA4MGMxMzdhNDgyMzIz
OGI1NGE3M2I0YzhmMWI3Li42NDllMzA2MDBjY2I0YWVkODYxOTY2NDdhZGJiODcyYTYxODFlNzUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaWxlQmFzZWRGdXp6
ZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbGVCYXNlZEZ1
enplckFnZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIEZpbGVCYXNlZEZ1enpl
ckFnZW50KFZNJik7CiAKIHByaXZhdGU6Ci0gICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlv
bkludGVybmFsKENvZGVCbG9jayosIFByZWRpY3Rpb25UYXJnZXQmLCBTcGVjdWxhdGVkVHlwZSBv
cmlnaW5hbCkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbkludGVy
bmFsKENvZGVCbG9jayosIFByZWRpY3Rpb25UYXJnZXQmLCBTcGVjdWxhdGVkVHlwZSBvcmlnaW5h
bCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggNGY4NjRl
ZDBjYjFkMjdmZmZlOGFlMzZlMmQ5NDQ2YmRkYmFiYTEwNy4uY2NlZTZhYWQ3ODFhNjA2YjU0YzBi
ODZkODllZjljODQyMjA1OGMxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKQEAgLTExMCwxMiArMTEwLDEyIEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJheShpbnQgc3Rh
cnQpIGNvbnN0OwogICAgIFJlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGlu
dCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAgICAgCi0gICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlw
ZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgVHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IGZp
bmFsCiAgICAgewogICAgICAgICByZXR1cm4gQWRhcHRvcjo6dHlwZVZhbHVlOwogICAgIH0KIAot
ICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEpTR2xvYmFsT2JqZWN0KiwgSlNHbG9iYWxPYmpl
Y3QqKSBvdmVycmlkZTsKKyAgICBKU0FycmF5QnVmZmVyVmlldyogd3JhcChKU0dsb2JhbE9iamVj
dCosIEpTR2xvYmFsT2JqZWN0KikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR2VuZXJpY1R5cGVk
QXJyYXlWaWV3KFJlZlB0cjxBcnJheUJ1ZmZlcj4mJiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTWljcm90YXNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWljcm90
YXNrLmNwcAppbmRleCAzYTUzZmNiN2UwZTg4MmRlZDkyNWQ4NTVhMTIzMDdlZGFkYzBjNTUzLi5m
OTMzNTMxYzc0N2ZjMGJmYjBlZTU5YmY5ZGUxYzNiZTM0MjMxMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01pY3JvdGFzay5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNaWNyb3Rhc2suY3BwCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBydW4oSlNHbG9iYWxPYmplY3QqKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJ1bihKU0dsb2JhbE9iamVjdCopIGZpbmFsOwogCiAgICAgU3Ry
b25nPFVua25vd24+IG1fam9iOwogICAgIFN0cm9uZzxVbmtub3duPiBtX2FyZ3VtZW50c1ttYXhB
cmd1bWVudHNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFy
cm93aW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAppbmRleCA3
OWE2Yjc5Nzc4YzA0NTRhODMwYzRiZDUyZDdlZDg5ZWM1NWViMDc2Li43YjUyMDc0OTZkMTI0Mzdj
Y2Y2OWNjYmUzZjBjOGVmODU0MGQ4OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6emVyQWdlbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXJyb3dpbmdOdW1iZXJQcmVkaWN0aW9uRnV6
emVyQWdlbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBOYXJyb3dpbmdOdW1iZXJQcmVkaWN0
aW9uRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgTnVtYmVyUHJlZGljdGlvbkZ1enplcgogcHVi
bGljOgogICAgIE5hcnJvd2luZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudChWTSYpOwogCi0g
ICAgU3BlY3VsYXRlZFR5cGUgZ2V0UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3Jp
Z2luJiwgU3BlY3VsYXRlZFR5cGUpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFBy
ZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBlKSBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3BlcnR5Q2hhbmdlQWRh
cHRpdmVXYXRjaHBvaW50LmgKaW5kZXggZWNjNGQwNjY1ZjMxNTQzNWM5YjE2YzBhNTExNTU0YTdh
M2I0ZGFlNC4uOWZjYzlkMjAzNWU3YzViYjg4NmEyZjAwNTBjOWE4NDEyMTlmNGFlZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvcGVydHlDaGFuZ2VB
ZGFwdGl2ZVdhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oCkBAIC00MiwxMiArNDIsMTIg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBv
dmVycmlkZQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9vd25lci0+aXNMaXZlKCk7CiAgICAgfQogCi0gICAgdm9pZCBoYW5kbGVGaXJlKFZN
JiB2bSwgY29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlCisgICAgdm9pZCBoYW5kbGVGaXJlKFZN
JiB2bSwgY29uc3QgRmlyZURldGFpbCYpIGZpbmFsCiAgICAgewogICAgICAgICBtX3dhdGNocG9p
bnRTZXQuZmlyZUFsbCh2bSwgU3RyaW5nRmlyZURldGFpbCgiT2JqZWN0IFByb3BlcnR5IGlzIGNo
YW5nZWQuIikpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmgKaW5kZXgg
NjE3MDI4ZDkyYzY0MTQ4Y2JjMTMxMjFiODNkNzU0NjRiZDBlMjEzOS4uYTAyYWNkNmY4ZDIyYzIx
NDU1NTIyNTRmYjkzOTYyYTUxZDA0MTczNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFn
ZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIFByZWRpY3Rpb25GaWxlQ3JlYXRp
bmdGdXp6ZXJBZ2VudChWTSYpOwogCiBwcml2YXRlOgotICAgIFNwZWN1bGF0ZWRUeXBlIGdldFBy
ZWRpY3Rpb25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRl
ZFR5cGUgb3JpZ2luYWwpIG92ZXJyaWRlOworICAgIFNwZWN1bGF0ZWRUeXBlIGdldFByZWRpY3Rp
b25JbnRlcm5hbChDb2RlQmxvY2sqLCBQcmVkaWN0aW9uVGFyZ2V0JiwgU3BlY3VsYXRlZFR5cGUg
b3JpZ2luYWwpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlVGltZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VUaW1lci5oCmluZGV4IDZlNGY5ZmFiNTVlZDE4YzAw
OTRlZWE5N2Q1MWY1ZTQyMmNjMGZlNzIuLjNhNGQwZjI5YWUyZDI4Y2YzZTQwNGJlZmI1NDZmNTNj
ZDBiYmFlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21p
c2VUaW1lci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VUaW1l
ci5oCkBAIC0zOCwxMSArMzgsMTEgQEAgY2xhc3MgSlNQcm9taXNlOwogY2xhc3MgVk07CiBjbGFz
cyBKU0NlbGw7CiAKLWNsYXNzIFByb21pc2VUaW1lciA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7
CitjbGFzcyBQcm9taXNlVGltZXIgZmluYWwgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU1J1bkxvb3BUaW1lcjsKIAotICAgIHZvaWQgZG9Xb3Jr
KFZNJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkb1dvcmsoVk0mKSBmaW5hbDsKIAogICAgIHZvaWQg
YWRkUGVuZGluZ1Byb21pc2UoVk0mLCBKU1Byb21pc2UqLCBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+
JiYgZGVwZW5kZW5jaWVzKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc1BlbmRpbmdQ
cm9taXNlKEpTUHJvbWlzZSogdGlja2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JhbmRvbWl6aW5nRnV6emVyQWdlbnQuaAppbmRleCA2Yzc0YWQwM2E2Mjk3
YjhjNmQyYzI5M2ZlMThjMjZkNWFlNzA0ZDhhLi4xZGU3YmI3Zjc1ZjRlODU5MDBmOWI2ZTQ0OTFi
N2Y1NGNlOWIyYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
YW5kb21pemluZ0Z1enplckFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmFuZG9taXppbmdGdXp6ZXJBZ2VudC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFJhbmRv
bWl6aW5nRnV6emVyQWdlbnQgZmluYWwgOiBwdWJsaWMgRnV6emVyQWdlbnQgewogcHVibGljOgog
ICAgIFJhbmRvbWl6aW5nRnV6emVyQWdlbnQoVk0mKTsKIAotICAgIFNwZWN1bGF0ZWRUeXBlIGdl
dFByZWRpY3Rpb24oQ29kZUJsb2NrKiwgY29uc3QgQ29kZU9yaWdpbiYsIFNwZWN1bGF0ZWRUeXBl
KSBvdmVycmlkZTsKKyAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayos
IGNvbnN0IENvZGVPcmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDYWNoZS5oCmluZGV4IDdiMTI2M2RlMWRiZTUzN2RhNDM2NTI1NmMzZDIzZmIzZmJjNDQ2
NmUuLjgyNzM3ZDhmOWM2OGRlMThlODdmNWU1N2NlYTBhNjAyMTBlODg4ODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuaApAQCAtNDEsNyArNDEsNyBAQCBu
YW1lc3BhY2UgWWFyciB7CiBlbnVtIGNsYXNzIEZsYWdzIDogdWludDhfdDsKIH0KIAotY2xhc3Mg
UmVnRXhwQ2FjaGUgOiBwcml2YXRlIFdlYWtIYW5kbGVPd25lciB7CitjbGFzcyBSZWdFeHBDYWNo
ZSBmaW5hbCA6IHByaXZhdGUgV2Vha0hhbmRsZU93bmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIAogICAgIGZyaWVuZCBjbGFzcyBSZWdFeHA7CkBAIC01OSwxMiArNTksMTEgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICAKICAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG1heFN0cm9uZ0NhY2hlYWJsZVBhdHRlcm5MZW5ndGggPSAyNTY7CiAKICAgICBzdGF0
aWMgY29uc3RleHByIGludCBtYXhTdHJvbmdDYWNoZWFibGVFbnRyaWVzID0gMzI7CiAKLSAgICB2
b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwog
CiAgICAgUmVnRXhwKiBlbnN1cmVFbXB0eVJlZ0V4cFNsb3coVk0mKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggMDlkNzUyNTRjNmIxMzI5ZmE3
OThkNmY3N2Y1ZDYwYzVkYTQxYTFlYy4uYzYyYWZjZTZlOTYzMDI2OTgyZmFkODk3YzY0ZTVhZjhi
YWQ4ZTYyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cnVjdHVyZSo+JiBsaXZlU3RydWN0
dXJlU2V0ID0gKihuZXcgSGFzaFNldDxTdHJ1Y3R1cmUqPik7CiAjZW5kaWYKIAogY2xhc3MgU2lu
Z2xlU2xvdFRyYW5zaXRpb25XZWFrT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVy
IHsKLSAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3Zl
cnJpZGUKKyAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkg
ZmluYWwKICAgICB7CiAgICAgICAgIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSogdGFibGUgPSBy
ZWludGVycHJldF9jYXN0PFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSo+KGNvbnRleHQpOwogICAg
ICAgICBBU1NFUlQodGFibGUtPmlzVXNpbmdTaW5nbGVTbG90KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlUmFyZURhdGEuY3BwCmluZGV4IGI1YTk4
ZGJlNGM5YjMyYmFmZmE2ZjQ4YzJiY2U0NzA2YTAxMTA0MmQuLmQ4NTM0YTBlZjRlMGQ2Y2E5YTBh
ZTM4NTFiYmY3ZDJjNTg5YWZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZVJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVSYXJlRGF0YS5jcHAKQEAgLTg2LDggKzg2LDggQEAgcHVibGljOgog
ICAgIE9iamVjdFRvU3RyaW5nQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiwgU3RydWN0dXJlUmFyZURhdGEqKTsKIAog
cHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhh
bmRsZUZpcmUoVk0mLCBjb25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBoYW5kbGVGaXJlKFZNJiwgY29uc3QgRmlyZURl
dGFpbCYpIGZpbmFsOwogCiAgICAgU3RydWN0dXJlUmFyZURhdGEqIG1fc3RydWN0dXJlUmFyZURh
dGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAppbmRleCBk
MzdlOGM4NmM2YmE1YTVjNjQxYWI5NTBlZDc0NDZjZGI0MmE1YjdhLi42MTVlYzllYzU1MTA0N2Mz
NzZjYzY3ZWZhYWVhZmIzNWExZTYxYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTVRyYXBzLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgfSk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gIkpTQyBWTVRy
YXBzIFNpZ25hbCBTZW5kZXIgVGhyZWFkIjsKICAgICB9CkBAIC0yNDgsNyArMjQ4LDcgQEAgcHVi
bGljOgogICAgIFZNVHJhcHMmIHRyYXBzKCkgeyByZXR1cm4gbV92bS50cmFwcygpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgb3ZlcnJp
ZGUKKyAgICBQb2xsUmVzdWx0IHBvbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbAogICAg
IHsKICAgICAgICAgaWYgKHRyYXBzKCkubV9pc1NodXR0aW5nRG93bikKICAgICAgICAgICAgIHJl
dHVybiBQb2xsUmVzdWx0OjpTdG9wOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBQb2xsUmVzdWx0OjpXb3JrOwogICAgIH0KIAotICAgIFdvcmtSZXN1bHQgd29y
aygpIG92ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAg
IFZNJiB2bSA9IG1fdm07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XaWRlbmluZ051bWJlclByZWRpY3Rpb25GdXp6ZXJBZ2VudC5oCmlu
ZGV4IDc1OWY1ZWRhZjk0YTc1MDAyZDJiM2E5ZDcxOTYwY2YwZjE3N2U4ODIuLmY2MDhlZjdkMjcw
NmFmYTllOWI2ZjQyNzEyNTg0NzNiNjFjZDZmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2lkZW5pbmdOdW1iZXJQcmVkaWN0aW9u
RnV6emVyQWdlbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBXaWRlbmluZ051bWJlclByZWRp
Y3Rpb25GdXp6ZXJBZ2VudCBmaW5hbCA6IHB1YmxpYyBOdW1iZXJQcmVkaWN0aW9uRnV6emVyQQog
cHVibGljOgogICAgIFdpZGVuaW5nTnVtYmVyUHJlZGljdGlvbkZ1enplckFnZW50KFZNJik7CiAK
LSAgICBTcGVjdWxhdGVkVHlwZSBnZXRQcmVkaWN0aW9uKENvZGVCbG9jayosIGNvbnN0IENvZGVP
cmlnaW4mLCBTcGVjdWxhdGVkVHlwZSkgb3ZlcnJpZGU7CisgICAgU3BlY3VsYXRlZFR5cGUgZ2V0
UHJlZGljdGlvbihDb2RlQmxvY2sqLCBjb25zdCBDb2RlT3JpZ2luJiwgU3BlY3VsYXRlZFR5cGUp
IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggYWRkOWIxNmRkYzY4ZmZmZjhkYTkzYmU3MjIwZWQ0
MzdiZjk2YTU1OC4uOTU2ZWZkYjg1NGFmZmYzMGYwZGNiMGM3OTIxMTFmZjUzMTc0M2UwZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtMjQ2LDEwICsy
NDYsMTAgQEAgcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8Um9vdD4gbV9yb290OwogfTsKIAot
Y2xhc3MgRWxlbWVudEhhbmRsZU93bmVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CitjbGFz
cyBFbGVtZW50SGFuZGxlT3duZXIgZmluYWwgOiBwdWJsaWMgV2Vha0hhbmRsZU93bmVyIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pIG92ZXJyaWRlCisgICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KSBmaW5hbAogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCkBAIC0yNTksNyArMjU5LDcgQEAgcHVibGlj
OgogICAgIH0KIH07CiAKLWNsYXNzIFJvb3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qg
eworY2xhc3MgUm9vdCBmaW5hbCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJs
aWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0OwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KQEAgLTE0NjUsOSArMTQ2NSw5IEBA
IHB1YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBkaWRSZWNlaXZl
U2VjdGlvbkRhdGEoV2FzbTo6U2VjdGlvbikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNvbnN0IFdhc206OkZ1
bmN0aW9uRGF0YSYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdm9pZCBkaWRG
aW5pc2hQYXJzaW5nKCkgb3ZlcnJpZGUgeyB9CisgICAgICAgIGJvb2wgZGlkUmVjZWl2ZVNlY3Rp
b25EYXRhKFdhc206OlNlY3Rpb24pIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgYm9v
bCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBXYXNtOjpGdW5jdGlvbkRh
dGEmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZvaWQgZGlkRmluaXNoUGFyc2lu
ZygpIGZpbmFsIHsgfQogCiAgICAgICAgIFdhc21TdHJlYW1pbmdQYXJzZXIqIG1fcGFyc2VyOwog
ICAgIH07CkBAIC0yNjkxLDcgKzI2OTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgc291cmNlUGFyc2VkKEpTR2xvYmFsT2JqZWN0KiwgU291cmNlUHJvdmlkZXIqLCBp
bnQsIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGUKKyAgICB2b2lkIHNvdXJjZVBhcnNlZChK
U0dsb2JhbE9iamVjdCosIFNvdXJjZVByb3ZpZGVyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYp
IGZpbmFsCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFu
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5oCmluZGV4IDI5NGE3
NDMwOTE1MWM5Mzg3ZGUxYmRhM2Q0ZmMyMjBjYjg3NzViYWMuLmZiNGUxZTI1OTYyMGRiYjc1NDc2
ZmM3NmM5MmRjZWM2MjUzODY0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CQlFQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJC
UVBsYW4uaApAQCAtNTYsMTkgKzU2LDE5IEBAIHB1YmxpYzoKIAogICAgIEJCUVBsYW4oQ29udGV4
dCosIFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4sIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIENvZGVC
bG9jayosIENvbXBsZXRpb25UYXNrJiYpOwogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICBib29sIGhhc1dvcmsoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgaWYg
KG1fYXN5bmNXb3JrID09IEFzeW5jV29yazo6VmFsaWRhdGlvbikKICAgICAgICAgICAgIHJldHVy
biBtX3N0YXRlIDwgU3RhdGU6OlZhbGlkYXRlZDsKICAgICAgICAgcmV0dXJuIG1fc3RhdGUgPCBT
dGF0ZTo6Q29tcGlsZWQ7CiAgICAgfQogCi0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0
KSBvdmVycmlkZTsKKyAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIGZpbmFsOwogCiAg
ICAgdXNpbmcgQ2FsbGVlSW5pdGlhbGl6ZXIgPSBGdW5jdGlvbjx2b2lkKHVpbnQzMl90LCBSZWZQ
dHI8RW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlPiYmLCBSZWY8QkJRQ2FsbGVlPiYmKT47CiAgICAg
dm9pZCBpbml0aWFsaXplQ2FsbGVlcyhjb25zdCBDYWxsZWVJbml0aWFsaXplciYpOwogCi0gICAg
Ym9vbCBkaWRSZWNlaXZlRnVuY3Rpb25EYXRhKHVuc2lnbmVkLCBjb25zdCBGdW5jdGlvbkRhdGEm
KSBvdmVycmlkZTsKKyAgICBib29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNv
bnN0IEZ1bmN0aW9uRGF0YSYpIGZpbmFsOwogCiAgICAgYm9vbCBwYXJzZUFuZFZhbGlkYXRlTW9k
dWxlKCkKICAgICB7CkBAIC03Niw5ICs3Niw5IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgYm9vbCBwcmVwYXJlSW1wbCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGlsZUZ1bmN0
aW9uKHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ29tcGxl
dGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlOworICAgIGJvb2wg
cHJlcGFyZUltcGwoKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBm
dW5jdGlvbkluZGV4KSBmaW5hbDsKKyAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29u
c3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5h
bEZ1bmN0aW9uPiBjb21waWxlRnVuY3Rpb24odWludDMyX3QgZnVuY3Rpb25JbmRleCwgQ29tcGls
YXRpb25Db250ZXh0JiwgVmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNhbGw+JiwgVGllclVwQ291
bnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCmluZGV4IDNhNDlj
NWYyOGZkYjc5NWQyNTZiZDI3ZGM1MmMyNDNkOGUyNWNhNzkuLmJhMzllNTZjMjMxNDQwYmJmYjE0
MmU3YTM4NDg0Y2NmNGY2NzVhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2Fs
bGVlLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgT01HRm9yT1NS
RW50cnlDYWxsZWUqIG9zckVudHJ5Q2FsbGVlKCkgeyByZXR1cm4gbV9vc3JFbnRyeUNhbGxlZS5n
ZXQoKTsgfQotICAgIHZvaWQgc2V0T1NSRW50cnlDYWxsZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2Fs
bGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBvdmVycmlkZQorICAgIHZvaWQgc2V0T1NSRW50cnlDYWxs
ZWUoUmVmPE9NR0Zvck9TUkVudHJ5Q2FsbGVlPiYmIG9zckVudHJ5Q2FsbGVlKSBmaW5hbAogICAg
IHsKICAgICAgICAgbV9vc3JFbnRyeUNhbGxlZSA9IFdURk1vdmUob3NyRW50cnlDYWxsZWUpOwog
ICAgIH0KQEAgLTE5Miw5ICsxOTIsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCBzZXRFbnRyeXBvaW50KE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxXYXNtRW50
cnlQdHJUYWc+KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSlNfRVhQ
T1JUX1BSSVZBVEUgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdpc3RlcnMoKSBv
dmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnR1cGxlPHZvaWQqLCB2b2lkKj4g
cmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI8V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50KCkgY29uc3QgZmluYWw7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNhbGxlZVNhdmVSZWdp
c3RlcnMoKSBmaW5hbDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnR1cGxlPHZvaWQqLCB2
b2lkKj4gcmFuZ2UoKSBjb25zdCBmaW5hbDsKIAogICAgIEpJVENhbGxlZSogcmVwbGFjZW1lbnQo
KSB7IHJldHVybiBtX3JlcGxhY2VtZW50LmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXBsYWNlbWVu
dChSZWY8SklUQ2FsbGVlPiYmIHJlcGxhY2VtZW50KQpAQCAtMjAzLDcgKzIwMyw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBPTUdGb3JPU1JFbnRyeUNhbGxlZSogb3NyRW50cnlDYWxsZWUoKSB7
IHJldHVybiBtX29zckVudHJ5Q2FsbGVlLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRPU1JFbnRyeUNh
bGxlZShSZWY8T01HRm9yT1NSRW50cnlDYWxsZWU+JiYgb3NyRW50cnlDYWxsZWUpIG92ZXJyaWRl
CisgICAgdm9pZCBzZXRPU1JFbnRyeUNhbGxlZShSZWY8T01HRm9yT1NSRW50cnlDYWxsZWU+JiYg
b3NyRW50cnlDYWxsZWUpIGZpbmFsCiAgICAgewogICAgICAgICBtX29zckVudHJ5Q2FsbGVlID0g
V1RGTW92ZShvc3JFbnRyeUNhbGxlZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50UGxhbi5oCmluZGV4IDkzMzViM2EwNWI4MGNhZTQ1ZGI4OWNjYzQ4YzViYzE5
YzFkNWVkNTguLmZiODQ5MWJhYjMwZGZhYjc5YzM3ZjEyYWViYmMxZWU0MWQxZTg1ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmgKQEAgLTY2LDE5ICs2Niwx
OSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fZW1iZWRkZXJDYWxsZWVzKTsK
ICAgICB9CiAKLSAgICBib29sIGhhc1dvcmsoKSBjb25zdCBvdmVycmlkZQorICAgIGJvb2wgaGFz
V29yaygpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gbV9zdGF0ZSA8IFN0YXRl
OjpDb21waWxlZDsKICAgICB9CiAKLSAgICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIG92
ZXJyaWRlOworICAgIHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CiAKLSAgICBi
b29sIGRpZFJlY2VpdmVGdW5jdGlvbkRhdGEodW5zaWduZWQsIGNvbnN0IEZ1bmN0aW9uRGF0YSYp
IG92ZXJyaWRlOworICAgIGJvb2wgZGlkUmVjZWl2ZUZ1bmN0aW9uRGF0YSh1bnNpZ25lZCwgY29u
c3QgRnVuY3Rpb25EYXRhJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBwcmVwYXJlSW1w
bCgpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGlsZUZ1bmN0aW9uKHVpbnQzMl90IGZ1bmN0aW9u
SW5kZXgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBB
YnN0cmFjdExvY2tlciYpIG92ZXJyaWRlOworICAgIGJvb2wgcHJlcGFyZUltcGwoKSBmaW5hbDsK
KyAgICB2b2lkIGNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBmdW5jdGlvbkluZGV4KSBmaW5hbDsK
KyAgICB2b2lkIGRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImKSBm
aW5hbDsKIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RnVuY3Rpb25Db2RlQmxvY2s+PiBt
X3dhc21JbnRlcm5hbEZ1bmN0aW9uczsKICAgICBjb25zdCBSZWY8TExJbnRDYWxsZWU+KiBtX2Nh
bGxlZXMgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtT01HRm9yT1NSRW50cnlQbGFuLmgKaW5kZXggOGE1ZWE1NTEyMDQ4NThmMWY3MTIyZTc5YTJh
OWFhNmM2ODgwNTJjOS4uYmI5ZTQ4NzRjZThiYTU2NDFiODFiMWZkZTk5ZjFkZWNkN2ViNzI2MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5
UGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRy
eVBsYW4uaApAQCAtNDMsOSArNDMsOSBAQCBjbGFzcyBPTUdGb3JPU1JFbnRyeVBsYW4gZmluYWwg
OiBwdWJsaWMgUGxhbiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFBsYW47CiAKLSAgICBi
b29sIGhhc1dvcmsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhbV9jb21wbGV0ZWQ7IH0KLSAg
ICB2b2lkIHdvcmsoQ29tcGlsYXRpb25FZmZvcnQpIG92ZXJyaWRlOwotICAgIGJvb2wgbXVsdGlU
aHJlYWRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBoYXNX
b3JrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fY29tcGxldGVkOyB9CisgICAgdm9pZCB3b3Jr
KENvbXBpbGF0aW9uRWZmb3J0KSBmaW5hbDsKKyAgICBib29sIG11bHRpVGhyZWFkZWQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTm90ZTogQ29tcGxldGlvblRhc2sg
c2hvdWxkIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBQbGFuIG90aGVyd2lzZSB0aGVyZSB3
aWxsIGJlIGEgcmVmZXJlbmNlIGN5Y2xlLgogICAgIE9NR0Zvck9TUkVudHJ5UGxhbihDb250ZXh0
KiwgUmVmPE1vZHVsZT4mJiwgUmVmPENhbGxlZT4mJiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCwg
dWludDMyX3QgbG9vcEluZGV4LCBNZW1vcnlNb2RlLCBDb21wbGV0aW9uVGFzayYmKTsKQEAgLTU0
LDggKzU0LDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3Igc29tZSByZWFzb24gZnJpZW5kc2hpcCBk
b2Vzbid0IGV4dGVuZCB0byBwYXJlbnQgY2xhc3Nlcy4uLgogICAgIHVzaW5nIEJhc2U6Om1fbG9j
azsKIAotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29t
cGxldGVkOyB9Ci0gICAgdm9pZCBjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KSBvdmVycmlkZQorICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29tcGxldGVkOyB9CisgICAgdm9pZCBjb21wbGV0ZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9jb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICBy
dW5Db21wbGV0aW9uVGFza3MobG9ja2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PTUdQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T01HUGxhbi5oCmluZGV4IGNiNzliNDM5ZDRlOTk0ZDg3MGU5ZGM5MDg5YzQzYTdmNTg2MDI1NjYu
Ljc3YTFkODJhNWJiZjc2ODE0Y2U3MTM4OWY0ZDVjZDY2MDA4ZjJkNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBPTUdQ
bGFuIGZpbmFsIDogcHVibGljIFBsYW4gewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBQbGFu
OwogCi0gICAgYm9vbCBoYXNXb3JrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fY29tcGxl
dGVkOyB9Ci0gICAgdm9pZCB3b3JrKENvbXBpbGF0aW9uRWZmb3J0KSBvdmVycmlkZTsKLSAgICBi
b29sIG11bHRpVGhyZWFkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaGFzV29yaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2NvbXBsZXRlZDsgfQorICAg
IHZvaWQgd29yayhDb21waWxhdGlvbkVmZm9ydCkgZmluYWw7CisgICAgYm9vbCBtdWx0aVRocmVh
ZGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5vdGU6IENvbXBs
ZXRpb25UYXNrIHNob3VsZCBub3QgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgUGxhbiBvdGhlcndp
c2UgdGhlcmUgd2lsbCBiZSBhIHJlZmVyZW5jZSBjeWNsZS4KICAgICBPTUdQbGFuKENvbnRleHQq
LCBSZWY8TW9kdWxlPiYmLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCBNZW1vcnlNb2RlLCBDb21w
bGV0aW9uVGFzayYmKTsKQEAgLTUyLDggKzUyLDggQEAgcHJpdmF0ZToKICAgICAvLyBGb3Igc29t
ZSByZWFzb24gZnJpZW5kc2hpcCBkb2Vzbid0IGV4dGVuZCB0byBwYXJlbnQgY2xhc3Nlcy4uLgog
ICAgIHVzaW5nIEJhc2U6Om1fbG9jazsKIAotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9Ci0gICAgdm9pZCBjb21wbGV0ZShjb25zdCBB
YnN0cmFjdExvY2tlciYgbG9ja2VyKSBvdmVycmlkZQorICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY29tcGxldGVkOyB9CisgICAgdm9pZCBjb21wbGV0ZShjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgbV9jb21wbGV0
ZWQgPSB0cnVlOwogICAgICAgICBydW5Db21wbGV0aW9uVGFza3MobG9ja2VyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IGQxNGY3ODdhMTI5MGFh
ZTg2ZjNmNzE3MzhkNjlmMWRmNjQxM2VlZDAuLjYwYWYwMWFhNWU1ZDUwOGU4NzM2ZjdlZGIxMGI5
Nzc3N2E3YTk3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21X
b3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBv
bGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExvY2tlciYpIG92ZXJyaWRlCisgICAgUG9sbFJl
c3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgZmluYWwKICAgICB7CiAgICAgICAgIGF1
dG8mIHF1ZXVlID0gd29ya2xpc3QubV9xdWV1ZTsKICAgICAgICAgc3luY2hyb25pemUubm90aWZ5
QWxsKCk7CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBQb2xsUmVz
dWx0OjpXYWl0OwogICAgIH0KIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92ZXJyaWRlCisgICAg
V29ya1Jlc3VsdCB3b3JrKCkgZmluYWwKICAgICB7CiAgICAgICAgIGF1dG8gY29tcGxldGUgPSBb
Jl0gKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgewogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBo
b2xkIHRoZSBsb2NrIHRvIHJlbGVhc2Ugb3VyIHBsYW4gb3RoZXJ3aXNlIHRoZSBtYWluIHRocmVh
ZCwgd2hpbGUgY2FuY2VsaW5nIHBsYW5zCkBAIC0xMTcsMTIgKzExNywxMiBAQCBwcml2YXRlOgog
ICAgICAgICByZXR1cm4gY29tcGxldGUoaG9sZExvY2soKndvcmtsaXN0Lm1fbG9jaykpOwogICAg
IH0KIAotICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhjb25zdCBBYnN0cmFjdExvY2tlciYpIG92
ZXJyaWRlCisgICAgdm9pZCB0aHJlYWRJc1N0b3BwaW5nKGNvbnN0IEFic3RyYWN0TG9ja2VyJikg
ZmluYWwKICAgICB7CiAgICAgICAgIGNsZWFyTExJbnRUaHJlYWRTcGVjaWZpY0NhY2hlKCk7CiAg
ICAgfQogCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICByZXR1cm4gIldhc20gV29y
a2xpc3QgSGVscGVyIFRocmVhZCI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCA2ZWI4YTE2ZjliN2RiZGIwZmIyN2RjY2E4MzQ0Nzk2Zjk5MTQ5NzNiLi42
NGRhY2YyMjQyNDE3OGFhZmNhMGJkODJjZTI1YjljNDE1ZDgwMTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtNjksNyArNjksNyBAQCBNYXRjaGluZ0NvbnRleHRI
b2xkZXI6On5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKQogfQogCiB0ZW1wbGF0ZTxZYXJySklUQ29t
cGlsZU1vZGUgY29tcGlsZU1vZGU+Ci1jbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJK
SVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKK2NsYXNzIFlhcnJHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAjaWYg
Q1BVKEFSTV9USFVNQjIpCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBBUk1S
ZWdpc3RlcnM6OnIwOwpAQCAtMzk4Miw3ICszOTgyLDcgQEAgcHVibGljOgogICAgICAgICAgICAg
Y29kZUJsb2NrLnNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oKm1fZmFpbHVyZVJlYXNvbik7
CiAgICAgfQogCi0gICAgY29uc3QgY2hhciogdmFyaWFudCgpIG92ZXJyaWRlCisgICAgY29uc3Qg
Y2hhciogdmFyaWFudCgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAoY29tcGlsZU1vZGUgPT0g
TWF0Y2hPbmx5KSB7CiAgICAgICAgICAgICBpZiAobV9jaGFyU2l6ZSA9PSBDaGFyOCkKQEAgLTM5
OTcsMTcgKzM5OTcsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gIjE2LWJpdCByZWd1bGFy
IGV4cHJlc3Npb24iOwogICAgIH0KIAotICAgIHVuc2lnbmVkIG9wQ291bnQoKSBvdmVycmlkZQor
ICAgIHVuc2lnbmVkIG9wQ291bnQoKSBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fb3Bz
LnNpemUoKTsKICAgICB9CiAKLSAgICB2b2lkIGR1bXBQYXR0ZXJuU3RyaW5nKFByaW50U3RyZWFt
JiBvdXQpIG92ZXJyaWRlCisgICAgdm9pZCBkdW1wUGF0dGVyblN0cmluZyhQcmludFN0cmVhbSYg
b3V0KSBmaW5hbAogICAgIHsKICAgICAgICAgbV9wYXR0ZXJuLmR1bXBQYXR0ZXJuU3RyaW5nKG91
dCwgbV9wYXR0ZXJuU3RyaW5nKTsKICAgICB9CiAKLSAgICBpbnQgZHVtcEZvcihQcmludFN0cmVh
bSYgb3V0LCB1bnNpZ25lZCBvcEluZGV4KSBvdmVycmlkZQorICAgIGludCBkdW1wRm9yKFByaW50
U3RyZWFtJiBvdXQsIHVuc2lnbmVkIG9wSW5kZXgpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAo
b3BJbmRleCA+PSBvcENvdW50KCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKaW5kZXggMzZjNmRjOThhY2QyYjZkYzkzMTcyYzhhYzVhZTgyNjk4OGVkNzg0Ni4uMGFi
YTg1Njc3MjUyZDNiYWZlMWVmZmU5MjkwMzRkNzg4MWQ3ZDZjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKQEAgLTI3MiwxMCArMjcyLDEwIEBAIHZvaWQgV1RGUmVwb3J0QXJndW1lbnRBc3NlcnRpb25G
YWlsdXJlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmCiAgICAgcHJp
bnRDYWxsU2l0ZShmaWxlLCBsaW5lLCBmdW5jdGlvbik7CiB9CiAKLWNsYXNzIENyYXNoTG9nUHJp
bnRTdHJlYW0gOiBwdWJsaWMgUHJpbnRTdHJlYW0geworY2xhc3MgQ3Jhc2hMb2dQcmludFN0cmVh
bSBmaW5hbCA6IHB1YmxpYyBQcmludFN0cmVhbSB7CiBwdWJsaWM6CiAgICAgV1RGX0FUVFJJQlVU
RV9QUklOVEYoMiwgMCkKLSAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9s
aXN0IGFyZ0xpc3QpIG92ZXJyaWRlCisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgdmFfbGlzdCBhcmdMaXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgdnByaW50Zl9zdGRlcnJf
Y29tbW9uKGZvcm1hdCwgYXJnTGlzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvRXhwZWN0ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL0V4cGVjdGVkLmgKaW5kZXggY2FlNjgxMTc4
MmU1NjIzMzRiOTVlMzE2NjE1YWU1OTFlMTNlODBjZS4uZTU0MDc1YWY1ZGRjYjZiMjkxZjM4OTg2
OWU4ODFkMmU2ZDk1NTAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRXhwZWN0ZWQuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9FeHBlY3RlZC5oCkBAIC0yMTMsNyArMjEzLDcgQEAgdGVtcGxh
dGU8Y2xhc3MgRT4KIGNsYXNzIGJhZF9leHBlY3RlZF9hY2Nlc3MgOiBwdWJsaWMgYmFkX2V4cGVj
dGVkX2FjY2Vzczx2b2lkPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgYmFkX2V4cGVjdGVkX2Fj
Y2VzcyhFIHZhbCkgOiB2YWwodmFsKSB7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHdoYXQo
KSBjb25zdCBub2V4Y2VwdCBvdmVycmlkZSB7IHJldHVybiBzdGQ6OmV4Y2VwdGlvbjo6d2hhdCgp
OyB9CisgICAgY29uc3QgY2hhciogd2hhdCgpIGNvbnN0IG5vZXhjZXB0IG92ZXJyaWRlIHsgcmV0
dXJuIHN0ZDo6ZXhjZXB0aW9uOjp3aGF0KCk7IH0KICAgICBFJiBlcnJvcigpICYgeyByZXR1cm4g
dmFsOyB9CiAgICAgY29uc3QgRSYgZXJyb3IoKSBjb25zdCYgeyByZXR1cm4gdmFsOyB9CiAgICAg
RSYmIGVycm9yKCkgJiYgeyByZXR1cm4gc3RkOjptb3ZlKHZhbCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0ZpbGVQcmludFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVByaW50
U3RyZWFtLmgKaW5kZXggNTYxYmNmN2YwMmMyODk0OWI2MWUxZGE0NGVkZWFkZWJkMTE0MjFjNS4u
ZWY1ZWZiMTI4YmEwNWVmYWJhYjM0OWFhZTA3NjkzYTc0MjFkMzAwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvRmlsZVByaW50U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVBy
aW50U3RyZWFtLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWNsYXNz
IEZpbGVQcmludFN0cmVhbSA6IHB1YmxpYyBQcmludFN0cmVhbSB7CitjbGFzcyBGaWxlUHJpbnRT
dHJlYW0gZmluYWwgOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIGVudW0gQWRv
cHRpb25Nb2RlIHsKICAgICAgICAgQWRvcHQsCkBAIC0zOCwxNCArMzgsMTQgQEAgcHVibGljOgog
ICAgIH07CiAgICAgCiAgICAgRmlsZVByaW50U3RyZWFtKEZJTEUqLCBBZG9wdGlvbk1vZGUgPSBB
ZG9wdCk7Ci0gICAgdmlydHVhbCB+RmlsZVByaW50U3RyZWFtKCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIH5GaWxlUHJpbnRTdHJlYW0oKSBmaW5hbDsKICAgICAKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGaWxlUHJpbnRTdHJlYW0+IG9wZW4oY29uc3Qg
Y2hhciogZmlsZW5hbWUsIGNvbnN0IGNoYXIqIG1vZGUpOwogICAgIAogICAgIEZJTEUqIGZpbGUo
KSB7IHJldHVybiBtX2ZpbGU7IH0KICAgICAKLSAgICB2b2lkIHZwcmludGYoY29uc3QgY2hhciog
Zm9ybWF0LCB2YV9saXN0KSBvdmVycmlkZSBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKLSAg
ICB2b2lkIGZsdXNoKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZv
cm1hdCwgdmFfbGlzdCkgZmluYWwgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CisgICAgdm9p
ZCBmbHVzaCgpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIEZJTEUqIG1fZmlsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1
ZXMuaAppbmRleCA4NTY4ODlhMjZlMDcxMmY5MDE4Y2Y3ZDE4NTRmM2Q5MjM0NWExY2U4Li5lYmFi
YzQ0OWY4ODBiMzlkM2ZhZGU3OGNkNjFiMWM0ZDVlMGU2ODYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9KU09OVmFsdWVzLmgKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCkBA
IC0xODMsNyArMTgzLDcgQEAgcHVibGljOgogICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3Qg
ZmluYWw7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5PYmplY3RCYXNlKCk7CisgICAgfk9i
amVjdEJhc2UoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgYXNPYmplY3QoUmVmUHRyPE9iamVjdD4m
IG91dHB1dCkgb3ZlcnJpZGU7CiAKQEAgLTMwMSw3ICszMDEsNyBAQCBwdWJsaWM6CiAgICAgc2l6
ZV90IG1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
fkFycmF5QmFzZSgpOworICAgIH5BcnJheUJhc2UoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgYXNB
cnJheShSZWZQdHI8QXJyYXk+Jikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0xvY2tlZFByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrZWRQcmludFN0cmVh
bS5oCmluZGV4IDZlYjkwYWFlODA4ZTdmMmI5ZjQ0ZDQyZTU2ZTNhOTQzNTc0NjljNTcuLmU0ZmFk
Yjg1ZGJiM2ZkYWRjODY4MmQ4ZTI1NGM2MmJmNGNmZWI1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlZFByaW50U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9ja2VkUHJp
bnRTdHJlYW0uaApAQCAtMzUsMTYgKzM1LDE1IEBAIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTG9j
a2VkUHJpbnRTdHJlYW0gOiBwdWJsaWMgUHJpbnRTdHJlYW0gewogcHVibGljOgogICAgIExvY2tl
ZFByaW50U3RyZWFtKHN0ZDo6dW5pcXVlX3B0cjxQcmludFN0cmVhbT4gdGFyZ2V0KTsKLSAgICB2
aXJ0dWFsIH5Mb2NrZWRQcmludFN0cmVhbSgpOworICAgIH5Mb2NrZWRQcmludFN0cmVhbSgpIGZp
bmFsOwogICAgIAotICAgIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3Qp
IG92ZXJyaWRlIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwotICAgIHZvaWQgZmx1c2goKSBv
dmVycmlkZTsKLQotcHJvdGVjdGVkOgotICAgIFByaW50U3RyZWFtJiBiZWdpbigpIG92ZXJyaWRl
OwotICAgIHZvaWQgZW5kKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIq
IGZvcm1hdCwgdmFfbGlzdCkgZmluYWwgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CisgICAg
dm9pZCBmbHVzaCgpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIFByaW50U3RyZWFtJiBiZWdpbigp
IGZpbmFsOworICAgIHZvaWQgZW5kKCkgZmluYWw7CisKICAgICAvLyBUaGlzIG5lZWRzIHRvIGJl
IGEgcmVjdXJzaXZlIGxvY2sgYmVjYXVzZSBhIHByaW50SW50ZXJuYWwgb3IgZHVtcCBtZXRob2Qg
Y291bGQgYXNzZXJ0LAogICAgIC8vIGFuZCB0aGF0IGFzc2VydCBtaWdodCB3YW50IHRvIGxvZy4g
QmV0dGVyIHRvIGxldCBpdC4gVGhpcyBuZWVkcyB0byBiZSBhIFdvcmRMb2NrIHNvIHRoYXQKICAg
ICAvLyBMb2NrZWRQcmludFN0cmVhbSAoaS5lLiBjYXRhTG9nKSBjYW4gYmUgdXNlZCB0byBkZWJ1
ZyBQYXJraW5nTG90IGFuZCBMb2NrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT1NMb2dQ
cmludFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCmluZGV4IGM4
N2VlZjc5YzcwYjUxNGY4ZGNlN2U5NTVmYTJlNmRkOTY4YmQ1MjYuLjU5ZjgxMTRlY2QyZDk3YTkx
ZjA0ZmZhZTcwMTk3ZGJhMzg3Y2UyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09TTG9n
UHJpbnRTdHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmgKQEAg
LTQwLDExICs0MCwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFU
RSBPU0xvZ1ByaW50U3RyZWFtIGZpbmFsIDogcHVibGljIFByaW50U3RyZWFtIHsKIHB1YmxpYzoK
ICAgICBPU0xvZ1ByaW50U3RyZWFtKG9zX2xvZ190LCBvc19sb2dfdHlwZV90KTsKLSAgICB2aXJ0
dWFsIH5PU0xvZ1ByaW50U3RyZWFtKCk7CisgICAgfk9TTG9nUHJpbnRTdHJlYW0oKSBmaW5hbDsK
ICAgICAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE9TTG9nUHJpbnRTdHJlYW0+IG9wZW4o
Y29uc3QgY2hhciogc3Vic3lzdGVtLCBjb25zdCBjaGFyKiBjYXRlZ29yeSwgb3NfbG9nX3R5cGVf
dCA9IE9TX0xPR19UWVBFX0RFRkFVTFQpOwogICAgIAotICAgIHZvaWQgdnByaW50Zihjb25zdCBj
aGFyKiBmb3JtYXQsIHZhX2xpc3QpIG92ZXJyaWRlIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDAp
OworICAgIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIGZpbmFsIFdU
Rl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOwogCiBwcml2YXRlOgogICAgIG9zX2xvZ190IG1fbG9n
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKaW5kZXggNGY5YTkyMmMwODRiMjIy
NWRkMTg1YzQ1NTRkY2U0M2RiOTA0OWJkMC4uMTYxZjI1YzUzNDhlZDYxNzg3NjgwNmM5NWU5OGY1
ZjhiYTU0NmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29s
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xNjks
NyArMTY5LDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBpbmcoKQogICAg
IGNsaWVudC0+cnVuVGFzayh0YXNrKTsKIH0KIAotY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpU
aHJlYWQgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKK2NsYXNzIFBhcmFsbGVsSGVscGVyUG9v
bDo6VGhyZWFkIGZpbmFsIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAg
VGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYg
cG9vbCkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9v
bC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24uY29weVJlZigpKQpAQCAtMTc3LDEzICsxNzcsMTMg
QEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgY29uc3QgY2hhciogbmFtZSgpIGNv
bnN0IG92ZXJyaWRlCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IGZpbmFsCiAgICAgewog
ICAgICAgICByZXR1cm4gbV9wb29sLm1fdGhyZWFkTmFtZS5kYXRhKCk7CiAgICAgfQogCi1wcm90
ZWN0ZWQ6Ci0gICAgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIp
IG92ZXJyaWRlCitwcml2YXRlOgorICAgIFBvbGxSZXN1bHQgcG9sbChjb25zdCBBYnN0cmFjdExv
Y2tlciYgbG9ja2VyKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKG1fcG9vbC5tX2lzRHlpbmcp
CiAgICAgICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6U3RvcDsKQEAgLTE5NSwxNSArMTk1LDE0
IEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIFBvbGxSZXN1bHQ6OldhaXQ7CiAgICAgfQog
ICAgIAotICAgIFdvcmtSZXN1bHQgd29yaygpIG92ZXJyaWRlCisgICAgV29ya1Jlc3VsdCB3b3Jr
KCkgZmluYWwKICAgICB7CiAgICAgICAgIG1fY2xpZW50LT5ydW5UYXNrKG1fdGFzayk7CiAgICAg
ICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKICAgICAgICAgbV90YXNrID0gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuIFdvcmtSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KLSAgICAKLXByaXZhdGU6CisK
ICAgICBQYXJhbGxlbEhlbHBlclBvb2wmIG1fcG9vbDsKICAgICBQYXJhbGxlbEhlbHBlckNsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+
IG1fdGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBiL1NvdXJjZS9X
VEYvd3RmL1J1bkxvb3AuaAppbmRleCBjZWFjMmVkYTQ4NTNmNWFhYWU2NDI1YzQyYWFjNjYxODk3
ZTlkMGExLi4xODk2NzFiMDk2ZmYzN2RhYTgwYWY2NWYxYmQ4ZWIzZDg1YTE0ZWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKKysrIGIvU291cmNlL1dURi93dGYvUnVuTG9v
cC5oCkBAIC01NSw3ICs1NSw3IEBAIHVzaW5nIFJ1bkxvb3BNb2RlID0gdW5zaWduZWQ7CiAjZGVm
aW5lIERlZmF1bHRSdW5Mb29wTW9kZSAwCiAjZW5kaWYKIAotY2xhc3MgUnVuTG9vcCA6IHB1Ymxp
YyBGdW5jdGlvbkRpc3BhdGNoZXIgeworY2xhc3MgUnVuTG9vcCBmaW5hbCA6IHB1YmxpYyBGdW5j
dGlvbkRpc3BhdGNoZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bkxvb3ApOwogcHVi
bGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkIChleGNlcHQg
Zm9yIHRoZSBNYWMgcGxhdGZvcm0sIHdoZXJlIGl0CkBAIC02NSw5ICs2NSw5IEBAIHB1YmxpYzoK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AmIGN1cnJlbnQoKTsKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJ1bkxvb3AmIG1haW4oKTsKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIGJvb2wgaXNNYWluKCk7Ci0gICAgflJ1bkxvb3AoKTsKKyAgICB+UnVu
TG9vcCgpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkKCk+JiYpIG92
ZXJyaWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoKEZ1bmN0aW9uPHZv
aWQoKT4mJikgZmluYWw7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcnVu
KCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcCgpOwpAQCAtMTc3LDcgKzE3Nyw3
IEBAIHB1YmxpYzoKICAgICB9OwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKLSAgICBj
bGFzcyBEaXNwYXRjaFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgY2xhc3MgRGlzcGF0
Y2hUaW1lciBmaW5hbCA6IHB1YmxpYyBUaW1lckJhc2UgewogICAgIHB1YmxpYzoKICAgICAgICAg
RGlzcGF0Y2hUaW1lcihSdW5Mb29wJiBydW5Mb29wKQogICAgICAgICAgICAgOiBUaW1lckJhc2Uo
cnVuTG9vcCkKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Z1bmN0
aW9uID0gV1RGTW92ZShmdW5jdGlvbik7CiAgICAgICAgIH0KICAgICBwcml2YXRlOgotICAgICAg
ICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUgeyBtX2Z1bmN0aW9uKCk7IH0KKyAgICAgICAgdm9pZCBm
aXJlZCgpIGZpbmFsIHsgbV9mdW5jdGlvbigpOyB9CiAKICAgICAgICAgRnVuY3Rpb248dm9pZCgp
PiBtX2Z1bmN0aW9uOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TaGFyZWRU
YXNrLmggYi9Tb3VyY2UvV1RGL3d0Zi9TaGFyZWRUYXNrLmgKaW5kZXggOWZmYmZmZThhYjdjYjJl
MjRhZmQzZmEyMjgzNTUzYTkxMjEzOWQwYi4uMjg1ZWQyZDg3ZDA3YzRhYTIzYjJhZmQxNDJiN2M0
ZjVkZGNkZTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2hhcmVkVGFzay5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1NoYXJlZFRhc2suaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAv
LyB5b3UgZG9uJ3Qgd2FudCB0byB1c2UgdGhpcyBjbGFzcyBkaXJlY3RseS4gVXNlIGNyZWF0ZVNo
YXJlZFRhc2soKSBpbnN0ZWFkLgogdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBl
bmFtZSBGdW5jdG9yPiBjbGFzcyBTaGFyZWRUYXNrRnVuY3RvcjsKIHRlbXBsYXRlPHR5cGVuYW1l
IFJlc3VsdFR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50VHlwZXMsIHR5cGVuYW1lIEZ1bmN0b3I+
Ci1jbGFzcyBTaGFyZWRUYXNrRnVuY3RvcjxSZXN1bHRUeXBlIChBcmd1bWVudFR5cGVzLi4uKSwg
RnVuY3Rvcj4gOiBwdWJsaWMgU2hhcmVkVGFzazxSZXN1bHRUeXBlIChBcmd1bWVudFR5cGVzLi4u
KT4geworY2xhc3MgU2hhcmVkVGFza0Z1bmN0b3I8UmVzdWx0VHlwZShBcmd1bWVudFR5cGVzLi4u
KSwgRnVuY3Rvcj4gZmluYWwgOiBwdWJsaWMgU2hhcmVkVGFzazxSZXN1bHRUeXBlKEFyZ3VtZW50
VHlwZXMuLi4pPiB7CiBwdWJsaWM6CiAgICAgU2hhcmVkVGFza0Z1bmN0b3IoY29uc3QgRnVuY3Rv
ciYgZnVuY3RvcikKICAgICAgICAgOiBtX2Z1bmN0b3IoZnVuY3RvcikKQEAgLTg2LDcgKzg2LDcg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBSZXN1bHRUeXBlIHJ1bihBcmd1bWVu
dFR5cGVzLi4uIGFyZ3VtZW50cykgb3ZlcnJpZGUKKyAgICBSZXN1bHRUeXBlIHJ1bihBcmd1bWVu
dFR5cGVzLi4uIGFyZ3VtZW50cykgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX2Z1bmN0
b3Ioc3RkOjpmb3J3YXJkPEFyZ3VtZW50VHlwZXM+KGFyZ3VtZW50cykuLi4pOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RG
L3d0Zi9TdHJpbmdQcmludFN0cmVhbS5oCmluZGV4IDY1ZWU0ZDYyNzNkNDJlYmM2ZWY1N2Y0MTU4
ZWMwNDU4Nzk3ZDZlNTQuLjM2MjVlYWI1ZjFhYWYxMTA5ZTA1M2NiZDFhMWI1MjEyNzgxZmM0NzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgKKysrIGIvU291
cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaApAQCAtMzEsMTIgKzMxLDEyIEBACiAKIG5h
bWVzcGFjZSBXVEYgewogCi1jbGFzcyBTdHJpbmdQcmludFN0cmVhbSA6IHB1YmxpYyBQcmludFN0
cmVhbSB7CitjbGFzcyBTdHJpbmdQcmludFN0cmVhbSBmaW5hbCA6IHB1YmxpYyBQcmludFN0cmVh
bSB7CiBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZ1ByaW50U3RyZWFtKCk7
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflN0cmluZ1ByaW50U3RyZWFtKCk7Cisg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIH5TdHJpbmdQcmludFN0cmVhbSgpIGZpbmFsOwogICAgIAot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHZwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCB2
YV9saXN0KSBvdmVycmlkZSBXVEZfQVRUUklCVVRFX1BSSU5URigyLCAwKTsKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgZmlu
YWwgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7CiAKICAgICBzaXplX3QgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9uZXh0OyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9X
b3JrUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmluZGV4IDI5MjJmZGZiOGQ4
NGJlOGQxNWYxZTZiNDM0YTc4MDEyNDFmYjgwNzQuLjQ5NjU5ZGJhOTk5NTFiZmNjYzRkYzhhMDA0
ZTUzMzI1MTM3MTBjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC01Niw5ICs1Niw5IEBAIHB1YmxpYzoK
ICAgICB9OwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBj
cmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpE
ZWZhdWx0KTsKLSAgICB2aXJ0dWFsIH5Xb3JrUXVldWUoKTsKKyAgICB+V29ya1F1ZXVlKCkgZmlu
YWw7CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lk
KCk+JiYpIG92ZXJyaWRlOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoKEZ1
bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlz
cGF0Y2hBZnRlcihTZWNvbmRzLCBGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyB2b2lkIGNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywg
V1RGOjpGdW5jdGlvbjx2b2lkKHNpemVfdCBpbmRleCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvV29ya2VyUG9vbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcApp
bmRleCA4NTc4MDNlZDc5MDg5MWU4YWUyMDBhM2FmYzgwOWYyNjkzODNkZjY0Li5jYjZhY2ZkOTZi
ZjcxYWZhNmVkZjYxOTllZjNhZjYxNjBhYTA5OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9Xb3JrZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcApAQCAt
NzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3Bvb2wuc2hvdWxkU2xlZXAo
bG9ja2VyKTsKICAgICB9CiAKLSAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUK
KyAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVy
biBtX3Bvb2wubmFtZSgpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>