<?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>118752</bug_id>
          
          <creation_ts>2013-07-16 15:32:02 -0700</creation_ts>
          <short_desc>Merge blink MediaSource changes since fork.</short_desc>
          <delta_ts>2013-09-18 10:24:37 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>909036</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-07-16 15:32:02 -0700</bug_when>
    <thetext>Merge blink MediaSource changes since fork.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914271</commentid>
    <comment_count>1</comment_count>
      <attachid>208046</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-08-02 14:11:04 -0700</bug_when>
    <thetext>Created attachment 208046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914279</commentid>
    <comment_count>2</comment_count>
      <attachid>208046</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-02 14:29:53 -0700</bug_when>
    <thetext>Comment on attachment 208046
Patch

Attachment 208046 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1330273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914280</commentid>
    <comment_count>3</comment_count>
      <attachid>208046</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-02 14:30:57 -0700</bug_when>
    <thetext>Comment on attachment 208046
Patch

Attachment 208046 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1334305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914298</commentid>
    <comment_count>4</comment_count>
      <attachid>208048</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-08-02 15:17:43 -0700</bug_when>
    <thetext>Created attachment 208048
Address Qt build failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914301</commentid>
    <comment_count>5</comment_count>
      <attachid>208048</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-02 15:32:19 -0700</bug_when>
    <thetext>Comment on attachment 208048
Address Qt build failures.

Attachment 208048 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1331304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914303</commentid>
    <comment_count>6</comment_count>
      <attachid>208048</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-02 15:33:23 -0700</bug_when>
    <thetext>Comment on attachment 208048
Address Qt build failures.

Attachment 208048 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1337305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914318</commentid>
    <comment_count>7</comment_count>
      <attachid>208048</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-02 16:13:50 -0700</bug_when>
    <thetext>Comment on attachment 208048
Address Qt build failures.

Attachment 208048 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1332271</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914332</commentid>
    <comment_count>8</comment_count>
      <attachid>208048</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-02 18:50:19 -0700</bug_when>
    <thetext>Comment on attachment 208048
Address Qt build failures.

Attachment 208048 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1332315</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914609</commentid>
    <comment_count>9</comment_count>
      <attachid>208131</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-08-05 09:59:12 -0700</bug_when>
    <thetext>Created attachment 208131
Patch

Add another new file to build system (PublicUrLManager.cpp).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914613</commentid>
    <comment_count>10</comment_count>
      <attachid>208131</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-05 10:14:13 -0700</bug_when>
    <thetext>Comment on attachment 208131
Patch

Attachment 208131 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1386118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914614</commentid>
    <comment_count>11</comment_count>
      <attachid>208131</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-05 10:15:00 -0700</bug_when>
    <thetext>Comment on attachment 208131
Patch

Attachment 208131 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1377176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914620</commentid>
    <comment_count>12</comment_count>
      <attachid>208134</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-08-05 10:24:45 -0700</bug_when>
    <thetext>Created attachment 208134
Patch

...and add that same file to Target.pri as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914628</commentid>
    <comment_count>13</comment_count>
      <attachid>208134</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-05 11:07:03 -0700</bug_when>
    <thetext>Comment on attachment 208134
Patch

Attachment 208134 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1381182</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914630</commentid>
    <comment_count>14</comment_count>
      <attachid>208137</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-08-05 11:11:52 -0700</bug_when>
    <thetext>Created attachment 208137
Patch

Add PublicURLManager.cpp to CMakeLists.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914924</commentid>
    <comment_count>15</comment_count>
      <attachid>208137</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-08-06 12:59:56 -0700</bug_when>
    <thetext>Comment on attachment 208137
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930669</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-09-18 10:24:37 -0700</bug_when>
    <thetext>Committed r156049: &lt;http://trac.webkit.org/changeset/156049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208046</attachid>
            <date>2013-08-02 14:11:04 -0700</date>
            <delta_ts>2013-08-02 15:17:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118752-20130802141103.patch</filename>
            <type>text/plain</type>
            <size>310919</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlZDBhMWM0ZWE4NGU3
OTY1OTI2ZjNiN2U5MDA1ZDczNzI0Zjg2NS4uNzM4Yzk1NWZhYWFiZmZlZmU1YWM5MzgxN2E5MWUy
ZDJjYWUxY2I4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTA3LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIGJsaW5rIE1lZGlh
U291cmNlIGNoYW5nZXMgc2luY2UgZm9yay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODc1MgorCisgICAgICAgIEFkZCBmaWxlcyB0byBwcm9qZWN0
LiBGaXggY29tcGlsZSBlcnJvcnMgZXhwb3NlZCBieSBlbmFibGluZy4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2VSZWdpc3RyeTo6bG9va3VwTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bG9hZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUpOgor
CisgICAgICAgIE1lcmdlCisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9ibGluay8rL2MzOGUyOTU1ZGI5OGEzMDBhNTM1YjY5Mjg2OWZlYTBlNDE1MDE0
OTcKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2Js
aW5rLysvODU2ODAxNWU5YmVlMWRlN2ZjY2VlMjgxNjNmOWU0YTRiNTFmOWJhZgorICAgICAgICBo
dHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy8xNDQxN2U4
ZmE2Mjk0ZjRlN2RiYzFlMGZhYzU0OTM5ODUyMmIyZjk3CisgICAgICAgIGh0dHBzOi8vY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2Y0M2E1NDk2ZjIzMzEwMmY4ODYx
YTA2N2E5Y2Y4MDUzYzAxMGQ0MDEKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL2JsaW5rLysvNTc3NzE0Mzk4MDZmN2M2ZTZhMjcyZWZiMWVhNzI5MDBm
NWY2YTAxNQorICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vYmxpbmsvKy84Yzc3YTc5MGE5ZDIyNTE5NGRiMGE4ODMyMzk5ZDBmOWUxZmE1NGVjCisgICAg
ICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2Qz
M2FlM2ZhN2E4NTkyZTk0NjUwM2VkMTdmODYyYTI3YzZkOWRkZTEKKyAgICAgICAgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvMWNhYWE5YzUxZjA2ZTFi
OTM0MWQ1OGM5OTRmNzdmZDU5ZmNkMjM2ZAorICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2ds
ZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy9lOTU3MjAzOTNiMGViZTY3ZjE5ZGUzOWJiNzdj
ZGYyOTI2MTY1NTEyCisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9j
aHJvbWl1bS9ibGluay8rL2JhZDJjMWI0YjcwZmFlYzczMWIyYWQzY2M4YTRjY2YyOGRlNmNjMzgK
KyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5r
LysvYTc4NzM0MzBjM2Q1YzkzNzMzMzZjNmYzOTkzZGIzY2I0MjI4ZTljZAorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy81MDg5NjZkNWUz
MjM2MGIzY2VjMDU4ZjlmYmFlMDAxNDU0MmZiYzUyCisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0u
Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rLzM3MWRmZTcyZjYxY2U2ZjczZTZjMjQy
MzI0ZGE3M2M0MTVkMzhiZTMKKwogMjAxMy0wOC0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29weSBlZ2xwbGF0Zm9ybS5oIHRvIGJlIGZv
dW5kIGJ5IFdpbmRvd3MgV2ViR0wgYnVpbGQuCkBAIC0zNzM2MSw2ICszNzM5Myw3IEBACiAgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL1dpbmRvdy93ZWItdGltaW5nLW1pbmltYWwtcGVyZm9ybWFuY2Ut
bm93Lmh0bWwKIAogICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CiAgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgogICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3Rv
cnkuaW46CiAgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCmluZGV4IDFkMzQ2ZTJlN2RjYmUwYzMxMDVjNWRhMGYzZmQwZWI4MzI0MGQ3MDIuLmI5
MzYyYWVlMTdiNjk2ZWI0OTZjYjUzM2IzOWMzMDFlYzI3ZTBkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKQEAgLTI3Niw3ICsyNzYsNyBAQAogI2luY2x1ZGUgIkpTTWVkaWFMaXN0LmNw
cCIKICNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0LmNwcCIKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotI2luY2x1ZGUgIkpTTWVkaWFTb3VyY2UuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0TWVk
aWFTb3VyY2UuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5lbC5jcHAiCiAj
aW5jbHVkZSAiSlNNZXNzYWdlRXZlbnQuY3BwIgpAQCAtMzIxLDggKzMyMSw4IEBACiAjaW5jbHVk
ZSAiSlNTaGFyZWRXb3JrZXIuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiSlNTb3VyY2VCdWZm
ZXIuY3BwIgotI2luY2x1ZGUgIkpTU291cmNlQnVmZmVyTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNX
ZWJLaXRTb3VyY2VCdWZmZXIuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1NRTEVycm9yLmNwcCIKICNpbmNsdWRlICJKU1NR
TEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhYWIzZTgx
N2E1M2Q2MzZlYTUzYjA5YWRhY2ZkZWFjM2RkYWM4YWY4Li5iZjE5YTQ1MGVjN2UyNDhmZTQ5Mjcx
ZDcyODVkNzliOGMwNzA2Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEx
Miw5ICsxMTIsMTMgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9p
bmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCi0gICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAotICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggM2Q0ZjJjZGRhMjJhNWM0Mzg3
YWY3NTViN2U2NjE5M2NiMjE3ZTE3YS4uNWJhY2IzMzA5NWIxM2Q2ZWI3MjJlZGQ0OTg3OGYxMzcx
MTIyOTFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01MTUsOCArNTE1LDgg
QEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFFcnJvci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFMaXN0LmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5oIFwKLQlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVkaWFTb3VyY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE1lZGlhU291
cmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE1lZGlhU291cmNlLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIFwKQEAgLTY3OSwxMCArNjc5LDEwIEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFy
ZWRXb3JrZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhcmVkV29ya2VyLmgg
XAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXIuY3BwIFwKLQlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nv
dXJjZUJ1ZmZlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFNvdXJj
ZUJ1ZmZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRTb3VyY2VCdWZm
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBlZTYzMjY5YzZl
OGI4MDY0YWI2NDEzYTIyMjg2NmE3YjE3NzAxOWE0Li4wZWIwMjlkYmQ3YjcwZDFmMjIxNzdkMGM3
ZjUyOTUxZTFkN2EyNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzQsMTEgKzM0LDE1IEBACiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJHZW5lcmlj
RXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJl
Z2lzdHJ5LmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNv
dXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSA8
d3RmL1VpbnQ4QXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNTAsNjQgKzU0LDI0IEBAIFBhc3NSZWZQdHI8TWVkaWFTb3Vy
Y2U+IE1lZGlhU291cmNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
IH0KIAogTWVkaWFTb3VyY2U6Ok1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKLSAgICAsIG1fcmVhZHlTdGF0
ZShjbG9zZWRLZXl3b3JkKCkpCi0gICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5lcmljRXZlbnRR
dWV1ZTo6Y3JlYXRlKHRoaXMpKQorICAgIDogTWVkaWFTb3VyY2VCYXNlKGNvbnRleHQpCiB7Ci0g
ICAgbV9zb3VyY2VCdWZmZXJzID0gU291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9hc3luY0V2ZW50UXVldWUuZ2V0KCkpOwotICAgIG1fYWN0aXZlU291
cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIG1fYXN5bmNFdmVudFF1ZXVlLmdldCgpKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNv
dXJjZTo6TWVkaWFTb3VyY2UgJXAiLCB0aGlzKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBTb3Vy
Y2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50
UXVldWUoKSk7CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzID0gU291cmNlQnVmZmVyTGlzdDo6
Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYXN5bmNFdmVudFF1ZXVlKCkpOwogfQog
Ci1jb25zdCBTdHJpbmcmIE1lZGlhU291cmNlOjpvcGVuS2V5d29yZCgpCitNZWRpYVNvdXJjZTo6
fk1lZGlhU291cmNlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
b3BlbiwgKEFTQ0lJTGl0ZXJhbCgib3BlbiIpKSk7Ci0gICAgcmV0dXJuIG9wZW47Ci19Ci0KLWNv
bnN0IFN0cmluZyYgTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKQotewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjbG9zZWQsIChBU0NJSUxpdGVyYWwoImNsb3NlZCIp
KSk7Ci0gICAgcmV0dXJuIGNsb3NlZDsKLX0KLQotY29uc3QgU3RyaW5nJiBNZWRpYVNvdXJjZTo6
ZW5kZWRLZXl3b3JkKCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
ZW5kZWQsIChBU0NJSUxpdGVyYWwoImVuZGVkIikpKTsKLSAgICByZXR1cm4gZW5kZWQ7Ci19Ci0K
LVNvdXJjZUJ1ZmZlckxpc3QqIE1lZGlhU291cmNlOjpzb3VyY2VCdWZmZXJzKCkKLXsKLSAgICBy
ZXR1cm4gbV9zb3VyY2VCdWZmZXJzLmdldCgpOwotfQotCi1Tb3VyY2VCdWZmZXJMaXN0KiBNZWRp
YVNvdXJjZTo6YWN0aXZlU291cmNlQnVmZmVycygpCi17Ci0gICAgLy8gRklYTUUoOTE2NDkpOiBz
dXBwb3J0IHRyYWNrIHNlbGVjdGlvbgotICAgIHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMu
Z2V0KCk7Ci19Ci0KLWRvdWJsZSBNZWRpYVNvdXJjZTo6ZHVyYXRpb24oKSBjb25zdAotewotICAg
IHJldHVybiBtX3JlYWR5U3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpID8gc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OnF1aWV0X05hTigpIDogbV9wcml2YXRlLT5kdXJhdGlvbigpOwotfQotCi12
b2lkIE1lZGlhU291cmNlOjpzZXREdXJhdGlvbihkb3VibGUgZHVyYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotICAgIGlmIChkdXJhdGlvbiA8IDAuMCB8fCBzdGQ6OmlzbmFuKGR1cmF0aW9u
KSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBpZiAobV9yZWFkeVN0YXRlICE9IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3By
aXZhdGUtPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNvdXJj
ZTo6fk1lZGlhU291cmNlICVwIiwgdGhpcyk7CisgICAgQVNTRVJUKGlzQ2xvc2VkKCkpOwogfQog
CiBTb3VyY2VCdWZmZXIqIE1lZGlhU291cmNlOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5n
JiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMu
b3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Uu
aHRtbCNkb20tYWRkc291cmNlYnVmZmVyCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3VyY2U6OmFk
ZFNvdXJjZUJ1ZmZlciglcykgJXAiLCB0eXBlLmFzY2lpKCkuZGF0YSgpLCB0aGlzKTsKKworICAg
IC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVs
dC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3Vy
Y2VCdWZmZXItU291cmNlQnVmZmVyLURPTVN0cmluZy10eXBlCiAgICAgLy8gMS4gSWYgdHlwZSBp
cyBudWxsIG9yIGFuIGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2Vw
dGlvbiBhbmQKICAgICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBpZiAodHlwZS5pc051bGwo
KSB8fCB0eXBlLmlzRW1wdHkoKSkgewpAQCAtMTI0LDcgKzg4LDcgQEAgU291cmNlQnVmZmVyKiBN
ZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9u
Q29kZSYgZWMKIAogICAgIC8vIDQuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3Qg
aW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93IGFuCiAgICAgLy8gSU5WQUxJRF9TVEFURV9F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8
fCBtX3JlYWR5U3RhdGUgIT0gb3BlbktleXdvcmQoKSkgeworICAgIGlmICghaXNPcGVuKCkpIHsK
ICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQpAQCAtMTMyLDM4ICs5NiwyOSBAQCBTb3VyY2VCdWZmZXIqIE1lZGlhU291cmNlOjphZGRTb3Vy
Y2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYwogICAgIC8vIDUu
IENyZWF0ZSBhIG5ldyBTb3VyY2VCdWZmZXIgb2JqZWN0IGFuZCBhc3NvY2lhdGVkIHJlc291cmNl
cy4KICAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZSh0eXBlKTsKICAgICBWZWN0b3I8U3RyaW5n
PiBjb2RlY3MgPSBjb250ZW50VHlwZS5jb2RlY3MoKTsKLSAgICBPd25QdHI8U291cmNlQnVmZmVy
UHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZTsKLSAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+YWRk
U291cmNlQnVmZmVyKGNvbnRlbnRUeXBlLnR5cGUoKSwgY29kZWNzLCAmc291cmNlQnVmZmVyUHJp
dmF0ZSkpIHsKLSAgICBjYXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6T2s6IHsKLSAgICAgICAgQVNT
RVJUKHNvdXJjZUJ1ZmZlclByaXZhdGUpOwotICAgICAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBi
dWZmZXIgPSBTb3VyY2VCdWZmZXI6OmNyZWF0ZShzb3VyY2VCdWZmZXJQcml2YXRlLnJlbGVhc2Uo
KSwgdGhpcyk7Ci0KLSAgICAgICAgLy8gNi4gQWRkIHRoZSBuZXcgb2JqZWN0IHRvIHNvdXJjZUJ1
ZmZlcnMgYW5kIGZpcmUgYSBhZGRzb3VyY2VidWZmZXIgb24gdGhhdCBvYmplY3QuCi0gICAgICAg
IG1fc291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7Ci0gICAgICAgIG1fYWN0aXZlU291cmNlQnVm
ZmVycy0+YWRkKGJ1ZmZlcik7Ci0gICAgICAgIC8vIDcuIFJldHVybiB0aGUgbmV3IG9iamVjdCB0
byB0aGUgY2FsbGVyLgotICAgICAgICByZXR1cm4gYnVmZmVyLmdldCgpOwotICAgIH0KLSAgICBj
YXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6Tm90U3VwcG9ydGVkOgotICAgICAgICAvLyAyIChjb250
KS4gSWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSAuLi4gdGhhdCBpcyBub3Qgc3VwcG9ydGVk
IHdpdGggdGhlIHR5cGVzIAotICAgICAgICAvLyBzcGVjaWZpZWQgZm9yIHRoZSBvdGhlciBTb3Vy
Y2VCdWZmZXIgb2JqZWN0cyBpbiBzb3VyY2VCdWZmZXJzLCB0aGVuIHRocm93Ci0gICAgICAgIC8v
IGEgTk9UX1NVUFBPUlRFRF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2Fz
ZSBNZWRpYVNvdXJjZVByaXZhdGU6OlJlYWNoZWRJZExpbWl0OgotICAgICAgICAvLyAzIChjb250
KS4gSWYgdGhlIHVzZXIgYWdlbnQgY2FuJ3QgaGFuZGxlIGFueSBtb3JlIFNvdXJjZUJ1ZmZlciBv
YmplY3RzIHRoZW4gdGhyb3cgCi0gICAgICAgIC8vIGEgUVVPVEFfRVhDRUVERURfRVJSIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGVjID0gUVVPVEFfRVhDRUVERURf
RVJSOworICAgIE93blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRl
ID0gY3JlYXRlU291cmNlQnVmZmVyUHJpdmF0ZShjb250ZW50VHlwZS50eXBlKCksIGNvZGVjcywg
ZWMpOworCisgICAgaWYgKCFzb3VyY2VCdWZmZXJQcml2YXRlKSB7CisgICAgICAgIEFTU0VSVChl
YyA9PSBOT1RfU1VQUE9SVEVEX0VSUiB8fCBlYyA9PSBRVU9UQV9FWENFRURFRF9FUlIpOworICAg
ICAgICAvLyAyLiBJZiB0eXBlIGNvbnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1cHBv
cnRlZCAuLi4sIHRoZW4gdGhyb3cgYSBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFi
b3J0IHRoZXNlIHN0ZXBzLgorICAgICAgICAvLyAzLiBJZiB0aGUgdXNlciBhZ2VudCBjYW4ndCBo
YW5kbGUgYW55IG1vcmUgU291cmNlQnVmZmVyIG9iamVjdHMgdGhlbiB0aHJvdyBhIFFVT1RBX0VY
Q0VFREVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzCiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOwor
ICAgIFJlZlB0cjxTb3VyY2VCdWZmZXI+IGJ1ZmZlciA9IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKHNv
dXJjZUJ1ZmZlclByaXZhdGUucmVsZWFzZSgpLCB0aGlzLCBhc3luY0V2ZW50UXVldWUoKSk7Cisg
ICAgLy8gNi4gQWRkIHRoZSBuZXcgb2JqZWN0IHRvIHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSBh
ZGRzb3VyY2VidWZmZXIgb24gdGhhdCBvYmplY3QuCisgICAgbV9zb3VyY2VCdWZmZXJzLT5hZGQo
YnVmZmVyKTsKKyAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmFkZChidWZmZXIpOworICAgIC8v
IDcuIFJldHVybiB0aGUgbmV3IG9iamVjdCB0byB0aGUgY2FsbGVyLgorICAgIHJldHVybiBidWZm
ZXIuZ2V0KCk7CiB9CiAKIHZvaWQgTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3Vy
Y2VCdWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gMy4xIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLmh0bWwjZG9tLXJlbW92ZXNvdXJjZWJ1ZmZlcgorICAgIExPRyhNZWRpYSwgIk1l
ZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoKSAlcCIsIHRoaXMpOworICAgIFJlZlB0cjxT
b3VyY2VCdWZmZXI+IHByb3RlY3QoYnVmZmVyKTsKKworICAgIC8vIDIuMiBodHRwczovL2R2Y3Mu
dzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1yZW1vdmVTb3VyY2VCdWZmZXItdm9pZC1Tb3Vy
Y2VCdWZmZXItc291cmNlQnVmZmVyCiAgICAgLy8gMS4gSWYgc291cmNlQnVmZmVyIGlzIG51bGwg
dGhlbiB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZAogICAgIC8vIGFi
b3J0IHRoZXNlIHN0ZXBzLgogICAgIGlmICghYnVmZmVyKSB7CkBAIC0xNzEsOTggKzEyNiw2OCBA
QCB2b2lkIE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyKiBidWZm
ZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
Mi4gSWYgc291cmNlQnVmZmVycyBpcyBlbXB0eSB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVf
RVJSIGV4Y2VwdGlvbiBhbmQKLSAgICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1f
cHJpdmF0ZSB8fCAhbV9zb3VyY2VCdWZmZXJzLT5sZW5ndGgoKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gMy4gSWYg
c291cmNlQnVmZmVyIHNwZWNpZmllcyBhbiBvYmplY3QgdGhhdCBpcyBub3QgaW4gc291cmNlQnVm
ZmVycyB0aGVuCisgICAgLy8gMi4gSWYgc291cmNlQnVmZmVyIHNwZWNpZmllcyBhbiBvYmplY3Qg
dGhhdCBpcyBub3QgaW4gc291cmNlQnVmZmVycyB0aGVuCiAgICAgLy8gdGhyb3cgYSBOT1RfRk9V
TkRfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgLy8gNi4gUmVtb3Zl
IHNvdXJjZUJ1ZmZlciBmcm9tIHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSByZW1vdmVzb3VyY2Vi
dWZmZXIgZXZlbnQKLSAgICAvLyBvbiB0aGF0IG9iamVjdC4KLSAgICBpZiAoIW1fc291cmNlQnVm
ZmVycy0+cmVtb3ZlKGJ1ZmZlcikpIHsKKyAgICBpZiAoIW1fc291cmNlQnVmZmVycy0+bGVuZ3Ro
KCkgfHwgIW1fc291cmNlQnVmZmVycy0+Y29udGFpbnMoYnVmZmVyKSkgewogICAgICAgICBlYyA9
IE5PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyA3LiBEZXN0
cm95IGFsbCByZXNvdXJjZXMgZm9yIHNvdXJjZUJ1ZmZlci4KLSAgICBtX2FjdGl2ZVNvdXJjZUJ1
ZmZlcnMtPnJlbW92ZShidWZmZXIpOworICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIudXBk
YXRpbmcgYXR0cmlidXRlIGVxdWFscyB0cnVlLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBz
OiAuLi4KKyAgICBidWZmZXItPmFib3J0SWZVcGRhdGluZygpOwogCi0gICAgLy8gNC4gUmVtb3Zl
IHRyYWNrIGluZm9ybWF0aW9uIGZyb20gYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQgdGV4
dFRyYWNrcyBmb3IgYWxsIHRyYWNrcyAKLSAgICAvLyBhc3NvY2lhdGVkIHdpdGggc291cmNlQnVm
ZmVyIGFuZCBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBvbiB0aGUgbW9kaWZpZWQg
bGlzdHMuCisgICAgLy8gU3RlcHMgNC05IGFyZSByZWxhdGVkIHRvIHVwZGF0aW5nIGF1ZGlvVHJh
Y2tzLCB2aWRlb1RyYWNrcywgYW5kIHRleHRUcmFja3Mgd2hpY2ggYXJlbid0IGltcGxtZW50ZWQg
eWV0LgogICAgIC8vIEZJWE1FKDkxNjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KIAotICAg
IC8vIDUuIElmIHNvdXJjZUJ1ZmZlciBpcyBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJl
bW92ZSBpdCBmcm9tIHRoYXQgbGlzdCBhbmQgZmlyZSBhCi0gICAgLy8gcmVtb3Zlc291cmNlYnVm
ZmVyIGV2ZW50IG9uIHRoYXQgb2JqZWN0LgotICAgIC8vIEZJWE1FKDkxNjQ5KTogc3VwcG9ydCB0
cmFjayBzZWxlY3Rpb24KLX0KKyAgICAvLyAxMC4gSWYgc291cmNlQnVmZmVyIGlzIGluIGFjdGl2
ZVNvdXJjZUJ1ZmZlcnMsIHRoZW4gcmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIGFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMgLi4uCisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKTsK
IAotY29uc3QgU3RyaW5nJiBNZWRpYVNvdXJjZTo6cmVhZHlTdGF0ZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcmVhZHlTdGF0ZTsKKyAgICAvLyAxMS4gUmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9t
IHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQKKyAgICAv
LyBvbiB0aGF0IG9iamVjdC4KKyAgICBtX3NvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIpOwor
CisgICAgLy8gMTIuIERlc3Ryb3kgYWxsIHJlc291cmNlcyBmb3Igc291cmNlQnVmZmVyLgorICAg
IGJ1ZmZlci0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOwogfQogCi12b2lkIE1lZGlhU291cmNl
OjpzZXRSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUpCit2b2lkIE1lZGlhU291cmNlOjpv
blJlYWR5U3RhdGVDaGFuZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBvbGRTdGF0ZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBuZXdTdGF0ZSkKIHsKLSAgICBBU1NFUlQoc3RhdGUgPT0gb3BlbktleXdvcmQo
KSB8fCBzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkgfHwgc3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkp
OwotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gc3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFN0cmluZyBvbGRTdGF0ZSA9IG1fcmVhZHlTdGF0ZTsKLSAgICBtX3JlYWR5U3RhdGUgPSBzdGF0
ZTsKLQotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpKSB7Ci0gICAgICAg
IG1fc291cmNlQnVmZmVycy0+Y2xlYXIoKTsKLSAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJz
LT5jbGVhcigpOwotICAgICAgICBtX3ByaXZhdGUuY2xlYXIoKTsKLSAgICAgICAgc2NoZWR1bGVF
dmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlY2xvc2VFdmVudCk7CisgICAgaWYgKGlzT3Bl
bigpKSB7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNvdXJjZW9wZW5FdmVu
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAob2xkU3RhdGUgPT0gb3Blbktl
eXdvcmQoKSAmJiBtX3JlYWR5U3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgc2No
ZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlZW5kZWRFdmVudCk7CisgICAgaWYg
KG9sZFN0YXRlID09IG9wZW5LZXl3b3JkKCkgJiYgbmV3U3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkp
IHsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuc291cmNlZW5kZWRFdmVudCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9yZWFkeVN0YXRlID09IG9wZW5L
ZXl3b3JkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291
cmNlb3BlbkV2ZW50KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KKyAgICBBU1NFUlQoaXND
bG9zZWQoKSk7CiAKLXZvaWQgTWVkaWFTb3VyY2U6OmVuZE9mU3RyZWFtKGNvbnN0IFN0cmluZyYg
ZXJyb3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5v
cmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5o
dG1sI2RvbS1lbmRvZnN0cmVhbQotICAgIC8vIDEuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0
ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93IGFuCi0gICAgLy8gSU5WQUxJ
RF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1f
cHJpdmF0ZSB8fCBtX3JlYWR5U3RhdGUgIT0gb3BlbktleXdvcmQoKSkgewotICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIG1fYWN0aXZl
U291cmNlQnVmZmVycy0+Y2xlYXIoKTsKIAotICAgIE1lZGlhU291cmNlUHJpdmF0ZTo6RW5kT2ZT
dHJlYW1TdGF0dXMgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yOwor
ICAgIC8vIENsZWFyIFNvdXJjZUJ1ZmZlciByZWZlcmVuY2VzIHRvIHRoaXMgb2JqZWN0LgorICAg
IGZvciAodW5zaWduZWQgbG9uZyBpID0gMDsgaSA8IG1fc291cmNlQnVmZmVycy0+bGVuZ3RoKCk7
ICsraSkKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJzLT5pdGVtKGkpLT5yZW1vdmVkRnJvbU1lZGlh
U291cmNlKCk7CisgICAgbV9zb3VyY2VCdWZmZXJzLT5jbGVhcigpOwogCi0gICAgaWYgKGVycm9y
LmlzTnVsbCgpIHx8IGVycm9yLmlzRW1wdHkoKSkKLSAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFT
b3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yOwotICAgIGVsc2UgaWYgKGVycm9yID09ICJuZXR3b3Jr
IikKLSAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOZXR3b3JrRXJy
b3I7Ci0gICAgZWxzZSBpZiAoZXJyb3IgPT0gImRlY29kZSIpCi0gICAgICAgIGVvc1N0YXR1cyA9
IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9zRGVjb2RlRXJyb3I7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIHNj
aGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNvdXJjZWNsb3NlRXZlbnQpOworfQogCi0gICAgLy8g
Mi4gQ2hhbmdlIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSB2YWx1ZSB0byAiZW5kZWQiLgotICAg
IHNldFJlYWR5U3RhdGUoZW5kZWRLZXl3b3JkKCkpOwotICAgIG1fcHJpdmF0ZS0+ZW5kT2ZTdHJl
YW0oZW9zU3RhdHVzKTsKK1ZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBNZWRpYVNvdXJjZTo6
YWN0aXZlUmFuZ2VzKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4g
YWN0aXZlUmFuZ2VzKG1fYWN0aXZlU291cmNlQnVmZmVycy0+bGVuZ3RoKCkpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytpKQor
ICAgICAgICBhY3RpdmVSYW5nZXNbaV0gPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPml0ZW0oaSkt
PmJ1ZmZlcmVkKEFTU0VSVF9OT19FWENFUFRJT04pOworCisgICAgcmV0dXJuIGFjdGl2ZVJhbmdl
czsKIH0KIAogYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYg
dHlwZSkKIHsKLSAgICAvLyBTZWN0aW9uIDIuMSBpc1R5cGVTdXBwb3J0ZWQoKSBtZXRob2Qgc3Rl
cHMuCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCglcykiLCB0
eXBlLmFzY2lpKCkuZGF0YSgpKTsKKworICAgIC8vIFNlY3Rpb24gMi4yIGlzVHlwZVN1cHBvcnRl
ZCgpIG1ldGhvZCBzdGVwcy4KICAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVk
aWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlh
U291cmNlLWlzVHlwZVN1cHBvcnRlZC1ib29sZWFuLURPTVN0cmluZy10eXBlCiAgICAgLy8gMS4g
SWYgdHlwZSBpcyBhbiBlbXB0eSBzdHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAgIGlmICh0
eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKQpAQCAtMjgyLDU2ICsyMDcsMTEgQEAgYm9v
bCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICBy
ZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNv
bnRlbnRUeXBlLnR5cGUoKSwgY29kZWNzKTsKIH0KIAotdm9pZCBNZWRpYVNvdXJjZTo6c2V0UHJp
dmF0ZUFuZE9wZW4oUGFzc093blB0cjxNZWRpYVNvdXJjZVByaXZhdGU+IG1lZGlhU291cmNlUHJp
dmF0ZSkKLXsKLSAgICBBU1NFUlQobWVkaWFTb3VyY2VQcml2YXRlKTsKLSAgICBBU1NFUlQoIW1f
cHJpdmF0ZSk7Ci0gICAgbV9wcml2YXRlID0gbWVkaWFTb3VyY2VQcml2YXRlOwotICAgIHNldFJl
YWR5U3RhdGUob3BlbktleXdvcmQoKSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFT
b3VyY2U6OmludGVyZmFjZU5hbWUoKSBjb25zdAogewogICAgIHJldHVybiBldmVudE5hbWVzKCku
aW50ZXJmYWNlRm9yTWVkaWFTb3VyY2U7CiB9CiAKLVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1l
ZGlhU291cmNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
QWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci19Ci0KLWJvb2wgTWVk
aWFTb3VyY2U6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJp
dmF0ZSB8fCBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGluZ0V2ZW50cygpCi0gICAgICAgIHx8
IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7Ci19Ci0KLXZvaWQgTWVkaWFT
b3VyY2U6OnN0b3AoKQotewotICAgIG1fcHJpdmF0ZS5jbGVhcigpOwotICAgIG1fYXN5bmNFdmVu
dFF1ZXVlLT5jYW5jZWxBbGxFdmVudHMoKTsKLX0KLQotRXZlbnRUYXJnZXREYXRhKiBNZWRpYVNv
dXJjZTo6ZXZlbnRUYXJnZXREYXRhKCkKLXsKLSAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRh
OwotfQotCi1FdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlOjplbnN1cmVFdmVudFRhcmdldERh
dGEoKQotewotICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Ci19Ci0KLXZvaWQgTWVkaWFT
b3VyY2U6OnNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCi17Ci0g
ICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsKLQotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQg
PSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBldmVudC0+c2V0
VGFyZ2V0KHRoaXMpOwotCi0gICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChldmVu
dC5yZWxlYXNlKCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4
IGJjZjkzNWM2ZjE3YTA1MTVlYzJhZmRjNmJlN2U1ZTJiMzEwMTU3NzQuLmRlNThjZThiODZmMDky
MWU0ZTNjMzdmZGMyYzhmNzIxOGEyZmJiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDczICszMyw0NSBAQAogCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKIAotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1
ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgi
CisjaW5jbHVkZSAiTWVkaWFTb3VyY2VCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxl
LmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyTGlz
dC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNvdXJjZT4sIHB1
YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBNZWRpYVNv
dXJjZSA6IHB1YmxpYyBNZWRpYVNvdXJjZUJhc2UsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIG9wZW5LZXl3b3JkKCk7Ci0gICAgc3Rh
dGljIGNvbnN0IFN0cmluZyYgY2xvc2VkS2V5d29yZCgpOwotICAgIHN0YXRpYyBjb25zdCBTdHJp
bmcmIGVuZGVkS2V5d29yZCgpOwotCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgdmlydHVhbCB+TWVkaWFTb3Vy
Y2UoKSB7IH0KKyAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZSgpOwogCiAgICAgLy8gTWVkaWFTb3Vy
Y2UuaWRsIG1ldGhvZHMKLSAgICBTb3VyY2VCdWZmZXJMaXN0KiBzb3VyY2VCdWZmZXJzKCk7Ci0g
ICAgU291cmNlQnVmZmVyTGlzdCogYWN0aXZlU291cmNlQnVmZmVycygpOwotICAgIGRvdWJsZSBk
dXJhdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlLCBFeGNlcHRpb25D
b2RlJik7CisgICAgU291cmNlQnVmZmVyTGlzdCogc291cmNlQnVmZmVycygpIHsgcmV0dXJuIG1f
c291cmNlQnVmZmVycy5nZXQoKTsgfQorICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMoKSB7IHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KICAgICBT
b3VyY2VCdWZmZXIqIGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgY29uc3QgU3RyaW5nJiByZWFkeVN0YXRlKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZW5kT2ZTdHJlYW0o
Y29uc3QgU3RyaW5nJiBlcnJvciwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHN0YXRpYyBib29sIGlz
VHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOwogCi0gICAgdm9pZCBzZXRQcml2YXRl
QW5kT3BlbihQYXNzT3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4pOwotCiAgICAgLy8gRXZlbnRU
YXJnZXQgaW50ZXJmYWNlCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFj
ZU5hbWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERTsKLQotICAgIC8vIEFj
dGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNl
Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2U+OjpkZXJlZjsKKyAgICB1
c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlQmFzZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3Vu
dGVkPE1lZGlhU291cmNlQmFzZT46OmRlcmVmOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1l
ZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwotCi0gICAg
dmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklE
RTsKLQotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYo
KTsgfQotCi0gICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRO
YW1lKTsKLQotICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKLQotICAgIFN0
cmluZyBtX3JlYWR5U3RhdGU7Ci0gICAgT3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4gbV9wcml2
YXRlOworICAgIC8vIE1lZGlhU291cmNlQmFzZSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQg
b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IGFj
dGl2ZVJhbmdlcygpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlckxp
c3Q+IG1fc291cmNlQnVmZmVyczsKICAgICBSZWZQdHI8U291cmNlQnVmZmVyTGlzdD4gbV9hY3Rp
dmVTb3VyY2VCdWZmZXJzOwotICAgIE93blB0cjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2
ZW50UXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5pZGwKaW5kZXggN2IwNDM0NzA4ZTI1ZDFlYWFlNWVlMzMyZTRkNWI3NGQ1YzE5OTVhZS4uZDBk
NGRkNGY3OTIyZTM5MTNhNTZlZjBkMTA0NWQxYzJlMDg5YmQ1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMyLDEwICszMiwx
MCBAQAogICAgIENvbmRpdGlvbmFsPU1FRElBX1NPVVJDRSwKICAgICBBY3RpdmVET01PYmplY3Qs
CiAgICAgRXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgIENv
bnN0cnVjdG9yLAotICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwKLSAgICBJbnRlcmZhY2VOYW1lPVdlYktpdE1lZGlhU291cmNlCi1dIGludGVyZmFjZSBNZWRp
YVNvdXJjZSB7CisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
CitdIGludGVyZmFjZSBNZWRpYVNvdXJjZSA6IEV2ZW50VGFyZ2V0IHsKICAgICAvLyBBbGwgdGhl
IHNvdXJjZSBidWZmZXJzIGNyZWF0ZWQgYnkgdGhpcyBvYmplY3QuCiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNvdXJjZUJ1ZmZlckxpc3Qgc291cmNlQnVmZmVyczsKIApAQCAtNTIsMTQgKzUyLDQg
QEAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGVuZE9mU3RyZWFtKFtEZWZhdWx0PU51bGxT
dHJpbmddIG9wdGlvbmFsIERPTVN0cmluZyBlcnJvcik7CiAKICAgICBzdGF0aWMgYm9vbGVhbiBp
c1R5cGVTdXBwb3J0ZWQgKERPTVN0cmluZyB0eXBlKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZQotICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIHJl
bW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0g
Ym9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2ZW50IGV2ZW50KTsKIH07Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hY2NlNWM4MjYyMWFkNWZiNGY4NzNjMWVjYWY0ZTlmYjM4YjAzNzZjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZUJhc2UuY3BwCkBAIC0wLDAgKzEsMzE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik1lZGlhU291cmNlQmFzZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK01lZGlhU291cmNlQmFzZTo6TWVkaWFTb3VyY2VCYXNlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKKyAgICAsIG1f
cmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5l
cmljRXZlbnRRdWV1ZTo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9hdHRhY2hlZChmYWxzZSkKK3sK
K30KKworTWVkaWFTb3VyY2VCYXNlOjp+TWVkaWFTb3VyY2VCYXNlKCkKK3sKK30KKworY29uc3Qg
QXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZUJhc2U6Om9wZW5LZXl3b3JkKCkKK3sKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3BlbiwgKCJvcGVuIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBvcGVuOworfQorCitj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU291cmNlQmFzZTo6Y2xvc2VkS2V5d29yZCgpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJjbG9z
ZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgcmV0dXJuIGNs
b3NlZDsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZUJhc2U6OmVuZGVkS2V5
d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVu
ZGVkLCAoImVuZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IHJldHVybiBlbmRlZDsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OnNldFByaXZhdGVBbmRP
cGVuKFBhc3NPd25QdHI8TWVkaWFTb3VyY2VQcml2YXRlPiBtZWRpYVNvdXJjZVByaXZhdGUpCit7
CisgICAgQVNTRVJUKG1lZGlhU291cmNlUHJpdmF0ZSk7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUp
OworICAgIEFTU0VSVChtX2F0dGFjaGVkKTsKKyAgICBtX3ByaXZhdGUgPSBtZWRpYVNvdXJjZVBy
aXZhdGU7CisgICAgc2V0UmVhZHlTdGF0ZShvcGVuS2V5d29yZCgpKTsKK30KKwordm9pZCBNZWRp
YVNvdXJjZUJhc2U6OmFkZGVkVG9SZWdpc3RyeSgpCit7CisgICAgc2V0UGVuZGluZ0FjdGl2aXR5
KHRoaXMpOworfQorCit2b2lkIE1lZGlhU291cmNlQmFzZTo6cmVtb3ZlZEZyb21SZWdpc3RyeSgp
Cit7CisgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Cit9CisKK2RvdWJsZSBNZWRpYVNv
dXJjZUJhc2U6OmR1cmF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDbG9zZWQoKSA/IHN0
ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjpxdWlldF9OYU4oKSA6IG1fcHJpdmF0ZS0+ZHVyYXRp
b24oKTsKK30KKworUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBNZWRpYVNvdXJjZUJhc2U6OmJ1ZmZl
cmVkKCkgY29uc3QKK3sKKyAgICAvLyBJbXBsZW1lbnRzIE1lZGlhU291cmNlIGFsZ29yaXRobSBm
b3IgSFRNTE1lZGlhRWxlbWVudC5idWZmZXJlZC4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3Jn
L2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
Lmh0bWwjaHRtbG1lZGlhZWxlbWVudC1leHRlbnNpb25zCisgICAgVmVjdG9yPFJlZlB0cjxUaW1l
UmFuZ2VzPiA+IHJhbmdlcyA9IGFjdGl2ZVJhbmdlcygpOworCisgICAgLy8gMS4gSWYgYWN0aXZl
U291cmNlQnVmZmVycy5sZW5ndGggZXF1YWxzIDAgdGhlbiByZXR1cm4gYW4gZW1wdHkgVGltZVJh
bmdlcyBvYmplY3QgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChyYW5nZXMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisKKyAgICAvLyAyLiBM
ZXQgYWN0aXZlIHJhbmdlcyBiZSB0aGUgcmFuZ2VzIHJldHVybmVkIGJ5IGJ1ZmZlcmVkIGZvciBl
YWNoIFNvdXJjZUJ1ZmZlciBvYmplY3QgaW4gYWN0aXZlU291cmNlQnVmZmVycy4KKyAgICAvLyAz
LiBMZXQgaGlnaGVzdCBlbmQgdGltZSBiZSB0aGUgbGFyZ2VzdCByYW5nZSBlbmQgdGltZSBpbiB0
aGUgYWN0aXZlIHJhbmdlcy4KKyAgICBkb3VibGUgaGlnaGVzdEVuZFRpbWUgPSAtMTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHJhbmdlcy5zaXplKCk7ICsraSkgeworICAgICAgICB1bnNp
Z25lZCBsZW5ndGggPSByYW5nZXNbaV0tPmxlbmd0aCgpOworICAgICAgICBpZiAobGVuZ3RoKQor
ICAgICAgICAgICAgaGlnaGVzdEVuZFRpbWUgPSBzdGQ6Om1heChoaWdoZXN0RW5kVGltZSwgcmFu
Z2VzW2ldLT5lbmQobGVuZ3RoIC0gMSwgQVNTRVJUX05PX0VYQ0VQVElPTikpOworICAgIH0KKwor
ICAgIC8vIFJldHVybiBhbiBlbXB0eSByYW5nZSBpZiBhbGwgcmFuZ2VzIGFyZSBlbXB0eS4KKyAg
ICBpZiAoaGlnaGVzdEVuZFRpbWUgPCAwKQorICAgICAgICByZXR1cm4gVGltZVJhbmdlczo6Y3Jl
YXRlKCk7CisKKyAgICAvLyA0LiBMZXQgaW50ZXJzZWN0aW9uIHJhbmdlcyBlcXVhbCBhIFRpbWVS
YW5nZSBvYmplY3QgY29udGFpbmluZyBhIHNpbmdsZSByYW5nZSBmcm9tIDAgdG8gaGlnaGVzdCBl
bmQgdGltZS4KKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gaW50ZXJzZWN0aW9uUmFuZ2VzID0gVGlt
ZVJhbmdlczo6Y3JlYXRlKDAsIGhpZ2hlc3RFbmRUaW1lKTsKKworICAgIC8vIDUuIEZvciBlYWNo
IFNvdXJjZUJ1ZmZlciBvYmplY3QgaW4gYWN0aXZlU291cmNlQnVmZmVycyBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKKyAgICBib29sIGVuZGVkID0gcmVhZHlTdGF0ZSgpID09IGVuZGVkS2V5d29y
ZCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmFuZ2VzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIC8vIDUuMSBMZXQgc291cmNlIHJhbmdlcyBlcXVhbCB0aGUgcmFuZ2VzIHJldHVybmVk
IGJ5IHRoZSBidWZmZXJlZCBhdHRyaWJ1dGUgb24gdGhlIGN1cnJlbnQgU291cmNlQnVmZmVyLgor
ICAgICAgICBUaW1lUmFuZ2VzKiBzb3VyY2VSYW5nZXMgPSByYW5nZXNbaV0uZ2V0KCk7CisKKyAg
ICAgICAgLy8gNS4yIElmIHJlYWR5U3RhdGUgaXMgImVuZGVkIiwgdGhlbiBzZXQgdGhlIGVuZCB0
aW1lIG9uIHRoZSBsYXN0IHJhbmdlIGluIHNvdXJjZSByYW5nZXMgdG8gaGlnaGVzdCBlbmQgdGlt
ZS4KKyAgICAgICAgaWYgKGVuZGVkICYmIHNvdXJjZVJhbmdlcy0+bGVuZ3RoKCkpCisgICAgICAg
ICAgICBzb3VyY2VSYW5nZXMtPmFkZChzb3VyY2VSYW5nZXMtPnN0YXJ0KHNvdXJjZVJhbmdlcy0+
bGVuZ3RoKCkgLSAxLCBBU1NFUlRfTk9fRVhDRVBUSU9OKSwgaGlnaGVzdEVuZFRpbWUpOworCisg
ICAgICAgIC8vIDUuMyBMZXQgbmV3IGludGVyc2VjdGlvbiByYW5nZXMgZXF1YWwgdGhlIHRoZSBp
bnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgaW50ZXJzZWN0aW9uIHJhbmdlcyBhbmQgdGhlIHNvdXJj
ZSByYW5nZXMuCisgICAgICAgIC8vIDUuNCBSZXBsYWNlIHRoZSByYW5nZXMgaW4gaW50ZXJzZWN0
aW9uIHJhbmdlcyB3aXRoIHRoZSBuZXcgaW50ZXJzZWN0aW9uIHJhbmdlcy4KKyAgICAgICAgaW50
ZXJzZWN0aW9uUmFuZ2VzLT5pbnRlcnNlY3RXaXRoKHNvdXJjZVJhbmdlcyk7CisgICAgfQorCisg
ICAgcmV0dXJuIGludGVyc2VjdGlvblJhbmdlcy5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgTWVkaWFT
b3VyY2VCYXNlOjpzZXREdXJhdGlvbihkb3VibGUgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIGlmIChkdXJhdGlvbiA8IDAuMCB8fCBzdGQ6OmlzbmFuKGR1cmF0aW9uKSkgewor
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAoIWlzT3BlbigpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9wcml2YXRlLT5zZXREdXJhdGlvbihkdXJhdGlv
bik7Cit9CisKKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OnNldFJlYWR5U3RhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQoc3RhdGUgPT0gb3BlbktleXdvcmQoKSB8
fCBzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkgfHwgc3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpOwor
CisgICAgQXRvbWljU3RyaW5nIG9sZFN0YXRlID0gcmVhZHlTdGF0ZSgpOworICAgIExPRyhNZWRp
YSwgIk1lZGlhU291cmNlQmFzZTo6c2V0UmVhZHlTdGF0ZSgpICVwIDogJXMgLT4gJXMiLCB0aGlz
LCBvbGRTdGF0ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgc3RhdGUuc3RyaW5nKCkuYXNjaWko
KS5kYXRhKCkpOworCisgICAgaWYgKHN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgeworICAgICAg
ICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICAgICAgbV9hdHRhY2hlZCA9IGZhbHNlOworICAgIH0K
KworICAgIGlmIChvbGRTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9y
ZWFkeVN0YXRlID0gc3RhdGU7CisKKyAgICBvblJlYWR5U3RhdGVDaGFuZ2Uob2xkU3RhdGUsIHN0
YXRlKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OmVuZE9mU3RyZWFtKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXR3b3JrLCAoIm5ldHdvcmsiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGRlY29kZSwgKCJkZWNvZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisKKyAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwt
bWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tZW5k
b2ZzdHJlYW0KKyAgICAvLyAxLiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgbm90IGlu
IHRoZSAib3BlbiIgc3RhdGUgdGhlbiB0aHJvdyBhbgorICAgIC8vIElOVkFMSURfU1RBVEVfRVJS
IGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFpc09wZW4oKSkgewor
ICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgTWVkaWFTb3VyY2VQcml2YXRlOjpFbmRPZlN0cmVhbVN0YXR1cyBlb3NTdGF0dXMgPSBN
ZWRpYVNvdXJjZVByaXZhdGU6OkVvc05vRXJyb3I7CisKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkg
fHwgZXJyb3IuaXNFbXB0eSgpKQorICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZh
dGU6OkVvc05vRXJyb3I7CisgICAgZWxzZSBpZiAoZXJyb3IgPT0gbmV0d29yaykKKyAgICAgICAg
ZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOZXR3b3JrRXJyb3I7CisgICAgZWxz
ZSBpZiAoZXJyb3IgPT0gZGVjb2RlKQorICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVBy
aXZhdGU6OkVvc0RlY29kZUVycm9yOworICAgIGVsc2UgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDIuIENoYW5nZSB0
aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdmFsdWUgdG8gImVuZGVkIi4KKyAgICBzZXRSZWFkeVN0
YXRlKGVuZGVkS2V5d29yZCgpKTsKKyAgICBtX3ByaXZhdGUtPm1hcmtFbmRPZlN0cmVhbShlb3NT
dGF0dXMpOworfQorCitib29sIE1lZGlhU291cmNlQmFzZTo6aXNPcGVuKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gcmVhZHlTdGF0ZSgpID09IG9wZW5LZXl3b3JkKCk7Cit9CisKK2Jvb2wgTWVkaWFT
b3VyY2VCYXNlOjppc0Nsb3NlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlYWR5U3RhdGUoKSA9
PSBjbG9zZWRLZXl3b3JkKCk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpjbG9zZSgpCit7
CisgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpOworfQorCitib29sIE1lZGlhU291
cmNlQmFzZTo6YXR0YWNoVG9FbGVtZW50KCkKK3sKKyAgICBpZiAobV9hdHRhY2hlZCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKGlzQ2xvc2VkKCkpOworCisgICAgbV9hdHRh
Y2hlZCA9IHRydWU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNl
OjpvcGVuSWZJbkVuZGVkU3RhdGUoKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gZW5kZWRL
ZXl3b3JkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdv
cmQoKSk7CisgICAgbV9wcml2YXRlLT51bm1hcmtFbmRPZlN0cmVhbSgpOworfQorCitib29sIE1l
ZGlhU291cmNlQmFzZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9wcml2YXRlIHx8IG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCkKKyAgICAg
ICAgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBN
ZWRpYVNvdXJjZUJhc2U6OnN0b3AoKQoreworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5jbG9zZSgp
OworICAgIGlmICghaXNDbG9zZWQoKSkKKyAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3
b3JkKCkpOworICAgIG1fcHJpdmF0ZS5jbGVhcigpOworfQorCitQYXNzT3duUHRyPFNvdXJjZUJ1
ZmZlclByaXZhdGU+IE1lZGlhU291cmNlQmFzZTo6Y3JlYXRlU291cmNlQnVmZmVyUHJpdmF0ZShj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IE1lZGlhU291cmNlUHJpdmF0ZTo6Q29kZWNzQXJyYXkm
IGNvZGVjcywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgT3duUHRyPFNvdXJjZUJ1ZmZlclBy
aXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGU7CisgICAgc3dpdGNoIChtX3ByaXZhdGUtPmFkZFNv
dXJjZUJ1ZmZlcih0eXBlLCBjb2RlY3MsICZzb3VyY2VCdWZmZXJQcml2YXRlKSkgeworICAgIGNh
c2UgTWVkaWFTb3VyY2VQcml2YXRlOjpPazogeworICAgICAgICByZXR1cm4gc291cmNlQnVmZmVy
UHJpdmF0ZS5yZWxlYXNlKCk7CisgICAgfQorICAgIGNhc2UgTWVkaWFTb3VyY2VQcml2YXRlOjpO
b3RTdXBwb3J0ZWQ6CisgICAgICAgIC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwt
bWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lk
bC1NZWRpYVNvdXJjZS1hZGRTb3VyY2VCdWZmZXItU291cmNlQnVmZmVyLURPTVN0cmluZy10eXBl
CisgICAgICAgIC8vIFN0ZXAgMjogSWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSAuLi4gdGhh
dCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhlIHR5cGVzCisgICAgICAgIC8vIHNwZWNpZmllZCBm
b3IgdGhlIG90aGVyIFNvdXJjZUJ1ZmZlciBvYmplY3RzIGluIHNvdXJjZUJ1ZmZlcnMsIHRoZW4g
dGhyb3cKKyAgICAgICAgLy8gYSBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6UmVhY2hlZElkTGlt
aXQ6CisgICAgICAgIC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3
LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNv
dXJjZS1hZGRTb3VyY2VCdWZmZXItU291cmNlQnVmZmVyLURPTVN0cmluZy10eXBlCisgICAgICAg
IC8vIFN0ZXAgMzogSWYgdGhlIHVzZXIgYWdlbnQgY2FuJ3QgaGFuZGxlIGFueSBtb3JlIFNvdXJj
ZUJ1ZmZlciBvYmplY3RzIHRoZW4gdGhyb3cKKyAgICAgICAgLy8gYSBRVU9UQV9FWENFRURFRF9F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgZWMgPSBRVU9UQV9F
WENFRURFRF9FUlI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIE1lZGlhU291
cmNlQmFzZTo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3sK
KyAgICBBU1NFUlQobV9hc3luY0V2ZW50UXVldWUpOworCisgICAgUmVmUHRyPEV2ZW50PiBldmVu
dCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIGV2ZW50LT5z
ZXRUYXJnZXQodGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2
ZW50LnJlbGVhc2UoKSk7Cit9CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNl
QmFzZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworfQorCitFdmVudFRhcmdldERh
dGEqIE1lZGlhU291cmNlQmFzZTo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1f
ZXZlbnRUYXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlQmFzZTo6
ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRh
OworfQorCitVUkxSZWdpc3RyeSYgTWVkaWFTb3VyY2VCYXNlOjpyZWdpc3RyeSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCk7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDYxNmIxOWE3MmQ4NzdkOTMwMjJhYmQ5YjRjOTAx
Nzg2YzgyYWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFT
b3VyY2VCYXNlX2gKKyNkZWZpbmUgTWVkaWFTb3VyY2VCYXNlX2gKKworI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIk1lZGlh
U291cmNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlVSTFJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW5lcmljRXZlbnRR
dWV1ZTsKKworY2xhc3MgTWVkaWFTb3VyY2VCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFT
b3VyY2VCYXNlPiwgcHVibGljIEhUTUxNZWRpYVNvdXJjZSwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBvcGVuS2V5d29yZCgpOworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNs
b3NlZEtleXdvcmQoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBlbmRlZEtleXdv
cmQoKTsKKworICAgIHZpcnR1YWwgfk1lZGlhU291cmNlQmFzZSgpOworCisgICAgdm9pZCBhZGRl
ZFRvUmVnaXN0cnkoKTsKKyAgICB2b2lkIHJlbW92ZWRGcm9tUmVnaXN0cnkoKTsKKyAgICB2b2lk
IG9wZW5JZkluRW5kZWRTdGF0ZSgpOworICAgIGJvb2wgaXNPcGVuKCkgY29uc3Q7CisKKyAgICAv
LyBIVE1MTWVkaWFTb3VyY2UKKyAgICB2aXJ0dWFsIGJvb2wgYXR0YWNoVG9FbGVtZW50KCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVk
aWFTb3VyY2VQcml2YXRlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQ2xvc2VkKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVmSFRNTE1lZGlhU291cmNlKCkgT1ZFUlJJREUgeyByZWYoKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBkZXJlZkhUTUxNZWRpYVNvdXJjZSgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQor
CisgICAgdm9pZCBzZXREdXJhdGlvbihkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7
IH0KKyAgICB2b2lkIHNldFJlYWR5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9p
ZCBlbmRPZlN0cmVhbShjb25zdCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJik7
CisKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBPVkVSUklERTsKKworICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1
YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJn
ZXREYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZF
UlJJREUgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZF
UlJJREUgeyBkZXJlZigpOyB9CisKKyAgICAvLyBVUkxSZWdpc3RyYWJsZSBpbnRlcmZhY2UKKyAg
ICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURFOworCisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZUJhc2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291
bnRlZDxNZWRpYVNvdXJjZUJhc2U+OjpkZXJlZjsKKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0
IE1lZGlhU291cmNlQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICB2aXJ0dWFs
IHZvaWQgb25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkU3RhdGUsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmV3U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQ
dHI8VGltZVJhbmdlcz4gPiBhY3RpdmVSYW5nZXMoKSBjb25zdCA9IDA7CisKKyAgICBQYXNzT3du
UHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IGNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUoY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGU6OkNvZGVjc0FycmF5JiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50TmFtZSk7CisgICAgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
T3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIEV2ZW50VGFyZ2V0RGF0
YSBtX2V2ZW50VGFyZ2V0RGF0YTsKKyAgICBBdG9taWNTdHJpbmcgbV9yZWFkeVN0YXRlOworICAg
IE93blB0cjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisgICAgYm9vbCBt
X2F0dGFjaGVkOworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNw
cAppbmRleCAxYzYyNjc0NjdmNDVkZTg3NTRjZTUzNmEzNjA4MjUzYmM2ZjJhNGIxLi5kYjQ3NTFl
MDA1YmM1ZTIwYTQ4NDNmZjBiNGM3NjFjOWM5MWYzYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAK
QEAgLTM0LDcgKzM0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAi
S1VSTC5oIgotI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VC
YXNlLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDYsMzMgKzQ2LDM3IEBAIE1lZGlhU291cmNlUmVnaXN0cnkmIE1lZGlhU291cmNlUmVn
aXN0cnk6OnJlZ2lzdHJ5KCkKICAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLXZvaWQgTWVkaWFT
b3VyY2VSZWdpc3RyeTo6cmVnaXN0ZXJNZWRpYVNvdXJjZVVSTChjb25zdCBLVVJMJiB1cmwsIFBh
c3NSZWZQdHI8TWVkaWFTb3VyY2U+IHNvdXJjZSkKK3ZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6
cmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiB1cmwsIFVSTFJlZ2lzdHJh
YmxlKiByZWdpc3RyYWJsZSkKIHsKKyAgICBBU1NFUlQoJnJlZ2lzdHJhYmxlLT5yZWdpc3RyeSgp
ID09IHRoaXMpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzb3VyY2UtPnNl
dFBlbmRpbmdBY3Rpdml0eShzb3VyY2UuZ2V0KCkpOwotCisgICAgTWVkaWFTb3VyY2VCYXNlKiBz
b3VyY2UgPSBzdGF0aWNfY2FzdDxNZWRpYVNvdXJjZUJhc2UqPihyZWdpc3RyYWJsZSk7CisgICAg
c291cmNlLT5hZGRlZFRvUmVnaXN0cnkoKTsKICAgICBtX21lZGlhU291cmNlcy5zZXQodXJsLnN0
cmluZygpLCBzb3VyY2UpOwogfQogCi12b2lkIE1lZGlhU291cmNlUmVnaXN0cnk6OnVucmVnaXN0
ZXJNZWRpYVNvdXJjZVVSTChjb25zdCBLVVJMJiB1cmwpCit2b2lkIE1lZGlhU291cmNlUmVnaXN0
cnk6OnVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYgdXJsKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4gPjo6aXRl
cmF0b3IgaXRlciA9IG1fbWVkaWFTb3VyY2VzLmZpbmQodXJsLnN0cmluZygpKTsKKyAgICBIYXNo
TWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU291cmNlQmFzZT4gPjo6aXRlcmF0b3IgaXRlciA9IG1f
bWVkaWFTb3VyY2VzLmZpbmQodXJsLnN0cmluZygpKTsKICAgICBpZiAoaXRlciA9PSBtX21lZGlh
U291cmNlcy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhU291cmNl
PiBzb3VyY2UgPSBpdGVyLT52YWx1ZTsKKyAgICBSZWZQdHI8TWVkaWFTb3VyY2VCYXNlPiBzb3Vy
Y2UgPSBpdGVyLT52YWx1ZTsKICAgICBtX21lZGlhU291cmNlcy5yZW1vdmUoaXRlcik7Ci0KLSAg
ICAvLyBSZW1vdmUgdGhlIHBlbmRpbmcgYWN0aXZpdHkgYWRkZWQgaW4gcmVnaXN0ZXJNZWRpYVNv
dXJjZVVSTCgpLgotICAgIHNvdXJjZS0+dW5zZXRQZW5kaW5nQWN0aXZpdHkoc291cmNlLmdldCgp
KTsKKyAgICBzb3VyY2UtPnJlbW92ZWRGcm9tUmVnaXN0cnkoKTsKIH0KIAotTWVkaWFTb3VyY2Uq
IE1lZGlhU291cmNlUmVnaXN0cnk6Omxvb2t1cE1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgdXJs
KQorVVJMUmVnaXN0cmFibGUqIE1lZGlhU291cmNlUmVnaXN0cnk6Omxvb2t1cChjb25zdCBTdHJp
bmcmIHVybCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBtX21l
ZGlhU291cmNlcy5nZXQodXJsKS5nZXQoKTsKKyAgICByZXR1cm4gbV9tZWRpYVNvdXJjZXMuZ2V0
KHVybCk7Cit9CisKK01lZGlhU291cmNlUmVnaXN0cnk6Ok1lZGlhU291cmNlUmVnaXN0cnkoKQor
eworICAgIEhUTUxNZWRpYVNvdXJjZTo6c2V0UmVnaXN0cnkodGhpcyk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKaW5kZXggOTZkYTZiMzQ3YzcwYzUxMWNiNDY4
ZmVkMjE3MjcyOTcxNjY3NTM3NC4uNDZjMjRkNGUwMzA1ZjZkZGRlOTFjZjRlODQ0MWY0NzdjOTY0
OGE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CkBAIC00MCwyMSArNDEsMjEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgS1VSTDsKLWNsYXNzIE1lZGlhU291cmNlOworY2xhc3MgTWVkaWFTb3VyY2VCYXNl
OwogCi1jbGFzcyBNZWRpYVNvdXJjZVJlZ2lzdHJ5IHsKK2NsYXNzIE1lZGlhU291cmNlUmVnaXN0
cnkgOiBwdWJsaWMgVVJMUmVnaXN0cnkgewogcHVibGljOgogICAgIC8vIFJldHVybnMgYSBzaW5n
bGUgaW5zdGFuY2Ugb2YgTWVkaWFTb3VyY2VSZWdpc3RyeS4KICAgICBzdGF0aWMgTWVkaWFTb3Vy
Y2VSZWdpc3RyeSYgcmVnaXN0cnkoKTsKIAogICAgIC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJl
ZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIG1lZGlhIHNvdXJjZS4KLSAgICB2b2lkIHJlZ2lzdGVy
TWVkaWFTb3VyY2VVUkwoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKLSAg
ICB2b2lkIHVucmVnaXN0ZXJNZWRpYVNvdXJjZVVSTChjb25zdCBLVVJMJik7Ci0KLSAgICBNZWRp
YVNvdXJjZSogbG9va3VwTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmLCBVUkxSZWdp
c3RyYWJsZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0
IEtVUkwmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJhYmxlKiBsb29rdXAoY29u
c3QgU3RyaW5nJikgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJl
ZlB0cjxNZWRpYVNvdXJjZT4gPiBtX21lZGlhU291cmNlczsKKyAgICBNZWRpYVNvdXJjZVJlZ2lz
dHJ5KCk7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZUJhc2U+ID4gbV9t
ZWRpYVNvdXJjZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZmY4
MGRmNTQ3NDRhNGEzMTM0ODljMjU2NzBhNzJkNjUxNDkzZWUyMS4uYWY3NjdlZjQwNDIyNTFiYjNi
OGI5MmQyYzc3ZGM5YWFmYmQ5MzRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsMjIgKzMzLDMyIEBACiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVNv
dXJjZS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJUaW1l
UmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvQXJy
YXlCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+IFNvdXJjZUJ1ZmZlcjo6Y3Jl
YXRlKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwg
UGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4gc291cmNlKQorUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+
IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291
cmNlQnVmZmVyUHJpdmF0ZSwgTWVkaWFTb3VyY2UqIHNvdXJjZSwgR2VuZXJpY0V2ZW50UXVldWUq
IGFzeW5jRXZlbnRRdWV1ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZl
cihzb3VyY2VCdWZmZXJQcml2YXRlLCBzb3VyY2UpKTsKKyAgICBSZWZQdHI8U291cmNlQnVmZmVy
PiBzb3VyY2VCdWZmZXIoYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2
YXRlLCBzb3VyY2UsIGFzeW5jRXZlbnRRdWV1ZSkpKTsKKyAgICBzb3VyY2VCdWZmZXItPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzb3VyY2VCdWZmZXIucmVsZWFzZSgpOwogfQogCi1T
b3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+
IHNvdXJjZUJ1ZmZlclByaXZhdGUsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IHNvdXJjZSkKLSAg
ICA6IG1fcHJpdmF0ZShzb3VyY2VCdWZmZXJQcml2YXRlKQorU291cmNlQnVmZmVyOjpTb3VyY2VC
dWZmZXIoUGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRl
LCBNZWRpYVNvdXJjZSogc291cmNlLCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVl
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KHNvdXJjZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQorICAgICwgbV9wcml2YXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUpCiAgICAgLCBtX3NvdXJjZShz
b3VyY2UpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShhc3luY0V2ZW50UXVldWUpCisgICAgLCBt
X3VwZGF0aW5nKGZhbHNlKQogICAgICwgbV90aW1lc3RhbXBPZmZzZXQoMCkKKyAgICAsIG1fYXBw
ZW5kQnVmZmVyVGltZXIodGhpcywgJlNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJl
ZCkKIHsKICAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICBBU1NFUlQobV9zb3VyY2UpOwpAQCAt
NTYsNiArNjYsNyBAQCBTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUsCiAKIFNvdXJjZUJ1ZmZlcjo6flNv
dXJjZUJ1ZmZlcigpCiB7CisgICAgQVNTRVJUKGlzUmVtb3ZlZCgpKTsKIH0KIAogUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBTb3VyY2VCdWZmZXI6OmJ1ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdApAQCAtODgsMTEgKzk5LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNldFRpbWVzdGFtcE9m
ZnNldChkb3VibGUgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICAvLyA0
LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2Ug
aXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAg
ICBpZiAoaXNFbmRlZCgpKSB7Ci0gICAgICAgIC8vIDQuMSBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0
cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRvICJvcGVuIgotICAgICAgICAvLyA0
LjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBh
dCB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZS4KLSAgICAgICAgbV9zb3VyY2UtPnNldFJlYWR5U3Rh
dGUoTWVkaWFTb3VyY2U6Om9wZW5LZXl3b3JkKCkpOwotICAgIH0KKyAgICAvLyA0LjEgU2V0IHRo
ZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0byAib3Bl
biIKKyAgICAvLyA0LjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQg
c291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZS4KKyAgICBtX3NvdXJjZS0+b3Bl
bklmSW5FbmRlZFN0YXRlKCk7CiAKICAgICAvLyA1LiBJZiB0aGlzIG9iamVjdCBpcyB3YWl0aW5n
IGZvciB0aGUgZW5kIG9mIGEgbWVkaWEgc2VnbWVudCB0byBiZSBhcHBlbmRlZCwgdGhlbiB0aHJv
dyBhbiBJTlZBTElEX1NUQVRFX0VSUgogICAgIC8vIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KQEAg
LTEwNSw0OSArMTE0LDc1IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZXRUaW1lc3RhbXBPZmZzZXQo
ZG91YmxlIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgbV90aW1lc3RhbXBPZmZzZXQg
PSBvZmZzZXQ7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjphcHBlbmQoUGFzc1JlZlB0cjxVaW50
OEFycmF5PiBkYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgU291cmNlQnVmZmVyOjphcHBl
bmRCdWZmZXIoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgLy8gU291cmNlQnVmZmVyLmFwcGVuZCgpIHN0ZXBzIGZyb20gT2N0b2JlciAxc3Qg
dmVyc2lvbiBvZiB0aGUgTWVkaWEgU291cmNlIEV4dGVuc2lvbnMgc3BlYy4KLSAgICAvLyBodHRw
czovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvN2JhYjY2MzY4ZjJjL21lZGlh
LXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tYXBwZW5kCi0KLSAgICAvLyAyLiBJZiBkYXRh
IGlzIG51bGwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyBTZWN0aW9uIDMuMiBhcHBlbmRCdWZmZXIoKQorICAg
IC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZlci1hcHBlbmRCdWZm
ZXItdm9pZC1BcnJheUJ1ZmZlclZpZXctZGF0YQorICAgIC8vIDEuIElmIGRhdGEgaXMgbnVsbCB0
aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgogICAgIGlmICghZGF0YSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIDMuIElmIHRoaXMgb2JqZWN0IGhh
cyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgbWVkaWEg
c291cmNlIHRoZW4gdGhyb3cKLSAgICAvLyAgICBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmIChpc1JlbW92ZWQoKSkgewotICAgICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGFw
cGVuZEJ1ZmZlckludGVybmFsKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhLT5kYXRh
KCkpLCBkYXRhLT5ieXRlTGVuZ3RoKCksIGVjKTsKK30KIAotICAgIC8vIDUuIElmIHRoZSByZWFk
eVN0YXRlIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUg
dGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoaXNFbmRlZCgpKSB7Ci0gICAg
ICAgIC8vIDUuMS4gU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2Ug
dG8gIm9wZW4iCi0gICAgICAgIC8vIDUuMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUg
ZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCBtZWRpYSBzb3VyY2UuCi0gICAgICAgIG1fc291cmNl
LT5zZXRSZWFkeVN0YXRlKE1lZGlhU291cmNlOjpvcGVuS2V5d29yZCgpKTsKK3ZvaWQgU291cmNl
QnVmZmVyOjphcHBlbmRCdWZmZXIoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGRhdGEsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIFNlY3Rpb24gMy4yIGFwcGVuZEJ1ZmZlcigpCisg
ICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLWFwcGVuZEJ1
ZmZlci12b2lkLUFycmF5QnVmZmVyVmlldy1kYXRhCisgICAgLy8gMS4gSWYgZGF0YSBpcyBudWxs
IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCisgICAgaWYgKCFkYXRhKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOworICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gU3RlcHMgNiAmIGJleW9uZCBh
cmUgaGFuZGxlZCBieSB0aGUgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbi4KLSAgICBtX3ByaXZhdGUt
PmFwcGVuZChkYXRhLT5kYXRhKCksIGRhdGEtPmxlbmd0aCgpKTsKKyAgICBhcHBlbmRCdWZmZXJJ
bnRlcm5hbChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YS0+YmFzZUFkZHJlc3MoKSks
IGRhdGEtPmJ5dGVMZW5ndGgoKSwgZWMpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6YWJvcnQo
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgLy8gU2VjdGlvbiAzLjIgYWJvcnQoKSBtZXRob2Qg
c3RlcHMuCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxl
L2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVy
LWFib3J0LXZvaWQKICAgICAvLyAxLiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZy
b20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNl
CiAgICAgLy8gICAgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5k
IGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIC8vIDIuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0
ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZQog
ICAgIC8vICAgIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoaXNSZW1vdmVkKCkgfHwgIWlzT3BlbigpKSB7Cisg
ICAgaWYgKGlzUmVtb3ZlZCgpIHx8ICFtX3NvdXJjZS0+aXNPcGVuKCkpIHsKICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIDMu
IElmIHRoZSBzb3VyY2VCdWZmZXIudXBkYXRpbmcgYXR0cmlidXRlIGVxdWFscyB0cnVlLCB0aGVu
IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOiAuLi4KKyAgICBhYm9ydElmVXBkYXRpbmcoKTsKKwog
ICAgIC8vIDQuIFJ1biB0aGUgcmVzZXQgcGFyc2VyIHN0YXRlIGFsZ29yaXRobS4KICAgICBtX3By
aXZhdGUtPmFib3J0KCk7CisKKyAgICAvLyBGSVhNRSgyMjk0MDgpIEFkZCBzdGVwcyA1LTYgdXBk
YXRlIGFwcGVuZFdpbmRvd1N0YXJ0ICYgYXBwZW5kV2luZG93RW5kLgorfQorCisKK3ZvaWQgU291
cmNlQnVmZmVyOjphYm9ydElmVXBkYXRpbmcoKQoreworICAgIC8vIFNlY3Rpb24gMy4yIGFib3J0
KCkgbWV0aG9kIHN0ZXAgMyBzdWJzdGVwcy4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hn
L2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0
bWwjd2lkbC1Tb3VyY2VCdWZmZXItYWJvcnQtdm9pZAorCisgICAgaWYgKCFtX3VwZGF0aW5nKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyAzLjEuIEFib3J0IHRoZSBidWZmZXIgYXBwZW5kIGFu
ZCBzdHJlYW0gYXBwZW5kIGxvb3AgYWxnb3JpdGhtcyBpZiB0aGV5IGFyZSBydW5uaW5nLgorICAg
IG1fYXBwZW5kQnVmZmVyVGltZXIuc3RvcCgpOworICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xl
YXIoKTsKKworICAgIC8vIDMuMi4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2Uu
CisgICAgbV91cGRhdGluZyA9IGZhbHNlOworCisgICAgLy8gMy4zLiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBhYm9ydCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmpl
Y3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CisKKyAgICAv
LyAzLjQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZWVu
ZCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5h
bWVzKCkudXBkYXRlZW5kRXZlbnQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVtb3ZlZEZy
b21NZWRpYVNvdXJjZSgpCkBAIC0xNTYsNyArMTkxLDM4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpy
ZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRl
LT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7Ci0gICAgbV9zb3VyY2UuY2xlYXIoKTsKKyAgICBt
X3NvdXJjZSA9IDA7CisgICAgbV9hc3luY0V2ZW50UXVldWUgPSAwOworfQorCitib29sIFNvdXJj
ZUJ1ZmZlcjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zb3Vy
Y2U7Cit9CisKK3ZvaWQgU291cmNlQnVmZmVyOjpzdG9wKCkKK3sKKyAgICBtX2FwcGVuZEJ1ZmZl
clRpbWVyLnN0b3AoKTsKK30KKworU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogU291cmNlQnVmZmVy
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmlu
ZyYgU291cmNlQnVmZmVyOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZl
bnROYW1lcygpLmludGVyZmFjZUZvclNvdXJjZUJ1ZmZlcjsKK30KKworRXZlbnRUYXJnZXREYXRh
KiBTb3VyY2VCdWZmZXI6OmV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50
VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBTb3VyY2VCdWZmZXI6OmVuc3VyZUV2
ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKIH0KIAog
Ym9vbCBTb3VyY2VCdWZmZXI6OmlzUmVtb3ZlZCgpIGNvbnN0CkBAIC0xNjQsMTYgKzIzMCw3NCBA
QCBib29sIFNvdXJjZUJ1ZmZlcjo6aXNSZW1vdmVkKCkgY29uc3QKICAgICByZXR1cm4gIW1fc291
cmNlOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlcjo6aXNPcGVuKCkgY29uc3QKK3ZvaWQgU291cmNl
QnVmZmVyOjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQogewot
ICAgIEFTU0VSVChtX3NvdXJjZSk7Ci0gICAgcmV0dXJuIG1fc291cmNlLT5yZWFkeVN0YXRlKCkg
PT0gTWVkaWFTb3VyY2U6Om9wZW5LZXl3b3JkKCk7CisgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1
ZXVlKTsKKworICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAgbV9h
c3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChldmVudC5yZWxlYXNlKCkpOwogfQogCi1ib29s
IFNvdXJjZUJ1ZmZlcjo6aXNFbmRlZCgpIGNvbnN0Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5k
QnVmZmVySW50ZXJuYWwodW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgQVNTRVJUKG1fc291cmNlKTsKLSAgICByZXR1cm4gbV9zb3Vy
Y2UtPnJlYWR5U3RhdGUoKSA9PSBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCk7CisgICAgLy8g
U2VjdGlvbiAzLjIgYXBwZW5kQnVmZmVyKCkKKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hn
L2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0
bWwjd2lkbC1Tb3VyY2VCdWZmZXItYXBwZW5kQnVmZmVyLXZvaWQtQXJyYXlCdWZmZXJWaWV3LWRh
dGEKKworICAgIC8vIFN0ZXAgMSBpcyBlbmZvcmNlZCBieSB0aGUgY2FsbGVyLgorICAgIC8vIDIu
IElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBh
dHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIDMuIElm
IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgZXF1YWxzIHRydWUsIHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNS
ZW1vdmVkKCkgfHwgbV91cGRhdGluZykgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gNC4gSWYgdGhlIHJlYWR5U3RhdGUg
YXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0
YXRlIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6IC4uLgorICAgIG1fc291cmNlLT5vcGVu
SWZJbkVuZGVkU3RhdGUoKTsKKworICAgIC8vIFN0ZXBzIDUtNgorCisgICAgLy8gNy4gQWRkIGRh
dGEgdG8gdGhlIGVuZCBvZiB0aGUgaW5wdXQgYnVmZmVyLgorICAgIG1fcGVuZGluZ0FwcGVuZERh
dGEuYXBwZW5kKGRhdGEsIHNpemUpOworCisgICAgLy8gOC4gU2V0IHRoZSB1cGRhdGluZyBhdHRy
aWJ1dGUgdG8gdHJ1ZS4KKyAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKKworICAgIC8vIDkuIFF1ZXVl
IGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZXN0YXJ0IGF0IHRoaXMg
U291cmNlQnVmZmVyIG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRh
dGVzdGFydEV2ZW50KTsKKworICAgIC8vIDEwLiBBc3luY2hyb25vdXNseSBydW4gdGhlIGJ1ZmZl
ciBhcHBlbmQgYWxnb3JpdGhtLgorICAgIG1fYXBwZW5kQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90
KDApOworfQorCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZChUaW1l
cjxTb3VyY2VCdWZmZXI+KikKK3sKKyAgICBBU1NFUlQobV91cGRhdGluZyk7CisKKyAgICAvLyBT
ZWN0aW9uIDMuNS40IEJ1ZmZlciBBcHBlbmQgQWxnb3JpdGhtCisgICAgLy8gaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS5odG1sI3NvdXJjZWJ1ZmZlci1idWZmZXItYXBwZW5kCisKKyAgICAvLyAxLiBSdW4g
dGhlIHNlZ21lbnQgcGFyc2VyIGxvb3AgYWxnb3JpdGhtLgorICAgIC8vIFN0ZXAgMiBkb2Vzbid0
IGFwcGx5IHNpbmNlIHdlIHJ1biBTdGVwIDEgc3luY2hyb25vdXNseSBoZXJlLgorICAgIHNpemVf
dCBhcHBlbmRTaXplID0gbV9wZW5kaW5nQXBwZW5kRGF0YS5zaXplKCk7CisgICAgaWYgKCFhcHBl
bmRTaXplKSB7CisgICAgICAgIC8vIFJlc2l6ZSBidWZmZXIgZm9yIDAgYnl0ZSBhcHBlbmRzIHNv
IHdlIGFsd2F5cyBoYXZlIGEgdmFsaWQgcG9pbnRlci4KKyAgICAgICAgLy8gV2UgbmVlZCB0byBj
b252ZXkgYWxsIGFwcGVuZHMsIGV2ZW4gMCBieXRlIG9uZXMgdG8gfG1fcHJpdmF0ZXwgc28KKyAg
ICAgICAgLy8gdGhhdCBpdCBjYW4gY2xlYXIgaXRzIGVuZCBvZiBzdHJlYW0gc3RhdGUgaWYgbmVj
ZXNzYXJ5LgorICAgICAgICBtX3BlbmRpbmdBcHBlbmREYXRhLnJlc2l6ZSgxKTsKKyAgICB9Cisg
ICAgbV9wcml2YXRlLT5hcHBlbmQobV9wZW5kaW5nQXBwZW5kRGF0YS5kYXRhKCksIGFwcGVuZFNp
emUpOworCisgICAgLy8gMy4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCisg
ICAgbV91cGRhdGluZyA9IGZhbHNlOworICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsK
KworICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVw
ZGF0ZSBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVu
dE5hbWVzKCkudXBkYXRlRXZlbnQpOworCisgICAgLy8gNS4gUXVldWUgYSB0YXNrIHRvIGZpcmUg
YSBzaW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRlZW5kIGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVj
dC4KKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVlbmRFdmVudCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IGEzNWUzMjVjYTEzODk3YTBlZDgyZWMxMmY3
YTA0MzI2YzdjYjM3YjAuLjE2ZTJhZDU2YTRjNTlmNzZhMzU3YjI0MDMyYmVmY2M3ZjYyYjE0NTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtMzMsNDUgKzMzLDgwIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCisjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlbmVyaWNFdmVudFF1ZXVlOwogY2xhc3MgTWVkaWFTb3Vy
Y2U7CiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGltZVJhbmdlczsKIAotY2xh
c3MgU291cmNlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyPiB7CitjbGFz
cyBTb3VyY2VCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXI+LCBwdWJsaWMg
QWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4gY3JlYXRl
KFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+IGNyZWF0ZShQYXNzT3duUHRy
PFNvdXJjZUJ1ZmZlclByaXZhdGU+LCBNZWRpYVNvdXJjZSosIEdlbmVyaWNFdmVudFF1ZXVlKik7
CiAKICAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXIoKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlci5p
ZGwgbWV0aG9kcworICAgIGJvb2wgdXBkYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0aW5n
OyB9CiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZChFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAgICAgZG91YmxlIHRpbWVzdGFtcE9mZnNldCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgYXBwZW5k
KFBhc3NSZWZQdHI8VWludDhBcnJheT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
YXBwZW5kQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2b2lkIGFwcGVuZEJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZGF0
YSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uQ29kZSYpOwogCisg
ICAgdm9pZCBhYm9ydElmVXBkYXRpbmcoKTsKICAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3Vy
Y2UoKTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKKworICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZp
cnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VO
YW1lKCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZl
cj46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj46OmRlcmVmOworCitw
cm90ZWN0ZWQ6CisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBFdmVu
dFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKwogcHJpdmF0
ZToKLSAgICBTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgUGFz
c1JlZlB0cjxNZWRpYVNvdXJjZT4pOworICAgIFNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+LCBNZWRpYVNvdXJjZSosIEdlbmVyaWNFdmVudFF1ZXVlKik7CiAKICAg
ICBib29sIGlzUmVtb3ZlZCgpIGNvbnN0OwotICAgIGJvb2wgaXNPcGVuKCkgY29uc3Q7Ci0gICAg
Ym9vbCBpc0VuZGVkKCkgY29uc3Q7CisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnROYW1lKTsKKworICAgIHZvaWQgYXBwZW5kQnVmZmVySW50ZXJuYWwodW5z
aWduZWQgY2hhciosIHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhcHBlbmRC
dWZmZXJUaW1lckZpcmVkKFRpbWVyPFNvdXJjZUJ1ZmZlcj4qKTsKIAogICAgIE93blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBtX3ByaXZhdGU7Ci0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX3Nv
dXJjZTsKKyAgICBNZWRpYVNvdXJjZSogbV9zb3VyY2U7CisgICAgR2VuZXJpY0V2ZW50UXVldWUq
IG1fYXN5bmNFdmVudFF1ZXVlOworICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0
YTsKIAorICAgIGJvb2wgbV91cGRhdGluZzsKICAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7
CisKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gbV9wZW5kaW5nQXBwZW5kRGF0YTsKKyAgICBU
aW1lcjxTb3VyY2VCdWZmZXI+IG1fYXBwZW5kQnVmZmVyVGltZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbAppbmRleCA3MWYyYjZiNjg0NDYw
ZDE1YzNhN2VmYjI0NjRmZTY3ZDg5MmYwNDNjLi5jMTkwYjFjMjdjMDVhMTk1NDZkZGVlZjlhMWI4
ZTc4ODllYzZkZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuaWRsCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCw5ICszMCwxNCBAQAogIAogWwogICAgIENvbmRpdGlv
bmFsPU1FRElBX1NPVVJDRSwKLSAgICBJbnRlcmZhY2VOYW1lPVdlYktpdFNvdXJjZUJ1ZmZlcgot
XSBpbnRlcmZhY2UgU291cmNlQnVmZmVyIHsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKKyAgICBB
Y3RpdmVET01PYmplY3QsCisgICAgRXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZl
T2JqZWN0CitdIGludGVyZmFjZSBTb3VyY2VCdWZmZXIgOiBFdmVudFRhcmdldCB7CiAKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB1cGRhdGluZzsKKyAgCiAgICAgLy8gUmV0dXJucyB0
aGUgdGltZSByYW5nZXMgYnVmZmVyZWQuCiAgICAgW0dldHRlclJhaXNlc0V4Y2VwdGlvbl0gcmVh
ZG9ubHkgYXR0cmlidXRlIFRpbWVSYW5nZXMgYnVmZmVyZWQ7CiAKQEAgLTQwLDcgKzQ1LDggQEAK
ICAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHRpbWVzdGFtcE9m
ZnNldDsKIAogICAgIC8vIEFwcGVuZCBzZWdtZW50IGRhdGEuCi0gICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBhcHBlbmQoVWludDhBcnJheSBkYXRhKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2
b2lkIGFwcGVuZEJ1ZmZlcihBcnJheUJ1ZmZlciBkYXRhKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9u
XSB2b2lkIGFwcGVuZEJ1ZmZlcihBcnJheUJ1ZmZlclZpZXcgZGF0YSk7CiAKICAgICAvLyBBYm9y
dCB0aGUgY3VycmVudCBzZWdtZW50IGFwcGVuZCBzZXF1ZW5jZS4KICAgICBbUmFpc2VzRXhjZXB0
aW9uXSB2b2lkIGFib3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAppbmRleCAxMWRkOTFjMjcwYWZmNmY2YWFj
Y2EwN2FkYjFiNmNiNjM0ODRhODA5Li4yNjRhZTRlYjYyZTIyY2Y0NWUzNjhiODNmYjAyYWUwNTAy
OTlmNzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyTGlzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM5LDUyICszOSwzOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSkKK1NvdXJjZUJ1ZmZlckxpc3Q6OlNv
dXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgR2VuZXJpY0V2
ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSkKICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChjb250ZXh0KQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoYXN5bmNFdmVudFF1ZXVlKQogewog
fQogCi11bnNpZ25lZCBsb25nIFNvdXJjZUJ1ZmZlckxpc3Q6Omxlbmd0aCgpIGNvbnN0CitTb3Vy
Y2VCdWZmZXJMaXN0Ojp+U291cmNlQnVmZmVyTGlzdCgpCiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5z
aXplKCk7Ci19Ci0KLVNvdXJjZUJ1ZmZlciogU291cmNlQnVmZmVyTGlzdDo6aXRlbSh1bnNpZ25l
ZCBpbmRleCkgY29uc3QKLXsKLSAgICBpZiAoaW5kZXggPj0gbV9saXN0LnNpemUoKSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1fbGlzdFtpbmRleF0uZ2V0KCk7CisgICAgQVNTRVJU
KG1fbGlzdC5pc0VtcHR5KCkpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmFkZChQYXNz
UmVmUHRyPFNvdXJjZUJ1ZmZlcj4gYnVmZmVyKQogewogICAgIG1fbGlzdC5hcHBlbmQoYnVmZmVy
KTsKLSAgICBjcmVhdGVBbmRGaXJlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdGFkZHNvdXJjZWJ1
ZmZlckV2ZW50KTsKKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5hZGRzb3VyY2VidWZm
ZXJFdmVudCk7CiB9CiAKLWJvb2wgU291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFNvdXJjZUJ1ZmZl
ciogYnVmZmVyKQordm9pZCBTb3VyY2VCdWZmZXJMaXN0OjpyZW1vdmUoU291cmNlQnVmZmVyKiBi
dWZmZXIpCiB7CiAgICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQoYnVmZmVyKTsKICAgICBp
ZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGJ1ZmZl
ci0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOworICAgICAgICByZXR1cm47CiAgICAgbV9saXN0
LnJlbW92ZShpbmRleCk7Ci0gICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJr
aXRyZW1vdmVzb3VyY2VidWZmZXJFdmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgc2NoZWR1
bGVFdmVudChldmVudE5hbWVzKCkucmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOwogfQogCiB2b2lk
IFNvdXJjZUJ1ZmZlckxpc3Q6OmNsZWFyKCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fbGlzdC5zaXplKCk7ICsraSkKLSAgICAgICAgbV9saXN0W2ldLT5yZW1vdmVkRnJvbU1lZGlh
U291cmNlKCk7CiAgICAgbV9saXN0LmNsZWFyKCk7Ci0gICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2
ZW50TmFtZXMoKS53ZWJraXRyZW1vdmVzb3VyY2VidWZmZXJFdmVudCk7CisgICAgc2NoZWR1bGVF
dmVudChldmVudE5hbWVzKCkucmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOwogfQogCi12b2lkIFNv
dXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50TmFtZSkKK3ZvaWQgU291cmNlQnVmZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50TmFtZSkKIHsKICAgICBBU1NFUlQobV9hc3luY0V2ZW50UXVldWUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyTGlzdC5oCmluZGV4IDBkNDc2NGUxM2QxMWExNDBlODkxOTFhNTc5YTdmY2QwNGViMTk0ZWUu
LjhlZDM0N2YyNjE5YzA1MWMwY2FmODE2M2NhYTQ5MTE2MmRlOTI0OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0z
NCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQyLDE5ICs0MywyMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBHZW5lcmlj
RXZlbnRRdWV1ZTsKIAotY2xhc3MgU291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVk
PFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgRXZlbnRUYXJnZXQgeworY2xhc3MgU291cmNlQnVm
ZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgU2Ny
aXB0V3JhcHBhYmxlLCBwdWJsaWMgRXZlbnRUYXJnZXQgewogcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNvdXJjZUJ1ZmZlckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQsIGFzeW5j
RXZlbnRRdWV1ZSkpOwogICAgIH0KLSAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJMaXN0KCkgeyB9
CisgICAgdmlydHVhbCB+U291cmNlQnVmZmVyTGlzdCgpOwogCi0gICAgdW5zaWduZWQgbG9uZyBs
ZW5ndGgoKSBjb25zdDsKLSAgICBTb3VyY2VCdWZmZXIqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0OworICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNp
emUoKTsgfQorICAgIFNvdXJjZUJ1ZmZlciogaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25z
dCB7IHJldHVybiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKSA/IG1fbGlzdFtpbmRleF0uZ2V0KCkg
OiAwOyB9CiAKICAgICB2b2lkIGFkZChQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4pOwotICAgIGJv
b2wgcmVtb3ZlKFNvdXJjZUJ1ZmZlciopOworICAgIHZvaWQgcmVtb3ZlKFNvdXJjZUJ1ZmZlciop
OworICAgIGJvb2wgY29udGFpbnMoU291cmNlQnVmZmVyKiBidWZmZXIpIHsgcmV0dXJuIG1fbGlz
dC5maW5kKGJ1ZmZlcikgIT0gbm90Rm91bmQ7IH0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICAv
LyBFdmVudFRhcmdldCBpbnRlcmZhY2UKQEAgLTcxLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICBTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBHZW5l
cmljRXZlbnRRdWV1ZSopOwogCi0gICAgdm9pZCBjcmVhdGVBbmRGaXJlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJik7CisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYp
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigp
OyB9CkBAIC04Niw0ICs4OCw1IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCmluZGV4IDViMTRhZDhkMGQ2ZWE5OWU3NjQ0
NjNhZmQ2ODFhOWY5NjMyMDE3MmIuLmI4NmY2YWFmNmZmMGEzYWVhMTdiMTQ5YjcyODM3MWUxMDM1
NTk5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsMTkgKzMwLDEyIEBACiAgCiBbCiAgICAgQ29uZGl0
aW9uYWw9TUVESUFfU09VUkNFLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV2ZW50VGFy
Z2V0LAotICAgIEludGVyZmFjZU5hbWU9V2ViS2l0U291cmNlQnVmZmVyTGlzdAotXSBpbnRlcmZh
Y2UgU291cmNlQnVmZmVyTGlzdCB7CisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAg
IENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKK10gaW50ZXJmYWNlIFNvdXJjZUJ1ZmZl
ckxpc3QgOiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoOwogICAgIGdldHRlciBTb3VyY2VCdWZmZXIgaXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQotICAgIHZvaWQgYWRkRXZlbnRM
aXN0ZW5lcihET01TdHJpbmcgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRM
aXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9v
bGVhbiB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5n
IHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2ZW50
IGV2ZW50KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvVVJMTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9VUkxNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgxMDFkZjE1ZjczYzQ4ZTUyOGQy
ZjVkYjA3MWU4NGM5NTZiODQ4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVVJMTWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJET01VUkwuaCIKKyNpbmNsdWRlICJNZWRpYVNv
dXJjZUJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1N0cmluZyBVUkxNZWRpYVNvdXJjZTo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU291cmNlQmFzZSog
c291cmNlKQoreworICAgIC8vIFNpbmNlIFdlYldvcmtlcnMgY2Fubm90IG9idGFpbiBNZWRpYVNv
dXJjZSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgfHwg
IXNvdXJjZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBET01VUkw6OmNy
ZWF0ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzb3VyY2UpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NTVlZmI0NWQ3
MDNmY2RiY2VjNDIxZDc1NDQ3MjkxOTczYzQxYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVVJMTWVkaWFTb3VyY2VfaAorI2RlZmluZSBVUkxNZWRpYVNvdXJjZV9oCisK
KyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVNvdXJjZUJhc2U7CitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBVUkxNZWRpYVNvdXJjZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFN0cmluZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IE1lZGlhU291cmNlQmFzZSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1VSTE1lZGlhU291cmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvVVJMTWVkaWFTb3VyY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNWZlODNjZDE0NjZmZWJhYzZmOWFl
NThiNTNkZjZlMmNhNTY2ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAgICBD
b25kaXRpb25hbD1NRURJQV9TT1VSQ0UKK10KK3BhcnRpYWwgaW50ZXJmYWNlIFVSTCB7CisgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChNZWRpYVNvdXJjZT8gc291
cmNlKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKFdlYktp
dE1lZGlhU291cmNlPyBzb3VyY2UpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4
YzJlYzJhZmIzNmZmNjViZmIzN2M4OTgzZDFlMGU0ZTBlNWIwNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3Bw
CkBAIC0wLDAgKzEsMjA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdE1l
ZGlhU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiQ29u
dGVudFR5cGUuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNs
dWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5o
IgorI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBXZWJLaXRNZWRpYVNvdXJjZTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgUmVmUHRyPFdlYktpdE1l
ZGlhU291cmNlPiBtZWRpYVNvdXJjZShhZG9wdFJlZihuZXcgV2ViS2l0TWVkaWFTb3VyY2UoY29u
dGV4dCkpKTsKKyAgICBtZWRpYVNvdXJjZS0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJu
IG1lZGlhU291cmNlLnJlbGVhc2UoKTsKK30KKworV2ViS2l0TWVkaWFTb3VyY2U6OldlYktpdE1l
ZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBNZWRpYVNv
dXJjZUJhc2UoY29udGV4dCkKK3sKKyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50UXVl
dWUoKSk7CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzID0gV2ViS2l0U291cmNlQnVmZmVyTGlz
dDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYXN5bmNFdmVudFF1ZXVlKCkpOwor
fQorCitXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KiBXZWJLaXRNZWRpYVNvdXJjZTo6c291cmNlQnVm
ZmVycygpCit7CisgICAgcmV0dXJuIG1fc291cmNlQnVmZmVycy5nZXQoKTsKK30KKworV2ViS2l0
U291cmNlQnVmZmVyTGlzdCogV2ViS2l0TWVkaWFTb3VyY2U6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnMo
KQoreworICAgIC8vIEZJWE1FKDkxNjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KKyAgICBy
ZXR1cm4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzLmdldCgpOworfQorCitXZWJLaXRTb3VyY2VCdWZm
ZXIqIFdlYktpdE1lZGlhU291cmNlOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBl
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hn
L2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNk
b20tYWRkc291cmNlYnVmZmVyCisgICAgLy8gMS4gSWYgdHlwZSBpcyBudWxsIG9yIGFuIGVtcHR5
IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKKyAgICAvLyBh
Ym9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHko
KSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQorCisgICAgLy8gMi4gSWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSB0aGF0IGlz
IG5vdCBzdXBwb3J0ZWQgLi4uLCB0aGVuIHRocm93IGEKKyAgICAvLyBOT1RfU1VQUE9SVEVEX0VS
UiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghaXNUeXBlU3VwcG9y
dGVkKHR5cGUpKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKworICAgIC8vIDQuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBp
cyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVuIHRocm93IGFuCisgICAgLy8gSU5WQUxJRF9T
VEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIWlzT3Bl
bigpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIC8vIDUuIENyZWF0ZSBhIG5ldyBTb3VyY2VCdWZmZXIgb2JqZWN0IGFu
ZCBhc3NvY2lhdGVkIHJlc291cmNlcy4KKyAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZSh0eXBl
KTsKKyAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY3MgPSBjb250ZW50VHlwZS5jb2RlY3MoKTsKKyAg
ICBPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSA9IGNyZWF0
ZVNvdXJjZUJ1ZmZlclByaXZhdGUoY29udGVudFR5cGUudHlwZSgpLCBjb2RlY3MsIGVjKTsKKyAg
ICBpZiAoIXNvdXJjZUJ1ZmZlclByaXZhdGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVm
UHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4gYnVmZmVyID0gV2ViS2l0U291cmNlQnVmZmVyOjpjcmVh
dGUoc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNlKCksIHRoaXMpOworICAgIC8vIDYuIEFkZCB0
aGUgbmV3IG9iamVjdCB0byBzb3VyY2VCdWZmZXJzIGFuZCBmaXJlIGEgYWRkc291cmNlYnVmZmVy
IG9uIHRoYXQgb2JqZWN0LgorICAgIG1fc291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7CisgICAg
bV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5hZGQoYnVmZmVyKTsKKyAgICAvLyA3LiBSZXR1cm4gdGhl
IG5ldyBvYmplY3QgdG8gdGhlIGNhbGxlci4KKyAgICByZXR1cm4gYnVmZmVyLmdldCgpOworfQor
Cit2b2lkIFdlYktpdE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNl
QnVmZmVyKiBidWZmZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIDMuMSBodHRwOi8v
ZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS5odG1sI2RvbS1yZW1vdmVzb3VyY2VidWZmZXIKKyAgICAvLyAxLiBJZiBzb3VyY2VC
dWZmZXIgaXMgbnVsbCB0aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24g
YW5kCisgICAgLy8gYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyAyLiBJZiBzb3VyY2VCdWZmZXJzIGlzIGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9T
VEFURV9FUlIgZXhjZXB0aW9uIGFuZAorICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlm
IChpc0Nsb3NlZCgpIHx8ICFtX3NvdXJjZUJ1ZmZlcnMtPmxlbmd0aCgpKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAz
LiBJZiBzb3VyY2VCdWZmZXIgc3BlY2lmaWVzIGFuIG9iamVjdCB0aGF0IGlzIG5vdCBpbiBzb3Vy
Y2VCdWZmZXJzIHRoZW4KKyAgICAvLyB0aHJvdyBhIE5PVF9GT1VORF9FUlIgZXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyA2LiBSZW1vdmUgc291cmNlQnVmZmVyIGZyb20g
c291cmNlQnVmZmVycyBhbmQgZmlyZSBhIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudAorICAgIC8v
IG9uIHRoYXQgb2JqZWN0LgorICAgIGlmICghbV9zb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVy
KSkgeworICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvLyA3LiBEZXN0cm95IGFsbCByZXNvdXJjZXMgZm9yIHNvdXJjZUJ1ZmZlci4KKyAg
ICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIpOworCisgICAgLy8gNC4gUmVt
b3ZlIHRyYWNrIGluZm9ybWF0aW9uIGZyb20gYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQg
dGV4dFRyYWNrcyBmb3IgYWxsIHRyYWNrcworICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2VC
dWZmZXIgYW5kIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgY2hhbmdlIG9uIHRoZSBtb2RpZmll
ZCBsaXN0cy4KKyAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCisK
KyAgICAvLyA1LiBJZiBzb3VyY2VCdWZmZXIgaXMgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhl
biByZW1vdmUgaXQgZnJvbSB0aGF0IGxpc3QgYW5kIGZpcmUgYQorICAgIC8vIHJlbW92ZXNvdXJj
ZWJ1ZmZlciBldmVudCBvbiB0aGF0IG9iamVjdC4KKyAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBv
cnQgdHJhY2sgc2VsZWN0aW9uCit9CisKK3ZvaWQgV2ViS2l0TWVkaWFTb3VyY2U6Om9uUmVhZHlT
dGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcmIG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5ld1N0YXRlKQoreworICAgIGlmIChpc0Nsb3NlZCgpKSB7CisgICAgICAgIG1fc291cmNl
QnVmZmVycy0+Y2xlYXIoKTsKKyAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigp
OworICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VjbG9zZUV2
ZW50KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChvbGRTdGF0ZSA9PSBvcGVu
S2V5d29yZCgpICYmIG5ld1N0YXRlID09IGVuZGVkS2V5d29yZCgpKSB7CisgICAgICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJjZWVuZGVkRXZlbnQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGlzT3BlbigpKSB7CisgICAgICAgIHNjaGVkdWxlRXZl
bnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJjZW9wZW5FdmVudCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9Cit9CisKK1ZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBXZWJLaXRNZWRpYVNvdXJj
ZTo6YWN0aXZlUmFuZ2VzKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+
ID4gYWN0aXZlUmFuZ2VzKG1fYWN0aXZlU291cmNlQnVmZmVycy0+bGVuZ3RoKCkpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytp
KQorICAgICAgICBhY3RpdmVSYW5nZXNbaV0gPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPml0ZW0o
aSktPmJ1ZmZlcmVkKEFTU0VSVF9OT19FWENFUFRJT04pOworCisgICAgcmV0dXJuIGFjdGl2ZVJh
bmdlczsKK30KKworYm9vbCBXZWJLaXRNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0
IFN0cmluZyYgdHlwZSkKK3sKKyAgICAvLyBTZWN0aW9uIDIuMSBpc1R5cGVTdXBwb3J0ZWQoKSBt
ZXRob2Qgc3RlcHMuCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jh
dy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJj
ZS1pc1R5cGVTdXBwb3J0ZWQtYm9vbGVhbi1ET01TdHJpbmctdHlwZQorICAgIC8vIDEuIElmIHR5
cGUgaXMgYW4gZW1wdHkgc3RyaW5nLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBpZiAodHlwZS5p
c051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Q29udGVudFR5cGUgY29udGVudFR5cGUodHlwZSk7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRl
bnRUeXBlLnBhcmFtZXRlcigiY29kZWNzIik7CisKKyAgICAvLyAyLiBJZiB0eXBlIGRvZXMgbm90
IGNvbnRhaW4gYSB2YWxpZCBNSU1FIHR5cGUgc3RyaW5nLCB0aGVuIHJldHVybiBmYWxzZS4KKyAg
ICBpZiAoY29udGVudFR5cGUudHlwZSgpLmlzRW1wdHkoKSB8fCBjb2RlY3MuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyAzLiBJZiB0eXBlIGNvbnRhaW5zIGEgbWVk
aWEgdHlwZSBvciBtZWRpYSBzdWJ0eXBlIHRoYXQgdGhlIE1lZGlhU291cmNlIGRvZXMgbm90IHN1
cHBvcnQsIHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIC8vIDQuIElmIHR5cGUgY29udGFpbnMgYXQg
YSBjb2RlYyB0aGF0IHRoZSBNZWRpYVNvdXJjZSBkb2VzIG5vdCBzdXBwb3J0LCB0aGVuIHJldHVy
biBmYWxzZS4KKyAgICAvLyA1LiBJZiB0aGUgTWVkaWFTb3VyY2UgZG9lcyBub3Qgc3VwcG9ydCB0
aGUgc3BlY2lmaWVkIGNvbWJpbmF0aW9uIG9mIG1lZGlhIHR5cGUsIG1lZGlhIHN1YnR5cGUsIGFu
ZCBjb2RlY3MgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgLy8gNi4gUmV0dXJuIHRydWUuCisgICAg
cmV0dXJuIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkTWVkaWFTb3VyY2VNSU1FVHlwZShj
b250ZW50VHlwZS50eXBlKCksIGNvZGVjcyk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgV2Vi
S2l0TWVkaWFTb3VyY2U6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVu
dE5hbWVzKCkuaW50ZXJmYWNlRm9yV2ViS2l0TWVkaWFTb3VyY2U7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU3NWFlMzYyYWFi
Njg4OGVlNDIyODU1MmExNDFkMmZiMjA4Y2YyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaApAQCAtMCwwICsx
LDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJLaXRNZWRpYVNvdXJjZV9oCisjZGVmaW5lIFdlYktpdE1lZGlhU291
cmNlX2gKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJNZWRpYVNvdXJj
ZUJhc2UuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXZWJLaXRT
b3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmgiCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
ZWJLaXRNZWRpYVNvdXJjZSA6IHB1YmxpYyBNZWRpYVNvdXJjZUJhc2UsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291
cmNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYktp
dE1lZGlhU291cmNlKCkgeyB9CisKKyAgICAvLyBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgbWV0aG9k
cworICAgIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QqIHNvdXJjZUJ1ZmZlcnMoKTsKKyAgICBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0KiBhY3RpdmVTb3VyY2VCdWZmZXJzKCk7CisgICAgV2ViS2l0U291
cmNlQnVmZmVyKiBhZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNlQnVmZmVyKiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBT
dHJpbmcmIHR5cGUpOworCisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsKKwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VCYXNlPjo6cmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8TWVkaWFTb3VyY2VCYXNlPjo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgV2ViS2l0TWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAgLy8g
TWVkaWFTb3VyY2VCYXNlIGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCBvblJlYWR5U3RhdGVD
aGFuZ2UoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKCkg
Y29uc3QgT1ZFUlJJREU7CisKKyAgICBSZWZQdHI8V2ViS2l0U291cmNlQnVmZmVyTGlzdD4gbV9z
b3VyY2VCdWZmZXJzOworICAgIFJlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0PiBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdE1lZGlhU291cmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0TWVkaWFTb3VyY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkM2ViZjdlZWJiMjlmZGYzODJjOWE2
OTA1M2U4MGYwYWIwYjcxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbApAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sK
KyAgICBDb25kaXRpb25hbD1NRURJQV9TT1VSQ0UsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAg
IEV2ZW50VGFyZ2V0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBDb25zdHJ1
Y3RvciwKKyAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKK10g
aW50ZXJmYWNlIFdlYktpdE1lZGlhU291cmNlIDogRXZlbnRUYXJnZXQgeworICAgIC8vIEFsbCB0
aGUgc291cmNlIGJ1ZmZlcnMgY3JlYXRlZCBieSB0aGlzIG9iamVjdC4KKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgV2ViS2l0U291cmNlQnVmZmVyTGlzdCBzb3VyY2VCdWZmZXJzOworCisgICAgLy8g
U3Vic2V0IG9mIHNvdXJjZUJ1ZmZlcnMgdGhhdCBwcm92aWRlIGRhdGEgZm9yIHRoZSBzZWxlY3Rl
ZC9lbmFibGVkIHRyYWNrcy4KKyAgICByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U291cmNlQnVm
ZmVyTGlzdCBhY3RpdmVTb3VyY2VCdWZmZXJzOworCisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlv
bl0gYXR0cmlidXRlIGRvdWJsZSBkdXJhdGlvbjsKKworICAgIFtSYWlzZXNFeGNlcHRpb25dIFdl
YktpdFNvdXJjZUJ1ZmZlciBhZGRTb3VyY2VCdWZmZXIoRE9NU3RyaW5nIHR5cGUpOworICAgIFtS
YWlzZXNFeGNlcHRpb25dIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFdlYktpdFNvdXJjZUJ1ZmZl
ciBidWZmZXIpOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRl
OworICAgIAorICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgZW5kT2ZTdHJlYW0oW0RlZmF1bHQ9
TnVsbFN0cmluZ10gb3B0aW9uYWwgRE9NU3RyaW5nIGVycm9yKTsKKworICAgIHN0YXRpYyBib29s
ZWFuIGlzVHlwZVN1cHBvcnRlZCAoRE9NU3RyaW5nIHR5cGUpOworfTsKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY1OTRiMjhlODM0NWY4MmMxMmFmMjdlMzU5YmQzOWY0Y2Y2MDcwOTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdFNvdXJjZUJ1ZmZlci5jcHAKQEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViS2l0U291cmNlQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQorCisjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlRpbWVS
YW5nZXMuaCIKKyNpbmNsdWRlICJXZWJLaXRNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgPHd0Zi9V
aW50OEFycmF5Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxXZWJLaXRT
b3VyY2VCdWZmZXI+IFdlYktpdFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKFBhc3NPd25QdHI8U291cmNl
QnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwgUGFzc1JlZlB0cjxXZWJLaXRNZWRp
YVNvdXJjZT4gc291cmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0U291cmNl
QnVmZmVyKHNvdXJjZUJ1ZmZlclByaXZhdGUsIHNvdXJjZSkpOworfQorCitXZWJLaXRTb3VyY2VC
dWZmZXI6OldlYktpdFNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+
IHNvdXJjZUJ1ZmZlclByaXZhdGUsIFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+IHNvdXJj
ZSkKKyAgICA6IG1fcHJpdmF0ZShzb3VyY2VCdWZmZXJQcml2YXRlKQorICAgICwgbV9zb3VyY2Uo
c291cmNlKQorICAgICwgbV90aW1lc3RhbXBPZmZzZXQoMCkKK3sKKyAgICBBU1NFUlQobV9wcml2
YXRlKTsKKyAgICBBU1NFUlQobV9zb3VyY2UpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXI6On5X
ZWJLaXRTb3VyY2VCdWZmZXIoKQoreworfQorCitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IFdlYktp
dFNvdXJjZUJ1ZmZlcjo6YnVmZmVyZWQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAg
Ly8gU2VjdGlvbiAzLjEgYnVmZmVyZWQgYXR0cmlidXRlIHN0ZXBzLgorICAgIC8vIDEuIElmIHRo
aXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1
dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAgIElO
VkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYg
KGlzUmVtb3ZlZCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAg
IHJldHVybiAwOworICAgIH0KKworICAgIC8vIDIuIFJldHVybiBhIG5ldyBzdGF0aWMgbm9ybWFs
aXplZCBUaW1lUmFuZ2VzIG9iamVjdCBmb3IgdGhlIG1lZGlhIHNlZ21lbnRzIGJ1ZmZlcmVkLgor
ICAgIHJldHVybiBtX3ByaXZhdGUtPmJ1ZmZlcmVkKCk7Cit9CisKK2RvdWJsZSBXZWJLaXRTb3Vy
Y2VCdWZmZXI6OnRpbWVzdGFtcE9mZnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXN0
YW1wT2Zmc2V0OworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zm
c2V0KGRvdWJsZSBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIFNlY3Rpb24g
My4xIHRpbWVzdGFtcE9mZnNldCBhdHRyaWJ1dGUgc2V0dGVyIHN0ZXBzLgorICAgIC8vIDEuIElm
IHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRy
aWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAg
IElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAg
aWYgKGlzUmVtb3ZlZCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1
dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhl
biBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyA0LjEgU2V0IHRoZSByZWFkeVN0YXRl
IGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKKyAgICAvLyA0
LjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBh
dCB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZS4KKyAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0
YXRlKCk7CisKKyAgICAvLyA1LiBJZiB0aGlzIG9iamVjdCBpcyB3YWl0aW5nIGZvciB0aGUgZW5k
IG9mIGEgbWVkaWEgc2VnbWVudCB0byBiZSBhcHBlbmRlZCwgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X1NUQVRFX0VSUgorICAgIC8vIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIW1fcHJp
dmF0ZS0+c2V0VGltZXN0YW1wT2Zmc2V0KG9mZnNldCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDYuIFVwZGF0ZSB0
aGUgYXR0cmlidXRlIHRvIHRoZSBuZXcgdmFsdWUuCisgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBv
ZmZzZXQ7Cit9CisKK3ZvaWQgV2ViS2l0U291cmNlQnVmZmVyOjphcHBlbmQoUGFzc1JlZlB0cjxV
aW50OEFycmF5PiBkYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBTb3VyY2VCdWZm
ZXIuYXBwZW5kKCkgc3RlcHMgZnJvbSBPY3RvYmVyIDFzdCB2ZXJzaW9uIG9mIHRoZSBNZWRpYSBT
b3VyY2UgRXh0ZW5zaW9ucyBzcGVjLgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRt
bC1tZWRpYS9yYXctZmlsZS83YmFiNjYzNjhmMmMvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5o
dG1sI2RvbS1hcHBlbmQKKworICAgIC8vIDIuIElmIGRhdGEgaXMgbnVsbCB0aGVuIHRocm93IGFu
IElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IGlmICghZGF0YSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIDMuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92
ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIHRoZW4g
dGhyb3cKKyAgICAvLyAgICBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIGlmIChpc1JlbW92ZWQoKSkgeworICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gNS4gSWYgdGhl
IHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIG1lZGlhIHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBz
dGF0ZSB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIC8vIDUuMS4gU2V0IHRoZSBy
ZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCisgICAgLy8gNS4y
LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVuIGF0
IG1lZGlhIHNvdXJjZS4KKyAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CisKKyAg
ICAvLyBTdGVwcyA2ICYgYmV5b25kIGFyZSBoYW5kbGVkIGJ5IHRoZSBwcml2YXRlIGltcGxlbWVu
dGF0aW9uLgorICAgIG1fcHJpdmF0ZS0+YXBwZW5kKGRhdGEtPmRhdGEoKSwgZGF0YS0+bGVuZ3Ro
KCkpOworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgLy8gU2VjdGlvbiAzLjIgYWJvcnQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8g
MS4gSWYgdGhpcyBvYmplY3QgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJz
IGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZQorICAgIC8vICAgIHRoZW4gdGhy
b3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
KyAgICAvLyAyLiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRp
YSBzb3VyY2UgaXMgbm90IGluIHRoZSAib3BlbiIgc3RhdGUKKyAgICAvLyAgICB0aGVuIHRocm93
IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisg
ICAgaWYgKGlzUmVtb3ZlZCgpIHx8ICFtX3NvdXJjZS0+aXNPcGVuKCkpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDQu
IFJ1biB0aGUgcmVzZXQgcGFyc2VyIHN0YXRlIGFsZ29yaXRobS4KKyAgICBtX3ByaXZhdGUtPmFi
b3J0KCk7Cit9CisKK3ZvaWQgV2ViS2l0U291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291
cmNlKCkKK3sKKyAgICBpZiAoaXNSZW1vdmVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cHJpdmF0ZS0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOworICAgIG1fc291cmNlLmNsZWFyKCk7
Cit9CisKK2Jvb2wgV2ViS2l0U291cmNlQnVmZmVyOjppc1JlbW92ZWQoKSBjb25zdAoreworICAg
IHJldHVybiAhbV9zb3VyY2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNv
dXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRT
b3VyY2VCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmI5ZGZiMjE4NTM2NWYwYTFjZmU3ODcxZGQ2ZTAx
NjkzMTViZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJL
aXRTb3VyY2VCdWZmZXJfaAorI2RlZmluZSBXZWJLaXRTb3VyY2VCdWZmZXJfaAorCisjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CitjbGFzcyBU
aW1lUmFuZ2VzOworY2xhc3MgV2ViS2l0TWVkaWFTb3VyY2U7CisKK2NsYXNzIFdlYktpdFNvdXJj
ZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdFNvdXJjZUJ1ZmZlcj4sIHB1YmxpYyBT
Y3JpcHRXcmFwcGFibGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFNv
dXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBhc3NS
ZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+KTsKKworICAgIHZpcnR1YWwgfldlYktpdFNvdXJjZUJ1
ZmZlcigpOworCisgICAgLy8gV2ViS2l0U291cmNlQnVmZmVyLmlkbCBtZXRob2RzCisgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAg
ZG91YmxlIHRpbWVzdGFtcE9mZnNldCgpIGNvbnN0OworICAgIHZvaWQgc2V0VGltZXN0YW1wT2Zm
c2V0KGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8
VWludDhBcnJheT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYWJvcnQoRXhjZXB0
aW9uQ29kZSYpOworCisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisKK3ByaXZh
dGU6CisgICAgV2ViS2l0U291cmNlQnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0
ZT4sIFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+KTsKKworICAgIGJvb2wgaXNSZW1vdmVk
KCkgY29uc3Q7CisKKyAgICBPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwor
ICAgIFJlZlB0cjxXZWJLaXRNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisKKyAgICBkb3VibGUgbV90
aW1lc3RhbXBPZmZzZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdFNvdXJjZUJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI5MjNiMzM2MzcxZmFlZmRlMDNj
MzNkYWM0ZTMyNTA5MDM4NTA5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmlkbApAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAK
K1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKK10gaW50ZXJmYWNlIFdlYktpdFNvdXJj
ZUJ1ZmZlciB7CisKKyAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIHJhbmdlcyBidWZmZXJlZC4KKyAg
ICBbR2V0dGVyUmFpc2VzRXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgVGltZVJhbmdlcyBi
dWZmZXJlZDsKKworICAgIC8vIEFwcGxpZXMgYW4gb2Zmc2V0IHRvIG1lZGlhIHNlZ21lbnQgdGlt
ZXN0YW1wcy4KKyAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHRp
bWVzdGFtcE9mZnNldDsKKworICAgIC8vIEFwcGVuZCBzZWdtZW50IGRhdGEuCisgICAgW1JhaXNl
c0V4Y2VwdGlvbl0gdm9pZCBhcHBlbmQoVWludDhBcnJheSBkYXRhKTsKKworICAgIC8vIEFib3J0
IHRoZSBjdXJyZW50IHNlZ21lbnQgYXBwZW5kIHNlcXVlbmNlLgorICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgYWJvcnQoKTsKK307CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI0MjUyOWRmNTNjOGQ1MzE2MDViM2UxNGZhMDBiZDE5YzM3OTZmNWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1
ZmZlckxpc3QuY3BwCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
CisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisj
aW5jbHVkZSAiV2ViS2l0U291cmNlQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V2ViS2l0U291cmNlQnVmZmVyTGlzdDo6V2ViS2l0U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVl
KQorICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5j
RXZlbnRRdWV1ZShhc3luY0V2ZW50UXVldWUpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgV2ViS2l0
U291cmNlQnVmZmVyTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0LnNp
emUoKTsKK30KKworV2ViS2l0U291cmNlQnVmZmVyKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Ojpp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmIChpbmRleCA+PSBtX2xpc3Quc2l6
ZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9saXN0W2luZGV4XS5nZXQoKTsK
K30KKwordm9pZCBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjphZGQoUGFzc1JlZlB0cjxXZWJLaXRT
b3VyY2VCdWZmZXI+IGJ1ZmZlcikKK3sKKyAgICBtX2xpc3QuYXBwZW5kKGJ1ZmZlcik7CisgICAg
Y3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRhZGRzb3VyY2VidWZmZXJFdmVu
dCk7Cit9CisKK2Jvb2wgV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFdlYktpdFNvdXJj
ZUJ1ZmZlciogYnVmZmVyKQoreworICAgIHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGJ1ZmZl
cik7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBidWZmZXItPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKKyAgICBtX2xpc3QucmVtb3Zl
KGluZGV4KTsKKyAgICBjcmVhdGVBbmRGaXJlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHJlbW92
ZXNvdXJjZWJ1ZmZlckV2ZW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJLaXRT
b3VyY2VCdWZmZXJMaXN0OjpjbGVhcigpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2xpc3Quc2l6ZSgpOyArK2kpCisgICAgICAgIG1fbGlzdFtpXS0+cmVtb3ZlZEZyb21NZWRpYVNv
dXJjZSgpOworICAgIG1fbGlzdC5jbGVhcigpOworICAgIGNyZWF0ZUFuZEZpcmVFdmVudChldmVu
dE5hbWVzKCkud2Via2l0cmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOworfQorCit2b2lkIFdlYktp
dFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50TmFtZSkKK3sKKyAgICBBU1NFUlQobV9hc3luY0V2ZW50UXVldWUpOworCisgICAgUmVm
UHRyPEV2ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2Up
OworICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+
ZW5xdWV1ZUV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYg
V2ViS2l0U291cmNlQnVmZmVyTGlzdDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OworfQor
CitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OworfQorCitFdmVudFRhcmdldERhdGEqIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmV2
ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKwor
RXZlbnRUYXJnZXREYXRhKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjplbnN1cmVFdmVudFRhcmdl
dERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI3ZDI3YjVkODZiZDFlMDc0MmUxNGFmMDQyZDk1MWE3MDE2MzdlYTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0X2gK
KyNkZWZpbmUgV2ViS2l0U291cmNlQnVmZmVyTGlzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQorCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFi
bGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRTb3VyY2VCdWZmZXI7Citj
bGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKKworY2xhc3MgV2ViS2l0U291cmNlQnVmZmVyTGlzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgU2NyaXB0
V3JhcHBhYmxlLCBwdWJsaWMgRXZlbnRUYXJnZXQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KGNvbnRl
eHQsIGFzeW5jRXZlbnRRdWV1ZSkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5XZWJLaXRTb3VyY2VC
dWZmZXJMaXN0KCkgeyB9CisKKyAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0OworICAg
IFdlYktpdFNvdXJjZUJ1ZmZlciogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisKKyAgICB2
b2lkIGFkZChQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4pOworICAgIGJvb2wgcmVtb3Zl
KFdlYktpdFNvdXJjZUJ1ZmZlciopOworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIC8vIEV2ZW50
VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZh
Y2VOYW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB1c2lu
ZyBSZWZDb3VudGVkPFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q+OjpyZWY7CisgICAgdXNpbmcgUmVm
Q291bnRlZDxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Pjo6ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJS
SURFOworCitwcml2YXRlOgorICAgIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIEdlbmVyaWNFdmVudFF1ZXVlKik7CisKKyAgICB2b2lkIGNyZWF0ZUFuZEZp
cmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVu
dFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorCisgICAgRXZlbnRUYXJnZXREYXRhIG1f
ZXZlbnRUYXJnZXREYXRhOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKKyAgICBHZW5lcmljRXZlbnRRdWV1ZSogbV9hc3luY0V2ZW50UXVldWU7
CisKKyAgICBWZWN0b3I8UmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4gPiBtX2xpc3Q7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjFiOWExNWY2MTZlYzMxZTdkNDc0YzBkOTMwMTk4NGE0
YTFkYjcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBD
b25kaXRpb25hbD1NRURJQV9TT1VSQ0UsCisgICAgRXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0CitdIGludGVyZmFjZSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0IDogRXZl
bnRUYXJnZXQgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
KyAgICBnZXR0ZXIgV2ViS2l0U291cmNlQnVmZmVyIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7
Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCmluZGV4IDVjMzg4YWJhZjNhZGVmMTczN2MyZGEzOTkxNjI3MjQxMDA0YzQwZTcu
LjBkODRhMWIyM2QxY2Y5NGY2NDJmOGU3NTkwMmEyZmY3ZWI3NWVjNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJNZWRp
YVN0cmVhbVRyYWNrRXZlbnQuaCIKICNpbmNsdWRlICJVVUlELmgiCkBAIC0zMzAsNiArMzMxLDEx
IEBAIHZvaWQgTWVkaWFTdHJlYW06OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZChUaW1lcjxNZWRp
YVN0cmVhbT4qKQogICAgIGV2ZW50cy5jbGVhcigpOwogfQogCitVUkxSZWdpc3RyeSYgTWVkaWFT
dHJlYW06OnJlZ2lzdHJ5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gTWVkaWFTdHJlYW1SZWdpc3Ry
eTo6cmVnaXN0cnkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uaAppbmRleCBkMTM0NDJmNjIzMWEwM2M1NDk1MDY2NmMyYjlkZTZl
YWQ0ZmM4YjNjLi5mODFlMmM4ZThkYjk2N2JmN2FkOGY4OWMxMjZlODg3OTVlY2ZjYTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBA
IC0zNCwxMiArMzQsMTMgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKICNp
bmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
ICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFt
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+LCBwdWJsaWMgTWVkaWFTdHJlYW1EZXNj
cmlwdG9yQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciB7CitjbGFzcyBNZWRpYVN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
U3RyZWFtPiwgcHVibGljIFVSTFJlZ2lzdHJhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlw
dG9yQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbT4pOwpAQCAtNzksNiArODAsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxNZWRpYVN0cmVhbT46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPjo6
ZGVyZWY7CiAKKyAgICAvLyBVUkxSZWdpc3RyYWJsZQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkm
IHJlZ2lzdHJ5KCkgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBNZWRpYVN0cmVh
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAKaW5kZXggODQzZWFhYjRjN2U2OGE0OTFiZWJhOGI2
MmNhYTYyYjRmYzlmYTQ4ZS4uZmY1YzZkYWI4Mzg0YmUxNDMzMzJmNDM3YTdlNTU0Nzc1YTk4ZmRj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCkBAIC00MSwxMyArNDEsMTQgQEAgTWVkaWFTdHJlYW1S
ZWdpc3RyeSYgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0cnkoKQogICAgIHJldHVybiBpbnN0
YW5jZTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3Rlck1lZGlhU3RyZWFt
VVJMKGNvbnN0IEtVUkwmIHVybCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQordm9p
ZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0
IEtVUkwmIHVybCwgVVJMUmVnaXN0cmFibGUqIHN0cmVhbSkKIHsKKyAgICBBU1NFUlQoJnN0cmVh
bS0+cmVnaXN0cnkoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IG1fc3RyZWFtRGVzY3JpcHRvcnMuc2V0KHVybC5zdHJpbmcoKSwgc3RyZWFtLT5kZXNjcmlwdG9y
KCkpOworICAgIG1fc3RyZWFtRGVzY3JpcHRvcnMuc2V0KHVybC5zdHJpbmcoKSwgc3RhdGljX2Nh
c3Q8TWVkaWFTdHJlYW0qPihzdHJlYW0pLT5kZXNjcmlwdG9yKCkpOwogfQogCi12b2lkIE1lZGlh
U3RyZWFtUmVnaXN0cnk6OnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwp
Cit2b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYgdXJs
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9zdHJlYW1EZXNjcmlwdG9y
cy5yZW1vdmUodXJsLnN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKaW5kZXggMWY5Mjc0NTA5NWU5
NGZlNzM0MjA5YWM4Y2UwMzg3Mjk3YjAwOGIzMC4uZThiZTRjMWI0OTBmOTMwYjFhMTMwNGQwYjFj
YzZhMjczY2ViZWY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0zNywxNCArMzgsMTQgQEAgY2xhc3MgS1VSTDsK
IGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogCi1jbGFz
cyBNZWRpYVN0cmVhbVJlZ2lzdHJ5IHsKK2NsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnkgOiBwdWJs
aWMgVVJMUmVnaXN0cnkgewogcHVibGljOgogICAgIC8vIFJldHVybnMgYSBzaW5nbGUgaW5zdGFu
Y2Ugb2YgTWVkaWFTdHJlYW1SZWdpc3RyeS4KICAgICBzdGF0aWMgTWVkaWFTdHJlYW1SZWdpc3Ry
eSYgcmVnaXN0cnkoKTsKIAogICAgIC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJlZmVycmluZyB0
byB0aGUgc3BlY2lmaWVkIHN0cmVhbSBkYXRhLgotICAgIHZvaWQgcmVnaXN0ZXJNZWRpYVN0cmVh
bVVSTChjb25zdCBLVVJMJiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgdW5y
ZWdpc3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVn
aXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclVSTChjb25zdCBLVVJMJikgT1ZF
UlJJREU7CiAKICAgICBNZWRpYVN0cmVhbURlc2NyaXB0b3IqIGxvb2t1cE1lZGlhU3RyZWFtRGVz
Y3JpcHRvcihjb25zdCBTdHJpbmcmIHVybCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1OWFm
N2NlMDFlMmNhZTA5MjJkMThlMzZhZjc5NmMxOTM5MzMxZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uY3BwCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVVJMTWVkaWFTdHJlYW0u
aCIKKworI2luY2x1ZGUgIkRPTVVSTC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcg
VVJMTWVkaWFTdHJlYW06OmNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBNZWRpYVN0cmVhbSogc3RyZWFtKQoreworICAgIC8vIFNp
bmNlIFdlYldvcmtlcnMgY2Fubm90IG9idGFpbiBTdHJlYW0gb2JqZWN0cywgd2Ugc2hvdWxkIGJl
IG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAg
aWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0IHx8ICFzdHJlYW0pCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICByZXR1cm4gRE9NVVJMOjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgc3RyZWFtKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFt
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmZiYWMwYmE5N2VmZTBlNTQwODljZjYxOGY5ZDI2ZTliZGNhOTk3YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVk
aWFTdHJlYW0uaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBVUkxNZWRpYVN0cmVhbV9oCisjZGVm
aW5lIFVSTE1lZGlhU3RyZWFtX2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTdHJlYW07CitjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OworCitjbGFzcyBVUkxNZWRpYVN0cmVhbSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFN0cmluZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU3Ry
ZWFtKik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYjhlZGI1YTIxMzVmNzQ4ZmUwMDE5YzY2Njk3NjhhYTg5NjFhODZiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRp
YVN0cmVhbS5pZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCitwYXJ0aWFsIGludGVyZmFjZSBVUkwgeworICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gc3RhdGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwoTWVkaWFTdHJlYW0/IHN0cmVh
bSk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGIzNzM0YjIxZTdjOGJkNDI3MmUyMDI0NDlmN2Q4MDRmZjE5MzRjNTAuLmM2
Y2I5NjEwYWFiMTQ0OWRhOGVjOWUxN2M1MTk2MzU1OWU1NDBmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxOTYsMTIgKzUx
OTYsMzQgQEAKIAkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdG
NkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNE
MjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTYxNDU3NzBEMzAwNzgy
MDdEIC8qIE1lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNEMzdCMzk4MTVDMUI5NzEwMDZE
Qzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAgKi87IH07CisJCUNEM0E0OTUyMTdBOUM4QzYwMDI3NEU0MiAv
KiBNZWRpYVNvdXJjZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEM0E0OTUxMTdBOUM4QjYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuaCAq
LzsgfTsKKwkJQ0QzQTQ5NTQxN0E5Q0M5MDAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1MDE3
QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmNwcCAqLzsgfTsKKwkJQ0QzQTQ5NUUx
N0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRp
YVNvdXJjZS5jcHAgKi87IH07CisJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
QTQ5NTYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggKi87IH07CisJCUNEM0E0OTYx
MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTgxN0E5RDAxQjAwMjc0RTQyIC8qIFNv
dXJjZUJ1ZmZlci5jcHAgKi87IH07CisJCUNEM0E0OTYyMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3Vy
Y2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEM0E0OTU5MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCAqLzsgfTsKKwkJQ0Qz
QTQ5NjQxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NUIxN0E5RDAxQjAwMjc0
RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovOyB9OworCQlDRDNBNDk2NTE3QTlEMDFCMDAy
NzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NUMxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZl
ckxpc3QuaCAqLzsgfTsKIAkJQ0Q0N0IzRkMxNkNDMzRGODAwQTIxRUM4IC8qIENETVByaXZhdGVB
VkZvdW5kYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDQ3QjNGQTE2Q0MzNEY4MDBBMjFFQzggLyogQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5t
bSAqLzsgfTsKIAkJQ0Q0QUM1MkExNDk2QUU5QTAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgaW4g
Q29weSBBdWRpbyBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgKi87IH07CiAJCUNENTM5
M0QzMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8q
IEpTTWVtb3J5SW5mby5jcHAgKi87IH07CiAJCUNENTM5M0Q0MTc1RTAxODYwMEMwNzEyMyAvKiBK
U01lbW9yeUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCAqLzsgfTsKIAkJ
Q0Q1NERFNDcxNzQ2OEI2RjAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NERFNDUxNzQ2
OEI2RjAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovOyB9OwogCQlDRDU0
REU0QjE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTRERTQ5MTc0NjlDNkQwMDVFNUIz
NiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovOyB9OworCQlDRDYxRkU2MzE3OTRBQURCMDA0MTAx
RUIgLyogV2ViS2l0TWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlh
U291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFNjQxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaCAqLzsgfTsK
KwkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTExNUI1
Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwICovOyB9OworCQlDRDYxRkU2
ODE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTIxNUI1Q0UyMjAwRDUyNUQx
IC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCAqLzsgfTsKKwkJQ0Q2MUZFNjkxNzk0QUFEQjAwNDEw
MUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFMzE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291
cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFNkExNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktp
dFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjFBOTQyRTQxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oICov
OyB9OworCQlDRDYxRkU2QjE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5
NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgKi87IH07
CisJCUNENjFGRTZDMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFNzE1
QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oICovOyB9OworCQlDRDYx
RkU3RTE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU3QzE3OTRDQjI2MDA0
MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHAgKi87IH07CisJCUNENjFGRTdGMTc5NENC
MjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU3RDE3OTRDQjI2MDA0MTAxRUIgLyogSlNX
ZWJLaXRNZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDYxRkU4NDE3OTRDQzU5MDA0MTAxRUIgLyog
SlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q2MUZFODAxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNl
QnVmZmVyLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFODUxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0
U291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDYxRkU4MTE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuaCAq
LzsgfTsKKwkJQ0Q2MUZFODYxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVy
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDYxRkU4MjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAq
LzsgfTsKKwkJQ0Q2MUZFODcxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2
MUZFODMxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oICovOyB9
OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1
MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsK
IAkJQ0Q4MjAzMEExMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIw
MzA2MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q4MjAzMEIx
Mzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwNzEzOTVBQjZB
MDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSAqLzsgc2V0dGluZ3Mg
PSB7Q09NUElMRVJfRkxBR1MgPSAiLVduby11bmRlZiAtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIjsgfTsgfTsKQEAgLTUyMDksNiArNTIzMSwxNiBAQAogCQlDRDgyMDMwRDEzOTVBQjZBMDBG
OTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA5MTM5NUFCNkEw
MEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tICovOyB9
OwogCQlDRDgyMDMxMDEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRTEzOTVB
Q0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q4MjAzMTExMzk1QUNFNzAwRjk1NkM2IC8q
IFdlYldpbmRvd0FuaW1hdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEODIwMzBGMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRp
b24ubW0gKi87IH07CisJCUNEOURFMTc0MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURF
MTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q5REUx
NzUxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAvKiBK
U01lZGlhU291cmNlLmggKi87IH07CisJCUNEOURFMTdBMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1Nv
dXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDlERTE3NjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwICovOyB9
OworCQlDRDlERTE3QjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc3MTdBQUM3NUIw
MEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oICovOyB9OworCQlDRDlERTE3QzE3QUFDNzVCMDBF
QTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc4MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJj
ZUJ1ZmZlckxpc3QuY3BwICovOyB9OworCQlDRDlERTE3RDE3QUFDNzVCMDBFQTM4NkQgLyogSlNT
b3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDlERTE3OTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0Lmgg
Ki87IH07CisJCUNEOURFMTgxMTdBQUQ2QTQwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3RTE3
QUFENjRFMDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlDRDlERTE4MjE3
QUFENkE0MDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTdGMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxN
ZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDlERTE4NTE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1l
ZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEOURFMTgzMTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuY3BwICovOyB9
OworCQlDRDlERTE4NjE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE4NDE3QUIwQ0Yz
MDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmggKi87IH07CiAJCUNEQTc5ODI0MTcwQTI1ODMw
MEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RBNzk4MjMxNzBBMjU4MzAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lv
bi5jcHAgKi87IH07CiAJCUNEQTc5ODI3MTcwQTI3OTEwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25J
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE3
OTgyNTE3MEEyNzkwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uSU9TLm1tICovOyB9OwogCQlDREE3
OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE3OTgyMTE3MEEyMkRDMDBENDVDNTUgLyog
QXVkaW9TZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTUyMzgsNiArNTI3MCw3IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4
NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4u
Y3BwICovOyB9OworCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVF
MzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNE
RjY1Q0M4MTQ1QjFFNzUwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3
RCAvKiBNZWRpYUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREY2NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9s
bGVySW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Uw
MkYwQzQxMUU4M0FERDAwQzY2ODRBIC8qIFNjcmlwdENvbnRyb2xsZXJCYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTAyRjBDMzExRTgzQUREMDBD
NjY4NEEgLyogU2NyaXB0Q29udHJvbGxlckJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA0NTMsMTcgKzEwNDg2LDE3IEBACiAJCUIxMEI2
OTdFMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRUb2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVlRUVG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQjEwQjY5N0YxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2Vu
aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWVFRUb2tlbml6ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjE4Mjc0OTIxMzRDQTRDMTAwQjk4QzJE
IC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2FsbGJhY2tGdW5jdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUIxQTk0MkRFMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUIxQTk0MkRGMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCMUE5NDJFMDE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFT
b3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU291cmNlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktp
dE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YktpdE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQy
REYxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUIxQTk0MkUwMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJj
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0TWVkaWFTb3VyY2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMUE5NDJFMTE1QjVDRTIyMDBENTI1RDEgLyogTWVk
aWFTb3VyY2VSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjFBOTQyRTIxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VSZWdpc3RyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCMUE5NDJFMzE1QjVDRTIyMDBENTI1RDEgLyogU291cmNl
QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1
ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU0MTVCNUNFMjIw
MEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU1
MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNvdXJjZUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0
MkU2MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCMUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVm
ZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU4MTVCNUNFMjIwMEQ1
MjVEMSAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTb3Vy
Y2VCdWZmZXJMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTMx
NUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNDE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291
cmNlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFNvdXJj
ZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNTE1QjVDRTIy
MDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJLaXRTb3VyY2VCdWZmZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
MUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUy
NUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCMUE5NDJFODE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxQUQ0RTcxMTNBMTJBNDYwMDg0NkIyNyAv
KiBUZXh0VHJhY2tMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gVGV4dFRyYWNrTG9hZGVyLmNwcDsgcGF0aCA9IGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUIxQUQ0RTcyMTNBMTJBNDYwMDg0NkIy
NyAvKiBUZXh0VHJhY2tMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
VGV4dFRyYWNrTG9hZGVyLmg7IHBhdGggPSBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQjFENUVDQjQxMzRCNThEQTAwODdDNzhGIC8qIENh
bGxiYWNrRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJh
Y2tGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE5NDAsNiArMTE5
NzMsMTcgQEAKIAkJQ0QyN0Y2RTYxNDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDM3QjM3NDE1QzFBN0UxMDA2REM4
OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2lu
Z0tleXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTUwMTdBOUM4QjYw
MDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFT
b3VyY2VCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTExN0E5
QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNv
dXJjZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTUxN0E5RDAx
QjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0QzQTQ5NTYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEM0E0OTU3MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDNBNDk1ODE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTU5MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3Vy
Y2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTVBMTdBOUQwMUIwMDI3NEU0
MiAvKiBTb3VyY2VCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZl
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTVCMTdBOUQwMUIwMDI3
NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTVEMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VC
dWZmZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0N0IzRjkxNkNDMzRGODAwQTIxRUM4
IC8qIENETVByaXZhdGVBVkZvdW5kYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5oOyBwYXRoID0gTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9DRE1Qcml2YXRlQVZGb3VuZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENDdCM0ZBMTZDQzM0RjgwMEEyMUVDOCAvKiBDRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ0RNUHJpdmF0ZUFWRm91
bmRhdGlvbi5tbTsgcGF0aCA9IE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZUFWRm91
bmRhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QUM1MjgxNDk2QUUy
RjAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBDb21wb3NpdGUud2F2OyBwYXRo
ID0gcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzL0NvbXBvc2l0ZS53YXY7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKQEAgLTExOTUwLDYgKzExOTk0LDEyIEBACiAJCUNENTM5M0QyMTc1RTAx
ODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNNZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRE
RTQ1MTc0NjhCNkYwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYg
LyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEF1ZGlvU2Vzc2lvbk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NjFGRTdDMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDYxRkU3RDE3OTRDQjI2MDA0MTAxRUIgLyog
SlNXZWJLaXRNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1dlYktpdE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFG
RTgwMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFNvdXJjZUJ1ZmZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTgxMTc5NENDNTkwMDQxMDFFQiAvKiBK
U1dlYktpdFNvdXJjZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1dlYktpdFNvdXJjZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDYx
RkU4MjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTgzMTc5NENDNTkwMDQx
MDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHBh
dGggPSBvYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDdFMDUyMTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNl
TG9hZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViQ29yZUFWRlJlc291cmNlTG9hZGVy
Lm1tOyBwYXRoID0gb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEODIwMzA2MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTExOTU4LDYgKzEyMDA4LDE3IEBACiAJCUNEODIwMzA5MTM5NUFCNkEwMEY5NTZDNiAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJv
bGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjAzMEUxMzk1QUNFNzAw
Rjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJXaW5kb3dBbmltYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q4MjAzMEYxMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYldpbmRvd0FuaW1hdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZE
IC8qIEpTTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURF
MTczMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q5REUxNzYxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU291cmNlQnVmZmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzcxN0FBQzc1QjAwRUEzODZEIC8qIEpT
U291cmNlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNl
QnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTc4MTdBQUM3NUIw
MEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTb3VyY2VCdWZmZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q5REUxNzkxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlckxpc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxN0UxN0FBRDY0RTAwRUEzODZE
IC8qIFVSTE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTE1lZGlhU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxN0YxN0FBRDY0RTAwRUEz
ODZEIC8qIFVSTE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTE1lZGlhU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTgwMTdBQUQ2NEUwMEVBMzg2RCAv
KiBVUkxNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVVJMTWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDlERTE4MzE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlh
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxNZWRp
YVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTg0MTdBQjBD
RjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQTc5ODIxMTcwQTIyREMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTc5ODIy
MTcwQTI0RjQwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25MaXN0ZW5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdWRpb1Nlc3Npb25MaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REE3OTgyMzE3MEEyNTgzMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMjAxNiw2ICsxMjA3Nyw4IEBACiAJCUNERUE3NjMzMTQ2MEI0NjIw
MDhCMzFGMSAvKiBDbG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUE3QzgyMTI3NjIz
MDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlckZ1bGxTY3JlZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRnVsbFNjcmVlbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFB1YmxpY1VSTE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVF
MzkzODE3OTc0Mjc0MDAxRDc1ODAgLyogVVJMUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJM
UmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQzkxNDVCNDNB
NzAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQ0MxNDVCNkFGRTAwQzRDN0FBIC8qIEpTSFRNTE1lZGlh
RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRTAyRjBDMzExRTgzQUREMDBDNjY4NEEgLyogU2NyaXB0Q29udHJvbGxlckJhc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0Q29udHJvbGxlckJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjc5LDYgKzEzMzQyLDcgQEAKIAkJCQlBODNC
NzkwODBDQ0FGRjJCMDAwQjA4MjUgLyogSFRNTCAqLywKIAkJCQlBQTkzQzg1MDE3NUQ1QjIwMDBG
RDNDRTMgLyogSW5kaWVVSSAqLywKIAkJCQkxQzVGQUVDQTBEQ0ZEOEM5MDBENThGNzggLyogSW5z
cGVjdG9yICovLAorCQkJCUNENjFGRTdCMTc5NENBMDIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZSAq
LywKIAkJCQkzMzUwM0M5QzEwMTc5QTlBMDAzQjQ3RTEgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJ
CQkxQUMyMjYwMjBEQjY5RUE3MDA4OUI2NjkgLyogT2ZmbGluZSAqLywKIAkJCQlBOUQyNDdGOTBE
NzU3RTQxMDBGREY5NTkgLyogUGx1Z2lucyAqLywKQEAgLTE1OTA4LDYgKzE1OTcyLDggQEAKIAkJ
CQlFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5jcHAgKi8sCiAJ
CQkJRTQ0NjEzOTMwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQuaCAqLywKIAkJ
CQlFNDQ2MTM5NDBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5pZGwgKi8sCisJ
CQkJQ0Q5REUxODMxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5jcHAgKi8sCisJ
CQkJQ0Q5REUxODQxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5oICovLAogCQkJ
CUE4RUE3OUVDMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MTWVudUVsZW1lbnQuY3BwICovLAogCQkJ
CUE4RUE3OUU4MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MTWVudUVsZW1lbnQuaCAqLywKIAkJCQkx
QUUyQUU0MzBBMUQyNjlFMDBCNDJCMjUgLyogSFRNTE1lbnVFbGVtZW50LmlkbCAqLywKQEAgLTE2
MDcxLDYgKzE2MTM3LDcgQEAKIAkJCQlGNTVCM0Q5NjEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dv
cmRJbnB1dFR5cGUuaCAqLywKIAkJCQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2lu
RG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5E
b2N1bWVudC5oICovLAorCQkJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxN
YW5hZ2VyLmNwcCAqLywKIAkJCQkxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJM
TWFuYWdlci5oICovLAogCQkJCUY1NUIzRDk3MTI1MUYxMkQwMDNFRjI2OSAvKiBSYWRpb0lucHV0
VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTgxMjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRU
eXBlLmggKi8sCkBAIC0xNjEwNSw2ICsxNjE3Miw3IEBACiAJCQkJQzM3NUQ3RkMxNjYzOTUxOTAw
NjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJCUY1NUIzREE5MTI1MUYxMkQwMDNFRjI2OSAv
KiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBV
UkxJbnB1dFR5cGUuaCAqLywKKwkJCQlDREVFMzkzODE3OTc0Mjc0MDAxRDc1ODAgLyogVVJMUmVn
aXN0cnkuaCAqLywKIAkJCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwICovLAogCQkJCUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9u
TWVzc2FnZS5oICovLAogCQkJCTE1Qzc3MDhCMTAwRDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0
YXRlLmNwcCAqLywKQEAgLTE3NjgyLDE3ICsxNzc1MCwzMSBAQAogCQlCMUE5NDJERDE1QjVDRTIy
MDBENTI1RDEgLyogbWVkaWFzb3VyY2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAotCQkJCUIxQTk0MkRFMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5j
cHAgKi8sCi0JCQkJQjFBOTQyREYxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmggKi8s
Ci0JCQkJQjFBOTQyRTAxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmlkbCAqLywKKwkJ
CQlDRDNBNDk1NTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNE
M0E0OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovLAorCQkJCUNEM0E0OTU3
MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5pZGwgKi8sCisJCQkJQ0QzQTQ5NTAxN0E5
QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5jcHAgKi8sCisJCQkJQ0QzQTQ5NTExN0E5
QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5oICovLAogCQkJCUIxQTk0MkUxMTVCNUNF
MjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQlCMUE5NDJFMjE1
QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovLAotCQkJCUIxQTk0MkUz
MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuY3BwICovLAotCQkJCUIxQTk0MkU0MTVC
NUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuaCAqLywKLQkJCQlCMUE5NDJFNTE1QjVDRTIy
MDBENTI1RDEgLyogU291cmNlQnVmZmVyLmlkbCAqLywKLQkJCQlCMUE5NDJFNjE1QjVDRTIyMDBE
NTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5jcHAgKi8sCi0JCQkJQjFBOTQyRTcxNUI1Q0UyMjAw
RDUyNUQxIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCAqLywKLQkJCQlCMUE5NDJFODE1QjVDRTIyMDBE
NTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5pZGwgKi8sCisJCQkJQ0QzQTQ5NTgxN0E5RDAxQjAw
Mjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgKi8sCisJCQkJQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0
RTQyIC8qIFNvdXJjZUJ1ZmZlci5oICovLAorCQkJCUNEM0E0OTVBMTdBOUQwMUIwMDI3NEU0MiAv
KiBTb3VyY2VCdWZmZXIuaWRsICovLAorCQkJCUNEM0E0OTVCMTdBOUQwMUIwMDI3NEU0MiAvKiBT
b3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKKwkJCQlDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyog
U291cmNlQnVmZmVyTGlzdC5oICovLAorCQkJCUNEM0E0OTVEMTdBOUQwMUIwMDI3NEU0MiAvKiBT
b3VyY2VCdWZmZXJMaXN0LmlkbCAqLywKKwkJCQlDRDlERTE3RTE3QUFENjRFMDBFQTM4NkQgLyog
VVJMTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNEOURFMTdGMTdBQUQ2NEUwMEVBMzg2RCAvKiBV
UkxNZWRpYVNvdXJjZS5oICovLAorCQkJCUNEOURFMTgwMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxN
ZWRpYVNvdXJjZS5pZGwgKi8sCisJCQkJQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktp
dE1lZGlhU291cmNlLmNwcCAqLywKKwkJCQlCMUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyogV2Vi
S2l0TWVkaWFTb3VyY2UuaCAqLywKKwkJCQlCMUE5NDJFMDE1QjVDRTIyMDBENTI1RDEgLyogV2Vi
S2l0TWVkaWFTb3VyY2UuaWRsICovLAorCQkJCUIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBX
ZWJLaXRTb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAv
KiBXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLywKKwkJCQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEg
LyogV2ViS2l0U291cmNlQnVmZmVyLmlkbCAqLywKKwkJCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1
RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgKi8sCisJCQkJQjFBOTQyRTcxNUI1Q0Uy
MjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCAqLywKKwkJCQlCMUE5NDJFODE1
QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGwgKi8sCiAJCQkpOwog
CQkJbmFtZSA9IG1lZGlhc291cmNlOwogCQkJcGF0aCA9IE1vZHVsZXMvbWVkaWFzb3VyY2U7CkBA
IC0xOTQ2NCw2ICsxOTU0NiwyNSBAQAogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCUNENjFGRTdCMTc5NENBMDIwMDQxMDFFQiAvKiBNZWRpYVNvdXJj
ZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q5REUx
NzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNEOURFMTcz
MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggKi8sCisJCQkJQ0Q5REUxNzYxN0FB
Qzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLywKKwkJCQlDRDlERTE3NzE3QUFD
NzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCAqLywKKwkJCQlDRDlERTE3ODE3QUFDNzVC
MDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKKwkJCQlDRDlERTE3OTE3QUFD
NzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggKi8sCisJCQkJQ0Q2MUZFODAxNzk0
Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLywKKwkJCQlDRDYxRkU4
MTE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLywKKwkJCQlDRDYx
RkU4MjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywK
KwkJCQlDRDYxRkU4MzE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmggKi8sCisJCQkJQ0Q2MUZFN0MxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3Vy
Y2UuY3BwICovLAorCQkJCUNENjFGRTdEMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlh
U291cmNlLmggKi8sCisJCQkpOworCQkJbmFtZSA9IE1lZGlhU291cmNlOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5
cHRlZG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTIxMzU1LDYgKzIxNDU2LDcgQEAKIAkJCQlGRDE2NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyogRGVu
b3JtYWxEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwMEVFNzYxNTQ2RUFDMTAwQkEx
MUQxIC8qIERlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QzlB
QkY5MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q2MUZFNjgxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCUNDQzJCNTE0MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNDQzJCNTE2MTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNDA0LDYg
KzIxNTA2LDcgQEAKIAkJCQk4NUQzODlCMjBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODVFNzExOEQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUF0dHJJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDZFRUYxMDdGREJBQzAwODU3MTkzIC8qIERP
TUJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFODUxNzk0Q0M1OTAw
NDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTJE
OTlFNzEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUy
RDk5RUExMEUyQkMzODAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODUwODlDRDcwQTk4QzQyODAwQTI3NUFBIC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMTU2Myw2ICsyMTY2Niw3IEBACiAJCQkJODU5OTJFQkUwQUE1MDY5NTAw
QUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzEx
QjgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxMaW5rRWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NUVDQkVGMzBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1hcEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1Nv
dXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUI5MEFDNUQ1MzUwMDUz
MjcwRiAvKiBET01IVE1MTWFwRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzUxNTc5RjBDMDNCQkQzMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzUxNTZFQTBDMDNCNzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVF
bGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjE1NzcsNiArMjE2ODEsNyBAQAog
CQkJCTg1QkE0RDE1MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NUU3MTFCRTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0
RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUYzMkFFRTBBQTYzQjg3MDBG
RjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5
REUxODIxN0FBRDZBNDAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NUU3MTFCRjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudElu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzU2QjBBRDZDQkY5MDA2MjBDNTcgLyog
RE9NSFRNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NDA3NTZEMEFENkNC
RjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKQEAgLTIxNTg2LDYgKzIxNjkxLDcgQEAKIAkJCQk4NUU3MTFDMTBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVFQ0JFRjcwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1RTcxMUMyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUGFyYW1FbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTZBMTc5NEFBREIwMDQxMDFF
QiAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MTgzQjQ4MEFB
NjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVFNzExQzMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQcmVFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCUE0MjI2RTk1MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJv
Z3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNjMwLDYgKzIyNzM2LDcgQEAKIAkJ
CQk0MzU4RTg3RDEzNjBBMkVFMDBFNDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3OTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZs
b29kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEN0IwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHRkVGdW5jQUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTdGMTc5
NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkZBM0Q3RDBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZ1bmNCRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJGQTNEN0YwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGdW5jR0Vs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDgxMEFCNzVBNkYwMDBFNUFDNCAvKiBK
U1NWR0ZFRnVuY1JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNzYwLDYgKzIyODY3LDcg
QEAKIAkJCQlCQzJDQkY0RTE0MEYxQUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDExRTQyMzA3IC8qIEpTV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDIy
RTQyMzA3IC8qIEpTV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0
OTUyMTdBOUM4QzYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFM0ZBRDM5MTQ3MzNGNDAwMEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OUM3Qjk5ODEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEZyYW1l
YnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyog
SlNXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTIyOTg5LDYgKzIzMDk3LDcg
QEAKIAkJCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTAwMTQ2MjhCMTAzQ0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nl
c3NFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU5RTg5RkMxNkUyREMwNTAwQTkwOEY4IC8q
IE9yaWdpbkxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURFMTg2MTdBQjBDRjMwMEVBMzg2
RCAvKiBIVE1MTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTgxRkFGMTUyMEY5
MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1
REQwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUEwRDU3MzcwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjMyMjEsNiArMjMzMzAsNyBAQAogCQkJCTQzNjcwOEM5MTJEOUNBNEIwMDA0NDIzNCAv
KiBSZW5kZXJTVkdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTUxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTcx
MjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEM0E0OTYyMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQzNjcwOENCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQURERjFBRDcxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRl
clNWR1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAv
KiBSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMjcyLDYgKzIzMzgyLDcgQEAK
IAkJCQk1MTRDNzY3OTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxNEM3NjdBMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0IwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTY0MTc5NEFB
REIwMDQxMDFFQiAvKiBXZWJLaXRNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFF
NDE0MzQxNkE2NTk2MzAwQzYzM0M3IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1NkQzNzNGMEFEQkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDBBM0E3MzExNDA1QTM5ODAwRkI4RUQzIC8qIFJlc291cmNlTG9h
ZGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzQwMCw2ICsyMzUxMSw3IEBACiAJCQkJ
NDFFMUIxRDQwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDFEMTY4RTgxMDIyNkU4OTAwOUJDODI3IC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxNjhFQTEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNkMxNzk0QUFEQjAw
NDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
Qjc4MzlDMTYzNzQwQTcwMDA3QjY5MiAvKiBTaGFyZWRXb3JrZXJTdHJhdGVneS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFEMTY4RUUxMDIyNkU4OTAwOUJDODI3IC8qIFNoYXJlZFdvcmtlclRocmVh
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjUwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBs
ZUZvbnREYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNTQ4LDcgKzIzNjYwLDkgQEAKIAkJCQkw
OEQ0NkNFMzEyN0FENUZDMDA4OTY5NEIgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzFGQjk2N0IxMzgzRDY0NjAwQUM4QTRDIC8qIFNWR0FuaW1hdGVkRW51
bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MjNEMTU5MTI3
QUQ2QUMwMDBFQkM5NSAvKiBTVkdBbmltYXRlZEludGVnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNENjFGRTg3MTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxRTYyM0QxMTUxRjcyQTYwMDM2RTJGNCAvKiBTVkdBbmltYXRl
ZEludGVnZXJPcHRpb25hbEludGVnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURFMTdCMTdB
QUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5
MDIxQTkxMjZFRjVERTAwOTJENUVBIC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODkwMjFBRDEyNkVGNUU5MDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwNDEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5p
bWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTIzODA1LDYgKzIz
OTE5LDcgQEAKIAkJCQlCQ0VGNDVFOTBFNjg3NzY3MDAxQzEyODcgLyogVGV4dE1ldHJpY3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMEZDNjhBMTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVy
aW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8q
IFRleHRSZXNvdXJjZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTY1MTdBOUQw
MUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODI0
QjQ2NTBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJD
M0RBNEIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3NTlFOTQwMTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLApA
QCAtMjM4MzgsNiArMjM5NTMsNyBAQAogCQkJCTQ5RTkxMkFFMEVGQUM5MDYwMDlEMENBRiAvKiBU
aW1pbmdGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4
RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAw
NjU4RDk4IC8qIFRyYWNrTGlzdEJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTVGMTdB
OUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTEx
QzQwRUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGQjQ4NEY0RDE3MUY4MjFFMDAwNDA3NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDRTBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3Jt
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTIzOTg3LDYgKzI0MTAzLDcgQEAKIAkJCQlG
NTVCM0RFMDEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODUwMzFCNTEwQTQ0RUZDNzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzODBGNDc0MDlBMTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEOURFMTc1MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDExRENCMTE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjNFNTY5MTI3QjMwNDEwMDBGRUVBNyAvKiBX
aW5kb3dFdmVudENvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ2MDUsNiArMjQ3MjIsNyBA
QAogCQkJCUE4MTg3MjI1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0RDgyMzhCMEFGOTJERjYwMDA0RjA1NyAvKiBDaHJvbWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUNEOURFMTc0MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlh
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAv
KiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgw
RDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDgyMCw2
ICsyNDkzOCw3IEBACiAJCQkJODUwMzJEREMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9y
dFJ1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMkRERTBBQThDOUJFMDA3RDNCN0QgLyog
RE9NQ1NTTWVkaWFSdWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzJERTAwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxN0Ex
N0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1OEMzODJEMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1MDMyREUyMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzJERTQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1
bGVMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yNDg3NCw2ICsyNDk5Myw3IEBACiAJCQkJODVE
RjgxOTYwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxGcmFtZUVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NURGODE5ODBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OTkyRUJCMEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSGVhZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDNBNDk2NDE3QTlEMDFC
MDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTE4
M0I0NTBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTEhlYWRpbmdFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVFQ0JFRjIwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTk5MkVCRDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRN
TEh0bWxFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yNTA2OSw2ICsyNTE4OSw3IEBACiAJ
CQkJODk4Nzg1NjQxMjJDQTA2NDAwM0FBQkRBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE2MDMwNkMwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1D
Ri5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNkMxN0EzRjE0OTFEMkQ0MDBEMTJCQTIgLyogRmls
ZVN5c3RlbUlPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEM0E0OTU0MTdBOUNDOTAwMDI3NEU0
MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0QjNGNzYwQzcy
MjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYw
MzAwQjBDQzQyNTEyMDBDOEFDMjUgLyogRmlsZVN5c3RlbVBPU0lYLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk3NkQ2QzhEMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjUzMTUsNiArMjU0MzYsNyBAQAogCQkJCUMzQ0YxN0E2MTVCMDA2M0YwMDI3
NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1NkYwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQzRDI1OTc3MTNDODE2RjQwMDYwODU1OSAvKiBJbWFnZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDRDlERTE3QzE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1
ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIyOTJCMjdDMTM1NjY2OTQwMENGMTFFRiAv
KiBJbWFnZUJ1ZmZlckRhdGFDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU1RTBCMDUz
ODE0MDAyQ0U2NEYgLyogSW1hZ2VDRy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTEzLDYgKzI1
NjM1LDcgQEAKIAkJCQk1MkNDQTlFMjE1RTNGNjJDMDA1M0M3N0YgLyogSlNET01OYW1lZEZsb3dD
b2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQ0U1M0RGMEE4RDE4ODEwMDIyOTQ3
RCAvKiBKU0RPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMw
MDAxRkU2ODIgLyogSlNET01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENjFGRTZCMTc5
NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE5RDI0N0ZFMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOUQyNDgwMDBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJh
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTY0QzBENzQ2NUU3MDA2NDQyRTkgLyogSlNE
T01QbHVnaW5BcnJheUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTYzLDYgKzI1Njg2
LDcgQEAKIAkJCQlGRTgwREE2MzBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2Nh
dGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwREE2NTBFOUM0NzAzMDAwRDZG
NzUgLyogSlNHZW9wb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDNBNDk1RTE3QTlE
MDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ4MkI3
NTExMTk4Q0I2QjAwQkZCMDA1IC8qIEpTSGFzaENoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDOTREMTRFMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFN0IxOTMwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTgyLDYgKzI1NzA2LDcgQEAKIAkJCQk5MzkyMjYyRDEw
MzIxMDdCMDA2RTdENUQgLyogSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0NCQUQ0MDBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0NCQUQzQjBDMThCRkY4MDBDRTg5MEYgLyogSlNIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDYxRkU4NDE3OTRDQzU5
MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NEExRTcxOTAxNEUxMDFFNDAwNjI2RjlEIC8qIEpTSFRNTENvbnRlbnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY1QzA0MUU2MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlz
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDM1OUQ4QkUxMjlDQTU1QzAwMDZFNUQy
IC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU4OTMsNiAr
MjYwMTgsNyBAQAogCQkJCUIyRkEzRENBMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREND
MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzk2RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NW
R1BhdGhTZWdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzQTQ5NjExN0E5RDAxQjAw
Mjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDRTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGluZXRvQWJzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUIyRkEzREQwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREQyMEFCNzVBNkYwMDBFNUFD
NCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjYxMTAsNiArMjYyMzYsNyBAQAogCQkJCUQzNDA2MjlCMTI1M0JDOEMwMDlFNDI1OSAvKiBN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQUExMEYzMTIz
QTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRDY3MUE3NzE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlh
U291cmNlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMTcwOTc5QzNCRDAw
NDY3NzQxIC8qIE1lbW9yeUNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1N0VEQTA4MTM4
NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjU3RURBMEIxMzg1Q0JEODAwNEUwNjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlck1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjYzMjgsNiArMjY0NTUsNyBAQAogCQkJCTQzOTA0NkRC
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MzkwNDZERDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZERjEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0
aE1MT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZFNjMxNzk0QUFEQjAwNDEw
MUVCIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkUx
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQzOTA0NkUzMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb3cuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUI3QTIwOEQyRTEyOTc5QjRBRTE5REU2IC8qIFJlbmRlck1hdGhNTFNw
YWNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY1NzMsNiArMjY3MDEsNyBAQAogCQkJCTkzRjE5
QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxODUxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxN
ZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUUzRjlDNzBEQTA1OURDMDAyNTA5
MTEgLyogU3RvcmFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTE2MEVFQTEwMDQ1NDNBMDBB
N0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MTAyRUQw
MEZEOUVGOEMwMEZBRkYwNCAvKiBTdG9yYWdlQXJlYVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yNjY5NCw2ICsyNjgyMyw3IEBACiAJCQkJQjIyMjc5REMwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R0ZFRmxvb2RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OURGMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdGRUZ1bmNBRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIy
NzlFMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVGdW5jQkVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQ0Q2MUZFN0UxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5RTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZF
RnVuY0dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OUU4MEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdGRUZ1bmNSRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlF
QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjY3NTQsNiArMjY4ODQsNyBAQAogCQkJCTg0NzZDOUVBMTFERjZBMjkwMDU1
NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDE5RDJBODEy
MEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg0MTlEMkFDMTIwRDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNv
dXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDYxRkU4NjE3OTRDQzU5MDA0MTAxRUIgLyog
SlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTU4
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NDc2QzlFRjExREY2QTU4MDA1NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMjIyN0E4MDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yNjgzNyw2ICsyNjk2OCw3IEBACiAJCQkJOTNGMTlBOUQwODI0
NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzc2RENDRTExM0I0Rjk2NjAwMkVCRUZDIC8qIFRleHRSdW4uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjJDM0RBNEEwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRTdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0Q5REUxODExN0FBRDZBNDAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk3NTlFOTNGMTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc1OUU5NDIxNEVGMUNGODAwMjZBMkREIC8qIFRl
eHRUcmFja0N1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzFBOUVDMjE2OEZCQzQzMDAyNjI5
RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2OTg0LDYg
KzI3MTE2LDcgQEAKIAkJCQkwRkNGMzMyQzBGMkI5QTI1MDA0QjY3OTUgLyogV2ViVGlsZWRMYXll
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTcxNjFFMTQ5QkYyRkEwMDE2RUMxOSAvKiBXZWJU
aWxlTGF5ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDgyMDMwQjEzOTVBQjZBMDBGOTU2QzYg
LyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNE
NjFGRTY5MTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0Q4MjAzMEQxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVl
bkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlGMTIxNzFGNTE2QThD
RUQyMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDIx
QTgwMjEzRUNFNURGMDBCQjcwNjQgLyogV2ViVlRUUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjcwMDIsNiArMjcxMzUsNyBAQAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBX
b3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTAxMzQzNjMx
RjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTNFMjY0MzAxNDc0ODk5MTAwNUE4NTg4IC8qIFdvcmtlckV2ZW50UXVldWUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RFRTM5MzcxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDgwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ckdsb2JhbFNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MTJBNjExMTUwMDkwQ0UwMDQ4
QUYxMCAvKiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5N0Y4RTY2NTE1MUQ0QTRCMDBEMkQxODEgLyogV29ya2VyR2xvYmFsU2NvcGVOb3Rp
ZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXgg
YzFkNjVjYThlZjA3YWI0MzAyMTkxYzE5OWU4NWE0MzcyNGE1MTlkOS4uZDYyOTg2YmQwMTZlZWEy
N2RhMzY2YWZhNjVmZTA0YmQ2YjMxZDU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0x
NjYsNiArMTY2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh3ZWJraXRiZWdp
bmZ1bGxzY3JlZW4pIFwKICAgICBtYWNybyh3ZWJraXRlbmRmdWxsc2NyZWVuKSBcCiAgICAgXAor
ICAgIG1hY3JvKGFkZHNvdXJjZWJ1ZmZlcikgXAorICAgIG1hY3JvKHJlbW92ZXNvdXJjZWJ1ZmZl
cikgXAorICAgIG1hY3JvKHNvdXJjZW9wZW4pIFwKKyAgICBtYWNybyhzb3VyY2VlbmRlZCkgXAor
ICAgIG1hY3JvKHNvdXJjZWNsb3NlKSBcCisgICAgbWFjcm8odXBkYXRlKSBcCisgICAgbWFjcm8o
dXBkYXRlZW5kKSBcCisgICAgbWFjcm8odXBkYXRlc3RhcnQpIFwKICAgICBtYWNybyh3ZWJraXRh
ZGRzb3VyY2VidWZmZXIpIFwKICAgICBtYWNybyh3ZWJraXRyZW1vdmVzb3VyY2VidWZmZXIpIFwK
ICAgICBtYWNybyh3ZWJraXRzb3VyY2VvcGVuKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCmlu
ZGV4IDZhODBhOGFjZDg1ZTgzZDlkZjIyN2Q1MjliYmFmZGVkMmJlYzA1YmEuLjVlMTNjOTUyYTU0
NDYwMDg3MmUyZGFiZjYyY2RhYmVjYjhjZGQ5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5o
CkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRQ
cm9jZXNzb3JOb2RlOwogICAgIGNsYXNzIExvY2FsTWVkaWFTdHJlYW07CiAgICAgY2xhc3MgTWVk
aWFDb250cm9sbGVyOwotICAgIGNsYXNzIE1lZGlhU291cmNlOwogICAgIGNsYXNzIE1lZGlhU3Ry
ZWFtOwogICAgIGNsYXNzIE1lc3NhZ2VQb3J0OwogICAgIGNsYXNzIE5vZGU7CkBAIC02Niw3ICs2
NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogICAgIGNsYXNzIFNoYXJlZFdvcmtlcjsKICAgICBjbGFzcyBTaGFyZWRXb3JrZXJHbG9i
YWxTY29wZTsKLSAgICBjbGFzcyBTb3VyY2VCdWZmZXJMaXN0OwogICAgIGNsYXNzIFRleHRUcmFj
azsKICAgICBjbGFzcyBUZXh0VHJhY2tDdWU7CiAgICAgY2xhc3MgVmlkZW9UcmFja0xpc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgppbmRleCBhZWVhOTZhNmNjMmE2
MDI5ODg5NjIxYWNlY2NmOGU0ZmI3YzcwMTUxLi5kYjc3ZWNhMDU1NzExM2U5ZmFhNjY3NDE0ZWUy
YmQ5Y2Q3YTBiZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
QEAgLTMxLDYgKzMxLDcgQEAgUlRDRFRNRlNlbmRlciBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
IFJUQ1BlZXJDb25uZWN0aW9uIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogU2hhcmVkV29ya2Vy
IGNvbmRpdGlvbmFsPVNIQVJFRF9XT1JLRVJTCiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSBjb25k
aXRpb25hbD1TSEFSRURfV09SS0VSUworU291cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NP
VVJDRQogU291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIFNwZWVjaFJl
Y29nbml0aW9uIGNvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSAogU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVMKQEAgLTM5LDcgKzQwLDkgQEAgVGV4
dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9
VklERU9fVFJBQ0sKIFRleHRUcmFja0xpc3QgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFZpZGVv
VHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCitXZWJLaXRNZWRpYVNvdXJjZSBjb25k
aXRpb25hbD1NRURJQV9TT1VSQ0UKIFdlYktpdE5hbWVkRmxvdworV2ViS2l0U291cmNlQnVmZmVy
TGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIFdlYlNvY2tldCBjb25kaXRpb25hbD1XRUJf
U09DS0VUUwogV29ya2VyIGNvbmRpdGlvbmFsPVdPUktFUlMKIFhNTEh0dHBSZXF1ZXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iLmNwcAppbmRleCA3NjQwZjVmNTAzYmYyY2E5YjQ2YmQ4M2ZhODMwNGU2N2Fj
MmNhYTIwLi5jMDM3ODRmNDMwNmJhNmQwNmU5MjcxMGI3YWQzOTZhNTkyNjRmNWU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTUyLDYgKzUyLDMzIEBAIGVudW0gU2xpY2VIaXN0b2dyYW1F
bnVtIHsKIAogfSAvLyBuYW1lc3BhY2UKIAorY2xhc3MgQmxvYlVSTFJlZ2lzdHJ5IDogcHVibGlj
IFVSTFJlZ2lzdHJ5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclVSTChjb25zdCBLVVJMJikgT1ZFUlJJREU7CisKKyAg
ICBzdGF0aWMgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCk7Cit9OworCisKK3ZvaWQgQmxvYlVSTFJl
Z2lzdHJ5OjpyZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBLVVJMJiBw
dWJsaWNVUkwsIFVSTFJlZ2lzdHJhYmxlKiBibG9iKQoreworICAgIEFTU0VSVCgmYmxvYi0+cmVn
aXN0cnkoKSA9PSB0aGlzKTsKKyAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJs
b2JVUkwob3JpZ2luLCBwdWJsaWNVUkwsIHN0YXRpY19jYXN0PEJsb2IqPihibG9iKS0+dXJsKCkp
OworfQorCit2b2lkIEJsb2JVUkxSZWdpc3RyeTo6dW5yZWdpc3RlclVSTChjb25zdCBLVVJMJiB1
cmwpCit7CisgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6dW5yZWdpc3RlckJsb2JVUkwodXJs
KTsKK30KKworVVJMUmVnaXN0cnkmIEJsb2JVUkxSZWdpc3RyeTo6cmVnaXN0cnkoKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQmxvYlVSTFJlZ2lzdHJ5LCBpbnN0YW5jZSwgKCkpOworICAg
IHJldHVybiBpbnN0YW5jZTsKK30KKworCiBCbG9iOjpCbG9iKCkKICAgICA6IG1fc2l6ZSgwKQog
ewpAQCAtMjA2LDQgKzIzMywxMCBAQCBQYXNzUmVmUHRyPEJsb2I+IEJsb2I6OnNsaWNlKGxvbmcg
bG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZQogfQogI2VuZGlm
CiAKK1VSTFJlZ2lzdHJ5JiBCbG9iOjpyZWdpc3RyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEJs
b2JVUkxSZWdpc3RyeTo6cmVnaXN0cnkoKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IGJmNGEyODUxZDNjNWM5MDA1ZGQ1OWIxNGQ3MmUxZjk3
OTk0NTUxZTEuLjIxYjMxYjQxM2FjZjdlNDhjZjkyNWJlOTJmMWJiNTAyY2RkNjRkZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVk
ZSAiVVJMUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQzLDcg
KzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogCi1jbGFzcyBCbG9iIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNv
dW50ZWQ8QmxvYj4geworY2xhc3MgQmxvYiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1Ymxp
YyBVUkxSZWdpc3RyYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8QmxvYj4gewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEJsb2I+IGNyZWF0ZSgpCiAgICAgewpAQCAtNzgsNiArNzksOSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNOb3JtYWxpemVkQ29udGVudFR5cGUoY29uc3Qg
U3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgaXNOb3JtYWxpemVkQ29udGVudFR5cGUoY29uc3Qg
Q1N0cmluZyYpOwogCisgICAgLy8gVVJMUmVnaXN0cmFibGUKKyAgICB2aXJ0dWFsIFVSTFJlZ2lz
dHJ5JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURFOworCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAg
UGFzc1JlZlB0cjxCbG9iPiBzbGljZShsb25nIGxvbmcgc3RhcnQgPSAwLCBsb25nIGxvbmcgZW5k
ID0gc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKSwgY29uc3QgU3RyaW5nJiBj
b250ZW50VHlwZSA9IFN0cmluZygpKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3Bw
CmluZGV4IDM2ZTU1OWVkZjJlNDVhZDE0ODQxYTk4NTViMmViMmMzNDc2MjNmZDguLmFlMzY5Mzgy
NGIzZTk1ODFmMjQxNDBiNWM4MTllMmQzZDI5N2U3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAK
QEAgLTM5LDcyICszOSwyNCBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgotI2luY2x1ZGUgIlRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNv
dXJjZS5oIgotI2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnkuaCIKLSNlbmRpZgotCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgotI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotU3RyaW5nIERPTVVSTDo6Y3JlYXRlT2JqZWN0VVJM
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU291
cmNlKiBzb3VyY2UpCi17Ci0gICAgLy8gU2luY2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIE1l
ZGlhU291cmNlIG9iamVjdHMsIHdlIHNob3VsZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCB8fCAhc291cmNlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBLVVJMIHB1Ymxp
Y1VSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5z
ZWN1cml0eU9yaWdpbigpKTsKLSAgICBpZiAocHVibGljVVJMLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuIFN0cmluZygpOwotCi0gICAgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0cnkoKS5y
ZWdpc3Rlck1lZGlhU291cmNlVVJMKHB1YmxpY1VSTCwgc291cmNlKTsKLSAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkuc291cmNlVVJMcygpLmFkZChwdWJsaWNV
Ukwuc3RyaW5nKCkpOwotCi0gICAgcmV0dXJuIHB1YmxpY1VSTC5zdHJpbmcoKTsKLX0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLVN0cmluZyBET01VUkw6OmNyZWF0ZU9iamVj
dFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNZWRp
YVN0cmVhbSogc3RyZWFtKQotewotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAh
c3RyZWFtKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBLVVJMIHB1YmxpY1VSTCA9
IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0
eU9yaWdpbigpKTsKLSAgICBpZiAocHVibGljVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IFN0cmluZygpOwotCi0gICAgLy8gU2luY2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIFN0cmVh
bSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0KLSAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnJl
Z2lzdGVyTWVkaWFTdHJlYW1VUkwocHVibGljVVJMLCBzdHJlYW0pOwotICAgIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5zdHJlYW1VUkxzKCkuYWRkKHB1YmxpY1VS
TC5zdHJpbmcoKSk7Ci0KLSAgICByZXR1cm4gcHVibGljVVJMLnN0cmluZygpOwotfQotI2VuZGlm
Ci0KIFN0cmluZyBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBCbG9iKiBibG9iKQogewogICAgIGlmICghc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCB8fCAhYmxvYikKICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
IHJldHVybiBjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgYmxvYik7Cit9
CiAKK1N0cmluZyBET01VUkw6OmNyZWF0ZVB1YmxpY1VSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBVUkxSZWdpc3RyYWJsZSogcmVnaXN0cmFibGUpCit7
CiAgICAgS1VSTCBwdWJsaWNVUkwgPSBCbG9iVVJMOjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgaWYgKHB1YmxpY1VSTC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9y
aWdpbigpLCBwdWJsaWNVUkwsIGJsb2ItPnVybCgpKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkuYmxvYlVSTHMoKS5hZGQocHVibGljVVJMLnN0cmluZygp
KTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkucmVnaXN0
ZXJVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgcHVibGljVVJM
LCByZWdpc3RyYWJsZSk7CiAKICAgICByZXR1cm4gcHVibGljVVJMLnN0cmluZygpOwogfQpAQCAt
MTIxLDI5ICs3Myw3IEBAIHZvaWQgRE9NVVJMOjpyZXZva2VPYmplY3RVUkwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uCiAjZW5kaWYKICAgICBNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBy
ZXF1ZXN0KTsKIAotICAgIEhhc2hTZXQ8U3RyaW5nPiYgYmxvYlVSTHMgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkuYmxvYlVSTHMoKTsKLSAgICBpZiAoYmxvYlVS
THMuY29udGFpbnModXJsLnN0cmluZygpKSkgewotICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOwotICAgICAgICBibG9iVVJMcy5yZW1vdmUodXJs
LnN0cmluZygpKTsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIEhhc2hT
ZXQ8U3RyaW5nPiYgc291cmNlVVJMcyA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VS
TE1hbmFnZXIoKS5zb3VyY2VVUkxzKCk7Ci0gICAgaWYgKHNvdXJjZVVSTHMuY29udGFpbnModXJs
LnN0cmluZygpKSkgewotICAgICAgICBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnVu
cmVnaXN0ZXJNZWRpYVNvdXJjZVVSTCh1cmwpOwotICAgICAgICBzb3VyY2VVUkxzLnJlbW92ZSh1
cmwuc3RyaW5nKCkpOwotICAgIH0KLSNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgSGFzaFNldDxTdHJpbmc+JiBzdHJlYW1VUkxzID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
cHVibGljVVJMTWFuYWdlcigpLnN0cmVhbVVSTHMoKTsKLSAgICBpZiAoc3RyZWFtVVJMcy5jb250
YWlucyh1cmwuc3RyaW5nKCkpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBtYWtlIHN1cmUgb2YgdGhp
cyBhc3NlcnRpb24gYmVsb3cuIFJhaXNlIGEgc3BlYyBxdWVzdGlvbiBpZiByZXF1aXJlZC4KLSAg
ICAgICAgLy8gU2luY2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIFN0cmVhbSBvYmplY3RzLCB3
ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgotICAgICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgICAgICBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnVucmVnaXN0
ZXJNZWRpYVN0cmVhbVVSTCh1cmwpOwotICAgICAgICBzdHJlYW1VUkxzLnJlbW92ZSh1cmwuc3Ry
aW5nKCkpOwotICAgIH0KLSNlbmRpZgorICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1Ymxp
Y1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVVJMLmgKaW5kZXggODZlYTVmZjAxMzI1ZjQyNTQxMjgyMzlhYWUwM2Q2MDAzNGY1
NjA0Yi4uYjM1ODI2MzI0MDg0MjQwNmVlODU5MDhlYzA1YTZlZWJkNDA2MDA4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVVSTC5oCkBAIC0zNiw5ICszNiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEJsb2I7Ci1jbGFzcyBNZWRpYVNvdXJjZTsKLWNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFVSTFJlZ2lzdHJhYmxlOwogCiBjbGFzcyBET01V
UkwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01VUkw+IHsKIApAQCAtNTAsMTIgKzQ5LDggQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFN0cmluZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEJsb2IqKTsKICAgICBzdGF0aWMgdm9pZCByZXZva2VPYmplY3RVUkwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYpOwotI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCi0gICAgc3RhdGljIFN0cmluZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIE1lZGlhU291cmNlKik7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
ICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBNZWRpYVN0cmVhbSopOwotI2VuZGlmCisKKyAgICBzdGF0aWMgU3RyaW5nIGNyZWF0ZVB1Ymxp
Y1VSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVVJMUmVnaXN0cmFibGUqKTsKICNlbmRpZgog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsCmluZGV4IGQxMzIxYTBhYzcxMmEwYjEzNGU2YjE3NTBm
OGUwMzhiMGU5NDdlNTMuLjQ2ZDQ3NDg2OTMzYjFkZTc3YmRlMDliYTdlMzM0NDllMWM1ZDZjZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVVSTC5pZGwKQEAgLTM0LDEyICszNCw2IEBACiAgICAgSW50ZXJmYWNl
TmFtZT1VUkwsCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgRE9N
VVJMIHsKLSNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICYmIEVOQUJMRV9NRURJQV9T
T1VSQ0UKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlh
U291cmNlPyBzb3VyY2UpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFN
KSAmJiBFTkFCTEVfTUVESUFfU1RSRUFNCi0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNy
ZWF0ZU9iamVjdFVSTChNZWRpYVN0cmVhbT8gc3RyZWFtKTsKLSNlbmRpZgogICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0g
c3RhdGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwoQmxvYj8gYmxvYik7CiAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0YXRpYyB2b2lkIHJldm9rZU9iamVjdFVSTChE
T01TdHJpbmcgdXJsKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCAzYTlhNmQ5MzJjNmY2MDI3YjNiYjI0YjQwNWVkODRiNWZlZGFhYWY2Li5hOGNkMmRj
NDYzNGM2YTUwZDU5NDM3OTZlOGY1YzRiZTg1MjAzODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTExOSw4ICsxMTksNyBAQAogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSAi
TWVkaWFTb3VyY2VSZWdpc3RyeS5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzc4LDcgKzM3Nyw3IEBAIEhUTUxN
ZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKICAgICAgICAgbV9tZWRpYUNvbnRyb2xs
ZXItPnJlbW92ZU1lZGlhRWxlbWVudCh0aGlzKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
Ci0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAg
Y2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKQpAQCAtODExLDcgKzgxMCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZv
ckxvYWQoKQogICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3Vy
Y2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAK
ICNpZiAhRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCkBAIC0xMDk4LDExICsxMDk3LDE3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IEtVUkwmIGluaXRp
YWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50CiAgICAgQVNTRVJUKCFtX21lZGlhU291cmNlKTsK
IAogICAgIGlmICh1cmwucHJvdG9jb2xJcyhtZWRpYVNvdXJjZUJsb2JQcm90b2NvbCkpCi0gICAg
ICAgIG1fbWVkaWFTb3VyY2UgPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLmxvb2t1
cE1lZGlhU291cmNlKHVybC5zdHJpbmcoKSk7CisgICAgICAgIG1fbWVkaWFTb3VyY2UgPSBIVE1M
TWVkaWFTb3VyY2U6Omxvb2t1cCh1cmwuc3RyaW5nKCkpOwogCiAgICAgaWYgKG1fbWVkaWFTb3Vy
Y2UpIHsKLSAgICAgICAgaWYgKCFtX3BsYXllci0+bG9hZCh1cmwsIG1fbWVkaWFTb3VyY2UpKQor
ICAgICAgICBpZiAobV9tZWRpYVNvdXJjZS0+YXR0YWNoVG9FbGVtZW50KCkpCisgICAgICAgICAg
ICBtX3BsYXllci0+bG9hZCh1cmwsIG1fbWVkaWFTb3VyY2UpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIC8vIEZvcmdldCBvdXIgcmVmZXJlbmNlIHRvIHRoZSBNZWRpYVNvdXJjZSwgc28g
d2UgbGVhdmUgaXQgYWxvbmUKKyAgICAgICAgICAgIC8vIHdoaWxlIHByb2Nlc3NpbmcgcmVtYWlu
ZGVyIG9mIGxvYWQgZmFpbHVyZS4KKyAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UgPSAwOwogICAg
ICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7Cisg
ICAgICAgIH0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIGlmICghbV9wbGF5ZXItPmxvYWQodXJs
LCBjb250ZW50VHlwZSwga2V5U3lzdGVtKSkKQEAgLTE2MDgsNyArMTYxMyw3IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgpCiAgICAgc2NoZWR1bGVFdmVudChldmVudE5h
bWVzKCkuZXJyb3JFdmVudCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHNldFNv
dXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFT
b3VyY2UoKTsKICNlbmRpZgogCiAgICAgLy8gOCAtIFNldCB0aGUgZWxlbWVudCdzIGRlbGF5aW5n
LXRoZS1sb2FkLWV2ZW50IGZsYWcgdG8gZmFsc2UuIFRoaXMgc3RvcHMgZGVsYXlpbmcgdGhlIGxv
YWQgZXZlbnQuCkBAIC0xNjM5LDcgKzE2NDQsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhRW5naW5lRXJyb3IoUGFzc1JlZlB0cjxNZWRpYUVycm9yPiBlcnIpCiAgICAgc2NoZWR1bGVF
dmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAg
IGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAgICAgLy8gNCAtIFNldCB0aGUgZWxlbWVu
dCdzIG5ldHdvcmtTdGF0ZSBhdHRyaWJ1dGUgdG8gdGhlIE5FVFdPUktfRU1QVFkgdmFsdWUgYW5k
IHF1ZXVlIGEKQEAgLTIxOTAsNyArMjE5NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vl
ayhkb3VibGUgdGltZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKICAgICAvLyBBbHdheXMgbm90aWZ5IHRoZSBtZWRpYSBlbmdpbmUgb2YgYSBzZWVrIGlmIHRo
ZSBzb3VyY2UgaXMgbm90IGNsb3NlZC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHNvdXJjZSBpcwog
ICAgIC8vIGFsd2F5cyBpbiBhIGZsdXNoZWQgc3RhdGUgd2hlbiB0aGUgJ3NlZWtpbmcnIGV2ZW50
IGZpcmVzLgotICAgIGlmIChtX21lZGlhU291cmNlICYmIG1fbWVkaWFTb3VyY2UtPnJlYWR5U3Rh
dGUoKSAhPSBNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKQorICAgIGlmIChtX21lZGlhU291
cmNlICYmIG1fbWVkaWFTb3VyY2UtPmlzQ2xvc2VkKCkpCiAgICAgICAgIG5vU2Vla1JlcXVpcmVk
ID0gZmFsc2U7CiAjZW5kaWYKIApAQCAtMjU1NCwxNCArMjU1OSwxMyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U291cmNlU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0
ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xvc2VNZWRpYVNvdXJjZSgpCiB7CiAgICAgaWYg
KCFtX21lZGlhU291cmNlKQotICAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm47CiAKLSAg
ICBtX21lZGlhU291cmNlLT5zZXRSZWFkeVN0YXRlKHN0YXRlKTsKLSAgICBpZiAoc3RhdGUgPT0g
TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSkKLSAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7
CisgICAgbV9tZWRpYVNvdXJjZS0+Y2xvc2UoKTsKKyAgICBtX21lZGlhU291cmNlID0gMDsKIH0K
ICNlbmRpZgogCkBAIC0zODc0LDYgKzM4NzgsMTIgQEAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBI
VE1MTWVkaWFFbGVtZW50OjpidWZmZXJlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikK
ICAgICAgICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworCisjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKKyAgICBpZiAobV9tZWRpYVNvdXJjZSkKKyAgICAgICAgcmV0dXJuIG1fbWVkaWFT
b3VyY2UtPmJ1ZmZlcmVkKCk7CisjZW5kaWYKKwogICAgIHJldHVybiBtX3BsYXllci0+YnVmZmVy
ZWQoKTsKIH0KIApAQCAtNDA5MSw3ICs0MTAxLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1
c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuYWJvcnRF
dmVudCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1l
ZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNl
bmRpZgogCiAgICAgLy8gNCAtIElmIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVhZHlTdGF0ZSBhdHRy
aWJ1dGUgaGFzIGEgdmFsdWUgZXF1YWwgdG8gSEFWRV9OT1RISU5HLCBzZXQgdGhlIApAQCAtNDEz
Niw3ICs0MTQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhUGxheWVyKGlu
dCBmbGFncykKICNpZiAhRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRL
ZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAgICAgbV9wbGF5
ZXIuY2xlYXIoKTsKQEAgLTQ3ODUsNyArNDc5NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
Y3JlYXRlTWVkaWFQbGF5ZXIoKQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBpZiAo
bV9tZWRpYVNvdXJjZSkKLSAgICAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShNZWRp
YVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKTsKKyAgICAgICAgbV9tZWRpYVNvdXJjZS0+Y2xvc2Uo
KTsKICNlbmRpZgogCiAgICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAwYzdiMTRjNTQyZTA2NzAw
ZjczNjFkMGEzYTQ4NzYwZWZkMmQwYWU3Li41OGNhMTgwYTM5NWU4ZTI4MDBkZGY1ZWZmYzk2YWQ5
ZDZiMjFlYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkw
LDcgKzE5MCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAvLyAgTWVk
aWEgU291cmNlLgotICAgIHZvaWQgc2V0U291cmNlU3RhdGUoY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBjbG9zZU1lZGlhU291cmNlKCk7CiAjZW5kaWYgCiAKICNpZiBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQpAQCAtNjc0LDcgKzY3NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fcHJvY2Vzc2lu
Z01lZGlhUGxheWVyQ2FsbGJhY2s7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIFJl
ZlB0cjxNZWRpYVNvdXJjZT4gbV9tZWRpYVNvdXJjZTsKKyAgICBSZWZQdHI8SFRNTE1lZGlhU291
cmNlPiBtX21lZGlhU291cmNlOwogI2VuZGlmCiAKICAgICBtdXRhYmxlIGRvdWJsZSBtX2NhY2hl
ZFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTViYTE0MTQzMmZkYWU3OGU3YWUwYWYzMWNjOWFmNDkwODBkZjJkMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1VSTFJlZ2lzdHJ5KiBIVE1MTWVkaWFTb3VyY2U6OnNfcmVn
aXN0cnkgPSAwOworCit2b2lkIEhUTUxNZWRpYVNvdXJjZTo6c2V0UmVnaXN0cnkoVVJMUmVnaXN0
cnkqIHJlZ2lzdHJ5KQoreworICAgIEFTU0VSVCghc19yZWdpc3RyeSk7CisgICAgc19yZWdpc3Ry
eSA9IHJlZ2lzdHJ5OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NTIzYmY1YjQ3ZmI5ZjA4NmY0NDk4OTg4YmE4MzgyOGRlYmNiYWI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuaApAQCAt
MCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBIVE1MTWVkaWFTb3VyY2VfaAorI2RlZmluZSBIVE1MTWVkaWFT
b3VyY2VfaAorCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU291cmNlUHJpdmF0ZTsK
K2NsYXNzIFRpbWVSYW5nZXM7CisKK2NsYXNzIEhUTUxNZWRpYVNvdXJjZSA6IHB1YmxpYyBVUkxS
ZWdpc3RyYWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgc2V0UmVnaXN0cnkoVVJMUmVn
aXN0cnkqKTsKKyAgICBzdGF0aWMgSFRNTE1lZGlhU291cmNlKiBsb29rdXAoY29uc3QgU3RyaW5n
JiB1cmwpIHsgcmV0dXJuIHNfcmVnaXN0cnkgPyBzdGF0aWNfY2FzdDxIVE1MTWVkaWFTb3VyY2Uq
PihzX3JlZ2lzdHJ5LT5sb29rdXAodXJsKSkgOiAwOyB9CisKKyAgICB2b2lkIHJlZigpIHsgcmVm
SFRNTE1lZGlhU291cmNlKCk7IH0KKyAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZkhUTUxNZWRpYVNv
dXJjZSgpOyB9CisKKyAgICAvLyBDYWxsZWQgd2hlbiBhbiBIVE1MTWVkaWFFbGVtZW50IGlzIGF0
dGVtcHRpbmcgdG8gYXR0YWNoIHRvIHRoaXMgb2JqZWN0LAorICAgIC8vIGFuZCBoZWxwcyBlbmZv
cmNlIGF0dGFjaG1lbnQgdG8gYXQgbW9zdCBvbmUgZWxlbWVudCBhdCBhIHRpbWUuCisgICAgLy8g
SWYgYWxyZWFkeSBhdHRhY2hlZCwgcmV0dXJucyBmYWxzZS4gT3RoZXJ3aXNlLCBtdXN0IGJlIGlu
CisgICAgLy8gJ2Nsb3NlZCcgc3RhdGUsIGFuZCByZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgYXR0
YWNobWVudCBzdWNjZXNzLgorICAgIC8vIFJlYXR0YWNobWVudCBhbGxvd2VkIGJ5IGZpcnN0IGNh
bGxpbmcgY2xvc2UoKSAoZXZlbiBpZiBhbHJlYWR5IGluICdjbG9zZWQnKS4KKyAgICB2aXJ0dWFs
IGJvb2wgYXR0YWNoVG9FbGVtZW50KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRl
QW5kT3BlbihQYXNzT3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xvc2UoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQ2xvc2VkKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVmSFRNTE1lZGlhU291cmNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZkhU
TUxNZWRpYVNvdXJjZSgpID0gMDsKKworICAgIC8vIFVSTFJlZ2lzdHJhYmxlCisgICAgdmlydHVh
bCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAqc19yZWdp
c3RyeTsgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBVUkxSZWdpc3RyeSogc19yZWdpc3RyeTsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1Ymxp
Y1VSTE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kZDdiMDdjMTVhYzM3Y2UxZTQ0M2JmNjgzYTcyNDhmODdjYTVlYzNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNw
cApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE1vdG9yb2xhIE1v
YmlsaXR5IEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQdWJsaWNVUkxN
YW5hZ2VyLmgiCisKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIK
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBQdWJsaWNVUkxNYW5hZ2VyOjpyZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCBjb25zdCBLVVJMJiB1cmwsIFVSTFJlZ2lzdHJhYmxlKiByZWdpc3RyYWJsZSkKK3sKKyAg
ICBSZWdpc3RyeVVSTE1hcDo6aXRlcmF0b3IgZm91bmQgPSBtX3JlZ2lzdHJ5VG9VUkwuYWRkKCZy
ZWdpc3RyYWJsZS0+cmVnaXN0cnkoKSwgVVJMU2V0KCkpLml0ZXJhdG9yOworICAgIGZvdW5kLT5r
ZXktPnJlZ2lzdGVyVVJMKG9yaWdpbiwgdXJsLCByZWdpc3RyYWJsZSk7CisgICAgZm91bmQtPnZh
bHVlLmFkZCh1cmwuc3RyaW5nKCkpOworfQorCit2b2lkIFB1YmxpY1VSTE1hbmFnZXI6OnJldm9r
ZShjb25zdCBLVVJMJiB1cmwpCit7CisgICAgZm9yIChSZWdpc3RyeVVSTE1hcDo6aXRlcmF0b3Ig
aSA9IG1fcmVnaXN0cnlUb1VSTC5iZWdpbigpOyBpICE9IG1fcmVnaXN0cnlUb1VSTC5lbmQoKTsg
KytpKSB7CisgICAgICAgIGlmIChpLT52YWx1ZS5jb250YWlucyh1cmwuc3RyaW5nKCkpKSB7Cisg
ICAgICAgICAgICBpLT5rZXktPnVucmVnaXN0ZXJVUkwodXJsKTsKKyAgICAgICAgICAgIGktPnZh
bHVlLnJlbW92ZSh1cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK3ZvaWQgUHVibGljVVJMTWFuYWdlcjo6Y29udGV4dERlc3Ryb3llZCgpCit7
CisgICAgZm9yIChSZWdpc3RyeVVSTE1hcDo6aXRlcmF0b3IgaSA9IG1fcmVnaXN0cnlUb1VSTC5i
ZWdpbigpOyBpICE9IG1fcmVnaXN0cnlUb1VSTC5lbmQoKTsgKytpKSB7CisgICAgICAgIGZvciAo
VVJMU2V0OjppdGVyYXRvciBqID0gaS0+dmFsdWUuYmVnaW4oKTsgaiAhPSBpLT52YWx1ZS5lbmQo
KTsgKytqKQorICAgICAgICAgICAgaS0+a2V5LT51bnJlZ2lzdGVyVVJMKEtVUkwoUGFyc2VkVVJM
U3RyaW5nLCAqaikpOworICAgIH0KKworICAgIG1fcmVnaXN0cnlUb1VSTC5jbGVhcigpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCmluZGV4IGUxN2U0NmE4ZDZi
YWY3ZGI2Y2E0NWRmNzgyNWIwMTc4NWIyYjZkNGYuLmYwMzhmYjViOWEyODkwMjg5ZjBkZTcwOTA0
ZDZmM2YwMGRmZGM3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJM
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCkBA
IC0yNyw2MyArMjcsMzMgQEAKICNkZWZpbmUgUHVibGljVVJMTWFuYWdlcl9oCiAKICNpZiBFTkFC
TEUoQkxPQikKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAi
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5j
bHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQotI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VS
ZWdpc3RyeS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgS1VSTDsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2Ns
YXNzIFVSTFJlZ2lzdHJ5OworY2xhc3MgVVJMUmVnaXN0cmFibGU7CiAKIGNsYXNzIFB1YmxpY1VS
TE1hbmFnZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzT3duUHRyPFB1YmxpY1VSTE1hbmFnZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBQdWJsaWNVUkxNYW5hZ2VyKTsgfQotICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgp
Ci0gICAgewotICAgICAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGJsb2JVUkxzRW5kID0g
bV9ibG9iVVJMcy5lbmQoKTsKLSAgICAgICAgZm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9y
IGl0ZXIgPSBtX2Jsb2JVUkxzLmJlZ2luKCk7IGl0ZXIgIT0gYmxvYlVSTHNFbmQ7ICsraXRlcikK
LSAgICAgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJMKEtV
UkwoUGFyc2VkVVJMU3RyaW5nLCAqaXRlcikpOwotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICAgICAgSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBzdHJlYW1VUkxzRW5kID0gbV9zdHJl
YW1VUkxzLmVuZCgpOwotICAgICAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXRl
ciA9IG1fc3RyZWFtVVJMcy5iZWdpbigpOyBpdGVyICE9IHN0cmVhbVVSTHNFbmQ7ICsraXRlcikK
LSAgICAgICAgICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1l
ZGlhU3RyZWFtVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAqaXRlcikpOwotI2VuZGlmCi0jaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICAgICAgSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBz
b3VyY2VVUkxzRW5kID0gbV9zb3VyY2VVUkxzLmVuZCgpOwotICAgICAgICBmb3IgKEhhc2hTZXQ8
U3RyaW5nPjo6aXRlcmF0b3IgaXRlciA9IG1fc291cmNlVVJMcy5iZWdpbigpOyBpdGVyICE9IHNv
dXJjZVVSTHNFbmQ7ICsraXRlcikKLSAgICAgICAgICAgIE1lZGlhU291cmNlUmVnaXN0cnk6OnJl
Z2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU291cmNlVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAq
aXRlcikpOwotI2VuZGlmCi0gICAgfQogCi0gICAgSGFzaFNldDxTdHJpbmc+JiBibG9iVVJMcygp
IHsgcmV0dXJuIG1fYmxvYlVSTHM7IH0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIEhh
c2hTZXQ8U3RyaW5nPiYgc3RyZWFtVVJMcygpIHsgcmV0dXJuIG1fc3RyZWFtVVJMczsgfQotI2Vu
ZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBIYXNoU2V0PFN0cmluZz4mIHNvdXJj
ZVVSTHMoKSB7IHJldHVybiBtX3NvdXJjZVVSTHM7IH0KLSNlbmRpZgorICAgIHZvaWQgcmVnaXN0
ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKTsKKyAg
ICB2b2lkIHJldm9rZShjb25zdCBLVVJMJik7CisgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7
CiAKIHByaXZhdGU6Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fYmxvYlVSTHM7Ci0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9zdHJlYW1VUkxzOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9zb3VyY2VV
UkxzOwotI2VuZGlmCisgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZz4gVVJMU2V0OworICAgIHR5
cGVkZWYgSGFzaE1hcDxVUkxSZWdpc3RyeSosIFVSTFNldCA+IFJlZ2lzdHJ5VVJMTWFwOworICAg
IFJlZ2lzdHJ5VVJMTWFwIG1fcmVnaXN0cnlUb1VSTDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMUmVnaXN0cnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVVJMUmVnaXN0cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Njg3YzljOTNmOTJk
MDVhNGVmOWZkMTVmMzMzNWNjMzg1MzJiMGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9VUkxSZWdpc3RyeS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFVSTFJlZ2lz
dHJ5X2gKKyNkZWZpbmUgVVJMUmVnaXN0cnlfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKK2NsYXNzIFNlY3Vy
aXR5T3JpZ2luOworY2xhc3MgVVJMUmVnaXN0cnk7CisKK2NsYXNzIFVSTFJlZ2lzdHJhYmxlIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5VUkxSZWdpc3RyYWJsZSgpIHsgfQorICAgIHZpcnR1YWwg
VVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3QgPSAwOworfTsKKworY2xhc3MgVVJMUmVnaXN0
cnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1YWwg
flVSTFJlZ2lzdHJ5KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5
T3JpZ2luKiwgY29uc3QgS1VSTCYsIFVSTFJlZ2lzdHJhYmxlKikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmKSA9IDA7CisKKyAgICAvLyBUaGlzIGlzIGFu
IG9wdGlvbmFsIEFQSQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cmFibGUqIGxvb2t1cChjb25zdCBT
dHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVJMUmVnaXN0cnlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDNiMGQ2M2Y3
ZTBkZWJkMDEzMGJlYzlkMDlkNzEzODRmNDYwM2ZlNTMuLmI0OTEyMTZkZTFlNmJjZTc3ODIyMjQ1
MTE1NTYwMTk0MjdiYTlkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIkhU
TUxNZWRpYVNvdXJjZS5oIgogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKQEAgLTkzLDcgKzkz
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPikgeyB9CisgICAgdmlydHVhbCB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KSB7IH0KICNlbmRp
ZgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCkgeyB9CiAKQEAgLTM5NCw3ICszOTQsNyBA
QCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgQ29udGVudFR5
cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdAogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
LWJvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBQYXNzUmVmUHRyPE1lZGlh
U291cmNlPiBtZWRpYVNvdXJjZSkKK2Jvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYg
dXJsLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4gbWVkaWFTb3VyY2UpCiB7CiAgICAgbV9t
ZWRpYVNvdXJjZSA9IG1lZGlhU291cmNlOwogICAgIG1fY29udGVudE1JTUVUeXBlID0gIiI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5
MjczNGNhYjUwY2MzMDM0ZTRhY2UyYjMwOGQ1Zjc4NzljYTg1Yzk4Li5jNjYzNTEzNDg4OTJiMjc1
MjYzNGJiZTQ4NzM0NWYyMDczNjNlZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTY2LDEwICs2NiwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFz
cyBHU3RyZWFtZXJHV29ybGQ7Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLWNsYXNzIE1lZGlhU291cmNlOworY2xhc3MgSFRNTE1l
ZGlhU291cmNlOwogI2VuZGlmCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBj
bGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBo
b2xkIGV2ZXJ5IG5hdGl2ZQpAQCAtMjc5LDcgKzI3OSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
bG9hZChjb25zdCBLVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSk7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBib29sIGxvYWQoY29uc3QgS1VS
TCYsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKKyAgICBib29sIGxvYWQoY29uc3QgS1VSTCYs
IFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPik7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbExv
YWQoKTsKIApAQCAtMjg4LDcgKzI4OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlcGFyZVRv
UGxheSgpOwogICAgIHZvaWQgcGxheSgpOwotICAgIHZvaWQgcGF1c2UoKTsgICAgCisgICAgdm9p
ZCBwYXVzZSgpOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICAvLyBSZXByZXNl
bnRzIHN5bmNocm9ub3VzIGV4Y2VwdGlvbnMgdGhhdCBjYW4gYmUgdGhyb3duIGZyb20gdGhlIEVu
Y3J5cHRlZCBNZWRpYSBtZXRob2RzLgpAQCAtMzE1LDcgKzMxNSw3IEBAIHB1YmxpYzoKICAgICBk
b3VibGUgcmF0ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0UmF0ZShkb3VibGUpOwogCi0gICAgYm9v
bCBwcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0OyAgICAKKyAgICBib29sIHByZXNlcnZlc1BpdGNoKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKIAogICAgIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKQEAgLTMzNCw3ICszMzQsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2Fw
dGlvbnNWaXNpYmxlKGJvb2wgY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKTsKIAotICAgIGJvb2wgYXV0
b3BsYXkoKSBjb25zdDsgICAgCisgICAgYm9vbCBhdXRvcGxheSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0QXV0b3BsYXkoYm9vbCk7CiAKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmKTsKQEAgLTUxMiw3ICs1MTIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIFJlZlB0cjxNZWRpYVNvdXJjZT4gbV9tZWRpYVNv
dXJjZTsKKyAgICBSZWZQdHI8SFRNTE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oCmluZGV4IGNiZTgwZTZjMjdmYTdlY2RmNzE3ZjhiMzJkOTE0OTFjZGYz
NmViMmQuLjQ0ODY5ZjRkYWUwZWM0Mzg0ZWMwN2M1NjFlNjJkMmNjYjY1Yzk3N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYgdXJsKSA9IDA7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICB2aXJ0
dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4p
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0
cjxIVE1MTWVkaWFTb3VyY2U+KSA9IDA7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
TG9hZCgpID0gMDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKaW5kZXggMmIxMDc0ZmJjZmIyZTE0Y2E2NWQyZTU5
NTgzM2JlYzViZjZlNTE5NC4uMmRmZDU4YTI0MTJjYTM3NjNhMGNmZGQ4ZWFmYzAyZjE1YTUwNTgx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3Vy
Y2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFT
b3VyY2VQcml2YXRlLmgKQEAgLTUwLDcgKzUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91
YmxlIGR1cmF0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREdXJhdGlvbihkb3VibGUp
ID0gMDsKICAgICBlbnVtIEVuZE9mU3RyZWFtU3RhdHVzIHsgRW9zTm9FcnJvciwgRW9zTmV0d29y
a0Vycm9yLCBFb3NEZWNvZGVFcnJvciB9OwotICAgIHZpcnR1YWwgdm9pZCBlbmRPZlN0cmVhbShF
bmRPZlN0cmVhbVN0YXR1cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtYXJrRW5kT2ZTdHJlYW0o
RW5kT2ZTdHJlYW1TdGF0dXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJl
YW0oKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggZDlkNzE3ODA3ZGM0ZjQ5ODc3ZTQ5ODIwZGQzOGYx
YzE1Njg1YmRmYi4uNTJmMDNmODQ3NzZhMTBiNGIyOGZiNjkwNDcxYjA2NjZlNWZmY2E0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aApAQCAtMTI5LDYgKzEyOSw5IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIE1lZGlhUGxheWVyUHJp
dmF0ZVByaXZhdGVJbnRlcmZhY2Ugb3ZlcnJpZGVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYgdXJsKTsKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgIHZpcnR1YWwg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPikgeyB9
OworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcHJlcGFyZVRvUGxheSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRl
eCBmMjI2Y2RhODc2ZTIzZjcxZWRmNTJmMmQ3MDdiNTY1YjVkYzRlNTQzLi43MmIyMjU0MDFjMDhk
NmM5YTgwZGM2ODVjNjZkNjQyYTEyNzkzYjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
aApAQCAtOTcsNiArOTcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Nj
YW5uaW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIAogICAgIHZvaWQgbG9hZChjb25z
dCBTdHJpbmcmIHVybCk7CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pIHsgfTsK
KyNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogICAgIHZvaWQgbG9hZEludGVybmFsKGNv
bnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHJlc3VtZUxvYWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NSU1FVHlwZVJlZ2lzdHJ5TWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0KaW5kZXggZDIyZTJi
NjYxOTgxYzAwODgzN2RmYmMyYzlhNTMyNjAwNmIyYjRiOC4uODgzNjY0MDUwM2M4ZmQ0YzExZWFk
MTZiOWQ5NDU1MDYyMTgxMGQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0KQEAgLTczLDQgKzczLDExIEBAIGJvb2wgTUlNRVR5
cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
K2Jvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2Vu
ZGlmCisKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2Vi
dWZmZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiZWY4MmZhZDI0M2Y0ZTdmYmI3ODU2MDE4
YzhkNzg3YTk1NzRmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorIAorUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGgg
ZW1wdHkgdHlwZSAKK1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIHVuc3VwcG9ydGVk
IHR5cGUgCitQQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBWb3JiaXMgYW5kIFZQOCAK
K1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFy
YXRlIFNvdXJjZUJ1ZmZlcnMgCitGQUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMg
YW5kIEguMjY0IGFzc2VydF90cnVlOiB2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSxtcDRh
LjQwLjIiIGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBUZXN0IGFk
ZFNvdXJjZUJ1ZmZlcigpIHdpdGggQUFDIGFuZCBILjI2NCBpbiBzZXBhcmF0ZSBTb3VyY2VCdWZm
ZXJzIGFzc2VydF90cnVlOiB2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSIgaXMgc3VwcG9y
dGVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtYWRkc291cmNlYnVmZmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAxMzRiZWI3YjNkNmE0YjkyOTFj
NjM4NDMyY2YyYjQ2NGIzNTZiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci5odG1s
CkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpz
Ij48L3NjcmlwdD4KKworICAgICAgICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgIG1l
ZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkK
KyAgICAgICAgICB7CisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRBY2Nlc3NF
cnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIoIiIpOyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRk
U291cmNlQnVmZmVyKCkgdGhyZXcgYW4gZXhjZXB0aW9uIHdoZW4gcGFzc2VkIGFuIGVtcHR5IHN0
cmluZy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3Qg
YWRkU291cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0eXBlIik7CisKKyAgICAgICAgICBtZWRpYXNv
dXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAg
ICAgICAgeworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRT
b3VyY2VCdWZmZXIoImludmFsaWRUeXBlIik7IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJhZGRTb3VyY2VCdWZmZXIoKSB0aHJldyBhbiBleGNlcHRpb24gZm9yIGFuIHVuc3VwcG9ydGVk
IHR5cGUuIik7CisgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgIH0sICJUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZSIpOworCisKKyAgICAgICAg
ICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3Vy
Y2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgbWltZXR5cGUgPSAndmlkZW8vd2Vi
bTtjb2RlY3M9InZwOCx2b3JiaXMiJzsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRp
YVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobWltZXR5cGUpLCBtaW1ldHlwZSArICIgaXMgc3VwcG9y
dGVkIik7CisKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFk
ZFNvdXJjZUJ1ZmZlcihtaW1ldHlwZSk7CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJj
ZUJ1ZmZlciAhPSBudWxsLCAiTmV3IFNvdXJjZUJ1ZmZlciByZXR1cm5lZCIpOworICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJjZUJ1
ZmZlciwgIlNvdXJjZUJ1ZmZlciBpcyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7Cisg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVy
c1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVmZmVyIGlzIGluIG1lZGlhU291cmNlLmFjdGl2
ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAg
fSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBWb3JiaXMgYW5kIFZQOCIpOworCisgICAg
ICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlh
U291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHZpZGVvTWltZXR5cGUgPSAn
dmlkZW8vd2VibTtjb2RlY3M9InZwOCInOworICAgICAgICAgICAgICB2YXIgYXVkaW9NaW1ldHlw
ZSA9ICdhdWRpby93ZWJtO2NvZGVjcz0idm9yYmlzIic7CisKKyAgICAgICAgICAgICAgYXNzZXJ0
X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKHZpZGVvTWltZXR5cGUpLCB2aWRlb01p
bWV0eXBlICsgIiBpcyBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVk
aWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKGF1ZGlvTWltZXR5cGUpLCBhdWRpb01pbWV0eXBlICsg
IiBpcyBzdXBwb3J0ZWQiKTsKKworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQSA9IG1l
ZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcih2aWRlb01pbWV0eXBlKTsKKyAgICAgICAgICAgICAg
dmFyIHNvdXJjZUJ1ZmZlckIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoYXVkaW9NaW1l
dHlwZSk7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVm
ZmVyc1swXSwgc291cmNlQnVmZmVyQSwgInNvdXJjZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3VyY2Uu
c291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNl
LmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJjZUJ1ZmZlckEsICJzb3VyY2VCdWZmZXJBIGlz
IGluIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJCLCAi
c291cmNlQnVmZmVyQiBpcyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSwg
c291cmNlQnVmZmVyQiwgInNvdXJjZUJ1ZmZlckIgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291
cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAi
VGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFyYXRlIFNv
dXJjZUJ1ZmZlcnMiKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVz
dCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAg
IHZhciBtaW1ldHlwZSA9ICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSxtcDRhLjQwLjIi
JzsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0
ZWQobWltZXR5cGUpLCBtaW1ldHlwZSArICIgaXMgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAg
ICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtaW1ldHlw
ZSk7CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlciAhPSBudWxsLCAiTmV3
IFNvdXJjZUJ1ZmZlciByZXR1cm5lZCIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1l
ZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJjZUJ1ZmZlciwgIlNvdXJjZUJ1ZmZlciBp
cyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAi
U291cmNlQnVmZmVyIGlzIGluIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAg
ICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVm
ZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0Iik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0
KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgewor
ICAgICAgICAgICAgICB2YXIgdmlkZW9NaW1ldHlwZSA9ICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMx
LjRENDAwMSInOworICAgICAgICAgICAgICB2YXIgYXVkaW9NaW1ldHlwZSA9ICdhdWRpby9tcDQ7
Y29kZWNzPSJtcDRhLjQwLjIiJzsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQodmlkZW9NaW1ldHlwZSksIHZpZGVvTWltZXR5cGUgKyAiIGlz
IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5
cGVTdXBwb3J0ZWQoYXVkaW9NaW1ldHlwZSksIGF1ZGlvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRl
ZCIpOworCisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRk
U291cmNlQnVmZmVyKHZpZGVvTWltZXR5cGUpOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVm
ZmVyQiA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihhdWRpb01pbWV0eXBlKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzWzBdLCBzb3Vy
Y2VCdWZmZXJBLCAic291cmNlQnVmZmVyQSBpcyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNl
QnVmZmVyc1swXSwgc291cmNlQnVmZmVyQSwgInNvdXJjZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3Vy
Y2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1l
ZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMV0sIHNvdXJjZUJ1ZmZlckIsICJzb3VyY2VCdWZmZXJC
IGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJC
LCAic291cmNlQnVmZmVyQiBpcyBpbiBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzIik7
CisgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJj
ZUJ1ZmZlcigpIHdpdGggQUFDIGFuZCBILjI2NCBpbiBzZXBhcmF0ZSBTb3VyY2VCdWZmZXJzIik7
CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVu
ZC1idWZmZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWIzY2VlNjJjMTkzZmM4ZTQ4YzIzZWFkODIxMGYyZDIyN2Y1YmE2YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWFwcGVuZC1idWZmZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorIAorUEFTUyBU
ZXN0IFNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoKSBldmVudCBkaXNwYXRjaGluZy4gCitQQVNT
IFRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBh
cHBlbmRCdWZmZXIoKS4gCitQQVNTIFRlc3QgU291cmNlQnVmZmVyLmFib3J0KCkgY2FsbCBkdXJp
bmcgYSBwZW5kaW5nIGFwcGVuZEJ1ZmZlcigpLiAKK1BBU1MgVGVzdCBTb3VyY2VCdWZmZXIuYXBw
ZW5kQnVmZmVyKCkgdHJpZ2dlcmluZyBhbiAnZW5kZWQnIHRvICdvcGVuJyB0cmFuc2l0aW9uLiAK
K1BBU1MgVGVzdCBNZWRpYVNvdXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIoKSBjYWxsIGR1cmluZyBh
IHBlbmRpbmcgYXBwZW5kQnVmZmVyKCkuIAorUEFTUyBUZXN0IGFwcGVuZGluZyBhbiBlbXB0eSBB
cnJheUJ1ZmZlclZpZXcuIAorUEFTUyBUZXN0IGFwcGVuZGluZyBhbiBlbXB0eSBBcnJheUJ1ZmZl
ci4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNjg1YjQwN2I3N2Q5OWY1Mjc3NzY5MDNlNTg2ZTZmYTBiMzMyMDQxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci5odG1sCkBAIC0wLDAgKzEsMTk5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJl
bD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdCA9IGZ1bmN0
aW9uKGNhbGxiYWNrLCBkZXNjcmlwdGlvbikKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIG1l
ZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdmFyIG1lZGlhVHlwZSA9ICd2aWRl
by93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInOworICAgICAgICAgICAgICAgICAgdmFyIG1lZGlh
VVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC53ZWJtJzsKKyAg
ICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VC
dWZmZXIobWVkaWFUeXBlKTsKKyAgICAgICAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5sb2Fk
QmluYXJ5RGF0YSh0ZXN0LCBtZWRpYVVSTCwgZnVuY3Rpb24obWVkaWFEYXRhKQorICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRlc3QsIG1lZGlhRWxl
bWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKTsKKworICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgIH0sIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICB9
OworCisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBt
ZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJy
b3InKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVw
ZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVj
dEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAg
ICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBw
ZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1l
ZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0
aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAgICB0ZXN0
LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5n
IGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1
ZmZlcigpIGV2ZW50IGRpc3BhdGNoaW5nLiIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9h
ZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3Vy
Y2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZmFp
bE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4
cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIp
OworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIs
ICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3Vy
Y2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRy
dWUiKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIs
CisgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZl
cihtZWRpYURhdGEpOyB9LAorICAgICAgICAgICAgICAgICAgImFwcGVuZEJ1ZmZlcigpIHRocm93
cyBhbiBleGNlcHRpb24gdGhlcmUgaXMgYSBwZW5kaW5nIGFwcGVuZC4iKTsKKworICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1
dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRz
KGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIp
OworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgIH0sICJUZXN0IFNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoKSBjYWxsIGR1cmluZyBh
IHBlbmRpbmcgYXBwZW5kQnVmZmVyKCkuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2Fk
ZGF0YV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJj
ZUJ1ZmZlciwgbWVkaWFEYXRhKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWls
T25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworCisgICAgICAgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7
CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAiYWJvcnQiLCAi
QXBwZW5kIGFib3J0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNl
QnVmZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBlbmRlZC4iKTsKKyAgICAgICAgICAgICAgc291
cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOworCisgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVl
Iik7CisKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFib3J0KCk7CisKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0
ZSBpcyBmYWxzZSIpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRz
KGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIp
OworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgIH0sICJUZXN0IFNvdXJjZUJ1ZmZlci5hYm9ydCgpIGNhbGwgZHVyaW5nIGEgcGVuZGlu
ZyBhcHBlbmRCdWZmZXIoKS4iKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX2xvYWRkYXRhX3Rl
c3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgc291cmNlQnVmZmVy
LCBtZWRpYURhdGEpCisgICAgICAgICAgeworICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50
KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7CisKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVu
dChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIsICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAg
ICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBwZW5k
IHN1Y2Nlc3MuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVy
LCAidXBkYXRlZW5kIiwgIkFwcGVuZCBlbmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNlQnVm
ZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShz
b3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisg
ICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51
cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworCisgICAgICAgICAgICAg
ICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAic291cmNlZW5kZWQiLCAiTWVkaWFT
b3VyY2Ugc291cmNlZW5kZWQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNl
LmVuZE9mU3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291
cmNlLnJlYWR5U3RhdGUsICJlbmRlZCIsICJNZWRpYVNvdXJjZSByZWFkeVN0YXRlIGlzICdlbmRl
ZCciKTsKKyAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhw
ZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJlbmRlZCIsICJNZWRpYVNv
dXJjZSByZWFkeVN0YXRlIGlzICdlbmRlZCciKTsKKworICAgICAgICAgICAgICAgICAgdGVzdC5l
eHBlY3RFdmVudChtZWRpYVNvdXJjZSwgInNvdXJjZW9wZW4iLCAiTWVkaWFTb3VyY2Ugc291cmNl
b3BlbiBldmVudCIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VC
dWZmZXIsICJ1cGRhdGVzdGFydCIsICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNj
ZXNzLiIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIs
ICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICAgICAgc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOworCisgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJvcGVuIiwgIk1lZGlhU291cmNlIHJl
YWR5U3RhdGUgaXMgJ29wZW4nIik7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3Vy
Y2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhm
dW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgIm9wZW4iLCAiTWVkaWFTb3VyY2UgcmVhZHlTdGF0
ZSBpcyAnb3BlbiciKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZm
ZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAg
ICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVz
dCBTb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKCkgdHJpZ2dlcmluZyBhbiAnZW5kZWQnIHRvICdv
cGVuJyB0cmFuc2l0aW9uLiIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVz
dChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIs
IG1lZGlhRGF0YSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQo
bWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50
KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAg
ICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgImFib3J0IiwgIkFwcGVuZCBh
Ym9ydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwg
InVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZl
ci5hcHBlbmRCdWZmZXIobWVkaWFEYXRhKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShz
b3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVm
ZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAg
ICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgInJl
bW92ZXNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIG1lZGlh
U291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXIpOworCisgICAgICAgICAgICAg
IGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUg
aXMgZmFsc2UiKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVF
cnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgc291cmNlQnVmZmVyLmFwcGVu
ZEJ1ZmZlcihtZWRpYURhdGEpOyB9LAorICAgICAgICAgICAgICAgICAgImFwcGVuZEJ1ZmZlcigp
IHRocm93cyBhbiBleGNlcHRpb24gYmVjYXVzZSBpdCBpc24ndCBhdHRhY2hlZCB0byB0aGUgbWVk
aWFTb3VyY2UgYW55bW9yZS4iKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3Rl
ZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFz
c2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMg
ZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICB9LCAiVGVzdCBNZWRpYVNvdXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIoKSBj
YWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVmZmVyKCkuIik7CisKKyAgICAgICAgICBtZWRp
YXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisg
ICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2Uu
YWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworCisgICAg
ICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAi
QXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNl
QnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAgICB0ZXN0
LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7
CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobmV3IFVpbnQ4QXJyYXko
MCkpOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywg
InVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0
Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0
cmlidXRlIGlzIGZhbHNlIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgYXBwZW5kaW5nIGFuIGVtcHR5IEFycmF5
QnVmZmVyVmlldy4iKTsKKworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0
ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNv
dXJjZVV0aWwuVklERU9fT05MWV9UWVBFKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAg
ICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBl
bmQgc3VjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZm
ZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VC
dWZmZXIuYXBwZW5kQnVmZmVyKG5ldyBBcnJheUJ1ZmZlcigwKSk7CisKKyAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlz
IHRydWUiKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5j
dGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShz
b3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAg
ICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICB9LCAiVGVzdCBhcHBlbmRpbmcgYW4gZW1wdHkgQXJyYXlCdWZmZXIuIik7CisKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtYnVmZmVyZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1OWI1NDExZGU5NGU5Yzg3
ODQxNmU4NzMxMzNjM2JhYjJmNTU5NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACisgCitQQVNTIERlbXV4ZWQgY29udGVudCB3aXRoIGRpZmZl
cmVudCBsZW5ndGhzIAorUEFTUyBNdXhlZCB0cmFja3Mgd2l0aCBkaWZmZXJlbnQgbGVuZ3RocyAK
K1BBU1MgRGVtdXhlZCBjb250ZW50IHdpdGggYW4gZW1wdHkgYnVmZmVyZWQgcmFuZ2Ugb24gb25l
IFNvdXJjZUJ1ZmZlciAKK1BBU1MgTXV4ZWQgY29udGVudCBlbXB0eSBidWZmZXJlZCByYW5nZXMu
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1idWZmZXJlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI4
MzhhMDY0N2IxOTNiYjFkMmU0YmNhNjc3Zjc4OGJjYjIzZTEwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVm
ZmVyZWQuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291
cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgZnVuY3Rpb24gbWVkaWFTb3VyY2VEZW11eGVkVGVzdChjYWxsYmFjaywgZGVzY3Jp
cHRpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIG1hbmlmZXN0RmlsZW5h
bWVBID0gIndlYm0vdGVzdC1hLTEyOGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiI7CisgICAg
ICAgICAgICAgICAgdmFyIG1hbmlmZXN0RmlsZW5hbWVCID0gIndlYm0vdGVzdC12LTEyOGstMzIw
eDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIjsKKyAgICAgICAgICAgICAgICBtZWRpYXNv
dXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJv
cicpOworICAgICAgICAgICAgICAgICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAn
ZW5kZWQnKTsKKworICAgICAgICAgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5p
ZmVzdEFuZERhdGEodGVzdCwgbWFuaWZlc3RGaWxlbmFtZUEsIGZ1bmN0aW9uKHR5cGVBLCBkYXRh
QSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgTWVkaWFT
b3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3QsIG1hbmlmZXN0RmlsZW5hbWVCLCBm
dW5jdGlvbih0eXBlQiwgZGF0YUIpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHR5cGVBKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIo
dHlwZUIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVycy5sZW5ndGgsIDIpOworCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FsbGJhY2sodGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgZGF0
YUEsIGRhdGFCKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB9LCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9
OworCisgICAgICAgICAgICBmdW5jdGlvbiBhcHBlbmREYXRhKHRlc3QsIG1lZGlhU291cmNlLCBk
YXRhQSwgZGF0YUIsIGNhbGxiYWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZh
ciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXTsKKyAg
ICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFjdGl2ZVNvdXJj
ZUJ1ZmZlcnNbMV07CisKKyAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1
ZmZlckEsICJ1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJj
ZUJ1ZmZlckEsICJ1cGRhdGVlbmQiKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXJBLmFw
cGVuZEJ1ZmZlcihkYXRhQSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNv
dXJjZUJ1ZmZlckIsICJ1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50
KHNvdXJjZUJ1ZmZlckIsICJ1cGRhdGVlbmQiKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VCdWZm
ZXJCLmFwcGVuZEJ1ZmZlcihkYXRhQik7CisKKyAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JF
eHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gdGltZVJhbmdlc1RvU3RyaW5nKHJhbmdlcykKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgIHZhciBzID0gInsiOworICAgICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAg
ICBzICs9ICIgWyIgKyByYW5nZXMuc3RhcnQoaSkudG9GaXhlZCgzKSArICIsICIgKyByYW5nZXMu
ZW5kKGkpLnRvRml4ZWQoMykgKyAiKSI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICByZXR1cm4gcyArICIgfSI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG9iaiwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHZhciBhY3R1YWwgPSB0aW1lUmFuZ2VzVG9TdHJpbmco
b2JqLmJ1ZmZlcmVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbCwgZXhw
ZWN0ZWQsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVkaWFT
b3VyY2VEZW11eGVkVGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNl
LCBkYXRhQSwgZGF0YUIpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmREYXRhKHRlc3QsIG1lZGlh
U291cmNlLCBkYXRhQSwgZGF0YUIsIGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNv
dXJjZUJ1ZmZlcnNbMF0sICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZl
U291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVx
dWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdLCAieyBbMC4wMDAsIDIuMDAx
KSB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0iKTsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyBbMC4wMDAsIDIu
MDAxKSB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAg
IG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAu
MDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2
ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IFswLjAwMCwgMi4wMDEpIH0iLCAibWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJl
ZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFFbGVtZW50
LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiRGVtdXhlZCBjb250ZW50IHdpdGggZGlmZmVy
ZW50IGxlbmd0aHMiKTsKKworICAgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0
ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIG1lZGlhRWxlbWVudC5wYXVzZSgpOworICAgICAgICAgICAgICAgIHRlc3QuZmFpbE9u
RXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKyAgICAgICAgICAgICAgICB0ZXN0LmVuZE9u
RXZlbnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsKKworICAgICAgICAgICAgICAgIE1lZGlhU291
cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0YSh0ZXN0LCAid2VibS90ZXN0LWF2LTM4NGstNDQx
MDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIiwgZnVuY3Rpb24odHlw
ZSwgZGF0YSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHZhciBzb3Vy
Y2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIik7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5k
Iik7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZGF0YSk7
CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rp
b24oKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBb
MC4wMDAsIDIuMDA0KSB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVu
dCwgInsgWzAuMDAwLCAyLjAwNCkgfSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAg
ICAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZl
U291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3Rp
dmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZm
ZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFFbGVt
ZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0sICJNdXhlZCB0cmFja3Mgd2l0aCBkaWZmZXJlbnQgbGVuZ3RocyIpOworCisKKyAgICAgICAg
ICAgIG1lZGlhU291cmNlRGVtdXhlZFRlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBt
ZWRpYVNvdXJjZSwgZGF0YUEsIGRhdGFCKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kRGF0YSh0
ZXN0LCBtZWRpYVNvdXJjZSwgZGF0YUEsIGRhdGFCLnN1YmFycmF5KDAsIDMxOCksIGZ1bmN0aW9u
KCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVk
RXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IFswLjAwMCwgMi4w
MjMpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VC
dWZmZXJzWzFdLCAieyB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0iKTsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAi
eyB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgIG1l
ZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVm
ZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAw
LCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNv
dXJjZUJ1ZmZlcnNbMV0sICJ7IH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sx
XSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1l
bnQsICJ7IH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiRGVt
dXhlZCBjb250ZW50IHdpdGggYW4gZW1wdHkgYnVmZmVyZWQgcmFuZ2Ugb24gb25lIFNvdXJjZUJ1
ZmZlciIpOworCisgICAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1l
ZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
bWVkaWFFbGVtZW50LnBhdXNlKCk7CisgICAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudCht
ZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICAgICAgICAgIHRlc3QuZW5kT25FdmVudCht
ZWRpYUVsZW1lbnQsICdlbmRlZCcpOworCisgICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGls
LmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3QsICJ3ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFj
aC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24iLCBmdW5jdGlvbih0eXBlLCBkYXRh
KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZl
ciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcih0eXBlKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiKTsKKyAg
ICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhLnN1YmFycmF5
KDAsIDQwNTIpKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2
ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZl
cnNbMF0sICJ7IH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAi
eyB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgICAg
ICBtZWRpYVNvdXJjZS5lbmRPZlN0cmVhbSgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAi
eyB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgfSIsICJt
ZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSwgIk11eGVkIGNvbnRlbnQgZW1wdHkgYnVmZmVyZWQgcmFuZ2VzLiIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY2xvc2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODVjZTFiZDkzODc3ZDU3
OWYzNDJjZTczNzIxYmNhZGMyM2QyZWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKKyAKK1BBU1MgVGVzdCBhdHRyaWJ1dGUgdmFsdWVzIG9uIGEg
Y2xvc2VkIE1lZGlhU291cmNlIG9iamVjdC4gCitQQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkg
d2hpbGUgY2xvc2VkLiAKK1BBU1MgVGVzdCByZW1vdmVTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9z
ZWQuIAorUEFTUyBUZXN0IGVuZE9mU3RyZWFtKCkgd2hpbGUgY2xvc2VkLiAKK1BBU1MgVGVzdCBz
ZXR0aW5nIGR1cmF0aW9uIHdoaWxlIGNsb3NlZC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNsb3NlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xv
c2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMzFkZmQ0MDc1MWFjZjA1MTYzZDliZTZkZDQ3ZjhlNjlj
ZWIxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWNsb3NlZC5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxp
bmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mn
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpCisgICAgICAgICAg
eworICAgICAgICAgICAgICB2YXIgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0
aCwgMCwgInNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgImFjdGl2ZVNv
dXJjZUJ1ZmZlcnMgaXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRp
YVNvdXJjZS5yZWFkeVN0YXRlLCAiY2xvc2VkIiwgInJlYWR5U3RhdGUgaXMgJ2Nsb3NlZCciKTsK
KyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTnVtYmVyLmlzTmFOKG1lZGlhU291cmNlLmR1cmF0
aW9uKSwgImR1cmF0aW9uIGlzIE5hTiIpOworICAgICAgICAgIH0sICJUZXN0IGF0dHJpYnV0ZSB2
YWx1ZXMgb24gYSBjbG9zZWQgTWVkaWFTb3VyY2Ugb2JqZWN0LiIpOworCisgICAgICAgICAgdGVz
dChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNl
ID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFs
aWRTdGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIoJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgiJyk7IH0sCisgICAgICAg
ICAgICAgICAgICAiYWRkU291cmNlQnVmZmVyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGNs
b3NlZC4iKTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9z
ZWQuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlh
RWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgVk9S
QklTX1RZUEUgPSAndmlkZW8vd2VibTtjb2RlY3M9InZvcmJpcyInOworICAgICAgICAgICAgICB2
YXIgQUFDX1RZUEUgPSAndmlkZW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIic7CisgICAgICAgICAg
ICAgIHZhciBtZWRpYVR5cGUgPSBNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoVk9SQklTX1RZ
UEUpID8gVk9SQklTX1RZUEUgOiBBQUNfVFlQRTsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1
ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtZWRpYVR5cGUpOworCisgICAgICAg
ICAgICAgIC8vIFNldHVwIGEgaGFuZGxlciB0byBydW4gd2hlbiB0aGUgTWVkaWFTb3VyY2UgY2xv
c2VzLgorICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCdzb3VyY2Vj
bG9zZScsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uIChldmVudCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJz
Lmxlbmd0aCwgMCwgInNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycy5sZW5ndGgsIDAs
ICJhY3RpdmVTb3VyY2VCdWZmZXJzIGlzIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJjbG9zZWQiLCAicmVhZHlTdGF0ZSBp
cyAnY2xvc2VkJyIpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiTm90Rm91bmRF
cnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlhU291cmNlLnJl
bW92ZVNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXIpOyB9LAorICAgICAgICAgICAgICAgICAgICAg
ICJyZW1vdmVTb3VyY2VCdWZmZXIoKSB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gY2xvc2VkLiIp
OworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pKTsKKwor
ICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBNZWRpYVNvdXJjZSB0byBjbG9zZS4KKyAgICAg
ICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9ICIiOworICAgICAgICAgIH0sICJUZXN0IHJlbW92
ZVNvdXJjZUJ1ZmZlcigpIHdoaWxlIGNsb3NlZC4iKTsKKworICAgICAgICAgIHRlc3QoZnVuY3Rp
b24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBN
ZWRpYVNvdXJjZSgpOworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVF
cnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbWVkaWFTb3VyY2UuZW5kT2ZT
dHJlYW0oKTsgfSwKKyAgICAgICAgICAgICAgICAgICJlbmRPZlN0cmVhbSgpIHRocm93cyBhbiBl
eGNlcHRpb24gd2hlbiBjbG9zZWQuIik7CisgICAgICAgICAgfSwgIlRlc3QgZW5kT2ZTdHJlYW0o
KSB3aGlsZSBjbG9zZWQuIik7CisKKworICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgp
OworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbWVkaWFTb3VyY2UuZHVyYXRpb24gPSAxMDsgfSwK
KyAgICAgICAgICAgICAgICAgICJTZXR0aW5nIGR1cmF0aW9uIHRocm93cyBhbiBleGNlcHRpb24g
d2hlbiBjbG9zZWQuIik7CisgICAgICAgICAgfSwgIlRlc3Qgc2V0dGluZyBkdXJhdGlvbiB3aGls
ZSBjbG9zZWQuIik7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYS1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LWEtYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJkZWYwM2RlYzZl
ZDcwZGY3ZDJlOWNlODcwNWFkMjlkYzBlNTY5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2UtbXA0LWEtYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRl
c3RzIG1wNCBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4gYXNzZXJ0X3RydWU6IGF1ZGlvL21w
NDtjb2RlY3M9Im1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJpdHJhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2UtbXA0LWEtYml0cmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NDBhNjQ4ODI5ZDA2NDlhNmY1MjA1
YWY1ZGNhODgxYzYzNzE3ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJp
dHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3Vy
Y2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhLTEyOGst
NDQxMDBIei0xY2giLCAiYS0xOTJrLTQ0MTAwSHotMWNoIiwgIlRlc3RzIG1wNCBhdWRpby1vbmx5
IGJpdHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtYXVkaW8tYml0cmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45ZjdmMDYwYTMzN2FlZDI4OWVmYWNlYmU3ZDcxOWI3Mzg2NzUyYjMyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtYXVkaW8tYml0cmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCBhdWRpbyBiaXRyYXRlIGNoYW5nZXMg
aW4gbXVsdGlwbGV4ZWQgY29udGVudC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2
YzEuNEQ0MDAxLG1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25m
aWctY2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJkMmI0ZDBm
YWY1NjBkMmIxYTQ2YmFlOThiODMxYjk2NDJhYmZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LWF2LWF1ZGlvLWJpdHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5n
ZVRlc3QoIm1wNCIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAi
YXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCBhdWRp
byBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9z
Y3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQt
YXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ3YjYxZTE5MzkwOTE1YjQ5YTI1ZjNjNDZlYmJmOTBk
NDEwNjNiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCBmcmFtZSBzaXpl
IGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtj
b2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFtZXNpemUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NWU4YWUx
ZDU3YjM2MDRiOTVjMGVkYTBhNWFlODYzZTcyNGQ2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hdi1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3Nz
Ij4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRl
c3QoIm1wNCIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiYXYt
Mzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCBmcmFtZSBz
aXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlk
ZW8tYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDYwOWJlMTk0YTc3MGNlOTBhYWM3Zjg2MTQ3NGMz
NzEwYjBlYjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0
cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2aWRl
byBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4gYXNzZXJ0X3RydWU6IHZp
ZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRl
by1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzJkZjlkMGNlMmQzOTIwNDAxNjM3NjMzMmUxMjdiZGY1MWU4NDc1YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LXZpZGVvLWJpdHJhdGUuaHRtbApAQCAtMCww
ICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRp
YVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0
ODAtMzBmcHMtMTBrZnIiLCAiYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2Zy
IiwgIlRlc3RzIG1wNCB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVu
dC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0
LXYtYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFmNzE0ZWMwZTQ5NTc5Y2JkYmU1
NmQyNjFiYTVmOTgxZjc5NmM0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYt
Yml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2
aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9
ImF2YzEuNEQ0MDAxIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQt
di1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYyZDc2OTYzY2E2YWI1NTQwNGVmNzI3NTQ3MDJi
YmMwZmQ0MWU5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS5o
dG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGls
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgInYtMTI4ay0zMjB4MjQw
LTMwZnBzLTEwa2ZyIiwgInYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCB2
aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxMGVjYjVmZTE0YjY3MDk0NmNjMDc1YjcxMDQxZmVmODI4OGQ2M2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2aWRlby1vbmx5IGZyYW1lIHJhdGUgY2hhbmdl
cy4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIiBpcyBzdXBwb3J0
ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0
LXYtZnJhbWVyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNhMmEzNTVmOGU1N2ZlMmIzNDI5YjYxZDc3MWQ5YjUyMDEwNzM5YTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNl
Q29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgInYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnIiLCAidi0x
MjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgcmF0
ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkwZDRlYTVm
YTE2NjA0OWQ3ZmY2ZDE2NTU2NjkwYmMzNjljNjJmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZB
SUwgVGVzdHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTog
dmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEiIGlzIHN1cHBvcnRlZC4gZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRiZjk0Y2I4
YmFkNTA1Zjc5YzJlMzA2ZDViMDA0YWQ3ZTBkYWJmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LXYtZnJhbWVzaXplLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+
CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0
KCJtcDQiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAidi0xMjhrLTY0MHg0ODAtMzBm
cHMtMTBrZnIiLCAiVGVzdHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiIpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLXdlYm0tYS1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJp
dHJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNGJlY2E5NWQzNTk3OTEwZTk3NTNlOTMy
YTc1NWUzNGMxZjRmZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYS1iaXRy
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2VibSBhdWRp
by1vbmx5IGJpdHJhdGUgY2hhbmdlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1h
LWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZmUyM2Q0N2QwMDU1Yjk1NDY3N2IwZTZhNDNlNDNkMTdkZjRiMmJiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS13ZWJtLWEtYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmln
Q2hhbmdlVGVzdCgid2VibSIsICJhLTEyOGstNDQxMDBIei0xY2giLCAiYS0xOTJrLTQ0MTAwSHot
MWNoIiwgIlRlc3RzIHdlYm0gYXVkaW8tb25seSBiaXRyYXRlIGNoYW5nZXMuIik7CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Ut
d2VibS1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1h
dWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGU2NGQ3NThmOGIyYTNiMjU5
YzcxNTQxZWQyYWQzMzllNTk5MDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJt
LWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBU
ZXN0cyB3ZWJtIGF1ZGlvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE5OGM3MWFi
YmQ5NmE2ZmYwMTczYmIwYjVkYzE1Y2I3MmE0YjM3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFu
Z2VUZXN0KCJ3ZWJtIiwgImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIs
ICJhdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSBh
dWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13
ZWJtLWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVz
aXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzRlMGIxY2M3NTEwMGVjZGRhMTAxYmNiNjc4
MWU0OGFlMDkwODRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1l
c2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gZnJh
bWUgc2l6ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25m
aWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJh
bWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjMzNmMWVlYTkwNTU1NGZhNWQ1NzY2OTM4OGIyNDQ3
YjA2NTQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1mcmFtZXNpemUu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRp
bC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAiYXYtMzg0ay00NDEw
MEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4
MC0zMGZwcy0xMGtmciIsICJUZXN0cyB3ZWJtIGZyYW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBs
ZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmY3ODk0NWQ3NWZiMmE2MWJjN2JjZTRlZjc0YmNlMjFmNDJkYTZkOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2VibSB2aWRlbyBiaXRyYXRlIGNoYW5nZXMg
aW4gbXVsdGlwbGV4ZWQgY29udGVudC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1h
di12aWRlby1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxMTc4YmM0MGZiMDhiZTUyZjIwNjRjMGZiZDViMDkyNmJjMWI1YTkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1s
CkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4K
KyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
ICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgid2VibSIsICJhdi0zODRrLTQ0MTAwSHot
MWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMw
ZnBzLTEwa2ZyIiwgIlRlc3RzIHdlYm0gdmlkZW8gYml0cmF0ZSBjaGFuZ2VzIGluIG11bHRpcGxl
eGVkIGNvbnRlbnQuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS13ZWJtLXYtYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJjNzBiZGZk
NjVmMDEyZjJiYzk3MjEzYzk5YTRiY2NmNDJmNDVhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2Utd2VibS12LWJpdHJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFT
UyBUZXN0cyB3ZWJtIHZpZGVvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIyNzdhYjVlZGQ5N2RjYzQ1YmU3ZWJmNzRmYzY3YTE1MmY3NWYz
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1iaXRyYXRlLmh0bWwKQEAg
LTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMu
anMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAg
bWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgInYtMTI4ay0zMjB4MjQwLTMwZnBz
LTEwa2ZyIiwgInYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIHdlYm0gdmlkZW8t
b25seSBiaXRyYXRlIGNoYW5nZXMuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lcmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA1NmFmNjFmNDIwZWJlM2I2N2IwY2RjZjg3OGZiOTYwYjgyYTE4YWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2Vz
LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVyYXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGRmZmQ5NjMxZGYzY2Qz
YjAwOGNmMDJjNGUzMmQ5YzU1MTQ2OGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13
ZWJtLXYtZnJhbWVyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJt
IiwgInYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnIiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBr
ZnIiLCAiVGVzdHMgd2VibSB2aWRlby1vbmx5IGZyYW1lIHJhdGUgY2hhbmdlcy4iKTsKKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS13ZWJtLXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1l
c2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE2MDUwNGMyN2E2ZjFlZjc1ZjY1MzA2ZDJk
MjYxYmY5ODdhZTRkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1l
c2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gdmlk
ZW8tb25seSBmcmFtZSBzaXplIGNoYW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdl
Ym0tdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRhZWUwZDFhZDljYTAwMWNiZWJiNmY5M2ViNTk1ZmY5YWM5NzY4ZDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxk
aXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNv
dXJjZUNvbmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIi
LCAidi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2aWRlby1vbmx5IGZy
YW1lIHNpemUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mODM0MjQ4MGFiZGEyZTZkMjJhNmQ3ZDA0ZTQwNTZhNjlhMGJjNzExCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtY29uZmlnLWNoYW5nZXMuanMKQEAgLTAsMCArMSw2MCBAQAorZnVuY3Rpb24gYXBwZW5k
QnVmZmVyKHRlc3QsIHNvdXJjZUJ1ZmZlciwgZGF0YSkKK3sKKyAgICB0ZXN0LmV4cGVjdEV2ZW50
KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIpOworICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVm
ZmVyLCAidXBkYXRlZW5kIik7CisgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhKTsK
K30KKworZnVuY3Rpb24gbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KGRpcmVjdG9yeSwgaWRB
LCBpZEIsIGRlc2NyaXB0aW9uKQoreworICAgIHZhciBtYW5pZmVzdEZpbGVuYW1lQSA9IGRpcmVj
dG9yeSArICIvdGVzdC0iICsgaWRBICsgIi1tYW5pZmVzdC5qc29uIjsKKyAgICB2YXIgbWFuaWZl
c3RGaWxlbmFtZUIgPSBkaXJlY3RvcnkgKyAiL3Rlc3QtIiArIGlkQiArICItbWFuaWZlc3QuanNv
biI7CisgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1l
ZGlhU291cmNlKQorICAgIHsKKyAgICAgICAgbWVkaWFFbGVtZW50LnBhdXNlKCk7CisgICAgICAg
IHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKyAgICAgICAgdGVzdC5l
bmRPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2VuZGVkJyk7CisKKyAgICAgICAgTWVkaWFTb3VyY2VV
dGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3QsIG1hbmlmZXN0RmlsZW5hbWVBLCBmdW5jdGlv
bih0eXBlQSwgZGF0YUEpCisgICAgICAgIHsKKyAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5m
ZXRjaE1hbmlmZXN0QW5kRGF0YSh0ZXN0LCBtYW5pZmVzdEZpbGVuYW1lQiwgZnVuY3Rpb24odHlw
ZUIsIGRhdGFCKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
dHlwZUEsIHR5cGVCLCAiTWVkaWEgZm9ybWF0IHR5cGVzIG1hdGNoIik7CisKKyAgICAgICAgICAg
ICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHR5cGVB
KTsKKworICAgICAgICAgICAgICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIsIGRh
dGFBKTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0
aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUg
c2Vjb25kIGJ1ZmZlciBzdGFydGluZyBhdCAwLjUgc2Vjb25kLgorICAgICAgICAgICAgICAgICAg
ICBzb3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0ID0gMC41OworICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRCdWZmZXIodGVzdCwgc291cmNlQnVmZmVyLCBkYXRhQik7CisgICAgICAgICAgICAg
ICAgfSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5j
dGlvbigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhl
IGZpcnN0IGJ1ZmZlciBzdGFydGluZyBhdCAxIHNlY29uZC4KKyAgICAgICAgICAgICAgICAgICAg
c291cmNlQnVmZmVyLnRpbWVzdGFtcE9mZnNldCA9IDE7CisgICAgICAgICAgICAgICAgICAgIGFw
cGVuZEJ1ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIsIGRhdGFBKTsKKyAgICAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9u
KCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgc2Vj
b25kIGJ1ZmZlciBzdGFydGluZyBhdCAxLjUgc2Vjb25kLgorICAgICAgICAgICAgICAgICAgICBz
b3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0ID0gMS41OworICAgICAgICAgICAgICAgICAgICBh
cHBlbmRCdWZmZXIodGVzdCwgc291cmNlQnVmZmVyLCBkYXRhQik7CisgICAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlv
bigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBUcnVuY2F0ZSB0
aGUgcHJlc2VudGF0aW9uIHRvIGEgZHVyYXRpb24gb2YgMiBzZWNvbmRzLgorICAgICAgICAgICAg
ICAgICAgICBtZWRpYVNvdXJjZS5kdXJhdGlvbiA9IDI7CisgICAgICAgICAgICAgICAgICAgIG1l
ZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFFbGVt
ZW50LnBsYXkoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9LCBkZXNjcmlwdGlvbiwgeyB0aW1lb3V0OiAxMDAwMCB9ICk7Cit9OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZTBjNjAwMWI3ZTBiMmQwZjdhNDM0ODAzMWM5ZGZmMWUx
NTc3OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACisKK1BBU1MgVGVzdCBpbnZhbGlkIHR5cGVzIAorUEFTUyBUZXN0IHZhbGlk
IFdlYk0gdHlwZXMgCitGQUlMIFRlc3QgdmFsaWQgTVA0IHR5cGVzIGFzc2VydF90cnVlOiBUeXBl
ICJ2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSIiIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBw
b3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzRmY2E1NmM0MTdhYzk2YThhZWZkMDlkMjM3MjFiMjk5
ODQwNTY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQuaHRtbApAQCAtMCwwICsx
LDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmNzcyc+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2
IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgIHRlc3QoZnVuY3Rp
b24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBpbnZhbGlkVHlwZXMgPSBbCisg
ICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIE1JTUUgZm9ybWF0LgorICAgICAgICAgICAgICAg
ICAgJ3ZpZGVvJywKKyAgICAgICAgICAgICAgICAgICd2aWRlby8nLAorICAgICAgICAgICAgICAg
ICAgJ3ZpZGVvL3dlYm0nLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07JywKKyAgICAg
ICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcycsCisgICAgICAgICAgICAgICAgICAndmlk
ZW8vd2VibTtjb2RlY3M9JywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0i
JywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0iIicsCisgICAgICAgICAg
ICAgICAgICAndmlkZW8vd2VibTtjb2RlY3M9IiwiJywKKworICAgICAgICAgICAgICAgICAgLy8g
TWlzbWF0Y2ggYmV0d2VlbiBtYWpvciB0eXBlIGFuZCBjb2RlYyBJRAorICAgICAgICAgICAgICAg
ICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJ2cDgiJywKKyAgICAgICAgICAgICAgICAgICdhdWRpby9t
cDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSInLAorCisgICAgICAgICAgICAgICAgICAvLyBNaXNtYXRj
aCBiZXR3ZWVuIG1pbm9yIHR5cGUgYW5kIGNvZGVjIElELgorICAgICAgICAgICAgICAgICAgJ2F1
ZGlvL21wNDtjb2RlY3M9InZvcmJpcyInLAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07
Y29kZWNzPSJtcDRhLjQwLjIiJywKKyAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNz
PSJ2cDgiJywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0ibXA0YS40MC4y
IicsCisKKyAgICAgICAgICAgICAgICAgIC8vIEludmFsaWQgY29kZWMgSURzLgorICAgICAgICAg
ICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJtcDRhIicsCisgICAgICAgICAgICAgICAgICAn
YXVkaW8vd2VibTtjb2RlY3M9Im1wNGEuNDAiJywKKyAgICAgICAgICAgICAgICAgICdhdWRpby93
ZWJtO2NvZGVjcz0ibXA0YS40MC4iJywKKyAgICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29k
ZWNzPSJtcDRhLjY3LjMiJworICAgICAgICAgICAgICBdOworCisgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaW52YWxpZFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChpbnZhbGlkVHlwZXNb
aV0pLCAiVHlwZSBcIiIgKyBpbnZhbGlkVHlwZXNbaV0gKyAiXCIgbm90IHN1cHBvcnRlZCIpOwor
ICAgICAgICAgICAgICB9CisgICAgICAgICAgfSwgIlRlc3QgaW52YWxpZCB0eXBlcyIpOworCisg
ICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFy
IHZhbGlkVHlwZXMgPSBbCisgICAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0i
dnA4IicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0idm9yYmlzIics
CisgICAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInLAor
ICAgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibTtjb2RlY3M9InZvcmJpcywgdnA4IicsCisg
ICAgICAgICAgICAgICAgICAgICdhdWRpby93ZWJtO2NvZGVjcz0idm9yYmlzIicsCisgICAgICAg
ICAgICAgIF07CisKKyAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWxpZFR5cGVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2Uu
aXNUeXBlU3VwcG9ydGVkKHZhbGlkVHlwZXNbaV0pLCAiVHlwZSBcIiIgKyB2YWxpZFR5cGVzW2ld
ICsgIlwiIHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfSwgIlRlc3Qg
dmFsaWQgV2ViTSB0eXBlcyIpOworCisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgdmFyIHZhbGlkVHlwZXMgPSBbCisgICAgICAgICAgICAgICAg
ICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSInLCAvLyBILjI2NCBNYWluIFByb2Zp
bGUgbGV2ZWwgMy4wCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMx
LjQyMDAxZSInLCAvLyBILjI2NCBCYXNlbGluZSBQcm9maWxlIGxldmVsIDMuMAorICAgICAgICAg
ICAgICAgICAgICAnYXVkaW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIicsICAgLy8gTVBFRzQgQUFD
LUxDCisgICAgICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjUiJywg
ICAvLyBNUEVHNCBIRS1BQUMKKyAgICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9
Im1wNGEuNjciJywgICAgIC8vIE1QRUcyIEFBQy1MQworICAgICAgICAgICAgICAgICAgICAndmlk
ZW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9t
cDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQwLjIiJywKKyAgICAgICAgICAgICAgICAgICAg
J3ZpZGVvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiAsIGF2YzEuNGQwMDFlICInLAorICAgICAgICAg
ICAgICAgICAgICAndmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40ZDAwMWUsbXA0YS40MC41IicsCisg
ICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQw
LjUiJywKKyAgICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHZhbGlkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQodmFsaWRUeXBlc1tpXSksICJUeXBlIFwiIiAr
IHZhbGlkVHlwZXNbaV0gKyAiXCIgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICB9LCAiVGVzdCB2YWxpZCBNUDQgdHlwZXMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11
bHRpcGxlLWF0dGFjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTlmNzgyMjY1ZTUzMWUxMGQ4
ZmQ3YmJkMTRlNDEzY2YzMzRjNDY3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisgCitQQVNTIFRlc3QgZXhhY3RseSBvbmUgc3Vj
Y2VlZHMgd2hlbiB0d28gTWVkaWFFbGVtZW50cyBhdHRhY2ggdG8gc2FtZSBNZWRpYVNvdXJjZSAK
K1BBU1MgVGVzdCB0aGF0IE1lZGlhU291cmNlIGNhbiByZWF0dGFjaCBpZiBjbG9zZWQgZmlyc3Qg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNjN2JkYzY5MTUyNDA5ODc5ZmIxYjg5NDllMDA0MTNkNTg3ODY1YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5r
IHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgZnVuY3Rpb24gdHdvTWVkaWFFbGVtZW50VGVzdCh0
ZXN0RnVuY3Rpb24sIGRlc2NyaXB0aW9uKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbWVk
aWFfdGVzdChmdW5jdGlvbih0ZXN0KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICB2YXIgZmlyc3RNZWRpYVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cisg
ICAgICAgICAgICAgICAgICB2YXIgc2Vjb25kTWVkaWFUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChmaXJzdE1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoc2Vjb25kTWVkaWFUYWcpOworCisgICAgICAgICAgICAgICAgICAvLyBPdmVybG9hZCBk
b25lKCkgc28gdGhhdCBlbGVtZW50cyBhZGRlZCB0byB0aGUgZG9jdW1lbnQgY2FuIGJlCisgICAg
ICAgICAgICAgICAgICAvLyByZW1vdmVkLgorICAgICAgICAgICAgICAgICAgdmFyIHJlbW92ZU1l
ZGlhRWxlbWVudHMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgdmFyIG9sZFRlc3REb25lID0g
dGVzdC5kb25lLmJpbmQodGVzdCk7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUgPSBmdW5j
dGlvbigpCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHJl
bW92ZU1lZGlhRWxlbWVudHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChzZWNvbmRNZWRpYVRhZyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZmlyc3RNZWRpYVRhZyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlbW92ZU1lZGlhRWxlbWVudHMgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgb2xkVGVzdERvbmUoKTsKKyAgICAg
ICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgIHRlc3RGdW5jdGlvbih0ZXN0LCBm
aXJzdE1lZGlhVGFnLCBzZWNvbmRNZWRpYVRhZyk7CisgICAgICAgICAgICAgIH0sIGRlc2NyaXB0
aW9uKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB0d29NZWRpYUVsZW1lbnRUZXN0KGZ1bmN0
aW9uKHRlc3QsIGZpcnN0TWVkaWFUYWcsIHNlY29uZE1lZGlhVGFnKQorICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgLy8gV2hlbiBhdHRhY2htZW50IG9mIG1lZGlhU291cmNlIHRvIHR3byBNZWRp
YUVsZW1lbnRzIGlzIGRvbmUKKyAgICAgICAgICAgICAgLy8gd2l0aG91dCBhbiBpbnRlcnZlbmlu
ZyBzdGFibGUgc3RhdGUsIGV4YWN0bHkgb25lIG9mIHRoZSB0d28KKyAgICAgICAgICAgICAgLy8g
TWVkaWFFbGVtZW50cyBzaG91bGQgc3VjY2Vzc2Z1bGx5IGF0dGFjaCwgYW5kIHRoZSBvdGhlciBv
bmUKKyAgICAgICAgICAgICAgLy8gc2hvdWxkIGdldCBlcnJvciBldmVudCBkdWUgdG8gbWVkaWFT
b3VyY2UgYWxyZWFkeSBpbiAnb3BlbicKKyAgICAgICAgICAgICAgLy8gcmVhZHlTdGF0ZS4KKyAg
ICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAg
ICAgICAgIHZhciBtZWRpYVNvdXJjZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3Vy
Y2UpOworICAgICAgICAgICAgICB2YXIgZ290U291cmNlT3BlbiA9IGZhbHNlOworICAgICAgICAg
ICAgICB2YXIgZ290RXJyb3IgPSBmYWxzZTsKKyAgICAgICAgICAgICAgdmFyIGRvbmVJZkZpbmlz
aGVkID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICBpZiAoZ290U291cmNlT3BlbiAmJiBnb3RFcnJvcikKKyAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHZh
ciBlcnJvckhhbmRsZXIgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICBmaXJzdE1lZGlhVGFnLnJlbW92ZUV2ZW50TGlzdGVuZXIo
J2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKyAgICAgICAgICAgICAgICAgIHNlY29uZE1lZGlhVGFn
LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKworICAgICAgICAg
ICAgICAgICAgdmFyIGV2ZW50VGFyZ2V0ID0gZS50YXJnZXQ7CisgICAgICAgICAgICAgICAgICB2
YXIgb3RoZXJUYXJnZXQ7CisgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRUYXJnZXQgPT0gZmly
c3RNZWRpYVRhZykgeworICAgICAgICAgICAgICAgICAgICAgIG90aGVyVGFyZ2V0ID0gc2Vjb25k
TWVkaWFUYWc7CisgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoZXZlbnRUYXJnZXQsIHNlY29uZE1lZGlhVGFnLCAnRXJyb3IgdGFy
Z2V0IGNoZWNrJyk7CisgICAgICAgICAgICAgICAgICAgICAgb3RoZXJUYXJnZXQgPSBmaXJzdE1l
ZGlhVGFnOworICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShldmVudFRhcmdldC5lcnJvciAhPSBudWxsLCAnRXJyb3Igc3RhdGUgb24gb25lIHRhZycp
OworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudFRhcmdldC5lcnJvci5jb2Rl
LCBNZWRpYUVycm9yLk1FRElBX0VSUl9TUkNfTk9UX1NVUFBPUlRFRCwgJ0V4cGVjdGVkIGVycm9y
IGNvZGUnKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMob3RoZXJUYXJnZXQuZXJy
b3IsIG51bGwsICdObyBlcnJvciBvbiBvdGhlciB0YWcnKTsKKworICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhldmVudFRhcmdldC5uZXR3b3JrU3RhdGUsIEhUTUxNZWRpYUVsZW1lbnQu
TkVUV09SS19OT19TT1VSQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUYWcg
d2l0aCBlcnJvciBzdGF0ZSBuZXR3b3JrU3RhdGUnKTsKKyAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMob3RoZXJUYXJnZXQubmV0d29ya1N0YXRlLCBIVE1MTWVkaWFFbGVtZW50Lk5FVFdP
UktfTE9BRElORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RhZyB3aXRob3V0
IGVycm9yIHN0YXRlIG5ldHdvcmtTdGF0ZScpOworCisgICAgICAgICAgICAgICAgICBnb3RFcnJv
ciA9IHRydWU7CisgICAgICAgICAgICAgICAgICBkb25lSWZGaW5pc2hlZCgpOworICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAn
c291cmNlb3BlbicsICdBbiBhdHRhY2htZW50IHN1Y2NlZWRlZCcpOworICAgICAgICAgICAgICBm
aXJzdE1lZGlhVGFnLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKyAg
ICAgICAgICAgICAgc2Vjb25kTWVkaWFUYWcuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJv
ckhhbmRsZXIpOworCisgICAgICAgICAgICAgIGZpcnN0TWVkaWFUYWcuc3JjID0gbWVkaWFTb3Vy
Y2VVUkw7CisgICAgICAgICAgICAgIHNlY29uZE1lZGlhVGFnLnNyYyA9IG1lZGlhU291cmNlVVJM
OworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkK
KyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNv
dXJjZS5yZWFkeVN0YXRlLCAnb3BlbicsICdTb3VyY2UgaXMgb3BlbmVkJyk7CisgICAgICAgICAg
ICAgICAgICBnb3RTb3VyY2VPcGVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgIGRvbmVJZkZp
bmlzaGVkKCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICdUZXN0IGV4YWN0bHkg
b25lIHN1Y2NlZWRzIHdoZW4gdHdvIE1lZGlhRWxlbWVudHMgYXR0YWNoIHRvIHNhbWUgTWVkaWFT
b3VyY2UnKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVk
aWFFbGVtZW50LCBtZWRpYVNvdXJjZSkgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1l
ZGlhU291cmNlLnJlYWR5U3RhdGUsICdvcGVuJywgJ1NvdXJjZSBvcGVuJyk7CisgICAgICAgICAg
ICAgIC8vIFNldCB0aGUgdGFnJ3Mgc3JjIGF0dHJpYnV0ZS4gIFRoaXMgc2hvdWxkIGNsb3NlIG1l
ZGlhU291cmNlLAorICAgICAgICAgICAgICAvLyByZWF0dGFjaCBpdCB0byB0aGUgdGFnLCBhbmQg
aW5pdGlhdGUgc291cmNlIHJlb3BlbmluZy4KKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVu
dChtZWRpYVNvdXJjZSwgJ3NvdXJjZW9wZW4nLCAnU291cmNlIGF0dGFjaGVkIGFnYWluJyk7Cisg
ICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlh
U291cmNlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0
YXRlLCAnY2xvc2VkJywgJ1NvdXJjZSBjbG9zZWQnKTsKKworICAgICAgICAgICAgICB0ZXN0Lndh
aXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgJ29wZW4nLCAn
U291cmNlIHJlb3BlbmVkJyk7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgfSwgJ1Rlc3QgdGhhdCBNZWRpYVNvdXJjZSBjYW4gcmVh
dHRhY2ggaWYgY2xvc2VkIGZpcnN0Jyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLXBsYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjJjMjZhMDZlYTE2ZDUyYTI3Y2RlMGIwMWYxYmVjYTIzNTVhY2YxOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLXBsYXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0
IG5vcm1hbCBwbGF5YmFjayBjYXNlIHdpdGggTWVkaWFTb3VyY2UgQVBJIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1w
bGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1wbGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc4ZTY2YTlkMmY1ZjI1YmY3ZmU3NTcxZDNl
YTNmZmJlNjk2NTQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXkuaHRtbApAQCAtMCwwICsxLDM0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5j
dGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAg
ICAgICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsKKworICAgICAg
ICAgICAgICB2YXIgbWVkaWFUeXBlID0gJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIic7
CisgICAgICAgICAgICAgIHZhciBtZWRpYVVSTCA9ICcvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNv
dXJjZS93ZWJtL3Rlc3Qud2VibSc7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBt
ZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobWVkaWFUeXBlKTsKKworICAgICAgICAgICAgICBN
ZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURhdGEodGVzdCwgbWVkaWFVUkwsIGZ1bmN0aW9uKGRh
dGEpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hZGRF
dmVudExpc3RlbmVyKCd1cGRhdGVlbmQnLCB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbigpCisgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZHVyYXRp
b24gPSAxOworICAgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7
CisgICAgICAgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBsYXkoKTsKKyAgICAgICAgICAg
ICAgICAgIH0pKTsKKyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIo
ZGF0YSk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IG5vcm1hbCBwbGF5
YmFjayBjYXNlIHdpdGggTWVkaWFTb3VyY2UgQVBJIik7CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
c291cmNlYnVmZmVybGlzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjliZDY5MWVjYTBlMDAy
YWI3NzdhYzcxMWQwNzI1MDkyYmNkOTY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlcmxp
c3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZl
ckxpc3QgZXZlbnQgZGlzcGF0Y2hpbmcuIAorUEFTUyBUZXN0IHRoYXQgb25seSAxIHJlbW92ZXNv
dXJjZWJ1ZmZlciBldmVudCBmaXJlcyBvbiBlYWNoIFNvdXJjZUJ1ZmZlckxpc3Qgd2hlbiB0aGUg
TWVkaWFTb3VyY2UgY2xvc2VzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291
cmNlYnVmZmVybGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkNDg3YTFhZDhmMTQxYWE4MzNhYTYzMGUw
OTBkNDFmMTJkZjIxNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0Lmh0bWwKQEAg
LTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwv
c2NyaXB0PgorCisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgZnVuY3Rp
b24gdmVyaWZ5U291cmNlQnVmZmVyTGlzdHMobWVkaWFTb3VyY2UsIGV4cGVjdGVkKQorICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZm
ZXJzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAic291cmNlQnVmZmVycyBsZW5ndGgiKTsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJz
Lmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiYWN0aXZlU291cmNlQnVmZmVycyBsZW5ndGgiKTsK
KyAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVy
c1tpXSwgZXhwZWN0ZWRbaV0sICJWZXJpZnlpbmcgbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1si
ICsgaSArICJdIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzW2ldLCBleHBlY3RlZFtpXSwgIlZlcmlmeWluZyBtZWRpYVNvdXJj
ZS5hY3RpdmVTb3VyY2VCdWZmZXJzWyIgKyBpICsgIl0iKTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVk
aWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3Qu
ZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIs
ICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3Vy
Y2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworICAg
ICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG51bGw7CisKKyAgICAgICAgICAgICAgdGVz
dC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMs
ICJhZGRzb3VyY2VidWZmZXIiLCAic291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAgICAg
dGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291
cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHNv
dXJjZUJ1ZmZlckIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGls
LkFVRElPX09OTFlfVFlQRSk7CisKKyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZl
ckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNlQnVmZmVyQSwgc291cmNlQnVmZmVyQl0pOworICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50
cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1
ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4
cGVjdEV2ZW50KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMsICJyZW1vdmVzb3VyY2VidWZmZXIi
LCAic291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UucmVtb3Zl
U291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlckEpOworCisgICAgICAgICAgICAgICAgICB2ZXJpZnlT
b3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwgW3NvdXJjZUJ1ZmZlckJdKTsKKworICAgICAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAi
YWRkc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHRl
c3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJj
ZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAgICBzb3Vy
Y2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5W
SURFT19PTkxZX1RZUEUpOworCisgICAgICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJM
aXN0cyhtZWRpYVNvdXJjZSwgW3NvdXJjZUJ1ZmZlckIsIHNvdXJjZUJ1ZmZlckFdKTsKKyAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMo
ZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUo
KTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgU291cmNlQnVmZmVyTGlz
dCBldmVudCBkaXNwYXRjaGluZy4iKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAg
ICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgImFk
ZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZl
ciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZl
bnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VC
dWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291
cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworICAgICAgICAgICAg
ICB2YXIgc291cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNv
dXJjZVV0aWwuQVVESU9fT05MWV9UWVBFKTsKKworICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VC
dWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwgW3NvdXJjZUJ1ZmZlckEsIHNvdXJjZUJ1ZmZlckJdKTsK
KworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3Rz
KG1lZGlhU291cmNlLCBbc291cmNlQnVmZmVyQSwgc291cmNlQnVmZmVyQl0pOworCisgICAgICAg
ICAgICAgICAgICAvLyBGb3JjZSB0aGUgbWVkaWEgZWxlbWVudCB0byBjbG9zZSB0aGUgTWVkaWFT
b3VyY2Ugb2JqZWN0LgorICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAicmVtb3Zlc291cmNlYnVmZmVyIiwgImFjdGl2ZVNv
dXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFT
b3VyY2Uuc291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAic291
cmNlY2xvc2UiLCAibWVkaWFTb3VyY2UgY2xvc2luZyIpOworICAgICAgICAgICAgICAgICAgbWVk
aWFFbGVtZW50LnNyYyA9ICIiOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0
ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgImNs
b3NlZCIsICJtZWRpYVNvdXJjZSBpcyBjbG9zZWQuIik7CisKKyAgICAgICAgICAgICAgICAgIHZl
cmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbXSk7CisgICAgICAgICAgICAgICAg
ICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgdGhh
dCBvbmx5IDEgcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50IGZpcmVzIG9uIGVhY2ggU291cmNlQnVm
ZmVyTGlzdCB3aGVuIHRoZSBNZWRpYVNvdXJjZSBjbG9zZXMuIik7CisKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtdXRpbC5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXV0aWwuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDU2ZjAxMmY0ZDk5ZGM2MTNkYmRmM2FjMDdmMjI0ZDUxODA5N2U3NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLXV0aWwuanMKQEAgLTAsMCArMSwyMjkgQEAKKyhmdW5jdGlvbih3aW5kb3cpIHsKKyAg
ICBFdmVudEV4cGVjdGF0aW9uc01hbmFnZXIgPSBmdW5jdGlvbih0ZXN0KQorICAgIHsKKyAgICAg
ICAgdGhpcy50ZXN0XyA9IHRlc3Q7CisgICAgICAgIHRoaXMuZXZlbnRUYXJnZXRMaXN0XyA9IFtd
OworICAgICAgICB0aGlzLndhaXRDYWxsYmFja3NfID0gW107CisgICAgfTsKKworICAgIEV2ZW50
RXhwZWN0YXRpb25zTWFuYWdlci5wcm90b3R5cGUuZXhwZWN0RXZlbnQgPSBmdW5jdGlvbihvYmpl
Y3QsIGV2ZW50TmFtZSwgZGVzY3JpcHRpb24pCisgICAgeworICAgICAgICB2YXIgZXZlbnRJbmZv
ID0geyAndGFyZ2V0Jzogb2JqZWN0LCAndHlwZSc6IGV2ZW50TmFtZSwgJ2Rlc2NyaXB0aW9uJzog
ZGVzY3JpcHRpb259OworICAgICAgICB2YXIgZXhwZWN0YXRpb25zID0gdGhpcy5nZXRFeHBlY3Rh
dGlvbnNfKG9iamVjdCk7CisgICAgICAgIGV4cGVjdGF0aW9ucy5wdXNoKGV2ZW50SW5mbyk7CisK
KyAgICAgICAgdmFyIHQgPSB0aGlzOworICAgICAgICB2YXIgd2FpdEhhbmRsZXIgPSB0aGlzLnRl
c3RfLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgdC5oYW5kbGVXYWl0Q2FsbGJhY2tfKCk7IH0pOwor
ICAgICAgICB2YXIgZXZlbnRIYW5kbGVyID0gdGhpcy50ZXN0Xy5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZSwgZXZlbnRIYW5kbGVyKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IGV4
cGVjdGF0aW9uc1swXTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBl
eHBlY3RlZC50YXJnZXQsICJFdmVudCB0YXJnZXQgbWF0Y2guIik7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGV2ZW50LnR5cGUsIGV4cGVjdGVkLnR5cGUsICJFdmVudCB0eXBlcyBtYXRjaC4i
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRJbmZvLmRlc2NyaXB0aW9uLCBleHBl
Y3RlZC5kZXNjcmlwdGlvbiwgIkRlc2NyaXB0aW9ucyBtYXRjaCBmb3IgJyIgKyAgZXZlbnQudHlw
ZSArICInLiIpOworCisgICAgICAgICAgICBleHBlY3RhdGlvbnMuc2hpZnQoMSk7CisgICAgICAg
ICAgICBpZiAodC53YWl0Q2FsbGJhY2tzXy5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQod2FpdEhhbmRsZXIsIDApOworICAgICAgICB9KTsKKyAgICAgICAgb2JqZWN0LmFk
ZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudEhhbmRsZXIpOworICAgIH07CisKKyAgICBF
dmVudEV4cGVjdGF0aW9uc01hbmFnZXIucHJvdG90eXBlLndhaXRGb3JFeHBlY3RlZEV2ZW50cyA9
IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhpcy53YWl0Q2FsbGJhY2tzXy5w
dXNoKGNhbGxiYWNrKTsKKyAgICAgICAgc2V0VGltZW91dCh0aGlzLmhhbmRsZVdhaXRDYWxsYmFj
a18uYmluZCh0aGlzKSwgMCk7CisgICAgfTsKKworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdl
ci5wcm90b3R5cGUuZXhwZWN0aW5nRXZlbnRzID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmV2ZW50VGFyZ2V0TGlzdF8ubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50VGFyZ2V0TGlzdF9baV0uZXhwZWN0YXRpb25zLmxl
bmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRXZlbnRFeHBl
Y3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5oYW5kbGVXYWl0Q2FsbGJhY2tfID0gZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMud2FpdENhbGxiYWNrc18ubGVuZ3RoID09IDAgfHwg
dGhpcy5leHBlY3RpbmdFdmVudHMoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFy
IGNhbGxiYWNrID0gdGhpcy53YWl0Q2FsbGJhY2tzXy5zaGlmdCgxKTsKKyAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICB9OworCisgICAgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5n
ZXRFeHBlY3RhdGlvbnNfID0gZnVuY3Rpb24odGFyZ2V0KQorICAgIHsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0aGlzLmV2ZW50VGFyZ2V0TGlzdF8ubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciBpbmZvID0gdGhpcy5ldmVudFRhcmdldExpc3RfW2ldOworICAgICAgICAgICAg
aWYgKGluZm8udGFyZ2V0ID09IHRhcmdldCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbmZv
LmV4cGVjdGF0aW9uczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB2YXIgZXhw
ZWN0YXRpb25zID0gW107CisgICAgICAgIHRoaXMuZXZlbnRUYXJnZXRMaXN0Xy5wdXNoKHsgJ3Rh
cmdldCc6IHRhcmdldCwgJ2V4cGVjdGF0aW9ucyc6IGV4cGVjdGF0aW9ucyB9KTsKKyAgICAgICAg
cmV0dXJuIGV4cGVjdGF0aW9uczsKKyAgICB9OworCisgICAgZnVuY3Rpb24gbG9hZERhdGFfKHRl
c3QsIHVybCwgY2FsbGJhY2ssIGlzQmluYXJ5KQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3Qg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgcmVxdWVzdC5vcGVuKCJHRVQiLCB1cmws
IHRydWUpOworICAgICAgICBpZiAoaXNCaW5hcnkpIHsKKyAgICAgICAgICAgIHJlcXVlc3QucmVz
cG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKKyAgICAgICAgfQorICAgICAgICByZXF1ZXN0Lm9u
bG9hZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAocmVxdWVzdC5zdGF0dXMgIT0gMjAwKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X3VucmVhY2hlZCgiVW5leHBlY3RlZCBzdGF0dXMgY29kZSA6ICIgKyByZXF1ZXN0LnN0YXR1cyk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFy
IHJlc3BvbnNlID0gcmVxdWVzdC5yZXNwb25zZTsKKyAgICAgICAgICAgIGlmIChpc0JpbmFyeSkg
eworICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gbmV3IFVpbnQ4QXJyYXkocmVzcG9uc2UpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJhY2socmVzcG9uc2UpOworICAgICAgICB9
KTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZl
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQg
ZXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJlcXVlc3Quc2VuZCgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9wZW5NZWRpYVNvdXJjZV8odGVzdCwgbWVkaWFUYWcsIGNhbGxiYWNrKQor
ICAgIHsKKyAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAg
ICAgIHZhciBtZWRpYVNvdXJjZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2Up
OworCisgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB0ZXN0LnN0ZXBfZnVuYyhvblNvdXJjZU9w
ZW4pOworICAgICAgICBmdW5jdGlvbiBvblNvdXJjZU9wZW4oZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1lZGlhU291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NvdXJjZW9wZW4nLCBl
dmVudEhhbmRsZXIpOworICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChtZWRpYVNvdXJj
ZVVSTCk7CisgICAgICAgICAgICBjYWxsYmFjayhtZWRpYVNvdXJjZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBtZWRpYVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCdzb3VyY2VvcGVuJywgZXZlbnRI
YW5kbGVyKTsKKyAgICAgICAgbWVkaWFUYWcuc3JjID0gbWVkaWFTb3VyY2VVUkw7CisgICAgfQor
CisgICAgdmFyIE1lZGlhU291cmNlVXRpbCA9IHt9OworCisgICAgTWVkaWFTb3VyY2VVdGlsLmxv
YWRUZXh0RGF0YSA9IGZ1bmN0aW9uKHRlc3QsIHVybCwgY2FsbGJhY2spCisgICAgeworICAgICAg
ICBsb2FkRGF0YV8odGVzdCwgdXJsLCBjYWxsYmFjaywgZmFsc2UpOworICAgIH07CisKKyAgICBN
ZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURhdGEgPSBmdW5jdGlvbih0ZXN0LCB1cmwsIGNhbGxi
YWNrKQorICAgIHsKKyAgICAgICAgbG9hZERhdGFfKHRlc3QsIHVybCwgY2FsbGJhY2ssIHRydWUp
OworICAgIH07CisKKyAgICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEgPSBm
dW5jdGlvbih0ZXN0LCBtYW5pZmVzdEZpbGVuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAg
IHZhciBiYXNlVVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlLyc7CisgICAgICAg
IHZhciBtYW5pZmVzdFVSTCA9IGJhc2VVUkwgKyBtYW5pZmVzdEZpbGVuYW1lOworICAgICAgICBN
ZWRpYVNvdXJjZVV0aWwubG9hZFRleHREYXRhKHRlc3QsIG1hbmlmZXN0VVJMLCBmdW5jdGlvbiht
YW5pZmVzdFRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBtYW5pZmVzdCA9IEpTT04u
cGFyc2UobWFuaWZlc3RUZXh0KTsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3Vy
Y2UuaXNUeXBlU3VwcG9ydGVkKG1hbmlmZXN0LnR5cGUpLCBtYW5pZmVzdC50eXBlICsgIiBpcyBz
dXBwb3J0ZWQuIik7CisKKyAgICAgICAgICAgIHZhciBtZWRpYVVSTCA9IGJhc2VVUkwgKyBtYW5p
ZmVzdC51cmw7CisgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURhdGEodGVz
dCwgbWVkaWFVUkwsIGZ1bmN0aW9uKG1lZGlhRGF0YSkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBjYWxsYmFjayhtYW5pZmVzdC50eXBlLCBtZWRpYURhdGEpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBnZXRGaXJzdFN1cHBvcnRl
ZFR5cGUodHlwZUxpc3QpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVM
aXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoTWVkaWFTb3VyY2UuaXNUeXBlU3Vw
cG9ydGVkKHR5cGVMaXN0W2ldKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUxpc3RbaV07
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKworICAgIHZhciBhdWRpb09u
bHlUeXBlcyA9IFsnYXVkaW8vd2VibTtjb2RlY3M9InZvcmJpcyInLCAnYXVkaW8vbXA0O2NvZGVj
cz0ibXA0YS40MC4yIiddOworICAgIHZhciB2aWRlb09ubHlUeXBlcyA9IFsndmlkZW8vd2VibTtj
b2RlY3M9InZwOCInLCAndmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEiJ107CisgICAgdmFy
IGF1ZGlvVmlkZW9UeXBlcyA9IFsndmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiJywgJ3Zp
ZGVvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiInXTsKKyAgICBNZWRpYVNvdXJjZVV0aWwuQVVESU9f
T05MWV9UWVBFID0gZ2V0Rmlyc3RTdXBwb3J0ZWRUeXBlKGF1ZGlvT25seVR5cGVzKTsKKyAgICBN
ZWRpYVNvdXJjZVV0aWwuVklERU9fT05MWV9UWVBFID0gZ2V0Rmlyc3RTdXBwb3J0ZWRUeXBlKHZp
ZGVvT25seVR5cGVzKTsKKyAgICBNZWRpYVNvdXJjZVV0aWwuQVVESU9fVklERU9fVFlQRSA9IGdl
dEZpcnN0U3VwcG9ydGVkVHlwZShhdWRpb1ZpZGVvVHlwZXMpOworCisgICAgZnVuY3Rpb24gYWRk
RXh0cmFUZXN0TWV0aG9kcyh0ZXN0KQorICAgIHsKKyAgICAgICAgdGVzdC5mYWlsT25FdmVudCA9
IGZ1bmN0aW9uKG9iamVjdCwgZXZlbnROYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBvYmpl
Y3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2
ZW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVu
ZXhwZWN0ZWQgZXZlbnQgJyIgKyBldmVudE5hbWUgKyAiJyIpOworICAgICAgICAgICAgfSkpOwor
ICAgICAgICB9OworCisgICAgICAgIHRlc3QuZW5kT25FdmVudCA9IGZ1bmN0aW9uKG9iamVjdCwg
ZXZlbnROYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5l
cihldmVudE5hbWUsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7IHRlc3QuZG9uZSgp
OyB9KSk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVzdC5ldmVudEV4cGVjdGF0aW9uc18gPSBu
ZXcgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyKHRlc3QpOworICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50ID0gZnVuY3Rpb24ob2JqZWN0LCBldmVudE5hbWUsIGRlc2NyaXB0aW9uKQorICAgICAgICB7
CisgICAgICAgICAgICB0ZXN0LmV2ZW50RXhwZWN0YXRpb25zXy5leHBlY3RFdmVudChvYmplY3Qs
IGV2ZW50TmFtZSwgZGVzY3JpcHRpb24pOworICAgICAgICB9OworCisgICAgICAgIHRlc3Qud2Fp
dEZvckV4cGVjdGVkRXZlbnRzID0gZnVuY3Rpb24oY2FsbGJhY2spCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHRlc3QuZXZlbnRFeHBlY3RhdGlvbnNfLndhaXRGb3JFeHBlY3RlZEV2ZW50cyhjYWxs
YmFjayk7CisgICAgICAgIH07CisKKyAgICAgICAgdmFyIG9sZFRlc3REb25lID0gdGVzdC5kb25l
LmJpbmQodGVzdCk7CisgICAgICAgIHRlc3QuZG9uZSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKHRlc3Quc3RhdHVzID09IHRlc3QuUEFTUykKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UodGVzdC5ldmVudEV4cGVjdGF0aW9uc18uZXhwZWN0aW5nRXZlbnRzKCks
ICJObyBwZW5kaW5nIGV2ZW50IGV4cGVjdGF0aW9ucy4iKTsKKyAgICAgICAgICAgIG9sZFRlc3RE
b25lKCk7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHdpbmRvd1snTWVkaWFTb3VyY2VVdGls
J10gPSBNZWRpYVNvdXJjZVV0aWw7CisgICAgd2luZG93WydtZWRpYV90ZXN0J10gPSBmdW5jdGlv
bih0ZXN0RnVuY3Rpb24sIGRlc2NyaXB0aW9uLCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgb3B0
aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICAgIHJldHVybiBhc3luY190ZXN0KGZ1bmN0aW9u
KHRlc3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFkZEV4dHJhVGVzdE1ldGhvZHModGVzdCk7
CisgICAgICAgICAgICB0ZXN0RnVuY3Rpb24odGVzdCk7CisgICAgICAgIH0sIGRlc2NyaXB0aW9u
LCBvcHRpb25zKTsKKyAgICB9OworICAgIHdpbmRvd1snbWVkaWFzb3VyY2VfdGVzdCddID0gZnVu
Y3Rpb24odGVzdEZ1bmN0aW9uLCBkZXNjcmlwdGlvbiwgb3B0aW9ucykKKyAgICB7CisgICAgICAg
IHJldHVybiBtZWRpYV90ZXN0KGZ1bmN0aW9uKHRlc3QpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHZhciBtZWRpYVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lZGlhVGFnKTsKKworICAgICAgICAgICAg
Ly8gT3ZlcmxvYWQgZG9uZSgpIHNvIHRoYXQgZWxlbWVudCBhZGRlZCB0byB0aGUgZG9jdW1lbnQg
Y2FuIGJlIHJlbW92ZWQuCisgICAgICAgICAgICB0ZXN0LnJlbW92ZU1lZGlhRWxlbWVudF8gPSB0
cnVlOworICAgICAgICAgICAgdmFyIG9sZFRlc3REb25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7
CisgICAgICAgICAgICB0ZXN0LmRvbmUgPSBmdW5jdGlvbigpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgaWYgKHRlc3QucmVtb3ZlTWVkaWFFbGVtZW50XykgeworICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG1lZGlhVGFnKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdC5yZW1vdmVNZWRpYUVsZW1lbnRfID0gZmFsc2U7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIG9sZFRlc3REb25lKCk7CisgICAgICAgICAgICB9OworCisg
ICAgICAgICAgICBvcGVuTWVkaWFTb3VyY2VfKHRlc3QsIG1lZGlhVGFnLCBmdW5jdGlvbihtZWRp
YVNvdXJjZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0RnVuY3Rpb24odGVz
dCwgbWVkaWFUYWcsIG1lZGlhU291cmNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCBk
ZXNjcmlwdGlvbiwgb3B0aW9ucyk7CisKKyAgICB9OworfSkod2luZG93KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNv
dXJjZS1vYmplY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLWV4cGVjdGVkLnR4dAppbmRl
eCBiMDNkYmU0MzRiODVkZjQ3M2IzZGQ2MzAyYWQzNGJjMmQ3NjkwYTA5Li5kZjZjYmI4NzFlNDY5
M2U0MDEwMGM5ZTUwNTI5Y2UyNWQ4YmU5MTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2JqZWN0cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
dmlkZW8tbWVkaWEtc291cmNlLW9iamVjdHMtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQCBU
ZXN0cyBNZWRpYVNvdXJjZSwgU291cmNlQnVmZmVyLCBhbmQgU291cmNlQnVmZmVyTGlzdCBvYmpl
Y3RzLgogCiBFVkVOVCh3ZWJraXRzb3VyY2VvcGVuKQogVGVzdCBNZWRpYVNvdXJjZSBvYmplY3Qg
dHlwZQotRVhQRUNURUQgKG1lZGlhU291cmNlID09ICdbb2JqZWN0IE1lZGlhU291cmNlXScpIE9L
CitFWFBFQ1RFRCAobWVkaWFTb3VyY2UgPT0gJ1tvYmplY3QgV2ViS2l0TWVkaWFTb3VyY2VdJykg
T0sKIEVYUEVDVEVEIChtZWRpYVNvdXJjZSBpbnN0YW5jZW9mIHdpbmRvdy5XZWJLaXRNZWRpYVNv
dXJjZSA9PSAndHJ1ZScpIE9LCiAKIEFkZCBhIFNvdXJjZUJ1ZmZlcgpAQCAtMTEsNyArMTEsNyBA
QCBSVU4oc2VnbWVudEhlbHBlci5hZGRTb3VyY2VCdWZmZXIoKSkKIEVYUEVDVEVEIChtZWRpYVNv
dXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCA9PSAnMScpIE9LCiAKIFRlc3QgU291cmNlQnVmZmVy
TGlzdCBvYmplY3QgdHlwZToKLUVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09
ICdbb2JqZWN0IFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKK0VYUEVDVEVEIChtZWRpYVNvdXJjZS5z
b3VyY2VCdWZmZXJzID09ICdbb2JqZWN0IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKIEVY
UEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIGluc3RhbmNlb2Ygd2luZG93LldlYktp
dFNvdXJjZUJ1ZmZlckxpc3QgPT0gJ3RydWUnKSBPSwogCiBUZXN0IFNvdXJjZUJ1ZmZlciBvYmpl
Y3QgdHlwZQpAQCAtMzksNyArMzksNyBAQCBFWFBFQ1RFRCAobWVkaWFTb3VyY2Uuc291cmNlQnVm
ZmVyc1swXS5idWZmZXJlZC5lbmQoMSkgPiAnNScpIE9LCiBSZW1vdmUgU291cmNlQnVmZmVyCiBS
VU4obWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVmZmVyKHNlZ21lbnRIZWxwZXIuc291cmNlQnVm
ZmVyKSkKIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCA9PSAnMCcp
IE9LCi1FWFBFQ1RFRCAobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyA9PSAnW29iamVjdCBTb3Vy
Y2VCdWZmZXJMaXN0XScpIE9LCitFWFBFQ1RFRCAobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyA9
PSAnW29iamVjdCBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0XScpIE9LCiAKIFRlc3QgdGhhdCBhcHBl
bmQoKSB0aHJvd3MgYW4gZXJyb3IgYWZ0ZXIgU291cmNlQnVmZmVyIGhhcyBiZWVuIHJlbW92ZWQu
CiBHb3QgZXhwZWN0ZWQgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4
Y2VwdGlvbiAxMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNv
dXJjZXMvbWVkaWEtc291cmNlL2dlbmVyYXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvZ2VuZXJhdGUt
Y29uZmlnLWNoYW5nZS10ZXN0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWRiOTI1YjQ0OGFmMzYwNDFhNGNh
M2YwMGVkMjhmMTJhYjcwNjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL2dlbmVyYXRlLWNvbmZpZy1jaGFuZ2Ut
dGVzdHMucHkKQEAgLTAsMCArMSwyMjYgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworIiIiCitUaGlzIGlzIGEgc2NyaXB0IHRoYXQgZ2VuZXJhdGVzIHRoZSBjb250ZW50
IGFuZCBIVE1MIGZpbGVzIGZvciBNZWRpYSBTb3VyY2UKK2NvZGVjIGNvbmZpZyBjaGFuZ2UgTGF5
b3V0VGVzdHMuCisiIiIKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKKworRFVSQVRJT04gPSAyCitN
RURJQV9GT1JNQVRTID0gWyd3ZWJtJywgJ21wNCddCitFTkNPREVfU0VUVElOR1MgPSBbCisgICAg
IyMgVmlkZW8tb25seSBmaWxlcworICAgICMgRnJhbWUgcmF0ZSBjaGFuZ2VzCisgICAgeydmcyc6
ICczMjB4MjQwJywgJ2ZyJzogMjQsICdrZnInOiA4LCAnYyc6ICcjZmYwMDAwJywgJ3Zicic6IDEy
OCwgJ2Ficic6IDAsICdhc3InOiAwLCAnYWNoJzogMCwgJ2FmcmVxJzogMH0sCisgICAgeydmcyc6
ICczMjB4MjQwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnI2ZmMDAwMCcsICd2YnInOiAx
MjgsICdhYnInOiAwLCAnYXNyJzogMCwgJ2FjaCc6IDAsICdhZnJlcSc6IDB9LAorICAgICMgRnJh
bWUgc2l6ZSBjaGFuZ2UKKyAgICB7J2ZzJzogJzY0MHg0ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEw
LCAnYyc6ICcjMDBmZjAwJywgJ3Zicic6IDEyOCwgJ2Ficic6IDAsICdhc3InOiAwLCAnYWNoJzog
MCwgJ2FmcmVxJzogMH0sCisgICAgIyBCaXRyYXRlIGNoYW5nZQorICAgIHsnZnMnOiAnMzIweDI0
MCcsICdmcic6IDMwLCAna2ZyJzogMTAsICdjJzogJyNmZjAwZmYnLCAndmJyJzogMjU2LCAnYWJy
JzogMCwgJ2Fzcic6IDAsICdhY2gnOiAwLCAnYWZyZXEnOiAwfSwKKworICAgICMjIEF1ZGlvLW9u
bHkgZmlsZXMKKyAgICAjIEJpdHJhdGUvQ29kZWJvb2sgY2hhbmdlcworICAgIHsnZnMnOiAnMHgw
JywgJ2ZyJzogMCwgJ2tmcic6IDAsICdjJzogJyMwMDAwMDAnLCAndmJyJzogMCwgJ2Ficic6IDEy
OCwgJ2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogMjAwMH0sCisgICAgeydmcyc6ICcw
eDAnLCAnZnInOiAwLCAna2ZyJzogMCwgJ2MnOiAnIzAwMDAwMCcsICd2YnInOiAwLCAnYWJyJzog
MTkyLCAnYXNyJzogNDQxMDAsICdhY2gnOiAxLCAnYWZyZXEnOiA0MDAwfSwKKworICAgICMjIEF1
ZGlvLVZpZGVvIGZpbGVzCisgICAgIyBGcmFtZSBzaXplIGNoYW5nZS4KKyAgICB7J2ZzJzogJzMy
MHgyNDAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjZmYwMDAwJywgJ3Zicic6IDI1Niwg
J2Ficic6IDEyOCwgJ2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogMjAwMH0sCisgICAg
eydmcyc6ICc2NDB4NDgwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnIzAwZmYwMCcsICd2
YnInOiAyNTYsICdhYnInOiAxMjgsICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDIw
MDB9LAorICAgICMgQXVkaW8gYml0cmF0ZSBjaGFuZ2UuCisgICAgeydmcyc6ICc2NDB4NDgwJywg
J2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnIzAwZmYwMCcsICd2YnInOiAyNTYsICdhYnInOiAx
OTIsICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDQwMDB9LAorICAgICMgVmlkZW8g
Yml0cmF0ZSBjaGFuZ2UuCisgICAgeydmcyc6ICc2NDB4NDgwJywgJ2ZyJzogMzAsICdrZnInOiAx
MCwgJ2MnOiAnIzAwZmZmZicsICd2YnInOiA1MTIsICdhYnInOiAxMjgsICdhc3InOiA0NDEwMCwg
J2FjaCc6IDEsICdhZnJlcSc6IDIwMDB9LAorXQorCitDT05GSUdfQ0hBTkdFX1RFU1RTID0gWwor
ICAgIFsidi1mcmFtZXJhdGUiLCAwLCAxLCAiVGVzdHMgJXMgdmlkZW8tb25seSBmcmFtZSByYXRl
IGNoYW5nZXMuIl0sCisgICAgWyJ2LWZyYW1lc2l6ZSIsIDEsIDIsICJUZXN0cyAlcyB2aWRlby1v
bmx5IGZyYW1lIHNpemUgY2hhbmdlcy4iXSwKKyAgICBbInYtYml0cmF0ZSIsIDEsIDMsICJUZXN0
cyAlcyB2aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iXSwKKyAgICBbImEtYml0cmF0ZSIsIDQs
IDUsICJUZXN0cyAlcyBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iXSwKKyAgICBbImF2LWZy
YW1lc2l6ZSIsIDYsIDcsICJUZXN0cyAlcyBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4
ZWQgY29udGVudC4iXSwKKyAgICBbImF2LWF1ZGlvLWJpdHJhdGUiLCA3LCA4LCAiVGVzdHMgJXMg
YXVkaW8gYml0cmF0ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIl0sCisgICAgWyJh
di12aWRlby1iaXRyYXRlIiwgNywgOSwgIlRlc3RzICVzIHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBp
biBtdWx0aXBsZXhlZCBjb250ZW50LiJdCitdCisKK0NPREVDX0lORk8gPSB7CisgICAgIm1wNCI6
IHsiYXVkaW8iOiAibXA0YS40MC4yIiwgInZpZGVvIjogImF2YzEuNEQ0MDAxIn0sCisgICAgIndl
Ym0iOiB7ImF1ZGlvIjogInZvcmJpcyIsICJ2aWRlbyI6ICJ2cDgifQorfQorCitIVE1MX1RFTVBM
QVRFID0gIiIiPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwv
c2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFT
b3VyY2VDb25maWdDaGFuZ2VUZXN0KCIlKG1lZGlhX2Zvcm1hdClzIiwgIiUoaWRBKXMiLCAiJShp
ZEIpcyIsICIlKGRlc2NyaXB0aW9uKXMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgorIiIiCisKK2RlZiBydW4oY21kX2xpbmUpOgorICAgIG9zLnN5c3RlbSgiICIu
am9pbihjbWRfbGluZSkpCisKK2RlZiBnZW5lcmF0ZV9tYW5pZmVzdChmaWxlbmFtZSwgbWVkaWFf
ZmlsZW5hbWUsIG1lZGlhX2Zvcm1hdCwgaGFzX2F1ZGlvLCBoYXNfdmlkZW8pOgorICAgIG1ham9y
X3R5cGUgPSAiYXVkaW8iCisgICAgaWYgaGFzX3ZpZGVvOgorICAgICAgICBtYWpvcl90eXBlID0g
InZpZGVvIgorCisgICAgY29kZWNzID0gW10KKyAgICBpZiBoYXNfdmlkZW86CisgICAgICAgIGNv
ZGVjcy5hcHBlbmQoQ09ERUNfSU5GT1ttZWRpYV9mb3JtYXRdWyJ2aWRlbyJdKQorCisgICAgaWYg
aGFzX2F1ZGlvOgorICAgICAgICBjb2RlY3MuYXBwZW5kKENPREVDX0lORk9bbWVkaWFfZm9ybWF0
XVsiYXVkaW8iXSkKKworICAgIG1pbWV0eXBlID0gIiVzLyVzO2NvZGVjcz1cIiVzXCIiICUgKG1h
am9yX3R5cGUsIG1lZGlhX2Zvcm1hdCwgIiwiLmpvaW4oY29kZWNzKSkKKworICAgIG1hbmlmZXN0
ID0geyAndXJsJzogbWVkaWFfZmlsZW5hbWUsICd0eXBlJzogbWltZXR5cGV9CisKKyAgICBmID0g
b3BlbihmaWxlbmFtZSwgIndiIikKKyAgICBmLndyaXRlKGpzb24uZHVtcHMobWFuaWZlc3QsIGlu
ZGVudD00LCBzZXBhcmF0b3JzPSgnLCcsICc6ICcpKSkKKyAgICBmLmNsb3NlKCkKKworZGVmIGdl
bmVyYXRlX3Rlc3RfaHRtbChtZWRpYV9mb3JtYXQsIGNvbmZpZ19jaGFuZ2VfdGVzdHMsIGVuY29k
aW5nX2lkcyk6CisgICAgZm9yIHRlc3RfaW5mbyBpbiBjb25maWdfY2hhbmdlX3Rlc3RzOgorICAg
ICAgICBmaWxlbmFtZSA9ICIuLi8uLi9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNo
YW5nZS0lcy0lcy5odG1sIiAlIChtZWRpYV9mb3JtYXQsIHRlc3RfaW5mb1swXSkKKyAgICAgICAg
aHRtbCA9IEhUTUxfVEVNUExBVEUgJSB7J21lZGlhX2Zvcm1hdCc6IG1lZGlhX2Zvcm1hdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZEEnOiBlbmNvZGluZ19pZHNbdGVzdF9p
bmZvWzFdXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZEInOiBlbmNvZGlu
Z19pZHNbdGVzdF9pbmZvWzJdXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdk
ZXNjcmlwdGlvbic6ICB0ZXN0X2luZm9bM10gJSAobWVkaWFfZm9ybWF0KX0KKyAgICAgICAgZiA9
IG9wZW4oZmlsZW5hbWUsICJ3YiIpCisgICAgICAgIGYud3JpdGUoaHRtbCkKKyAgICAgICAgZi5j
bG9zZSgpCisKKworZGVmIG1haW4oKToKKyAgICBlbmNvZGluZ19pZHMgPSBbXQorCisgICAgZm9y
IG1lZGlhX2Zvcm1hdCBpbiBNRURJQV9GT1JNQVRTOgorICAgICAgICBydW4oWyJta2RpciAiLCBt
ZWRpYV9mb3JtYXRdKQorCisgICAgICAgIGZvciBzZXR0aW5ncyBpbiBFTkNPREVfU0VUVElOR1M6
CisgICAgICAgICAgICB2aWRlb19iaXRyYXRlID0gc2V0dGluZ3NbJ3ZiciddCisgICAgICAgICAg
ICBoYXNfdmlkZW8gPSAodmlkZW9fYml0cmF0ZSA+IDApCisKKyAgICAgICAgICAgIGF1ZGlvX2Jp
dHJhdGUgPSBzZXR0aW5nc1snYWJyJ10KKyAgICAgICAgICAgIGhhc19hdWRpbyA9IChhdWRpb19i
aXRyYXRlID4gMCkKKyAgICAgICAgICAgIGJpdHJhdGUgPSB2aWRlb19iaXRyYXRlICsgYXVkaW9f
Yml0cmF0ZQorCisgICAgICAgICAgICBmcmFtZV9zaXplID0gc2V0dGluZ3NbJ2ZzJ10KKyAgICAg
ICAgICAgIGZyYW1lX3JhdGUgPSBzZXR0aW5nc1snZnInXQorICAgICAgICAgICAga2V5ZnJhbWVf
cmF0ZSA9IHNldHRpbmdzWydrZnInXQorICAgICAgICAgICAgY29sb3IgPSBzZXR0aW5nc1snYydd
CisKKyAgICAgICAgICAgIHNhbXBsZV9yYXRlID0gc2V0dGluZ3NbJ2FzciddCisgICAgICAgICAg
ICBjaGFubmVscyA9IHNldHRpbmdzWydhY2gnXQorICAgICAgICAgICAgZnJlcXVlbmN5ID0gc2V0
dGluZ3NbJ2FmcmVxJ10KKworICAgICAgICAgICAgY21kbGluZSA9IFsiZmZtcGVnIiwgIi15Il0K
KworICAgICAgICAgICAgaWRfcHJlZml4ID0gIiIKKyAgICAgICAgICAgIGlkX3BhcmFtcyA9ICIi
CisgICAgICAgICAgICBpZiBoYXNfYXVkaW86CisgICAgICAgICAgICAgICAgaWRfcHJlZml4ICs9
ICJhIgorICAgICAgICAgICAgICAgIGlkX3BhcmFtcyArPSAiLSVzSHotJXNjaCIgJSAoc2FtcGxl
X3JhdGUsIGNoYW5uZWxzKQorCisgICAgICAgICAgICAgICAgY2hhbm5lbF9sYXlvdXQgPSAiRkMi
CisgICAgICAgICAgICAgICAgc2luX2Z1bmMgPSAic2luKCVzKjIqUEkqdCkiICUgZnJlcXVlbmN5
CisgICAgICAgICAgICAgICAgZnVuYyA9IHNpbl9mdW5jCisgICAgICAgICAgICAgICAgaWYgY2hh
bm5lbHMgPT0gMjoKKyAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9sYXlvdXQgKz0gInxCQyIK
KyAgICAgICAgICAgICAgICAgICAgZnVuYyArPSAifCIgKyBzaW5fZnVuYworCisgICAgICAgICAg
ICAgICAgY21kbGluZSArPSBbIi1mIiwgImxhdmZpIiwgIi1pIiwgImFldmFsc3JjPVwiJXM6cz0l
czpjPSVzOmQ9JXNcIiIgJSAoZnVuYywgc2FtcGxlX3JhdGUsIGNoYW5uZWxfbGF5b3V0LCBEVVJB
VElPTildCisKKyAgICAgICAgICAgIGlmIGhhc192aWRlbzoKKyAgICAgICAgICAgICAgICBpZF9w
cmVmaXggKz0gInYiCisgICAgICAgICAgICAgICAgaWRfcGFyYW1zICs9ICItJXMtJXNmcHMtJXNr
ZnIiICUgKGZyYW1lX3NpemUsIGZyYW1lX3JhdGUsIGtleWZyYW1lX3JhdGUpCisKKyAgICAgICAg
ICAgICAgICBjbWRsaW5lICs9IFsiLWYiLCAibGF2ZmkiLCAiLWkiLCAiY29sb3I9JXM6ZHVyYXRp
b249JXM6c2l6ZT0lczpyYXRlPSVzIiAlIChjb2xvciwgRFVSQVRJT04sIGZyYW1lX3NpemUsIGZy
YW1lX3JhdGUpXQorCisgICAgICAgICAgICBpZiBoYXNfYXVkaW86CisgICAgICAgICAgICAgICAg
Y21kbGluZSArPSBbIi1iOmEiLCAiJXNrIiAlIGF1ZGlvX2JpdHJhdGVdCisKKyAgICAgICAgICAg
IGlmIGhhc192aWRlbzoKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWI6diIsICIlc2si
ICUgdmlkZW9fYml0cmF0ZV0KKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWtleWludF9t
aW4iLCAiJXMiICUga2V5ZnJhbWVfcmF0ZV0KKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsi
LWciLCAiJXMiICUga2V5ZnJhbWVfcmF0ZV0KKworCisgICAgICAgICAgICAgICAgdGV4dE92ZXJs
YXlJbmZvID0gIidkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnRleHQ9VGltZVxc
XFw6XFxcXCAle3B0c30iCisgICAgICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZvICs9ICIsZHJh
d3RleHQ9Zm9udGZpbGU9TW9ubzpmb250c2l6ZT0zMjp5PTMyOnRleHQ9U2l6ZVxcXFw6XFxcXCAl
cyIgJSAoZnJhbWVfc2l6ZSkKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixk
cmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnk9NjQ6dGV4dD1CaXRyYXRlXFxcXDpc
XFxcICVzIiAlIChiaXRyYXRlKQorICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAi
LGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6eT05Njp0ZXh0PUZyYW1lUmF0ZVxc
XFw6XFxcXCAlcyIgJSAoZnJhbWVfcmF0ZSkKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUlu
Zm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnk9MTI4OnRleHQ9S2V5
RnJhbWVSYXRlXFxcXDpcXFxcICVzIiAlIChrZXlmcmFtZV9yYXRlKQorCisgICAgICAgICAgICAg
ICAgaWYgaGFzX2F1ZGlvOgorICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0g
IixkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnk9MTYwOnRleHQ9U2FtcGxlUmF0
ZVxcXFw6XFxcXCAlcyIgJSAoc2FtcGxlX3JhdGUpCisgICAgICAgICAgICAgICAgICAgIHRleHRP
dmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6eT0xOTI6
dGV4dD1DaGFubmVsc1xcXFw6XFxcXCAlcyIgJSAoY2hhbm5lbHMpCisKKyAgICAgICAgICAgICAg
ICB0ZXh0T3ZlcmxheUluZm8gKz0gIiciCisgICAgICAgICAgICAgICAgY21kbGluZSArPSBbIi12
ZiIsIHRleHRPdmVybGF5SW5mb10KKworICAgICAgICAgICAgZW5jb2RpbmdfaWQgPSAiJXMtJXNr
JXMiICUgKGlkX3ByZWZpeCwgYml0cmF0ZSwgaWRfcGFyYW1zKQorCisgICAgICAgICAgICBpZiBs
ZW4oZW5jb2RpbmdfaWRzKSA8IGxlbihFTkNPREVfU0VUVElOR1MpOgorICAgICAgICAgICAgICAg
IGVuY29kaW5nX2lkcy5hcHBlbmQoZW5jb2RpbmdfaWQpCisKKyAgICAgICAgICAgIGZpbGVuYW1l
X2Jhc2UgPSAiJXMvdGVzdC0lcyIgJSAobWVkaWFfZm9ybWF0LCBlbmNvZGluZ19pZCkKKyAgICAg
ICAgICAgIG1lZGlhX2ZpbGVuYW1lID0gZmlsZW5hbWVfYmFzZSArICIuIiArIG1lZGlhX2Zvcm1h
dAorICAgICAgICAgICAgbWFuaWZlc3RfZmlsZW5hbWUgPSBmaWxlbmFtZV9iYXNlICsgIi1tYW5p
ZmVzdC5qc29uIgorCisgICAgICAgICAgICBjbWRsaW5lLmFwcGVuZChtZWRpYV9maWxlbmFtZSkK
KyAgICAgICAgICAgIHJ1bihjbWRsaW5lKQorCisgICAgICAgICAgICAjIFJlbXV4IGZpbGUgc28g
aXQgY29uZm9ybXMgdG8gTVNFIGJ5dGVzdHJlYW0gcmVxdWlyZW1lbnRzLgorICAgICAgICAgICAg
aWYgbWVkaWFfZm9ybWF0ID09ICJ3ZWJtIjoKKyAgICAgICAgICAgICAgICB0bXBfZmlsZW5hbWUg
PSBtZWRpYV9maWxlbmFtZSArICIudG1wIgorICAgICAgICAgICAgICAgIHJ1bihbIm1zZV93ZWJt
X3JlbXV4ZXIiLCBtZWRpYV9maWxlbmFtZSwgdG1wX2ZpbGVuYW1lXSkKKyAgICAgICAgICAgICAg
ICBydW4oWyJtdiIsIHRtcF9maWxlbmFtZSwgbWVkaWFfZmlsZW5hbWVdKQorICAgICAgICAgICAg
ZWxpZiBtZWRpYV9mb3JtYXQgPT0gIm1wNCI6CisgICAgICAgICAgICAgICAgcnVuKFsiTVA0Qm94
IiwgIi1kYXNoIiwgIjI1MCIsICItcmFwIiwgbWVkaWFfZmlsZW5hbWVdKQorICAgICAgICAgICAg
ICAgIHJ1bihbIm12IiwgZmlsZW5hbWVfYmFzZSArICJfZGFzaC5tcDQiLCBtZWRpYV9maWxlbmFt
ZV0pCisgICAgICAgICAgICAgICAgcnVuKFsicm0iLCBmaWxlbmFtZV9iYXNlICsgIl9kYXNoLm1w
ZCJdKQorCisgICAgICAgICAgICBnZW5lcmF0ZV9tYW5pZmVzdChtYW5pZmVzdF9maWxlbmFtZSwg
bWVkaWFfZmlsZW5hbWUsIG1lZGlhX2Zvcm1hdCwgaGFzX2F1ZGlvLCBoYXNfdmlkZW8pCisgICAg
ICAgIGdlbmVyYXRlX3Rlc3RfaHRtbChtZWRpYV9mb3JtYXQsIENPTkZJR19DSEFOR0VfVEVTVFMs
IGVuY29kaW5nX2lkcykKKworaWYgJ19fbWFpbl9fJyA9PSBfX25hbWVfXzoKKyAgICBtYWluKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS9tcDQvdGVzdC1hLTEyOGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1h
LTEyOGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2NhYTQ2MGU5ZjA3
ODI3ODY4MGM2Y2RiOWUxY2U5MTRhOGM1OWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTI4
ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwi
OiAibXA0L3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLm1wNCIsCisgICAgInR5cGUiOiAiYXVkaW8v
bXA0O2NvZGVjcz1cIm1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS9tcDQvdGVzdC1hLTE5MmstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1h
LTE5MmstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWE2ZjMzOWI3OTE4
MGJhOGU4MTFmMWM4OTljMGEzY2MxNGY0NDUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTky
ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwi
OiAibXA0L3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNoLm1wNCIsCisgICAgInR5cGUiOiAiYXVkaW8v
bXA0O2NvZGVjcz1cIm1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnIt
bWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBr
ZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzMxZTMxNzBlNWNhNTIzNDdlZmYzZGVmOGU1
NDA5ZjEyMWI4YWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gt
MzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAg
ICJ1cmwiOiAibXA0L3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2Zy
Lm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEu
NDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1h
di0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVz
dC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43OGRlZDYxMWY2ODJkNTJlNzgxODRhN2NiY2U0N2YzYjEwMmFhN2QwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qt
YXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUi
OiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNo
LTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi00NDhrLTQ0MTAwSHot
MWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTQ2MzQ5
ZjkzZWQyMThkOTcwZjNlZmE4YjNlNzQ4YzAxNmRjNzBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0
LWF2LTQ0OGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBA
IC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFj
aC02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVj
cz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBr
ZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2Vz
L21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMt
MTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGRhOWI0Y2UzZjczOGMzNDYyYmUyNDRl
ZTY5ZjQxYzJlNGMyMTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTY0MGstNDQxMDBIei0x
Y2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAorewor
ICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEw
a2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1w
NGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVz
dC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTMy
MHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWI2ZDAyNDViYTVk
ZThhNTlkY2RmNzk1YmEyYWIwMDg2NDdlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhr
LTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAg
ICJ1cmwiOiAibXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci5tcDQiLAorICAgICJ0
eXBlIjogInZpZGVvL21wNDtjb2RlY3M9XCJhdmMxLjRENDAwMVwiIgorfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
cmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2UwMjg0NDEwNWJhYTYyOWJmNDM4ZTFhNmU5YzFjYzYyZWQ5Nzhi
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5p
ZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qtdi0xMjhr
LTMyMHgyNDAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNz
PVwiYXZjMS40RDQwMDFcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uv
bXA0L3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12
LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzRm
NGJjYmRmY2NhZThlNWEzODY4MzFlOTEyODY3OTE3Y2MwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rl
c3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQg
QEAKK3sKKyAgICAidXJsIjogIm1wNC90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLm1w
NCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxXCIiCit9Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMjU2ay0zMjB4MjQw
LTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBr
ZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MmQzZTFlNTI0ZWM3ZjkxZmQyNGNmZTA4ZDE5
ZmU1ODA5NTM1NmFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBz
LTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQv
dGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtmci5tcDQiLAorICAgICJ0eXBlIjogInZpZGVv
L21wNDtjb2RlY3M9XCJhdmMxLjRENDAwMVwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24gYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90
ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyNGRhODE0
OWZlNmQzNmM4OTE1MDFkMDU5Zjg1NjIxZjA2Y2RlMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0
LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAg
ICJ1cmwiOiAid2VibS90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC53ZWJtIiwKKyAgICAidHlwZSI6
ICJhdWRpby93ZWJtO2NvZGVjcz1cInZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2Vz
L21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24g
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2Vi
bS90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMmZh
MWU4YzMzNWRmMTZmMTZjNDkxMDkwODhiOWE5MTQ4YzUzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90
ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAorewor
ICAgICJ1cmwiOiAid2VibS90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC53ZWJtIiwKKyAgICAidHlw
ZSI6ICJhdWRpby93ZWJtO2NvZGVjcz1cInZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMw
ZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0
MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmOWYwN2FmMTVkYjhhY2Iw
OGZlYzY5NjdhNmM5MmVmYjYyYmU1N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGst
NDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEs
NCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0
MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZw
OCx2b3JiaXNcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90
ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29u
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dl
Ym0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mN2VjODZiM2RiOTI3Nzg3ODcwNWZkMTcwOGVjN2FlYmE3MWQwODg3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBm
cHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndl
Ym0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIud2VibSIsCisg
ICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDgsdm9yYmlzXCIiCit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNo
LTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6
LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhNTlk
YjU4NmVkNTliYmIzMDhjZjQ5NjhjOWRlOTkwNzE5M2E3MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rl
c3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24K
QEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6
LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07
Y29kZWNzPVwidnA4LHZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNv
dXJjZS93ZWJtL3Rlc3QtYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1h
bmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRp
YS1zb3VyY2Uvd2VibS90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NzIzYjM0YTgxOWNmN2QzYTQ2OWFiY2EyYWQ2
MGVhMTVhOWJmMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gt
NjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAg
ICJ1cmwiOiAid2VibS90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOCx2b3JiaXNcIiIK
K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0z
MjB4MjQwLTI0ZnBzLThrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRm
cHMtOGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZTEwM2FjYTliNjZkOGM2ZTE0YThl
ZWIwZmQ3ODg4MzAyMDY5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQw
LTI0ZnBzLThrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjog
IndlYm0vdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLndlYm0iLAorICAgICJ0eXBlIjog
InZpZGVvL3dlYm07Y29kZWNzPVwidnA4XCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL3dlYm0vdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5q
c29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNl
L3dlYm0vdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZkZWViNDAxZDk2OTExNWU1ZDNmZTE3OGUzOWQwOTBjN2M3NjY0OTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1z
b3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24K
QEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAt
MzBmcHMtMTBrZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDhc
IiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4
ay02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay02NDB4NDgw
LTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUzMDQ2MDY2NzgxNjBmZjg3
NWE0MWY5OTc5MGJlOGNiYThlNzUyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTY0
MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAi
dXJsIjogIndlYm0vdGVzdC12LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAi
dHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOFwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFu
aWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS93ZWJtL3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNv
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNDcwNjc0YmZmNWQ3NWRhYTk3MmU0NzJmYjIyMTkyODc0MDgxODNkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVz
dC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LXYtMjU2ay0z
MjB4MjQwLTMwZnBzLTEwa2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNz
PVwidnA4XCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208048</attachid>
            <date>2013-08-02 15:17:43 -0700</date>
            <delta_ts>2013-08-05 09:59:09 -0700</delta_ts>
            <desc>Address Qt build failures.</desc>
            <filename>bug-118752-20130802151742.patch</filename>
            <type>text/plain</type>
            <size>313918</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlZDBhMWM0ZWE4NGU3
OTY1OTI2ZjNiN2U5MDA1ZDczNzI0Zjg2NS4uNzYzNTJiNDg5YTljNmFjZjk5ZTlmMDVhNGQ3MDNi
YzFmNWU2NjQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA3LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIGJsaW5rIE1lZGlh
U291cmNlIGNoYW5nZXMgc2luY2UgZm9yay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODc1MgorCisgICAgICAgIEFkZCBmaWxlcyB0byBwcm9qZWN0
LiBGaXggY29tcGlsZSBlcnJvcnMgZXhwb3NlZCBieSBlbmFibGluZy4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2VSZWdpc3RyeTo6bG9va3VwTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bG9hZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUpOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisKKyAgICAgICAgTWVyZ2UKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvYzM4ZTI5NTVkYjk4YTMwMGE1MzViNjkyODY5ZmVh
MGU0MTUwMTQ5NworICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hy
b21pdW0vYmxpbmsvKy84NTY4MDE1ZTliZWUxZGU3ZmNjZWUyODE2M2Y5ZTRhNGI1MWY5YmFmCisg
ICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8r
LzE0NDE3ZThmYTYyOTRmNGU3ZGJjMWUwZmFjNTQ5Mzk4NTIyYjJmOTcKKyAgICAgICAgaHR0cHM6
Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZjQzYTU0OTZmMjMz
MTAyZjg4NjFhMDY3YTljZjgwNTNjMDEwZDQwMQorICAgICAgICBodHRwczovL2Nocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy81Nzc3MTQzOTgwNmY3YzZlNmEyNzJlZmIx
ZWE3MjkwMGY1ZjZhMDE1CisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9ibGluay8rLzhjNzdhNzkwYTlkMjI1MTk0ZGIwYTg4MzIzOTlkMGY5ZTFmYTU0
ZWMKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2Js
aW5rLysvZDMzYWUzZmE3YTg1OTJlOTQ2NTAzZWQxN2Y4NjJhMjdjNmQ5ZGRlMQorICAgICAgICBo
dHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy8xY2FhYTlj
NTFmMDZlMWI5MzQxZDU4Yzk5NGY3N2ZkNTlmY2QyMzZkCisgICAgICAgIGh0dHBzOi8vY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2U5NTcyMDM5M2IwZWJlNjdmMTlk
ZTM5YmI3N2NkZjI5MjYxNjU1MTIKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL2JsaW5rLysvYmFkMmMxYjRiNzBmYWVjNzMxYjJhZDNjYzhhNGNjZjI4
ZGU2Y2MzOAorICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vYmxpbmsvKy9hNzg3MzQzMGMzZDVjOTM3MzMzNmM2ZjM5OTNkYjNjYjQyMjhlOWNkCisgICAg
ICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rLzUw
ODk2NmQ1ZTMyMzYwYjNjZWMwNThmOWZiYWUwMDE0NTQyZmJjNTIKKyAgICAgICAgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvMzcxZGZlNzJmNjFjZTZm
NzNlNmMyNDIzMjRkYTczYzQxNWQzOGJlMworCiAyMDEzLTA4LTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IGVnbHBsYXRmb3JtLmgg
dG8gYmUgZm91bmQgYnkgV2luZG93cyBXZWJHTCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNzVjZWUzNzEzZmY2ZGYxMWY2ZjhjODlkY2VmZGYyYWQ1MWUwZGY0Yy4uNjk0NWFkYzgwM2Rj
NTM4MDBlZDQwMTE3M2RkZDY4OTEwOGFmYmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
OSw2ICsyMDksMTAgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDFkMzQ2ZTJlN2RjYmUwYzMxMDVjNWRhMGYzZmQwZWI4MzI0
MGQ3MDIuLmI5MzYyYWVlMTdiNjk2ZWI0OTZjYjUzM2IzOWMzMDFlYzI3ZTBkNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI3Niw3ICsyNzYsNyBAQAogI2luY2x1ZGUgIkpTTWVk
aWFMaXN0LmNwcCIKICNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0LmNwcCIKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQotI2luY2x1ZGUgIkpTTWVkaWFTb3VyY2UuY3BwIgorI2luY2x1ZGUgIkpT
V2ViS2l0TWVkaWFTb3VyY2UuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5l
bC5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnQuY3BwIgpAQCAtMzIxLDggKzMyMSw4IEBA
CiAjaW5jbHVkZSAiSlNTaGFyZWRXb3JrZXIuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGUuY3BwIgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiSlNT
b3VyY2VCdWZmZXIuY3BwIgotI2luY2x1ZGUgIkpTU291cmNlQnVmZmVyTGlzdC5jcHAiCisjaW5j
bHVkZSAiSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1NRTEVycm9yLmNwcCIKICNpbmNs
dWRlICJKU1NRTEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBhYWIzZTgxN2E1M2Q2MzZlYTUzYjA5YWRhY2ZkZWFjM2RkYWM4YWY4Li5iZjE5YTQ1MGVjN2Uy
NDhmZTQ5MjcxZDcyODVkNzliOGMwNzA2Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTExMiw5ICsxMTIsMTMgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmlkbCBc
Ci0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCi0g
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAorCSQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDA2NjcwY2I3OTNk
OGQxMmZkMGY5MzQ1ODEyZWUyMTNjMzFkOTZhYTkuLjczZTZjZjllY2M3MDFiZThjODI1YzM0MmYw
ZTcwODA5MDJlNjYwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTY3NCw3ICs2
NzQsMTEgQEAgZW5hYmxlPyhNRURJQV9TT1VSQ0UpIHsKICAgSURMX0JJTkRJTkdTICs9IFwKICAg
ICAkJFBXRC9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCiAgICAgJCRQV0Qv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRsIFwKLSAgICAkJFBXRC9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAgJCRQV0QvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisgICAgJCRQV0QvTW9kdWxlcy9tZWRpYXNv
dXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0TWVkaWFTb3VyY2UuaWRsIFwKKyAgICAkJFBXRC9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5pZGwKIH0KIAogcXRQcmVwYXJlVG9vbChRTUFLRV9NT0MsIG1v
YykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDNkNGYyY2RkYTIyYTVjNDM4N2Fm
NzU1YjdlNjYxOTNjYjIxN2UxN2EuLmZhN2Q1OTJkNmU3Y2Q1MmNlNjhkMWRkMmVjNmRkMWJhZDk2
YmZkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTE3LDYgKzUxNyw4IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01l
ZGlhTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdE1lZGlhU291cmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdE1lZGlhU291cmNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZWRpYVN0cmVhbS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
Y3BwIFwKQEAgLTY4Myw2ICs2ODUsMTAgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dFNvdXJjZUJ1ZmZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRTb3Vy
Y2VCdWZmZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0U291cmNlQnVmZmVy
TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXApAQCAtMTI2NSw2ICsx
MjcxLDEwIEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxN
ZWRpYVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRN
ZWRpYVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRT
b3VyY2VCdWZmZXIuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9M
b2NhbE1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtRXZlbnQuaWRsIFwKQEAgLTE5NzcsMTIgKzE5ODcsMjIgQEAgd2ViY29yZV9tb2R1bGVzX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2Jh
bFNjb3BlSW5kZXhlZERhdGFiYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2VCYXNlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0
cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3Ry
YWludHNJbXBsLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IGVlNjMyNjljNmU4YjgwNjRhYjY0MTNhMjIyODY2YTdi
MTc3MDE5YTQuLjBlYjAyOWRiZDdiNzBkMWYyMjE3N2QwYzdmNTI5NTFlMWQ3YTI0MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zNCwxMSArMzQsMTUgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAi
Q29udGVudFR5cGUuaCIKLSNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01
MCw2NCArNTQsMjQgQEAgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4gTWVkaWFTb3VyY2U6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogfQogCiBNZWRpYVNvdXJjZTo6TWVk
aWFTb3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IEFjdGl2ZURP
TU9iamVjdChjb250ZXh0KQotICAgICwgbV9yZWFkeVN0YXRlKGNsb3NlZEtleXdvcmQoKSkKLSAg
ICAsIG1fYXN5bmNFdmVudFF1ZXVlKEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUodGhpcykpCisg
ICAgOiBNZWRpYVNvdXJjZUJhc2UoY29udGV4dCkKIHsKLSAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBT
b3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2FzeW5j
RXZlbnRRdWV1ZS5nZXQoKSk7Ci0gICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzID0gU291cmNlQnVm
ZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9hc3luY0V2ZW50UXVl
dWUuZ2V0KCkpOworICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlOjpNZWRpYVNvdXJjZSAlcCIs
IHRoaXMpOworICAgIG1fc291cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGFzeW5jRXZlbnRRdWV1ZSgpKTsKKyAgICBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBhc3luY0V2ZW50UXVldWUoKSk7CiB9CiAKLWNvbnN0IFN0cmluZyYgTWVkaWFT
b3VyY2U6Om9wZW5LZXl3b3JkKCkKK01lZGlhU291cmNlOjp+TWVkaWFTb3VyY2UoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBvcGVuLCAoQVNDSUlMaXRlcmFsKCJv
cGVuIikpKTsKLSAgICByZXR1cm4gb3BlbjsKLX0KLQotY29uc3QgU3RyaW5nJiBNZWRpYVNvdXJj
ZTo6Y2xvc2VkS2V5d29yZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGNsb3NlZCwgKEFTQ0lJTGl0ZXJhbCgiY2xvc2VkIikpKTsKLSAgICByZXR1cm4gY2xvc2Vk
OwotfQotCi1jb25zdCBTdHJpbmcmIE1lZGlhU291cmNlOjplbmRlZEtleXdvcmQoKQotewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlbmRlZCwgKEFTQ0lJTGl0ZXJhbCgi
ZW5kZWQiKSkpOwotICAgIHJldHVybiBlbmRlZDsKLX0KLQotU291cmNlQnVmZmVyTGlzdCogTWVk
aWFTb3VyY2U6OnNvdXJjZUJ1ZmZlcnMoKQotewotICAgIHJldHVybiBtX3NvdXJjZUJ1ZmZlcnMu
Z2V0KCk7Ci19Ci0KLVNvdXJjZUJ1ZmZlckxpc3QqIE1lZGlhU291cmNlOjphY3RpdmVTb3VyY2VC
dWZmZXJzKCkKLXsKLSAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9u
Ci0gICAgcmV0dXJuIG1fYWN0aXZlU291cmNlQnVmZmVycy5nZXQoKTsKLX0KLQotZG91YmxlIE1l
ZGlhU291cmNlOjpkdXJhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVhZHlTdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkgPyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFO
KCkgOiBtX3ByaXZhdGUtPmR1cmF0aW9uKCk7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2U6OnNldER1
cmF0aW9uKGRvdWJsZSBkdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKGR1
cmF0aW9uIDwgMC4wIHx8IHN0ZDo6aXNuYW4oZHVyYXRpb24pKSB7Ci0gICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChtX3JlYWR5
U3RhdGUgIT0gb3BlbktleXdvcmQoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fcHJpdmF0ZS0+c2V0RHVyYXRpb24oZHVy
YXRpb24pOworICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlOjp+TWVkaWFTb3VyY2UgJXAiLCB0
aGlzKTsKKyAgICBBU1NFUlQoaXNDbG9zZWQoKSk7CiB9CiAKIFNvdXJjZUJ1ZmZlciogTWVkaWFT
b3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXct
ZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1hZGRzb3VyY2VidWZm
ZXIKKyAgICBMT0coTWVkaWEsICJNZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKCVzKSAlcCIs
IHR5cGUuYXNjaWkoKS5kYXRhKCksIHRoaXMpOworCisgICAgLy8gMi4yIGh0dHBzOi8vZHZjcy53
My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UuaHRtbCN3aWRsLU1lZGlhU291cmNlLWFkZFNvdXJjZUJ1ZmZlci1Tb3VyY2VCdWZmZXIt
RE9NU3RyaW5nLXR5cGUKICAgICAvLyAxLiBJZiB0eXBlIGlzIG51bGwgb3IgYW4gZW1wdHkgdGhl
biB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZAogICAgIC8vIGFib3J0
IHRoZXNlIHN0ZXBzLgogICAgIGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKSB7
CkBAIC0xMjQsNyArODgsNyBAQCBTb3VyY2VCdWZmZXIqIE1lZGlhU291cmNlOjphZGRTb3VyY2VC
dWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYwogCiAgICAgLy8gNC4g
SWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlIHRo
ZW4gdGhyb3cgYW4KICAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgotICAgIGlmICghbV9wcml2YXRlIHx8IG1fcmVhZHlTdGF0ZSAhPSBvcGVu
S2V5d29yZCgpKSB7CisgICAgaWYgKCFpc09wZW4oKSkgewogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMzIsMzggKzk2LDI5IEBA
IFNvdXJjZUJ1ZmZlciogTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcm
IHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgLy8gNS4gQ3JlYXRlIGEgbmV3IFNvdXJjZUJ1
ZmZlciBvYmplY3QgYW5kIGFzc29jaWF0ZWQgcmVzb3VyY2VzLgogICAgIENvbnRlbnRUeXBlIGNv
bnRlbnRUeXBlKHR5cGUpOwogICAgIFZlY3RvcjxTdHJpbmc+IGNvZGVjcyA9IGNvbnRlbnRUeXBl
LmNvZGVjcygpOwotICAgIE93blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQ
cml2YXRlOwotICAgIHN3aXRjaCAobV9wcml2YXRlLT5hZGRTb3VyY2VCdWZmZXIoY29udGVudFR5
cGUudHlwZSgpLCBjb2RlY3MsICZzb3VyY2VCdWZmZXJQcml2YXRlKSkgewotICAgIGNhc2UgTWVk
aWFTb3VyY2VQcml2YXRlOjpPazogewotICAgICAgICBBU1NFUlQoc291cmNlQnVmZmVyUHJpdmF0
ZSk7Ci0gICAgICAgIFJlZlB0cjxTb3VyY2VCdWZmZXI+IGJ1ZmZlciA9IFNvdXJjZUJ1ZmZlcjo6
Y3JlYXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUucmVsZWFzZSgpLCB0aGlzKTsKLQotICAgICAgICAv
LyA2LiBBZGQgdGhlIG5ldyBvYmplY3QgdG8gc291cmNlQnVmZmVycyBhbmQgZmlyZSBhIGFkZHNv
dXJjZWJ1ZmZlciBvbiB0aGF0IG9iamVjdC4KLSAgICAgICAgbV9zb3VyY2VCdWZmZXJzLT5hZGQo
YnVmZmVyKTsKLSAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5hZGQoYnVmZmVyKTsKLSAg
ICAgICAgLy8gNy4gUmV0dXJuIHRoZSBuZXcgb2JqZWN0IHRvIHRoZSBjYWxsZXIuCi0gICAgICAg
IHJldHVybiBidWZmZXIuZ2V0KCk7Ci0gICAgfQotICAgIGNhc2UgTWVkaWFTb3VyY2VQcml2YXRl
OjpOb3RTdXBwb3J0ZWQ6Ci0gICAgICAgIC8vIDIgKGNvbnQpLiBJZiB0eXBlIGNvbnRhaW5zIGEg
TUlNRSB0eXBlIC4uLiB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGUgdHlwZXMgCi0gICAg
ICAgIC8vIHNwZWNpZmllZCBmb3IgdGhlIG90aGVyIFNvdXJjZUJ1ZmZlciBvYmplY3RzIGluIHNv
dXJjZUJ1ZmZlcnMsIHRoZW4gdGhyb3cKLSAgICAgICAgLy8gYSBOT1RfU1VQUE9SVEVEX0VSUiBl
eGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICBjYXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6
UmVhY2hlZElkTGltaXQ6Ci0gICAgICAgIC8vIDMgKGNvbnQpLiBJZiB0aGUgdXNlciBhZ2VudCBj
YW4ndCBoYW5kbGUgYW55IG1vcmUgU291cmNlQnVmZmVyIG9iamVjdHMgdGhlbiB0aHJvdyAKLSAg
ICAgICAgLy8gYSBRVU9UQV9FWENFRURFRF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KLSAgICAgICAgZWMgPSBRVU9UQV9FWENFRURFRF9FUlI7CisgICAgT3duUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBjcmVhdGVTb3VyY2VCdWZmZXJQ
cml2YXRlKGNvbnRlbnRUeXBlLnR5cGUoKSwgY29kZWNzLCBlYyk7CisKKyAgICBpZiAoIXNvdXJj
ZUJ1ZmZlclByaXZhdGUpIHsKKyAgICAgICAgQVNTRVJUKGVjID09IE5PVF9TVVBQT1JURURfRVJS
IHx8IGVjID09IFFVT1RBX0VYQ0VFREVEX0VSUik7CisgICAgICAgIC8vIDIuIElmIHR5cGUgY29u
dGFpbnMgYSBNSU1FIHR5cGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIC4uLiwgdGhlbiB0aHJvdyBh
IE5PVF9TVVBQT1JURURfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAg
ICAgIC8vIDMuIElmIHRoZSB1c2VyIGFnZW50IGNhbid0IGhhbmRsZSBhbnkgbW9yZSBTb3VyY2VC
dWZmZXIgb2JqZWN0cyB0aGVuIHRocm93IGEgUVVPVEFfRVhDRUVERURfRVJSIGV4Y2VwdGlvbiBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPFNvdXJjZUJ1ZmZl
cj4gYnVmZmVyID0gU291cmNlQnVmZmVyOjpjcmVhdGUoc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxl
YXNlKCksIHRoaXMsIGFzeW5jRXZlbnRRdWV1ZSgpKTsKKyAgICAvLyA2LiBBZGQgdGhlIG5ldyBv
YmplY3QgdG8gc291cmNlQnVmZmVycyBhbmQgZmlyZSBhIGFkZHNvdXJjZWJ1ZmZlciBvbiB0aGF0
IG9iamVjdC4KKyAgICBtX3NvdXJjZUJ1ZmZlcnMtPmFkZChidWZmZXIpOworICAgIG1fYWN0aXZl
U291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7CisgICAgLy8gNy4gUmV0dXJuIHRoZSBuZXcgb2Jq
ZWN0IHRvIHRoZSBjYWxsZXIuCisgICAgcmV0dXJuIGJ1ZmZlci5nZXQoKTsKIH0KIAogdm9pZCBN
ZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciogYnVmZmVyLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwt
bWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tcmVt
b3Zlc291cmNlYnVmZmVyCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJj
ZUJ1ZmZlcigpICVwIiwgdGhpcyk7CisgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlcj4gcHJvdGVjdChi
dWZmZXIpOworCisgICAgLy8gMi4yIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9y
YXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlh
U291cmNlLXJlbW92ZVNvdXJjZUJ1ZmZlci12b2lkLVNvdXJjZUJ1ZmZlci1zb3VyY2VCdWZmZXIK
ICAgICAvLyAxLiBJZiBzb3VyY2VCdWZmZXIgaXMgbnVsbCB0aGVuIHRocm93IGFuIElOVkFMSURf
QUNDRVNTX0VSUiBleGNlcHRpb24gYW5kCiAgICAgLy8gYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAg
aWYgKCFidWZmZXIpIHsKQEAgLTE3MSw5OCArMTI2LDY4IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnJl
bW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyAyLiBJZiBzb3VyY2VCdWZmZXJzIGlz
IGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZAotICAg
IC8vIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmICghbV9wcml2YXRlIHx8ICFtX3NvdXJjZUJ1
ZmZlcnMtPmxlbmd0aCgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyAzLiBJZiBzb3VyY2VCdWZmZXIgc3BlY2lmaWVz
IGFuIG9iamVjdCB0aGF0IGlzIG5vdCBpbiBzb3VyY2VCdWZmZXJzIHRoZW4KKyAgICAvLyAyLiBJ
ZiBzb3VyY2VCdWZmZXIgc3BlY2lmaWVzIGFuIG9iamVjdCB0aGF0IGlzIG5vdCBpbiBzb3VyY2VC
dWZmZXJzIHRoZW4KICAgICAvLyB0aHJvdyBhIE5PVF9GT1VORF9FUlIgZXhjZXB0aW9uIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KLSAgICAvLyA2LiBSZW1vdmUgc291cmNlQnVmZmVyIGZyb20gc291
cmNlQnVmZmVycyBhbmQgZmlyZSBhIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudAotICAgIC8vIG9u
IHRoYXQgb2JqZWN0LgotICAgIGlmICghbV9zb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKSkg
eworICAgIGlmICghbV9zb3VyY2VCdWZmZXJzLT5sZW5ndGgoKSB8fCAhbV9zb3VyY2VCdWZmZXJz
LT5jb250YWlucyhidWZmZXIpKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIDcuIERlc3Ryb3kgYWxsIHJlc291cmNlcyBmb3Ig
c291cmNlQnVmZmVyLgotICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+cmVtb3ZlKGJ1ZmZlcik7
CisgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlci51cGRhdGluZyBhdHRyaWJ1dGUgZXF1YWxz
IHRydWUsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6IC4uLgorICAgIGJ1ZmZlci0+YWJv
cnRJZlVwZGF0aW5nKCk7CiAKLSAgICAvLyA0LiBSZW1vdmUgdHJhY2sgaW5mb3JtYXRpb24gZnJv
bSBhdWRpb1RyYWNrcywgdmlkZW9UcmFja3MsIGFuZCB0ZXh0VHJhY2tzIGZvciBhbGwgdHJhY2tz
IAotICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2VCdWZmZXIgYW5kIGZpcmUgYSBzaW1wbGUg
ZXZlbnQgbmFtZWQgY2hhbmdlIG9uIHRoZSBtb2RpZmllZCBsaXN0cy4KKyAgICAvLyBTdGVwcyA0
LTkgYXJlIHJlbGF0ZWQgdG8gdXBkYXRpbmcgYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQg
dGV4dFRyYWNrcyB3aGljaCBhcmVuJ3QgaW1wbG1lbnRlZCB5ZXQuCiAgICAgLy8gRklYTUUoOTE2
NDkpOiBzdXBwb3J0IHRyYWNrIHNlbGVjdGlvbgogCi0gICAgLy8gNS4gSWYgc291cmNlQnVmZmVy
IGlzIGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMsIHRoZW4gcmVtb3ZlIGl0IGZyb20gdGhhdCBsaXN0
IGFuZCBmaXJlIGEKLSAgICAvLyByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQgb24gdGhhdCBvYmpl
Y3QuCi0gICAgLy8gRklYTUUoOTE2NDkpOiBzdXBwb3J0IHRyYWNrIHNlbGVjdGlvbgotfQorICAg
IC8vIDEwLiBJZiBzb3VyY2VCdWZmZXIgaXMgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhlbiBy
ZW1vdmUgc291cmNlQnVmZmVyIGZyb20gYWN0aXZlU291cmNlQnVmZmVycyAuLi4KKyAgICBtX2Fj
dGl2ZVNvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIpOwogCi1jb25zdCBTdHJpbmcmIE1lZGlh
U291cmNlOjpyZWFkeVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwor
ICAgIC8vIDExLiBSZW1vdmUgc291cmNlQnVmZmVyIGZyb20gc291cmNlQnVmZmVycyBhbmQgZmly
ZSBhIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudAorICAgIC8vIG9uIHRoYXQgb2JqZWN0LgorICAg
IG1fc291cmNlQnVmZmVycy0+cmVtb3ZlKGJ1ZmZlcik7CisKKyAgICAvLyAxMi4gRGVzdHJveSBh
bGwgcmVzb3VyY2VzIGZvciBzb3VyY2VCdWZmZXIuCisgICAgYnVmZmVyLT5yZW1vdmVkRnJvbU1l
ZGlhU291cmNlKCk7CiB9CiAKLXZvaWQgTWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoY29uc3Qg
U3RyaW5nJiBzdGF0ZSkKK3ZvaWQgTWVkaWFTb3VyY2U6Om9uUmVhZHlTdGF0ZUNoYW5nZShjb25z
dCBBdG9taWNTdHJpbmcmIG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKQog
ewotICAgIEFTU0VSVChzdGF0ZSA9PSBvcGVuS2V5d29yZCgpIHx8IHN0YXRlID09IGNsb3NlZEtl
eXdvcmQoKSB8fCBzdGF0ZSA9PSBlbmRlZEtleXdvcmQoKSk7Ci0gICAgaWYgKG1fcmVhZHlTdGF0
ZSA9PSBzdGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU3RyaW5nIG9sZFN0YXRlID0gbV9y
ZWFkeVN0YXRlOwotICAgIG1fcmVhZHlTdGF0ZSA9IHN0YXRlOwotCi0gICAgaWYgKG1fcmVhZHlT
dGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJzLT5jbGVh
cigpOwotICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmNsZWFyKCk7Ci0gICAgICAgIG1f
cHJpdmF0ZS5jbGVhcigpOwotICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJr
aXRzb3VyY2VjbG9zZUV2ZW50KTsKKyAgICBpZiAoaXNPcGVuKCkpIHsKKyAgICAgICAgc2NoZWR1
bGVFdmVudChldmVudE5hbWVzKCkuc291cmNlb3BlbkV2ZW50KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChvbGRTdGF0ZSA9PSBvcGVuS2V5d29yZCgpICYmIG1fcmVhZHlTdGF0
ZSA9PSBlbmRlZEtleXdvcmQoKSkgewotICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMo
KS53ZWJraXRzb3VyY2VlbmRlZEV2ZW50KTsKKyAgICBpZiAob2xkU3RhdGUgPT0gb3BlbktleXdv
cmQoKSAmJiBuZXdTdGF0ZSA9PSBlbmRlZEtleXdvcmQoKSkgeworICAgICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS5zb3VyY2VlbmRlZEV2ZW50KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gb3BlbktleXdvcmQoKSkgewotICAgICAgICBz
Y2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VvcGVuRXZlbnQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotfQorICAgIEFTU0VSVChpc0Nsb3NlZCgpKTsKIAotdm9pZCBNZWRp
YVNvdXJjZTo6ZW5kT2ZTdHJlYW0oY29uc3QgU3RyaW5nJiBlcnJvciwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgLy8gMy4xIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1m
aWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLWVuZG9mc3RyZWFtCi0g
ICAgLy8gMS4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4i
IHN0YXRlIHRoZW4gdGhyb3cgYW4KLSAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmICghbV9wcml2YXRlIHx8IG1fcmVhZHlTdGF0
ZSAhPSBvcGVuS2V5d29yZCgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigp
OwogCi0gICAgTWVkaWFTb3VyY2VQcml2YXRlOjpFbmRPZlN0cmVhbVN0YXR1cyBlb3NTdGF0dXMg
PSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc05vRXJyb3I7CisgICAgLy8gQ2xlYXIgU291cmNlQnVm
ZmVyIHJlZmVyZW5jZXMgdG8gdGhpcyBvYmplY3QuCisgICAgZm9yICh1bnNpZ25lZCBsb25nIGkg
PSAwOyBpIDwgbV9zb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytpKQorICAgICAgICBtX3NvdXJj
ZUJ1ZmZlcnMtPml0ZW0oaSktPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKKyAgICBtX3NvdXJj
ZUJ1ZmZlcnMtPmNsZWFyKCk7CiAKLSAgICBpZiAoZXJyb3IuaXNOdWxsKCkgfHwgZXJyb3IuaXNF
bXB0eSgpKQotICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc05vRXJy
b3I7Ci0gICAgZWxzZSBpZiAoZXJyb3IgPT0gIm5ldHdvcmsiKQotICAgICAgICBlb3NTdGF0dXMg
PSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc05ldHdvcmtFcnJvcjsKLSAgICBlbHNlIGlmIChlcnJv
ciA9PSAiZGVjb2RlIikKLSAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2YXRlOjpF
b3NEZWNvZGVFcnJvcjsKLSAgICBlbHNlIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVz
KCkuc291cmNlY2xvc2VFdmVudCk7Cit9CiAKLSAgICAvLyAyLiBDaGFuZ2UgdGhlIHJlYWR5U3Rh
dGUgYXR0cmlidXRlIHZhbHVlIHRvICJlbmRlZCIuCi0gICAgc2V0UmVhZHlTdGF0ZShlbmRlZEtl
eXdvcmQoKSk7Ci0gICAgbV9wcml2YXRlLT5lbmRPZlN0cmVhbShlb3NTdGF0dXMpOworVmVjdG9y
PFJlZlB0cjxUaW1lUmFuZ2VzPiA+IE1lZGlhU291cmNlOjphY3RpdmVSYW5nZXMoKSBjb25zdAor
eworICAgIFZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBhY3RpdmVSYW5nZXMobV9hY3RpdmVT
b3VyY2VCdWZmZXJzLT5sZW5ndGgoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Fj
dGl2ZVNvdXJjZUJ1ZmZlcnMtPmxlbmd0aCgpOyArK2kpCisgICAgICAgIGFjdGl2ZVJhbmdlc1tp
XSA9IG1fYWN0aXZlU291cmNlQnVmZmVycy0+aXRlbShpKS0+YnVmZmVyZWQoQVNTRVJUX05PX0VY
Q0VQVElPTik7CisKKyAgICByZXR1cm4gYWN0aXZlUmFuZ2VzOwogfQogCiBib29sIE1lZGlhU291
cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIC8vIFNlY3Rp
b24gMi4xIGlzVHlwZVN1cHBvcnRlZCgpIG1ldGhvZCBzdGVwcy4KKyAgICBMT0coTWVkaWEsICJN
ZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKCVzKSIsIHR5cGUuYXNjaWkoKS5kYXRhKCkpOwor
CisgICAgLy8gU2VjdGlvbiAyLjIgaXNUeXBlU3VwcG9ydGVkKCkgbWV0aG9kIHN0ZXBzLgogICAg
IC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVkaWFTb3VyY2UtaXNUeXBlU3VwcG9ydGVk
LWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKICAgICAvLyAxLiBJZiB0eXBlIGlzIGFuIGVtcHR5IHN0
cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCiAgICAgaWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5p
c0VtcHR5KCkpCkBAIC0yODIsNTYgKzIwNywxMSBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVT
dXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIHJldHVybiBNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUoY29udGVudFR5cGUudHlwZSgpLCBjb2Rl
Y3MpOwogfQogCi12b2lkIE1lZGlhU291cmNlOjpzZXRQcml2YXRlQW5kT3BlbihQYXNzT3duUHRy
PE1lZGlhU291cmNlUHJpdmF0ZT4gbWVkaWFTb3VyY2VQcml2YXRlKQotewotICAgIEFTU0VSVCht
ZWRpYVNvdXJjZVByaXZhdGUpOwotICAgIEFTU0VSVCghbV9wcml2YXRlKTsKLSAgICBtX3ByaXZh
dGUgPSBtZWRpYVNvdXJjZVByaXZhdGU7Ci0gICAgc2V0UmVhZHlTdGF0ZShvcGVuS2V5d29yZCgp
KTsKLX0KLQogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZTo6aW50ZXJmYWNlTmFtZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JNZWRpYVNvdXJj
ZTsKIH0KIAotU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTWVkaWFTb3VyY2U6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdAotewotICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKLX0KLQotYm9vbCBNZWRpYVNvdXJjZTo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlIHx8IG1fYXN5bmNFdmVudFF1
ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCkKLSAgICAgICAgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQ
ZW5kaW5nQWN0aXZpdHkoKTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCi17Ci0gICAg
bV9wcml2YXRlLmNsZWFyKCk7Ci0gICAgbV9hc3luY0V2ZW50UXVldWUtPmNhbmNlbEFsbEV2ZW50
cygpOwotfQotCi1FdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlOjpldmVudFRhcmdldERhdGEo
KQotewotICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Ci19Ci0KLUV2ZW50VGFyZ2V0RGF0
YSogTWVkaWFTb3VyY2U6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCi17Ci0gICAgcmV0dXJuICZt
X2V2ZW50VGFyZ2V0RGF0YTsKLX0KLQotdm9pZCBNZWRpYVNvdXJjZTo6c2NoZWR1bGVFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKLXsKLSAgICBBU1NFUlQobV9hc3luY0V2ZW50
UXVldWUpOwotCi0gICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lLCBmYWxzZSwgZmFsc2UpOwotICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7Ci0KLSAgICBt
X2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKaW5kZXggYmNmOTM1YzZmMTdhMDUxNWVjMmFm
ZGM2YmU3ZTVlMmIzMTAxNTc3NC4uZGU1OGNlOGI4NmYwOTIxZTRlM2MzN2ZkYzJjOGY3MjE4YTJm
YmI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMzMsNzMgKzMzLDQ1IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCi0j
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUu
aCIKLSNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVNvdXJj
ZUJhc2UuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJTb3VyY2VC
dWZmZXIuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVNvdXJjZSA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU291cmNlPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIE1lZGlhU291cmNlIDogcHVibGljIE1lZGlhU291
cmNlQmFzZSwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0IFN0cmluZyYgb3BlbktleXdvcmQoKTsKLSAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBjbG9z
ZWRLZXl3b3JkKCk7Ci0gICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZW5kZWRLZXl3b3JkKCk7Ci0K
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKLSAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZSgpIHsgfQorICAgIHZpcnR1YWwg
fk1lZGlhU291cmNlKCk7CiAKICAgICAvLyBNZWRpYVNvdXJjZS5pZGwgbWV0aG9kcwotICAgIFNv
dXJjZUJ1ZmZlckxpc3QqIHNvdXJjZUJ1ZmZlcnMoKTsKLSAgICBTb3VyY2VCdWZmZXJMaXN0KiBh
Y3RpdmVTb3VyY2VCdWZmZXJzKCk7Ci0gICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXREdXJhdGlvbihkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTb3VyY2VCdWZm
ZXJMaXN0KiBzb3VyY2VCdWZmZXJzKCkgeyByZXR1cm4gbV9zb3VyY2VCdWZmZXJzLmdldCgpOyB9
CisgICAgU291cmNlQnVmZmVyTGlzdCogYWN0aXZlU291cmNlQnVmZmVycygpIHsgcmV0dXJuIG1f
YWN0aXZlU291cmNlQnVmZmVycy5nZXQoKTsgfQogICAgIFNvdXJjZUJ1ZmZlciogYWRkU291cmNl
QnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVt
b3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBjb25z
dCBTdHJpbmcmIHJlYWR5U3RhdGUoKSBjb25zdDsKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUoY29u
c3QgU3RyaW5nJik7Ci0gICAgdm9pZCBlbmRPZlN0cmVhbShjb25zdCBTdHJpbmcmIGVycm9yLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgc3RhdGljIGJvb2wgaXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0
cmluZyYgdHlwZSk7CiAKLSAgICB2b2lkIHNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVk
aWFTb3VyY2VQcml2YXRlPik7Ci0KICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IE9WRVJSSURFOwotCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVyZmFj
ZQotICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBPVkVSUklERTsK
IAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2U+OjpyZWY7Ci0gICAgdXNpbmcgUmVm
Q291bnRlZDxNZWRpYVNvdXJjZT46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFT
b3VyY2VCYXNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VCYXNlPjo6
ZGVyZWY7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOwogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVyZmFjZQotICAgIHZp
cnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0
YSogZXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldERh
dGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lk
IHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9Ci0KLSAgICB2b2lkIHNjaGVk
dWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpOwotCi0gICAgRXZlbnRUYXJn
ZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwotCi0gICAgU3RyaW5nIG1fcmVhZHlTdGF0ZTsKLSAg
ICBPd25QdHI8TWVkaWFTb3VyY2VQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgLy8gTWVkaWFTb3Vy
Y2VCYXNlIGludGVyZmFjZQorICAgIHZpcnR1YWwgdm9pZCBvblJlYWR5U3RhdGVDaGFuZ2UoY29u
c3QgQXRvbWljU3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKCkgY29uc3QgT1ZF
UlJJREU7CiAKICAgICBSZWZQdHI8U291cmNlQnVmZmVyTGlzdD4gbV9zb3VyY2VCdWZmZXJzOwog
ICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJMaXN0PiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnM7Ci0gICAg
T3duUHRyPEdlbmVyaWNFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbAppbmRleCA3YjA0MzQ3MDhl
MjVkMWVhYWU1ZWUzMzJlNGQ1Yjc0ZDVjMTk5NWFlLi5kMGQ0ZGQ0Zjc5MjJlMzkxM2E1NmVmMGQx
MDQ1ZDFjMmUwODliZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzIsMTAgKzMyLDEwIEBACiAgICAgQ29uZGl0aW9uYWw9
TUVESUFfU09VUkNFLAogICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFdmVudFRhcmdldCwKKyAg
ICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgQ29uc3RydWN0b3IsCi0gICAgQ29uc3Ry
dWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAotICAgIEludGVyZmFjZU5hbWU9
V2ViS2l0TWVkaWFTb3VyY2UKLV0gaW50ZXJmYWNlIE1lZGlhU291cmNlIHsKKyAgICBDb25zdHJ1
Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKK10gaW50ZXJmYWNlIE1lZGlhU291
cmNlIDogRXZlbnRUYXJnZXQgewogICAgIC8vIEFsbCB0aGUgc291cmNlIGJ1ZmZlcnMgY3JlYXRl
ZCBieSB0aGlzIG9iamVjdC4KICAgICByZWFkb25seSBhdHRyaWJ1dGUgU291cmNlQnVmZmVyTGlz
dCBzb3VyY2VCdWZmZXJzOwogCkBAIC01MiwxNCArNTIsNCBAQAogICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgZW5kT2ZTdHJlYW0oW0RlZmF1bHQ9TnVsbFN0cmluZ10gb3B0aW9uYWwgRE9NU3Ry
aW5nIGVycm9yKTsKIAogICAgIHN0YXRpYyBib29sZWFuIGlzVHlwZVN1cHBvcnRlZCAoRE9NU3Ry
aW5nIHR5cGUpOwotCi0gICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCi0gICAgdm9pZCBhZGRF
dmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBF
dmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25h
bCBib29sZWFuIHVzZUNhcHR1cmUpOwotICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihET01T
dHJpbmcgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBs
aXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1
c2VDYXB0dXJlKTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIGRpc3BhdGNoRXZlbnQo
RXZlbnQgZXZlbnQpOwogfTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjY2U1YzgyNjIxYWQ1
ZmI0Zjg3M2MxZWNhZjRlOWZiMzhiMDM3NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5jcHAKQEAgLTAsMCArMSwz
MTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VCYXNlLmgiCisK
KyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclBy
aXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFTb3VyY2VCYXNl
OjpNZWRpYVNvdXJjZUJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6
IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorICAgICwgbV9yZWFkeVN0YXRlKGNsb3NlZEtleXdv
cmQoKSkKKyAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKEdlbmVyaWNFdmVudFF1ZXVlOjpjcmVhdGUo
dGhpcykpCisgICAgLCBtX2F0dGFjaGVkKGZhbHNlKQoreworfQorCitNZWRpYVNvdXJjZUJhc2U6
On5NZWRpYVNvdXJjZUJhc2UoKQoreworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU291
cmNlQmFzZTo6b3BlbktleXdvcmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBvcGVuLCAoIm9wZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgcmV0dXJuIG9wZW47Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFTb3VyY2VCYXNlOjpjbG9zZWRLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgY2xvc2VkLCAoImNsb3NlZCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1cm4gY2xvc2VkOworfQorCitjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhU291cmNlQmFzZTo6ZW5kZWRLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZW5kZWQsICgiZW5kZWQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgcmV0dXJuIGVuZGVkOworfQorCit2
b2lkIE1lZGlhU291cmNlQmFzZTo6c2V0UHJpdmF0ZUFuZE9wZW4oUGFzc093blB0cjxNZWRpYVNv
dXJjZVByaXZhdGU+IG1lZGlhU291cmNlUHJpdmF0ZSkKK3sKKyAgICBBU1NFUlQobWVkaWFTb3Vy
Y2VQcml2YXRlKTsKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZSk7CisgICAgQVNTRVJUKG1fYXR0YWNo
ZWQpOworICAgIG1fcHJpdmF0ZSA9IG1lZGlhU291cmNlUHJpdmF0ZTsKKyAgICBzZXRSZWFkeVN0
YXRlKG9wZW5LZXl3b3JkKCkpOworfQorCit2b2lkIE1lZGlhU291cmNlQmFzZTo6YWRkZWRUb1Jl
Z2lzdHJ5KCkKK3sKKyAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Cit9CisKK3ZvaWQgTWVk
aWFTb3VyY2VCYXNlOjpyZW1vdmVkRnJvbVJlZ2lzdHJ5KCkKK3sKKyAgICB1bnNldFBlbmRpbmdB
Y3Rpdml0eSh0aGlzKTsKK30KKworZG91YmxlIE1lZGlhU291cmNlQmFzZTo6ZHVyYXRpb24oKSBj
b25zdAoreworICAgIHJldHVybiBpc0Nsb3NlZCgpID8gc3RkOjpudW1lcmljX2xpbWl0czxmbG9h
dD46OnF1aWV0X05hTigpIDogbV9wcml2YXRlLT5kdXJhdGlvbigpOworfQorCitQYXNzUmVmUHRy
PFRpbWVSYW5nZXM+IE1lZGlhU291cmNlQmFzZTo6YnVmZmVyZWQoKSBjb25zdAoreworICAgIC8v
IEltcGxlbWVudHMgTWVkaWFTb3VyY2UgYWxnb3JpdGhtIGZvciBIVE1MTWVkaWFFbGVtZW50LmJ1
ZmZlcmVkLgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmls
ZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNodG1sbWVkaWFlbGVtZW50
LWV4dGVuc2lvbnMKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gcmFuZ2VzID0gYWN0
aXZlUmFuZ2VzKCk7CisKKyAgICAvLyAxLiBJZiBhY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0aCBl
cXVhbHMgMCB0aGVuIHJldHVybiBhbiBlbXB0eSBUaW1lUmFuZ2VzIG9iamVjdCBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgaWYgKHJhbmdlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBU
aW1lUmFuZ2VzOjpjcmVhdGUoKTsKKworICAgIC8vIDIuIExldCBhY3RpdmUgcmFuZ2VzIGJlIHRo
ZSByYW5nZXMgcmV0dXJuZWQgYnkgYnVmZmVyZWQgZm9yIGVhY2ggU291cmNlQnVmZmVyIG9iamVj
dCBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLgorICAgIC8vIDMuIExldCBoaWdoZXN0IGVuZCB0aW1l
IGJlIHRoZSBsYXJnZXN0IHJhbmdlIGVuZCB0aW1lIGluIHRoZSBhY3RpdmUgcmFuZ2VzLgorICAg
IGRvdWJsZSBoaWdoZXN0RW5kVGltZSA9IC0xOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
cmFuZ2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHJhbmdlc1tp
XS0+bGVuZ3RoKCk7CisgICAgICAgIGlmIChsZW5ndGgpCisgICAgICAgICAgICBoaWdoZXN0RW5k
VGltZSA9IHN0ZDo6bWF4KGhpZ2hlc3RFbmRUaW1lLCByYW5nZXNbaV0tPmVuZChsZW5ndGggLSAx
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKSk7CisgICAgfQorCisgICAgLy8gUmV0dXJuIGFuIGVtcHR5
IHJhbmdlIGlmIGFsbCByYW5nZXMgYXJlIGVtcHR5LgorICAgIGlmIChoaWdoZXN0RW5kVGltZSA8
IDApCisgICAgICAgIHJldHVybiBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKworICAgIC8vIDQuIExl
dCBpbnRlcnNlY3Rpb24gcmFuZ2VzIGVxdWFsIGEgVGltZVJhbmdlIG9iamVjdCBjb250YWluaW5n
IGEgc2luZ2xlIHJhbmdlIGZyb20gMCB0byBoaWdoZXN0IGVuZCB0aW1lLgorICAgIFJlZlB0cjxU
aW1lUmFuZ2VzPiBpbnRlcnNlY3Rpb25SYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoMCwgaGln
aGVzdEVuZFRpbWUpOworCisgICAgLy8gNS4gRm9yIGVhY2ggU291cmNlQnVmZmVyIG9iamVjdCBp
biBhY3RpdmVTb3VyY2VCdWZmZXJzIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIGJvb2wg
ZW5kZWQgPSByZWFkeVN0YXRlKCkgPT0gZW5kZWRLZXl3b3JkKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCByYW5nZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgLy8gNS4xIExldCBzb3Vy
Y2UgcmFuZ2VzIGVxdWFsIHRoZSByYW5nZXMgcmV0dXJuZWQgYnkgdGhlIGJ1ZmZlcmVkIGF0dHJp
YnV0ZSBvbiB0aGUgY3VycmVudCBTb3VyY2VCdWZmZXIuCisgICAgICAgIFRpbWVSYW5nZXMqIHNv
dXJjZVJhbmdlcyA9IHJhbmdlc1tpXS5nZXQoKTsKKworICAgICAgICAvLyA1LjIgSWYgcmVhZHlT
dGF0ZSBpcyAiZW5kZWQiLCB0aGVuIHNldCB0aGUgZW5kIHRpbWUgb24gdGhlIGxhc3QgcmFuZ2Ug
aW4gc291cmNlIHJhbmdlcyB0byBoaWdoZXN0IGVuZCB0aW1lLgorICAgICAgICBpZiAoZW5kZWQg
JiYgc291cmNlUmFuZ2VzLT5sZW5ndGgoKSkKKyAgICAgICAgICAgIHNvdXJjZVJhbmdlcy0+YWRk
KHNvdXJjZVJhbmdlcy0+c3RhcnQoc291cmNlUmFuZ2VzLT5sZW5ndGgoKSAtIDEsIEFTU0VSVF9O
T19FWENFUFRJT04pLCBoaWdoZXN0RW5kVGltZSk7CisKKyAgICAgICAgLy8gNS4zIExldCBuZXcg
aW50ZXJzZWN0aW9uIHJhbmdlcyBlcXVhbCB0aGUgdGhlIGludGVyc2VjdGlvbiBiZXR3ZWVuIHRo
ZSBpbnRlcnNlY3Rpb24gcmFuZ2VzIGFuZCB0aGUgc291cmNlIHJhbmdlcy4KKyAgICAgICAgLy8g
NS40IFJlcGxhY2UgdGhlIHJhbmdlcyBpbiBpbnRlcnNlY3Rpb24gcmFuZ2VzIHdpdGggdGhlIG5l
dyBpbnRlcnNlY3Rpb24gcmFuZ2VzLgorICAgICAgICBpbnRlcnNlY3Rpb25SYW5nZXMtPmludGVy
c2VjdFdpdGgoc291cmNlUmFuZ2VzKTsKKyAgICB9CisKKyAgICByZXR1cm4gaW50ZXJzZWN0aW9u
UmFuZ2VzLnJlbGVhc2UoKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OnNldER1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKGR1cmF0aW9u
IDwgMC4wIHx8IHN0ZDo6aXNuYW4oZHVyYXRpb24pKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghaXNPcGVuKCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBtX3ByaXZhdGUtPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKK30KKworCit2b2lkIE1lZGlh
U291cmNlQmFzZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKQorewor
ICAgIEFTU0VSVChzdGF0ZSA9PSBvcGVuS2V5d29yZCgpIHx8IHN0YXRlID09IGNsb3NlZEtleXdv
cmQoKSB8fCBzdGF0ZSA9PSBlbmRlZEtleXdvcmQoKSk7CisKKyAgICBBdG9taWNTdHJpbmcgb2xk
U3RhdGUgPSByZWFkeVN0YXRlKCk7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3VyY2VCYXNlOjpz
ZXRSZWFkeVN0YXRlKCkgJXAgOiAlcyAtPiAlcyIsIHRoaXMsIG9sZFN0YXRlLnN0cmluZygpLmFz
Y2lpKCkuZGF0YSgpLCBzdGF0ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisKKyAgICBpZiAo
c3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpKSB7CisgICAgICAgIG1fcHJpdmF0ZS5jbGVhcigpOwor
ICAgICAgICBtX2F0dGFjaGVkID0gZmFsc2U7CisgICAgfQorCisgICAgaWYgKG9sZFN0YXRlID09
IHN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlYWR5U3RhdGUgPSBzdGF0ZTsKKwor
ICAgIG9uUmVhZHlTdGF0ZUNoYW5nZShvbGRTdGF0ZSwgc3RhdGUpOworfQorCit2b2lkIE1lZGlh
U291cmNlQmFzZTo6ZW5kT2ZTdHJlYW0oY29uc3QgQXRvbWljU3RyaW5nJiBlcnJvciwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIG5ldHdvcmssICgibmV0d29yayIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVjb2Rl
LCAoImRlY29kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKworICAg
IC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1lbmRvZnN0cmVhbQorICAgIC8vIDEuIElm
IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0aGVu
IHRocm93IGFuCisgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KKyAgICBpZiAoIWlzT3BlbigpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBNZWRpYVNvdXJjZVByaXZh
dGU6OkVuZE9mU3RyZWFtU3RhdHVzIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9z
Tm9FcnJvcjsKKworICAgIGlmIChlcnJvci5pc051bGwoKSB8fCBlcnJvci5pc0VtcHR5KCkpCisg
ICAgICAgIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9zTm9FcnJvcjsKKyAgICBl
bHNlIGlmIChlcnJvciA9PSBuZXR3b3JrKQorICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJj
ZVByaXZhdGU6OkVvc05ldHdvcmtFcnJvcjsKKyAgICBlbHNlIGlmIChlcnJvciA9PSBkZWNvZGUp
CisgICAgICAgIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9zRGVjb2RlRXJyb3I7
CisgICAgZWxzZSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gMi4gQ2hhbmdlIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0
ZSB2YWx1ZSB0byAiZW5kZWQiLgorICAgIHNldFJlYWR5U3RhdGUoZW5kZWRLZXl3b3JkKCkpOwor
ICAgIG1fcHJpdmF0ZS0+bWFya0VuZE9mU3RyZWFtKGVvc1N0YXR1cyk7Cit9CisKK2Jvb2wgTWVk
aWFTb3VyY2VCYXNlOjppc09wZW4oKSBjb25zdAoreworICAgIHJldHVybiByZWFkeVN0YXRlKCkg
PT0gb3BlbktleXdvcmQoKTsKK30KKworYm9vbCBNZWRpYVNvdXJjZUJhc2U6OmlzQ2xvc2VkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gcmVhZHlTdGF0ZSgpID09IGNsb3NlZEtleXdvcmQoKTsKK30K
Kwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OmNsb3NlKCkKK3sKKyAgICBzZXRSZWFkeVN0YXRlKGNs
b3NlZEtleXdvcmQoKSk7Cit9CisKK2Jvb2wgTWVkaWFTb3VyY2VCYXNlOjphdHRhY2hUb0VsZW1l
bnQoKQoreworICAgIGlmIChtX2F0dGFjaGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBBU1NFUlQoaXNDbG9zZWQoKSk7CisKKyAgICBtX2F0dGFjaGVkID0gdHJ1ZTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6Om9wZW5JZkluRW5kZWRTdGF0ZSgp
Cit7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBlbmRlZEtleXdvcmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2V0UmVhZHlTdGF0ZShvcGVuS2V5d29yZCgpKTsKKyAgICBtX3ByaXZhdGUt
PnVubWFya0VuZE9mU3RyZWFtKCk7Cit9CisKK2Jvb2wgTWVkaWFTb3VyY2VCYXNlOjpoYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUgfHwgbV9hc3luY0V2
ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKQorICAgICAgICB8fCBBY3RpdmVET01PYmplY3Q6
Omhhc1BlbmRpbmdBY3Rpdml0eSgpOworfQorCit2b2lkIE1lZGlhU291cmNlQmFzZTo6c3RvcCgp
Cit7CisgICAgbV9hc3luY0V2ZW50UXVldWUtPmNsb3NlKCk7CisgICAgaWYgKCFpc0Nsb3NlZCgp
KQorICAgICAgICBzZXRSZWFkeVN0YXRlKGNsb3NlZEtleXdvcmQoKSk7CisgICAgbV9wcml2YXRl
LmNsZWFyKCk7Cit9CisKK1Bhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gTWVkaWFTb3Vy
Y2VCYXNlOjpjcmVhdGVTb3VyY2VCdWZmZXJQcml2YXRlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgTWVkaWFTb3VyY2VQcml2YXRlOjpDb2RlY3NBcnJheSYgY29kZWNzLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJp
dmF0ZTsKKyAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+YWRkU291cmNlQnVmZmVyKHR5cGUsIGNvZGVj
cywgJnNvdXJjZUJ1ZmZlclByaXZhdGUpKSB7CisgICAgY2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6
Ok9rOiB7CisgICAgICAgIHJldHVybiBzb3VyY2VCdWZmZXJQcml2YXRlLnJlbGVhc2UoKTsKKyAg
ICB9CisgICAgY2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6Ok5vdFN1cHBvcnRlZDoKKyAgICAgICAg
Ly8gMi4yIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlhU291cmNlLWFkZFNvdXJj
ZUJ1ZmZlci1Tb3VyY2VCdWZmZXItRE9NU3RyaW5nLXR5cGUKKyAgICAgICAgLy8gU3RlcCAyOiBJ
ZiB0eXBlIGNvbnRhaW5zIGEgTUlNRSB0eXBlIC4uLiB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgd2l0
aCB0aGUgdHlwZXMKKyAgICAgICAgLy8gc3BlY2lmaWVkIGZvciB0aGUgb3RoZXIgU291cmNlQnVm
ZmVyIG9iamVjdHMgaW4gc291cmNlQnVmZmVycywgdGhlbiB0aHJvdworICAgICAgICAvLyBhIE5P
VF9TVVBQT1JURURfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAg
IGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNh
c2UgTWVkaWFTb3VyY2VQcml2YXRlOjpSZWFjaGVkSWRMaW1pdDoKKyAgICAgICAgLy8gMi4yIGh0
dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlhU291cmNlLWFkZFNvdXJjZUJ1ZmZlci1T
b3VyY2VCdWZmZXItRE9NU3RyaW5nLXR5cGUKKyAgICAgICAgLy8gU3RlcCAzOiBJZiB0aGUgdXNl
ciBhZ2VudCBjYW4ndCBoYW5kbGUgYW55IG1vcmUgU291cmNlQnVmZmVyIG9iamVjdHMgdGhlbiB0
aHJvdworICAgICAgICAvLyBhIFFVT1RBX0VYQ0VFREVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgICAgICBlYyA9IFFVT1RBX0VYQ0VFREVEX0VSUjsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpzY2hlZHVsZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQoreworICAgIEFTU0VSVChtX2FzeW5jRXZl
bnRRdWV1ZSk7CisKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKKworICAg
IG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKK30KKwor
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogTWVkaWFTb3VyY2VCYXNlOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogTWVkaWFTb3VyY2VCYXNlOjpl
dmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisK
K0V2ZW50VGFyZ2V0RGF0YSogTWVkaWFTb3VyY2VCYXNlOjplbnN1cmVFdmVudFRhcmdldERhdGEo
KQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK1VSTFJlZ2lzdHJ5JiBN
ZWRpYVNvdXJjZUJhc2U6OnJlZ2lzdHJ5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gTWVkaWFTb3Vy
Y2VSZWdpc3RyeTo6cmVnaXN0cnkoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkNjE2YjE5YTcyZDg3N2Q5MzAyMmFiZDliNGM5MDE3ODZjODJhZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFz
ZS5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVNvdXJjZUJhc2VfaAorI2RlZmluZSBN
ZWRpYVNvdXJjZUJhc2VfaAorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAi
SFRNTE1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5j
bHVkZSAiVVJMUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlbmVyaWNFdmVudFF1ZXVlOworCitjbGFzcyBNZWRpYVNv
dXJjZUJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNvdXJjZUJhc2U+LCBwdWJsaWMgSFRN
TE1lZGlhU291cmNlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG9wZW5LZXl3b3JkKCk7
CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY2xvc2VkS2V5d29yZCgpOworICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGVuZGVkS2V5d29yZCgpOworCisgICAgdmlydHVhbCB+
TWVkaWFTb3VyY2VCYXNlKCk7CisKKyAgICB2b2lkIGFkZGVkVG9SZWdpc3RyeSgpOworICAgIHZv
aWQgcmVtb3ZlZEZyb21SZWdpc3RyeSgpOworICAgIHZvaWQgb3BlbklmSW5FbmRlZFN0YXRlKCk7
CisgICAgYm9vbCBpc09wZW4oKSBjb25zdDsKKworICAgIC8vIEhUTUxNZWRpYVNvdXJjZQorICAg
IHZpcnR1YWwgYm9vbCBhdHRhY2hUb0VsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UHJpdmF0ZUFuZE9wZW4oUGFzc093blB0cjxNZWRpYVNvdXJjZVByaXZhdGU+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNDbG9zZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBkdXJhdGlv
bigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBi
dWZmZXJlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZIVE1MTWVkaWFT
b3VyY2UoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmSFRNTE1l
ZGlhU291cmNlKCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CisKKyAgICB2b2lkIHNldER1cmF0aW9u
KGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVhZHlT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQorICAgIHZvaWQgc2V0UmVhZHlT
dGF0ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lkIGVuZE9mU3RyZWFtKGNvbnN0IEF0
b21pY1N0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUmKTsKKworCisgICAgLy8gQWN0aXZlRE9N
T2JqZWN0IGludGVyZmFjZQorICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworCisgICAg
Ly8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAg
dmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKwor
ICAgIC8vIFVSTFJlZ2lzdHJhYmxlIGludGVyZmFjZQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkm
IHJlZ2lzdHJ5KCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlh
U291cmNlQmFzZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlQmFzZT46
OmRlcmVmOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTWVkaWFTb3VyY2VCYXNlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBvblJlYWR5U3RhdGVDaGFu
Z2UoY29uc3QgQXRvbWljU3RyaW5nJiBvbGRTdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdT
dGF0ZSkgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IGFjdGl2
ZVJhbmdlcygpIGNvbnN0ID0gMDsKKworICAgIFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0
ZT4gY3JlYXRlU291cmNlQnVmZmVyUHJpdmF0ZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IE1l
ZGlhU291cmNlUHJpdmF0ZTo6Q29kZWNzQXJyYXkmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9p
ZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsKKyAgICBHZW5l
cmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9hc3luY0V2
ZW50UXVldWUuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBPd25QdHI8TWVkaWFTb3VyY2VQcml2
YXRlPiBtX3ByaXZhdGU7CisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwor
ICAgIEF0b21pY1N0cmluZyBtX3JlYWR5U3RhdGU7CisgICAgT3duUHRyPEdlbmVyaWNFdmVudFF1
ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBib29sIG1fYXR0YWNoZWQ7Cit9OworCit9CisK
KyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwCmluZGV4IDFjNjI2NzQ2N2Y0NWRl
ODc1NGNlNTM2YTM2MDgyNTNiYzZmMmE0YjEuLmRiNDc1MWUwMDViYzVlMjBhNDg0M2ZmMGI0Yzc2
MWM5YzkxZjNjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiTWVk
aWFTb3VyY2UuaCIKKyNpbmNsdWRlICJNZWRpYVNvdXJjZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwzMyArNDYsMzcgQEAg
TWVkaWFTb3VyY2VSZWdpc3RyeSYgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0cnkoKQogICAg
IHJldHVybiBpbnN0YW5jZTsKIH0KIAotdm9pZCBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3Rl
ck1lZGlhU291cmNlVVJMKGNvbnN0IEtVUkwmIHVybCwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4g
c291cmNlKQordm9pZCBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTChTZWN1cml0eU9y
aWdpbiosIGNvbnN0IEtVUkwmIHVybCwgVVJMUmVnaXN0cmFibGUqIHJlZ2lzdHJhYmxlKQogewor
ICAgIEFTU0VSVCgmcmVnaXN0cmFibGUtPnJlZ2lzdHJ5KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIHNvdXJjZS0+c2V0UGVuZGluZ0FjdGl2aXR5KHNvdXJj
ZS5nZXQoKSk7Ci0KKyAgICBNZWRpYVNvdXJjZUJhc2UqIHNvdXJjZSA9IHN0YXRpY19jYXN0PE1l
ZGlhU291cmNlQmFzZSo+KHJlZ2lzdHJhYmxlKTsKKyAgICBzb3VyY2UtPmFkZGVkVG9SZWdpc3Ry
eSgpOwogICAgIG1fbWVkaWFTb3VyY2VzLnNldCh1cmwuc3RyaW5nKCksIHNvdXJjZSk7CiB9CiAK
LXZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6dW5yZWdpc3Rlck1lZGlhU291cmNlVVJMKGNvbnN0
IEtVUkwmIHVybCkKK3ZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6dW5yZWdpc3RlclVSTChjb25z
dCBLVVJMJiB1cmwpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPE1lZGlhU291cmNlPiA+OjppdGVyYXRvciBpdGVyID0gbV9tZWRpYVNv
dXJjZXMuZmluZCh1cmwuc3RyaW5nKCkpOworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVk
aWFTb3VyY2VCYXNlPiA+OjppdGVyYXRvciBpdGVyID0gbV9tZWRpYVNvdXJjZXMuZmluZCh1cmwu
c3RyaW5nKCkpOwogICAgIGlmIChpdGVyID09IG1fbWVkaWFTb3VyY2VzLmVuZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSZWZQdHI8TWVkaWFTb3VyY2U+IHNvdXJjZSA9IGl0ZXItPnZhbHVl
OworICAgIFJlZlB0cjxNZWRpYVNvdXJjZUJhc2U+IHNvdXJjZSA9IGl0ZXItPnZhbHVlOwogICAg
IG1fbWVkaWFTb3VyY2VzLnJlbW92ZShpdGVyKTsKLQotICAgIC8vIFJlbW92ZSB0aGUgcGVuZGlu
ZyBhY3Rpdml0eSBhZGRlZCBpbiByZWdpc3Rlck1lZGlhU291cmNlVVJMKCkuCi0gICAgc291cmNl
LT51bnNldFBlbmRpbmdBY3Rpdml0eShzb3VyY2UuZ2V0KCkpOworICAgIHNvdXJjZS0+cmVtb3Zl
ZEZyb21SZWdpc3RyeSgpOwogfQogCi1NZWRpYVNvdXJjZSogTWVkaWFTb3VyY2VSZWdpc3RyeTo6
bG9va3VwTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwpCitVUkxSZWdpc3RyYWJsZSogTWVk
aWFTb3VyY2VSZWdpc3RyeTo6bG9va3VwKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgcmV0dXJuIG1fbWVkaWFTb3VyY2VzLmdldCh1cmwpLmdl
dCgpOworICAgIHJldHVybiBtX21lZGlhU291cmNlcy5nZXQodXJsKTsKK30KKworTWVkaWFTb3Vy
Y2VSZWdpc3RyeTo6TWVkaWFTb3VyY2VSZWdpc3RyeSgpCit7CisgICAgSFRNTE1lZGlhU291cmNl
OjpzZXRSZWdpc3RyeSh0aGlzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lz
dHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVn
aXN0cnkuaAppbmRleCA5NmRhNmIzNDdjNzBjNTExY2I0NjhmZWQyMTcyNzI5NzE2Njc1Mzc0Li40
NmMyNGQ0ZTAzMDVmNmRkZGU5MWNmNGU4NDQxZjQ3N2M5NjQ4YTY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnku
aApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1
ZGUgIlVSTFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTQw
LDIxICs0MSwyMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBLVVJMOwotY2xhc3Mg
TWVkaWFTb3VyY2U7CitjbGFzcyBNZWRpYVNvdXJjZUJhc2U7CiAKLWNsYXNzIE1lZGlhU291cmNl
UmVnaXN0cnkgeworY2xhc3MgTWVkaWFTb3VyY2VSZWdpc3RyeSA6IHB1YmxpYyBVUkxSZWdpc3Ry
eSB7CiBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyBhIHNpbmdsZSBpbnN0YW5jZSBvZiBNZWRpYVNv
dXJjZVJlZ2lzdHJ5LgogICAgIHN0YXRpYyBNZWRpYVNvdXJjZVJlZ2lzdHJ5JiByZWdpc3RyeSgp
OwogCiAgICAgLy8gUmVnaXN0ZXJzIGEgYmxvYiBVUkwgcmVmZXJyaW5nIHRvIHRoZSBzcGVjaWZp
ZWQgbWVkaWEgc291cmNlLgotICAgIHZvaWQgcmVnaXN0ZXJNZWRpYVNvdXJjZVVSTChjb25zdCBL
VVJMJiwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4pOwotICAgIHZvaWQgdW5yZWdpc3Rlck1lZGlh
U291cmNlVVJMKGNvbnN0IEtVUkwmKTsKLQotICAgIE1lZGlhU291cmNlKiBsb29rdXBNZWRpYVNv
dXJjZShjb25zdCBTdHJpbmcmIHVybCk7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVVJMKFNl
Y3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYsIFVSTFJlZ2lzdHJhYmxlKikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgVVJMUmVnaXN0cmFibGUqIGxvb2t1cChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsK
IAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1lZGlhU291cmNlPiA+IG1f
bWVkaWFTb3VyY2VzOworICAgIE1lZGlhU291cmNlUmVnaXN0cnkoKTsKKyAgICBIYXNoTWFwPFN0
cmluZywgUmVmUHRyPE1lZGlhU291cmNlQmFzZT4gPiBtX21lZGlhU291cmNlczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCBmZjgwZGY1NDc0NGE0YTMxMzQ4OWMyNTY3
MGE3MmQ2NTE0OTNlZTIxLi5hZjc2N2VmNDA0MjI1MWJiM2I4YjkyZDJjNzdkYzlhYWZiZDkzNGJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCkBAIC0zMywyMiArMzMsMzIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAK
KyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKLSNpbmNsdWRlIDx3
dGYvVWludDhBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUg
PHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVm
UHRyPFNvdXJjZUJ1ZmZlcj4gU291cmNlQnVmZmVyOjpjcmVhdGUoUGFzc093blB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBQYXNzUmVmUHRyPE1lZGlhU291cmNl
PiBzb3VyY2UpCitQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4gU291cmNlQnVmZmVyOjpjcmVhdGUo
UGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBNZWRp
YVNvdXJjZSogc291cmNlLCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlclByaXZhdGUs
IHNvdXJjZSkpOworICAgIFJlZlB0cjxTb3VyY2VCdWZmZXI+IHNvdXJjZUJ1ZmZlcihhZG9wdFJl
ZihuZXcgU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlclByaXZhdGUsIHNvdXJjZSwgYXN5bmNFdmVu
dFF1ZXVlKSkpOworICAgIHNvdXJjZUJ1ZmZlci0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0
dXJuIHNvdXJjZUJ1ZmZlci5yZWxlYXNlKCk7CiB9CiAKLVNvdXJjZUJ1ZmZlcjo6U291cmNlQnVm
ZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwg
UGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4gc291cmNlKQotICAgIDogbV9wcml2YXRlKHNvdXJjZUJ1
ZmZlclByaXZhdGUpCitTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUsIE1lZGlhU291cmNlKiBzb3VyY2Us
IEdlbmVyaWNFdmVudFF1ZXVlKiBhc3luY0V2ZW50UXVldWUpCisgICAgOiBBY3RpdmVET01PYmpl
Y3Qoc291cmNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgLCBtX3ByaXZhdGUoc291
cmNlQnVmZmVyUHJpdmF0ZSkKICAgICAsIG1fc291cmNlKHNvdXJjZSkKKyAgICAsIG1fYXN5bmNF
dmVudFF1ZXVlKGFzeW5jRXZlbnRRdWV1ZSkKKyAgICAsIG1fdXBkYXRpbmcoZmFsc2UpCiAgICAg
LCBtX3RpbWVzdGFtcE9mZnNldCgwKQorICAgICwgbV9hcHBlbmRCdWZmZXJUaW1lcih0aGlzLCAm
U291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKQogewogICAgIEFTU0VSVChtX3By
aXZhdGUpOwogICAgIEFTU0VSVChtX3NvdXJjZSk7CkBAIC01Niw2ICs2Niw3IEBAIFNvdXJjZUJ1
ZmZlcjo6U291cmNlQnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNl
QnVmZmVyUHJpdmF0ZSwKIAogU291cmNlQnVmZmVyOjp+U291cmNlQnVmZmVyKCkKIHsKKyAgICBB
U1NFUlQoaXNSZW1vdmVkKCkpOwogfQogCiBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IFNvdXJjZUJ1
ZmZlcjo6YnVmZmVyZWQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CkBAIC04OCwxMSArOTksOSBA
QCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSBvZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIC8vIDQuIElmIHRoZSByZWFkeVN0YXRlIGF0
dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBzdGF0
ZSB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmIChpc0VuZGVkKCkpIHsKLSAg
ICAgICAgLy8gNC4xIFNldCB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBt
ZWRpYSBzb3VyY2UgdG8gIm9wZW4iCi0gICAgICAgIC8vIDQuMiBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVuIGF0IHRoZSBwYXJlbnQgbWVkaWEgc291
cmNlLgotICAgICAgICBtX3NvdXJjZS0+c2V0UmVhZHlTdGF0ZShNZWRpYVNvdXJjZTo6b3Blbktl
eXdvcmQoKSk7Ci0gICAgfQorICAgIC8vIDQuMSBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRl
IG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRvICJvcGVuIgorICAgIC8vIDQuMiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVuIGF0IHRoZSBwYXJl
bnQgbWVkaWEgc291cmNlLgorICAgIG1fc291cmNlLT5vcGVuSWZJbkVuZGVkU3RhdGUoKTsKIAog
ICAgIC8vIDUuIElmIHRoaXMgb2JqZWN0IGlzIHdhaXRpbmcgZm9yIHRoZSBlbmQgb2YgYSBtZWRp
YSBzZWdtZW50IHRvIGJlIGFwcGVuZGVkLCB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJS
CiAgICAgLy8gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgpAQCAtMTA1LDQ5ICsxMTQsNzUgQEAgdm9p
ZCBTb3VyY2VCdWZmZXI6OnNldFRpbWVzdGFtcE9mZnNldChkb3VibGUgb2Zmc2V0LCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICBtX3RpbWVzdGFtcE9mZnNldCA9IG9mZnNldDsKIH0KIAotdm9pZCBT
b3VyY2VCdWZmZXI6OmFwcGVuZChQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGRhdGEsIEV4Y2VwdGlv
bkNvZGUmIGVjKQordm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlcihQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBkYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyBTb3VyY2VCdWZm
ZXIuYXBwZW5kKCkgc3RlcHMgZnJvbSBPY3RvYmVyIDFzdCB2ZXJzaW9uIG9mIHRoZSBNZWRpYSBT
b3VyY2UgRXh0ZW5zaW9ucyBzcGVjLgotICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRt
bC1tZWRpYS9yYXctZmlsZS83YmFiNjYzNjhmMmMvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5o
dG1sI2RvbS1hcHBlbmQKLQotICAgIC8vIDIuIElmIGRhdGEgaXMgbnVsbCB0aGVuIHRocm93IGFu
IElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IC8vIFNlY3Rpb24gMy4yIGFwcGVuZEJ1ZmZlcigpCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLWFwcGVuZEJ1ZmZlci12b2lkLUFycmF5QnVmZmVyVmll
dy1kYXRhCisgICAgLy8gMS4gSWYgZGF0YSBpcyBudWxsIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9B
Q0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgaWYgKCFkYXRh
KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgLy8gMy4gSWYgdGhpcyBvYmplY3QgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRo
ZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdwotICAg
IC8vICAgIGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCi0gICAgaWYgKGlzUmVtb3ZlZCgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgYXBwZW5kQnVmZmVySW50ZXJuYWwoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRhdGEtPmRhdGEoKSksIGRhdGEtPmJ5dGVMZW5ndGgo
KSwgZWMpOworfQogCi0gICAgLy8gNS4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIG1l
ZGlhIHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBzdGF0ZSB0aGVuIHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzOgotICAgIGlmIChpc0VuZGVkKCkpIHsKLSAgICAgICAgLy8gNS4xLiBTZXQgdGhlIHJl
YWR5U3RhdGUgYXR0cmlidXRlIG9mIG1lZGlhIHNvdXJjZSB0byAib3BlbiIKLSAgICAgICAgLy8g
NS4yLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVu
IGF0IG1lZGlhIHNvdXJjZS4KLSAgICAgICAgbV9zb3VyY2UtPnNldFJlYWR5U3RhdGUoTWVkaWFT
b3VyY2U6Om9wZW5LZXl3b3JkKCkpOwordm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlcihQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgLy8gU2VjdGlvbiAzLjIgYXBwZW5kQnVmZmVyKCkKKyAgICAvLyBodHRwczovL2R2Y3MudzMu
b3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXItYXBwZW5kQnVmZmVyLXZvaWQtQXJyYXlCdWZmZXJW
aWV3LWRhdGEKKyAgICAvLyAxLiBJZiBkYXRhIGlzIG51bGwgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIWRh
dGEpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICAvLyBTdGVwcyA2ICYgYmV5b25kIGFyZSBoYW5kbGVkIGJ5IHRoZSBwcml2
YXRlIGltcGxlbWVudGF0aW9uLgotICAgIG1fcHJpdmF0ZS0+YXBwZW5kKGRhdGEtPmRhdGEoKSwg
ZGF0YS0+bGVuZ3RoKCkpOworICAgIGFwcGVuZEJ1ZmZlckludGVybmFsKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGNoYXIqPihkYXRhLT5iYXNlQWRkcmVzcygpKSwgZGF0YS0+Ynl0ZUxlbmd0aCgpLCBl
Yyk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICAvLyBTZWN0aW9uIDMuMiBhYm9ydCgpIG1ldGhvZCBzdGVwcy4KKyAgICAvLyBodHRwczov
L2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXItYWJvcnQtdm9pZAogICAgIC8vIDEu
IElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBh
dHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UKICAgICAvLyAgICB0aGVuIHRocm93
IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAg
ICAgLy8gMi4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEg
c291cmNlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlCiAgICAgLy8gICAgdGhlbiB0aHJvdyBh
biBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAg
IGlmIChpc1JlbW92ZWQoKSB8fCAhaXNPcGVuKCkpIHsKKyAgICBpZiAoaXNSZW1vdmVkKCkgfHwg
IW1fc291cmNlLT5pc09wZW4oKSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlci51
cGRhdGluZyBhdHRyaWJ1dGUgZXF1YWxzIHRydWUsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3Rl
cHM6IC4uLgorICAgIGFib3J0SWZVcGRhdGluZygpOworCiAgICAgLy8gNC4gUnVuIHRoZSByZXNl
dCBwYXJzZXIgc3RhdGUgYWxnb3JpdGhtLgogICAgIG1fcHJpdmF0ZS0+YWJvcnQoKTsKKworICAg
IC8vIEZJWE1FKDIyOTQwOCkgQWRkIHN0ZXBzIDUtNiB1cGRhdGUgYXBwZW5kV2luZG93U3RhcnQg
JiBhcHBlbmRXaW5kb3dFbmQuCit9CisKKwordm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0SWZVcGRh
dGluZygpCit7CisgICAgLy8gU2VjdGlvbiAzLjIgYWJvcnQoKSBtZXRob2Qgc3RlcCAzIHN1YnN0
ZXBzLgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9k
ZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZlci1h
Ym9ydC12b2lkCisKKyAgICBpZiAoIW1fdXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIDMuMS4gQWJvcnQgdGhlIGJ1ZmZlciBhcHBlbmQgYW5kIHN0cmVhbSBhcHBlbmQgbG9vcCBh
bGdvcml0aG1zIGlmIHRoZXkgYXJlIHJ1bm5pbmcuCisgICAgbV9hcHBlbmRCdWZmZXJUaW1lci5z
dG9wKCk7CisgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOworCisgICAgLy8gMy4yLiBT
ZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byBmYWxzZS4KKyAgICBtX3VwZGF0aW5nID0gZmFs
c2U7CisKKyAgICAvLyAzLjMuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5h
bWVkIGFib3J0IGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50
KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKKworICAgIC8vIDMuNC4gUXVldWUgYSB0YXNrIHRv
IGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRlZW5kIGF0IHRoaXMgU291cmNlQnVmZmVy
IG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVlbmRFdmVudCk7
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKQEAgLTE1
Niw3ICsxOTEsMzggQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2Uo
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnJlbW92ZWRGcm9tTWVkaWFTb3Vy
Y2UoKTsKLSAgICBtX3NvdXJjZS5jbGVhcigpOworICAgIG1fc291cmNlID0gMDsKKyAgICBtX2Fz
eW5jRXZlbnRRdWV1ZSA9IDA7Cit9CisKK2Jvb2wgU291cmNlQnVmZmVyOjpoYXNQZW5kaW5nQWN0
aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX3NvdXJjZTsKK30KKwordm9pZCBTb3VyY2VC
dWZmZXI6OnN0b3AoKQoreworICAgIG1fYXBwZW5kQnVmZmVyVGltZXIuc3RvcCgpOworfQorCitT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBTb3VyY2VCdWZmZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBTb3VyY2VCdWZmZXI6OmludGVy
ZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9y
U291cmNlQnVmZmVyOworfQorCitFdmVudFRhcmdldERhdGEqIFNvdXJjZUJ1ZmZlcjo6ZXZlbnRU
YXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitFdmVu
dFRhcmdldERhdGEqIFNvdXJjZUJ1ZmZlcjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKK3sKKyAg
ICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwogfQogCiBib29sIFNvdXJjZUJ1ZmZlcjo6aXNS
ZW1vdmVkKCkgY29uc3QKQEAgLTE2NCwxNiArMjMwLDc0IEBAIGJvb2wgU291cmNlQnVmZmVyOjpp
c1JlbW92ZWQoKSBjb25zdAogICAgIHJldHVybiAhbV9zb3VyY2U7CiB9CiAKLWJvb2wgU291cmNl
QnVmZmVyOjppc09wZW4oKSBjb25zdAordm9pZCBTb3VyY2VCdWZmZXI6OnNjaGVkdWxlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCiB7Ci0gICAgQVNTRVJUKG1fc291cmNlKTsK
LSAgICByZXR1cm4gbV9zb3VyY2UtPnJlYWR5U3RhdGUoKSA9PSBNZWRpYVNvdXJjZTo6b3Blbktl
eXdvcmQoKTsKKyAgICBBU1NFUlQobV9hc3luY0V2ZW50UXVldWUpOworCisgICAgUmVmUHRyPEV2
ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2UpOworICAg
IGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1
ZUV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7CiB9CiAKLWJvb2wgU291cmNlQnVmZmVyOjppc0VuZGVk
KCkgY29uc3QKK3ZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJJbnRlcm5hbCh1bnNpZ25l
ZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBB
U1NFUlQobV9zb3VyY2UpOwotICAgIHJldHVybiBtX3NvdXJjZS0+cmVhZHlTdGF0ZSgpID09IE1l
ZGlhU291cmNlOjplbmRlZEtleXdvcmQoKTsKKyAgICAvLyBTZWN0aW9uIDMuMiBhcHBlbmRCdWZm
ZXIoKQorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9k
ZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZlci1h
cHBlbmRCdWZmZXItdm9pZC1BcnJheUJ1ZmZlclZpZXctZGF0YQorCisgICAgLy8gU3RlcCAxIGlz
IGVuZm9yY2VkIGJ5IHRoZSBjYWxsZXIuCisgICAgLy8gMi4gSWYgdGhpcyBvYmplY3QgaGFzIGJl
ZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50
IG1lZGlhIHNvdXJjZSB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gMy4gSWYgdGhlIHVwZGF0aW5nIGF0dHJpYnV0
ZSBlcXVhbHMgdHJ1ZSwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChpc1JlbW92ZWQoKSB8fCBtX3VwZGF0aW5n
KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVu
dCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczogLi4uCisgICAgbV9zb3VyY2UtPm9wZW5JZkluRW5kZWRTdGF0ZSgpOworCisg
ICAgLy8gU3RlcHMgNS02CisKKyAgICAvLyA3LiBBZGQgZGF0YSB0byB0aGUgZW5kIG9mIHRoZSBp
bnB1dCBidWZmZXIuCisgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5hcHBlbmQoZGF0YSwgc2l6ZSk7
CisKKyAgICAvLyA4LiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byB0cnVlLgorICAgIG1f
dXBkYXRpbmcgPSB0cnVlOworCisgICAgLy8gOS4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1w
bGUgZXZlbnQgbmFtZWQgdXBkYXRlc3RhcnQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0Lgor
ICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZXN0YXJ0RXZlbnQpOworCisgICAg
Ly8gMTAuIEFzeW5jaHJvbm91c2x5IHJ1biB0aGUgYnVmZmVyIGFwcGVuZCBhbGdvcml0aG0uCisg
ICAgbV9hcHBlbmRCdWZmZXJUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgU291cmNl
QnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVyPFNvdXJjZUJ1ZmZlcj4qKQorewor
ICAgIEFTU0VSVChtX3VwZGF0aW5nKTsKKworICAgIC8vIFNlY3Rpb24gMy41LjQgQnVmZmVyIEFw
cGVuZCBBbGdvcml0aG0KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEv
cmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjc291cmNlYnVm
ZmVyLWJ1ZmZlci1hcHBlbmQKKworICAgIC8vIDEuIFJ1biB0aGUgc2VnbWVudCBwYXJzZXIgbG9v
cCBhbGdvcml0aG0uCisgICAgLy8gU3RlcCAyIGRvZXNuJ3QgYXBwbHkgc2luY2Ugd2UgcnVuIFN0
ZXAgMSBzeW5jaHJvbm91c2x5IGhlcmUuCisgICAgc2l6ZV90IGFwcGVuZFNpemUgPSBtX3BlbmRp
bmdBcHBlbmREYXRhLnNpemUoKTsKKyAgICBpZiAoIWFwcGVuZFNpemUpIHsKKyAgICAgICAgLy8g
UmVzaXplIGJ1ZmZlciBmb3IgMCBieXRlIGFwcGVuZHMgc28gd2UgYWx3YXlzIGhhdmUgYSB2YWxp
ZCBwb2ludGVyLgorICAgICAgICAvLyBXZSBuZWVkIHRvIGNvbnZleSBhbGwgYXBwZW5kcywgZXZl
biAwIGJ5dGUgb25lcyB0byB8bV9wcml2YXRlfCBzbworICAgICAgICAvLyB0aGF0IGl0IGNhbiBj
bGVhciBpdHMgZW5kIG9mIHN0cmVhbSBzdGF0ZSBpZiBuZWNlc3NhcnkuCisgICAgICAgIG1fcGVu
ZGluZ0FwcGVuZERhdGEucmVzaXplKDEpOworICAgIH0KKyAgICBtX3ByaXZhdGUtPmFwcGVuZCht
X3BlbmRpbmdBcHBlbmREYXRhLmRhdGEoKSwgYXBwZW5kU2l6ZSk7CisKKyAgICAvLyAzLiBTZXQg
dGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byBmYWxzZS4KKyAgICBtX3VwZGF0aW5nID0gZmFsc2U7
CisgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOworCisgICAgLy8gNC4gUXVldWUgYSB0
YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRlIGF0IHRoaXMgU291cmNlQnVm
ZmVyIG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVFdmVudCk7
CisKKyAgICAvLyA1LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1
cGRhdGVlbmQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgorICAgIHNjaGVkdWxlRXZlbnQo
ZXZlbnROYW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmgKaW5kZXggYTM1ZTMyNWNhMTM4OTdhMGVkODJlYzEyZjdhMDQzMjZjN2NiMzdiMC4uMTZlMmFk
NTZhNGM1OWY3NmEzNTdiMjQwMzJiZWZjYzdmNjJiMTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw0NSArMzMsODAgQEAK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
R2VuZXJpY0V2ZW50UXVldWU7CiBjbGFzcyBNZWRpYVNvdXJjZTsKIGNsYXNzIFNvdXJjZUJ1ZmZl
clByaXZhdGU7CiBjbGFzcyBUaW1lUmFuZ2VzOwogCi1jbGFzcyBTb3VyY2VCdWZmZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXI+IHsKK2NsYXNzIFNvdXJjZUJ1ZmZlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBFdmVudFRhcmdldCwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8U291cmNlQnVmZmVyPiBjcmVhdGUoUGFzc093blB0cjxTb3VyY2VCdWZm
ZXJQcml2YXRlPiwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4pOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4s
IE1lZGlhU291cmNlKiwgR2VuZXJpY0V2ZW50UXVldWUqKTsKIAogICAgIHZpcnR1YWwgflNvdXJj
ZUJ1ZmZlcigpOwogCiAgICAgLy8gU291cmNlQnVmZmVyLmlkbCBtZXRob2RzCisgICAgYm9vbCB1
cGRhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fdXBkYXRpbmc7IH0KICAgICBQYXNzUmVmUHRyPFRp
bWVSYW5nZXM+IGJ1ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBkb3VibGUgdGlt
ZXN0YW1wT2Zmc2V0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUaW1lc3RhbXBPZmZzZXQoZG91Ymxl
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxVaW50OEFycmF5
PiBkYXRhLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhcHBlbmRCdWZmZXIoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYXBwZW5kQnVm
ZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBkYXRhLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBhYm9ydChFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIGFib3J0SWZVcGRhdGlu
ZygpOwogICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOwogCisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0IGludGVyZmFjZQorICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworCisg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsK
KworICAgIHVzaW5nIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyPjo6cmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8U291cmNlQnVmZmVyPjo6ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBFdmVu
dFRhcmdldCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJn
ZXREYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2
ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdl
dCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorCiBwcml2YXRlOgotICAgIFNvdXJjZUJ1ZmZlcihQ
YXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+LCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPik7
CisgICAgU291cmNlQnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIE1lZGlh
U291cmNlKiwgR2VuZXJpY0V2ZW50UXVldWUqKTsKIAogICAgIGJvb2wgaXNSZW1vdmVkKCkgY29u
c3Q7Ci0gICAgYm9vbCBpc09wZW4oKSBjb25zdDsKLSAgICBib29sIGlzRW5kZWQoKSBjb25zdDsK
KyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpOwor
CisgICAgdm9pZCBhcHBlbmRCdWZmZXJJbnRlcm5hbCh1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoVGltZXI8
U291cmNlQnVmZmVyPiopOwogCiAgICAgT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IG1fcHJp
dmF0ZTsKLSAgICBSZWZQdHI8TWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIE1lZGlhU291cmNl
KiBtX3NvdXJjZTsKKyAgICBHZW5lcmljRXZlbnRRdWV1ZSogbV9hc3luY0V2ZW50UXVldWU7Cisg
ICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCisgICAgYm9vbCBtX3VwZGF0
aW5nOwogICAgIGRvdWJsZSBtX3RpbWVzdGFtcE9mZnNldDsKKworICAgIFZlY3Rvcjx1bnNpZ25l
ZCBjaGFyPiBtX3BlbmRpbmdBcHBlbmREYXRhOworICAgIFRpbWVyPFNvdXJjZUJ1ZmZlcj4gbV9h
cHBlbmRCdWZmZXJUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaWRsCmluZGV4IDcxZjJiNmI2ODQ0NjBkMTVjM2E3ZWZiMjQ2NGZlNjdkODky
ZjA0M2MuLmMxOTBiMWMyN2MwNWExOTU0NmRkZWVmOWExYjhlNzg4OWVjNmRkMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTMwLDkgKzMwLDE0IEBACiAgCiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFLAotICAg
IEludGVyZmFjZU5hbWU9V2ViS2l0U291cmNlQnVmZmVyCi1dIGludGVyZmFjZSBTb3VyY2VCdWZm
ZXIgeworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBF
dmVudFRhcmdldCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKK10gaW50ZXJmYWNlIFNv
dXJjZUJ1ZmZlciA6IEV2ZW50VGFyZ2V0IHsKIAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHVwZGF0aW5nOworICAKICAgICAvLyBSZXR1cm5zIHRoZSB0aW1lIHJhbmdlcyBidWZmZXJl
ZC4KICAgICBbR2V0dGVyUmFpc2VzRXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgVGltZVJh
bmdlcyBidWZmZXJlZDsKIApAQCAtNDAsNyArNDUsOCBAQAogICAgIFtTZXR0ZXJSYWlzZXNFeGNl
cHRpb25dIGF0dHJpYnV0ZSBkb3VibGUgdGltZXN0YW1wT2Zmc2V0OwogCiAgICAgLy8gQXBwZW5k
IHNlZ21lbnQgZGF0YS4KLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFwcGVuZChVaW50OEFy
cmF5IGRhdGEpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYXBwZW5kQnVmZmVyKEFycmF5
QnVmZmVyIGRhdGEpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYXBwZW5kQnVmZmVyKEFy
cmF5QnVmZmVyVmlldyBkYXRhKTsKIAogICAgIC8vIEFib3J0IHRoZSBjdXJyZW50IHNlZ21lbnQg
YXBwZW5kIHNlcXVlbmNlLgogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYWJvcnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuY3BwCmluZGV4IDExZGQ5MWMyNzBhZmY2ZjZhYWNjYTA3YWRiMWI2Y2I2MzQ4NGE4MDku
LjI2NGFlNGViNjJlMjJjZjQ1ZTM2OGI4M2ZiMDJhZTA1MDI5OWY3MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzksNTIgKzM5LDM5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU291cmNlQnVmZmVy
TGlzdDo6U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmljRXZlbnRRdWV1ZSogYXN5
bmNFdmVudFF1ZXVlKQorU291cmNlQnVmZmVyTGlzdDo6U291cmNlQnVmZmVyTGlzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1
ZXVlKQogICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2Fz
eW5jRXZlbnRRdWV1ZShhc3luY0V2ZW50UXVldWUpCiB7CiB9CiAKLXVuc2lnbmVkIGxvbmcgU291
cmNlQnVmZmVyTGlzdDo6bGVuZ3RoKCkgY29uc3QKK1NvdXJjZUJ1ZmZlckxpc3Q6On5Tb3VyY2VC
dWZmZXJMaXN0KCkKIHsKLSAgICByZXR1cm4gbV9saXN0LnNpemUoKTsKLX0KLQotU291cmNlQnVm
ZmVyKiBTb3VyY2VCdWZmZXJMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAg
IGlmIChpbmRleCA+PSBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKKyAgICBBU1NFUlQobV9saXN0LmlzRW1wdHkoKSk7CiB9
CiAKIHZvaWQgU291cmNlQnVmZmVyTGlzdDo6YWRkKFBhc3NSZWZQdHI8U291cmNlQnVmZmVyPiBi
dWZmZXIpCiB7CiAgICAgbV9saXN0LmFwcGVuZChidWZmZXIpOwotICAgIGNyZWF0ZUFuZEZpcmVF
dmVudChldmVudE5hbWVzKCkud2Via2l0YWRkc291cmNlYnVmZmVyRXZlbnQpOworICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLmFkZHNvdXJjZWJ1ZmZlckV2ZW50KTsKIH0KIAotYm9vbCBT
b3VyY2VCdWZmZXJMaXN0OjpyZW1vdmUoU291cmNlQnVmZmVyKiBidWZmZXIpCit2b2lkIFNvdXJj
ZUJ1ZmZlckxpc3Q6OnJlbW92ZShTb3VyY2VCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBzaXplX3Qg
aW5kZXggPSBtX2xpc3QuZmluZChidWZmZXIpOwogICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYnVmZmVyLT5yZW1vdmVkRnJvbU1lZGlhU291
cmNlKCk7CisgICAgICAgIHJldHVybjsKICAgICBtX2xpc3QucmVtb3ZlKGluZGV4KTsKLSAgICBj
cmVhdGVBbmRGaXJlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlckV2
ZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5y
ZW1vdmVzb3VyY2VidWZmZXJFdmVudCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyTGlzdDo6Y2xl
YXIoKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9saXN0LnNpemUoKTsgKytpKQot
ICAgICAgICBtX2xpc3RbaV0tPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKICAgICBtX2xpc3Qu
Y2xlYXIoKTsKLSAgICBjcmVhdGVBbmRGaXJlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHJlbW92
ZXNvdXJjZWJ1ZmZlckV2ZW50KTsKKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5yZW1v
dmVzb3VyY2VidWZmZXJFdmVudCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyTGlzdDo6Y3JlYXRl
QW5kRmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQordm9pZCBTb3VyY2VC
dWZmZXJMaXN0OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQog
ewogICAgIEFTU0VSVChtX2FzeW5jRXZlbnRRdWV1ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKaW5kZXggMGQ0NzY0
ZTEzZDExYTE0MGU4OTE5MWE1NzlhN2ZjZDA0ZWIxOTRlZS4uOGVkMzQ3ZjI2MTljMDUxYzBjYWY4
MTYzY2FhNDkxMTYyZGU5MjQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIApAQCAtNDIsMTkgKzQzLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIGNsYXNzIEdlbmVyaWNFdmVudFF1ZXVlOwogCi1jbGFzcyBT
b3VyY2VCdWZmZXJMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyTGlzdD4sIHB1
YmxpYyBFdmVudFRhcmdldCB7CitjbGFzcyBTb3VyY2VCdWZmZXJMaXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8U291cmNlQnVmZmVyTGlzdD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBF
dmVudFRhcmdldCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U291cmNlQnVmZmVy
TGlzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEdlbmVyaWNFdmVu
dFF1ZXVlKiBhc3luY0V2ZW50UXVldWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNvdXJjZUJ1ZmZlckxpc3QoY29udGV4dCwgYXN5bmNFdmVudFF1ZXVlKSk7CiAgICAgfQot
ICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlckxpc3QoKSB7IH0KKyAgICB2aXJ0dWFsIH5Tb3VyY2VC
dWZmZXJMaXN0KCk7CiAKLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0OwotICAgIFNv
dXJjZUJ1ZmZlciogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgdW5zaWduZWQgbG9u
ZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xpc3Quc2l6ZSgpOyB9CisgICAgU291cmNlQnVm
ZmVyKiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIChpbmRleCA8IG1f
bGlzdC5zaXplKCkpID8gbV9saXN0W2luZGV4XS5nZXQoKSA6IDA7IH0KIAogICAgIHZvaWQgYWRk
KFBhc3NSZWZQdHI8U291cmNlQnVmZmVyPik7Ci0gICAgYm9vbCByZW1vdmUoU291cmNlQnVmZmVy
Kik7CisgICAgdm9pZCByZW1vdmUoU291cmNlQnVmZmVyKik7CisgICAgYm9vbCBjb250YWlucyhT
b3VyY2VCdWZmZXIqIGJ1ZmZlcikgeyByZXR1cm4gbV9saXN0LmZpbmQoYnVmZmVyKSAhPSBub3RG
b3VuZDsgfQogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZQpAQCAtNzEsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFNvdXJjZUJ1ZmZl
ckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEdlbmVyaWNFdmVudFF1ZXVlKik7CiAKLSAg
ICB2b2lkIGNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lk
IHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KQEAgLTg2LDQgKzg4LDUgQEAg
cHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCisKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJM
aXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
TGlzdC5pZGwKaW5kZXggNWIxNGFkOGQwZDZlYTk5ZTc2NDQ2M2FmZDY4MWE5Zjk2MzIwMTcyYi4u
Yjg2ZjZhYWY2ZmYwYTNhZWExN2IxNDliNzI4MzcxZTEwMzU1OTkwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRs
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMCwxOSArMzAsMTIgQEAKICAKIFsKICAgICBDb25kaXRpb25hbD1NRURJQV9TT1VSQ0UsCisg
ICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgRXZlbnRUYXJnZXQsCi0gICAgSW50ZXJmYWNlTmFt
ZT1XZWJLaXRTb3VyY2VCdWZmZXJMaXN0Ci1dIGludGVyZmFjZSBTb3VyY2VCdWZmZXJMaXN0IHsK
KyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dAorXSBpbnRlcmZhY2UgU291cmNlQnVmZmVyTGlzdCA6IEV2ZW50VGFyZ2V0IHsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgZ2V0dGVy
IFNvdXJjZUJ1ZmZlciBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotCi0gICAgLy8gRXZlbnRU
YXJnZXQgaW50ZXJmYWNlCi0gICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwotICAg
IHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAgICBbUmFpc2VzRXhj
ZXB0aW9uXSBib29sZWFuIGRpc3BhdGNoRXZlbnQoRXZlbnQgZXZlbnQpOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iODEwMWRmMTVmNzNjNDhlNTI4ZDJmNWRiMDcxZTg0Yzk1NmI4NDhjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxN
ZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJVUkxNZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2lu
Y2x1ZGUgIkRPTVVSTC5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlQmFzZS5oIgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIFVSTE1l
ZGlhU291cmNlOjpjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgTWVkaWFTb3VyY2VCYXNlKiBzb3VyY2UpCit7CisgICAgLy8gU2lu
Y2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIE1lZGlhU291cmNlIG9iamVjdHMsIHdlIHNob3Vs
ZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKwor
ICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhc291cmNlKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIERPTVVSTDo6Y3JlYXRlUHVibGljVVJMKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIHNvdXJjZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VS
TE1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1l
ZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1NWVmYjQ1ZDcwM2ZjZGJjZWM0MjFkNzU0NDcyOTE5
NzNjNDFhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvVVJMTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBVUkxNZWRpYVNv
dXJjZV9oCisjZGVmaW5lIFVSTE1lZGlhU291cmNlX2gKKworI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIE1lZGlhU291cmNlQmFzZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisK
K2NsYXNzIFVSTE1lZGlhU291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3RyaW5nIGNyZWF0
ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFTb3VyY2VCYXNlKik7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWU1ZmU4M2NkMTQ2NmZlYmFjNmY5YWU1OGI1M2RmNmUyY2E1NjZlOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVk
aWFTb3VyY2UuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NPVVJD
RQorXQorcGFydGlhbCBpbnRlcmZhY2UgVVJMIHsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01TdHJp
bmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlhU291cmNlPyBzb3VyY2UpOworICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3Rh
dGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwoV2ViS2l0TWVkaWFTb3VyY2U/IHNvdXJjZSk7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJL
aXRNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdE1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzhjMmVjMmFmYjM2ZmY2NWJmYjM3Yzg5
ODNkMWUwZTRlMGU1YjA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5jcHAKQEAgLTAsMCArMSwyMDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2UuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKKyNpbmNsdWRlICJNZWRpYVNvdXJjZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlIDx3dGYvVWlu
dDhBcnJheS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8V2ViS2l0TWVk
aWFTb3VyY2U+IFdlYktpdE1lZGlhU291cmNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKK3sKKyAgICBSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+IG1lZGlhU291cmNl
KGFkb3B0UmVmKG5ldyBXZWJLaXRNZWRpYVNvdXJjZShjb250ZXh0KSkpOworICAgIG1lZGlhU291
cmNlLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gbWVkaWFTb3VyY2UucmVsZWFzZSgp
OworfQorCitXZWJLaXRNZWRpYVNvdXJjZTo6V2ViS2l0TWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IE1lZGlhU291cmNlQmFzZShjb250ZXh0KQorewor
ICAgIG1fc291cmNlQnVmZmVycyA9IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIGFzeW5jRXZlbnRRdWV1ZSgpKTsKKyAgICBtX2FjdGl2ZVNv
dXJjZUJ1ZmZlcnMgPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50UXVldWUoKSk7Cit9CisKK1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QqIFdlYktpdE1lZGlhU291cmNlOjpzb3VyY2VCdWZmZXJzKCkKK3sKKyAgICByZXR1cm4g
bV9zb3VyY2VCdWZmZXJzLmdldCgpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KiBXZWJL
aXRNZWRpYVNvdXJjZTo6YWN0aXZlU291cmNlQnVmZmVycygpCit7CisgICAgLy8gRklYTUUoOTE2
NDkpOiBzdXBwb3J0IHRyYWNrIHNlbGVjdGlvbgorICAgIHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1
ZmZlcnMuZ2V0KCk7Cit9CisKK1dlYktpdFNvdXJjZUJ1ZmZlciogV2ViS2l0TWVkaWFTb3VyY2U6
OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90
aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1hZGRzb3VyY2VidWZmZXIKKyAg
ICAvLyAxLiBJZiB0eXBlIGlzIG51bGwgb3IgYW4gZW1wdHkgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZAorICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyAyLiBJ
ZiB0eXBlIGNvbnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1cHBvcnRlZCAuLi4sIHRo
ZW4gdGhyb3cgYQorICAgIC8vIE5PVF9TVVBQT1JURURfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQodHlwZSkpIHsKKyAgICAgICAg
ZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg
Ly8gNC4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0
YXRlIHRoZW4gdGhyb3cgYW4KKyAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5k
IGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghaXNPcGVuKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gNS4g
Q3JlYXRlIGEgbmV3IFNvdXJjZUJ1ZmZlciBvYmplY3QgYW5kIGFzc29jaWF0ZWQgcmVzb3VyY2Vz
LgorICAgIENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKHR5cGUpOworICAgIFZlY3RvcjxTdHJpbmc+
IGNvZGVjcyA9IGNvbnRlbnRUeXBlLmNvZGVjcygpOworICAgIE93blB0cjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlID0gY3JlYXRlU291cmNlQnVmZmVyUHJpdmF0ZShj
b250ZW50VHlwZS50eXBlKCksIGNvZGVjcywgZWMpOworICAgIGlmICghc291cmNlQnVmZmVyUHJp
dmF0ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8V2ViS2l0U291cmNlQnVmZmVy
PiBidWZmZXIgPSBXZWJLaXRTb3VyY2VCdWZmZXI6OmNyZWF0ZShzb3VyY2VCdWZmZXJQcml2YXRl
LnJlbGVhc2UoKSwgdGhpcyk7CisgICAgLy8gNi4gQWRkIHRoZSBuZXcgb2JqZWN0IHRvIHNvdXJj
ZUJ1ZmZlcnMgYW5kIGZpcmUgYSBhZGRzb3VyY2VidWZmZXIgb24gdGhhdCBvYmplY3QuCisgICAg
bV9zb3VyY2VCdWZmZXJzLT5hZGQoYnVmZmVyKTsKKyAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMt
PmFkZChidWZmZXIpOworICAgIC8vIDcuIFJldHVybiB0aGUgbmV3IG9iamVjdCB0byB0aGUgY2Fs
bGVyLgorICAgIHJldHVybiBidWZmZXIuZ2V0KCk7Cit9CisKK3ZvaWQgV2ViS2l0TWVkaWFTb3Vy
Y2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihXZWJLaXRTb3VyY2VCdWZmZXIqIGJ1ZmZlciwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgLy8gMy4xIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1l
ZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLXJlbW92
ZXNvdXJjZWJ1ZmZlcgorICAgIC8vIDEuIElmIHNvdXJjZUJ1ZmZlciBpcyBudWxsIHRoZW4gdGhy
b3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKKyAgICAvLyBhYm9ydCB0aGVz
ZSBzdGVwcy4KKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDIuIElmIHNvdXJjZUJ1ZmZl
cnMgaXMgZW1wdHkgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5k
CisgICAgLy8gYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzQ2xvc2VkKCkgfHwgIW1fc291
cmNlQnVmZmVycy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDMuIElmIHNvdXJjZUJ1ZmZlciBzcGVj
aWZpZXMgYW4gb2JqZWN0IHRoYXQgaXMgbm90IGluIHNvdXJjZUJ1ZmZlcnMgdGhlbgorICAgIC8v
IHRocm93IGEgTk9UX0ZPVU5EX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgor
ICAgIC8vIDYuIFJlbW92ZSBzb3VyY2VCdWZmZXIgZnJvbSBzb3VyY2VCdWZmZXJzIGFuZCBmaXJl
IGEgcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50CisgICAgLy8gb24gdGhhdCBvYmplY3QuCisgICAg
aWYgKCFtX3NvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIpKSB7CisgICAgICAgIGVjID0gTk9U
X0ZPVU5EX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDcuIERlc3Ryb3kg
YWxsIHJlc291cmNlcyBmb3Igc291cmNlQnVmZmVyLgorICAgIG1fYWN0aXZlU291cmNlQnVmZmVy
cy0+cmVtb3ZlKGJ1ZmZlcik7CisKKyAgICAvLyA0LiBSZW1vdmUgdHJhY2sgaW5mb3JtYXRpb24g
ZnJvbSBhdWRpb1RyYWNrcywgdmlkZW9UcmFja3MsIGFuZCB0ZXh0VHJhY2tzIGZvciBhbGwgdHJh
Y2tzCisgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHNvdXJjZUJ1ZmZlciBhbmQgZmlyZSBhIHNpbXBs
ZSBldmVudCBuYW1lZCBjaGFuZ2Ugb24gdGhlIG1vZGlmaWVkIGxpc3RzLgorICAgIC8vIEZJWE1F
KDkxNjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KKworICAgIC8vIDUuIElmIHNvdXJjZUJ1
ZmZlciBpcyBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJlbW92ZSBpdCBmcm9tIHRoYXQg
bGlzdCBhbmQgZmlyZSBhCisgICAgLy8gcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50IG9uIHRoYXQg
b2JqZWN0LgorICAgIC8vIEZJWE1FKDkxNjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KK30K
Kwordm9pZCBXZWJLaXRNZWRpYVNvdXJjZTo6b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21p
Y1N0cmluZyYgb2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3RhdGUpCit7CisgICAg
aWYgKGlzQ2xvc2VkKCkpIHsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJzLT5jbGVhcigpOworICAg
ICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmNsZWFyKCk7CisgICAgICAgIHNjaGVkdWxlRXZl
bnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJjZWNsb3NlRXZlbnQpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKG9sZFN0YXRlID09IG9wZW5LZXl3b3JkKCkgJiYgbmV3U3RhdGUg
PT0gZW5kZWRLZXl3b3JkKCkpIHsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
d2Via2l0c291cmNlZW5kZWRFdmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoaXNPcGVuKCkpIHsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0
c291cmNlb3BlbkV2ZW50KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworVmVjdG9yPFJl
ZlB0cjxUaW1lUmFuZ2VzPiA+IFdlYktpdE1lZGlhU291cmNlOjphY3RpdmVSYW5nZXMoKSBjb25z
dAoreworICAgIFZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBhY3RpdmVSYW5nZXMobV9hY3Rp
dmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmxlbmd0aCgpOyArK2kpCisgICAgICAgIGFjdGl2ZVJhbmdl
c1tpXSA9IG1fYWN0aXZlU291cmNlQnVmZmVycy0+aXRlbShpKS0+YnVmZmVyZWQoQVNTRVJUX05P
X0VYQ0VQVElPTik7CisKKyAgICByZXR1cm4gYWN0aXZlUmFuZ2VzOworfQorCitib29sIFdlYktp
dE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAg
IC8vIFNlY3Rpb24gMi4xIGlzVHlwZVN1cHBvcnRlZCgpIG1ldGhvZCBzdGVwcy4KKyAgICAvLyBo
dHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlhU291cmNlLWlzVHlwZVN1cHBvcnRlZC1ib29s
ZWFuLURPTVN0cmluZy10eXBlCisgICAgLy8gMS4gSWYgdHlwZSBpcyBhbiBlbXB0eSBzdHJpbmcs
IHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDb250ZW50VHlwZSBjb250ZW50VHlw
ZSh0eXBlKTsKKyAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2Rl
Y3MiKTsKKworICAgIC8vIDIuIElmIHR5cGUgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIE1JTUUg
dHlwZSBzdHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIGlmIChjb250ZW50VHlwZS50eXBl
KCkuaXNFbXB0eSgpIHx8IGNvZGVjcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIC8vIDMuIElmIHR5cGUgY29udGFpbnMgYSBtZWRpYSB0eXBlIG9yIG1lZGlhIHN1YnR5
cGUgdGhhdCB0aGUgTWVkaWFTb3VyY2UgZG9lcyBub3Qgc3VwcG9ydCwgdGhlbiByZXR1cm4gZmFs
c2UuCisgICAgLy8gNC4gSWYgdHlwZSBjb250YWlucyBhdCBhIGNvZGVjIHRoYXQgdGhlIE1lZGlh
U291cmNlIGRvZXMgbm90IHN1cHBvcnQsIHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIC8vIDUuIElm
IHRoZSBNZWRpYVNvdXJjZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgY29tYmluYXRp
b24gb2YgbWVkaWEgdHlwZSwgbWVkaWEgc3VidHlwZSwgYW5kIGNvZGVjcyB0aGVuIHJldHVybiBm
YWxzZS4KKyAgICAvLyA2LiBSZXR1cm4gdHJ1ZS4KKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNvbnRlbnRUeXBlLnR5cGUoKSwgY29k
ZWNzKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXRNZWRpYVNvdXJjZTo6aW50ZXJm
YWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JX
ZWJLaXRNZWRpYVNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVk
aWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVk
aWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTc1YWUzNjJhYWI2ODg4ZWU0MjI4NTUyYTE0MWQyZmIy
MDhjZjJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYktpdE1l
ZGlhU291cmNlX2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFTb3VyY2VfaAorCisjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkKKworI2luY2x1ZGUgIk1lZGlhU291cmNlQmFzZS5oIgorI2luY2x1ZGUgIlNj
cmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgIldlYktpdFNvdXJjZUJ1ZmZlci5oIgorI2luY2x1
ZGUgIldlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYktpdE1lZGlhU291cmNlIDogcHVi
bGljIE1lZGlhU291cmNlQmFzZSwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViS2l0TWVkaWFTb3VyY2UoKSB7IH0KKwor
ICAgIC8vIFdlYktpdE1lZGlhU291cmNlLmlkbCBtZXRob2RzCisgICAgV2ViS2l0U291cmNlQnVm
ZmVyTGlzdCogc291cmNlQnVmZmVycygpOworICAgIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QqIGFj
dGl2ZVNvdXJjZUJ1ZmZlcnMoKTsKKyAgICBXZWJLaXRTb3VyY2VCdWZmZXIqIGFkZFNvdXJjZUJ1
ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92
ZVNvdXJjZUJ1ZmZlcihXZWJLaXRTb3VyY2VCdWZmZXIqLCBFeGNlcHRpb25Db2RlJik7CisgICAg
c3RhdGljIGJvb2wgaXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSk7CisKKyAgICAv
LyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
aW50ZXJmYWNlTmFtZSgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxN
ZWRpYVNvdXJjZUJhc2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZUJh
c2U+OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJLaXRNZWRpYVNvdXJjZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICAvLyBNZWRpYVNvdXJjZUJhc2UgaW50ZXJm
YWNlCisgICAgdmlydHVhbCB2b2lkIG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFZlY3RvcjxS
ZWZQdHI8VGltZVJhbmdlcz4gPiBhY3RpdmVSYW5nZXMoKSBjb25zdCBPVkVSUklERTsKKworICAg
IFJlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0PiBtX3NvdXJjZUJ1ZmZlcnM7CisgICAgUmVm
UHRyPFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q+IG1fYWN0aXZlU291cmNlQnVmZmVyczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmQzZWJmN2VlYmIyOWZkZjM4MmM5YTY5MDUzZTgwZjBhYjBiNzE1OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
TWVkaWFTb3VyY2UuaWRsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorWworICAgIENvbmRpdGlvbmFsPU1FRElB
X1NPVVJDRSwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAgRXZlbnRUYXJnZXQsCisgICAgSlNH
ZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIENvbnN0cnVjdG9yLAorICAgIENvbnN0cnVjdG9y
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dAorXSBpbnRlcmZhY2UgV2ViS2l0TWVkaWFT
b3VyY2UgOiBFdmVudFRhcmdldCB7CisgICAgLy8gQWxsIHRoZSBzb3VyY2UgYnVmZmVycyBjcmVh
dGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0IHNvdXJjZUJ1ZmZlcnM7CisKKyAgICAvLyBTdWJzZXQgb2Ygc291cmNlQnVmZmVy
cyB0aGF0IHByb3ZpZGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkL2VuYWJsZWQgdHJhY2tzLgorICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0IGFjdGl2ZVNvdXJjZUJ1
ZmZlcnM7CisKKyAgICBbU2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIGR1
cmF0aW9uOworCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gV2ViS2l0U291cmNlQnVmZmVyIGFkZFNv
dXJjZUJ1ZmZlcihET01TdHJpbmcgdHlwZSk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBy
ZW1vdmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNlQnVmZmVyIGJ1ZmZlcik7CisKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYWR5U3RhdGU7CisgICAgCisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBlbmRPZlN0cmVhbShbRGVmYXVsdD1OdWxsU3RyaW5nXSBvcHRpb25hbCBE
T01TdHJpbmcgZXJyb3IpOworCisgICAgc3RhdGljIGJvb2xlYW4gaXNUeXBlU3VwcG9ydGVkIChE
T01TdHJpbmcgdHlwZSk7Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU5NGIy
OGU4MzQ1ZjgyYzEyYWYyN2UzNTliZDM5ZjRjZjYwNzA5NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmNwcApA
QCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRTb3Vy
Y2VCdWZmZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJTb3Vy
Y2VCdWZmZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIldl
YktpdE1lZGlhU291cmNlLmgiCisjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4gV2ViS2l0U291
cmNlQnVmZmVyOjpjcmVhdGUoUGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VC
dWZmZXJQcml2YXRlLCBQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBzb3VyY2UpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRTb3VyY2VCdWZmZXIoc291cmNlQnVmZmVyUHJp
dmF0ZSwgc291cmNlKSk7Cit9CisKK1dlYktpdFNvdXJjZUJ1ZmZlcjo6V2ViS2l0U291cmNlQnVm
ZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwg
UGFzc1JlZlB0cjxXZWJLaXRNZWRpYVNvdXJjZT4gc291cmNlKQorICAgIDogbV9wcml2YXRlKHNv
dXJjZUJ1ZmZlclByaXZhdGUpCisgICAgLCBtX3NvdXJjZShzb3VyY2UpCisgICAgLCBtX3RpbWVz
dGFtcE9mZnNldCgwKQoreworICAgIEFTU0VSVChtX3ByaXZhdGUpOworICAgIEFTU0VSVChtX3Nv
dXJjZSk7Cit9CisKK1dlYktpdFNvdXJjZUJ1ZmZlcjo6fldlYktpdFNvdXJjZUJ1ZmZlcigpCit7
Cit9CisKK1Bhc3NSZWZQdHI8VGltZVJhbmdlcz4gV2ViS2l0U291cmNlQnVmZmVyOjpidWZmZXJl
ZChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICAvLyBTZWN0aW9uIDMuMSBidWZmZXJl
ZCBhdHRyaWJ1dGUgc3RlcHMuCisgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaGFzIGJlZW4gcmVt
b3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlh
IHNvdXJjZSB0aGVuIHRocm93IGFuCisgICAgLy8gICAgSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0
aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisg
ICAgLy8gMi4gUmV0dXJuIGEgbmV3IHN0YXRpYyBub3JtYWxpemVkIFRpbWVSYW5nZXMgb2JqZWN0
IGZvciB0aGUgbWVkaWEgc2VnbWVudHMgYnVmZmVyZWQuCisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
YnVmZmVyZWQoKTsKK30KKworZG91YmxlIFdlYktpdFNvdXJjZUJ1ZmZlcjo6dGltZXN0YW1wT2Zm
c2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lc3RhbXBPZmZzZXQ7Cit9CisKK3ZvaWQg
V2ViS2l0U291cmNlQnVmZmVyOjpzZXRUaW1lc3RhbXBPZmZzZXQoZG91YmxlIG9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gU2VjdGlvbiAzLjEgdGltZXN0YW1wT2Zmc2V0IGF0
dHJpYnV0ZSBzZXR0ZXIgc3RlcHMuCisgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaGFzIGJlZW4g
cmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1l
ZGlhIHNvdXJjZSB0aGVuIHRocm93IGFuCisgICAgLy8gICAgSU5WQUxJRF9TVEFURV9FUlIgZXhj
ZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkpIHsKKyAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIDQuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlh
IHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBzdGF0ZSB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgorICAgIC8vIDQuMSBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJl
bnQgbWVkaWEgc291cmNlIHRvICJvcGVuIgorICAgIC8vIDQuMiBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVuIGF0IHRoZSBwYXJlbnQgbWVkaWEgc291
cmNlLgorICAgIG1fc291cmNlLT5vcGVuSWZJbkVuZGVkU3RhdGUoKTsKKworICAgIC8vIDUuIElm
IHRoaXMgb2JqZWN0IGlzIHdhaXRpbmcgZm9yIHRoZSBlbmQgb2YgYSBtZWRpYSBzZWdtZW50IHRv
IGJlIGFwcGVuZGVkLCB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJSCisgICAgLy8gYW5k
IGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghbV9wcml2YXRlLT5zZXRUaW1lc3RhbXBPZmZz
ZXQob2Zmc2V0KSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gNi4gVXBkYXRlIHRoZSBhdHRyaWJ1dGUgdG8gdGhlIG5l
dyB2YWx1ZS4KKyAgICBtX3RpbWVzdGFtcE9mZnNldCA9IG9mZnNldDsKK30KKwordm9pZCBXZWJL
aXRTb3VyY2VCdWZmZXI6OmFwcGVuZChQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGRhdGEsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIC8vIFNvdXJjZUJ1ZmZlci5hcHBlbmQoKSBzdGVwcyBmcm9t
IE9jdG9iZXIgMXN0IHZlcnNpb24gb2YgdGhlIE1lZGlhIFNvdXJjZSBFeHRlbnNpb25zIHNwZWMu
CisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlLzdiYWI2
NjM2OGYyYy9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLWFwcGVuZAorCisgICAg
Ly8gMi4gSWYgZGF0YSBpcyBudWxsIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4
Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFkYXRhKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gMy4gSWYgdGhpcyBvYmplY3QgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZm
ZXJzIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdworICAgIC8vICAgIGFuIElO
VkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYg
KGlzUmVtb3ZlZCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyA1LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUg
b2YgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0YXRlIHRoZW4gcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHM6CisgICAgLy8gNS4xLiBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9m
IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKKyAgICAvLyA1LjIuIFF1ZXVlIGEgdGFzayB0byBmaXJl
IGEgc2ltcGxlIGV2ZW50IG5hbWVkIHNvdXJjZW9wZW4gYXQgbWVkaWEgc291cmNlLgorICAgIG1f
c291cmNlLT5vcGVuSWZJbkVuZGVkU3RhdGUoKTsKKworICAgIC8vIFN0ZXBzIDYgJiBiZXlvbmQg
YXJlIGhhbmRsZWQgYnkgdGhlIHByaXZhdGUgaW1wbGVtZW50YXRpb24uCisgICAgbV9wcml2YXRl
LT5hcHBlbmQoZGF0YS0+ZGF0YSgpLCBkYXRhLT5sZW5ndGgoKSk7Cit9CisKK3ZvaWQgV2ViS2l0
U291cmNlQnVmZmVyOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBTZWN0aW9u
IDMuMiBhYm9ydCgpIG1ldGhvZCBzdGVwcy4KKyAgICAvLyAxLiBJZiB0aGlzIG9iamVjdCBoYXMg
YmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mIHRoZSBwYXJl
bnQgbWVkaWEgc291cmNlCisgICAgLy8gICAgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VS
UiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIDIuIElmIHRoZSByZWFk
eVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSBpcyBub3QgaW4gdGhl
ICJvcGVuIiBzdGF0ZQorICAgIC8vICAgIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIg
ZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkgfHwg
IW1fc291cmNlLT5pc09wZW4oKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gNC4gUnVuIHRoZSByZXNldCBwYXJzZXIg
c3RhdGUgYWxnb3JpdGhtLgorICAgIG1fcHJpdmF0ZS0+YWJvcnQoKTsKK30KKwordm9pZCBXZWJL
aXRTb3VyY2VCdWZmZXI6OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKQoreworICAgIGlmIChpc1Jl
bW92ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlLT5yZW1vdmVkRnJvbU1l
ZGlhU291cmNlKCk7CisgICAgbV9zb3VyY2UuY2xlYXIoKTsKK30KKworYm9vbCBXZWJLaXRTb3Vy
Y2VCdWZmZXI6OmlzUmVtb3ZlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3NvdXJjZTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE2YjlkZmIyMTg1MzY1ZjBhMWNmZTc4NzFkZDZlMDE2OTMxNWJlNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1
ZmZlci5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYktpdFNvdXJjZUJ1ZmZlcl9oCisjZGVm
aW5lIFdlYktpdFNvdXJjZUJ1ZmZlcl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZTsKK2NsYXNzIFRpbWVSYW5nZXM7CitjbGFzcyBXZWJL
aXRNZWRpYVNvdXJjZTsKKworY2xhc3MgV2ViS2l0U291cmNlQnVmZmVyIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViS2l0U291cmNlQnVmZmVyPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0U291cmNlQnVmZmVyPiBjcmVhdGUoUGFz
c093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgUGFzc1JlZlB0cjxXZWJLaXRNZWRpYVNvdXJj
ZT4pOworCisgICAgdmlydHVhbCB+V2ViS2l0U291cmNlQnVmZmVyKCk7CisKKyAgICAvLyBXZWJL
aXRTb3VyY2VCdWZmZXIuaWRsIG1ldGhvZHMKKyAgICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1
ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBkb3VibGUgdGltZXN0YW1wT2Zmc2V0
KCkgY29uc3Q7CisgICAgdm9pZCBzZXRUaW1lc3RhbXBPZmZzZXQoZG91YmxlLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxVaW50OEFycmF5PiBkYXRhLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBhYm9ydChFeGNlcHRpb25Db2RlJik7CisKKyAgICB2b2lk
IHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKKworcHJpdmF0ZToKKyAgICBXZWJLaXRTb3VyY2VC
dWZmZXIoUGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgUGFzc1JlZlB0cjxXZWJLaXRN
ZWRpYVNvdXJjZT4pOworCisgICAgYm9vbCBpc1JlbW92ZWQoKSBjb25zdDsKKworICAgIE93blB0
cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVmUHRyPFdlYktpdE1lZGlh
U291cmNlPiBtX3NvdXJjZTsKKworICAgIGRvdWJsZSBtX3RpbWVzdGFtcE9mZnNldDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MjkyM2IzMzYzNzFmYWVmZGUwM2MzM2RhYzRlMzI1MDkwMzg1MDlhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJL
aXRTb3VyY2VCdWZmZXIuaWRsCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorWworICAgIENvbmRpdGlvbmFsPU1F
RElBX1NPVVJDRQorXSBpbnRlcmZhY2UgV2ViS2l0U291cmNlQnVmZmVyIHsKKworICAgIC8vIFJl
dHVybnMgdGhlIHRpbWUgcmFuZ2VzIGJ1ZmZlcmVkLgorICAgIFtHZXR0ZXJSYWlzZXNFeGNlcHRp
b25dIHJlYWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFuZ2VzIGJ1ZmZlcmVkOworCisgICAgLy8gQXBw
bGllcyBhbiBvZmZzZXQgdG8gbWVkaWEgc2VnbWVudCB0aW1lc3RhbXBzLgorICAgIFtTZXR0ZXJS
YWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBkb3VibGUgdGltZXN0YW1wT2Zmc2V0OworCisgICAg
Ly8gQXBwZW5kIHNlZ21lbnQgZGF0YS4KKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFwcGVu
ZChVaW50OEFycmF5IGRhdGEpOworCisgICAgLy8gQWJvcnQgdGhlIGN1cnJlbnQgc2VnbWVudCBh
cHBlbmQgc2VxdWVuY2UuCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBhYm9ydCgpOworfTsK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRT
b3VyY2VCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQyNTI5ZGY1M2M4ZDUzMTYw
NWIzZTE0ZmEwMGJkMTljMzc5NmY1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAKQEAgLTAsMCAr
MSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0U291cmNlQnVmZmVy
TGlzdC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkV2ZW50Lmgi
CisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJXZWJLaXRTb3VyY2VC
dWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJLaXRTb3VyY2VCdWZmZXJMaXN0
OjpXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IEdlbmVyaWNFdmVudFF1ZXVlKiBhc3luY0V2ZW50UXVldWUpCisgICAgOiBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoY29udGV4dCkKKyAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKGFzeW5jRXZlbnRR
dWV1ZSkKK3sKK30KKwordW5zaWduZWQgbG9uZyBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpsZW5n
dGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2xpc3Quc2l6ZSgpOworfQorCitXZWJLaXRTb3Vy
Y2VCdWZmZXIqIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0Cit7CisgICAgaWYgKGluZGV4ID49IG1fbGlzdC5zaXplKCkpCisgICAgICAgIHJldHVybiAw
OworICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLmdldCgpOworfQorCit2b2lkIFdlYktpdFNvdXJj
ZUJ1ZmZlckxpc3Q6OmFkZChQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4gYnVmZmVyKQor
eworICAgIG1fbGlzdC5hcHBlbmQoYnVmZmVyKTsKKyAgICBjcmVhdGVBbmRGaXJlRXZlbnQoZXZl
bnROYW1lcygpLndlYmtpdGFkZHNvdXJjZWJ1ZmZlckV2ZW50KTsKK30KKworYm9vbCBXZWJLaXRT
b3VyY2VCdWZmZXJMaXN0OjpyZW1vdmUoV2ViS2l0U291cmNlQnVmZmVyKiBidWZmZXIpCit7Cisg
ICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQoYnVmZmVyKTsKKyAgICBpZiAoaW5kZXggPT0g
bm90Rm91bmQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJ1ZmZlci0+cmVtb3ZlZEZy
b21NZWRpYVNvdXJjZSgpOworICAgIG1fbGlzdC5yZW1vdmUoaW5kZXgpOworICAgIGNyZWF0ZUFu
ZEZpcmVFdmVudChldmVudE5hbWVzKCkud2Via2l0cmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOwor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmNsZWFy
KCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdC5zaXplKCk7ICsraSkKKyAg
ICAgICAgbV9saXN0W2ldLT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisgICAgbV9saXN0LmNs
ZWFyKCk7CisgICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRyZW1vdmVz
b3VyY2VidWZmZXJFdmVudCk7Cit9CisKK3ZvaWQgV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6Y3Jl
YXRlQW5kRmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQoreworICAgIEFT
U0VSVChtX2FzeW5jRXZlbnRRdWV1ZSk7CisKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCBmYWxzZSk7CisgICAgZXZlbnQtPnNldFRhcmdl
dCh0aGlzKTsKKworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZlbnQucmVs
ZWFzZSgpKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0
OjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVy
ZmFjZUZvcldlYktpdFNvdXJjZUJ1ZmZlckxpc3Q7Cit9CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Cit9CisKK0V2ZW50VGFy
Z2V0RGF0YSogV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAg
ICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitFdmVudFRhcmdldERhdGEqIFdlYktp
dFNvdXJjZUJ1ZmZlckxpc3Q6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJu
ICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9X
ZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdkMjdiNWQ4NmJkMWUwNzQyZTE0
YWYwNDJkOTUxYTcwMTYzN2VhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oCkBAIC0wLDAgKzEsOTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3RfaAorI2RlZmluZSBXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0X2gKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgorI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdlYktpdFNvdXJjZUJ1ZmZlcjsKK2NsYXNzIEdlbmVyaWNFdmVudFF1ZXVl
OworCitjbGFzcyBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
S2l0U291cmNlQnVmZmVyTGlzdD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBFdmVu
dFRhcmdldCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0U291cmNlQnVm
ZmVyTGlzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEdlbmVyaWNF
dmVudFF1ZXVlKiBhc3luY0V2ZW50UXVldWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QoY29udGV4dCwgYXN5bmNFdmVudFF1ZXVlKSk7
CisgICAgfQorICAgIHZpcnR1YWwgfldlYktpdFNvdXJjZUJ1ZmZlckxpc3QoKSB7IH0KKworICAg
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7CisgICAgV2ViS2l0U291cmNlQnVmZmVyKiBp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKworICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8V2Vi
S2l0U291cmNlQnVmZmVyPik7CisgICAgYm9vbCByZW1vdmUoV2ViS2l0U291cmNlQnVmZmVyKik7
CisgICAgdm9pZCBjbGVhcigpOworCisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBPVkVSUklERTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0U291
cmNlQnVmZmVyTGlzdD46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3Q+OjpkZXJlZjsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0
RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAg
V2ViS2l0U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgR2VuZXJpY0V2
ZW50UXVldWUqKTsKKworICAgIHZvaWQgY3JlYXRlQW5kRmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBy
ZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBk
ZXJlZigpOyB9CisKKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CisgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworICAgIEdl
bmVyaWNFdmVudFF1ZXVlKiBtX2FzeW5jRXZlbnRRdWV1ZTsKKworICAgIFZlY3RvcjxSZWZQdHI8
V2ViS2l0U291cmNlQnVmZmVyPiA+IG1fbGlzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY2MWI5YTE1ZjYxNmVjMzFlN2Q0NzRjMGQ5MzAxOTg0YTRhMWRiNzEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuaWRsCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NPVVJD
RSwKKyAgICBFdmVudFRhcmdldCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKK10gaW50
ZXJmYWNlIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QgOiBFdmVudFRhcmdldCB7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgIGdldHRlciBXZWJLaXRTb3Vy
Y2VCdWZmZXIgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKK307CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggNWMzODhh
YmFmM2FkZWYxNzM3YzJkYTM5OTE2MjcyNDEwMDRjNDBlNy4uMGQ4NGExYjIzZDFjZjk0ZjY0MmY4
ZTc1OTAyYTJmZjdlYjc1ZWM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJF
dmVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bUNlbnRlci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tFdmVudC5oIgog
I2luY2x1ZGUgIlVVSUQuaCIKQEAgLTMzMCw2ICszMzEsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbTo6
c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtPiopCiAgICAgZXZlbnRz
LmNsZWFyKCk7CiB9CiAKK1VSTFJlZ2lzdHJ5JiBNZWRpYVN0cmVhbTo6cmVnaXN0cnkoKSBjb25z
dAoreworICAgIHJldHVybiBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmlu
ZGV4IGQxMzQ0MmY2MjMxYTAzYzU0OTUwNjY2YzJiOWRlNmVhZDRmYzhiM2MuLmY4MWUyYzhlOGRi
OTY3YmY3YWQ4Zjg5YzEyNmU4ODc5NWVjZmNhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKQEAgLTM0LDEyICszNCwxMyBAQAogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJh
Y2suaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlVSTFJlZ2lzdHJ5LmgiCiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxN
ZWRpYVN0cmVhbT4sIHB1YmxpYyBNZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQsIHB1YmxpYyBF
dmVudFRhcmdldCwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK2NsYXNzIE1l
ZGlhU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+LCBwdWJsaWMgVVJMUmVn
aXN0cmFibGUsIHB1YmxpYyBNZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQsIHB1YmxpYyBFdmVu
dFRhcmdldCwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPik7CkBAIC03OSw2ICs4
MCw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPjo6cmVmOwog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+OjpkZXJlZjsKIAorICAgIC8vIFVSTFJl
Z2lzdHJhYmxlCisgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCBPVkVS
UklERTsKKwogcHJvdGVjdGVkOgogICAgIE1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5
LmNwcAppbmRleCA4NDNlYWFiNGM3ZTY4YTQ5MWJlYmE4YjYyY2FhNjJiNGZjOWZhNDhlLi5mZjVj
NmRhYjgzODRiZTE0MzMzMmY0MzdhN2U1NTQ3NzVhOThmZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5j
cHAKQEAgLTQxLDEzICs0MSwxNCBAQCBNZWRpYVN0cmVhbVJlZ2lzdHJ5JiBNZWRpYVN0cmVhbVJl
Z2lzdHJ5OjpyZWdpc3RyeSgpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi12b2lkIE1lZGlh
U3RyZWFtUmVnaXN0cnk6OnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwoY29uc3QgS1VSTCYgdXJsLCBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0pCit2b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6
OnJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYgdXJsLCBVUkxSZWdpc3Ry
YWJsZSogc3RyZWFtKQogeworICAgIEFTU0VSVCgmc3RyZWFtLT5yZWdpc3RyeSgpID09IHRoaXMp
OwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdHJlYW1EZXNjcmlwdG9ycy5z
ZXQodXJsLnN0cmluZygpLCBzdHJlYW0tPmRlc2NyaXB0b3IoKSk7CisgICAgbV9zdHJlYW1EZXNj
cmlwdG9ycy5zZXQodXJsLnN0cmluZygpLCBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHN0cmVh
bSktPmRlc2NyaXB0b3IoKSk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6dW5yZWdp
c3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwmIHVybCkKK3ZvaWQgTWVkaWFTdHJlYW1SZWdp
c3RyeTo6dW5yZWdpc3RlclVSTChjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBtX3N0cmVhbURlc2NyaXB0b3JzLnJlbW92ZSh1cmwuc3RyaW5nKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUmVnaXN0cnkuaAppbmRleCAxZjkyNzQ1MDk1ZTk0ZmU3MzQyMDlhYzhjZTAzODcyOTdi
MDA4YjMwLi5lOGJlNGMxYjQ5MGY5MzBiMWExMzA0ZDBiMWNjNmEyNzNjZWJlZjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UmVnaXN0cnkuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAorI2luY2x1ZGUgIlVSTFJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KQEAgLTM3LDE0ICszOCwxNCBAQCBjbGFzcyBLVVJMOwogY2xhc3MgTWVkaWFTdHJlYW07CiBj
bGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiAKLWNsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnkg
eworY2xhc3MgTWVkaWFTdHJlYW1SZWdpc3RyeSA6IHB1YmxpYyBVUkxSZWdpc3RyeSB7CiBwdWJs
aWM6CiAgICAgLy8gUmV0dXJucyBhIHNpbmdsZSBpbnN0YW5jZSBvZiBNZWRpYVN0cmVhbVJlZ2lz
dHJ5LgogICAgIHN0YXRpYyBNZWRpYVN0cmVhbVJlZ2lzdHJ5JiByZWdpc3RyeSgpOwogCiAgICAg
Ly8gUmVnaXN0ZXJzIGEgYmxvYiBVUkwgcmVmZXJyaW5nIHRvIHRoZSBzcGVjaWZpZWQgc3RyZWFt
IGRhdGEuCi0gICAgdm9pZCByZWdpc3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwmLCBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtPik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwo
Y29uc3QgS1VSTCYpOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVSTChTZWN1cml0eU9yaWdp
biosIGNvbnN0IEtVUkwmLCBVUkxSZWdpc3RyYWJsZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmKSBPVkVSUklERTsKIAogICAgIE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciogbG9va3VwTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYg
dXJsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
UkxNZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VS
TE1lZGlhU3RyZWFtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTU5YWY3Y2UwMWUyY2FlMDkyMmQxOGUzNmFm
Nzk2YzE5MzkzMzFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJVUkxNZWRpYVN0cmVhbS5oIgorCisjaW5jbHVkZSAiRE9NVVJM
LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBVUkxNZWRpYVN0cmVhbTo6Y3JlYXRl
T2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1lZGlhU3RyZWFtKiBzdHJlYW0pCit7CisgICAgLy8gU2luY2UgV2ViV29ya2VycyBjYW5ub3Qg
b2J0YWluIFN0cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgfHwgIXN0cmVhbSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBE
T01VUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdHJlYW0pOwor
fQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmJhYzBiYTk3
ZWZlMGU1NDA4OWNmNjE4ZjlkMjZlOWJkY2E5OTdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5oCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFVSTE1lZGlhU3RyZWFtX2gKKyNkZWZpbmUgVVJMTWVkaWFTdHJlYW1faAor
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBNZWRpYVN0cmVhbTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIFVS
TE1lZGlhU3RyZWFtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3RyaW5nIGNyZWF0ZU9iamVjdFVS
TChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFTdHJlYW0qKTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiOGVkYjVhMjEz
NWY3NDhmZTAwMTljNjY2OTc2OGFhODk2MWE4NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmlkbApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KK3BhcnRpYWwgaW50ZXJmYWNlIFVSTCB7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5n
IGNyZWF0ZU9iamVjdFVSTChNZWRpYVN0cmVhbT8gc3RyZWFtKTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM3MzRiMjFl
N2M4YmQ0MjcyZTIwMjQ0OWY3ZDgwNGZmMTkzNGM1MC4uYzZjYjk2MTBhYWIxNDQ5ZGE4ZWM5ZTE3
YzUxOTYzNTU5ZTU0MGY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE5NiwxMiArNTE5NiwzNCBAQAogCQlDRDI3RjZFNTE0
NTc2ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8q
IEpTTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJQ0QyN0Y2RTcxNDU3NzBEMzAwNzgyMDdE
IC8qIE1lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDI3RjZFNjE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVy
LmNwcCAqLzsgfTsKIAkJQ0QzN0IzOTgxNUMxQjk3MTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dn
aW5nS2V5cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDM3QjM3NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAq
LzsgfTsKKwkJQ0QzQTQ5NTIxN0E5QzhDNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTExN0E5
QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5oICovOyB9OworCQlDRDNBNDk1NDE3QTlD
QzkwMDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0OTUwMTdBOUM4QjYwMDI3NEU0MiAvKiBNZWRp
YVNvdXJjZUJhc2UuY3BwICovOyB9OworCQlDRDNBNDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVk
aWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QzQTQ5NTUxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJ
Q0QzQTQ5NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1NjE3QTlEMDFCMDAyNzRFNDIg
LyogTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0QzQTQ5NjExN0E5RDAxQjAwMjc0RTQyIC8qIFNv
dXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDNBNDk1ODE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmNwcCAqLzsgfTsK
KwkJQ0QzQTQ5NjIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0
RTQyIC8qIFNvdXJjZUJ1ZmZlci5oICovOyB9OworCQlDRDNBNDk2NDE3QTlEMDFCMDAyNzRFNDIg
LyogU291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDNBNDk1QjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlz
dC5jcHAgKi87IH07CisJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNB
NDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovOyB9OwogCQlDRDQ3
QjNGQzE2Q0MzNEY4MDBBMjFFQzggLyogQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDdCM0ZBMTZDQzM0Rjgw
MEEyMUVDOCAvKiBDRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1tICovOyB9OwogCQlDRDRBQzUyQTE0
OTZBRTlBMDA4N0M0RUYgLyogQ29tcG9zaXRlLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDRBQzUyODE0OTZBRTJGMDA4N0M0
RUYgLyogQ29tcG9zaXRlLndhdiAqLzsgfTsKIAkJQ0Q1MzkzRDMxNzVFMDE4NjAwQzA3MTIzIC8q
IEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDUzOTNEMTE3NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsg
fTsKIAkJQ0Q1MzkzRDQxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MzkzRDIxNzVFMDE4NjAw
QzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlDRDU0REU0NzE3NDY4QjZGMDA1RTVC
MzYgLyogQXVkaW9TZXNzaW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0REU0NTE3NDY4QjZGMDA1RTVCMzYgLyogQXVkaW9T
ZXNzaW9uTWFuYWdlck1hYy5jcHAgKi87IH07CiAJCUNENTRERTRCMTc0NjlDNkQwMDVFNUIzNiAv
KiBBdWRpb1Nlc3Npb25NYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5j
cHAgKi87IH07CisJCUNENjFGRTYzMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRNZWRpYVNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5
NDJERTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlD
RDYxRkU2NDE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkRGMTVCNUNFMjIwMEQ1
MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDYxRkU2NzE3OTRBQURCMDA0
MTAxRUIgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFMTE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFT
b3VyY2VSZWdpc3RyeS5jcHAgKi87IH07CisJCUNENjFGRTY4MTc5NEFBREIwMDQxMDFFQiAvKiBN
ZWRpYVNvdXJjZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMUE5NDJFMjE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3Ry
eS5oICovOyB9OworCQlDRDYxRkU2OTE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0U291cmNlQnVm
ZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIx
QTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuY3BwICovOyB9Owor
CQlDRDYxRkU2QTE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0U291cmNlQnVmZmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFNDE1QjVDRTIy
MDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmggKi87IH07CisJCUNENjFGRTZCMTc5NEFB
REIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAv
KiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLzsgfTsKKwkJQ0Q2MUZFNkMxNzk0QUFEQjAw
NDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkU3MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0LmggKi87IH07CisJCUNENjFGRTdFMTc5NENCMjYwMDQxMDFFQiAv
KiBKU1dlYktpdE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENjFGRTdDMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlh
U291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFN0YxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0
TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjFGRTdEMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmggKi87
IH07CisJCUNENjFGRTg0MTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4
MDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQlD
RDYxRkU4NTE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjFGRTgxMTc5NENDNTkw
MDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5oICovOyB9OworCQlDRDYxRkU4NjE3OTRD
QzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjFGRTgyMTc5NENDNTkwMDQxMDFF
QiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovOyB9OworCQlDRDYxRkU4NzE3OTRD
QzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4MzE3OTRDQzU5MDA0MTAxRUIg
LyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggKi87IH07CiAJCUNEN0UwNTIyMTY1MUMyODIw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDdFMDUyMTE2NTFBODQxMDBDMTIwMUYgLyog
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovOyB9OwogCQlDRDgyMDMwQTEzOTVBQjZBMDBG
OTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4MjAzMDYxMzk1QUI2QTAwRjk1NkM2IC8q
IFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDgyMDMwQjEzOTVBQjZBMDBGOTU2QzYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA3MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyLm1tICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICIt
V25vLXVuZGVmIC1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiOyB9OyB9OwpAQCAtNTIwOSw2
ICs1MjMxLDE2IEBACiAJCUNEODIwMzBEMTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxz
Y3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q4MjAzMDkxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gKi87IH07CiAJCUNEODIwMzEwMTM5NUFDRTcw
MEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzBFMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5k
b3dBbmltYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDRDgyMDMxMTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4MjAzMEYx
Mzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSAqLzsgfTsKKwkJQ0Q5REUx
NzQxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8q
IEpTTWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyog
SlNNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q5REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsK
KwkJQ0Q5REUxN0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIw
MEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgKi87IH07CisJCUNEOURFMTdCMTdBQUM3NUIw
MEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzcxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVm
ZmVyLmggKi87IH07CisJCUNEOURFMTdDMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZl
ckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q5REUxNzgxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyTGlzdC5jcHAgKi87IH07
CisJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc5MTdBQUM3
NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCAqLzsgfTsKKwkJQ0Q5REUxODExN0FB
RDZBNDAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTdFMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxN
ZWRpYVNvdXJjZS5jcHAgKi87IH07CisJCUNEOURFMTgyMTdBQUQ2QTQwMEVBMzg2RCAvKiBVUkxN
ZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q5REUxN0YxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmggKi87IH07CisJ
CUNEOURFMTg1MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxODMxN0FCMENGMzAw
RUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5jcHAgKi87IH07CisJCUNEOURFMTg2MTdBQjBDRjMw
MEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTg0MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFT
b3VyY2UuaCAqLzsgfTsKIAkJQ0RBNzk4MjQxNzBBMjU4MzAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE3
OTgyMzE3MEEyNTgzMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uLmNwcCAqLzsgfTsKIAkJQ0RBNzk4
MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTc5ODI1MTcwQTI3OTAwMEQ0NUM1NSAv
KiBBdWRpb1Nlc3Npb25JT1MubW0gKi87IH07CiAJCUNEQTc5ODJBMTcwQTNEMDAwMEQ0NUM1NSAv
KiBBdWRpb1Nlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQTc5ODIxMTcwQTIyREMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTIzOCw2ICs1Mjcw
LDcgQEAKIAkJQ0RFQTc2MzUxNDYwQjcxQTAwOEIzMUYxIC8qIENsb2NrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUE3NjMzMTQ2MEI0NjIwMDhC
MzFGMSAvKiBDbG9jay5jcHAgKi87IH07CiAJCUNERUE3Qzg0MTI3NjIzMDQwMEI4NDZERCAvKiBS
ZW5kZXJGdWxsU2NyZWVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREVBN0M4MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oICov
OyB9OwogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MzEy
NzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi87IH07CisJCUNERUUzOTM3
MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAv
KiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FB
IC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QyN0Y2RTQxNDU3Njc4NzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1
Q0NBMTQ1QjQ0ODgwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcw
MEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTAyRjBDNDExRTgzQUREMDBDNjY4NEEg
LyogU2NyaXB0Q29udHJvbGxlckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENFMDJGMEMzMTFFODNBREQwMEM2Njg0QSAvKiBTY3JpcHRDb250cm9s
bGVyQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xMDQ1MywxNyArMTA0ODYsMTcgQEAKIAkJQjEwQjY5N0UxNDBDMTc0MDAwQkMxQzI2IC8q
IFdlYlZUVFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJWVFRUb2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMTBC
Njk3RjE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRUVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZUVFRva2VuaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMTgyNzQ5MjEzNENBNEMxMDBCOThDMkQgLyogQ2FsbGJhY2tGdW5jdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsYmFja0Z1bmN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyREUxNUI1Q0UyMjAwRDUy
NUQxIC8qIE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQy
REYxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUIxQTk0MkUwMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCMUE5NDJERTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0TWVkaWFTb3VyY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyog
V2ViS2l0TWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
S2l0TWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTAx
NUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJLaXRNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMUE5NDJFMjE1QjVDRTIyMDBENTI1
RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyRTQxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyRTUxNUI1Q0UyMjAwRDUyNUQxIC8qIFNv
dXJjZUJ1ZmZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU291cmNlQnVmZmVyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyRTYxNUI1Q0UyMjAwRDUyNUQxIC8q
IFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU291cmNlQnVmZmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIx
QTk0MkU3MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQjFBOTQyRTgxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlckxp
c3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFMzE1QjVDRTIyMDBENTI1RDEgLyogV2Vi
S2l0U291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYktpdFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIx
QTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0U291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkU1MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3Vy
Y2VCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZlci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVE
MSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCMUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVm
ZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkU4MTVCNUNF
MjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjFBRDRFNzExM0ExMkE0NjAwODQ2QjI3IC8qIFRleHRUcmFja0xvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZXh0VHJhY2tMb2FkZXIuY3Bw
OyBwYXRoID0gbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKIAkJQjFBRDRFNzIxM0ExMkE0NjAwODQ2QjI3IC8qIFRleHRUcmFja0xvYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUZXh0VHJhY2tMb2FkZXIuaDsgcGF0
aCA9IGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9
OwogCQlCMUQ1RUNCNDEzNEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsYmFja0Z1bmN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk0MCw2ICsxMTk3MywxNyBAQAogCQlDRDI3RjZFNjE0
NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2lu
Z0tleXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzN0IzNzUx
NUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTAxN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNl
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZUJhc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1MTE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFT
b3VyY2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlQmFzZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1NTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3Vy
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1NjE3QTlEMDFCMDAyNzRF
NDIgLyogTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTcxN0E5RDAx
QjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRp
YVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTU4MTdBOUQw
MUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0QzQTQ5NUExN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU291cmNlQnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NUIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVy
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTVDMTdBOUQwMUIw
MDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0QzQTQ5NUQxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDQ3QjNGOTE2Q0MzNEY4MDBBMjFFQzggLyogQ0RNUHJpdmF0ZUFWRm91bmRh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDRE1Qcml2YXRlQVZGb3Vu
ZGF0aW9uLmg7IHBhdGggPSBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVByaXZhdGVBVkZvdW5k
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0N0IzRkExNkNDMzRGODAw
QTIxRUM4IC8qIENETVByaXZhdGVBVkZvdW5kYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBDRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1tOyBwYXRoID0gTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDRBQzUyODE0OTZBRTJGMDA4N0M0RUYgLyogQ29tcG9zaXRl
LndhdiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGF1
ZGlvLndhdjsgbmFtZSA9IENvbXBvc2l0ZS53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNv
dXJjZXMvQ29tcG9zaXRlLndhdjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMTE5
NTAsNiArMTE5OTQsMTIgQEAKIAkJQ0Q1MzkzRDIxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5
SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NERFNDUxNzQ2OEI2RjAwNUU1QjM2IC8q
IEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXVkaW9TZXNzaW9uTWFuYWdlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2MUZFN0MxNzk0Q0IyNjAwNDEwMUVC
IC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNENjFGRTdEMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TWVkaWFTb3VyY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2MUZFODAxNzk0Q0M1OTAwNDEwMUVCIC8q
IEpTV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q2MUZFODExNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTgyMTc5NENDNTkwMDQxMDFFQiAv
KiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q2MUZFODMxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdFNv
dXJjZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3RTA1MjAx
NjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaDsgcGF0aCA9IG9iamMvV2ViQ29yZUFWRlJl
c291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIxMTY1
MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW07IHBhdGggPSBvYmpjL1dlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4
MjAzMDYxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE5NTgsNiArMTIwMDgsMTcg
QEAKIAkJQ0Q4MjAzMDkxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdp
bmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDgyMDMwRTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5p
bWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYldpbmRvd0FuaW1h
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDgyMDMwRjEzOTVBQ0U3MDBG
OTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViV2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU291cmNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzMxN0FBQzc0QzAwRUEzODZEIC8q
IEpTTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRp
YVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE3NjE3QUFDNzVC
MDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNTb3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDlERTE3NzE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTb3VyY2VCdWZmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzgxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVm
ZmVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJj
ZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE3OTE3
QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTU291cmNlQnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDlERTE3RTE3QUFENjRFMDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVVJMTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDlERTE3RjE3QUFENjRFMDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVVJMTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q5REUxODAxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBVUkxNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
OURFMTgzMTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxODQxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRp
YVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MTWVkaWFTb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBNzk4MjExNzBBMjJEQzAwRDQ1
QzU1IC8qIEF1ZGlvU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nlc3Npb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBNzk4MjIxNzBBMjRGNDAwRDQ1QzU1IC8qIEF1
ZGlvU2Vzc2lvbkxpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbkxpc3RlbmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTc5ODIzMTcwQTI1ODMwMEQ0NUM1
NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDE2
LDYgKzEyMDc3LDggQEAKIAkJQ0RFQTc2MzMxNDYwQjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsb2NrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1
bGxTY3JlZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnVsbFNj
cmVlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVBN0M4MzEyNzYyMzA0MDBC
ODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVibGljVVJMTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERUUzOTM4MTc5NzQyNzQwMDFENzU4MCAv
KiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxSZWdpc3RyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250
cm9sbGVySW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
Q29udHJvbGxlckludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2
NUNDQzE0NUI2QUZFMDBDNEM3QUEgLyogSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1lZGlhRWxlbWVudEN1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMDJGMEMzMTFFODNBREQwMEM2
Njg0QSAvKiBTY3JpcHRDb250cm9sbGVyQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRDb250cm9sbGVyQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTMyNzksNiArMTMzNDIsNyBAQAogCQkJCUE4M0I3OTA4MENDQUZGMkIwMDBCMDgyNSAv
KiBIVE1MICovLAogCQkJCUFBOTNDODUwMTc1RDVCMjAwMEZEM0NFMyAvKiBJbmRpZVVJICovLAog
CQkJCTFDNUZBRUNBMERDRkQ4QzkwMEQ1OEY3OCAvKiBJbnNwZWN0b3IgKi8sCisJCQkJQ0Q2MUZF
N0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlhU291cmNlICovLAogCQkJCTMzNTAzQzlDMTAxNzlB
OUEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25zICovLAogCQkJCTFBQzIyNjAyMERCNjlFQTcwMDg5
QjY2OSAvKiBPZmZsaW5lICovLAogCQkJCUE5RDI0N0Y5MEQ3NTdFNDEwMEZERjk1OSAvKiBQbHVn
aW5zICovLApAQCAtMTU5MDgsNiArMTU5NzIsOCBAQAogCQkJCUU0NDYxMzkyMENENjMzMTAwMEZB
REE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCAqLywKIAkJCQlFNDQ2MTM5MzBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5oICovLAogCQkJCUU0NDYxMzk0MENENjMzMTAwMEZB
REE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmlkbCAqLywKKwkJCQlDRDlERTE4MzE3QUIwQ0YzMDBF
QTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCAqLywKKwkJCQlDRDlERTE4NDE3QUIwQ0YzMDBF
QTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmggKi8sCiAJCQkJQThFQTc5RUMwQTE5MTZERjAwQThF
RjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgKi8sCiAJCQkJQThFQTc5RTgwQTE5MTZERjAwQThF
RjVGIC8qIEhUTUxNZW51RWxlbWVudC5oICovLAogCQkJCTFBRTJBRTQzMEExRDI2OUUwMEI0MkIy
NSAvKiBIVE1MTWVudUVsZW1lbnQuaWRsICovLApAQCAtMTYwNzEsNiArMTYxMzcsNyBAQAogCQkJ
CUY1NUIzRDk2MTI1MUYxMkQwMDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5oICovLAogCQkJ
CTk3MjA1QUI5MTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5Eb2N1bWVudC5jcHAgKi8sCiAJCQkJ
OTcyMDVBQkExMjM5MjkyNzAwQjE3MzgwIC8qIFBsdWdpbkRvY3VtZW50LmggKi8sCisJCQkJQ0RF
RTM5MzYxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwICovLAogCQkJCTEw
RkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggKi8sCiAJCQkJRjU1
QjNEOTcxMjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVC
M0Q5ODEyNTFGMTJEMDAzRUYyNjkgLyogUmFkaW9JbnB1dFR5cGUuaCAqLywKQEAgLTE2MTA1LDYg
KzE2MTcyLDcgQEAKIAkJCQlDMzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmgg
Ki8sCiAJCQkJRjU1QjNEQTkxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5jcHAgKi8s
CiAJCQkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovLAorCQkJ
CUNERUUzOTM4MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovLAogCQkJCUY1QTE1
NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8sCiAJCQkJRjVB
MTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMTVD
NzcwOEIxMDBEM0M2QTAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuY3BwICovLApAQCAtMTc2ODIs
MTcgKzE3NzUwLDMxIEBACiAJCUIxQTk0MkREMTVCNUNFMjIwMEQ1MjVEMSAvKiBtZWRpYXNvdXJj
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQjFBOTQy
REUxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmNwcCAqLywKLQkJCQlCMUE5NDJERjE1
QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2UuaCAqLywKLQkJCQlCMUE5NDJFMDE1QjVDRTIy
MDBENTI1RDEgLyogTWVkaWFTb3VyY2UuaWRsICovLAorCQkJCUNEM0E0OTU1MTdBOUQwMUIwMDI3
NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0QzQTQ5NTYxN0E5RDAxQjAwMjc0RTQy
IC8qIE1lZGlhU291cmNlLmggKi8sCisJCQkJQ0QzQTQ5NTcxN0E5RDAxQjAwMjc0RTQyIC8qIE1l
ZGlhU291cmNlLmlkbCAqLywKKwkJCQlDRDNBNDk1MDE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFT
b3VyY2VCYXNlLmNwcCAqLywKKwkJCQlDRDNBNDk1MTE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFT
b3VyY2VCYXNlLmggKi8sCiAJCQkJQjFBOTQyRTExNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291
cmNlUmVnaXN0cnkuY3BwICovLAogCQkJCUIxQTk0MkUyMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRp
YVNvdXJjZVJlZ2lzdHJ5LmggKi8sCi0JCQkJQjFBOTQyRTMxNUI1Q0UyMjAwRDUyNUQxIC8qIFNv
dXJjZUJ1ZmZlci5jcHAgKi8sCi0JCQkJQjFBOTQyRTQxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJj
ZUJ1ZmZlci5oICovLAotCQkJCUIxQTk0MkU1MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZm
ZXIuaWRsICovLAotCQkJCUIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJM
aXN0LmNwcCAqLywKLQkJCQlCMUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVy
TGlzdC5oICovLAotCQkJCUIxQTk0MkU4MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJM
aXN0LmlkbCAqLywKKwkJCQlDRDNBNDk1ODE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVy
LmNwcCAqLywKKwkJCQlDRDNBNDk1OTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmgg
Ki8sCisJCQkJQ0QzQTQ5NUExN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5pZGwgKi8s
CisJCQkJQ0QzQTQ5NUIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICov
LAorCQkJCUNEM0E0OTVDMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmggKi8s
CisJCQkJQ0QzQTQ5NUQxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaWRsICov
LAorCQkJCUNEOURFMTdFMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5jcHAgKi8s
CisJCQkJQ0Q5REUxN0YxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmggKi8sCisJ
CQkJQ0Q5REUxODAxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmlkbCAqLywKKwkJ
CQlCMUE5NDJERTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuY3BwICovLAor
CQkJCUIxQTk0MkRGMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJjZS5oICovLAor
CQkJCUIxQTk0MkUwMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgKi8s
CisJCQkJQjFBOTQyRTMxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAg
Ki8sCisJCQkJQjFBOTQyRTQxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5o
ICovLAorCQkJCUIxQTk0MkU1MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIu
aWRsICovLAorCQkJCUIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmNwcCAqLywKKwkJCQlCMUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291
cmNlQnVmZmVyTGlzdC5oICovLAorCQkJCUIxQTk0MkU4MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gbWVkaWFzb3VyY2U7
CiAJCQlwYXRoID0gTW9kdWxlcy9tZWRpYXNvdXJjZTsKQEAgLTE5NDY0LDYgKzE5NTQ2LDI1IEBA
CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0Q2
MUZFN0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlhU291cmNlICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyog
SlNNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q5REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpT
TWVkaWFTb3VyY2UuaCAqLywKKwkJCQlDRDlERTE3NjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3Vy
Y2VCdWZmZXIuY3BwICovLAorCQkJCUNEOURFMTc3MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJj
ZUJ1ZmZlci5oICovLAorCQkJCUNEOURFMTc4MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1
ZmZlckxpc3QuY3BwICovLAorCQkJCUNEOURFMTc5MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJj
ZUJ1ZmZlckxpc3QuaCAqLywKKwkJCQlDRDYxRkU4MDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJL
aXRTb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCUNENjFGRTgxMTc5NENDNTkwMDQxMDFFQiAvKiBK
U1dlYktpdFNvdXJjZUJ1ZmZlci5oICovLAorCQkJCUNENjFGRTgyMTc5NENDNTkwMDQxMDFFQiAv
KiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovLAorCQkJCUNENjFGRTgzMTc5NENDNTkw
MDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCAqLywKKwkJCQlDRDYxRkU3QzE3
OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q2MUZF
N0QxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuaCAqLywKKwkJCSk7CisJ
CQluYW1lID0gTWVkaWFTb3VyY2U7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQlDREE5OERCRDE2MDE0RTA4MDBGRUEzQjEgLyogZW5jcnlwdGVkbWVkaWEgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjEzNTUsNiArMjE0NTYsNyBAQAog
CQkJCUZEMTY2MEE1MTM3ODdDNkQwMDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTAwRUU3NjE1NDZFQUMxMDBCQTExRDEgLyogRGVwcmVjYXRlZFN0eWxl
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8q
IERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDYxRkU2ODE3OTRB
QURCMDA0MTAxRUIgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxRkIxQTU3MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25D
bGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjE0MDQsNiArMjE1MDYsNyBAQAogCQkJCTg1RDM4
OUIyMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3
MTE4RDBBQzVENTM1MDA1MzI3MEYgLyogRE9NQXR0ckludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzk0NkVFRjEwN0ZEQkFDMDA4NTcxOTMgLyogRE9NQmVmb3JlTG9hZEV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlDRDYxRkU4NTE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3Vy
Y2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFMkQ5OUU3MTBFMkJDMUMwMDQ5NjMzNyAv
KiBET01CbG9iLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcg
LyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTA4OUNENzBBOThDNDI4
MDBBMjc1QUEgLyogRE9NQ0RBVEFTZWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTYzLDYg
KzIxNjY2LDcgQEAKIAkJCQk4NTk5MkVCRTBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFCODBBQzVENTM1MDA1MzI3MEYgLyog
RE9NSFRNTExpbmtFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RUNCRUYz
MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTWFwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQ0Q5REUxN0QxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODVFNzExQjkwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxNYXBFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTE1NzlGMEMwM0JCRDMwMDhCQjBF
RSAvKiBET01IVE1MTWFycXVlZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTE1NkVB
MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFycXVlZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMTU3Nyw2ICsyMTY4MSw3IEBACiAJCQkJODVCQTREMTUwQUE2ODg2ODAw
ODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcx
MUJFMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT0xpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1RjMyQUVFMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3Jv
dXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDlERTE4MjE3QUFENkE0MDBFQTM4NkQg
LyogVVJMTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUJGMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg1NDA3NTZCMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1NkQwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxP
cHRpb25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjE1ODYsNiArMjE2OTEs
NyBAQAogCQkJCTg1RTcxMUMxMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUGFyYWdyYXBoRWxl
bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVGNzBBQTc2MjY5MDA1NDRG
MEIgLyogRE9NSFRNTFBhcmFtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQzIw
QUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhbUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0Q2MUZFNkExNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUxODNCNDgwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhU
TUxQcmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFDMzBBQzVENTM1MDA1MzI3
MEYgLyogRE9NSFRNTFByZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQy
MjZFOTUxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjI2MzAsNiArMjI3MzYsNyBAQAogCQkJCTQzNThFODdEMTM2MEEyRUUwMEU0
NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
RkEzRDc5MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRmxvb2RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMkZBM0Q3QjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZ1bmNBRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFN0YxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2Vi
S2l0TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDdEMEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR0ZFRnVuY0JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3
RjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZ1bmNHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJGQTNEODEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGdW5jUkVsZW1lbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMjI3NjAsNiArMjI4NjcsNyBAQAogCQkJCUJDMkNCRjRFMTQwRjFB
QkQwMDM4NzlCRSAvKiBKU1dlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RTNGQUQzOTE0NzMzRjQwMTFFNDIzMDcgLyogSlNXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RTNGQUQzOTE0NzMzRjQwMjJFNDIzMDcgLyogSlNXZWJHTERlYnVn
U2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzQTQ5NTIxN0E5QzhDNjAwMjc0RTQyIC8q
IE1lZGlhU291cmNlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDAw
RTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdC
OTk4MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMRnJhbWVidWZmZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzRjFENUMxMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBp
biBIZWFkZXJzICovLApAQCAtMjI5ODksNiArMjMwOTcsNyBAQAogCQkJCUY0RUFGNEFGMTBDNzQy
QjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDAx
NDYyOEIxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTlFODlGQzE2RTJEQzA1MDBBOTA4RjggLyogT3JpZ2luTG9jay5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0Q5REUxODYxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1ODFGQUYxNTIwRjkxRjAwM0E3QTc1IC8qIE9zY2lsbGF0
b3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjVERDBFODFCOEREMDBCMjU5NjUgLyog
T3V0bGluZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBENTczNzBBNUM3N0ZFMDA3RURE
NEMgLyogT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzIyMSw2ICsyMzMzMCw3
IEBACiAJCQkJNDM2NzA4QzkxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR0ltYWdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODU0QjAxNTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5s
aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVu
ZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzQTQ5NjIxN0E5RDAxQjAw
Mjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0IxMkQ5
Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR01vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBRERGMUFENzEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZHUGF0aC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTEwQkI1ODUxNDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjMyNzIsNiArMjMzODIsNyBAQAogCQkJCTUxNEM3Njc5MENFOTIzQTEw
MDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0Ew
Q0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTRDNzY3QjBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNjQxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUU0MTQzNDE2QTY1OTYzMDBDNjMzQzcg
LyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0YwQURC
QTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMEEz
QTczMTE0MDVBMzk4MDBGQjhFRDMgLyogUmVzb3VyY2VMb2FkZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIzNDAwLDYgKzIzNTExLDcgQEAKIAkJCQk0MUUxQjFENDBGRjU5ODY5MDA1NzZC
M0IgLyogU2hhcmVkV29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxNjhFODEwMjI2RTg5
MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRDE2OEVBMTAyMjZFODkwMDlCQzgyNyAvKiBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmggaW4g
SGVhZGVycyAqLywKKwkJCQlDRDYxRkU2QzE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCNzgzOUMxNjM3NDBBNzAwMDdCNjky
IC8qIFNoYXJlZFdvcmtlclN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxNjhFRTEw
MjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE2NTBEMDA2Q0Q2MDBFRjZGMjYgLyogU2ltcGxlRm9udERhdGEuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjM1NDgsNyArMjM2NjAsOSBAQAogCQkJCTA4RDQ2Q0UzMTI3QUQ1RkMwMDg5Njk0
QiAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MUZCOTY3
QjEzODNENjQ2MDBBQzhBNEMgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9m
Zi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgyM0QxNTkxMjdBRDZBQzAwMEVCQzk1IC8qIFNWR0Fu
aW1hdGVkSW50ZWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFODcxNzk0Q0M1OTAwNDEw
MUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFF
NjIzRDExNTFGNzJBNjAwMzZFMkY0IC8qIFNWR0FuaW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291
cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEg
LyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OTAyMUFEMTI2RUY1
RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA4OEEwRTA0MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MDUsNiArMjM5MTksNyBAQAogCQkJCUJDRUY0NUU5
MEU2ODc3NjcwMDFDMTI4NyAvKiBUZXh0TWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMw
RkM2OEExMDcyQjkyODAwNDUyOTNFIC8qIFRleHRSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOThGNjA4MjQ1RTU5MDAxRTlBQkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzQTQ5NjUxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1
ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAv
KiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0QjBEMDA2QzFEMDBFRjZGMjYg
LyogVGV4dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1OUU5NDAxNEVGMUNGODAwMjZB
MkREIC8qIFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzgzOCw2ICsyMzk1Myw3IEBA
CiAJCQkJNDlFOTEyQUUwRUZBQzkwNjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzAzMzRENzE0NTlGRkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCRTg4RTBDMjE3MTVDRTI2MDA2NThEOTggLyogVHJhY2tMaXN0QmFz
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlh
U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDNDBFRjg2RDQ3MDA5RDBDQUYgLyog
VHJhbnNmb3JtYXRpb25NYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCUZCNDg0RjREMTcxRjgy
MUUwMDA0MDc1NSAvKiBUcmFuc2Zvcm1GdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5
RTkxMUNFMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjM5ODcsNiArMjQxMDMsNyBAQAogCQkJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2
OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI1MTBBNDRFRkM3
MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM4MEY0NzQwOUEx
MUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUxNzUxN0FB
Qzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTFE
Q0IxMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEyM0U1NjkxMjdCMzA0MTAwMEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDYwNSw2ICsyNDcyMiw3IEBACiAJCQkJQTgxODcyMjUwOTc3RDND
MDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREODIz
OEIwQUY5MkRGNjAwMDRGMDU3IC8qIENocm9tZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBQkFG
MjIwODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0Q5REUxNzQxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNEFDQkMwQkUxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzkwNEI3NjBEMTA5OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU3RDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50
UmVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0ODIwLDYgKzI0OTM4LDcgQEAKIAkJCQk4NTAz
MkREQzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1MDMyRERFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NTAzMkRFMDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUGFnZVJ1
bGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDlERTE3QTE3QUFDNzVCMDBFQTM4NkQgLyogSlNT
b3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU4QzM4MkQwQUE4RTQwNTAwQjE4
N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzJE
RTIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NTAzMkRFNDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gaW4gU291cmNlcyAq
LywKQEAgLTI0ODc0LDYgKzI0OTkzLDcgQEAKIAkJCQk4NURGODE5NjBBQTc3RTRCMDA0ODZBRDcg
LyogRE9NSFRNTEZyYW1lRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MTk4MEFB
NzdFNEIwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVTZXRFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODU5OTJFQkIwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAorCQkJCUNEM0E0OTY0MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZm
ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MTgzQjQ1MEFBNjkyNjEwMEYxOUZBMyAv
KiBET01IVE1MSGVhZGluZ0VsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUVDQkVGMjBB
QTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTEhSRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg1OTkyRUJEMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSHRtbEVsZW1lbnQubW0gaW4gU291
cmNlcyAqLywKQEAgLTI1MDY5LDYgKzI1MTg5LDcgQEAKIAkJCQk4OTg3ODU2NDEyMkNBMDY0MDAz
QUFCREEgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTYw
MzA2QzBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5c3RlbUNGLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTI2QzE3QTNGMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0QzQTQ5NTQxN0E5Q0M5MDAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRCM0Y3NjBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5
c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjAzMDBCMENDNDI1MTIwMEM4QUMyNSAv
KiBGaWxlU3lzdGVtUE9TSVguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2RDZDOEQxMjJCOEEz
RDAwMUZEMUY3IC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTMxNSw2ICsy
NTQzNiw3IEBACiAJCQkJQzNDRjE3QTYxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2
ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2RjBCMDUzODE0MDAyQ0U2
NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDNEMjU5NzcxM0M4MTZGNDAwNjA4
NTU5IC8qIEltYWdlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEOURFMTdDMTdBQUM3
NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIEltYWdlQnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0YxMUVGIC8qIEltYWdlQnVmZmVyRGF0YUNHLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTVFMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZUNH
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MTMsNiArMjU2MzUsNyBAQAogCQkJCTUyQ0NBOUUy
MTVFM0Y2MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFDRTUzREYwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZCOTEzOTJCMTZBRTRGQzAwMDFGRTY4MiAvKiBKU0RPTVBhdGgu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZFNkIxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktp
dFNvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ3RkUwRDc1N0U2
OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5RDI0ODAw
MEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE5QzZFNjRDMEQ3NDY1RTcwMDY0NDJFOSAvKiBKU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjU1NjMsNiArMjU2ODYsNyBAQAogCQkJCUZFODBEQTYzMEU5
QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZF
ODBEN0FCMEU5QzFFRDIwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZFODBEQTY1MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNEM0E0OTVFMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNv
dXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDgyQjc1MTExOThDQjZCMDBCRkIwMDUgLyog
SlNIYXNoQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNEUwQzI3NUM2
ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0U3QjE5MzBE
NEU4Njk2MDA3NUE1MzkgLyogSlNIaXN0b3J5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjU1ODIsNiArMjU3MDYsNyBAQAogCQkJCTkzOTIyNjJEMTAzMjEwN0IwMDZFN0Q1RCAvKiBKU0hU
TUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQ0JBRDQwMEMx
OEMxNDIwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDQ0JBRDNCMEMxOEJGRjgwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUNENjFGRTg0MTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNv
dXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QTFFNzE5MDE0RTEwMUU0MDA2MjZG
OUQgLyogSlNIVE1MQ29udGVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjVDMDQx
RTYwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlEMzU5RDhCRTEyOUNBNTVDMDAwNkU1RDIgLyogSlNIVE1MRGV0YWlsc0VsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTg5Myw2ICsyNjAxOCw3IEBACiAJCQkJQjJGQTNE
Q0EwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhB
YnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEQ0MwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJDOTZEOEQwQjNBRjJCNzAwNUU4MEVDIC8qIEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDRDNBNDk2MTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzRENFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdGhTZWdMaW5ldG9BYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERDAwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjJGQTNERDIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjExMCw2ICsyNjIzNiw3IEBA
CiAJCQkJRDM0MDYyOUIxMjUzQkM4QzAwOUU0MjU5IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBQTEwRjMxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlh
UXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENjcxQTc3MTU5QkIwNzAwMDE5
NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0IxNkMxNzA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3RURBMDgxMzg1Q0I5NzAwNEUwNjQ1IC8qIE1lbW9y
eVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTdFREEwQjEzODVDQkQ4
MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yNjMyOCw2ICsyNjQ1NSw3IEBACiAJCQkJNDM5MDQ2REIxMkRBMjVFODAwQUY4MEEyIC8qIFJl
bmRlck1hdGhNTEZyYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkREMTJEQTI1
RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQz
OTA0NkRGMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDRDYxRkU2MzE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0TWVkaWFTb3Vy
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MDQ2RTExMkRBMjVFODAwQUY4MEEyIC8qIFJl
bmRlck1hdGhNTFJvb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MDQ2RTMxMkRBMjVFODAw
QUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QjdBMjA4
RDJFMTI5NzlCNEFFMTlERTYgLyogUmVuZGVyTWF0aE1MU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yNjU3Myw2ICsyNjcwMSw3IEBACiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8q
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVB
RkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDRDlERTE4NTE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRTNGOUM3MERBMDU5REMwMDI1MDkxMSAvKiBTdG9yYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUM1MTYwRUVBMTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUlt
cGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUxMDJFRDAwRkQ5RUY4QzAwRkFGRjA0IC8qIFN0
b3JhZ2VBcmVhU3luYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2Njk0LDYgKzI2ODIzLDcgQEAK
IAkJCQlCMjIyNzlEQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5REYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY0FF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OUUyMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdGRUZ1bmNCRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDYxRkU3RTE3OTRD
QjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMjIyNzlFNTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVGdW5jR0VsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjIyMjc5RTgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY1JFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OUVCMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjc1NCw2ICsy
Njg4NCw3IEBACiAJCQkJODQ3NkM5RUExMURGNkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MTlEMkE4MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQxOUQyQUMxMjBE
OTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtU291cmNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNENjFGRTg2MTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBNTgwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BhdGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzZDOUVGMTFERjZBNTgwMDU1
NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTgwMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2
ODM3LDYgKzI2OTY4LDcgQEAKIAkJCQk5M0YxOUE5RDA4MjQ1RTU5MDAxRTlBQkMgLyogVGV4dFJl
c291cmNlRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzZEQ0NFMTEzQjRGOTY2MDAy
RUJFRkMgLyogVGV4dFJ1bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkMzREE0QTBEMDA2QzFE
MDBFRjZGMjYgLyogVGV4dFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDlERTE4MTE3
QUFENkE0MDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTc1OUU5M0YxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzU5RTk0MjE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrQ3VlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MUE5RUMyMTY4RkJDNDMwMDI2MjlGOSAvKiBUZXh0VHJhY2tDdWVHZW5l
cmljLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY5ODQsNiArMjcxMTYsNyBAQAogCQkJCTBGQ0Yz
MzJDMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJUaWxlZExheWVyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFBNzE2MUUxNDlCRjJGQTAwMTZFQzE5IC8qIFdlYlRpbGVMYXllci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEODIwMzBCMTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZFNjkxNzk0QUFEQjAwNDEwMUVC
IC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDgyMDMwRDEz
OTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUYxMjE3MUY1MTZBOENFRDIwMDAwNTNDQSAvKiBXZWJWVFRF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVEMjFBODAyMTNFQ0U1REYwMEJCNzA2NCAv
KiBXZWJWVFRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzAwMiw2ICsyNzEzNSw3IEBA
CiAJCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGMzQ3NDJFMDEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0UyNjQzMDE0NzQ4OTkxMDA1QTg1
ODggLyogV29ya2VyRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREVFMzkzNzE3
OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRTQzNDY0ODBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyR2xvYmFsU2NvcGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTcxMkE2MTExNTAwOTBDRTAwNDhBRjEwIC8qIFdvcmtlckdsb2JhbFNj
b3BlSW5kZXhlZERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3RjhFNjY1MTUxRDRB
NEIwMEQyRDE4MSAvKiBXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBjMWQ2NWNhOGVmMDdhYjQzMDIxOTFj
MTk5ZTg1YTQzNzI0YTUxOWQ5Li5kNjI5ODZiZDAxNmVlYTI3ZGEzNjZhZmE2NWZlMDRiZDZiMzFk
NTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE2Niw2ICsxNjYsMTQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHdlYmtpdGJlZ2luZnVsbHNjcmVlbikgXAogICAgIG1h
Y3JvKHdlYmtpdGVuZGZ1bGxzY3JlZW4pIFwKICAgICBcCisgICAgbWFjcm8oYWRkc291cmNlYnVm
ZmVyKSBcCisgICAgbWFjcm8ocmVtb3Zlc291cmNlYnVmZmVyKSBcCisgICAgbWFjcm8oc291cmNl
b3BlbikgXAorICAgIG1hY3JvKHNvdXJjZWVuZGVkKSBcCisgICAgbWFjcm8oc291cmNlY2xvc2Up
IFwKKyAgICBtYWNybyh1cGRhdGUpIFwKKyAgICBtYWNybyh1cGRhdGVlbmQpIFwKKyAgICBtYWNy
byh1cGRhdGVzdGFydCkgXAogICAgIG1hY3JvKHdlYmtpdGFkZHNvdXJjZWJ1ZmZlcikgXAogICAg
IG1hY3JvKHdlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlcikgXAogICAgIG1hY3JvKHdlYmtpdHNvdXJj
ZW9wZW4pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5kZXggNmE4MGE4YWNkODVlODNkOWRm
MjI3ZDUyOWJiYWZkZWQyYmVjMDViYS4uNWUxM2M5NTJhNTQ0NjAwODcyZTJkYWJmNjJjZGFiZWNi
OGNkZDlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKQEAgLTU3LDcgKzU3LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNjcmlwdFByb2Nlc3Nvck5vZGU7CiAgICAgY2xh
c3MgTG9jYWxNZWRpYVN0cmVhbTsKICAgICBjbGFzcyBNZWRpYUNvbnRyb2xsZXI7Ci0gICAgY2xh
c3MgTWVkaWFTb3VyY2U7CiAgICAgY2xhc3MgTWVkaWFTdHJlYW07CiAgICAgY2xhc3MgTWVzc2Fn
ZVBvcnQ7CiAgICAgY2xhc3MgTm9kZTsKQEAgLTY2LDcgKzY1LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgY2xhc3MgU2hhcmVk
V29ya2VyOwogICAgIGNsYXNzIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOwotICAgIGNsYXNzIFNv
dXJjZUJ1ZmZlckxpc3Q7CiAgICAgY2xhc3MgVGV4dFRyYWNrOwogICAgIGNsYXNzIFRleHRUcmFj
a0N1ZTsKICAgICBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluCmluZGV4IGFlZWE5NmE2Y2MyYTYwMjk4ODk2MjFhY2VjY2Y4ZTRmYjdj
NzAxNTEuLmRiNzdlY2EwNTU3MTEzZTlmYWE2Njc0MTRlZTJiZDljZDdhMGJlODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMzEsNiArMzEsNyBAQCBSVENE
VE1GU2VuZGVyIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogUlRDUGVlckNvbm5lY3Rpb24gY29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBTaGFyZWRXb3JrZXIgY29uZGl0aW9uYWw9U0hBUkVEX1dP
UktFUlMKIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlIGNvbmRpdGlvbmFsPVNIQVJFRF9XT1JLRVJT
CitTb3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVESUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0
IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogU3BlZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9
U0NSSVBURURfU1BFRUNICiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BF
RUNIX1NZTlRIRVNJUwpAQCAtMzksNyArNDAsOSBAQCBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklE
RU9fVFJBQ0sKIFRleHRUcmFja0N1ZSBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVGV4dFRyYWNr
TGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogVmlkZW9UcmFja0xpc3QgY29uZGl0aW9uYWw9
VklERU9fVFJBQ0sKK1dlYktpdE1lZGlhU291cmNlIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQog
V2ViS2l0TmFtZWRGbG93CitXZWJLaXRTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1FRElB
X1NPVVJDRQogV2ViU29ja2V0IGNvbmRpdGlvbmFsPVdFQl9TT0NLRVRTCiBXb3JrZXIgY29uZGl0
aW9uYWw9V09SS0VSUwogWE1MSHR0cFJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCmluZGV4
IDc2NDBmNWY1MDNiZjJjYTliNDZiZDgzZmE4MzA0ZTY3YWMyY2FhMjAuLmMwMzc4NGY0MzA2YmE2
ZDA2ZTkyNzEwYjdhZDM5NmE1OTI2NGY1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcApAQCAt
NTIsNiArNTIsMzMgQEAgZW51bSBTbGljZUhpc3RvZ3JhbUVudW0gewogCiB9IC8vIG5hbWVzcGFj
ZQogCitjbGFzcyBCbG9iVVJMUmVnaXN0cnkgOiBwdWJsaWMgVVJMUmVnaXN0cnkgeworcHVibGlj
OgorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtV
UkwmLCBVUkxSZWdpc3RyYWJsZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyVVJMKGNvbnN0IEtVUkwmKSBPVkVSUklERTsKKworICAgIHN0YXRpYyBVUkxSZWdpc3RyeSYg
cmVnaXN0cnkoKTsKK307CisKKwordm9pZCBCbG9iVVJMUmVnaXN0cnk6OnJlZ2lzdGVyVVJMKFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IEtVUkwmIHB1YmxpY1VSTCwgVVJMUmVnaXN0cmFi
bGUqIGJsb2IpCit7CisgICAgQVNTRVJUKCZibG9iLT5yZWdpc3RyeSgpID09IHRoaXMpOworICAg
IFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChvcmlnaW4sIHB1YmxpY1VS
TCwgc3RhdGljX2Nhc3Q8QmxvYio+KGJsb2IpLT51cmwoKSk7Cit9CisKK3ZvaWQgQmxvYlVSTFJl
Z2lzdHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBUaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOworfQorCitVUkxSZWdpc3RyeSYg
QmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChC
bG9iVVJMUmVnaXN0cnksIGluc3RhbmNlLCAoKSk7CisgICAgcmV0dXJuIGluc3RhbmNlOworfQor
CisKIEJsb2I6OkJsb2IoKQogICAgIDogbV9zaXplKDApCiB7CkBAIC0yMDYsNCArMjMzLDEwIEBA
IFBhc3NSZWZQdHI8QmxvYj4gQmxvYjo6c2xpY2UobG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcg
ZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlCiB9CiAjZW5kaWYKIAorVVJMUmVnaXN0cnkmIEJsb2I6
OnJlZ2lzdHJ5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3Ry
eSgpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYi5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKaW5k
ZXggYmY0YTI4NTFkM2M1YzkwMDVkZDU5YjE0ZDcyZTFmOTc5OTQ1NTFlMS4uMjFiMzFiNDEzYWNm
N2U0OGNmOTI1YmU5MmYxYmI1MDJjZGQ2NGRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0YS5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLWNsYXNzIEJsb2IgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxCbG9iPiB7CitjbGFzcyBC
bG9iIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFVSTFJlZ2lzdHJhYmxlLCBwdWJs
aWMgUmVmQ291bnRlZDxCbG9iPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Qmxv
Yj4gY3JlYXRlKCkKICAgICB7CkBAIC03OCw2ICs3OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Ym9vbCBpc05vcm1hbGl6ZWRDb250ZW50VHlwZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMg
Ym9vbCBpc05vcm1hbGl6ZWRDb250ZW50VHlwZShjb25zdCBDU3RyaW5nJik7CiAKKyAgICAvLyBV
UkxSZWdpc3RyYWJsZQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qg
T1ZFUlJJREU7CisKICNpZiBFTkFCTEUoQkxPQikKICAgICBQYXNzUmVmUHRyPEJsb2I+IHNsaWNl
KGxvbmcgbG9uZyBzdGFydCA9IDAsIGxvbmcgbG9uZyBlbmQgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1heCgpLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlID0gU3RyaW5nKCkp
IGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKaW5kZXggMzZlNTU5ZWRmMmU0NWFk
MTQ4NDFhOTg1NWIyZWIyYzM0NzYyM2ZkOC4uYWUzNjkzODI0YjNlOTU4MWYyNDE0MGI1YzgxOWUy
ZDNkMjk3ZTczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcApAQCAtMzksNzIgKzM5LDI0IEBACiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKLSNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSAiTWVk
aWFTb3VyY2VSZWdpc3RyeS5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
I2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5o
IgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCi1TdHJpbmcgRE9NVVJMOjpjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWVkaWFTb3VyY2UqIHNvdXJjZSkKLXsKLSAgICAv
LyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4gTWVkaWFTb3VyY2Ugb2JqZWN0cywgd2Ug
c2hvdWxkIGJlIG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotCi0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0IHx8ICFzb3VyY2UpCi0gICAgICAg
IHJldHVybiBTdHJpbmcoKTsKLQotICAgIEtVUkwgcHVibGljVVJMID0gQmxvYlVSTDo6Y3JlYXRl
UHVibGljVVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpOwotICAg
IGlmIChwdWJsaWNVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAg
ICBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwo
cHVibGljVVJMLCBzb3VyY2UpOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VS
TE1hbmFnZXIoKS5zb3VyY2VVUkxzKCkuYWRkKHB1YmxpY1VSTC5zdHJpbmcoKSk7Ci0KLSAgICBy
ZXR1cm4gcHVibGljVVJMLnN0cmluZygpOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotU3RyaW5nIERPTVVSTDo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJlYW0pCi17Ci0g
ICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0IHx8ICFzdHJlYW0pCi0gICAgICAgIHJldHVy
biBTdHJpbmcoKTsKLQotICAgIEtVUkwgcHVibGljVVJMID0gQmxvYlVSTDo6Y3JlYXRlUHVibGlj
VVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpOwotICAgIGlmIChw
dWJsaWNVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICAvLyBT
aW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4gU3RyZWFtIG9iamVjdHMsIHdlIHNob3VsZCBi
ZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAg
IE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChw
dWJsaWNVUkwsIHN0cmVhbSk7Ci0gICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJM
TWFuYWdlcigpLnN0cmVhbVVSTHMoKS5hZGQocHVibGljVVJMLnN0cmluZygpKTsKLQotICAgIHJl
dHVybiBwdWJsaWNVUkwuc3RyaW5nKCk7Ci19Ci0jZW5kaWYKLQogU3RyaW5nIERPTVVSTDo6Y3Jl
YXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIEJsb2IqIGJsb2IpCiB7CiAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0IHx8ICFi
bG9iKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIGNyZWF0ZVB1YmxpY1VS
TChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBibG9iKTsKK30KIAorU3RyaW5nIERPTVVSTDo6Y3Jl
YXRlUHVibGljVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIFVSTFJlZ2lzdHJhYmxlKiByZWdpc3RyYWJsZSkKK3sKICAgICBLVVJMIHB1YmxpY1VSTCA9
IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0
eU9yaWdpbigpKTsKICAgICBpZiAocHVibGljVVJMLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogCi0gICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJM
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIHB1YmxpY1VSTCwgYmxv
Yi0+dXJsKCkpOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIo
KS5ibG9iVVJMcygpLmFkZChwdWJsaWNVUkwuc3RyaW5nKCkpOworICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZWdpc3RlclVSTChzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBwdWJsaWNVUkwsIHJlZ2lzdHJhYmxlKTsKIAogICAg
IHJldHVybiBwdWJsaWNVUkwuc3RyaW5nKCk7CiB9CkBAIC0xMjEsMjkgKzczLDcgQEAgdm9pZCBE
T01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBjb24KICNlbmRpZgogICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0
RnJvbUNhY2hlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHJlcXVlc3QpOwogCi0gICAgSGFzaFNl
dDxTdHJpbmc+JiBibG9iVVJMcyA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1h
bmFnZXIoKS5ibG9iVVJMcygpOwotICAgIGlmIChibG9iVVJMcy5jb250YWlucyh1cmwuc3RyaW5n
KCkpKSB7Ci0gICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJM
KHVybCk7Ci0gICAgICAgIGJsb2JVUkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwotICAgIH0KLQot
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgSGFzaFNldDxTdHJpbmc+JiBzb3VyY2VVUkxz
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJMTWFuYWdlcigpLnNvdXJjZVVSTHMo
KTsKLSAgICBpZiAoc291cmNlVVJMcy5jb250YWlucyh1cmwuc3RyaW5nKCkpKSB7Ci0gICAgICAg
IE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU291cmNlVVJM
KHVybCk7Ci0gICAgICAgIHNvdXJjZVVSTHMucmVtb3ZlKHVybC5zdHJpbmcoKSk7Ci0gICAgfQot
I2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBIYXNoU2V0PFN0cmluZz4mIHN0
cmVhbVVSTHMgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkuc3Ry
ZWFtVVJMcygpOwotICAgIGlmIChzdHJlYW1VUkxzLmNvbnRhaW5zKHVybC5zdHJpbmcoKSkpIHsK
LSAgICAgICAgLy8gRklYTUU6IG1ha2Ugc3VyZSBvZiB0aGlzIGFzc2VydGlvbiBiZWxvdy4gUmFp
c2UgYSBzcGVjIHF1ZXN0aW9uIGlmIHJlcXVpcmVkLgotICAgICAgICAvLyBTaW5jZSBXZWJXb3Jr
ZXJzIGNhbm5vdCBvYnRhaW4gU3RyZWFtIG9iamVjdHMsIHdlIHNob3VsZCBiZSBvbiB0aGUgbWFp
biB0aHJlYWQuCi0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIE1lZGlh
U3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJMKHVybCk7
Ci0gICAgICAgIHN0cmVhbVVSTHMucmVtb3ZlKHVybC5zdHJpbmcoKSk7Ci0gICAgfQotI2VuZGlm
CisgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJMTWFuYWdlcigpLnJldm9rZSh1
cmwpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVVSTC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaAppbmRleCA4
NmVhNWZmMDEzMjVmNDI1NDEyODIzOWFhZTAzZDYwMDM0ZjU2MDRiLi5iMzU4MjYzMjQwODQyNDA2
ZWU4NTkwOGVjMDVhNmVlYmQ0MDYwMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVVSTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmgKQEAgLTM2LDkgKzM2
LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYjsKLWNsYXNzIE1lZGlhU291
cmNlOwotY2xhc3MgTWVkaWFTdHJlYW07CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
Y2xhc3MgVVJMUmVnaXN0cmFibGU7CiAKIGNsYXNzIERPTVVSTCA6IHB1YmxpYyBSZWZDb3VudGVk
PERPTVVSTD4gewogCkBAIC01MCwxMiArNDksOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3Ry
aW5nIGNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQmxvYiopOwogICAg
IHN0YXRpYyB2b2lkIHJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJik7Ci0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBzdGF0aWMgU3RyaW5n
IGNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWVkaWFTb3VyY2UqKTsK
LSNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgc3RhdGljIFN0cmluZyBjcmVh
dGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU3RyZWFtKik7Ci0jZW5k
aWYKKworICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRlUHVibGljVVJMKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBVUkxSZWdpc3RyYWJsZSopOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5p
ZGwKaW5kZXggZDEzMjFhMGFjNzEyYTBiMTM0ZTZiMTc1MGY4ZTAzOGIwZTk0N2U1My4uNDZkNDc0
ODY5MzNiMWRlNzdiZGUwOWJhN2UzMzQ0OWUxYzVkNmNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01VUkwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmlk
bApAQCAtMzQsMTIgKzM0LDYgQEAKICAgICBJbnRlcmZhY2VOYW1lPVVSTCwKICAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBET01VUkwgewotI2lmIGRlZmluZWQoRU5B
QkxFX01FRElBX1NPVVJDRSkgJiYgRU5BQkxFX01FRElBX1NPVVJDRQotICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3Rh
dGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwoTWVkaWFTb3VyY2U/IHNvdXJjZSk7Ci0jZW5k
aWYKLSNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9TVFJFQU0pICYmIEVOQUJMRV9NRURJQV9TVFJF
QU0KLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVs
bFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlhU3Ry
ZWFtPyBzdHJlYW0pOwotI2VuZGlmCiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0
ZU9iamVjdFVSTChCbG9iPyBibG9iKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gc3RhdGljIHZvaWQgcmV2b2tlT2JqZWN0VVJMKERPTVN0cmluZyB1cmwpOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDNhOWE2ZDkzMmM2ZjYw
MjdiM2JiMjRiNDA1ZWQ4NGI1ZmVkYWFhZjYuLmE4Y2QyZGM0NjM0YzZhNTBkNTk0Mzc5NmU4ZjVj
NGJlODUyMDM4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtMTE5LDggKzExOSw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0j
aW5jbHVkZSAiTWVkaWFTb3VyY2UuaCIKLSNpbmNsdWRlICJNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmgi
CisjaW5jbHVkZSAiSFRNTE1lZGlhU291cmNlLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCkBAIC0zNzgsNyArMzc3LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3ZlTWVkaWFFbGVtZW50
KHRoaXMpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBzZXRTb3VyY2VTdGF0ZShN
ZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKTsKKyAgICBjbG9zZU1lZGlhU291cmNlKCk7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCkBAIC04MTEsNyArODEwLDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCgpCiAgICAgICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICBzZXRTb3VyY2VTdGF0ZShNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKTsK
KyAgICBjbG9zZU1lZGlhU291cmNlKCk7CiAjZW5kaWYKIAogI2lmICFFTkFCTEUoUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykKQEAgLTEwOTgsMTEgKzEwOTcsMTcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNv
bnRlbnQKICAgICBBU1NFUlQoIW1fbWVkaWFTb3VyY2UpOwogCiAgICAgaWYgKHVybC5wcm90b2Nv
bElzKG1lZGlhU291cmNlQmxvYlByb3RvY29sKSkKLSAgICAgICAgbV9tZWRpYVNvdXJjZSA9IE1l
ZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCkubG9va3VwTWVkaWFTb3VyY2UodXJsLnN0cmlu
ZygpKTsKKyAgICAgICAgbV9tZWRpYVNvdXJjZSA9IEhUTUxNZWRpYVNvdXJjZTo6bG9va3VwKHVy
bC5zdHJpbmcoKSk7CiAKICAgICBpZiAobV9tZWRpYVNvdXJjZSkgewotICAgICAgICBpZiAoIW1f
cGxheWVyLT5sb2FkKHVybCwgbV9tZWRpYVNvdXJjZSkpCisgICAgICAgIGlmIChtX21lZGlhU291
cmNlLT5hdHRhY2hUb0VsZW1lbnQoKSkKKyAgICAgICAgICAgIG1fcGxheWVyLT5sb2FkKHVybCwg
bV9tZWRpYVNvdXJjZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gRm9yZ2V0IG91
ciByZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQorICAg
ICAgICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgor
ICAgICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CiAgICAgICAgICAgICBtZWRpYUxvYWRpbmdG
YWlsZWQoTWVkaWFQbGF5ZXI6OkZvcm1hdEVycm9yKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQog
I2VuZGlmCiAgICAgaWYgKCFtX3BsYXllci0+bG9hZCh1cmwsIGNvbnRlbnRUeXBlLCBrZXlTeXN0
ZW0pKQpAQCAtMTYwOCw3ICsxNjEzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpub25lU3Vw
cG9ydGVkKCkKICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKIAog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6
OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICAg
ICAvLyA4IC0gU2V0IHRoZSBlbGVtZW50J3MgZGVsYXlpbmctdGhlLWxvYWQtZXZlbnQgZmxhZyB0
byBmYWxzZS4gVGhpcyBzdG9wcyBkZWxheWluZyB0aGUgbG9hZCBldmVudC4KQEAgLTE2MzksNyAr
MTY0NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFFbmdpbmVFcnJvcihQYXNzUmVm
UHRyPE1lZGlhRXJyb3I+IGVycikKICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5lcnJv
ckV2ZW50KTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUo
TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwog
I2VuZGlmCiAKICAgICAvLyA0IC0gU2V0IHRoZSBlbGVtZW50J3MgbmV0d29ya1N0YXRlIGF0dHJp
YnV0ZSB0byB0aGUgTkVUV09SS19FTVBUWSB2YWx1ZSBhbmQgcXVldWUgYQpAQCAtMjE5MCw3ICsy
MTk1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrKGRvdWJsZSB0aW1lLCBFeGNlcHRp
b25Db2RlJiBlYykKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIC8vIEFsd2F5cyBub3Rp
ZnkgdGhlIG1lZGlhIGVuZ2luZSBvZiBhIHNlZWsgaWYgdGhlIHNvdXJjZSBpcyBub3QgY2xvc2Vk
LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgc291cmNlIGlzCiAgICAgLy8gYWx3YXlzIGluIGEgZmx1
c2hlZCBzdGF0ZSB3aGVuIHRoZSAnc2Vla2luZycgZXZlbnQgZmlyZXMuCi0gICAgaWYgKG1fbWVk
aWFTb3VyY2UgJiYgbV9tZWRpYVNvdXJjZS0+cmVhZHlTdGF0ZSgpICE9IE1lZGlhU291cmNlOjpj
bG9zZWRLZXl3b3JkKCkpCisgICAgaWYgKG1fbWVkaWFTb3VyY2UgJiYgbV9tZWRpYVNvdXJjZS0+
aXNDbG9zZWQoKSkKICAgICAgICAgbm9TZWVrUmVxdWlyZWQgPSBmYWxzZTsKICNlbmRpZgogCkBA
IC0yNTU0LDE0ICsyNTU5LDEzIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5h
bCgpCiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzZXRTb3VyY2VTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQordm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpjbG9zZU1lZGlhU291cmNlKCkKIHsKICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCi0gICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybjsKIAotICAgIG1fbWVkaWFTb3VyY2UtPnNldFJl
YWR5U3RhdGUoc3RhdGUpOwotICAgIGlmIChzdGF0ZSA9PSBNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5
d29yZCgpKQotICAgICAgICBtX21lZGlhU291cmNlID0gMDsKKyAgICBtX21lZGlhU291cmNlLT5j
bG9zZSgpOworICAgIG1fbWVkaWFTb3VyY2UgPSAwOwogfQogI2VuZGlmCiAKQEAgLTM4NzQsNiAr
Mzg3OCwxMiBAQCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IEhUTUxNZWRpYUVsZW1lbnQ6OmJ1ZmZl
cmVkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm4gVGltZVJh
bmdlczo6Y3JlYXRlKCk7CisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgIGlmIChtX21l
ZGlhU291cmNlKQorICAgICAgICByZXR1cm4gbV9tZWRpYVNvdXJjZS0+YnVmZmVyZWQoKTsKKyNl
bmRpZgorCiAgICAgcmV0dXJuIG1fcGxheWVyLT5idWZmZXJlZCgpOwogfQogCkBAIC00MDkxLDcg
KzQxMDEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJDYW5jZWxsZWRMb2FkKCkKICAg
ICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKIAogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdv
cmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICAgICAvLyA0IC0gSWYg
dGhlIG1lZGlhIGVsZW1lbnQncyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBoYXMgYSB2YWx1ZSBlcXVh
bCB0byBIQVZFX05PVEhJTkcsIHNldCB0aGUgCkBAIC00MTM2LDcgKzQxNDYsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogI2lmICFFTkFCTEUo
UExVR0lOX1BST1hZX0ZPUl9WSURFTykKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAg
c2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VN
ZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICAgICBtX3BsYXllci5jbGVhcigpOwpAQCAtNDc4NSw3
ICs0Nzk1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIGlmIChtX21lZGlhU291cmNlKQotICAgICAg
ICBtX21lZGlhU291cmNlLT5zZXRSZWFkeVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3Jk
KCkpOworICAgICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgpOwogI2VuZGlmCiAKICAgICBtX3Bs
YXllciA9IE1lZGlhUGxheWVyOjpjcmVhdGUodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IDBjN2IxNGM1NDJlMDY3MDBmNzM2MWQwYTNhNDg3NjBlZmQyZDBh
ZTcuLjU4Y2ExODBhMzk1ZThlMjgwMGRkZjVlZmZjOTZhZDlkNmIyMWVjMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIC8vICBNZWRpYSBTb3VyY2UuCi0gICAgdm9pZCBz
ZXRTb3VyY2VTdGF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNsb3NlTWVkaWFTb3VyY2Uo
KTsKICNlbmRpZiAKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCkBAIC02NzQsNyArNjc0
LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9wcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjazsK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX21l
ZGlhU291cmNlOworICAgIFJlZlB0cjxIVE1MTWVkaWFTb3VyY2U+IG1fbWVkaWFTb3VyY2U7CiAj
ZW5kaWYKIAogICAgIG11dGFibGUgZG91YmxlIG1fY2FjaGVkVGltZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWJhMTQxNDMyZmRhZTc4ZTdhZTBh
ZjMxY2M5YWY0OTA4MGRmMmQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSFRNTE1lZGlhU291cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
VVJMUmVnaXN0cnkqIEhUTUxNZWRpYVNvdXJjZTo6c19yZWdpc3RyeSA9IDA7CisKK3ZvaWQgSFRN
TE1lZGlhU291cmNlOjpzZXRSZWdpc3RyeShVUkxSZWdpc3RyeSogcmVnaXN0cnkpCit7CisgICAg
QVNTRVJUKCFzX3JlZ2lzdHJ5KTsKKyAgICBzX3JlZ2lzdHJ5ID0gcmVnaXN0cnk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MjNiZjViNDdm
YjlmMDg2ZjQ0OTg5ODhiYTgzODI4ZGViY2JhYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhU
TUxNZWRpYVNvdXJjZV9oCisjZGVmaW5lIEhUTUxNZWRpYVNvdXJjZV9oCisKKyNpbmNsdWRlICJV
UkxSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlOworY2xhc3MgVGltZVJhbmdlczsKKwor
Y2xhc3MgSFRNTE1lZGlhU291cmNlIDogcHVibGljIFVSTFJlZ2lzdHJhYmxlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgdm9pZCBzZXRSZWdpc3RyeShVUkxSZWdpc3RyeSopOworICAgIHN0YXRpYyBI
VE1MTWVkaWFTb3VyY2UqIGxvb2t1cChjb25zdCBTdHJpbmcmIHVybCkgeyByZXR1cm4gc19yZWdp
c3RyeSA/IHN0YXRpY19jYXN0PEhUTUxNZWRpYVNvdXJjZSo+KHNfcmVnaXN0cnktPmxvb2t1cCh1
cmwpKSA6IDA7IH0KKworICAgIHZvaWQgcmVmKCkgeyByZWZIVE1MTWVkaWFTb3VyY2UoKTsgfQor
ICAgIHZvaWQgZGVyZWYoKSB7IGRlcmVmSFRNTE1lZGlhU291cmNlKCk7IH0KKworICAgIC8vIENh
bGxlZCB3aGVuIGFuIEhUTUxNZWRpYUVsZW1lbnQgaXMgYXR0ZW1wdGluZyB0byBhdHRhY2ggdG8g
dGhpcyBvYmplY3QsCisgICAgLy8gYW5kIGhlbHBzIGVuZm9yY2UgYXR0YWNobWVudCB0byBhdCBt
b3N0IG9uZSBlbGVtZW50IGF0IGEgdGltZS4KKyAgICAvLyBJZiBhbHJlYWR5IGF0dGFjaGVkLCBy
ZXR1cm5zIGZhbHNlLiBPdGhlcndpc2UsIG11c3QgYmUgaW4KKyAgICAvLyAnY2xvc2VkJyBzdGF0
ZSwgYW5kIHJldHVybnMgdHJ1ZSB0byBpbmRpY2F0ZSBhdHRhY2htZW50IHN1Y2Nlc3MuCisgICAg
Ly8gUmVhdHRhY2htZW50IGFsbG93ZWQgYnkgZmlyc3QgY2FsbGluZyBjbG9zZSgpIChldmVuIGlm
IGFscmVhZHkgaW4gJ2Nsb3NlZCcpLgorICAgIHZpcnR1YWwgYm9vbCBhdHRhY2hUb0VsZW1lbnQo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVk
aWFTb3VyY2VQcml2YXRlPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNDbG9zZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBkb3VibGUg
ZHVyYXRpb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IGJ1ZmZlcmVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWZIVE1MTWVkaWFTb3Vy
Y2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmSFRNTE1lZGlhU291cmNlKCkgPSAwOwor
CisgICAgLy8gVVJMUmVnaXN0cmFibGUKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3Ry
eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICpzX3JlZ2lzdHJ5OyB9CisKK3ByaXZhdGU6Cisg
ICAgc3RhdGljIFVSTFJlZ2lzdHJ5KiBzX3JlZ2lzdHJ5OworfTsKKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkN2IwN2Mx
NWFjMzdjZTFlNDQzYmY2ODNhNzI0OGY4N2NhNWVjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHkgSW5jLgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlB1YmxpY1VSTE1hbmFnZXIuaCIKKworI2luY2x1ZGUg
IktVUkwuaCIKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFB1YmxpY1VSTE1hbmFn
ZXI6OnJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IEtVUkwmIHVybCwg
VVJMUmVnaXN0cmFibGUqIHJlZ2lzdHJhYmxlKQoreworICAgIFJlZ2lzdHJ5VVJMTWFwOjppdGVy
YXRvciBmb3VuZCA9IG1fcmVnaXN0cnlUb1VSTC5hZGQoJnJlZ2lzdHJhYmxlLT5yZWdpc3RyeSgp
LCBVUkxTZXQoKSkuaXRlcmF0b3I7CisgICAgZm91bmQtPmtleS0+cmVnaXN0ZXJVUkwob3JpZ2lu
LCB1cmwsIHJlZ2lzdHJhYmxlKTsKKyAgICBmb3VuZC0+dmFsdWUuYWRkKHVybC5zdHJpbmcoKSk7
Cit9CisKK3ZvaWQgUHVibGljVVJMTWFuYWdlcjo6cmV2b2tlKGNvbnN0IEtVUkwmIHVybCkKK3sK
KyAgICBmb3IgKFJlZ2lzdHJ5VVJMTWFwOjppdGVyYXRvciBpID0gbV9yZWdpc3RyeVRvVVJMLmJl
Z2luKCk7IGkgIT0gbV9yZWdpc3RyeVRvVVJMLmVuZCgpOyArK2kpIHsKKyAgICAgICAgaWYgKGkt
PnZhbHVlLmNvbnRhaW5zKHVybC5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIGktPmtleS0+dW5y
ZWdpc3RlclVSTCh1cmwpOworICAgICAgICAgICAgaS0+dmFsdWUucmVtb3ZlKHVybC5zdHJpbmco
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBQdWJs
aWNVUkxNYW5hZ2VyOjpjb250ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBmb3IgKFJlZ2lzdHJ5VVJM
TWFwOjppdGVyYXRvciBpID0gbV9yZWdpc3RyeVRvVVJMLmJlZ2luKCk7IGkgIT0gbV9yZWdpc3Ry
eVRvVVJMLmVuZCgpOyArK2kpIHsKKyAgICAgICAgZm9yIChVUkxTZXQ6Oml0ZXJhdG9yIGogPSBp
LT52YWx1ZS5iZWdpbigpOyBqICE9IGktPnZhbHVlLmVuZCgpOyArK2opCisgICAgICAgICAgICBp
LT5rZXktPnVucmVnaXN0ZXJVUkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsICpqKSk7CisgICAgfQor
CisgICAgbV9yZWdpc3RyeVRvVVJMLmNsZWFyKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Q
dWJsaWNVUkxNYW5hZ2VyLmgKaW5kZXggZTE3ZTQ2YThkNmJhZjdkYjZjYTQ1ZGY3ODI1YjAxNzg1
YjJiNmQ0Zi4uZjAzOGZiNWI5YTI4OTAyODlmMGRlNzA5MDRkNmYzZjAwZGZkYzdmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmgKQEAgLTI3LDYzICsyNywzMyBAQAogI2Rl
ZmluZSBQdWJsaWNVUkxNYW5hZ2VyX2gKIAogI2lmIEVOQUJMRShCTE9CKQotI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lz
dHJ5LmgiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiTWVk
aWFTb3VyY2UuaCIKLSNpbmNsdWRlICJNZWRpYVNvdXJjZVJlZ2lzdHJ5LmgiCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBLVVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgVVJMUmVnaXN0cnk7CitjbGFz
cyBVUkxSZWdpc3RyYWJsZTsKIAogY2xhc3MgUHVibGljVVJMTWFuYWdlciB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8UHVibGlj
VVJMTWFuYWdlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFB1YmxpY1VSTE1hbmFn
ZXIpOyB9Ci0gICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkKLSAgICB7Ci0gICAgICAgIEhhc2hT
ZXQ8U3RyaW5nPjo6aXRlcmF0b3IgYmxvYlVSTHNFbmQgPSBtX2Jsb2JVUkxzLmVuZCgpOwotICAg
ICAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXRlciA9IG1fYmxvYlVSTHMuYmVn
aW4oKTsgaXRlciAhPSBibG9iVVJMc0VuZDsgKytpdGVyKQotICAgICAgICAgICAgVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeTo6dW5yZWdpc3RlckJsb2JVUkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsICpp
dGVyKSk7Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgICAgICBIYXNoU2V0PFN0cmlu
Zz46Oml0ZXJhdG9yIHN0cmVhbVVSTHNFbmQgPSBtX3N0cmVhbVVSTHMuZW5kKCk7Ci0gICAgICAg
IGZvciAoSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBpdGVyID0gbV9zdHJlYW1VUkxzLmJlZ2lu
KCk7IGl0ZXIgIT0gc3RyZWFtVVJMc0VuZDsgKytpdGVyKQotICAgICAgICAgICAgTWVkaWFTdHJl
YW1SZWdpc3RyeTo6cmVnaXN0cnkoKS51bnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwoS1VSTChQYXJz
ZWRVUkxTdHJpbmcsICppdGVyKSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQot
ICAgICAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIHNvdXJjZVVSTHNFbmQgPSBtX3NvdXJj
ZVVSTHMuZW5kKCk7Ci0gICAgICAgIGZvciAoSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBpdGVy
ID0gbV9zb3VyY2VVUkxzLmJlZ2luKCk7IGl0ZXIgIT0gc291cmNlVVJMc0VuZDsgKytpdGVyKQot
ICAgICAgICAgICAgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0cnkoKS51bnJlZ2lzdGVyTWVk
aWFTb3VyY2VVUkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsICppdGVyKSk7Ci0jZW5kaWYKLSAgICB9
CiAKLSAgICBIYXNoU2V0PFN0cmluZz4mIGJsb2JVUkxzKCkgeyByZXR1cm4gbV9ibG9iVVJMczsg
fQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgSGFzaFNldDxTdHJpbmc+JiBzdHJlYW1V
UkxzKCkgeyByZXR1cm4gbV9zdHJlYW1VUkxzOyB9Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQotICAgIEhhc2hTZXQ8U3RyaW5nPiYgc291cmNlVVJMcygpIHsgcmV0dXJuIG1fc291
cmNlVVJMczsgfQotI2VuZGlmCisgICAgdm9pZCByZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbios
IGNvbnN0IEtVUkwmLCBVUkxSZWdpc3RyYWJsZSopOworICAgIHZvaWQgcmV2b2tlKGNvbnN0IEtV
UkwmKTsKKyAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBIYXNo
U2V0PFN0cmluZz4gbV9ibG9iVVJMczsKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX3N0cmVhbVVSTHM7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NvdXJjZVVSTHM7Ci0jZW5kaWYKKyAgICB0eXBl
ZGVmIEhhc2hTZXQ8U3RyaW5nPiBVUkxTZXQ7CisgICAgdHlwZWRlZiBIYXNoTWFwPFVSTFJlZ2lz
dHJ5KiwgVVJMU2V0ID4gUmVnaXN0cnlVUkxNYXA7CisgICAgUmVnaXN0cnlVUkxNYXAgbV9yZWdp
c3RyeVRvVVJMOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9VUkxSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxS
ZWdpc3RyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ODdjOWM5M2Y5MmQwNWE0ZWY5ZmQxNWYzMzM1Y2MzODUz
MmIwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFJlZ2lzdHJ5
LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVVJMUmVnaXN0cnlfaAorI2RlZmluZSBVUkxSZWdp
c3RyeV9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBLVVJMOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBVUkxS
ZWdpc3RyeTsKKworY2xhc3MgVVJMUmVnaXN0cmFibGUgeworcHVibGljOgorICAgIHZpcnR1YWwg
flVSTFJlZ2lzdHJhYmxlKCkgeyB9CisgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnko
KSBjb25zdCA9IDA7Cit9OworCitjbGFzcyBVUkxSZWdpc3RyeSB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VVJMUmVnaXN0cnkoKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwg
VVJMUmVnaXN0cmFibGUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJVUkwoY29u
c3QgS1VSTCYpID0gMDsKKworICAgIC8vIFRoaXMgaXMgYW4gb3B0aW9uYWwgQVBJCisgICAgdmly
dHVhbCBVUkxSZWdpc3RyYWJsZSogbG9va3VwKGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiAwOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBVUkxSZWdpc3RyeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggM2IwZDYzZjdlMGRlYmQwMTMwYmVjOWQwOWQ3MTM4
NGY0NjAzZmU1My4uYjQ5MTIxNmRlMWU2YmNlNzc4MjIyNDUxMTU1NjAxOTQyN2JhOWQzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtNDUsNyArNDUsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2lu
Y2x1ZGUgIk1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhU291cmNlLmgiCiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKFFUKQpAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8TWVk
aWFTb3VyY2U+KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNz
UmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pIHsgfQogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbExvYWQoKSB7IH0KIApAQCAtMzk0LDcgKzM5NCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6Omxv
YWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0
IFN0CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotYm9vbCBNZWRpYVBsYXllcjo6bG9h
ZChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IG1lZGlhU291cmNlKQor
Ym9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8SFRNTE1l
ZGlhU291cmNlPiBtZWRpYVNvdXJjZSkKIHsKICAgICBtX21lZGlhU291cmNlID0gbWVkaWFTb3Vy
Y2U7CiAgICAgbV9jb250ZW50TUlNRVR5cGUgPSAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDkyNzM0Y2FiNTBjYzMwMzRlNGFjZTJi
MzA4ZDVmNzg3OWNhODVjOTguLmM2NjM1MTM0ODg5MmIyNzUyNjM0YmJlNDg3MzQ1ZjIwNzM2M2Vm
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtNjYsMTAgKzY2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvU291
cmNlUHJvdmlkZXI7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKLWNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQotY2xhc3MgTWVkaWFTb3VyY2U7CitjbGFzcyBIVE1MTWVkaWFTb3VyY2U7CiAjZW5kaWYKK2Ns
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNzIFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uOwogCiAvLyBTdHJ1Y3R1cmUgdGhhdCB3aWxsIGhvbGQgZXZlcnkgbmF0aXZlCkBAIC0y
NzksNyArMjc5LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBsb2FkKGNvbnN0IEtVUkwmLCBjb25z
dCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQotICAgIGJvb2wgbG9hZChjb25zdCBLVVJMJiwgUGFzc1JlZlB0cjxNZWRpYVNv
dXJjZT4pOworICAgIGJvb2wgbG9hZChjb25zdCBLVVJMJiwgUGFzc1JlZlB0cjxIVE1MTWVkaWFT
b3VyY2U+KTsKICNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogCkBAIC0yODgsNyArMjg4
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVwYXJlVG9QbGF5KCk7CiAgICAgdm9pZCBwbGF5
KCk7Ci0gICAgdm9pZCBwYXVzZSgpOyAgICAKKyAgICB2b2lkIHBhdXNlKCk7CiAKICNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQogICAgIC8vIFJlcHJlc2VudHMgc3luY2hyb25vdXMgZXhjZXB0
aW9ucyB0aGF0IGNhbiBiZSB0aHJvd24gZnJvbSB0aGUgRW5jcnlwdGVkIE1lZGlhIG1ldGhvZHMu
CkBAIC0zMTUsNyArMzE1LDcgQEAgcHVibGljOgogICAgIGRvdWJsZSByYXRlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRSYXRlKGRvdWJsZSk7CiAKLSAgICBib29sIHByZXNlcnZlc1BpdGNoKCkgY29u
c3Q7ICAgIAorICAgIGJvb2wgcHJlc2VydmVzUGl0Y2goKSBjb25zdDsKICAgICB2b2lkIHNldFBy
ZXNlcnZlc1BpdGNoKGJvb2wpOwogCiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZCgpOwpAQCAtMzM0LDcgKzMzNCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Nsb3NlZENhcHRp
b25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9z
ZWRDYXB0aW9uc1Zpc2libGUpOwogCi0gICAgYm9vbCBhdXRvcGxheSgpIGNvbnN0OyAgICAKKyAg
ICBib29sIGF1dG9wbGF5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBdXRvcGxheShib29sKTsKIAog
ICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwpAQCAtNTEy
LDcgKzUxMiw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
Ci0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOworICAgIFJlZlB0cjxIVE1M
TWVkaWFTb3VyY2U+IG1fbWVkaWFTb3VyY2U7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXgg
Y2JlODBlNmMyN2ZhN2VjZGY3MTdmOGIzMmQ5MTQ5MWNkZjM2ZWIyZC4uNDQ4NjlmNGRhZTBlYzQz
ODRlYzA3YzU2MWU2MmQyY2NiNjVjOTc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpID0gMDsK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0
cmluZyYgdXJsLCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pID0g
MDsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCkgPSAwOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZh
dGUuaAppbmRleCAyYjEwNzRmYmNmYjJlMTRjYTY1ZDJlNTk1ODMzYmVjNWJmNmU1MTk0Li4yZGZk
NThhMjQxMmNhMzc2M2EwY2ZkZDhlYWZjMDJmMTVhNTA1ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaApAQCAtNTAs
NyArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb24oKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldER1cmF0aW9uKGRvdWJsZSkgPSAwOwogICAgIGVudW0gRW5kT2ZT
dHJlYW1TdGF0dXMgeyBFb3NOb0Vycm9yLCBFb3NOZXR3b3JrRXJyb3IsIEVvc0RlY29kZUVycm9y
IH07Ci0gICAgdmlydHVhbCB2b2lkIGVuZE9mU3RyZWFtKEVuZE9mU3RyZWFtU3RhdHVzKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIG1hcmtFbmRPZlN0cmVhbShFbmRPZlN0cmVhbVN0YXR1cykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1bm1hcmtFbmRPZlN0cmVhbSgpID0gMDsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApp
bmRleCBkOWQ3MTc4MDdkYzRmNDk4NzdlNDk4MjBkZDM4ZjFjMTU2ODViZGZiLi41MmYwM2Y4NDc3
NmExMGI0YjI4ZmI2OTA0NzFiMDY2NmU1ZmZjYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0xMjksNiArMTI5LDkgQEAg
cHJvdGVjdGVkOgogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlUHJpdmF0ZUludGVyZmFjZSBv
dmVycmlkZXMuCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpOworI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5n
JiwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KSB7IH07CisjZW5kaWYKICAgICB2aXJ0dWFs
IHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9QbGF5
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IGYyMjZjZGE4NzZlMjNmNzFlZGY1
MmYyZDcwN2I1NjViNWRjNGU1NDMuLjcyYjIyNTQwMWMwOGQ2YzlhODBkYzY4NWM2NmQ2NDJhMTI3
OTNiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC05Nyw2ICs5Nyw5IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAgICAgCiAgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKTsKKyNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQorICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYs
IFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPikgeyB9OworI2VuZGlmCiAgICAgdm9pZCBjYW5j
ZWxMb2FkKCk7CiAgICAgdm9pZCBsb2FkSW50ZXJuYWwoY29uc3QgU3RyaW5nJiB1cmwpOwogICAg
IHZvaWQgcmVzdW1lTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
TUlNRVR5cGVSZWdpc3RyeU1hYy5tbQppbmRleCBkMjJlMmI2NjE5ODFjMDA4ODM3ZGZiYzJjOWE1
MzI2MDA2YjJiNGI4Li44ODM2NjQwNTAzYzhmZDRjMTFlYWQxNmI5ZDk0NTUwNjIxODEwZDgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1h
Yy5tbQpAQCAtNzMsNCArNzMsMTEgQEAgYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0
aW9uUGx1Z2luTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5
Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRk
c291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGJlZjgyZmFkMjQzZjRlN2ZiYjc4NTYwMThjOGQ3ODdhOTU3NGY3YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisg
CitQQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0eXBlIAorUEFTUyBUZXN0
IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBwb3J0ZWQgdHlwZSAKK1BBU1MgVGVzdCBhZGRT
b3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IAorUEFTUyBUZXN0IGFkZFNvdXJjZUJ1
ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycyAKK0ZB
SUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIEFBQyBhbmQgSC4yNjQgYXNzZXJ0X3RydWU6
IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBB
QUMgYW5kIEguMjY0IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IHZpZGVv
L21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIiBpcyBzdXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MDEzNGJlYjdiM2Q2YTRiOTI5MWM2Mzg0MzJjZjJiNDY0YjM1NmIyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorCisgICAgICAg
IDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlv
bih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZEFjY2Vzc0Vycm9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigiIik7
IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRTb3VyY2VCdWZmZXIoKSB0aHJldyBh
biBleGNlcHRpb24gd2hlbiBwYXNzZWQgYW4gZW1wdHkgc3RyaW5nLiIpOworICAgICAgICAgICAg
ICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRo
IGVtcHR5IHR5cGUiKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVz
dCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAg
IGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigiaW52YWxpZFR5
cGUiKTsgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZFNvdXJjZUJ1ZmZlcigpIHRo
cmV3IGFuIGV4Y2VwdGlvbiBmb3IgYW4gdW5zdXBwb3J0ZWQgdHlwZS4iKTsKKyAgICAgICAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0
aCB1bnN1cHBvcnRlZCB0eXBlIik7CisKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAg
ICAgICAgICAgIHZhciBtaW1ldHlwZSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyIn
OworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRl
ZChtaW1ldHlwZSksIG1pbWV0eXBlICsgIiBpcyBzdXBwb3J0ZWQiKTsKKworICAgICAgICAgICAg
ICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKG1pbWV0eXBl
KTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyICE9IG51bGwsICJOZXcg
U291cmNlQnVmZmVyIHJldHVybmVkIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVk
aWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVmZmVyIGlz
IGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXIsICJT
b3VyY2VCdWZmZXIgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAg
ICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZm
ZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4Iik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0
KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgewor
ICAgICAgICAgICAgICB2YXIgdmlkZW9NaW1ldHlwZSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4
Iic7CisgICAgICAgICAgICAgIHZhciBhdWRpb01pbWV0eXBlID0gJ2F1ZGlvL3dlYm07Y29kZWNz
PSJ2b3JiaXMiJzsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5
cGVTdXBwb3J0ZWQodmlkZW9NaW1ldHlwZSksIHZpZGVvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRl
ZCIpOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0
ZWQoYXVkaW9NaW1ldHlwZSksIGF1ZGlvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworCisg
ICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVm
ZmVyKHZpZGVvTWltZXR5cGUpOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG1l
ZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihhdWRpb01pbWV0eXBlKTsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXJB
LCAic291cmNlQnVmZmVyQSBpcyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sw
XSwgc291cmNlQnVmZmVyQSwgInNvdXJjZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZl
U291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNl
LnNvdXJjZUJ1ZmZlcnNbMV0sIHNvdXJjZUJ1ZmZlckIsICJzb3VyY2VCdWZmZXJCIGlzIGluIG1l
ZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyht
ZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJCLCAic291cmNl
QnVmZmVyQiBpcyBpbiBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAg
ICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigp
IHdpdGggVm9yYmlzIGFuZCBWUDggaW4gc2VwYXJhdGUgU291cmNlQnVmZmVycyIpOworCisgICAg
ICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlh
U291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIG1pbWV0eXBlID0gJ3ZpZGVv
L21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiInOworCisgICAgICAgICAgICAgIGFz
c2VydF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChtaW1ldHlwZSksIG1pbWV0eXBl
ICsgIiBpcyBzdXBwb3J0ZWQiKTsKKworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0g
bWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKG1pbWV0eXBlKTsKKyAgICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoc291cmNlQnVmZmVyICE9IG51bGwsICJOZXcgU291cmNlQnVmZmVyIHJldHVybmVk
Iik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVy
c1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVmZmVyIGlzIGluIG1lZGlhU291cmNlLnNvdXJj
ZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3Rp
dmVTb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXIsICJTb3VyY2VCdWZmZXIgaXMgaW4gbWVk
aWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICB0ZXN0LmRvbmUo
KTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIEFBQyBhbmQgSC4y
NjQiKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFF
bGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciB2aWRl
b01pbWV0eXBlID0gJ3ZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIic7CisgICAgICAgICAg
ICAgIHZhciBhdWRpb01pbWV0eXBlID0gJ2F1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiInOwor
CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCh2
aWRlb01pbWV0eXBlKSwgdmlkZW9NaW1ldHlwZSArICIgaXMgc3VwcG9ydGVkIik7CisgICAgICAg
ICAgICAgIGFzc2VydF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChhdWRpb01pbWV0
eXBlKSwgYXVkaW9NaW1ldHlwZSArICIgaXMgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAgICAg
dmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodmlkZW9NaW1l
dHlwZSk7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJCID0gbWVkaWFTb3VyY2UuYWRk
U291cmNlQnVmZmVyKGF1ZGlvTWltZXR5cGUpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJjZUJ1ZmZlckEsICJzb3VyY2VCdWZm
ZXJBIGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZm
ZXJBLCAic291cmNlQnVmZmVyQSBpcyBpbiBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVy
c1sxXSwgc291cmNlQnVmZmVyQiwgInNvdXJjZUJ1ZmZlckIgaXMgaW4gbWVkaWFTb3VyY2Uuc291
cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFj
dGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sIHNvdXJjZUJ1ZmZlckIsICJzb3VyY2VCdWZmZXJCIGlzIGlu
IG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5k
IEguMjY0IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1h
cHBlbmQtYnVmZmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjNjZWU2MmMxOTNmYzhlNDhj
MjNlYWQ4MjEwZjJkMjI3ZjViYTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisgCitQQVNTIFRlc3QgU291cmNlQnVmZmVyLmFwcGVu
ZEJ1ZmZlcigpIGV2ZW50IGRpc3BhdGNoaW5nLiAKK1BBU1MgVGVzdCBTb3VyY2VCdWZmZXIuYXBw
ZW5kQnVmZmVyKCkgY2FsbCBkdXJpbmcgYSBwZW5kaW5nIGFwcGVuZEJ1ZmZlcigpLiAKK1BBU1Mg
VGVzdCBTb3VyY2VCdWZmZXIuYWJvcnQoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVm
ZmVyKCkuIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoKSB0cmlnZ2VyaW5n
IGFuICdlbmRlZCcgdG8gJ29wZW4nIHRyYW5zaXRpb24uIAorUEFTUyBUZXN0IE1lZGlhU291cmNl
LnJlbW92ZVNvdXJjZUJ1ZmZlcigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIo
KS4gCitQQVNTIFRlc3QgYXBwZW5kaW5nIGFuIGVtcHR5IEFycmF5QnVmZmVyVmlldy4gCitQQVNT
IFRlc3QgYXBwZW5kaW5nIGFuIGVtcHR5IEFycmF5QnVmZmVyLiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5k
LWJ1ZmZlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ODViNDA3Yjc3ZDk5
ZjUyNzc3NjkwM2U1ODZlNmZhMGIzMzIwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hcHBlbmQtYnVmZmVy
Lmh0bWwKQEAgLTAsMCArMSwxOTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11
dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4K
KyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
ICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0ID0gZnVuY3Rpb24oY2FsbGJhY2ssIGRlc2NyaXB0
aW9uKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlv
bih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICB2YXIgbWVkaWFUeXBlID0gJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9y
YmlzIic7CisgICAgICAgICAgICAgICAgICB2YXIgbWVkaWFVUkwgPSAnL21lZGlhL3Jlc291cmNl
cy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LndlYm0nOworICAgICAgICAgICAgICAgICAgdmFyIHNv
dXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtZWRpYVR5cGUpOworICAg
ICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmxvYWRCaW5hcnlEYXRhKHRlc3QsIG1lZGlh
VVJMLCBmdW5jdGlvbihtZWRpYURhdGEpCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgY2FsbGJhY2sodGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgc291
cmNlQnVmZmVyLCBtZWRpYURhdGEpOworCisgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgfSwgZGVzY3JpcHRpb24pOworICAgICAgICAgIH07CisKKyAgICAgICAgICBtZWRpYXNv
dXJjZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3Vy
Y2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
dGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworCisgICAgICAgICAgICAg
IHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0
YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAi
dXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAg
ICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobWVkaWFEYXRhKTsKKworICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1
dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRz
KGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBhc3NlcnRfZmFs
c2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7
CisgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICB9LCAiVGVzdCBTb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKCkgZXZlbnQgZGlzcGF0Y2hp
bmcuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRl
c3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQs
ICdlcnJvcicpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVy
LCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3Qu
ZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOwor
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIs
ICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZm
ZXIobWVkaWFEYXRhKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIu
dXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAg
IGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAgICAgIGZ1
bmN0aW9uKCkgeyBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7IH0sCisgICAg
ICAgICAgICAgICAgICAiYXBwZW5kQnVmZmVyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiB0aGVyZSBp
cyBhIHBlbmRpbmcgYXBwZW5kLiIpOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJj
ZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAg
ICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0
aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7CisgICAgICAgICAgICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgU291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIo
KS4iKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX2xvYWRkYXRhX3Rlc3QoZnVuY3Rpb24odGVz
dCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgc291cmNlQnVmZmVyLCBtZWRpYURhdGEpCisg
ICAgICAgICAgeworICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwg
J2Vycm9yJyk7CisKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIs
ICJ1cGRhdGVzdGFydCIsICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAgdGVzdC5l
eHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJhYm9ydCIsICJBcHBlbmQgYWJvcnRlZC4iKTsKKyAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAi
QXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KG1lZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVw
ZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAgICBz
b3VyY2VCdWZmZXIuYWJvcnQoKTsKKworICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNl
QnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7CisKKyAgICAg
ICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0
aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7CisgICAgICAgICAgICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgU291cmNl
QnVmZmVyLmFib3J0KCkgY2FsbCBkdXJpbmcgYSBwZW5kaW5nIGFwcGVuZEJ1ZmZlcigpLiIpOwor
CisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRp
YUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3In
KTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0
ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAg
ICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5k
IGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlh
RGF0YSk7CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywg
InVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0
Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0
cmlidXRlIGlzIGZhbHNlIik7CisKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQo
bWVkaWFTb3VyY2UsICJzb3VyY2VlbmRlZCIsICJNZWRpYVNvdXJjZSBzb3VyY2VlbmRlZCBldmVu
dCIpOworICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKyAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgImVuZGVk
IiwgIk1lZGlhU291cmNlIHJlYWR5U3RhdGUgaXMgJ2VuZGVkJyIpOworICAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFT
b3VyY2UucmVhZHlTdGF0ZSwgImVuZGVkIiwgIk1lZGlhU291cmNlIHJlYWR5U3RhdGUgaXMgJ2Vu
ZGVkJyIpOworCisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNl
LCAic291cmNlb3BlbiIsICJNZWRpYVNvdXJjZSBzb3VyY2VvcGVuIGV2ZW50Iik7CisgICAgICAg
ICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0Iiwg
IkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChz
b3VyY2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBwZW5kIHN1Y2Nlc3MuIik7CisgICAgICAgICAgICAg
ICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQg
ZW5kZWQuIik7CisgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1l
ZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uu
cmVhZHlTdGF0ZSwgIm9wZW4iLCAiTWVkaWFTb3VyY2UgcmVhZHlTdGF0ZSBpcyAnb3BlbiciKTsK
KyAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVw
ZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0
YXRlLCAib3BlbiIsICJNZWRpYVNvdXJjZSByZWFkeVN0YXRlIGlzICdvcGVuJyIpOworICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5n
IGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IFNvdXJjZUJ1ZmZlci5hcHBlbmRC
dWZmZXIoKSB0cmlnZ2VyaW5nIGFuICdlbmRlZCcgdG8gJ29wZW4nIHRyYW5zaXRpb24uIik7CisK
KyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlh
RWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQorICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicp
OworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRl
c3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZl
bnQoc291cmNlQnVmZmVyLCAiYWJvcnQiLCAiQXBwZW5kIGFib3J0ZWQuIik7CisgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBl
bmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURh
dGEpOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywg
InVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAgICAgICAgICAgdGVzdC5leHBl
Y3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAicmVtb3Zlc291cmNlYnVm
ZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAicmVtb3Zlc291cmNlYnVmZmVyIiwgInNv
dXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgbWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVm
ZmVyKHNvdXJjZUJ1ZmZlcik7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1
ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworCisgICAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7IH0s
CisgICAgICAgICAgICAgICAgICAiYXBwZW5kQnVmZmVyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiBi
ZWNhdXNlIGl0IGlzbid0IGF0dGFjaGVkIHRvIHRoZSBtZWRpYVNvdXJjZSBhbnltb3JlLiIpOwor
CisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZl
ci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAg
ICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0
IE1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZlcigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBh
cHBlbmRCdWZmZXIoKS4iKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAg
ICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFT
b3VyY2VVdGlsLlZJREVPX09OTFlfVFlQRSk7CisKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIsICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBw
ZW5kIHN1Y2Nlc3MuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVm
ZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBlbmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihuZXcgVWludDhBcnJheSgwKSk7CisKKyAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlz
IHRydWUiKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5j
dGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShz
b3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAg
ICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICB9LCAiVGVzdCBhcHBlbmRpbmcgYW4gZW1wdHkgQXJyYXlCdWZmZXJWaWV3LiIpOworCisKKyAg
ICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVk
aWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0g
bWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZ
UEUpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBk
YXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAg
ICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBl
bmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobmV3
IEFycmF5QnVmZmVyKDApKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZm
ZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAg
ICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywg
InVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IGFwcGVuZGluZyBh
biBlbXB0eSBBcnJheUJ1ZmZlci4iKTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDU5YjU0MTFkZTk0ZTljODc4NDE2ZTg3MzEzM2MzYmFiMmY1NTk2
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWJ1ZmZlcmVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
KyAKK1BBU1MgRGVtdXhlZCBjb250ZW50IHdpdGggZGlmZmVyZW50IGxlbmd0aHMgCitQQVNTIE11
eGVkIHRyYWNrcyB3aXRoIGRpZmZlcmVudCBsZW5ndGhzIAorUEFTUyBEZW11eGVkIGNvbnRlbnQg
d2l0aCBhbiBlbXB0eSBidWZmZXJlZCByYW5nZSBvbiBvbmUgU291cmNlQnVmZmVyIAorUEFTUyBN
dXhlZCBjb250ZW50IGVtcHR5IGJ1ZmZlcmVkIHJhbmdlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWJ1ZmZlcmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1idWZmZXJlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3MjgzOGEwNjQ3YjE5M2JiMWQyZTRiY2E2
NzdmNzg4YmNiMjNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC5odG1sCkBAIC0wLDAgKzEs
MTYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9
ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiBtZWRp
YVNvdXJjZURlbXV4ZWRUZXN0KGNhbGxiYWNrLCBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICB2YXIgbWFuaWZlc3RGaWxlbmFtZUEgPSAid2VibS90ZXN0LWEtMTI4
ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uIjsKKyAgICAgICAgICAgICAgICB2YXIgbWFuaWZl
c3RGaWxlbmFtZUIgPSAid2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlm
ZXN0Lmpzb24iOworICAgICAgICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVz
dCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5wYXVzZSgpOworICAgICAgICAgICAgICAgICAgICB0
ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3QuZW5kT25FdmVudChtZWRpYUVsZW1lbnQsICdlbmRlZCcpOworCisgICAgICAgICAg
ICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0YSh0ZXN0LCBtYW5p
ZmVzdEZpbGVuYW1lQSwgZnVuY3Rpb24odHlwZUEsIGRhdGFBKQorICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVz
dEFuZERhdGEodGVzdCwgbWFuaWZlc3RGaWxlbmFtZUIsIGZ1bmN0aW9uKHR5cGVCLCBkYXRhQikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodHlwZUEpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcih0eXBlQik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZm
ZXJzLmxlbmd0aCwgMik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayh0
ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0sIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGFwcGVuZERhdGEodGVzdCwgbWVkaWFTb3VyY2UsIGRhdGFBLCBkYXRhQiwgY2FsbGJhY2sp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRp
YVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdOworICAgICAgICAgICAgICAgIHZhciBzb3Vy
Y2VCdWZmZXJCID0gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXTsKKworICAgICAg
ICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyQSwgInVwZGF0ZSIpOworICAg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyQSwgInVwZGF0ZWVuZCIp
OworICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlckEuYXBwZW5kQnVmZmVyKGRhdGFBKTsKKwor
ICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyQiwgInVwZGF0ZSIp
OworICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyQiwgInVwZGF0
ZWVuZCIpOworICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlckIuYXBwZW5kQnVmZmVyKGRhdGFC
KTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9u
KCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biB0aW1lUmFuZ2VzVG9TdHJpbmcocmFuZ2VzKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgdmFyIHMgPSAieyI7CisgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhbmdl
cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgIHMgKz0gIiBbIiArIHJhbmdlcy5z
dGFydChpKS50b0ZpeGVkKDMpICsgIiwgIiArIHJhbmdlcy5lbmQoaSkudG9GaXhlZCgzKSArICIp
IjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIHJldHVybiBzICsgIiB9IjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gYXNzZXJ0QnVmZmVyZWRFcXVhbHMo
b2JqLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgdmFyIGFjdHVhbCA9IHRpbWVSYW5nZXNUb1N0cmluZyhvYmouYnVmZmVyZWQpOworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZWRpYVNvdXJjZURlbXV4ZWRUZXN0KGZ1bmN0
aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIGRhdGFBLCBkYXRhQikgeworICAg
ICAgICAgICAgICAgIGFwcGVuZERhdGEodGVzdCwgbWVkaWFTb3VyY2UsIGRhdGFBLCBkYXRhQiwg
ZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAu
MDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2
ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IFswLjAwMCwgMi4wMDEpIH0iLCAibWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJl
ZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IFswLjAwMCwgMi4wMDEpIH0iLCAibWVkaWFFbGVtZW50
LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJl
YW0oKTsKKworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBbMC4wMDAsIDIuMDIzKSB9IiwgIm1lZGlh
U291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSwgInsg
WzAuMDAwLCAyLjAwMSkgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdIik7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwg
InsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAg
ICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0sICJEZW11eGVkIGNvbnRlbnQgd2l0aCBkaWZmZXJlbnQgbGVuZ3RocyIpOworCisgICAg
ICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVk
aWFTb3VyY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBh
dXNlKCk7CisgICAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdl
cnJvcicpOworICAgICAgICAgICAgICAgIHRlc3QuZW5kT25FdmVudChtZWRpYUVsZW1lbnQsICdl
bmRlZCcpOworCisgICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RB
bmREYXRhKHRlc3QsICJ3ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBz
LTEwa2ZyLW1hbmlmZXN0Lmpzb24iLCBmdW5jdGlvbih0eXBlLCBkYXRhKQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNl
LmFkZFNvdXJjZUJ1ZmZlcih0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5l
eHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhKTsKKworICAgICAgICAgICAgICAgICAg
ICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlh
U291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IFswLjAwMCwgMi4wMDQpIH0iLCAibWVk
aWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyBbMC4wMDAsIDIuMDA0KSB9
IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgICAgICBt
ZWRpYVNvdXJjZS5lbmRPZlN0cmVhbSgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBb
MC4wMDAsIDIuMDIzKSB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVu
dCwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgIk11eGVkIHRyYWNrcyB3aXRo
IGRpZmZlcmVudCBsZW5ndGhzIik7CisKKworICAgICAgICAgICAgbWVkaWFTb3VyY2VEZW11eGVk
VGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0
YUIpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmREYXRhKHRlc3QsIG1lZGlhU291cmNlLCBkYXRh
QSwgZGF0YUIuc3ViYXJyYXkoMCwgMzE4KSwgZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZl
cmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IH0iLCAibWVk
aWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAgICAgICAgICAgICAgICBh
c3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IH0iLCAibWVkaWFFbGVtZW50LmJ1
ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0o
KTsKKworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJj
ZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBbMC4wMDAsIDIuMDIzKSB9IiwgIm1lZGlhU291
cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSwgInsgfSIs
ICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdIik7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgfSIsICJtZWRpYUVsZW1l
bnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJEZW11eGVkIGNvbnRlbnQgd2l0aCBhbiBl
bXB0eSBidWZmZXJlZCByYW5nZSBvbiBvbmUgU291cmNlQnVmZmVyIik7CisKKyAgICAgICAgICAg
IG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJj
ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsK
KyAgICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7
CisgICAgICAgICAgICAgICAgdGVzdC5lbmRPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2VuZGVkJyk7
CisKKyAgICAgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEo
dGVzdCwgIndlYm0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnIt
bWFuaWZlc3QuanNvbiIsIGZ1bmN0aW9uKHR5cGUsIGRhdGEpCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291
cmNlQnVmZmVyKHR5cGUpOworICAgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNv
dXJjZUJ1ZmZlciwgInVwZGF0ZSIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIpOworICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2VCdWZmZXIuYXBwZW5kQnVmZmVyKGRhdGEuc3ViYXJyYXkoMCwgNDA1MikpOworCisgICAgICAg
ICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRF
cXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgfSIsICJtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IH0iLCAibWVkaWFFbGVtZW50LmJ1
ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3Ry
ZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1l
ZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IH0iLCAibWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVm
ZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIp
OworCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiTXV4ZWQgY29u
dGVudCBlbXB0eSBidWZmZXJlZCByYW5nZXMuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNsb3NlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM4NWNlMWJkOTM4NzdkNTc5ZjM0MmNlNzM3MjFiY2FkYzIzZDJl
ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAor
IAorUEFTUyBUZXN0IGF0dHJpYnV0ZSB2YWx1ZXMgb24gYSBjbG9zZWQgTWVkaWFTb3VyY2Ugb2Jq
ZWN0LiAKK1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9zZWQuIAorUEFTUyBU
ZXN0IHJlbW92ZVNvdXJjZUJ1ZmZlcigpIHdoaWxlIGNsb3NlZC4gCitQQVNTIFRlc3QgZW5kT2ZT
dHJlYW0oKSB3aGlsZSBjbG9zZWQuIAorUEFTUyBUZXN0IHNldHRpbmcgZHVyYXRpb24gd2hpbGUg
Y2xvc2VkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
OTMzMWRmZDQwNzUxYWNmMDUxNjNkOWJlNmRkNDdmOGU2OWNlYjE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y2xvc2VkLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291
cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhy
ZWY9Jy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBt
ZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMubGVuZ3RoLCAwLCAic291cmNlQnVmZmVycyBp
cyBlbXB0eSIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2
ZVNvdXJjZUJ1ZmZlcnMubGVuZ3RoLCAwLCAiYWN0aXZlU291cmNlQnVmZmVycyBpcyBlbXB0eSIp
OworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJj
bG9zZWQiLCAicmVhZHlTdGF0ZSBpcyAnY2xvc2VkJyIpOworICAgICAgICAgICAgICBhc3NlcnRf
dHJ1ZShOdW1iZXIuaXNOYU4obWVkaWFTb3VyY2UuZHVyYXRpb24pLCAiZHVyYXRpb24gaXMgTmFO
Iik7CisgICAgICAgICAgfSwgIlRlc3QgYXR0cmlidXRlIHZhbHVlcyBvbiBhIGNsb3NlZCBNZWRp
YVNvdXJjZSBvYmplY3QuIik7CisKKyAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpCisgICAgICAg
ICAgeworICAgICAgICAgICAgICB2YXIgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsK
KyAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLAorICAgICAg
ICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigndmlk
ZW8vd2VibTtjb2RlY3M9InZwOCInKTsgfSwKKyAgICAgICAgICAgICAgICAgICJhZGRTb3VyY2VC
dWZmZXIoKSB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gY2xvc2VkLiIpOworICAgICAgICAgIH0s
ICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdoaWxlIGNsb3NlZC4iKTsKKworICAgICAgICAgIG1l
ZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkK
KyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBWT1JCSVNfVFlQRSA9ICd2aWRlby93ZWJt
O2NvZGVjcz0idm9yYmlzIic7CisgICAgICAgICAgICAgIHZhciBBQUNfVFlQRSA9ICd2aWRlby9t
cDQ7Y29kZWNzPSJtcDRhLjQwLjIiJzsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhVHlwZSA9IE1l
ZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChWT1JCSVNfVFlQRSkgPyBWT1JCSVNfVFlQRSA6IEFB
Q19UWVBFOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRk
U291cmNlQnVmZmVyKG1lZGlhVHlwZSk7CisKKyAgICAgICAgICAgICAgLy8gU2V0dXAgYSBoYW5k
bGVyIHRvIHJ1biB3aGVuIHRoZSBNZWRpYVNvdXJjZSBjbG9zZXMuCisgICAgICAgICAgICAgIG1l
ZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3NvdXJjZWNsb3NlJywgdGVzdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24gKGV2ZW50KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMubGVuZ3RoLCAwLCAic291cmNlQnVm
ZmVycyBpcyBlbXB0eSIpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMg
aXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uu
cmVhZHlTdGF0ZSwgImNsb3NlZCIsICJyZWFkeVN0YXRlIGlzICdjbG9zZWQnIik7CisgICAgICAg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RGb3VuZEVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgbWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVmZmVyKHNvdXJj
ZUJ1ZmZlcik7IH0sCisgICAgICAgICAgICAgICAgICAgICAgInJlbW92ZVNvdXJjZUJ1ZmZlcigp
IHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBjbG9zZWQuIik7CisgICAgICAgICAgICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSkpOworCisgICAgICAgICAgICAgIC8vIFRyaWdn
ZXIgdGhlIE1lZGlhU291cmNlIHRvIGNsb3NlLgorICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQu
c3JjID0gIiI7CisgICAgICAgICAgfSwgIlRlc3QgcmVtb3ZlU291cmNlQnVmZmVyKCkgd2hpbGUg
Y2xvc2VkLiIpOworCisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5lbmRPZlN0cmVhbSgpOyB9LAorICAgICAgICAg
ICAgICAgICAgImVuZE9mU3RyZWFtKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGNsb3NlZC4i
KTsKKyAgICAgICAgICB9LCAiVGVzdCBlbmRPZlN0cmVhbSgpIHdoaWxlIGNsb3NlZC4iKTsKKwor
CisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
dmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBtZWRpYVNvdXJjZS5kdXJhdGlvbiA9IDEwOyB9LAorICAgICAgICAgICAgICAgICAgIlNl
dHRpbmcgZHVyYXRpb24gdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGNsb3NlZC4iKTsKKyAgICAg
ICAgICB9LCAiVGVzdCBzZXR0aW5nIGR1cmF0aW9uIHdoaWxlIGNsb3NlZC4iKTsKKworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC1hLWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYS1iaXRyYXRlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmRlZjAzZGVjNmVkNzBkZjdkMmU5Y2U4NzA1YWQyOWRj
MGU1Njk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYS1iaXRyYXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IGF1ZGlvLW9ubHkgYml0
cmF0ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTogYXVkaW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIiBp
cyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LWEtYml0cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYS1iaXRyYXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjY0MGE2NDg4MjlkMDY0OWE2ZjUyMDVhZjVkY2E4ODFjNjM3MTdlMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEs
MTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRp
diBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291
cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgImEtMTI4ay00NDEwMEh6LTFjaCIsICJhLTE5Mmst
NDQxMDBIei0xY2giLCAiVGVzdHMgbXA0IGF1ZGlvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiIpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0
LWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmN2YwNjBhMzM3YWVk
Mjg5ZWZhY2ViZTdkNzE5YjczODY3NTJiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZB
SUwgVGVzdHMgbXA0IGF1ZGlvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50
LiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEsbXA0YS40MC4yIiBp
cyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LWF2LWF1ZGlvLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWF1ZGlv
LWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmQyYjRkMGZhZjU2MGQyYjFhNDZiYWU5OGI4MzFi
OTY0MmFiZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtYXVkaW8tYml0
cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJj
ZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgImF2LTM4NGst
NDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJhdi00NDhrLTQ0MTAwSHotMWNoLTY0
MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IGF1ZGlvIGJpdHJhdGUgY2hhbmdlcyBpbiBt
dWx0aXBsZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFtZXNpemUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZDdiNjFlMTkzOTA5MTViNDlhMjVmM2M0NmViYmY5MGQ0MTA2M2IzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IGZyYW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBsZXhl
ZCBjb250ZW50LiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEsbXA0
YS40MC4yIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYt
ZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ1ZThhZTFkNTdiMzYwNGI5NWMwZWRhMGE1YWU4
NjNlNzI0ZDY0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6
ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11
dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgImF2LTM4NGstNDQx
MDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmciIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0
ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IGZyYW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBs
ZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LWF2LXZpZGVvLWJpdHJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZkNjA5YmUxOTRhNzcwY2U5MGFhYzdmODYxNDc0YzM3MTBiMGViNjUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBpbiBt
dWx0aXBsZXhlZCBjb250ZW50LiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40
RDQwMDEsbXA0YS40MC4yIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LXZpZGVvLWJpdHJhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2UtbXA0LWF2LXZpZGVvLWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmRmOWQwY2UyZDM5
MjA0MDE2Mzc2MzMyZTEyN2JkZjUxZTg0NzVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mi
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVz
dCgibXA0IiwgImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJhdi02
NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IHZpZGVvIGJp
dHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJp
dHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MWY3MTRlYzBlNDk1NzljYmRiZTU2ZDI2MWJhNWY5ODFmNzk2YzQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IHZpZGVvLW9ubHkgYml0cmF0ZSBjaGFu
Z2VzLiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEiIGlzIHN1cHBv
cnRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1t
cDQtdi1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJpdHJhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NjJkNzY5NjNjYTZhYjU1NDA0ZWY3Mjc1NDcwMmJiYzBmZDQxZTkyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25m
aWdDaGFuZ2VUZXN0KCJtcDQiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAidi0yNTZr
LTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IHZpZGVvLW9ubHkgYml0cmF0ZSBjaGFu
Z2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEwZWNiNWZlMTRiNjcw
OTQ2Y2MwNzViNzEwNDFmZWY4Mjg4ZDYzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Ut
bXA0LXYtZnJhbWVyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVz
dHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTogdmlkZW8v
bXA0O2NvZGVjcz0iYXZjMS40RDQwMDEiIGlzIHN1cHBvcnRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EyYTM1NWY4ZTU3ZmUy
YjM0MjliNjFkNzcxZDliNTIwMTA3MzlhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Ut
bXA0LXYtZnJhbWVyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJtcDQi
LCAidi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmciIsICJ2LTEyOGstMzIweDI0MC0zMGZwcy0xMGtm
ciIsICJUZXN0cyBtcDQgdmlkZW8tb25seSBmcmFtZSByYXRlIGNoYW5nZXMuIik7CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Ut
bXA0LXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXpl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTBkNGVhNWZhMTY2MDQ5ZDdmZjZkMTY1NTY2OTBi
YzM2OWM2MmZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorRkFJTCBUZXN0cyBtcDQgdmlkZW8tb25s
eSBmcmFtZSBzaXplIGNoYW5nZXMuIGFzc2VydF90cnVlOiB2aWRlby9tcDQ7Y29kZWNzPSJhdmMx
LjRENDAwMSIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1m
cmFtZXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGJmOTRjYjhiYWQ1MDVmNzljMmUzMDZkNWIwMDRh
ZDdlMGRhYmZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUu
aHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRp
bC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJ2LTEyOGstMzIweDI0
MC0zMGZwcy0xMGtmciIsICJ2LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmciIsICJUZXN0cyBtcDQg
dmlkZW8tb25seSBmcmFtZSBzaXplIGNoYW5nZXMuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWEtYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGI0YmVjYTk1ZDM1OTc5MTBlOTc1M2U5MzJhNzU1ZTM0YzFmNGZlMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIGF1ZGlvLW9ubHkgYml0cmF0ZSBjaGFuZ2Vz
LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWEtYml0cmF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNo
YW5nZS13ZWJtLWEtYml0cmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZTIzZDQ3ZDAwNTViOTU0Njc3
YjBlNmE0M2U0M2QxN2RmNGIyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0t
YS1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlh
c291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgImEt
MTI4ay00NDEwMEh6LTFjaCIsICJhLTE5MmstNDQxMDBIei0xY2giLCAiVGVzdHMgd2VibSBhdWRp
by1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwZTY0ZDc1OGY4YjJhM2IyNTljNzE1NDFlZDJhZDMzOWU1OTkwOGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtYXVkaW8tYml0cmF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gYXVkaW8gYml0cmF0
ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tYXYtYXVkaW8tYml0cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlv
LWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTk4YzcxYWJiZDk2YTZmZjAxNzNiYjBiNWRjMTVj
YjcyYTRiMzcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJp
dHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3Vy
Y2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAiYXYtMzg0
ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgImF2LTQ0OGstNDQxMDBIei0xY2gt
NjQweDQ4MC0zMGZwcy0xMGtmciIsICJUZXN0cyB3ZWJtIGF1ZGlvIGJpdHJhdGUgY2hhbmdlcyBp
biBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1mcmFtZXNpemUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM3NGUwYjFjYzc1MTAwZWNkZGExMDFiY2I2NzgxZTQ4YWUwOTA4NGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2VibSBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVs
dGlwbGV4ZWQgY29udGVudC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1mcmFt
ZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1mcmFtZXNpemUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MWMzM2YxZWVhOTA1NTU0ZmE1ZDU3NjY5Mzg4YjI0NDdiMDY1NDUzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1lc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29u
ZmlnQ2hhbmdlVGVzdCgid2VibSIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMt
MTBrZnIiLCAiYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3Rz
IHdlYm0gZnJhbWUgc2l6ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIik7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2Utd2VibS1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1h
di12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Zjc4OTQ1ZDc1ZmIyYTYx
YmM3YmNlNGVmNzRiY2UyMWY0MmRhNmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13
ZWJtLWF2LXZpZGVvLWJpdHJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFT
UyBUZXN0cyB3ZWJtIHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50
LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LXZpZGVvLWJpdHJhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzExNzhi
YzQwZmIwOGJlNTJmMjA2NGMwZmJkNWIwOTI2YmMxYjVhOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdD
aGFuZ2VUZXN0KCJ3ZWJtIiwgImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ciIsICJhdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2Vi
bSB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS13ZWJtLXYtYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1iaXRyYXRl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmM3MGJkZmQ2NWYwMTJmMmJjOTcyMTNjOTlhNGJj
Y2Y0MmY0NWE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gdmlkZW8tb25s
eSBiaXRyYXRlIGNoYW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1iaXRy
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjI3
N2FiNWVkZDk3ZGNjNDViZTdlYmY3NGZjNjdhMTUyZjc1ZjM5MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2Utd2VibS12LWJpdHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5n
ZVRlc3QoIndlYm0iLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAidi0yNTZrLTMyMHgy
NDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4i
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2Vi
bS12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU2YWY2MWY0MjBlYmUzYjY3
YjBjZGNmODc4ZmI5NjBiODJhMThhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2Vi
bS12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNTIFRlc3Rz
IHdlYm0gdmlkZW8tb25seSBmcmFtZSByYXRlIGNoYW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lcmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZGZmZDk2MzFkZjNjZDNiMDA4Y2YwMmM0ZTMyZDljNTUxNDY4
ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbApA
QCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAidi0xMjhrLTMyMHgyNDAtMjRm
cHMtOGtmciIsICJ2LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmciIsICJUZXN0cyB3ZWJtIHZpZGVv
LW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXNpemUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41YTYwNTA0YzI3YTZmMWVmNzVmNjUzMDZkMmQyNjFiZjk4N2FlNGQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2VibSB2aWRlby1vbmx5IGZyYW1lIHNpemUgY2hh
bmdlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFlZTBkMWFkOWNh
MDAxY2JlYmI2ZjkzZWI1OTVmZjlhYzk3NjhkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2Utd2VibS12LWZyYW1lc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAg
ICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgi
d2VibSIsICJ2LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmciIsICJ2LTEyOGstNjQweDQ4MC0zMGZw
cy0xMGtmciIsICJUZXN0cyB3ZWJtIHZpZGVvLW9ubHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiIpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4MzQyNDgwYWJkYTJlNmQy
MmE2ZDdkMDRlNDA1NmE2OWEwYmM3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5q
cwpAQCAtMCwwICsxLDYwIEBACitmdW5jdGlvbiBhcHBlbmRCdWZmZXIodGVzdCwgc291cmNlQnVm
ZmVyLCBkYXRhKQoreworICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRl
Iik7CisgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiKTsKKyAg
ICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGRhdGEpOworfQorCitmdW5jdGlvbiBtZWRpYVNv
dXJjZUNvbmZpZ0NoYW5nZVRlc3QoZGlyZWN0b3J5LCBpZEEsIGlkQiwgZGVzY3JpcHRpb24pCit7
CisgICAgdmFyIG1hbmlmZXN0RmlsZW5hbWVBID0gZGlyZWN0b3J5ICsgIi90ZXN0LSIgKyBpZEEg
KyAiLW1hbmlmZXN0Lmpzb24iOworICAgIHZhciBtYW5pZmVzdEZpbGVuYW1lQiA9IGRpcmVjdG9y
eSArICIvdGVzdC0iICsgaWRCICsgIi1tYW5pZmVzdC5qc29uIjsKKyAgICBtZWRpYXNvdXJjZV90
ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgeworICAg
ICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsKKyAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRp
YUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50
LCAnZW5kZWQnKTsKKworICAgICAgICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERh
dGEodGVzdCwgbWFuaWZlc3RGaWxlbmFtZUEsIGZ1bmN0aW9uKHR5cGVBLCBkYXRhQSkKKyAgICAg
ICAgeworICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRl
c3QsIG1hbmlmZXN0RmlsZW5hbWVCLCBmdW5jdGlvbih0eXBlQiwgZGF0YUIpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlQSwgdHlwZUIsICJNZWRpYSBm
b3JtYXQgdHlwZXMgbWF0Y2giKTsKKworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIg
PSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodHlwZUEpOworCisgICAgICAgICAgICAgICAg
YXBwZW5kQnVmZmVyKHRlc3QsIHNvdXJjZUJ1ZmZlciwgZGF0YUEpOworCisgICAgICAgICAgICAg
ICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBzZWNvbmQgYnVmZmVyIHN0YXJ0aW5n
IGF0IDAuNSBzZWNvbmQuCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci50aW1lc3Rh
bXBPZmZzZXQgPSAwLjU7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBz
b3VyY2VCdWZmZXIsIGRhdGFCKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgZmlyc3QgYnVmZmVyIHN0YXJ0aW5n
IGF0IDEgc2Vjb25kLgorICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIudGltZXN0YW1w
T2Zmc2V0ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kQnVmZmVyKHRlc3QsIHNvdXJj
ZUJ1ZmZlciwgZGF0YUEpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAg
dGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBzZWNvbmQgYnVmZmVyIHN0YXJ0aW5nIGF0
IDEuNSBzZWNvbmQuCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci50aW1lc3RhbXBP
ZmZzZXQgPSAxLjU7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3Vy
Y2VCdWZmZXIsIGRhdGFCKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
IHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIC8vIFRydW5jYXRlIHRoZSBwcmVzZW50YXRpb24gdG8gYSBk
dXJhdGlvbiBvZiAyIHNlY29uZHMuCisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmR1
cmF0aW9uID0gMjsKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0o
KTsKKworICAgICAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQucGxheSgpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0sIGRlc2NyaXB0
aW9uLCB7IHRpbWVvdXQ6IDEwMDAwIH0gKTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDVlMGM2MDAxYjdlMGIyZDBmN2E0MzQ4MDMxYzlkZmYxZTE1Nzc4YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWlzLXR5cGUtc3VwcG9ydGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBU
ZXN0IGludmFsaWQgdHlwZXMgCitQQVNTIFRlc3QgdmFsaWQgV2ViTSB0eXBlcyAKK0ZBSUwgVGVz
dCB2YWxpZCBNUDQgdHlwZXMgYXNzZXJ0X3RydWU6IFR5cGUgInZpZGVvL21wNDtjb2RlY3M9ImF2
YzEuNGQwMDFlIiIgc3VwcG9ydGVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWlzLXR5cGUtc3VwcG9ydGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFjNGZjYTU2YzQxN2FjOTZhOGFlZmQwOWQyMzcyMWIyOTk4NDA1NjgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1pcy10eXBlLXN1cHBvcnRlZC5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJl
bD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgdmFyIGludmFsaWRUeXBlcyA9IFsKKyAgICAgICAgICAgICAgICAgIC8vIElu
dmFsaWQgTUlNRSBmb3JtYXQuCisgICAgICAgICAgICAgICAgICAndmlkZW8nLAorICAgICAgICAg
ICAgICAgICAgJ3ZpZGVvLycsCisgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibScsCisgICAg
ICAgICAgICAgICAgICAndmlkZW8vd2VibTsnLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dl
Ym07Y29kZWNzJywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0nLAorICAg
ICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSInLAorICAgICAgICAgICAgICAgICAg
J3ZpZGVvL3dlYm07Y29kZWNzPSIiJywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2Nv
ZGVjcz0iLCInLAorCisgICAgICAgICAgICAgICAgICAvLyBNaXNtYXRjaCBiZXR3ZWVuIG1ham9y
IHR5cGUgYW5kIGNvZGVjIElECisgICAgICAgICAgICAgICAgICAnYXVkaW8vd2VibTtjb2RlY3M9
InZwOCInLAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFl
IicsCisKKyAgICAgICAgICAgICAgICAgIC8vIE1pc21hdGNoIGJldHdlZW4gbWlub3IgdHlwZSBh
bmQgY29kZWMgSUQuCisgICAgICAgICAgICAgICAgICAnYXVkaW8vbXA0O2NvZGVjcz0idm9yYmlz
IicsCisgICAgICAgICAgICAgICAgICAnYXVkaW8vd2VibTtjb2RlY3M9Im1wNGEuNDAuMiInLAor
ICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9InZwOCInLAorICAgICAgICAgICAg
ICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSJtcDRhLjQwLjIiJywKKworICAgICAgICAgICAgICAg
ICAgLy8gSW52YWxpZCBjb2RlYyBJRHMuCisgICAgICAgICAgICAgICAgICAnYXVkaW8vd2VibTtj
b2RlY3M9Im1wNGEiJywKKyAgICAgICAgICAgICAgICAgICdhdWRpby93ZWJtO2NvZGVjcz0ibXA0
YS40MCInLAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJtcDRhLjQwLiIn
LAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNjcuMyInCisgICAg
ICAgICAgICAgIF07CisKKyAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnZhbGlk
VHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoTWVkaWFT
b3VyY2UuaXNUeXBlU3VwcG9ydGVkKGludmFsaWRUeXBlc1tpXSksICJUeXBlIFwiIiArIGludmFs
aWRUeXBlc1tpXSArICJcIiBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICB9LCAiVGVzdCBpbnZhbGlkIHR5cGVzIik7CisKKyAgICAgICAgICB0ZXN0KGZ1bmN0aW9u
ICgpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgdmFsaWRUeXBlcyA9IFsKKyAgICAg
ICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgiJywKKyAgICAgICAgICAgICAg
ICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2b3JiaXMiJywKKyAgICAgICAgICAgICAgICAgICAg
J3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIicsCisgICAgICAgICAgICAgICAgICAgICd2
aWRlby93ZWJtO2NvZGVjcz0idm9yYmlzLCB2cDgiJywKKyAgICAgICAgICAgICAgICAgICAgJ2F1
ZGlvL3dlYm07Y29kZWNzPSJ2b3JiaXMiJywKKyAgICAgICAgICAgICAgXTsKKworICAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQodmFsaWRU
eXBlc1tpXSksICJUeXBlIFwiIiArIHZhbGlkVHlwZXNbaV0gKyAiXCIgc3VwcG9ydGVkIik7Cisg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAiVGVzdCB2YWxpZCBXZWJNIHR5cGVzIik7CisK
KyAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2
YXIgdmFsaWRUeXBlcyA9IFsKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9
ImF2YzEuNGQwMDFlIicsIC8vIEguMjY0IE1haW4gUHJvZmlsZSBsZXZlbCAzLjAKKyAgICAgICAg
ICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNDIwMDFlIicsIC8vIEguMjY0IEJh
c2VsaW5lIFByb2ZpbGUgbGV2ZWwgMy4wCisgICAgICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7
Y29kZWNzPSJtcDRhLjQwLjIiJywgICAvLyBNUEVHNCBBQUMtTEMKKyAgICAgICAgICAgICAgICAg
ICAgJ2F1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNDAuNSInLCAgIC8vIE1QRUc0IEhFLUFBQworICAg
ICAgICAgICAgICAgICAgICAnYXVkaW8vbXA0O2NvZGVjcz0ibXA0YS42NyInLCAgICAgLy8gTVBF
RzIgQUFDLUxDCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJtcDRhLjQw
LjIiJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFl
LG1wNGEuNDAuMiInLAorICAgICAgICAgICAgICAgICAgICAndmlkZW8vbXA0O2NvZGVjcz0ibXA0
YS40MC4yICwgYXZjMS40ZDAwMWUgIicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7
Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQwLjUiJywKKyAgICAgICAgICAgICAgICAgICAgJ3Zp
ZGVvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFlLG1wNGEuNDAuNSInLAorICAgICAgICAgICAgICBd
OworCisgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsaWRUeXBlcy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1
cHBvcnRlZCh2YWxpZFR5cGVzW2ldKSwgIlR5cGUgXCIiICsgdmFsaWRUeXBlc1tpXSArICJcIiBz
dXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0sICJUZXN0IHZhbGlkIE1Q
NCB0eXBlcyIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1tdWx0aXBsZS1hdHRhY2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lOWY3ODIyNjVlNTMxZTEwZDhmZDdiYmQxNGU0MTNjZjMzNGM0Njcw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKyAKK1BBU1MgVGVzdCBleGFjdGx5IG9uZSBzdWNjZWVkcyB3aGVuIHR3byBNZWRpYUVs
ZW1lbnRzIGF0dGFjaCB0byBzYW1lIE1lZGlhU291cmNlIAorUEFTUyBUZXN0IHRoYXQgTWVkaWFT
b3VyY2UgY2FuIHJlYXR0YWNoIGlmIGNsb3NlZCBmaXJzdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUt
YXR0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1tdWx0aXBsZS1hdHRhY2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2M3YmRjNjkxNTI0
MDk4NzlmYjFiODk0OWUwMDQxM2Q1ODc4NjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0
YWNoLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJj
ZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVm
PScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAg
ICAgICBmdW5jdGlvbiB0d29NZWRpYUVsZW1lbnRUZXN0KHRlc3RGdW5jdGlvbiwgZGVzY3JpcHRp
b24pCisgICAgICAgICAgeworICAgICAgICAgICAgICBtZWRpYV90ZXN0KGZ1bmN0aW9uKHRlc3Qp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHZhciBmaXJzdE1lZGlhVGFnID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgICAgICAgICAgIHZhciBz
ZWNvbmRNZWRpYVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpcnN0TWVkaWFUYWcpOworICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWNvbmRNZWRpYVRhZyk7
CisKKyAgICAgICAgICAgICAgICAgIC8vIE92ZXJsb2FkIGRvbmUoKSBzbyB0aGF0IGVsZW1lbnRz
IGFkZGVkIHRvIHRoZSBkb2N1bWVudCBjYW4gYmUKKyAgICAgICAgICAgICAgICAgIC8vIHJlbW92
ZWQuCisgICAgICAgICAgICAgICAgICB2YXIgcmVtb3ZlTWVkaWFFbGVtZW50cyA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgICB2YXIgb2xkVGVzdERvbmUgPSB0ZXN0LmRvbmUuYmluZCh0ZXN0KTsK
KyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAocmVtb3ZlTWVkaWFFbGVtZW50cykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNlY29u
ZE1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChmaXJzdE1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3Zl
TWVkaWFFbGVtZW50cyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICBvbGRUZXN0RG9uZSgpOworICAgICAgICAgICAgICAgICAgfTsKKworICAg
ICAgICAgICAgICAgICAgdGVzdEZ1bmN0aW9uKHRlc3QsIGZpcnN0TWVkaWFUYWcsIHNlY29uZE1l
ZGlhVGFnKTsKKyAgICAgICAgICAgICAgfSwgZGVzY3JpcHRpb24pOworICAgICAgICAgIH0KKwor
ICAgICAgICAgIHR3b01lZGlhRWxlbWVudFRlc3QoZnVuY3Rpb24odGVzdCwgZmlyc3RNZWRpYVRh
Zywgc2Vjb25kTWVkaWFUYWcpCisgICAgICAgICAgeworICAgICAgICAgICAgICAvLyBXaGVuIGF0
dGFjaG1lbnQgb2YgbWVkaWFTb3VyY2UgdG8gdHdvIE1lZGlhRWxlbWVudHMgaXMgZG9uZQorICAg
ICAgICAgICAgICAvLyB3aXRob3V0IGFuIGludGVydmVuaW5nIHN0YWJsZSBzdGF0ZSwgZXhhY3Rs
eSBvbmUgb2YgdGhlIHR3bworICAgICAgICAgICAgICAvLyBNZWRpYUVsZW1lbnRzIHNob3VsZCBz
dWNjZXNzZnVsbHkgYXR0YWNoLCBhbmQgdGhlIG90aGVyIG9uZQorICAgICAgICAgICAgICAvLyBz
aG91bGQgZ2V0IGVycm9yIGV2ZW50IGR1ZSB0byBtZWRpYVNvdXJjZSBhbHJlYWR5IGluICdvcGVu
JworICAgICAgICAgICAgICAvLyByZWFkeVN0YXRlLgorICAgICAgICAgICAgICB2YXIgbWVkaWFT
b3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNl
VVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChtZWRpYVNvdXJjZSk7CisgICAgICAgICAgICAgIHZh
ciBnb3RTb3VyY2VPcGVuID0gZmFsc2U7CisgICAgICAgICAgICAgIHZhciBnb3RFcnJvciA9IGZh
bHNlOworICAgICAgICAgICAgICB2YXIgZG9uZUlmRmluaXNoZWQgPSB0ZXN0LnN0ZXBfZnVuYyhm
dW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlmIChnb3RTb3Vy
Y2VPcGVuICYmIGdvdEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgdmFyIGVycm9ySGFuZGxlciA9IHRlc3Qu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
IGZpcnN0TWVkaWFUYWcucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIp
OworICAgICAgICAgICAgICAgICAgc2Vjb25kTWVkaWFUYWcucmVtb3ZlRXZlbnRMaXN0ZW5lcign
ZXJyb3InLCBlcnJvckhhbmRsZXIpOworCisgICAgICAgICAgICAgICAgICB2YXIgZXZlbnRUYXJn
ZXQgPSBlLnRhcmdldDsKKyAgICAgICAgICAgICAgICAgIHZhciBvdGhlclRhcmdldDsKKyAgICAg
ICAgICAgICAgICAgIGlmIChldmVudFRhcmdldCA9PSBmaXJzdE1lZGlhVGFnKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgb3RoZXJUYXJnZXQgPSBzZWNvbmRNZWRpYVRhZzsKKyAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVu
dFRhcmdldCwgc2Vjb25kTWVkaWFUYWcsICdFcnJvciB0YXJnZXQgY2hlY2snKTsKKyAgICAgICAg
ICAgICAgICAgICAgICBvdGhlclRhcmdldCA9IGZpcnN0TWVkaWFUYWc7CisgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGV2ZW50VGFyZ2V0LmVycm9y
ICE9IG51bGwsICdFcnJvciBzdGF0ZSBvbiBvbmUgdGFnJyk7CisgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50VGFyZ2V0LmVycm9yLmNvZGUsIE1lZGlhRXJyb3IuTUVESUFfRVJS
X1NSQ19OT1RfU1VQUE9SVEVELCAnRXhwZWN0ZWQgZXJyb3IgY29kZScpOworICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhvdGhlclRhcmdldC5lcnJvciwgbnVsbCwgJ05vIGVycm9yIG9u
IG90aGVyIHRhZycpOworCisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50VGFy
Z2V0Lm5ldHdvcmtTdGF0ZSwgSFRNTE1lZGlhRWxlbWVudC5ORVRXT1JLX05PX1NPVVJDRSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RhZyB3aXRoIGVycm9yIHN0YXRlIG5ldHdv
cmtTdGF0ZScpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvdGhlclRhcmdldC5u
ZXR3b3JrU3RhdGUsIEhUTUxNZWRpYUVsZW1lbnQuTkVUV09SS19MT0FESU5HLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnVGFnIHdpdGhvdXQgZXJyb3Igc3RhdGUgbmV0d29ya1N0
YXRlJyk7CisKKyAgICAgICAgICAgICAgICAgIGdvdEVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgIGRvbmVJZkZpbmlzaGVkKCk7CisgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UsICdzb3VyY2VvcGVuJywgJ0FuIGF0dGFj
aG1lbnQgc3VjY2VlZGVkJyk7CisgICAgICAgICAgICAgIGZpcnN0TWVkaWFUYWcuYWRkRXZlbnRM
aXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIpOworICAgICAgICAgICAgICBzZWNvbmRNZWRp
YVRhZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGVycm9ySGFuZGxlcik7CisKKyAgICAgICAg
ICAgICAgZmlyc3RNZWRpYVRhZy5zcmMgPSBtZWRpYVNvdXJjZVVSTDsKKyAgICAgICAgICAgICAg
c2Vjb25kTWVkaWFUYWcuc3JjID0gbWVkaWFTb3VyY2VVUkw7CisKKyAgICAgICAgICAgICAgdGVz
dC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICdvcGVu
JywgJ1NvdXJjZSBpcyBvcGVuZWQnKTsKKyAgICAgICAgICAgICAgICAgIGdvdFNvdXJjZU9wZW4g
PSB0cnVlOworICAgICAgICAgICAgICAgICAgZG9uZUlmRmluaXNoZWQoKTsKKyAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgfSwgJ1Rlc3QgZXhhY3RseSBvbmUgc3VjY2VlZHMgd2hlbiB0d28g
TWVkaWFFbGVtZW50cyBhdHRhY2ggdG8gc2FtZSBNZWRpYVNvdXJjZScpOworCisgICAgICAgICAg
bWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNl
KSB7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwg
J29wZW4nLCAnU291cmNlIG9wZW4nKTsKKyAgICAgICAgICAgICAgLy8gU2V0IHRoZSB0YWcncyBz
cmMgYXR0cmlidXRlLiAgVGhpcyBzaG91bGQgY2xvc2UgbWVkaWFTb3VyY2UsCisgICAgICAgICAg
ICAgIC8vIHJlYXR0YWNoIGl0IHRvIHRoZSB0YWcsIGFuZCBpbml0aWF0ZSBzb3VyY2UgcmVvcGVu
aW5nLgorICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAnc291cmNl
b3BlbicsICdTb3VyY2UgYXR0YWNoZWQgYWdhaW4nKTsKKyAgICAgICAgICAgICAgbWVkaWFFbGVt
ZW50LnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UpOworICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICdjbG9zZWQnLCAnU291cmNl
IGNsb3NlZCcpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1
bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAnb3BlbicsICdTb3VyY2UgcmVvcGVuZWQnKTsKKyAg
ICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICB9LCAnVGVzdCB0aGF0IE1lZGlhU291cmNlIGNhbiByZWF0dGFjaCBpZiBjbG9zZWQgZmlyc3Qn
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxh
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1wbGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmMyNmEwNmVhMTZk
NTJhMjdjZGUwYjAxZjFiZWNhMjM1NWFjZjE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNTIFRlc3Qgbm9ybWFsIHBsYXliYWNrIGNhc2Ug
d2l0aCBNZWRpYVNvdXJjZSBBUEkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXkuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNzhlNjZhOWQyZjVmMjViZjdmZTc1NzFkM2VhM2ZmYmU2OTY1NDE0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtcGxheS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJt
ZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNo
ZWV0JyBocmVmPScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVu
dCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2
ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7CisgICAgICAgICAgICAgIHRlc3QuZW5kT25FdmVu
dChtZWRpYUVsZW1lbnQsICdlbmRlZCcpOworCisgICAgICAgICAgICAgIHZhciBtZWRpYVR5cGUg
PSAndmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiJzsKKyAgICAgICAgICAgICAgdmFyIG1l
ZGlhVVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC53ZWJtJzsK
KyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcihtZWRpYVR5cGUpOworCisgICAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmlu
YXJ5RGF0YSh0ZXN0LCBtZWRpYVVSTCwgZnVuY3Rpb24oZGF0YSkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZWVu
ZCcsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5kdXJhdGlvbiA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgICAg
ICBtZWRpYUVsZW1lbnQucGxheSgpOworICAgICAgICAgICAgICAgICAgfSkpOworICAgICAgICAg
ICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhKTsKKyAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgfSwgIlRlc3Qgbm9ybWFsIHBsYXliYWNrIGNhc2Ugd2l0aCBNZWRpYVNv
dXJjZSBBUEkiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2Utc291cmNlYnVmZmVybGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mOWJkNjkxZWNhMGUwMDJhYjc3N2FjNzExZDA3MjUwOTJiY2Q5
Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACisgCitQQVNTIFRlc3QgU291cmNlQnVmZmVyTGlzdCBldmVudCBkaXNwYXRjaGlu
Zy4gCitQQVNTIFRlc3QgdGhhdCBvbmx5IDEgcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50IGZpcmVz
IG9uIGVhY2ggU291cmNlQnVmZmVyTGlzdCB3aGVuIHRoZSBNZWRpYVNvdXJjZSBjbG9zZXMuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWQ0ODdhMWFkOGYxNDFhYTgzM2FhNjMwZTA5MGQ0MWYxMmRmMjE2MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QuaHRtbApAQCAtMCwwICsxLDkzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisKKyAgICAgICAgPGxp
bmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mn
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICBmdW5jdGlvbiB2ZXJpZnlTb3VyY2VCdWZmZXJM
aXN0cyhtZWRpYVNvdXJjZSwgZXhwZWN0ZWQpCisgICAgICAgICAgeworICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMubGVuZ3RoLCBleHBlY3RlZC5s
ZW5ndGgsICJzb3VyY2VCdWZmZXJzIGxlbmd0aCIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMubGVuZ3RoLCBleHBlY3RlZC5sZW5n
dGgsICJhY3RpdmVTb3VyY2VCdWZmZXJzIGxlbmd0aCIpOworICAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzW2ldLCBleHBlY3RlZFtpXSwgIlZl
cmlmeWluZyBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzWyIgKyBpICsgIl0iKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbaV0s
IGV4cGVjdGVkW2ldLCAiVmVyaWZ5aW5nIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNb
IiArIGkgKyAiXSIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAg
bWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNl
KQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJj
ZS5zb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZm
ZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAg
ICAgICAgdmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVk
aWFTb3VyY2VVdGlsLlZJREVPX09OTFlfVFlQRSk7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VC
dWZmZXJCID0gbnVsbDsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50
cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJz
b3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlh
U291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMsICJhZGRzb3VyY2VidWZmZXIiLCAiYWN0aXZlU291
cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyQiA9IG1lZGlhU291
cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0aWwuQVVESU9fT05MWV9UWVBFKTsKKwor
ICAgICAgICAgICAgICAgICAgdmVyaWZ5U291cmNlQnVmZmVyTGlzdHMobWVkaWFTb3VyY2UsIFtz
b3VyY2VCdWZmZXJBLCBzb3VyY2VCdWZmZXJCXSk7CisgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzLCAicmVtb3Zlc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1
ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uu
c291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7Cisg
ICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIoc291cmNlQnVm
ZmVyQSk7CisKKyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlh
U291cmNlLCBbc291cmNlQnVmZmVyQl0pOworCisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVj
dEV2ZW50KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMsICJhZGRzb3VyY2VidWZmZXIiLCAic291
cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLlZJREVPX09OTFlfVFlQRSk7CisKKyAg
ICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291
cmNlQnVmZmVyQiwgc291cmNlQnVmZmVyQV0pOworICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICB9LCAiVGVzdCBTb3VyY2VCdWZmZXJMaXN0IGV2ZW50IGRpc3BhdGNoaW5nLiIp
OworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1l
bnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgInNvdXJj
ZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZl
cnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VC
dWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAg
ICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRk
c291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdmFy
IHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VV
dGlsLlZJREVPX09OTFlfVFlQRSk7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJCID0g
bWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5BVURJT19PTkxZX1RZ
UEUpOworCisgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNl
LCBbc291cmNlQnVmZmVyQSwgc291cmNlQnVmZmVyQl0pOworCisgICAgICAgICAgICAgIHRlc3Qu
d2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgdmVyaWZ5U291cmNlQnVmZmVyTGlzdHMobWVkaWFTb3VyY2UsIFtzb3VyY2VC
dWZmZXJBLCBzb3VyY2VCdWZmZXJCXSk7CisKKyAgICAgICAgICAgICAgICAgIC8vIEZvcmNlIHRo
ZSBtZWRpYSBlbGVtZW50IHRvIGNsb3NlIHRoZSBNZWRpYVNvdXJjZSBvYmplY3QuCisgICAgICAg
ICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZl
cnMsICJyZW1vdmVzb3VyY2VidWZmZXIiLCAiYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAi
cmVtb3Zlc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAg
IHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UsICJzb3VyY2VjbG9zZSIsICJtZWRpYVNvdXJj
ZSBjbG9zaW5nIik7CisgICAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQuc3JjID0gIiI7Cisg
ICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZl
bnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAiY2xvc2VkIiwgIm1lZGlhU291cmNlIGlz
IGNsb3NlZC4iKTsKKworICAgICAgICAgICAgICAgICAgdmVyaWZ5U291cmNlQnVmZmVyTGlzdHMo
bWVkaWFTb3VyY2UsIFtdKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCB0aGF0IG9ubHkgMSByZW1vdmVzb3VyY2Vi
dWZmZXIgZXZlbnQgZmlyZXMgb24gZWFjaCBTb3VyY2VCdWZmZXJMaXN0IHdoZW4gdGhlIE1lZGlh
U291cmNlIGNsb3Nlcy4iKTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS11dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTZmMDEyZjRkOTlkYzYx
M2RiZGYzYWMwN2YyMjRkNTE4MDk3ZTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtdXRpbC5qcwpAQCAtMCww
ICsxLDIyOSBAQAorKGZ1bmN0aW9uKHdpbmRvdykgeworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFu
YWdlciA9IGZ1bmN0aW9uKHRlc3QpCisgICAgeworICAgICAgICB0aGlzLnRlc3RfID0gdGVzdDsK
KyAgICAgICAgdGhpcy5ldmVudFRhcmdldExpc3RfID0gW107CisgICAgICAgIHRoaXMud2FpdENh
bGxiYWNrc18gPSBbXTsKKyAgICB9OworCisgICAgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnBy
b3RvdHlwZS5leHBlY3RFdmVudCA9IGZ1bmN0aW9uKG9iamVjdCwgZXZlbnROYW1lLCBkZXNjcmlw
dGlvbikKKyAgICB7CisgICAgICAgIHZhciBldmVudEluZm8gPSB7ICd0YXJnZXQnOiBvYmplY3Qs
ICd0eXBlJzogZXZlbnROYW1lLCAnZGVzY3JpcHRpb24nOiBkZXNjcmlwdGlvbn07CisgICAgICAg
IHZhciBleHBlY3RhdGlvbnMgPSB0aGlzLmdldEV4cGVjdGF0aW9uc18ob2JqZWN0KTsKKyAgICAg
ICAgZXhwZWN0YXRpb25zLnB1c2goZXZlbnRJbmZvKTsKKworICAgICAgICB2YXIgdCA9IHRoaXM7
CisgICAgICAgIHZhciB3YWl0SGFuZGxlciA9IHRoaXMudGVzdF8uc3RlcF9mdW5jKGZ1bmN0aW9u
KCkgeyB0LmhhbmRsZVdhaXRDYWxsYmFja18oKTsgfSk7CisgICAgICAgIHZhciBldmVudEhhbmRs
ZXIgPSB0aGlzLnRlc3RfLnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkKKyAgICAgICAgeworICAg
ICAgICAgICAgb2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudEhhbmRs
ZXIpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gZXhwZWN0YXRpb25zWzBdOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQsIGV4cGVjdGVkLnRhcmdldCwgIkV2ZW50
IHRhcmdldCBtYXRjaC4iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudHlwZSwg
ZXhwZWN0ZWQudHlwZSwgIkV2ZW50IHR5cGVzIG1hdGNoLiIpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhldmVudEluZm8uZGVzY3JpcHRpb24sIGV4cGVjdGVkLmRlc2NyaXB0aW9uLCAiRGVz
Y3JpcHRpb25zIG1hdGNoIGZvciAnIiArICBldmVudC50eXBlICsgIicuIik7CisKKyAgICAgICAg
ICAgIGV4cGVjdGF0aW9ucy5zaGlmdCgxKTsKKyAgICAgICAgICAgIGlmICh0LndhaXRDYWxsYmFj
a3NfLmxlbmd0aCA+IDApCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCh3YWl0SGFuZGxlciwg
MCk7CisgICAgICAgIH0pOworICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5h
bWUsIGV2ZW50SGFuZGxlcik7CisgICAgfTsKKworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdl
ci5wcm90b3R5cGUud2FpdEZvckV4cGVjdGVkRXZlbnRzID0gZnVuY3Rpb24oY2FsbGJhY2spCisg
ICAgeworICAgICAgICB0aGlzLndhaXRDYWxsYmFja3NfLnB1c2goY2FsbGJhY2spOworICAgICAg
ICBzZXRUaW1lb3V0KHRoaXMuaGFuZGxlV2FpdENhbGxiYWNrXy5iaW5kKHRoaXMpLCAwKTsKKyAg
ICB9OworCisgICAgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5leHBlY3RpbmdF
dmVudHMgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMuZXZlbnRUYXJnZXRMaXN0Xy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHRoaXMu
ZXZlbnRUYXJnZXRMaXN0X1tpXS5leHBlY3RhdGlvbnMubGVuZ3RoID4gMCkgeworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBFdmVudEV4cGVjdGF0aW9uc01hbmFnZXIucHJvdG90
eXBlLmhhbmRsZVdhaXRDYWxsYmFja18gPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAo
dGhpcy53YWl0Q2FsbGJhY2tzXy5sZW5ndGggPT0gMCB8fCB0aGlzLmV4cGVjdGluZ0V2ZW50cygp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgY2FsbGJhY2sgPSB0aGlzLndhaXRD
YWxsYmFja3NfLnNoaWZ0KDEpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH07CisKKyAgICBF
dmVudEV4cGVjdGF0aW9uc01hbmFnZXIucHJvdG90eXBlLmdldEV4cGVjdGF0aW9uc18gPSBmdW5j
dGlvbih0YXJnZXQpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZXZl
bnRUYXJnZXRMaXN0Xy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGluZm8gPSB0aGlz
LmV2ZW50VGFyZ2V0TGlzdF9baV07CisgICAgICAgICAgICBpZiAoaW5mby50YXJnZXQgPT0gdGFy
Z2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZm8uZXhwZWN0YXRpb25zOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBleHBlY3RhdGlvbnMgPSBbXTsKKyAgICAg
ICAgdGhpcy5ldmVudFRhcmdldExpc3RfLnB1c2goeyAndGFyZ2V0JzogdGFyZ2V0LCAnZXhwZWN0
YXRpb25zJzogZXhwZWN0YXRpb25zIH0pOworICAgICAgICByZXR1cm4gZXhwZWN0YXRpb25zOwor
ICAgIH07CisKKyAgICBmdW5jdGlvbiBsb2FkRGF0YV8odGVzdCwgdXJsLCBjYWxsYmFjaywgaXNC
aW5hcnkpCisgICAgeworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworICAgICAgICByZXF1ZXN0Lm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7CisgICAgICAgIGlmIChp
c0JpbmFyeSkgeworICAgICAgICAgICAgcmVxdWVzdC5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZm
ZXInOworICAgICAgICB9CisgICAgICAgIHJlcXVlc3Qub25sb2FkID0gdGVzdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1
cyAhPSAyMDApIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVk
IHN0YXR1cyBjb2RlIDogIiArIHJlcXVlc3Quc3RhdHVzKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSByZXF1ZXN0LnJl
c3BvbnNlOworICAgICAgICAgICAgaWYgKGlzQmluYXJ5KSB7CisgICAgICAgICAgICAgICAgcmVz
cG9uc2UgPSBuZXcgVWludDhBcnJheShyZXNwb25zZSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBjYWxsYmFjayhyZXNwb25zZSk7CisgICAgICAgIH0pOworICAgICAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkKKyAgICAgICAgeworICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBlcnJvciIpOworICAgICAgICB9KTsK
KyAgICAgICAgcmVxdWVzdC5zZW5kKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3Blbk1lZGlh
U291cmNlXyh0ZXN0LCBtZWRpYVRhZywgY2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIgbWVk
aWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgdmFyIG1lZGlhU291cmNlVVJM
ID0gVVJMLmNyZWF0ZU9iamVjdFVSTChtZWRpYVNvdXJjZSk7CisKKyAgICAgICAgdmFyIGV2ZW50
SGFuZGxlciA9IHRlc3Quc3RlcF9mdW5jKG9uU291cmNlT3Blbik7CisgICAgICAgIGZ1bmN0aW9u
IG9uU291cmNlT3BlbihldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgbWVkaWFTb3VyY2Uu
cmVtb3ZlRXZlbnRMaXN0ZW5lcignc291cmNlb3BlbicsIGV2ZW50SGFuZGxlcik7CisgICAgICAg
ICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKG1lZGlhU291cmNlVVJMKTsKKyAgICAgICAgICAgIGNh
bGxiYWNrKG1lZGlhU291cmNlKTsKKyAgICAgICAgfQorCisgICAgICAgIG1lZGlhU291cmNlLmFk
ZEV2ZW50TGlzdGVuZXIoJ3NvdXJjZW9wZW4nLCBldmVudEhhbmRsZXIpOworICAgICAgICBtZWRp
YVRhZy5zcmMgPSBtZWRpYVNvdXJjZVVSTDsKKyAgICB9CisKKyAgICB2YXIgTWVkaWFTb3VyY2VV
dGlsID0ge307CisKKyAgICBNZWRpYVNvdXJjZVV0aWwubG9hZFRleHREYXRhID0gZnVuY3Rpb24o
dGVzdCwgdXJsLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGxvYWREYXRhXyh0ZXN0LCB1cmws
IGNhbGxiYWNrLCBmYWxzZSk7CisgICAgfTsKKworICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmlu
YXJ5RGF0YSA9IGZ1bmN0aW9uKHRlc3QsIHVybCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBs
b2FkRGF0YV8odGVzdCwgdXJsLCBjYWxsYmFjaywgdHJ1ZSk7CisgICAgfTsKKworICAgIE1lZGlh
U291cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0YSA9IGZ1bmN0aW9uKHRlc3QsIG1hbmlmZXN0
RmlsZW5hbWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIGJhc2VVUkwgPSAnL21lZGlh
L3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvJzsKKyAgICAgICAgdmFyIG1hbmlmZXN0VVJMID0gYmFz
ZVVSTCArIG1hbmlmZXN0RmlsZW5hbWU7CisgICAgICAgIE1lZGlhU291cmNlVXRpbC5sb2FkVGV4
dERhdGEodGVzdCwgbWFuaWZlc3RVUkwsIGZ1bmN0aW9uKG1hbmlmZXN0VGV4dCkKKyAgICAgICAg
eworICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0gSlNPTi5wYXJzZShtYW5pZmVzdFRleHQpOwor
CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobWFu
aWZlc3QudHlwZSksIG1hbmlmZXN0LnR5cGUgKyAiIGlzIHN1cHBvcnRlZC4iKTsKKworICAgICAg
ICAgICAgdmFyIG1lZGlhVVJMID0gYmFzZVVSTCArIG1hbmlmZXN0LnVybDsKKyAgICAgICAgICAg
IE1lZGlhU291cmNlVXRpbC5sb2FkQmluYXJ5RGF0YSh0ZXN0LCBtZWRpYVVSTCwgZnVuY3Rpb24o
bWVkaWFEYXRhKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKG1hbmlm
ZXN0LnR5cGUsIG1lZGlhRGF0YSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
fTsKKworICAgIGZ1bmN0aW9uIGdldEZpcnN0U3VwcG9ydGVkVHlwZSh0eXBlTGlzdCkKKyAgICB7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgIGlmIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQodHlwZUxpc3RbaV0pKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0eXBlTGlzdFtpXTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gIiI7CisgICAgfQorCisgICAgdmFyIGF1ZGlvT25seVR5cGVzID0gWydhdWRpby93ZWJt
O2NvZGVjcz0idm9yYmlzIicsICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjIiJ107CisgICAg
dmFyIHZpZGVvT25seVR5cGVzID0gWyd2aWRlby93ZWJtO2NvZGVjcz0idnA4IicsICd2aWRlby9t
cDQ7Y29kZWNzPSJhdmMxLjRENDAwMSInXTsKKyAgICB2YXIgYXVkaW9WaWRlb1R5cGVzID0gWyd2
aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInLCAndmlkZW8vbXA0O2NvZGVjcz0ibXA0YS40
MC4yIiddOworICAgIE1lZGlhU291cmNlVXRpbC5BVURJT19PTkxZX1RZUEUgPSBnZXRGaXJzdFN1
cHBvcnRlZFR5cGUoYXVkaW9Pbmx5VHlwZXMpOworICAgIE1lZGlhU291cmNlVXRpbC5WSURFT19P
TkxZX1RZUEUgPSBnZXRGaXJzdFN1cHBvcnRlZFR5cGUodmlkZW9Pbmx5VHlwZXMpOworICAgIE1l
ZGlhU291cmNlVXRpbC5BVURJT19WSURFT19UWVBFID0gZ2V0Rmlyc3RTdXBwb3J0ZWRUeXBlKGF1
ZGlvVmlkZW9UeXBlcyk7CisKKyAgICBmdW5jdGlvbiBhZGRFeHRyYVRlc3RNZXRob2RzKHRlc3Qp
CisgICAgeworICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50ID0gZnVuY3Rpb24ob2JqZWN0LCBldmVu
dE5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2
ZW50TmFtZSwgdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBldmVudCAnIiArIGV2
ZW50TmFtZSArICInIik7CisgICAgICAgICAgICB9KSk7CisgICAgICAgIH07CisKKyAgICAgICAg
dGVzdC5lbmRPbkV2ZW50ID0gZnVuY3Rpb24ob2JqZWN0LCBldmVudE5hbWUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIG9iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGVzdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsgdGVzdC5kb25lKCk7IH0pKTsKKyAgICAgICAgfTsKKwor
ICAgICAgICB0ZXN0LmV2ZW50RXhwZWN0YXRpb25zXyA9IG5ldyBFdmVudEV4cGVjdGF0aW9uc01h
bmFnZXIodGVzdCk7CisgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQgPSBmdW5jdGlvbihvYmplY3Qs
IGV2ZW50TmFtZSwgZGVzY3JpcHRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIHRlc3QuZXZl
bnRFeHBlY3RhdGlvbnNfLmV4cGVjdEV2ZW50KG9iamVjdCwgZXZlbnROYW1lLCBkZXNjcmlwdGlv
bik7CisgICAgICAgIH07CisKKyAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMgPSBm
dW5jdGlvbihjYWxsYmFjaykKKyAgICAgICAgeworICAgICAgICAgICAgdGVzdC5ldmVudEV4cGVj
dGF0aW9uc18ud2FpdEZvckV4cGVjdGVkRXZlbnRzKGNhbGxiYWNrKTsKKyAgICAgICAgfTsKKwor
ICAgICAgICB2YXIgb2xkVGVzdERvbmUgPSB0ZXN0LmRvbmUuYmluZCh0ZXN0KTsKKyAgICAgICAg
dGVzdC5kb25lID0gZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGVzdC5z
dGF0dXMgPT0gdGVzdC5QQVNTKQorICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZSh0ZXN0LmV2
ZW50RXhwZWN0YXRpb25zXy5leHBlY3RpbmdFdmVudHMoKSwgIk5vIHBlbmRpbmcgZXZlbnQgZXhw
ZWN0YXRpb25zLiIpOworICAgICAgICAgICAgb2xkVGVzdERvbmUoKTsKKyAgICAgICAgfTsKKyAg
ICB9OworCisgICAgd2luZG93WydNZWRpYVNvdXJjZVV0aWwnXSA9IE1lZGlhU291cmNlVXRpbDsK
KyAgICB3aW5kb3dbJ21lZGlhX3Rlc3QnXSA9IGZ1bmN0aW9uKHRlc3RGdW5jdGlvbiwgZGVzY3Jp
cHRpb24sIG9wdGlvbnMpCisgICAgeworICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsK
KyAgICAgICAgcmV0dXJuIGFzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdCkKKyAgICAgICAgeworICAg
ICAgICAgICAgYWRkRXh0cmFUZXN0TWV0aG9kcyh0ZXN0KTsKKyAgICAgICAgICAgIHRlc3RGdW5j
dGlvbih0ZXN0KTsKKyAgICAgICAgfSwgZGVzY3JpcHRpb24sIG9wdGlvbnMpOworICAgIH07Cisg
ICAgd2luZG93WydtZWRpYXNvdXJjZV90ZXN0J10gPSBmdW5jdGlvbih0ZXN0RnVuY3Rpb24sIGRl
c2NyaXB0aW9uLCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1lZGlhX3Rlc3QoZnVu
Y3Rpb24odGVzdCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG1lZGlhVGFnID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQobWVkaWFUYWcpOworCisgICAgICAgICAgICAvLyBPdmVybG9hZCBkb25lKCkgc28g
dGhhdCBlbGVtZW50IGFkZGVkIHRvIHRoZSBkb2N1bWVudCBjYW4gYmUgcmVtb3ZlZC4KKyAgICAg
ICAgICAgIHRlc3QucmVtb3ZlTWVkaWFFbGVtZW50XyA9IHRydWU7CisgICAgICAgICAgICB2YXIg
b2xkVGVzdERvbmUgPSB0ZXN0LmRvbmUuYmluZCh0ZXN0KTsKKyAgICAgICAgICAgIHRlc3QuZG9u
ZSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAodGVzdC5y
ZW1vdmVNZWRpYUVsZW1lbnRfKSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQobWVkaWFUYWcpOworICAgICAgICAgICAgICAgICAgICB0ZXN0LnJlbW92ZU1l
ZGlhRWxlbWVudF8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
b2xkVGVzdERvbmUoKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIG9wZW5NZWRpYVNv
dXJjZV8odGVzdCwgbWVkaWFUYWcsIGZ1bmN0aW9uKG1lZGlhU291cmNlKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHRlc3RGdW5jdGlvbih0ZXN0LCBtZWRpYVRhZywgbWVkaWFTb3Vy
Y2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sIGRlc2NyaXB0aW9uLCBvcHRpb25zKTsK
KworICAgIH07Cit9KSh3aW5kb3cpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLW9iamVjdHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVk
aWEtc291cmNlLW9iamVjdHMtZXhwZWN0ZWQudHh0CmluZGV4IGIwM2RiZTQzNGI4NWRmNDczYjNk
ZDYzMDJhZDM0YmMyZDc2OTBhMDkuLmRmNmNiYjg3MWU0NjkzZTQwMTAwYzllNTA1MjljZTI1ZDhi
ZTkxMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2Jq
ZWN0cy1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRlc3RzIE1lZGlhU291cmNlLCBTb3Vy
Y2VCdWZmZXIsIGFuZCBTb3VyY2VCdWZmZXJMaXN0IG9iamVjdHMuCiAKIEVWRU5UKHdlYmtpdHNv
dXJjZW9wZW4pCiBUZXN0IE1lZGlhU291cmNlIG9iamVjdCB0eXBlCi1FWFBFQ1RFRCAobWVkaWFT
b3VyY2UgPT0gJ1tvYmplY3QgTWVkaWFTb3VyY2VdJykgT0sKK0VYUEVDVEVEIChtZWRpYVNvdXJj
ZSA9PSAnW29iamVjdCBXZWJLaXRNZWRpYVNvdXJjZV0nKSBPSwogRVhQRUNURUQgKG1lZGlhU291
cmNlIGluc3RhbmNlb2Ygd2luZG93LldlYktpdE1lZGlhU291cmNlID09ICd0cnVlJykgT0sKIAog
QWRkIGEgU291cmNlQnVmZmVyCkBAIC0xMSw3ICsxMSw3IEBAIFJVTihzZWdtZW50SGVscGVyLmFk
ZFNvdXJjZUJ1ZmZlcigpKQogRVhQRUNURUQgKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMubGVu
Z3RoID09ICcxJykgT0sKIAogVGVzdCBTb3VyY2VCdWZmZXJMaXN0IG9iamVjdCB0eXBlOgotRVhQ
RUNURUQgKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMgPT0gJ1tvYmplY3QgU291cmNlQnVmZmVy
TGlzdF0nKSBPSworRVhQRUNURUQgKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMgPT0gJ1tvYmpl
Y3QgV2ViS2l0U291cmNlQnVmZmVyTGlzdF0nKSBPSwogRVhQRUNURUQgKG1lZGlhU291cmNlLnNv
dXJjZUJ1ZmZlcnMgaW5zdGFuY2VvZiB3aW5kb3cuV2ViS2l0U291cmNlQnVmZmVyTGlzdCA9PSAn
dHJ1ZScpIE9LCiAKIFRlc3QgU291cmNlQnVmZmVyIG9iamVjdCB0eXBlCkBAIC0zOSw3ICszOSw3
IEBAIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzWzBdLmJ1ZmZlcmVkLmVuZCgx
KSA+ICc1JykgT0sKIFJlbW92ZSBTb3VyY2VCdWZmZXIKIFJVTihtZWRpYVNvdXJjZS5yZW1vdmVT
b3VyY2VCdWZmZXIoc2VnbWVudEhlbHBlci5zb3VyY2VCdWZmZXIpKQogRVhQRUNURUQgKG1lZGlh
U291cmNlLnNvdXJjZUJ1ZmZlcnMubGVuZ3RoID09ICcwJykgT0sKLUVYUEVDVEVEIChtZWRpYVNv
dXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2JqZWN0IFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKK0VY
UEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2JqZWN0IFdlYktpdFNvdXJj
ZUJ1ZmZlckxpc3RdJykgT0sKIAogVGVzdCB0aGF0IGFwcGVuZCgpIHRocm93cyBhbiBlcnJvciBh
ZnRlciBTb3VyY2VCdWZmZXIgaGFzIGJlZW4gcmVtb3ZlZC4KIEdvdCBleHBlY3RlZCBleGNlcHRp
b24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvZ2Vu
ZXJhdGUtY29uZmlnLWNoYW5nZS10ZXN0cy5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9nZW5lcmF0ZS1jb25maWctY2hhbmdlLXRlc3RzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRlZGI5MjViNDQ4YWYzNjA0MWE0Y2EzZjAwZWQyOGYxMmFiNzA2OGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9t
ZWRpYS1zb3VyY2UvZ2VuZXJhdGUtY29uZmlnLWNoYW5nZS10ZXN0cy5weQpAQCAtMCwwICsxLDIy
NiBAQAorIyEvdXNyL2Jpbi9weXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiIKK1RoaXMgaXMg
YSBzY3JpcHQgdGhhdCBnZW5lcmF0ZXMgdGhlIGNvbnRlbnQgYW5kIEhUTUwgZmlsZXMgZm9yIE1l
ZGlhIFNvdXJjZQorY29kZWMgY29uZmlnIGNoYW5nZSBMYXlvdXRUZXN0cy4KKyIiIgoraW1wb3J0
IGpzb24KK2ltcG9ydCBvcworCitEVVJBVElPTiA9IDIKK01FRElBX0ZPUk1BVFMgPSBbJ3dlYm0n
LCAnbXA0J10KK0VOQ09ERV9TRVRUSU5HUyA9IFsKKyAgICAjIyBWaWRlby1vbmx5IGZpbGVzCisg
ICAgIyBGcmFtZSByYXRlIGNoYW5nZXMKKyAgICB7J2ZzJzogJzMyMHgyNDAnLCAnZnInOiAyNCwg
J2tmcic6IDgsICdjJzogJyNmZjAwMDAnLCAndmJyJzogMTI4LCAnYWJyJzogMCwgJ2Fzcic6IDAs
ICdhY2gnOiAwLCAnYWZyZXEnOiAwfSwKKyAgICB7J2ZzJzogJzMyMHgyNDAnLCAnZnInOiAzMCwg
J2tmcic6IDEwLCAnYyc6ICcjZmYwMDAwJywgJ3Zicic6IDEyOCwgJ2Ficic6IDAsICdhc3InOiAw
LCAnYWNoJzogMCwgJ2FmcmVxJzogMH0sCisgICAgIyBGcmFtZSBzaXplIGNoYW5nZQorICAgIHsn
ZnMnOiAnNjQweDQ4MCcsICdmcic6IDMwLCAna2ZyJzogMTAsICdjJzogJyMwMGZmMDAnLCAndmJy
JzogMTI4LCAnYWJyJzogMCwgJ2Fzcic6IDAsICdhY2gnOiAwLCAnYWZyZXEnOiAwfSwKKyAgICAj
IEJpdHJhdGUgY2hhbmdlCisgICAgeydmcyc6ICczMjB4MjQwJywgJ2ZyJzogMzAsICdrZnInOiAx
MCwgJ2MnOiAnI2ZmMDBmZicsICd2YnInOiAyNTYsICdhYnInOiAwLCAnYXNyJzogMCwgJ2FjaCc6
IDAsICdhZnJlcSc6IDB9LAorCisgICAgIyMgQXVkaW8tb25seSBmaWxlcworICAgICMgQml0cmF0
ZS9Db2RlYm9vayBjaGFuZ2VzCisgICAgeydmcyc6ICcweDAnLCAnZnInOiAwLCAna2ZyJzogMCwg
J2MnOiAnIzAwMDAwMCcsICd2YnInOiAwLCAnYWJyJzogMTI4LCAnYXNyJzogNDQxMDAsICdhY2gn
OiAxLCAnYWZyZXEnOiAyMDAwfSwKKyAgICB7J2ZzJzogJzB4MCcsICdmcic6IDAsICdrZnInOiAw
LCAnYyc6ICcjMDAwMDAwJywgJ3Zicic6IDAsICdhYnInOiAxOTIsICdhc3InOiA0NDEwMCwgJ2Fj
aCc6IDEsICdhZnJlcSc6IDQwMDB9LAorCisgICAgIyMgQXVkaW8tVmlkZW8gZmlsZXMKKyAgICAj
IEZyYW1lIHNpemUgY2hhbmdlLgorICAgIHsnZnMnOiAnMzIweDI0MCcsICdmcic6IDMwLCAna2Zy
JzogMTAsICdjJzogJyNmZjAwMDAnLCAndmJyJzogMjU2LCAnYWJyJzogMTI4LCAnYXNyJzogNDQx
MDAsICdhY2gnOiAxLCAnYWZyZXEnOiAyMDAwfSwKKyAgICB7J2ZzJzogJzY0MHg0ODAnLCAnZnIn
OiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjMDBmZjAwJywgJ3Zicic6IDI1NiwgJ2Ficic6IDEyOCwg
J2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogMjAwMH0sCisgICAgIyBBdWRpbyBiaXRy
YXRlIGNoYW5nZS4KKyAgICB7J2ZzJzogJzY0MHg0ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAn
Yyc6ICcjMDBmZjAwJywgJ3Zicic6IDI1NiwgJ2Ficic6IDE5MiwgJ2Fzcic6IDQ0MTAwLCAnYWNo
JzogMSwgJ2FmcmVxJzogNDAwMH0sCisgICAgIyBWaWRlbyBiaXRyYXRlIGNoYW5nZS4KKyAgICB7
J2ZzJzogJzY0MHg0ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjMDBmZmZmJywgJ3Zi
cic6IDUxMiwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogMjAw
MH0sCitdCisKK0NPTkZJR19DSEFOR0VfVEVTVFMgPSBbCisgICAgWyJ2LWZyYW1lcmF0ZSIsIDAs
IDEsICJUZXN0cyAlcyB2aWRlby1vbmx5IGZyYW1lIHJhdGUgY2hhbmdlcy4iXSwKKyAgICBbInYt
ZnJhbWVzaXplIiwgMSwgMiwgIlRlc3RzICVzIHZpZGVvLW9ubHkgZnJhbWUgc2l6ZSBjaGFuZ2Vz
LiJdLAorICAgIFsidi1iaXRyYXRlIiwgMSwgMywgIlRlc3RzICVzIHZpZGVvLW9ubHkgYml0cmF0
ZSBjaGFuZ2VzLiJdLAorICAgIFsiYS1iaXRyYXRlIiwgNCwgNSwgIlRlc3RzICVzIGF1ZGlvLW9u
bHkgYml0cmF0ZSBjaGFuZ2VzLiJdLAorICAgIFsiYXYtZnJhbWVzaXplIiwgNiwgNywgIlRlc3Rz
ICVzIGZyYW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiJdLAorICAgIFsi
YXYtYXVkaW8tYml0cmF0ZSIsIDcsIDgsICJUZXN0cyAlcyBhdWRpbyBiaXRyYXRlIGNoYW5nZXMg
aW4gbXVsdGlwbGV4ZWQgY29udGVudC4iXSwKKyAgICBbImF2LXZpZGVvLWJpdHJhdGUiLCA3LCA5
LCAiVGVzdHMgJXMgdmlkZW8gYml0cmF0ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQu
Il0KK10KKworQ09ERUNfSU5GTyA9IHsKKyAgICAibXA0IjogeyJhdWRpbyI6ICJtcDRhLjQwLjIi
LCAidmlkZW8iOiAiYXZjMS40RDQwMDEifSwKKyAgICAid2VibSI6IHsiYXVkaW8iOiAidm9yYmlz
IiwgInZpZGVvIjogInZwOCJ9Cit9CisKK0hUTUxfVEVNUExBVEUgPSAiIiI8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3Qo
IiUobWVkaWFfZm9ybWF0KXMiLCAiJShpZEEpcyIsICIlKGlkQilzIiwgIiUoZGVzY3JpcHRpb24p
cyIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CisiIiIKKworZGVm
IHJ1bihjbWRfbGluZSk6CisgICAgb3Muc3lzdGVtKCIgIi5qb2luKGNtZF9saW5lKSkKKworZGVm
IGdlbmVyYXRlX21hbmlmZXN0KGZpbGVuYW1lLCBtZWRpYV9maWxlbmFtZSwgbWVkaWFfZm9ybWF0
LCBoYXNfYXVkaW8sIGhhc192aWRlbyk6CisgICAgbWFqb3JfdHlwZSA9ICJhdWRpbyIKKyAgICBp
ZiBoYXNfdmlkZW86CisgICAgICAgIG1ham9yX3R5cGUgPSAidmlkZW8iCisKKyAgICBjb2RlY3Mg
PSBbXQorICAgIGlmIGhhc192aWRlbzoKKyAgICAgICAgY29kZWNzLmFwcGVuZChDT0RFQ19JTkZP
W21lZGlhX2Zvcm1hdF1bInZpZGVvIl0pCisKKyAgICBpZiBoYXNfYXVkaW86CisgICAgICAgIGNv
ZGVjcy5hcHBlbmQoQ09ERUNfSU5GT1ttZWRpYV9mb3JtYXRdWyJhdWRpbyJdKQorCisgICAgbWlt
ZXR5cGUgPSAiJXMvJXM7Y29kZWNzPVwiJXNcIiIgJSAobWFqb3JfdHlwZSwgbWVkaWFfZm9ybWF0
LCAiLCIuam9pbihjb2RlY3MpKQorCisgICAgbWFuaWZlc3QgPSB7ICd1cmwnOiBtZWRpYV9maWxl
bmFtZSwgJ3R5cGUnOiBtaW1ldHlwZX0KKworICAgIGYgPSBvcGVuKGZpbGVuYW1lLCAid2IiKQor
ICAgIGYud3JpdGUoanNvbi5kdW1wcyhtYW5pZmVzdCwgaW5kZW50PTQsIHNlcGFyYXRvcnM9KCcs
JywgJzogJykpKQorICAgIGYuY2xvc2UoKQorCitkZWYgZ2VuZXJhdGVfdGVzdF9odG1sKG1lZGlh
X2Zvcm1hdCwgY29uZmlnX2NoYW5nZV90ZXN0cywgZW5jb2RpbmdfaWRzKToKKyAgICBmb3IgdGVz
dF9pbmZvIGluIGNvbmZpZ19jaGFuZ2VfdGVzdHM6CisgICAgICAgIGZpbGVuYW1lID0gIi4uLy4u
L21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLSVzLSVzLmh0bWwiICUgKG1l
ZGlhX2Zvcm1hdCwgdGVzdF9pbmZvWzBdKQorICAgICAgICBodG1sID0gSFRNTF9URU1QTEFURSAl
IHsnbWVkaWFfZm9ybWF0JzogbWVkaWFfZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2lkQSc6IGVuY29kaW5nX2lkc1t0ZXN0X2luZm9bMV1dLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2lkQic6IGVuY29kaW5nX2lkc1t0ZXN0X2luZm9bMl1dLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogIHRlc3RfaW5m
b1szXSAlIChtZWRpYV9mb3JtYXQpfQorICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgIndiIikK
KyAgICAgICAgZi53cml0ZShodG1sKQorICAgICAgICBmLmNsb3NlKCkKKworCitkZWYgbWFpbigp
OgorICAgIGVuY29kaW5nX2lkcyA9IFtdCisKKyAgICBmb3IgbWVkaWFfZm9ybWF0IGluIE1FRElB
X0ZPUk1BVFM6CisgICAgICAgIHJ1bihbIm1rZGlyICIsIG1lZGlhX2Zvcm1hdF0pCisKKyAgICAg
ICAgZm9yIHNldHRpbmdzIGluIEVOQ09ERV9TRVRUSU5HUzoKKyAgICAgICAgICAgIHZpZGVvX2Jp
dHJhdGUgPSBzZXR0aW5nc1sndmJyJ10KKyAgICAgICAgICAgIGhhc192aWRlbyA9ICh2aWRlb19i
aXRyYXRlID4gMCkKKworICAgICAgICAgICAgYXVkaW9fYml0cmF0ZSA9IHNldHRpbmdzWydhYnIn
XQorICAgICAgICAgICAgaGFzX2F1ZGlvID0gKGF1ZGlvX2JpdHJhdGUgPiAwKQorICAgICAgICAg
ICAgYml0cmF0ZSA9IHZpZGVvX2JpdHJhdGUgKyBhdWRpb19iaXRyYXRlCisKKyAgICAgICAgICAg
IGZyYW1lX3NpemUgPSBzZXR0aW5nc1snZnMnXQorICAgICAgICAgICAgZnJhbWVfcmF0ZSA9IHNl
dHRpbmdzWydmciddCisgICAgICAgICAgICBrZXlmcmFtZV9yYXRlID0gc2V0dGluZ3NbJ2tmcidd
CisgICAgICAgICAgICBjb2xvciA9IHNldHRpbmdzWydjJ10KKworICAgICAgICAgICAgc2FtcGxl
X3JhdGUgPSBzZXR0aW5nc1snYXNyJ10KKyAgICAgICAgICAgIGNoYW5uZWxzID0gc2V0dGluZ3Nb
J2FjaCddCisgICAgICAgICAgICBmcmVxdWVuY3kgPSBzZXR0aW5nc1snYWZyZXEnXQorCisgICAg
ICAgICAgICBjbWRsaW5lID0gWyJmZm1wZWciLCAiLXkiXQorCisgICAgICAgICAgICBpZF9wcmVm
aXggPSAiIgorICAgICAgICAgICAgaWRfcGFyYW1zID0gIiIKKyAgICAgICAgICAgIGlmIGhhc19h
dWRpbzoKKyAgICAgICAgICAgICAgICBpZF9wcmVmaXggKz0gImEiCisgICAgICAgICAgICAgICAg
aWRfcGFyYW1zICs9ICItJXNIei0lc2NoIiAlIChzYW1wbGVfcmF0ZSwgY2hhbm5lbHMpCisKKyAg
ICAgICAgICAgICAgICBjaGFubmVsX2xheW91dCA9ICJGQyIKKyAgICAgICAgICAgICAgICBzaW5f
ZnVuYyA9ICJzaW4oJXMqMipQSSp0KSIgJSBmcmVxdWVuY3kKKyAgICAgICAgICAgICAgICBmdW5j
ID0gc2luX2Z1bmMKKyAgICAgICAgICAgICAgICBpZiBjaGFubmVscyA9PSAyOgorICAgICAgICAg
ICAgICAgICAgICBjaGFubmVsX2xheW91dCArPSAifEJDIgorICAgICAgICAgICAgICAgICAgICBm
dW5jICs9ICJ8IiArIHNpbl9mdW5jCisKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWYi
LCAibGF2ZmkiLCAiLWkiLCAiYWV2YWxzcmM9XCIlczpzPSVzOmM9JXM6ZD0lc1wiIiAlIChmdW5j
LCBzYW1wbGVfcmF0ZSwgY2hhbm5lbF9sYXlvdXQsIERVUkFUSU9OKV0KKworICAgICAgICAgICAg
aWYgaGFzX3ZpZGVvOgorICAgICAgICAgICAgICAgIGlkX3ByZWZpeCArPSAidiIKKyAgICAgICAg
ICAgICAgICBpZF9wYXJhbXMgKz0gIi0lcy0lc2Zwcy0lc2tmciIgJSAoZnJhbWVfc2l6ZSwgZnJh
bWVfcmF0ZSwga2V5ZnJhbWVfcmF0ZSkKKworICAgICAgICAgICAgICAgIGNtZGxpbmUgKz0gWyIt
ZiIsICJsYXZmaSIsICItaSIsICJjb2xvcj0lczpkdXJhdGlvbj0lczpzaXplPSVzOnJhdGU9JXMi
ICUgKGNvbG9yLCBEVVJBVElPTiwgZnJhbWVfc2l6ZSwgZnJhbWVfcmF0ZSldCisKKyAgICAgICAg
ICAgIGlmIGhhc19hdWRpbzoKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWI6YSIsICIl
c2siICUgYXVkaW9fYml0cmF0ZV0KKworICAgICAgICAgICAgaWYgaGFzX3ZpZGVvOgorICAgICAg
ICAgICAgICAgIGNtZGxpbmUgKz0gWyItYjp2IiwgIiVzayIgJSB2aWRlb19iaXRyYXRlXQorICAg
ICAgICAgICAgICAgIGNtZGxpbmUgKz0gWyIta2V5aW50X21pbiIsICIlcyIgJSBrZXlmcmFtZV9y
YXRlXQorICAgICAgICAgICAgICAgIGNtZGxpbmUgKz0gWyItZyIsICIlcyIgJSBrZXlmcmFtZV9y
YXRlXQorCisKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gPSAiJ2RyYXd0ZXh0PWZv
bnRmaWxlPU1vbm86Zm9udHNpemU9MzI6dGV4dD1UaW1lXFxcXDpcXFxcICV7cHRzfSIKKyAgICAg
ICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZv
bnRzaXplPTMyOnk9MzI6dGV4dD1TaXplXFxcXDpcXFxcICVzIiAlIChmcmFtZV9zaXplKQorICAg
ICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86
Zm9udHNpemU9MzI6eT02NDp0ZXh0PUJpdHJhdGVcXFxcOlxcXFwgJXMiICUgKGJpdHJhdGUpCisg
ICAgICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZvICs9ICIsZHJhd3RleHQ9Zm9udGZpbGU9TW9u
bzpmb250c2l6ZT0zMjp5PTk2OnRleHQ9RnJhbWVSYXRlXFxcXDpcXFxcICVzIiAlIChmcmFtZV9y
YXRlKQorICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRm
aWxlPU1vbm86Zm9udHNpemU9MzI6eT0xMjg6dGV4dD1LZXlGcmFtZVJhdGVcXFxcOlxcXFwgJXMi
ICUgKGtleWZyYW1lX3JhdGUpCisKKyAgICAgICAgICAgICAgICBpZiBoYXNfYXVkaW86CisgICAg
ICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1v
bm86Zm9udHNpemU9MzI6eT0xNjA6dGV4dD1TYW1wbGVSYXRlXFxcXDpcXFxcICVzIiAlIChzYW1w
bGVfcmF0ZSkKKyAgICAgICAgICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZvICs9ICIsZHJhd3Rl
eHQ9Zm9udGZpbGU9TW9ubzpmb250c2l6ZT0zMjp5PTE5Mjp0ZXh0PUNoYW5uZWxzXFxcXDpcXFxc
ICVzIiAlIChjaGFubmVscykKKworICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAi
JyIKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLXZmIiwgdGV4dE92ZXJsYXlJbmZvXQor
CisgICAgICAgICAgICBlbmNvZGluZ19pZCA9ICIlcy0lc2slcyIgJSAoaWRfcHJlZml4LCBiaXRy
YXRlLCBpZF9wYXJhbXMpCisKKyAgICAgICAgICAgIGlmIGxlbihlbmNvZGluZ19pZHMpIDwgbGVu
KEVOQ09ERV9TRVRUSU5HUyk6CisgICAgICAgICAgICAgICAgZW5jb2RpbmdfaWRzLmFwcGVuZChl
bmNvZGluZ19pZCkKKworICAgICAgICAgICAgZmlsZW5hbWVfYmFzZSA9ICIlcy90ZXN0LSVzIiAl
IChtZWRpYV9mb3JtYXQsIGVuY29kaW5nX2lkKQorICAgICAgICAgICAgbWVkaWFfZmlsZW5hbWUg
PSBmaWxlbmFtZV9iYXNlICsgIi4iICsgbWVkaWFfZm9ybWF0CisgICAgICAgICAgICBtYW5pZmVz
dF9maWxlbmFtZSA9IGZpbGVuYW1lX2Jhc2UgKyAiLW1hbmlmZXN0Lmpzb24iCisKKyAgICAgICAg
ICAgIGNtZGxpbmUuYXBwZW5kKG1lZGlhX2ZpbGVuYW1lKQorICAgICAgICAgICAgcnVuKGNtZGxp
bmUpCisKKyAgICAgICAgICAgICMgUmVtdXggZmlsZSBzbyBpdCBjb25mb3JtcyB0byBNU0UgYnl0
ZXN0cmVhbSByZXF1aXJlbWVudHMuCisgICAgICAgICAgICBpZiBtZWRpYV9mb3JtYXQgPT0gIndl
Ym0iOgorICAgICAgICAgICAgICAgIHRtcF9maWxlbmFtZSA9IG1lZGlhX2ZpbGVuYW1lICsgIi50
bXAiCisgICAgICAgICAgICAgICAgcnVuKFsibXNlX3dlYm1fcmVtdXhlciIsIG1lZGlhX2ZpbGVu
YW1lLCB0bXBfZmlsZW5hbWVdKQorICAgICAgICAgICAgICAgIHJ1bihbIm12IiwgdG1wX2ZpbGVu
YW1lLCBtZWRpYV9maWxlbmFtZV0pCisgICAgICAgICAgICBlbGlmIG1lZGlhX2Zvcm1hdCA9PSAi
bXA0IjoKKyAgICAgICAgICAgICAgICBydW4oWyJNUDRCb3giLCAiLWRhc2giLCAiMjUwIiwgIi1y
YXAiLCBtZWRpYV9maWxlbmFtZV0pCisgICAgICAgICAgICAgICAgcnVuKFsibXYiLCBmaWxlbmFt
ZV9iYXNlICsgIl9kYXNoLm1wNCIsIG1lZGlhX2ZpbGVuYW1lXSkKKyAgICAgICAgICAgICAgICBy
dW4oWyJybSIsIGZpbGVuYW1lX2Jhc2UgKyAiX2Rhc2gubXBkIl0pCisKKyAgICAgICAgICAgIGdl
bmVyYXRlX21hbmlmZXN0KG1hbmlmZXN0X2ZpbGVuYW1lLCBtZWRpYV9maWxlbmFtZSwgbWVkaWFf
Zm9ybWF0LCBoYXNfYXVkaW8sIGhhc192aWRlbykKKyAgICAgICAgZ2VuZXJhdGVfdGVzdF9odG1s
KG1lZGlhX2Zvcm1hdCwgQ09ORklHX0NIQU5HRV9URVNUUywgZW5jb2RpbmdfaWRzKQorCitpZiAn
X19tYWluX18nID09IF9fbmFtZV9fOgorICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTI4
ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5p
ZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzY2FhNDYwZTlmMDc4Mjc4NjgwYzZjZGI5ZTFjZTkxNGE4
YzU5YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLW1hbmlmZXN0
Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC1hLTEyOGstNDQx
MDBIei0xY2gubXA0IiwKKyAgICAidHlwZSI6ICJhdWRpby9tcDQ7Y29kZWNzPVwibXA0YS40MC4y
XCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTky
ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5p
ZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYTZmMzM5Yjc5MTgwYmE4ZTgxMWYxYzg5OWMwYTNjYzE0
ZjQ0NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNoLW1hbmlmZXN0
Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC1hLTE5MmstNDQx
MDBIei0xY2gubXA0IiwKKyAgICAidHlwZSI6ICJhdWRpby9tcDQ7Y29kZWNzPVwibXA0YS40MC4y
XCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4
NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2
LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc3MzFlMzE3MGU1Y2E1MjM0N2VmZjNkZWY4ZTU0MDlmMTIxYjhhY2UKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1z
b3VyY2UvbXA0L3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1h
bmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC1hdi0z
ODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2
aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDEsbXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQw
eDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gt
NjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4ZGVkNjExZjY4
MmQ1MmU3ODE4NGE3Y2JjZTQ3ZjNiMTAyYWE3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYXYt
Mzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAs
MCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0
MHg0ODAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwi
YXZjMS40RDQwMDEsbXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEt
c291cmNlL21wNC90ZXN0LWF2LTQ0OGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1t
YW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL21wNC90ZXN0LWF2LTQ0OGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNDYzNDlmOTNlZDIxOGQ5NzBmM2VmYThiM2U3
NDhjMDE2ZGM3MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02
NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAg
InVybCI6ICJtcDQvdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIu
bXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDEsbXA0YS40
MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2
LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0
LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI0ZGE5YjRjZTNmNzM4YzM0NjJiZTI0NGVlNjlmNDFjMmU0YzIxNzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRp
YS1zb3VyY2UvbXA0L3Rlc3QtYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2Zy
LW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC1h
di02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6
ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDEsbXA0YS40MC4yXCIiCit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBz
LThrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLW1hbmlm
ZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMxYjZkMDI0NWJhNWRlOGE1OWRjZGY3OTViYTJhYjAwODY0
N2VmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVz
b3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLW1h
bmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC12LTEy
OGstMzIweDI0MC0yNGZwcy04a2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVj
cz1cImF2YzEuNEQ0MDAxXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNl
L21wNC90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qt
di0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTAy
ODQ0MTA1YmFhNjI5YmY0MzhlMWE2ZTljMWNjNjJlZDk3OGI2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90
ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0
IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci5t
cDQiLAorICAgICJ0eXBlIjogInZpZGVvL21wNDtjb2RlY3M9XCJhdmMxLjRENDAwMVwiIgorfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstNjQweDQ4
MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEw
a2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBjNGY0YmNiZGZjY2FlOGU1YTM4NjgzMWU5
MTI4Njc5MTdjYzA0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstNjQweDQ4MC0zMGZw
cy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0
L3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRl
by9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDFcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9t
ZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJj
ZS9tcDQvdGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQyZDNlMWU1MjRlYzdmOTFmZDI0Y2ZlMDhkMTlmZTU4MDk1MzU2YWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1z
b3VyY2UvbXA0L3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpA
QCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIm1wNC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMw
ZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0
MDAxXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1h
LTEyOGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNo
LW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI0ZGE4MTQ5ZmU2ZDM2Yzg5MTUwMWQwNTlmODU2
MjFmMDZjZGUzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLW1h
bmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYS0x
MjhrLTQ0MTAwSHotMWNoLndlYm0iLAorICAgICJ0eXBlIjogImF1ZGlvL3dlYm07Y29kZWNzPVwi
dm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVz
dC1hLTE5MmstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xOTJrLTQ0MTAwSHot
MWNoLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2YyZmExZThjMzM1ZGYxNmYxNmM0OTEwOTA4
OGI5YTkxNDhjNTMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNo
LW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3Qt
YS0xOTJrLTQ0MTAwSHotMWNoLndlYm0iLAorICAgICJ0eXBlIjogImF1ZGlvL3dlYm07Y29kZWNz
PVwidm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0v
dGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNv
biBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93
ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWY5ZjA3YWYxNWRiOGFjYjA4ZmVjNjk2N2E2YzkyZWZiNjJiZTU3
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMw
ZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3
ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLndlYm0iLAor
ICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4LHZvcmJpc1wiIgorfQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFj
aC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBI
ei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZWM4
NmIzZGI5Mjc3ODc4NzA1ZmQxNzA4ZWM3YWViYTcxZDA4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90
ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29u
CkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWF2LTM4NGstNDQxMDBI
ei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJt
O2NvZGVjcz1cInZwOCx2b3JiaXNcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1z
b3VyY2Uvd2VibS90ZXN0LWF2LTQ0OGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1t
YW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL3dlYm0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBr
ZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmE1OWRiNTg2ZWQ1OWJiYjMwOGNmNDk2OGM5
ZGU5OTA3MTkzYTczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNo
LTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAg
ICAidXJsIjogIndlYm0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBr
ZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDgsdm9yYmlzXCIi
Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi02NDBr
LTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYt
NjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODY3MjNiMzRhODE5Y2Y3ZDNhNDY5YWJjYTJhZDYwZWExNWE5YmYzNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNv
dXJjZS93ZWJtL3Rlc3QtYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1h
bmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYXYt
NjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLndlYm0iLAorICAgICJ0eXBlIjog
InZpZGVvL3dlYm07Y29kZWNzPVwidnA4LHZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5p
ZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEt
c291cmNlL3dlYm0vdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLW1hbmlmZXN0Lmpzb24K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDBlMTAzYWNhOWI2NmQ4YzZlMTRhOGVlYjBmZDc4ODgzMDIwNjlmMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5q
c29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LXYtMTI4ay0zMjB4
MjQwLTI0ZnBzLThrZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2
cDhcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYt
MTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4
MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRlZWI0MDFkOTY5MTE1
ZTVkM2ZlMTc4ZTM5ZDA5MGM3Yzc2NjQ5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhr
LTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAg
ICAidXJsIjogIndlYm0vdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAg
ICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOFwiIgorfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVz
b3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIt
bWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZTMwNDYwNjY3ODE2MGZmODc1YTQxZjk5NzkwYmU4Y2JhOGU3NTI0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5p
ZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LXYtMTI4
ay02NDB4NDgwLTMwZnBzLTEwa2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29k
ZWNzPVwidnA4XCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0v
dGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTI1
NmstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NzA2NzRi
ZmY1ZDc1ZGFhOTcyZTQ3MmZiMjIxOTI4NzQwODE4M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0
LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBA
Cit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnIud2Vi
bSIsCisgICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDhcIiIKK30KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208131</attachid>
            <date>2013-08-05 09:59:12 -0700</date>
            <delta_ts>2013-08-05 10:24:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118752-20130805095912.patch</filename>
            <type>text/plain</type>
            <size>314261</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlZDBhMWM0ZWE4NGU3
OTY1OTI2ZjNiN2U5MDA1ZDczNzI0Zjg2NS4uNzYzNTJiNDg5YTljNmFjZjk5ZTlmMDVhNGQ3MDNi
YzFmNWU2NjQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA3LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIGJsaW5rIE1lZGlh
U291cmNlIGNoYW5nZXMgc2luY2UgZm9yay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODc1MgorCisgICAgICAgIEFkZCBmaWxlcyB0byBwcm9qZWN0
LiBGaXggY29tcGlsZSBlcnJvcnMgZXhwb3NlZCBieSBlbmFibGluZy4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2VSZWdpc3RyeTo6bG9va3VwTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bG9hZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUpOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisKKyAgICAgICAgTWVyZ2UKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvYzM4ZTI5NTVkYjk4YTMwMGE1MzViNjkyODY5ZmVh
MGU0MTUwMTQ5NworICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hy
b21pdW0vYmxpbmsvKy84NTY4MDE1ZTliZWUxZGU3ZmNjZWUyODE2M2Y5ZTRhNGI1MWY5YmFmCisg
ICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8r
LzE0NDE3ZThmYTYyOTRmNGU3ZGJjMWUwZmFjNTQ5Mzk4NTIyYjJmOTcKKyAgICAgICAgaHR0cHM6
Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZjQzYTU0OTZmMjMz
MTAyZjg4NjFhMDY3YTljZjgwNTNjMDEwZDQwMQorICAgICAgICBodHRwczovL2Nocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy81Nzc3MTQzOTgwNmY3YzZlNmEyNzJlZmIx
ZWE3MjkwMGY1ZjZhMDE1CisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9ibGluay8rLzhjNzdhNzkwYTlkMjI1MTk0ZGIwYTg4MzIzOTlkMGY5ZTFmYTU0
ZWMKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2Js
aW5rLysvZDMzYWUzZmE3YTg1OTJlOTQ2NTAzZWQxN2Y4NjJhMjdjNmQ5ZGRlMQorICAgICAgICBo
dHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy8xY2FhYTlj
NTFmMDZlMWI5MzQxZDU4Yzk5NGY3N2ZkNTlmY2QyMzZkCisgICAgICAgIGh0dHBzOi8vY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2U5NTcyMDM5M2IwZWJlNjdmMTlk
ZTM5YmI3N2NkZjI5MjYxNjU1MTIKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL2JsaW5rLysvYmFkMmMxYjRiNzBmYWVjNzMxYjJhZDNjYzhhNGNjZjI4
ZGU2Y2MzOAorICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vYmxpbmsvKy9hNzg3MzQzMGMzZDVjOTM3MzMzNmM2ZjM5OTNkYjNjYjQyMjhlOWNkCisgICAg
ICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rLzUw
ODk2NmQ1ZTMyMzYwYjNjZWMwNThmOWZiYWUwMDE0NTQyZmJjNTIKKyAgICAgICAgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvMzcxZGZlNzJmNjFjZTZm
NzNlNmMyNDIzMjRkYTczYzQxNWQzOGJlMworCiAyMDEzLTA4LTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IGVnbHBsYXRmb3JtLmgg
dG8gYmUgZm91bmQgYnkgV2luZG93cyBXZWJHTCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNzVjZWUzNzEzZmY2ZGYxMWY2ZjhjODlkY2VmZGYyYWQ1MWUwZGY0Yy4uNjk0NWFkYzgwM2Rj
NTM4MDBlZDQwMTE3M2RkZDY4OTEwOGFmYmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
OSw2ICsyMDksMTAgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDFkMzQ2ZTJlN2RjYmUwYzMxMDVjNWRhMGYzZmQwZWI4MzI0
MGQ3MDIuLmI5MzYyYWVlMTdiNjk2ZWI0OTZjYjUzM2IzOWMzMDFlYzI3ZTBkNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI3Niw3ICsyNzYsNyBAQAogI2luY2x1ZGUgIkpTTWVk
aWFMaXN0LmNwcCIKICNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0LmNwcCIKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQotI2luY2x1ZGUgIkpTTWVkaWFTb3VyY2UuY3BwIgorI2luY2x1ZGUgIkpT
V2ViS2l0TWVkaWFTb3VyY2UuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5l
bC5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnQuY3BwIgpAQCAtMzIxLDggKzMyMSw4IEBA
CiAjaW5jbHVkZSAiSlNTaGFyZWRXb3JrZXIuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGUuY3BwIgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiSlNT
b3VyY2VCdWZmZXIuY3BwIgotI2luY2x1ZGUgIkpTU291cmNlQnVmZmVyTGlzdC5jcHAiCisjaW5j
bHVkZSAiSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1NRTEVycm9yLmNwcCIKICNpbmNs
dWRlICJKU1NRTEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBhYWIzZTgxN2E1M2Q2MzZlYTUzYjA5YWRhY2ZkZWFjM2RkYWM4YWY4Li5iZjE5YTQ1MGVjN2Uy
NDhmZTQ5MjcxZDcyODVkNzliOGMwNzA2Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTExMiw5ICsxMTIsMTMgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmlkbCBc
Ci0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCi0g
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAorCSQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDA2NjcwY2I3OTNk
OGQxMmZkMGY5MzQ1ODEyZWUyMTNjMzFkOTZhYTkuLjczZTZjZjllY2M3MDFiZThjODI1YzM0MmYw
ZTcwODA5MDJlNjYwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTY3NCw3ICs2
NzQsMTEgQEAgZW5hYmxlPyhNRURJQV9TT1VSQ0UpIHsKICAgSURMX0JJTkRJTkdTICs9IFwKICAg
ICAkJFBXRC9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCiAgICAgJCRQV0Qv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRsIFwKLSAgICAkJFBXRC9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAgJCRQV0QvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisgICAgJCRQV0QvTW9kdWxlcy9tZWRpYXNv
dXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0TWVkaWFTb3VyY2UuaWRsIFwKKyAgICAkJFBXRC9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5pZGwKIH0KIAogcXRQcmVwYXJlVG9vbChRTUFLRV9NT0MsIG1v
YykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDNkNGYyY2RkYTIyYTVjNDM4N2Fm
NzU1YjdlNjYxOTNjYjIxN2UxN2EuLmUxMTM5NDY5Y2FiMjViZGUzYWZjZDM0YTJhYzIxNzE4Y2Qy
MTUzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTE3LDYgKzUxNyw4IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01l
ZGlhTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdE1lZGlhU291cmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdE1lZGlhU291cmNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZWRpYVN0cmVhbS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
Y3BwIFwKQEAgLTY4Myw2ICs2ODUsMTAgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dFNvdXJjZUJ1ZmZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRTb3Vy
Y2VCdWZmZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0U291cmNlQnVmZmVy
TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXApAQCAtMTI2NSw2ICsx
MjcxLDEwIEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxN
ZWRpYVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRN
ZWRpYVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRT
b3VyY2VCdWZmZXIuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9M
b2NhbE1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtRXZlbnQuaWRsIFwKQEAgLTE5NzcsMTIgKzE5ODcsMjIgQEAgd2ViY29yZV9tb2R1bGVzX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2Jh
bFNjb3BlSW5kZXhlZERhdGFiYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2VCYXNlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0
cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3Ry
YWludHNJbXBsLmNwcCBcCkBAIC0zNzQzLDYgKzM3NjMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvSW5wdXRUeXBlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBlZTYzMjY5YzZlOGI4MDY0YWI2NDEzYTIyMjg2NmE3
YjE3NzAxOWE0Li4wZWIwMjlkYmQ3YjcwZDFmMjIxNzdkMGM3ZjUyOTUxZTFkN2EyNDIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzQsMTEgKzM0LDE1IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUg
IkNvbnRlbnRUeXBlLmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAi
TWVkaWFTb3VyY2VSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIK
ICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTAsNjQgKzU0LDI0IEBAIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IE1lZGlhU291cmNlOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIH0KIAogTWVkaWFTb3VyY2U6Ok1l
ZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCkKLSAgICAsIG1fcmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpCi0g
ICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKHRoaXMpKQor
ICAgIDogTWVkaWFTb3VyY2VCYXNlKGNvbnRleHQpCiB7Ci0gICAgbV9zb3VyY2VCdWZmZXJzID0g
U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9hc3lu
Y0V2ZW50UXVldWUuZ2V0KCkpOwotICAgIG1fYWN0aXZlU291cmNlQnVmZmVycyA9IFNvdXJjZUJ1
ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fYXN5bmNFdmVudFF1
ZXVlLmdldCgpKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UgJXAi
LCB0aGlzKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50UXVldWUoKSk7CisgICAgbV9hY3Rp
dmVTb3VyY2VCdWZmZXJzID0gU291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgYXN5bmNFdmVudFF1ZXVlKCkpOwogfQogCi1jb25zdCBTdHJpbmcmIE1lZGlh
U291cmNlOjpvcGVuS2V5d29yZCgpCitNZWRpYVNvdXJjZTo6fk1lZGlhU291cmNlKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgb3BlbiwgKEFTQ0lJTGl0ZXJhbCgi
b3BlbiIpKSk7Ci0gICAgcmV0dXJuIG9wZW47Ci19Ci0KLWNvbnN0IFN0cmluZyYgTWVkaWFTb3Vy
Y2U6OmNsb3NlZEtleXdvcmQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBjbG9zZWQsIChBU0NJSUxpdGVyYWwoImNsb3NlZCIpKSk7Ci0gICAgcmV0dXJuIGNsb3Nl
ZDsKLX0KLQotY29uc3QgU3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCkKLXsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kZWQsIChBU0NJSUxpdGVyYWwo
ImVuZGVkIikpKTsKLSAgICByZXR1cm4gZW5kZWQ7Ci19Ci0KLVNvdXJjZUJ1ZmZlckxpc3QqIE1l
ZGlhU291cmNlOjpzb3VyY2VCdWZmZXJzKCkKLXsKLSAgICByZXR1cm4gbV9zb3VyY2VCdWZmZXJz
LmdldCgpOwotfQotCi1Tb3VyY2VCdWZmZXJMaXN0KiBNZWRpYVNvdXJjZTo6YWN0aXZlU291cmNl
QnVmZmVycygpCi17Ci0gICAgLy8gRklYTUUoOTE2NDkpOiBzdXBwb3J0IHRyYWNrIHNlbGVjdGlv
bgotICAgIHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7Ci19Ci0KLWRvdWJsZSBN
ZWRpYVNvdXJjZTo6ZHVyYXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX3JlYWR5U3RhdGUg
PT0gY2xvc2VkS2V5d29yZCgpID8gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05h
TigpIDogbV9wcml2YXRlLT5kdXJhdGlvbigpOwotfQotCi12b2lkIE1lZGlhU291cmNlOjpzZXRE
dXJhdGlvbihkb3VibGUgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChk
dXJhdGlvbiA8IDAuMCB8fCBzdGQ6OmlzbmFuKGR1cmF0aW9uKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAobV9yZWFk
eVN0YXRlICE9IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3ByaXZhdGUtPnNldER1cmF0aW9uKGR1
cmF0aW9uKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNvdXJjZTo6fk1lZGlhU291cmNlICVwIiwg
dGhpcyk7CisgICAgQVNTRVJUKGlzQ2xvc2VkKCkpOwogfQogCiBTb3VyY2VCdWZmZXIqIE1lZGlh
U291cmNlOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3
LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tYWRkc291cmNlYnVm
ZmVyCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlciglcykgJXAi
LCB0eXBlLmFzY2lpKCkuZGF0YSgpLCB0aGlzKTsKKworICAgIC8vIDIuMiBodHRwczovL2R2Y3Mu
dzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3VyY2VCdWZmZXItU291cmNlQnVmZmVy
LURPTVN0cmluZy10eXBlCiAgICAgLy8gMS4gSWYgdHlwZSBpcyBudWxsIG9yIGFuIGVtcHR5IHRo
ZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKICAgICAvLyBhYm9y
dCB0aGVzZSBzdGVwcy4KICAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkg
ewpAQCAtMTI0LDcgKzg4LDcgQEAgU291cmNlQnVmZmVyKiBNZWRpYVNvdXJjZTo6YWRkU291cmNl
QnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMKIAogICAgIC8vIDQu
IElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0
aGVuIHRocm93IGFuCiAgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8fCBtX3JlYWR5U3RhdGUgIT0gb3Bl
bktleXdvcmQoKSkgeworICAgIGlmICghaXNPcGVuKCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTMyLDM4ICs5NiwyOSBA
QCBTb3VyY2VCdWZmZXIqIE1lZGlhU291cmNlOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5n
JiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYwogICAgIC8vIDUuIENyZWF0ZSBhIG5ldyBTb3VyY2VC
dWZmZXIgb2JqZWN0IGFuZCBhc3NvY2lhdGVkIHJlc291cmNlcy4KICAgICBDb250ZW50VHlwZSBj
b250ZW50VHlwZSh0eXBlKTsKICAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY3MgPSBjb250ZW50VHlw
ZS5jb2RlY3MoKTsKLSAgICBPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVy
UHJpdmF0ZTsKLSAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+YWRkU291cmNlQnVmZmVyKGNvbnRlbnRU
eXBlLnR5cGUoKSwgY29kZWNzLCAmc291cmNlQnVmZmVyUHJpdmF0ZSkpIHsKLSAgICBjYXNlIE1l
ZGlhU291cmNlUHJpdmF0ZTo6T2s6IHsKLSAgICAgICAgQVNTRVJUKHNvdXJjZUJ1ZmZlclByaXZh
dGUpOwotICAgICAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBidWZmZXIgPSBTb3VyY2VCdWZmZXI6
OmNyZWF0ZShzb3VyY2VCdWZmZXJQcml2YXRlLnJlbGVhc2UoKSwgdGhpcyk7Ci0KLSAgICAgICAg
Ly8gNi4gQWRkIHRoZSBuZXcgb2JqZWN0IHRvIHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSBhZGRz
b3VyY2VidWZmZXIgb24gdGhhdCBvYmplY3QuCi0gICAgICAgIG1fc291cmNlQnVmZmVycy0+YWRk
KGJ1ZmZlcik7Ci0gICAgICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7Ci0g
ICAgICAgIC8vIDcuIFJldHVybiB0aGUgbmV3IG9iamVjdCB0byB0aGUgY2FsbGVyLgotICAgICAg
ICByZXR1cm4gYnVmZmVyLmdldCgpOwotICAgIH0KLSAgICBjYXNlIE1lZGlhU291cmNlUHJpdmF0
ZTo6Tm90U3VwcG9ydGVkOgotICAgICAgICAvLyAyIChjb250KS4gSWYgdHlwZSBjb250YWlucyBh
IE1JTUUgdHlwZSAuLi4gdGhhdCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhlIHR5cGVzIAotICAg
ICAgICAvLyBzcGVjaWZpZWQgZm9yIHRoZSBvdGhlciBTb3VyY2VCdWZmZXIgb2JqZWN0cyBpbiBz
b3VyY2VCdWZmZXJzLCB0aGVuIHRocm93Ci0gICAgICAgIC8vIGEgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6
OlJlYWNoZWRJZExpbWl0OgotICAgICAgICAvLyAzIChjb250KS4gSWYgdGhlIHVzZXIgYWdlbnQg
Y2FuJ3QgaGFuZGxlIGFueSBtb3JlIFNvdXJjZUJ1ZmZlciBvYmplY3RzIHRoZW4gdGhyb3cgCi0g
ICAgICAgIC8vIGEgUVVPVEFfRVhDRUVERURfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCi0gICAgICAgIGVjID0gUVVPVEFfRVhDRUVERURfRVJSOworICAgIE93blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlID0gY3JlYXRlU291cmNlQnVmZmVy
UHJpdmF0ZShjb250ZW50VHlwZS50eXBlKCksIGNvZGVjcywgZWMpOworCisgICAgaWYgKCFzb3Vy
Y2VCdWZmZXJQcml2YXRlKSB7CisgICAgICAgIEFTU0VSVChlYyA9PSBOT1RfU1VQUE9SVEVEX0VS
UiB8fCBlYyA9PSBRVU9UQV9FWENFRURFRF9FUlIpOworICAgICAgICAvLyAyLiBJZiB0eXBlIGNv
bnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1cHBvcnRlZCAuLi4sIHRoZW4gdGhyb3cg
YSBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
ICAgICAvLyAzLiBJZiB0aGUgdXNlciBhZ2VudCBjYW4ndCBoYW5kbGUgYW55IG1vcmUgU291cmNl
QnVmZmVyIG9iamVjdHMgdGhlbiB0aHJvdyBhIFFVT1RBX0VYQ0VFREVEX0VSUiBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIFJlZlB0cjxTb3VyY2VCdWZm
ZXI+IGJ1ZmZlciA9IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUucmVs
ZWFzZSgpLCB0aGlzLCBhc3luY0V2ZW50UXVldWUoKSk7CisgICAgLy8gNi4gQWRkIHRoZSBuZXcg
b2JqZWN0IHRvIHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSBhZGRzb3VyY2VidWZmZXIgb24gdGhh
dCBvYmplY3QuCisgICAgbV9zb3VyY2VCdWZmZXJzLT5hZGQoYnVmZmVyKTsKKyAgICBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnMtPmFkZChidWZmZXIpOworICAgIC8vIDcuIFJldHVybiB0aGUgbmV3IG9i
amVjdCB0byB0aGUgY2FsbGVyLgorICAgIHJldHVybiBidWZmZXIuZ2V0KCk7CiB9CiAKIHZvaWQg
TWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqIGJ1ZmZlciwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gMy4xIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9odG1s
LW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLXJl
bW92ZXNvdXJjZWJ1ZmZlcgorICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlOjpyZW1vdmVTb3Vy
Y2VCdWZmZXIoKSAlcCIsIHRoaXMpOworICAgIFJlZlB0cjxTb3VyY2VCdWZmZXI+IHByb3RlY3Qo
YnVmZmVyKTsKKworICAgIC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEv
cmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRp
YVNvdXJjZS1yZW1vdmVTb3VyY2VCdWZmZXItdm9pZC1Tb3VyY2VCdWZmZXItc291cmNlQnVmZmVy
CiAgICAgLy8gMS4gSWYgc291cmNlQnVmZmVyIGlzIG51bGwgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZAogICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgogICAg
IGlmICghYnVmZmVyKSB7CkBAIC0xNzEsOTggKzEyNiw2OCBAQCB2b2lkIE1lZGlhU291cmNlOjpy
ZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyKiBidWZmZXIsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gMi4gSWYgc291cmNlQnVmZmVycyBp
cyBlbXB0eSB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQKLSAg
ICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8fCAhbV9zb3VyY2VC
dWZmZXJzLT5sZW5ndGgoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gMy4gSWYgc291cmNlQnVmZmVyIHNwZWNpZmll
cyBhbiBvYmplY3QgdGhhdCBpcyBub3QgaW4gc291cmNlQnVmZmVycyB0aGVuCisgICAgLy8gMi4g
SWYgc291cmNlQnVmZmVyIHNwZWNpZmllcyBhbiBvYmplY3QgdGhhdCBpcyBub3QgaW4gc291cmNl
QnVmZmVycyB0aGVuCiAgICAgLy8gdGhyb3cgYSBOT1RfRk9VTkRfRVJSIGV4Y2VwdGlvbiBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgLy8gNi4gUmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIHNv
dXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQKLSAgICAvLyBv
biB0aGF0IG9iamVjdC4KLSAgICBpZiAoIW1fc291cmNlQnVmZmVycy0+cmVtb3ZlKGJ1ZmZlcikp
IHsKKyAgICBpZiAoIW1fc291cmNlQnVmZmVycy0+bGVuZ3RoKCkgfHwgIW1fc291cmNlQnVmZmVy
cy0+Y29udGFpbnMoYnVmZmVyKSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyA3LiBEZXN0cm95IGFsbCByZXNvdXJjZXMgZm9y
IHNvdXJjZUJ1ZmZlci4KLSAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIp
OworICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIudXBkYXRpbmcgYXR0cmlidXRlIGVxdWFs
cyB0cnVlLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOiAuLi4KKyAgICBidWZmZXItPmFi
b3J0SWZVcGRhdGluZygpOwogCi0gICAgLy8gNC4gUmVtb3ZlIHRyYWNrIGluZm9ybWF0aW9uIGZy
b20gYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQgdGV4dFRyYWNrcyBmb3IgYWxsIHRyYWNr
cyAKLSAgICAvLyBhc3NvY2lhdGVkIHdpdGggc291cmNlQnVmZmVyIGFuZCBmaXJlIGEgc2ltcGxl
IGV2ZW50IG5hbWVkIGNoYW5nZSBvbiB0aGUgbW9kaWZpZWQgbGlzdHMuCisgICAgLy8gU3RlcHMg
NC05IGFyZSByZWxhdGVkIHRvIHVwZGF0aW5nIGF1ZGlvVHJhY2tzLCB2aWRlb1RyYWNrcywgYW5k
IHRleHRUcmFja3Mgd2hpY2ggYXJlbid0IGltcGxtZW50ZWQgeWV0LgogICAgIC8vIEZJWE1FKDkx
NjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KIAotICAgIC8vIDUuIElmIHNvdXJjZUJ1ZmZl
ciBpcyBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJlbW92ZSBpdCBmcm9tIHRoYXQgbGlz
dCBhbmQgZmlyZSBhCi0gICAgLy8gcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50IG9uIHRoYXQgb2Jq
ZWN0LgotICAgIC8vIEZJWE1FKDkxNjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KLX0KKyAg
ICAvLyAxMC4gSWYgc291cmNlQnVmZmVyIGlzIGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMsIHRoZW4g
cmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMgLi4uCisgICAgbV9h
Y3RpdmVTb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKTsKIAotY29uc3QgU3RyaW5nJiBNZWRp
YVNvdXJjZTo6cmVhZHlTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsK
KyAgICAvLyAxMS4gUmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIHNvdXJjZUJ1ZmZlcnMgYW5kIGZp
cmUgYSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQKKyAgICAvLyBvbiB0aGF0IG9iamVjdC4KKyAg
ICBtX3NvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIpOworCisgICAgLy8gMTIuIERlc3Ryb3kg
YWxsIHJlc291cmNlcyBmb3Igc291cmNlQnVmZmVyLgorICAgIGJ1ZmZlci0+cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpOwogfQogCi12b2lkIE1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKGNvbnN0
IFN0cmluZyYgc3RhdGUpCit2b2lkIE1lZGlhU291cmNlOjpvblJlYWR5U3RhdGVDaGFuZ2UoY29u
c3QgQXRvbWljU3RyaW5nJiBvbGRTdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdGF0ZSkK
IHsKLSAgICBBU1NFUlQoc3RhdGUgPT0gb3BlbktleXdvcmQoKSB8fCBzdGF0ZSA9PSBjbG9zZWRL
ZXl3b3JkKCkgfHwgc3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpOwotICAgIGlmIChtX3JlYWR5U3Rh
dGUgPT0gc3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBvbGRTdGF0ZSA9IG1f
cmVhZHlTdGF0ZTsKLSAgICBtX3JlYWR5U3RhdGUgPSBzdGF0ZTsKLQotICAgIGlmIChtX3JlYWR5
U3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpKSB7Ci0gICAgICAgIG1fc291cmNlQnVmZmVycy0+Y2xl
YXIoKTsKLSAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigpOwotICAgICAgICBt
X3ByaXZhdGUuY2xlYXIoKTsKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Vi
a2l0c291cmNlY2xvc2VFdmVudCk7CisgICAgaWYgKGlzT3BlbigpKSB7CisgICAgICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLnNvdXJjZW9wZW5FdmVudCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAob2xkU3RhdGUgPT0gb3BlbktleXdvcmQoKSAmJiBtX3JlYWR5U3Rh
dGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVz
KCkud2Via2l0c291cmNlZW5kZWRFdmVudCk7CisgICAgaWYgKG9sZFN0YXRlID09IG9wZW5LZXl3
b3JkKCkgJiYgbmV3U3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKKyAgICAgICAgc2NoZWR1bGVF
dmVudChldmVudE5hbWVzKCkuc291cmNlZW5kZWRFdmVudCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAobV9yZWFkeVN0YXRlID09IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAg
c2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlb3BlbkV2ZW50KTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLX0KKyAgICBBU1NFUlQoaXNDbG9zZWQoKSk7CiAKLXZvaWQgTWVk
aWFTb3VyY2U6OmVuZE9mU3RyZWFtKGNvbnN0IFN0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXct
ZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1lbmRvZnN0cmVhbQot
ICAgIC8vIDEuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVu
IiBzdGF0ZSB0aGVuIHRocm93IGFuCi0gICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9u
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8fCBtX3JlYWR5U3Rh
dGUgIT0gb3BlbktleXdvcmQoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+Y2xlYXIo
KTsKIAotICAgIE1lZGlhU291cmNlUHJpdmF0ZTo6RW5kT2ZTdHJlYW1TdGF0dXMgZW9zU3RhdHVz
ID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yOworICAgIC8vIENsZWFyIFNvdXJjZUJ1
ZmZlciByZWZlcmVuY2VzIHRvIHRoaXMgb2JqZWN0LgorICAgIGZvciAodW5zaWduZWQgbG9uZyBp
ID0gMDsgaSA8IG1fc291cmNlQnVmZmVycy0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJzLT5pdGVtKGkpLT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisgICAgbV9zb3Vy
Y2VCdWZmZXJzLT5jbGVhcigpOwogCi0gICAgaWYgKGVycm9yLmlzTnVsbCgpIHx8IGVycm9yLmlz
RW1wdHkoKSkKLSAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vy
cm9yOwotICAgIGVsc2UgaWYgKGVycm9yID09ICJuZXR3b3JrIikKLSAgICAgICAgZW9zU3RhdHVz
ID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOZXR3b3JrRXJyb3I7Ci0gICAgZWxzZSBpZiAoZXJy
b3IgPT0gImRlY29kZSIpCi0gICAgICAgIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6
RW9zRGVjb2RlRXJyb3I7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1l
cygpLnNvdXJjZWNsb3NlRXZlbnQpOworfQogCi0gICAgLy8gMi4gQ2hhbmdlIHRoZSByZWFkeVN0
YXRlIGF0dHJpYnV0ZSB2YWx1ZSB0byAiZW5kZWQiLgotICAgIHNldFJlYWR5U3RhdGUoZW5kZWRL
ZXl3b3JkKCkpOwotICAgIG1fcHJpdmF0ZS0+ZW5kT2ZTdHJlYW0oZW9zU3RhdHVzKTsKK1ZlY3Rv
cjxSZWZQdHI8VGltZVJhbmdlcz4gPiBNZWRpYVNvdXJjZTo6YWN0aXZlUmFuZ2VzKCkgY29uc3QK
K3sKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKG1fYWN0aXZl
U291cmNlQnVmZmVycy0+bGVuZ3RoKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9h
Y3RpdmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytpKQorICAgICAgICBhY3RpdmVSYW5nZXNb
aV0gPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPml0ZW0oaSktPmJ1ZmZlcmVkKEFTU0VSVF9OT19F
WENFUFRJT04pOworCisgICAgcmV0dXJuIGFjdGl2ZVJhbmdlczsKIH0KIAogYm9vbCBNZWRpYVNv
dXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICAvLyBTZWN0
aW9uIDIuMSBpc1R5cGVTdXBwb3J0ZWQoKSBtZXRob2Qgc3RlcHMuCisgICAgTE9HKE1lZGlhLCAi
TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCglcykiLCB0eXBlLmFzY2lpKCkuZGF0YSgpKTsK
KworICAgIC8vIFNlY3Rpb24gMi4yIGlzVHlwZVN1cHBvcnRlZCgpIG1ldGhvZCBzdGVwcy4KICAg
ICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlh
LXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlhU291cmNlLWlzVHlwZVN1cHBvcnRl
ZC1ib29sZWFuLURPTVN0cmluZy10eXBlCiAgICAgLy8gMS4gSWYgdHlwZSBpcyBhbiBlbXB0eSBz
dHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAgIGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUu
aXNFbXB0eSgpKQpAQCAtMjgyLDU2ICsyMDcsMTEgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBl
U3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNvbnRlbnRUeXBlLnR5cGUoKSwgY29k
ZWNzKTsKIH0KIAotdm9pZCBNZWRpYVNvdXJjZTo6c2V0UHJpdmF0ZUFuZE9wZW4oUGFzc093blB0
cjxNZWRpYVNvdXJjZVByaXZhdGU+IG1lZGlhU291cmNlUHJpdmF0ZSkKLXsKLSAgICBBU1NFUlQo
bWVkaWFTb3VyY2VQcml2YXRlKTsKLSAgICBBU1NFUlQoIW1fcHJpdmF0ZSk7Ci0gICAgbV9wcml2
YXRlID0gbWVkaWFTb3VyY2VQcml2YXRlOwotICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdvcmQo
KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2U6OmludGVyZmFjZU5hbWUo
KSBjb25zdAogewogICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yTWVkaWFTb3Vy
Y2U7CiB9CiAKLVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNlOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7Ci19Ci0KLWJvb2wgTWVkaWFTb3VyY2U6Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZSB8fCBtX2FzeW5jRXZlbnRR
dWV1ZS0+aGFzUGVuZGluZ0V2ZW50cygpCi0gICAgICAgIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFz
UGVuZGluZ0FjdGl2aXR5KCk7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2U6OnN0b3AoKQotewotICAg
IG1fcHJpdmF0ZS5jbGVhcigpOwotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5jYW5jZWxBbGxFdmVu
dHMoKTsKLX0KLQotRXZlbnRUYXJnZXREYXRhKiBNZWRpYVNvdXJjZTo6ZXZlbnRUYXJnZXREYXRh
KCkKLXsKLSAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwotfQotCi1FdmVudFRhcmdldERh
dGEqIE1lZGlhU291cmNlOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQotewotICAgIHJldHVybiAm
bV9ldmVudFRhcmdldERhdGE7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCi17Ci0gICAgQVNTRVJUKG1fYXN5bmNFdmVu
dFF1ZXVlKTsKLQotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwotCi0gICAg
bV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChldmVudC5yZWxlYXNlKCkpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGJjZjkzNWM2ZjE3YTA1MTVlYzJh
ZmRjNmJlN2U1ZTJiMzEwMTU3NzQuLmRlNThjZThiODZmMDkyMWU0ZTNjMzdmZGMyYzhmNzIxOGEy
ZmJiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTMzLDczICszMyw0NSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAot
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVl
LmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3Vy
Y2VCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU291cmNl
QnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTb3VyY2Ug
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNvdXJjZT4sIHB1YmxpYyBFdmVudFRhcmdldCwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBNZWRpYVNvdXJjZSA6IHB1YmxpYyBNZWRpYVNv
dXJjZUJhc2UsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCBTdHJpbmcmIG9wZW5LZXl3b3JkKCk7Ci0gICAgc3RhdGljIGNvbnN0IFN0cmluZyYgY2xv
c2VkS2V5d29yZCgpOwotICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGVuZGVkS2V5d29yZCgpOwot
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7Ci0gICAgdmlydHVhbCB+TWVkaWFTb3VyY2UoKSB7IH0KKyAgICB2aXJ0dWFs
IH5NZWRpYVNvdXJjZSgpOwogCiAgICAgLy8gTWVkaWFTb3VyY2UuaWRsIG1ldGhvZHMKLSAgICBT
b3VyY2VCdWZmZXJMaXN0KiBzb3VyY2VCdWZmZXJzKCk7Ci0gICAgU291cmNlQnVmZmVyTGlzdCog
YWN0aXZlU291cmNlQnVmZmVycygpOwotICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0OwotICAg
IHZvaWQgc2V0RHVyYXRpb24oZG91YmxlLCBFeGNlcHRpb25Db2RlJik7CisgICAgU291cmNlQnVm
ZmVyTGlzdCogc291cmNlQnVmZmVycygpIHsgcmV0dXJuIG1fc291cmNlQnVmZmVycy5nZXQoKTsg
fQorICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKSB7IHJldHVybiBt
X2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KICAgICBTb3VyY2VCdWZmZXIqIGFkZFNvdXJj
ZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHJl
bW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgY29u
c3QgU3RyaW5nJiByZWFkeVN0YXRlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKGNv
bnN0IFN0cmluZyYpOwotICAgIHZvaWQgZW5kT2ZTdHJlYW0oY29uc3QgU3RyaW5nJiBlcnJvciwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBT
dHJpbmcmIHR5cGUpOwogCi0gICAgdm9pZCBzZXRQcml2YXRlQW5kT3BlbihQYXNzT3duUHRyPE1l
ZGlhU291cmNlUHJpdmF0ZT4pOwotCiAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBPVkVSUklERTsKLQotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZh
Y2UKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJREU7
CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlPjo6cmVmOwotICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8TWVkaWFTb3VyY2U+OjpkZXJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlh
U291cmNlQmFzZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlQmFzZT46
OmRlcmVmOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhU291cmNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBFdmVudFRhcmdldERh
dGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9p
ZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQotCi0gICAgdm9pZCBzY2hl
ZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsKLQotICAgIEV2ZW50VGFy
Z2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKLQotICAgIFN0cmluZyBtX3JlYWR5U3RhdGU7Ci0g
ICAgT3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIC8vIE1lZGlhU291
cmNlQmFzZSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQgb25SZWFkeVN0YXRlQ2hhbmdlKGNv
bnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IGFjdGl2ZVJhbmdlcygpIGNvbnN0IE9W
RVJSSURFOwogCiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlckxpc3Q+IG1fc291cmNlQnVmZmVyczsK
ICAgICBSZWZQdHI8U291cmNlQnVmZmVyTGlzdD4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzOwotICAg
IE93blB0cjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKaW5kZXggN2IwNDM0NzA4
ZTI1ZDFlYWFlNWVlMzMyZTRkNWI3NGQ1YzE5OTVhZS4uZDBkNGRkNGY3OTIyZTM5MTNhNTZlZjBk
MTA0NWQxYzJlMDg5YmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMyLDEwICszMiwxMCBAQAogICAgIENvbmRpdGlvbmFs
PU1FRElBX1NPVVJDRSwKICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgRXZlbnRUYXJnZXQsCisg
ICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgIENvbnN0cnVjdG9yLAotICAgIENvbnN0
cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKLSAgICBJbnRlcmZhY2VOYW1l
PVdlYktpdE1lZGlhU291cmNlCi1dIGludGVyZmFjZSBNZWRpYVNvdXJjZSB7CisgICAgQ29uc3Ry
dWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0CitdIGludGVyZmFjZSBNZWRpYVNv
dXJjZSA6IEV2ZW50VGFyZ2V0IHsKICAgICAvLyBBbGwgdGhlIHNvdXJjZSBidWZmZXJzIGNyZWF0
ZWQgYnkgdGhpcyBvYmplY3QuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNvdXJjZUJ1ZmZlckxp
c3Qgc291cmNlQnVmZmVyczsKIApAQCAtNTIsMTQgKzUyLDQgQEAKICAgICBbUmFpc2VzRXhjZXB0
aW9uXSB2b2lkIGVuZE9mU3RyZWFtKFtEZWZhdWx0PU51bGxTdHJpbmddIG9wdGlvbmFsIERPTVN0
cmluZyBlcnJvcik7CiAKICAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBwb3J0ZWQgKERPTVN0
cmluZyB0eXBlKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQotICAgIHZvaWQgYWRk
RXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
YWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIg
bGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50
KEV2ZW50IGV2ZW50KTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2NlNWM4MjYyMWFk
NWZiNGY4NzNjMWVjYWY0ZTlmYjM4YjAzNzZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuY3BwCkBAIC0wLDAgKzEs
MzE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlQmFzZS5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJTb3VyY2VCdWZmZXJQ
cml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhU291cmNlQmFz
ZTo6TWVkaWFTb3VyY2VCYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKKyAgICAsIG1fcmVhZHlTdGF0ZShjbG9zZWRLZXl3
b3JkKCkpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRl
KHRoaXMpKQorICAgICwgbV9hdHRhY2hlZChmYWxzZSkKK3sKK30KKworTWVkaWFTb3VyY2VCYXNl
Ojp+TWVkaWFTb3VyY2VCYXNlKCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNv
dXJjZUJhc2U6Om9wZW5LZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgb3BlbiwgKCJvcGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHJldHVybiBvcGVuOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhU291cmNlQmFzZTo6Y2xvc2VkS2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJjbG9zZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgcmV0dXJuIGNsb3NlZDsKK30KKworY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYVNvdXJjZUJhc2U6OmVuZGVkS2V5d29yZCgpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBlbmRlZDsKK30KKwor
dm9pZCBNZWRpYVNvdXJjZUJhc2U6OnNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVkaWFT
b3VyY2VQcml2YXRlPiBtZWRpYVNvdXJjZVByaXZhdGUpCit7CisgICAgQVNTRVJUKG1lZGlhU291
cmNlUHJpdmF0ZSk7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUpOworICAgIEFTU0VSVChtX2F0dGFj
aGVkKTsKKyAgICBtX3ByaXZhdGUgPSBtZWRpYVNvdXJjZVByaXZhdGU7CisgICAgc2V0UmVhZHlT
dGF0ZShvcGVuS2V5d29yZCgpKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OmFkZGVkVG9S
ZWdpc3RyeSgpCit7CisgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworfQorCit2b2lkIE1l
ZGlhU291cmNlQmFzZTo6cmVtb3ZlZEZyb21SZWdpc3RyeSgpCit7CisgICAgdW5zZXRQZW5kaW5n
QWN0aXZpdHkodGhpcyk7Cit9CisKK2RvdWJsZSBNZWRpYVNvdXJjZUJhc2U6OmR1cmF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaXNDbG9zZWQoKSA/IHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjpxdWlldF9OYU4oKSA6IG1fcHJpdmF0ZS0+ZHVyYXRpb24oKTsKK30KKworUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBNZWRpYVNvdXJjZUJhc2U6OmJ1ZmZlcmVkKCkgY29uc3QKK3sKKyAgICAv
LyBJbXBsZW1lbnRzIE1lZGlhU291cmNlIGFsZ29yaXRobSBmb3IgSFRNTE1lZGlhRWxlbWVudC5i
dWZmZXJlZC4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZp
bGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjaHRtbG1lZGlhZWxlbWVu
dC1leHRlbnNpb25zCisgICAgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IHJhbmdlcyA9IGFj
dGl2ZVJhbmdlcygpOworCisgICAgLy8gMS4gSWYgYWN0aXZlU291cmNlQnVmZmVycy5sZW5ndGgg
ZXF1YWxzIDAgdGhlbiByZXR1cm4gYW4gZW1wdHkgVGltZVJhbmdlcyBvYmplY3QgYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIGlmIChyYW5nZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
VGltZVJhbmdlczo6Y3JlYXRlKCk7CisKKyAgICAvLyAyLiBMZXQgYWN0aXZlIHJhbmdlcyBiZSB0
aGUgcmFuZ2VzIHJldHVybmVkIGJ5IGJ1ZmZlcmVkIGZvciBlYWNoIFNvdXJjZUJ1ZmZlciBvYmpl
Y3QgaW4gYWN0aXZlU291cmNlQnVmZmVycy4KKyAgICAvLyAzLiBMZXQgaGlnaGVzdCBlbmQgdGlt
ZSBiZSB0aGUgbGFyZ2VzdCByYW5nZSBlbmQgdGltZSBpbiB0aGUgYWN0aXZlIHJhbmdlcy4KKyAg
ICBkb3VibGUgaGlnaGVzdEVuZFRpbWUgPSAtMTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHJhbmdlcy5zaXplKCk7ICsraSkgeworICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSByYW5nZXNb
aV0tPmxlbmd0aCgpOworICAgICAgICBpZiAobGVuZ3RoKQorICAgICAgICAgICAgaGlnaGVzdEVu
ZFRpbWUgPSBzdGQ6Om1heChoaWdoZXN0RW5kVGltZSwgcmFuZ2VzW2ldLT5lbmQobGVuZ3RoIC0g
MSwgQVNTRVJUX05PX0VYQ0VQVElPTikpOworICAgIH0KKworICAgIC8vIFJldHVybiBhbiBlbXB0
eSByYW5nZSBpZiBhbGwgcmFuZ2VzIGFyZSBlbXB0eS4KKyAgICBpZiAoaGlnaGVzdEVuZFRpbWUg
PCAwKQorICAgICAgICByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisKKyAgICAvLyA0LiBM
ZXQgaW50ZXJzZWN0aW9uIHJhbmdlcyBlcXVhbCBhIFRpbWVSYW5nZSBvYmplY3QgY29udGFpbmlu
ZyBhIHNpbmdsZSByYW5nZSBmcm9tIDAgdG8gaGlnaGVzdCBlbmQgdGltZS4KKyAgICBSZWZQdHI8
VGltZVJhbmdlcz4gaW50ZXJzZWN0aW9uUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKDAsIGhp
Z2hlc3RFbmRUaW1lKTsKKworICAgIC8vIDUuIEZvciBlYWNoIFNvdXJjZUJ1ZmZlciBvYmplY3Qg
aW4gYWN0aXZlU291cmNlQnVmZmVycyBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICBib29s
IGVuZGVkID0gcmVhZHlTdGF0ZSgpID09IGVuZGVkS2V5d29yZCgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcmFuZ2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIDUuMSBMZXQgc291
cmNlIHJhbmdlcyBlcXVhbCB0aGUgcmFuZ2VzIHJldHVybmVkIGJ5IHRoZSBidWZmZXJlZCBhdHRy
aWJ1dGUgb24gdGhlIGN1cnJlbnQgU291cmNlQnVmZmVyLgorICAgICAgICBUaW1lUmFuZ2VzKiBz
b3VyY2VSYW5nZXMgPSByYW5nZXNbaV0uZ2V0KCk7CisKKyAgICAgICAgLy8gNS4yIElmIHJlYWR5
U3RhdGUgaXMgImVuZGVkIiwgdGhlbiBzZXQgdGhlIGVuZCB0aW1lIG9uIHRoZSBsYXN0IHJhbmdl
IGluIHNvdXJjZSByYW5nZXMgdG8gaGlnaGVzdCBlbmQgdGltZS4KKyAgICAgICAgaWYgKGVuZGVk
ICYmIHNvdXJjZVJhbmdlcy0+bGVuZ3RoKCkpCisgICAgICAgICAgICBzb3VyY2VSYW5nZXMtPmFk
ZChzb3VyY2VSYW5nZXMtPnN0YXJ0KHNvdXJjZVJhbmdlcy0+bGVuZ3RoKCkgLSAxLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKSwgaGlnaGVzdEVuZFRpbWUpOworCisgICAgICAgIC8vIDUuMyBMZXQgbmV3
IGludGVyc2VjdGlvbiByYW5nZXMgZXF1YWwgdGhlIHRoZSBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0
aGUgaW50ZXJzZWN0aW9uIHJhbmdlcyBhbmQgdGhlIHNvdXJjZSByYW5nZXMuCisgICAgICAgIC8v
IDUuNCBSZXBsYWNlIHRoZSByYW5nZXMgaW4gaW50ZXJzZWN0aW9uIHJhbmdlcyB3aXRoIHRoZSBu
ZXcgaW50ZXJzZWN0aW9uIHJhbmdlcy4KKyAgICAgICAgaW50ZXJzZWN0aW9uUmFuZ2VzLT5pbnRl
cnNlY3RXaXRoKHNvdXJjZVJhbmdlcyk7CisgICAgfQorCisgICAgcmV0dXJuIGludGVyc2VjdGlv
blJhbmdlcy5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpzZXREdXJhdGlv
bihkb3VibGUgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChkdXJhdGlv
biA8IDAuMCB8fCBzdGQ6OmlzbmFuKGR1cmF0aW9uKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIWlzT3BlbigpKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgbV9wcml2YXRlLT5zZXREdXJhdGlvbihkdXJhdGlvbik7Cit9CisKKwordm9pZCBNZWRp
YVNvdXJjZUJhc2U6OnNldFJlYWR5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkKK3sK
KyAgICBBU1NFUlQoc3RhdGUgPT0gb3BlbktleXdvcmQoKSB8fCBzdGF0ZSA9PSBjbG9zZWRLZXl3
b3JkKCkgfHwgc3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpOworCisgICAgQXRvbWljU3RyaW5nIG9s
ZFN0YXRlID0gcmVhZHlTdGF0ZSgpOworICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlQmFzZTo6
c2V0UmVhZHlTdGF0ZSgpICVwIDogJXMgLT4gJXMiLCB0aGlzLCBvbGRTdGF0ZS5zdHJpbmcoKS5h
c2NpaSgpLmRhdGEoKSwgc3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworCisgICAgaWYg
KHN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgeworICAgICAgICBtX3ByaXZhdGUuY2xlYXIoKTsK
KyAgICAgICAgbV9hdHRhY2hlZCA9IGZhbHNlOworICAgIH0KKworICAgIGlmIChvbGRTdGF0ZSA9
PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZWFkeVN0YXRlID0gc3RhdGU7CisK
KyAgICBvblJlYWR5U3RhdGVDaGFuZ2Uob2xkU3RhdGUsIHN0YXRlKTsKK30KKwordm9pZCBNZWRp
YVNvdXJjZUJhc2U6OmVuZE9mU3RyZWFtKGNvbnN0IEF0b21pY1N0cmluZyYgZXJyb3IsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBuZXR3b3JrLCAoIm5ldHdvcmsiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlY29k
ZSwgKCJkZWNvZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisKKyAg
ICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tZW5kb2ZzdHJlYW0KKyAgICAvLyAxLiBJ
ZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgbm90IGluIHRoZSAib3BlbiIgc3RhdGUgdGhl
biB0aHJvdyBhbgorICAgIC8vIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgaWYgKCFpc09wZW4oKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTWVkaWFTb3VyY2VQcml2
YXRlOjpFbmRPZlN0cmVhbVN0YXR1cyBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVv
c05vRXJyb3I7CisKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkgfHwgZXJyb3IuaXNFbXB0eSgpKQor
ICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc05vRXJyb3I7CisgICAg
ZWxzZSBpZiAoZXJyb3IgPT0gbmV0d29yaykKKyAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3Vy
Y2VQcml2YXRlOjpFb3NOZXR3b3JrRXJyb3I7CisgICAgZWxzZSBpZiAoZXJyb3IgPT0gZGVjb2Rl
KQorICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc0RlY29kZUVycm9y
OworICAgIGVsc2UgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIDIuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1
dGUgdmFsdWUgdG8gImVuZGVkIi4KKyAgICBzZXRSZWFkeVN0YXRlKGVuZGVkS2V5d29yZCgpKTsK
KyAgICBtX3ByaXZhdGUtPm1hcmtFbmRPZlN0cmVhbShlb3NTdGF0dXMpOworfQorCitib29sIE1l
ZGlhU291cmNlQmFzZTo6aXNPcGVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVhZHlTdGF0ZSgp
ID09IG9wZW5LZXl3b3JkKCk7Cit9CisKK2Jvb2wgTWVkaWFTb3VyY2VCYXNlOjppc0Nsb3NlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlYWR5U3RhdGUoKSA9PSBjbG9zZWRLZXl3b3JkKCk7Cit9
CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpjbG9zZSgpCit7CisgICAgc2V0UmVhZHlTdGF0ZShj
bG9zZWRLZXl3b3JkKCkpOworfQorCitib29sIE1lZGlhU291cmNlQmFzZTo6YXR0YWNoVG9FbGVt
ZW50KCkKK3sKKyAgICBpZiAobV9hdHRhY2hlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgQVNTRVJUKGlzQ2xvc2VkKCkpOworCisgICAgbV9hdHRhY2hlZCA9IHRydWU7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpvcGVuSWZJbkVuZGVkU3RhdGUo
KQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gZW5kZWRLZXl3b3JkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdvcmQoKSk7CisgICAgbV9wcml2YXRl
LT51bm1hcmtFbmRPZlN0cmVhbSgpOworfQorCitib29sIE1lZGlhU291cmNlQmFzZTo6aGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlIHx8IG1fYXN5bmNF
dmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCkKKyAgICAgICAgfHwgQWN0aXZlRE9NT2JqZWN0
OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OnN0b3Ao
KQoreworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5jbG9zZSgpOworICAgIGlmICghaXNDbG9zZWQo
KSkKKyAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpOworICAgIG1fcHJpdmF0
ZS5jbGVhcigpOworfQorCitQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IE1lZGlhU291
cmNlQmFzZTo6Y3JlYXRlU291cmNlQnVmZmVyUHJpdmF0ZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IE1lZGlhU291cmNlUHJpdmF0ZTo6Q29kZWNzQXJyYXkmIGNvZGVjcywgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclBy
aXZhdGU7CisgICAgc3dpdGNoIChtX3ByaXZhdGUtPmFkZFNvdXJjZUJ1ZmZlcih0eXBlLCBjb2Rl
Y3MsICZzb3VyY2VCdWZmZXJQcml2YXRlKSkgeworICAgIGNhc2UgTWVkaWFTb3VyY2VQcml2YXRl
OjpPazogeworICAgICAgICByZXR1cm4gc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNlKCk7Cisg
ICAgfQorICAgIGNhc2UgTWVkaWFTb3VyY2VQcml2YXRlOjpOb3RTdXBwb3J0ZWQ6CisgICAgICAg
IC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVs
dC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3Vy
Y2VCdWZmZXItU291cmNlQnVmZmVyLURPTVN0cmluZy10eXBlCisgICAgICAgIC8vIFN0ZXAgMjog
SWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSAuLi4gdGhhdCBpcyBub3Qgc3VwcG9ydGVkIHdp
dGggdGhlIHR5cGVzCisgICAgICAgIC8vIHNwZWNpZmllZCBmb3IgdGhlIG90aGVyIFNvdXJjZUJ1
ZmZlciBvYmplY3RzIGluIHNvdXJjZUJ1ZmZlcnMsIHRoZW4gdGhyb3cKKyAgICAgICAgLy8gYSBO
T1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgICAg
ICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBj
YXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6UmVhY2hlZElkTGltaXQ6CisgICAgICAgIC8vIDIuMiBo
dHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3VyY2VCdWZmZXIt
U291cmNlQnVmZmVyLURPTVN0cmluZy10eXBlCisgICAgICAgIC8vIFN0ZXAgMzogSWYgdGhlIHVz
ZXIgYWdlbnQgY2FuJ3QgaGFuZGxlIGFueSBtb3JlIFNvdXJjZUJ1ZmZlciBvYmplY3RzIHRoZW4g
dGhyb3cKKyAgICAgICAgLy8gYSBRVU9UQV9FWENFRURFRF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KKyAgICAgICAgZWMgPSBRVU9UQV9FWENFRURFRF9FUlI7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCit2b2lkIE1lZGlhU291cmNlQmFzZTo6c2NoZWR1bGVFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3sKKyAgICBBU1NFUlQobV9hc3luY0V2
ZW50UXVldWUpOworCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CisKKyAg
ICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7Cit9CisK
K1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNlQmFzZTo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOworfQorCitFdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlQmFzZTo6
ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQor
CitFdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlQmFzZTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRh
KCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitVUkxSZWdpc3RyeSYg
TWVkaWFTb3VyY2VCYXNlOjpyZWdpc3RyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhU291
cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZDYxNmIxOWE3MmQ4NzdkOTMwMjJhYmQ5YjRjOTAxNzg2YzgyYWRlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJh
c2UuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFTb3VyY2VCYXNlX2gKKyNkZWZpbmUg
TWVkaWFTb3VyY2VCYXNlX2gKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
IkhUTUxNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIlVSTFJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKKworY2xhc3MgTWVkaWFT
b3VyY2VCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VCYXNlPiwgcHVibGljIEhU
TUxNZWRpYVNvdXJjZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBvcGVuS2V5d29yZCgp
OworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNsb3NlZEtleXdvcmQoKTsKKyAgICBz
dGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBlbmRlZEtleXdvcmQoKTsKKworICAgIHZpcnR1YWwg
fk1lZGlhU291cmNlQmFzZSgpOworCisgICAgdm9pZCBhZGRlZFRvUmVnaXN0cnkoKTsKKyAgICB2
b2lkIHJlbW92ZWRGcm9tUmVnaXN0cnkoKTsKKyAgICB2b2lkIG9wZW5JZkluRW5kZWRTdGF0ZSgp
OworICAgIGJvb2wgaXNPcGVuKCkgY29uc3Q7CisKKyAgICAvLyBIVE1MTWVkaWFTb3VyY2UKKyAg
ICB2aXJ0dWFsIGJvb2wgYXR0YWNoVG9FbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVkaWFTb3VyY2VQcml2YXRlPikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzQ2xvc2VkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRp
b24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
YnVmZmVyZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmSFRNTE1lZGlh
U291cmNlKCkgT1ZFUlJJREUgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkhUTUxN
ZWRpYVNvdXJjZSgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorCisgICAgdm9pZCBzZXREdXJhdGlv
bihkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJlYWR5
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KKyAgICB2b2lkIHNldFJlYWR5
U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9pZCBlbmRPZlN0cmVhbShjb25zdCBB
dG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJik7CisKKworICAgIC8vIEFjdGl2ZURP
TU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKworICAg
IC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CisK
KyAgICAvLyBVUkxSZWdpc3RyYWJsZSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5
JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRp
YVNvdXJjZUJhc2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZUJhc2U+
OjpkZXJlZjsKKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IE1lZGlhU291cmNlQmFzZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25SZWFkeVN0YXRlQ2hh
bmdlKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBhY3Rp
dmVSYW5nZXMoKSBjb25zdCA9IDA7CisKKyAgICBQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGU+IGNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBN
ZWRpYVNvdXJjZVByaXZhdGU6OkNvZGVjc0FycmF5JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSk7CisgICAgR2Vu
ZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNF
dmVudFF1ZXVlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgT3duUHRyPE1lZGlhU291cmNlUHJp
dmF0ZT4gbV9wcml2YXRlOworICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsK
KyAgICBBdG9taWNTdHJpbmcgbV9yZWFkeVN0YXRlOworICAgIE93blB0cjxHZW5lcmljRXZlbnRR
dWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisgICAgYm9vbCBtX2F0dGFjaGVkOworfTsKKworfQor
CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcAppbmRleCAxYzYyNjc0NjdmNDVk
ZTg3NTRjZTUzNmEzNjA4MjUzYmM2ZjJhNGIxLi5kYjQ3NTFlMDA1YmM1ZTIwYTQ4NDNmZjBiNGM3
NjFjOWM5MWYzYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgIk1l
ZGlhU291cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VCYXNlLmgiCiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMzMgKzQ2LDM3IEBA
IE1lZGlhU291cmNlUmVnaXN0cnkmIE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCkKICAg
ICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLXZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0
ZXJNZWRpYVNvdXJjZVVSTChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+
IHNvdXJjZSkKK3ZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0ZXJVUkwoU2VjdXJpdHlP
cmlnaW4qLCBjb25zdCBLVVJMJiB1cmwsIFVSTFJlZ2lzdHJhYmxlKiByZWdpc3RyYWJsZSkKIHsK
KyAgICBBU1NFUlQoJnJlZ2lzdHJhYmxlLT5yZWdpc3RyeSgpID09IHRoaXMpOwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzb3VyY2UtPnNldFBlbmRpbmdBY3Rpdml0eShzb3Vy
Y2UuZ2V0KCkpOwotCisgICAgTWVkaWFTb3VyY2VCYXNlKiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxN
ZWRpYVNvdXJjZUJhc2UqPihyZWdpc3RyYWJsZSk7CisgICAgc291cmNlLT5hZGRlZFRvUmVnaXN0
cnkoKTsKICAgICBtX21lZGlhU291cmNlcy5zZXQodXJsLnN0cmluZygpLCBzb3VyY2UpOwogfQog
Ci12b2lkIE1lZGlhU291cmNlUmVnaXN0cnk6OnVucmVnaXN0ZXJNZWRpYVNvdXJjZVVSTChjb25z
dCBLVVJMJiB1cmwpCit2b2lkIE1lZGlhU291cmNlUmVnaXN0cnk6OnVucmVnaXN0ZXJVUkwoY29u
c3QgS1VSTCYgdXJsKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4gPjo6aXRlcmF0b3IgaXRlciA9IG1fbWVkaWFT
b3VyY2VzLmZpbmQodXJsLnN0cmluZygpKTsKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1l
ZGlhU291cmNlQmFzZT4gPjo6aXRlcmF0b3IgaXRlciA9IG1fbWVkaWFTb3VyY2VzLmZpbmQodXJs
LnN0cmluZygpKTsKICAgICBpZiAoaXRlciA9PSBtX21lZGlhU291cmNlcy5lbmQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBzb3VyY2UgPSBpdGVyLT52YWx1
ZTsKKyAgICBSZWZQdHI8TWVkaWFTb3VyY2VCYXNlPiBzb3VyY2UgPSBpdGVyLT52YWx1ZTsKICAg
ICBtX21lZGlhU291cmNlcy5yZW1vdmUoaXRlcik7Ci0KLSAgICAvLyBSZW1vdmUgdGhlIHBlbmRp
bmcgYWN0aXZpdHkgYWRkZWQgaW4gcmVnaXN0ZXJNZWRpYVNvdXJjZVVSTCgpLgotICAgIHNvdXJj
ZS0+dW5zZXRQZW5kaW5nQWN0aXZpdHkoc291cmNlLmdldCgpKTsKKyAgICBzb3VyY2UtPnJlbW92
ZWRGcm9tUmVnaXN0cnkoKTsKIH0KIAotTWVkaWFTb3VyY2UqIE1lZGlhU291cmNlUmVnaXN0cnk6
Omxvb2t1cE1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgdXJsKQorVVJMUmVnaXN0cmFibGUqIE1l
ZGlhU291cmNlUmVnaXN0cnk6Omxvb2t1cChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBtX21lZGlhU291cmNlcy5nZXQodXJsKS5n
ZXQoKTsKKyAgICByZXR1cm4gbV9tZWRpYVNvdXJjZXMuZ2V0KHVybCk7Cit9CisKK01lZGlhU291
cmNlUmVnaXN0cnk6Ok1lZGlhU291cmNlUmVnaXN0cnkoKQoreworICAgIEhUTUxNZWRpYVNvdXJj
ZTo6c2V0UmVnaXN0cnkodGhpcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdp
c3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJl
Z2lzdHJ5LmgKaW5kZXggOTZkYTZiMzQ3YzcwYzUxMWNiNDY4ZmVkMjE3MjcyOTcxNjY3NTM3NC4u
NDZjMjRkNGUwMzA1ZjZkZGRlOTFjZjRlODQ0MWY0NzdjOTY0OGE2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5
LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNs
dWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC00
MCwyMSArNDEsMjEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsKLWNsYXNz
IE1lZGlhU291cmNlOworY2xhc3MgTWVkaWFTb3VyY2VCYXNlOwogCi1jbGFzcyBNZWRpYVNvdXJj
ZVJlZ2lzdHJ5IHsKK2NsYXNzIE1lZGlhU291cmNlUmVnaXN0cnkgOiBwdWJsaWMgVVJMUmVnaXN0
cnkgewogcHVibGljOgogICAgIC8vIFJldHVybnMgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgTWVkaWFT
b3VyY2VSZWdpc3RyeS4KICAgICBzdGF0aWMgTWVkaWFTb3VyY2VSZWdpc3RyeSYgcmVnaXN0cnko
KTsKIAogICAgIC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lm
aWVkIG1lZGlhIHNvdXJjZS4KLSAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwoY29uc3Qg
S1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKLSAgICB2b2lkIHVucmVnaXN0ZXJNZWRp
YVNvdXJjZVVSTChjb25zdCBLVVJMJik7Ci0KLSAgICBNZWRpYVNvdXJjZSogbG9va3VwTWVkaWFT
b3VyY2UoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVSTChT
ZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmLCBVUkxSZWdpc3RyYWJsZSopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFVSTFJlZ2lzdHJhYmxlKiBsb29rdXAoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7
CiAKIHByaXZhdGU6Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4gPiBt
X21lZGlhU291cmNlczsKKyAgICBNZWRpYVNvdXJjZVJlZ2lzdHJ5KCk7CisgICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZUJhc2U+ID4gbV9tZWRpYVNvdXJjZXM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZmY4MGRmNTQ3NDRhNGEzMTM0ODljMjU2
NzBhNzJkNjUxNDkzZWUyMS4uYWY3NjdlZjQwNDIyNTFiYjNiOGI5MmQyYzc3ZGM5YWFmYmQ5MzRi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzMsMjIgKzMzLDMyIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlNv
dXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8
d3RmL1VpbnQ4QXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKyNpbmNsdWRl
IDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1Jl
ZlB0cjxTb3VyY2VCdWZmZXI+IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKFBhc3NPd25QdHI8U291cmNl
QnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwgUGFzc1JlZlB0cjxNZWRpYVNvdXJj
ZT4gc291cmNlKQorUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRl
KFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwgTWVk
aWFTb3VyY2UqIHNvdXJjZSwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRl
LCBzb3VyY2UpKTsKKyAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBzb3VyY2VCdWZmZXIoYWRvcHRS
ZWYobmV3IFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRlLCBzb3VyY2UsIGFzeW5jRXZl
bnRRdWV1ZSkpKTsKKyAgICBzb3VyY2VCdWZmZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBzb3VyY2VCdWZmZXIucmVsZWFzZSgpOwogfQogCi1Tb3VyY2VCdWZmZXI6OlNvdXJjZUJ1
ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUs
IFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IHNvdXJjZSkKLSAgICA6IG1fcHJpdmF0ZShzb3VyY2VC
dWZmZXJQcml2YXRlKQorU291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBNZWRpYVNvdXJjZSogc291cmNl
LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KHNvdXJjZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9wcml2YXRlKHNv
dXJjZUJ1ZmZlclByaXZhdGUpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCisgICAgLCBtX2FzeW5j
RXZlbnRRdWV1ZShhc3luY0V2ZW50UXVldWUpCisgICAgLCBtX3VwZGF0aW5nKGZhbHNlKQogICAg
ICwgbV90aW1lc3RhbXBPZmZzZXQoMCkKKyAgICAsIG1fYXBwZW5kQnVmZmVyVGltZXIodGhpcywg
JlNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCkKIHsKICAgICBBU1NFUlQobV9w
cml2YXRlKTsKICAgICBBU1NFUlQobV9zb3VyY2UpOwpAQCAtNTYsNiArNjYsNyBAQCBTb3VyY2VC
dWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJj
ZUJ1ZmZlclByaXZhdGUsCiAKIFNvdXJjZUJ1ZmZlcjo6flNvdXJjZUJ1ZmZlcigpCiB7CisgICAg
QVNTRVJUKGlzUmVtb3ZlZCgpKTsKIH0KIAogUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBTb3VyY2VC
dWZmZXI6OmJ1ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApAQCAtODgsMTEgKzk5LDkg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNldFRpbWVzdGFtcE9mZnNldChkb3VibGUgb2Zmc2V0LCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBh
dHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3Rh
dGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoaXNFbmRlZCgpKSB7Ci0g
ICAgICAgIC8vIDQuMSBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQg
bWVkaWEgc291cmNlIHRvICJvcGVuIgotICAgICAgICAvLyA0LjIgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNv
dXJjZS4KLSAgICAgICAgbV9zb3VyY2UtPnNldFJlYWR5U3RhdGUoTWVkaWFTb3VyY2U6Om9wZW5L
ZXl3b3JkKCkpOwotICAgIH0KKyAgICAvLyA0LjEgU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0
ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKKyAgICAvLyA0LjIgUXVldWUg
YSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZS4KKyAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CiAK
ICAgICAvLyA1LiBJZiB0aGlzIG9iamVjdCBpcyB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIGEgbWVk
aWEgc2VnbWVudCB0byBiZSBhcHBlbmRlZCwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VS
UgogICAgIC8vIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KQEAgLTEwNSw0OSArMTE0LDc1IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzZXRUaW1lc3RhbXBPZmZzZXQoZG91YmxlIG9mZnNldCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjphcHBlbmQoUGFzc1JlZlB0cjxVaW50OEFycmF5PiBkYXRhLCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXIoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gU291cmNlQnVm
ZmVyLmFwcGVuZCgpIHN0ZXBzIGZyb20gT2N0b2JlciAxc3QgdmVyc2lvbiBvZiB0aGUgTWVkaWEg
U291cmNlIEV4dGVuc2lvbnMgc3BlYy4KLSAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0
bWwtbWVkaWEvcmF3LWZpbGUvN2JhYjY2MzY4ZjJjL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Uu
aHRtbCNkb20tYXBwZW5kCi0KLSAgICAvLyAyLiBJZiBkYXRhIGlzIG51bGwgdGhlbiB0aHJvdyBh
biBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICAvLyBTZWN0aW9uIDMuMiBhcHBlbmRCdWZmZXIoKQorICAgIC8vIGh0dHBzOi8vZHZjcy53My5v
cmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZlci1hcHBlbmRCdWZmZXItdm9pZC1BcnJheUJ1ZmZlclZp
ZXctZGF0YQorICAgIC8vIDEuIElmIGRhdGEgaXMgbnVsbCB0aGVuIHRocm93IGFuIElOVkFMSURf
QUNDRVNTX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGlmICghZGF0
YSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIC8vIDMuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cKLSAg
ICAvLyAgICBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0
ZXBzLgotICAgIGlmIChpc1JlbW92ZWQoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGFwcGVuZEJ1ZmZlckludGVybmFsKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhLT5kYXRhKCkpLCBkYXRhLT5ieXRlTGVuZ3Ro
KCksIGVjKTsKK30KIAotICAgIC8vIDUuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBt
ZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKLSAgICBpZiAoaXNFbmRlZCgpKSB7Ci0gICAgICAgIC8vIDUuMS4gU2V0IHRoZSBy
ZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCi0gICAgICAgIC8v
IDUuMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3Bl
biBhdCBtZWRpYSBzb3VyY2UuCi0gICAgICAgIG1fc291cmNlLT5zZXRSZWFkeVN0YXRlKE1lZGlh
U291cmNlOjpvcGVuS2V5d29yZCgpKTsKK3ZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXIo
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIC8vIFNlY3Rpb24gMy4yIGFwcGVuZEJ1ZmZlcigpCisgICAgLy8gaHR0cHM6Ly9kdmNzLncz
Lm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLWFwcGVuZEJ1ZmZlci12b2lkLUFycmF5QnVmZmVy
Vmlldy1kYXRhCisgICAgLy8gMS4gSWYgZGF0YSBpcyBudWxsIHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFk
YXRhKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgLy8gU3RlcHMgNiAmIGJleW9uZCBhcmUgaGFuZGxlZCBieSB0aGUgcHJp
dmF0ZSBpbXBsZW1lbnRhdGlvbi4KLSAgICBtX3ByaXZhdGUtPmFwcGVuZChkYXRhLT5kYXRhKCks
IGRhdGEtPmxlbmd0aCgpKTsKKyAgICBhcHBlbmRCdWZmZXJJbnRlcm5hbChzdGF0aWNfY2FzdDx1
bnNpZ25lZCBjaGFyKj4oZGF0YS0+YmFzZUFkZHJlc3MoKSksIGRhdGEtPmJ5dGVMZW5ndGgoKSwg
ZWMpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgLy8gU2VjdGlvbiAzLjIgYWJvcnQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8gaHR0cHM6
Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLWFib3J0LXZvaWQKICAgICAvLyAx
LiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMg
YXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlCiAgICAgLy8gICAgdGhlbiB0aHJv
dyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgIC8vIDIuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlh
IHNvdXJjZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZQogICAgIC8vICAgIHRoZW4gdGhyb3cg
YW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICBpZiAoaXNSZW1vdmVkKCkgfHwgIWlzT3BlbigpKSB7CisgICAgaWYgKGlzUmVtb3ZlZCgpIHx8
ICFtX3NvdXJjZS0+aXNPcGVuKCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIu
dXBkYXRpbmcgYXR0cmlidXRlIGVxdWFscyB0cnVlLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOiAuLi4KKyAgICBhYm9ydElmVXBkYXRpbmcoKTsKKwogICAgIC8vIDQuIFJ1biB0aGUgcmVz
ZXQgcGFyc2VyIHN0YXRlIGFsZ29yaXRobS4KICAgICBtX3ByaXZhdGUtPmFib3J0KCk7CisKKyAg
ICAvLyBGSVhNRSgyMjk0MDgpIEFkZCBzdGVwcyA1LTYgdXBkYXRlIGFwcGVuZFdpbmRvd1N0YXJ0
ICYgYXBwZW5kV2luZG93RW5kLgorfQorCisKK3ZvaWQgU291cmNlQnVmZmVyOjphYm9ydElmVXBk
YXRpbmcoKQoreworICAgIC8vIFNlY3Rpb24gMy4yIGFib3J0KCkgbWV0aG9kIHN0ZXAgMyBzdWJz
dGVwcy4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
ZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXIt
YWJvcnQtdm9pZAorCisgICAgaWYgKCFtX3VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyAzLjEuIEFib3J0IHRoZSBidWZmZXIgYXBwZW5kIGFuZCBzdHJlYW0gYXBwZW5kIGxvb3Ag
YWxnb3JpdGhtcyBpZiB0aGV5IGFyZSBydW5uaW5nLgorICAgIG1fYXBwZW5kQnVmZmVyVGltZXIu
c3RvcCgpOworICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKKworICAgIC8vIDMuMi4g
U2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCisgICAgbV91cGRhdGluZyA9IGZh
bHNlOworCisgICAgLy8gMy4zLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBu
YW1lZCBhYm9ydCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVu
dChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CisKKyAgICAvLyAzLjQuIFF1ZXVlIGEgdGFzayB0
byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZWVuZCBhdCB0aGlzIFNvdXJjZUJ1ZmZl
ciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRlZW5kRXZlbnQp
OwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpCkBAIC0x
NTYsNyArMTkxLDM4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNl
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRlLT5yZW1vdmVkRnJvbU1lZGlhU291
cmNlKCk7Ci0gICAgbV9zb3VyY2UuY2xlYXIoKTsKKyAgICBtX3NvdXJjZSA9IDA7CisgICAgbV9h
c3luY0V2ZW50UXVldWUgPSAwOworfQorCitib29sIFNvdXJjZUJ1ZmZlcjo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zb3VyY2U7Cit9CisKK3ZvaWQgU291cmNl
QnVmZmVyOjpzdG9wKCkKK3sKKyAgICBtX2FwcGVuZEJ1ZmZlclRpbWVyLnN0b3AoKTsKK30KKwor
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogU291cmNlQnVmZmVyOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgU291cmNlQnVmZmVyOjppbnRl
cmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZv
clNvdXJjZUJ1ZmZlcjsKK30KKworRXZlbnRUYXJnZXREYXRhKiBTb3VyY2VCdWZmZXI6OmV2ZW50
VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZl
bnRUYXJnZXREYXRhKiBTb3VyY2VCdWZmZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCit7Cisg
ICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKIH0KIAogYm9vbCBTb3VyY2VCdWZmZXI6Omlz
UmVtb3ZlZCgpIGNvbnN0CkBAIC0xNjQsMTYgKzIzMCw3NCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6
aXNSZW1vdmVkKCkgY29uc3QKICAgICByZXR1cm4gIW1fc291cmNlOwogfQogCi1ib29sIFNvdXJj
ZUJ1ZmZlcjo6aXNPcGVuKCkgY29uc3QKK3ZvaWQgU291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQogewotICAgIEFTU0VSVChtX3NvdXJjZSk7
Ci0gICAgcmV0dXJuIG1fc291cmNlLT5yZWFkeVN0YXRlKCkgPT0gTWVkaWFTb3VyY2U6Om9wZW5L
ZXl3b3JkKCk7CisgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsKKworICAgIFJlZlB0cjxF
dmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKTsKKyAg
ICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVl
dWVFdmVudChldmVudC5yZWxlYXNlKCkpOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlcjo6aXNFbmRl
ZCgpIGNvbnN0Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVySW50ZXJuYWwodW5zaWdu
ZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
QVNTRVJUKG1fc291cmNlKTsKLSAgICByZXR1cm4gbV9zb3VyY2UtPnJlYWR5U3RhdGUoKSA9PSBN
ZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCk7CisgICAgLy8gU2VjdGlvbiAzLjIgYXBwZW5kQnVm
ZmVyKCkKKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
ZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXIt
YXBwZW5kQnVmZmVyLXZvaWQtQXJyYXlCdWZmZXJWaWV3LWRhdGEKKworICAgIC8vIFN0ZXAgMSBp
cyBlbmZvcmNlZCBieSB0aGUgY2FsbGVyLgorICAgIC8vIDIuIElmIHRoaXMgb2JqZWN0IGhhcyBi
ZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVu
dCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIDMuIElmIHRoZSB1cGRhdGluZyBhdHRyaWJ1
dGUgZXF1YWxzIHRydWUsIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9u
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkgfHwgbV91cGRhdGlu
ZykgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gNC4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJl
bnQgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0YXRlIHRoZW4gcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHM6IC4uLgorICAgIG1fc291cmNlLT5vcGVuSWZJbkVuZGVkU3RhdGUoKTsKKwor
ICAgIC8vIFN0ZXBzIDUtNgorCisgICAgLy8gNy4gQWRkIGRhdGEgdG8gdGhlIGVuZCBvZiB0aGUg
aW5wdXQgYnVmZmVyLgorICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuYXBwZW5kKGRhdGEsIHNpemUp
OworCisgICAgLy8gOC4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gdHJ1ZS4KKyAgICBt
X3VwZGF0aW5nID0gdHJ1ZTsKKworICAgIC8vIDkuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2lt
cGxlIGV2ZW50IG5hbWVkIHVwZGF0ZXN0YXJ0IGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4K
KyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVzdGFydEV2ZW50KTsKKworICAg
IC8vIDEwLiBBc3luY2hyb25vdXNseSBydW4gdGhlIGJ1ZmZlciBhcHBlbmQgYWxnb3JpdGhtLgor
ICAgIG1fYXBwZW5kQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFNvdXJj
ZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+KikKK3sK
KyAgICBBU1NFUlQobV91cGRhdGluZyk7CisKKyAgICAvLyBTZWN0aW9uIDMuNS40IEJ1ZmZlciBB
cHBlbmQgQWxnb3JpdGhtCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlh
L3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3NvdXJjZWJ1
ZmZlci1idWZmZXItYXBwZW5kCisKKyAgICAvLyAxLiBSdW4gdGhlIHNlZ21lbnQgcGFyc2VyIGxv
b3AgYWxnb3JpdGhtLgorICAgIC8vIFN0ZXAgMiBkb2Vzbid0IGFwcGx5IHNpbmNlIHdlIHJ1biBT
dGVwIDEgc3luY2hyb25vdXNseSBoZXJlLgorICAgIHNpemVfdCBhcHBlbmRTaXplID0gbV9wZW5k
aW5nQXBwZW5kRGF0YS5zaXplKCk7CisgICAgaWYgKCFhcHBlbmRTaXplKSB7CisgICAgICAgIC8v
IFJlc2l6ZSBidWZmZXIgZm9yIDAgYnl0ZSBhcHBlbmRzIHNvIHdlIGFsd2F5cyBoYXZlIGEgdmFs
aWQgcG9pbnRlci4KKyAgICAgICAgLy8gV2UgbmVlZCB0byBjb252ZXkgYWxsIGFwcGVuZHMsIGV2
ZW4gMCBieXRlIG9uZXMgdG8gfG1fcHJpdmF0ZXwgc28KKyAgICAgICAgLy8gdGhhdCBpdCBjYW4g
Y2xlYXIgaXRzIGVuZCBvZiBzdHJlYW0gc3RhdGUgaWYgbmVjZXNzYXJ5LgorICAgICAgICBtX3Bl
bmRpbmdBcHBlbmREYXRhLnJlc2l6ZSgxKTsKKyAgICB9CisgICAgbV9wcml2YXRlLT5hcHBlbmQo
bV9wZW5kaW5nQXBwZW5kRGF0YS5kYXRhKCksIGFwcGVuZFNpemUpOworCisgICAgLy8gMy4gU2V0
IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCisgICAgbV91cGRhdGluZyA9IGZhbHNl
OworICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKKworICAgIC8vIDQuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZSBhdCB0aGlzIFNvdXJjZUJ1
ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRlRXZlbnQp
OworCisgICAgLy8gNS4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQg
dXBkYXRlZW5kIGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50
KGV2ZW50TmFtZXMoKS51cGRhdGVlbmRFdmVudCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCmluZGV4IGEzNWUzMjVjYTEzODk3YTBlZDgyZWMxMmY3YTA0MzI2YzdjYjM3YjAuLjE2ZTJh
ZDU2YTRjNTlmNzZhMzU3YjI0MDMyYmVmY2M3ZjYyYjE0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNDUgKzMzLDgwIEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0
LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEdlbmVyaWNFdmVudFF1ZXVlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBTb3VyY2VCdWZm
ZXJQcml2YXRlOwogY2xhc3MgVGltZVJhbmdlczsKIAotY2xhc3MgU291cmNlQnVmZmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyPiB7CitjbGFzcyBTb3VyY2VCdWZmZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJs
aWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVm
ZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTb3VyY2VCdWZmZXI+IGNyZWF0ZShQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+
LCBNZWRpYVNvdXJjZSosIEdlbmVyaWNFdmVudFF1ZXVlKik7CiAKICAgICB2aXJ0dWFsIH5Tb3Vy
Y2VCdWZmZXIoKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlci5pZGwgbWV0aG9kcworICAgIGJvb2wg
dXBkYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0aW5nOyB9CiAgICAgUGFzc1JlZlB0cjxU
aW1lUmFuZ2VzPiBidWZmZXJlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgZG91YmxlIHRp
bWVzdGFtcE9mZnNldCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJs
ZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8VWludDhBcnJh
eT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYXBwZW5kQnVmZmVyKFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFwcGVuZEJ1
ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdm9pZCBhYm9ydElmVXBkYXRp
bmcoKTsKICAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKIAorICAgIC8vIEFjdGl2
ZURPTU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKwor
ICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3QgT1ZFUlJJREU7
CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj46OnJlZjsKKyAgICB1c2luZyBS
ZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj46OmRlcmVmOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRXZl
bnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFy
Z2V0RGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVF
dmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKwogcHJpdmF0ZToKLSAgICBTb3VyY2VCdWZmZXIo
UGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4p
OworICAgIFNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+LCBNZWRp
YVNvdXJjZSosIEdlbmVyaWNFdmVudFF1ZXVlKik7CiAKICAgICBib29sIGlzUmVtb3ZlZCgpIGNv
bnN0OwotICAgIGJvb2wgaXNPcGVuKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0VuZGVkKCkgY29uc3Q7
CisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsK
KworICAgIHZvaWQgYXBwZW5kQnVmZmVySW50ZXJuYWwodW5zaWduZWQgY2hhciosIHVuc2lnbmVk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhcHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVy
PFNvdXJjZUJ1ZmZlcj4qKTsKIAogICAgIE93blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBtX3By
aXZhdGU7Ci0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBNZWRpYVNvdXJj
ZSogbV9zb3VyY2U7CisgICAgR2VuZXJpY0V2ZW50UXVldWUqIG1fYXN5bmNFdmVudFF1ZXVlOwor
ICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIAorICAgIGJvb2wgbV91cGRh
dGluZzsKICAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CisKKyAgICBWZWN0b3I8dW5zaWdu
ZWQgY2hhcj4gbV9wZW5kaW5nQXBwZW5kRGF0YTsKKyAgICBUaW1lcjxTb3VyY2VCdWZmZXI+IG1f
YXBwZW5kQnVmZmVyVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmlkbAppbmRleCA3MWYyYjZiNjg0NDYwZDE1YzNhN2VmYjI0NjRmZTY3ZDg5
MmYwNDNjLi5jMTkwYjFjMjdjMDVhMTk1NDZkZGVlZjlhMWI4ZTc4ODllYzZkZDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRs
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMCw5ICszMCwxNCBAQAogIAogWwogICAgIENvbmRpdGlvbmFsPU1FRElBX1NPVVJDRSwKLSAg
ICBJbnRlcmZhY2VOYW1lPVdlYktpdFNvdXJjZUJ1ZmZlcgotXSBpbnRlcmZhY2UgU291cmNlQnVm
ZmVyIHsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAg
RXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0CitdIGludGVyZmFjZSBT
b3VyY2VCdWZmZXIgOiBFdmVudFRhcmdldCB7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiB1cGRhdGluZzsKKyAgCiAgICAgLy8gUmV0dXJucyB0aGUgdGltZSByYW5nZXMgYnVmZmVy
ZWQuCiAgICAgW0dldHRlclJhaXNlc0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFRpbWVS
YW5nZXMgYnVmZmVyZWQ7CiAKQEAgLTQwLDcgKzQ1LDggQEAKICAgICBbU2V0dGVyUmFpc2VzRXhj
ZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHRpbWVzdGFtcE9mZnNldDsKIAogICAgIC8vIEFwcGVu
ZCBzZWdtZW50IGRhdGEuCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBhcHBlbmQoVWludDhB
cnJheSBkYXRhKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFwcGVuZEJ1ZmZlcihBcnJh
eUJ1ZmZlciBkYXRhKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFwcGVuZEJ1ZmZlcihB
cnJheUJ1ZmZlclZpZXcgZGF0YSk7CiAKICAgICAvLyBBYm9ydCB0aGUgY3VycmVudCBzZWdtZW50
IGFwcGVuZCBzZXF1ZW5jZS4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFib3J0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXJMaXN0LmNwcAppbmRleCAxMWRkOTFjMjcwYWZmNmY2YWFjY2EwN2FkYjFiNmNiNjM0ODRhODA5
Li4yNjRhZTRlYjYyZTIyY2Y0NWUzNjhiODNmYjAyYWUwNTAyOTlmNzFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTM5LDUyICszOSwzOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNvdXJjZUJ1ZmZl
ckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJpY0V2ZW50UXVldWUqIGFz
eW5jRXZlbnRRdWV1ZSkKK1NvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRR
dWV1ZSkKICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQogICAgICwgbV9h
c3luY0V2ZW50UXVldWUoYXN5bmNFdmVudFF1ZXVlKQogewogfQogCi11bnNpZ25lZCBsb25nIFNv
dXJjZUJ1ZmZlckxpc3Q6Omxlbmd0aCgpIGNvbnN0CitTb3VyY2VCdWZmZXJMaXN0Ojp+U291cmNl
QnVmZmVyTGlzdCgpCiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19Ci0KLVNvdXJjZUJ1
ZmZlciogU291cmNlQnVmZmVyTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAg
ICBpZiAoaW5kZXggPj0gbV9saXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIG1fbGlzdFtpbmRleF0uZ2V0KCk7CisgICAgQVNTRVJUKG1fbGlzdC5pc0VtcHR5KCkpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmFkZChQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4g
YnVmZmVyKQogewogICAgIG1fbGlzdC5hcHBlbmQoYnVmZmVyKTsKLSAgICBjcmVhdGVBbmRGaXJl
RXZlbnQoZXZlbnROYW1lcygpLndlYmtpdGFkZHNvdXJjZWJ1ZmZlckV2ZW50KTsKKyAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5hZGRzb3VyY2VidWZmZXJFdmVudCk7CiB9CiAKLWJvb2wg
U291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFNvdXJjZUJ1ZmZlciogYnVmZmVyKQordm9pZCBTb3Vy
Y2VCdWZmZXJMaXN0OjpyZW1vdmUoU291cmNlQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgc2l6ZV90
IGluZGV4ID0gbV9saXN0LmZpbmQoYnVmZmVyKTsKICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGJ1ZmZlci0+cmVtb3ZlZEZyb21NZWRpYVNv
dXJjZSgpOworICAgICAgICByZXR1cm47CiAgICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAg
Y3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRyZW1vdmVzb3VyY2VidWZmZXJF
dmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
cmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmNs
ZWFyKCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdC5zaXplKCk7ICsraSkK
LSAgICAgICAgbV9saXN0W2ldLT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CiAgICAgbV9saXN0
LmNsZWFyKCk7Ci0gICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRyZW1v
dmVzb3VyY2VidWZmZXJFdmVudCk7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkucmVt
b3Zlc291cmNlYnVmZmVyRXZlbnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0
ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3ZvaWQgU291cmNl
QnVmZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkK
IHsKICAgICBBU1NFUlQobV9hc3luY0V2ZW50UXVldWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IDBkNDc2
NGUxM2QxMWExNDBlODkxOTFhNTc5YTdmY2QwNGViMTk0ZWUuLjhlZDM0N2YyNjE5YzA1MWMwY2Fm
ODE2M2NhYTQ5MTE2MmRlOTI0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQyLDE5ICs0MywyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKIAotY2xhc3Mg
U291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBw
dWJsaWMgRXZlbnRUYXJnZXQgeworY2xhc3MgU291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMg
RXZlbnRUYXJnZXQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZl
ckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmljRXZl
bnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQsIGFzeW5jRXZlbnRRdWV1ZSkpOwogICAgIH0K
LSAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJMaXN0KCkgeyB9CisgICAgdmlydHVhbCB+U291cmNl
QnVmZmVyTGlzdCgpOwogCi0gICAgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKLSAgICBT
b3VyY2VCdWZmZXIqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIFNvdXJjZUJ1
ZmZlciogaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCB7IHJldHVybiAoaW5kZXggPCBt
X2xpc3Quc2l6ZSgpKSA/IG1fbGlzdFtpbmRleF0uZ2V0KCkgOiAwOyB9CiAKICAgICB2b2lkIGFk
ZChQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4pOwotICAgIGJvb2wgcmVtb3ZlKFNvdXJjZUJ1ZmZl
ciopOworICAgIHZvaWQgcmVtb3ZlKFNvdXJjZUJ1ZmZlciopOworICAgIGJvb2wgY29udGFpbnMo
U291cmNlQnVmZmVyKiBidWZmZXIpIHsgcmV0dXJuIG1fbGlzdC5maW5kKGJ1ZmZlcikgIT0gbm90
Rm91bmQ7IH0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZh
Y2UKQEAgLTcxLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBTb3VyY2VCdWZm
ZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBHZW5lcmljRXZlbnRRdWV1ZSopOwogCi0g
ICAgdm9pZCBjcmVhdGVBbmRGaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9p
ZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CkBAIC04Niw0ICs4OCw1IEBA
IHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuaWRsCmluZGV4IDViMTRhZDhkMGQ2ZWE5OWU3NjQ0NjNhZmQ2ODFhOWY5NjMyMDE3MmIu
LmI4NmY2YWFmNmZmMGEzYWVhMTdiMTQ5YjcyODM3MWUxMDM1NTk5MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0Lmlk
bApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzAsMTkgKzMwLDEyIEBACiAgCiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFLAor
ICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV2ZW50VGFyZ2V0LAotICAgIEludGVyZmFjZU5h
bWU9V2ViS2l0U291cmNlQnVmZmVyTGlzdAotXSBpbnRlcmZhY2UgU291cmNlQnVmZmVyTGlzdCB7
CisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQKK10gaW50ZXJmYWNlIFNvdXJjZUJ1ZmZlckxpc3QgOiBFdmVudFRhcmdldCB7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgIGdldHRl
ciBTb3VyY2VCdWZmZXIgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLQotICAgIC8vIEV2ZW50
VGFyZ2V0IGludGVyZmFjZQotICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAg
ICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgW1JhaXNlc0V4
Y2VwdGlvbl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2ZW50IGV2ZW50KTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjgxMDFkZjE1ZjczYzQ4ZTUyOGQyZjVkYjA3MWU4NGM5NTZiODQ4Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJM
TWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVVJMTWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNp
bmNsdWRlICJET01VUkwuaCIKKyNpbmNsdWRlICJNZWRpYVNvdXJjZUJhc2UuaCIKKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBVUkxN
ZWRpYVNvdXJjZTo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU291cmNlQmFzZSogc291cmNlKQoreworICAgIC8vIFNp
bmNlIFdlYldvcmtlcnMgY2Fubm90IG9idGFpbiBNZWRpYVNvdXJjZSBvYmplY3RzLCB3ZSBzaG91
bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgfHwgIXNvdXJjZSkKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworICAgIHJldHVybiBET01VUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBzb3VyY2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9V
UkxNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxN
ZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NTVlZmI0NWQ3MDNmY2RiY2VjNDIxZDc1NDQ3Mjkx
OTczYzQxYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1VSTE1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVVJMTWVkaWFT
b3VyY2VfaAorI2RlZmluZSBVUkxNZWRpYVNvdXJjZV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBNZWRpYVNvdXJjZUJhc2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
CitjbGFzcyBVUkxNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cmluZyBjcmVh
dGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU291cmNlQmFzZSopOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjllNWZlODNjZDE0NjZmZWJhYzZmOWFlNThiNTNkZjZlMmNhNTY2ZTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1l
ZGlhU291cmNlLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TT1VS
Q0UKK10KK3BhcnRpYWwgaW50ZXJmYWNlIFVSTCB7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3Ry
aW5nIGNyZWF0ZU9iamVjdFVSTChNZWRpYVNvdXJjZT8gc291cmNlKTsKKyAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0
YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKFdlYktpdE1lZGlhU291cmNlPyBzb3VyY2Up
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0TWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9X
ZWJLaXRNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4YzJlYzJhZmIzNmZmNjViZmIzN2M4
OTgzZDFlMGU0ZTBlNWIwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMjA2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNlLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNvdXJjZUJ1
ZmZlclByaXZhdGUuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1Vp
bnQ4QXJyYXkuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFdlYktpdE1l
ZGlhU291cmNlPiBXZWJLaXRNZWRpYVNvdXJjZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBtZWRpYVNvdXJj
ZShhZG9wdFJlZihuZXcgV2ViS2l0TWVkaWFTb3VyY2UoY29udGV4dCkpKTsKKyAgICBtZWRpYVNv
dXJjZS0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1lZGlhU291cmNlLnJlbGVhc2Uo
KTsKK30KKworV2ViS2l0TWVkaWFTb3VyY2U6OldlYktpdE1lZGlhU291cmNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBNZWRpYVNvdXJjZUJhc2UoY29udGV4dCkKK3sK
KyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50UXVldWUoKSk7CisgICAgbV9hY3RpdmVT
b3VyY2VCdWZmZXJzID0gV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgYXN5bmNFdmVudFF1ZXVlKCkpOworfQorCitXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0KiBXZWJLaXRNZWRpYVNvdXJjZTo6c291cmNlQnVmZmVycygpCit7CisgICAgcmV0dXJu
IG1fc291cmNlQnVmZmVycy5nZXQoKTsKK30KKworV2ViS2l0U291cmNlQnVmZmVyTGlzdCogV2Vi
S2l0TWVkaWFTb3VyY2U6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKQoreworICAgIC8vIEZJWE1FKDkx
NjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KKyAgICByZXR1cm4gbV9hY3RpdmVTb3VyY2VC
dWZmZXJzLmdldCgpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXIqIFdlYktpdE1lZGlhU291cmNl
OjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
dGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tYWRkc291cmNlYnVmZmVyCisg
ICAgLy8gMS4gSWYgdHlwZSBpcyBudWxsIG9yIGFuIGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKKyAgICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkgeworICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gMi4g
SWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgLi4uLCB0
aGVuIHRocm93IGEKKyAgICAvLyBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIGlmICghaXNUeXBlU3VwcG9ydGVkKHR5cGUpKSB7CisgICAgICAg
IGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IC8vIDQuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBz
dGF0ZSB0aGVuIHRocm93IGFuCisgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIWlzT3BlbigpKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIDUu
IENyZWF0ZSBhIG5ldyBTb3VyY2VCdWZmZXIgb2JqZWN0IGFuZCBhc3NvY2lhdGVkIHJlc291cmNl
cy4KKyAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZSh0eXBlKTsKKyAgICBWZWN0b3I8U3RyaW5n
PiBjb2RlY3MgPSBjb250ZW50VHlwZS5jb2RlY3MoKTsKKyAgICBPd25QdHI8U291cmNlQnVmZmVy
UHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSA9IGNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUo
Y29udGVudFR5cGUudHlwZSgpLCBjb2RlY3MsIGVjKTsKKyAgICBpZiAoIXNvdXJjZUJ1ZmZlclBy
aXZhdGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZl
cj4gYnVmZmVyID0gV2ViS2l0U291cmNlQnVmZmVyOjpjcmVhdGUoc291cmNlQnVmZmVyUHJpdmF0
ZS5yZWxlYXNlKCksIHRoaXMpOworICAgIC8vIDYuIEFkZCB0aGUgbmV3IG9iamVjdCB0byBzb3Vy
Y2VCdWZmZXJzIGFuZCBmaXJlIGEgYWRkc291cmNlYnVmZmVyIG9uIHRoYXQgb2JqZWN0LgorICAg
IG1fc291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJz
LT5hZGQoYnVmZmVyKTsKKyAgICAvLyA3LiBSZXR1cm4gdGhlIG5ldyBvYmplY3QgdG8gdGhlIGNh
bGxlci4KKyAgICByZXR1cm4gYnVmZmVyLmdldCgpOworfQorCit2b2lkIFdlYktpdE1lZGlhU291
cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNlQnVmZmVyKiBidWZmZXIsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1t
ZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1yZW1v
dmVzb3VyY2VidWZmZXIKKyAgICAvLyAxLiBJZiBzb3VyY2VCdWZmZXIgaXMgbnVsbCB0aGVuIHRo
cm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kCisgICAgLy8gYWJvcnQgdGhl
c2Ugc3RlcHMuCisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAyLiBJZiBzb3VyY2VCdWZm
ZXJzIGlzIGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFu
ZAorICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChpc0Nsb3NlZCgpIHx8ICFtX3Nv
dXJjZUJ1ZmZlcnMtPmxlbmd0aCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAzLiBJZiBzb3VyY2VCdWZmZXIgc3Bl
Y2lmaWVzIGFuIG9iamVjdCB0aGF0IGlzIG5vdCBpbiBzb3VyY2VCdWZmZXJzIHRoZW4KKyAgICAv
LyB0aHJvdyBhIE5PVF9GT1VORF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
KyAgICAvLyA2LiBSZW1vdmUgc291cmNlQnVmZmVyIGZyb20gc291cmNlQnVmZmVycyBhbmQgZmly
ZSBhIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudAorICAgIC8vIG9uIHRoYXQgb2JqZWN0LgorICAg
IGlmICghbV9zb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKSkgeworICAgICAgICBlYyA9IE5P
VF9GT1VORF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyA3LiBEZXN0cm95
IGFsbCByZXNvdXJjZXMgZm9yIHNvdXJjZUJ1ZmZlci4KKyAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZl
cnMtPnJlbW92ZShidWZmZXIpOworCisgICAgLy8gNC4gUmVtb3ZlIHRyYWNrIGluZm9ybWF0aW9u
IGZyb20gYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQgdGV4dFRyYWNrcyBmb3IgYWxsIHRy
YWNrcworICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2VCdWZmZXIgYW5kIGZpcmUgYSBzaW1w
bGUgZXZlbnQgbmFtZWQgY2hhbmdlIG9uIHRoZSBtb2RpZmllZCBsaXN0cy4KKyAgICAvLyBGSVhN
RSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCisKKyAgICAvLyA1LiBJZiBzb3VyY2VC
dWZmZXIgaXMgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhlbiByZW1vdmUgaXQgZnJvbSB0aGF0
IGxpc3QgYW5kIGZpcmUgYQorICAgIC8vIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudCBvbiB0aGF0
IG9iamVjdC4KKyAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCit9
CisKK3ZvaWQgV2ViS2l0TWVkaWFTb3VyY2U6Om9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9t
aWNTdHJpbmcmIG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKQoreworICAg
IGlmIChpc0Nsb3NlZCgpKSB7CisgICAgICAgIG1fc291cmNlQnVmZmVycy0+Y2xlYXIoKTsKKyAg
ICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigpOworICAgICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VjbG9zZUV2ZW50KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChvbGRTdGF0ZSA9PSBvcGVuS2V5d29yZCgpICYmIG5ld1N0YXRl
ID09IGVuZGVkS2V5d29yZCgpKSB7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygp
LndlYmtpdHNvdXJjZWVuZGVkRXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKGlzT3BlbigpKSB7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtp
dHNvdXJjZW9wZW5FdmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK1ZlY3RvcjxS
ZWZQdHI8VGltZVJhbmdlcz4gPiBXZWJLaXRNZWRpYVNvdXJjZTo6YWN0aXZlUmFuZ2VzKCkgY29u
c3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKG1fYWN0
aXZlU291cmNlQnVmZmVycy0+bGVuZ3RoKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytpKQorICAgICAgICBhY3RpdmVSYW5n
ZXNbaV0gPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPml0ZW0oaSktPmJ1ZmZlcmVkKEFTU0VSVF9O
T19FWENFUFRJT04pOworCisgICAgcmV0dXJuIGFjdGl2ZVJhbmdlczsKK30KKworYm9vbCBXZWJL
aXRNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAg
ICAvLyBTZWN0aW9uIDIuMSBpc1R5cGVTdXBwb3J0ZWQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8g
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1pc1R5cGVTdXBwb3J0ZWQtYm9v
bGVhbi1ET01TdHJpbmctdHlwZQorICAgIC8vIDEuIElmIHR5cGUgaXMgYW4gZW1wdHkgc3RyaW5n
LCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ29udGVudFR5cGUgY29udGVudFR5
cGUodHlwZSk7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFtZXRlcigiY29k
ZWNzIik7CisKKyAgICAvLyAyLiBJZiB0eXBlIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBNSU1F
IHR5cGUgc3RyaW5nLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBpZiAoY29udGVudFR5cGUudHlw
ZSgpLmlzRW1wdHkoKSB8fCBjb2RlY3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAvLyAzLiBJZiB0eXBlIGNvbnRhaW5zIGEgbWVkaWEgdHlwZSBvciBtZWRpYSBzdWJ0
eXBlIHRoYXQgdGhlIE1lZGlhU291cmNlIGRvZXMgbm90IHN1cHBvcnQsIHRoZW4gcmV0dXJuIGZh
bHNlLgorICAgIC8vIDQuIElmIHR5cGUgY29udGFpbnMgYXQgYSBjb2RlYyB0aGF0IHRoZSBNZWRp
YVNvdXJjZSBkb2VzIG5vdCBzdXBwb3J0LCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICAvLyA1LiBJ
ZiB0aGUgTWVkaWFTb3VyY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGNvbWJpbmF0
aW9uIG9mIG1lZGlhIHR5cGUsIG1lZGlhIHN1YnR5cGUsIGFuZCBjb2RlY3MgdGhlbiByZXR1cm4g
ZmFsc2UuCisgICAgLy8gNi4gUmV0dXJuIHRydWUuCisgICAgcmV0dXJuIE1JTUVUeXBlUmVnaXN0
cnk6OmlzU3VwcG9ydGVkTWVkaWFTb3VyY2VNSU1FVHlwZShjb250ZW50VHlwZS50eXBlKCksIGNv
ZGVjcyk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgV2ViS2l0TWVkaWFTb3VyY2U6OmludGVy
ZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9y
V2ViS2l0TWVkaWFTb3VyY2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1l
ZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU3NWFlMzYyYWFiNjg4OGVlNDIyODU1MmExNDFkMmZi
MjA4Y2YyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJLaXRN
ZWRpYVNvdXJjZV9oCisjZGVmaW5lIFdlYktpdE1lZGlhU291cmNlX2gKKworI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJNZWRpYVNvdXJjZUJhc2UuaCIKKyNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXZWJLaXRTb3VyY2VCdWZmZXIuaCIKKyNpbmNs
dWRlICJXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRNZWRpYVNvdXJjZSA6IHB1
YmxpYyBNZWRpYVNvdXJjZUJhc2UsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYktpdE1lZGlhU291cmNlKCkgeyB9CisK
KyAgICAvLyBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgbWV0aG9kcworICAgIFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3QqIHNvdXJjZUJ1ZmZlcnMoKTsKKyAgICBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KiBh
Y3RpdmVTb3VyY2VCdWZmZXJzKCk7CisgICAgV2ViS2l0U291cmNlQnVmZmVyKiBhZGRTb3VyY2VC
dWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCByZW1v
dmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNlQnVmZmVyKiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOworCisgICAg
Ly8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
TWVkaWFTb3VyY2VCYXNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VC
YXNlPjo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViS2l0TWVkaWFTb3VyY2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAgLy8gTWVkaWFTb3VyY2VCYXNlIGludGVy
ZmFjZQorICAgIHZpcnR1YWwgdm9pZCBvblJlYWR5U3RhdGVDaGFuZ2UoY29uc3QgQXRvbWljU3Ry
aW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWZWN0b3I8
UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKCkgY29uc3QgT1ZFUlJJREU7CisKKyAg
ICBSZWZQdHI8V2ViS2l0U291cmNlQnVmZmVyTGlzdD4gbV9zb3VyY2VCdWZmZXJzOworICAgIFJl
ZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0PiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJkM2ViZjdlZWJiMjlmZGYzODJjOWE2OTA1M2U4MGYwYWIwYjcxNTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dE1lZGlhU291cmNlLmlkbApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1NRURJ
QV9TT1VSQ0UsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIEV2ZW50VGFyZ2V0LAorICAgIEpT
R2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBDb25zdHJ1Y3RvciwKKyAgICBDb25zdHJ1Y3Rv
ckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKK10gaW50ZXJmYWNlIFdlYktpdE1lZGlh
U291cmNlIDogRXZlbnRUYXJnZXQgeworICAgIC8vIEFsbCB0aGUgc291cmNlIGJ1ZmZlcnMgY3Jl
YXRlZCBieSB0aGlzIG9iamVjdC4KKyAgICByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U291cmNl
QnVmZmVyTGlzdCBzb3VyY2VCdWZmZXJzOworCisgICAgLy8gU3Vic2V0IG9mIHNvdXJjZUJ1ZmZl
cnMgdGhhdCBwcm92aWRlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZC9lbmFibGVkIHRyYWNrcy4KKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U291cmNlQnVmZmVyTGlzdCBhY3RpdmVTb3VyY2VC
dWZmZXJzOworCisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSBk
dXJhdGlvbjsKKworICAgIFtSYWlzZXNFeGNlcHRpb25dIFdlYktpdFNvdXJjZUJ1ZmZlciBhZGRT
b3VyY2VCdWZmZXIoRE9NU3RyaW5nIHR5cGUpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQg
cmVtb3ZlU291cmNlQnVmZmVyKFdlYktpdFNvdXJjZUJ1ZmZlciBidWZmZXIpOworCisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRlOworICAgIAorICAgIFtSYWlzZXNF
eGNlcHRpb25dIHZvaWQgZW5kT2ZTdHJlYW0oW0RlZmF1bHQ9TnVsbFN0cmluZ10gb3B0aW9uYWwg
RE9NU3RyaW5nIGVycm9yKTsKKworICAgIHN0YXRpYyBib29sZWFuIGlzVHlwZVN1cHBvcnRlZCAo
RE9NU3RyaW5nIHR5cGUpOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1OTRi
MjhlODM0NWY4MmMxMmFmMjdlMzU5YmQzOWY0Y2Y2MDcwOTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAK
QEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0U291
cmNlQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJX
ZWJLaXRNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+IFdlYktpdFNv
dXJjZUJ1ZmZlcjo6Y3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNl
QnVmZmVyUHJpdmF0ZSwgUGFzc1JlZlB0cjxXZWJLaXRNZWRpYVNvdXJjZT4gc291cmNlKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0U291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlclBy
aXZhdGUsIHNvdXJjZSkpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXI6OldlYktpdFNvdXJjZUJ1
ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUs
IFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+IHNvdXJjZSkKKyAgICA6IG1fcHJpdmF0ZShz
b3VyY2VCdWZmZXJQcml2YXRlKQorICAgICwgbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV90aW1l
c3RhbXBPZmZzZXQoMCkKK3sKKyAgICBBU1NFUlQobV9wcml2YXRlKTsKKyAgICBBU1NFUlQobV9z
b3VyY2UpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXI6On5XZWJLaXRTb3VyY2VCdWZmZXIoKQor
eworfQorCitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IFdlYktpdFNvdXJjZUJ1ZmZlcjo6YnVmZmVy
ZWQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgLy8gU2VjdGlvbiAzLjEgYnVmZmVy
ZWQgYXR0cmlidXRlIHN0ZXBzLgorICAgIC8vIDEuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJl
bW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRp
YSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAgIElOVkFMSURfU1RBVEVfRVJSIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzUmVtb3ZlZCgpKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKwor
ICAgIC8vIDIuIFJldHVybiBhIG5ldyBzdGF0aWMgbm9ybWFsaXplZCBUaW1lUmFuZ2VzIG9iamVj
dCBmb3IgdGhlIG1lZGlhIHNlZ21lbnRzIGJ1ZmZlcmVkLgorICAgIHJldHVybiBtX3ByaXZhdGUt
PmJ1ZmZlcmVkKCk7Cit9CisKK2RvdWJsZSBXZWJLaXRTb3VyY2VCdWZmZXI6OnRpbWVzdGFtcE9m
ZnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXN0YW1wT2Zmc2V0OworfQorCit2b2lk
IFdlYktpdFNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSBvZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIFNlY3Rpb24gMy4xIHRpbWVzdGFtcE9mZnNldCBh
dHRyaWJ1dGUgc2V0dGVyIHN0ZXBzLgorICAgIC8vIDEuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVu
IHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBt
ZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAgIElOVkFMSURfU1RBVEVfRVJSIGV4
Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzUmVtb3ZlZCgpKSB7Cisg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRp
YSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBz
dGVwczoKKyAgICAvLyA0LjEgU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKKyAgICAvLyA0LjIgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNv
dXJjZS4KKyAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CisKKyAgICAvLyA1LiBJ
ZiB0aGlzIG9iamVjdCBpcyB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIGEgbWVkaWEgc2VnbWVudCB0
byBiZSBhcHBlbmRlZCwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUgorICAgIC8vIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIW1fcHJpdmF0ZS0+c2V0VGltZXN0YW1wT2Zm
c2V0KG9mZnNldCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIDYuIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHRvIHRoZSBu
ZXcgdmFsdWUuCisgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBvZmZzZXQ7Cit9CisKK3ZvaWQgV2Vi
S2l0U291cmNlQnVmZmVyOjphcHBlbmQoUGFzc1JlZlB0cjxVaW50OEFycmF5PiBkYXRhLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBTb3VyY2VCdWZmZXIuYXBwZW5kKCkgc3RlcHMgZnJv
bSBPY3RvYmVyIDFzdCB2ZXJzaW9uIG9mIHRoZSBNZWRpYSBTb3VyY2UgRXh0ZW5zaW9ucyBzcGVj
LgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS83YmFi
NjYzNjhmMmMvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1hcHBlbmQKKworICAg
IC8vIDIuIElmIGRhdGEgaXMgbnVsbCB0aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBl
eGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghZGF0YSkgeworICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIDMuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVm
ZmVycyBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cKKyAgICAvLyAgICBhbiBJ
TlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlm
IChpc1JlbW92ZWQoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gNS4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRl
IG9mIG1lZGlhIHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBzdGF0ZSB0aGVuIHJ1biB0aGUgZm9s
bG93aW5nIHN0ZXBzOgorICAgIC8vIDUuMS4gU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBv
ZiBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCisgICAgLy8gNS4yLiBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVuIGF0IG1lZGlhIHNvdXJjZS4KKyAgICBt
X3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CisKKyAgICAvLyBTdGVwcyA2ICYgYmV5b25k
IGFyZSBoYW5kbGVkIGJ5IHRoZSBwcml2YXRlIGltcGxlbWVudGF0aW9uLgorICAgIG1fcHJpdmF0
ZS0+YXBwZW5kKGRhdGEtPmRhdGEoKSwgZGF0YS0+bGVuZ3RoKCkpOworfQorCit2b2lkIFdlYktp
dFNvdXJjZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gU2VjdGlv
biAzLjIgYWJvcnQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaGFz
IGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZQorICAgIC8vICAgIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAyLiBJZiB0aGUgcmVh
ZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgbm90IGluIHRo
ZSAib3BlbiIgc3RhdGUKKyAgICAvLyAgICB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJS
IGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzUmVtb3ZlZCgpIHx8
ICFtX3NvdXJjZS0+aXNPcGVuKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDQuIFJ1biB0aGUgcmVzZXQgcGFyc2Vy
IHN0YXRlIGFsZ29yaXRobS4KKyAgICBtX3ByaXZhdGUtPmFib3J0KCk7Cit9CisKK3ZvaWQgV2Vi
S2l0U291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKK3sKKyAgICBpZiAoaXNS
ZW1vdmVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpOworICAgIG1fc291cmNlLmNsZWFyKCk7Cit9CisKK2Jvb2wgV2ViS2l0U291
cmNlQnVmZmVyOjppc1JlbW92ZWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9zb3VyY2U7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNmI5ZGZiMjE4NTM2NWYwYTFjZmU3ODcxZGQ2ZTAxNjkzMTViZTU2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VC
dWZmZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJLaXRTb3VyY2VCdWZmZXJfaAorI2Rl
ZmluZSBXZWJLaXRTb3VyY2VCdWZmZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKwor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CitjbGFzcyBUaW1lUmFuZ2VzOworY2xhc3MgV2Vi
S2l0TWVkaWFTb3VyY2U7CisKK2NsYXNzIFdlYktpdFNvdXJjZUJ1ZmZlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYktpdFNvdXJjZUJ1ZmZlcj4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBh
c3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3Vy
Y2U+KTsKKworICAgIHZpcnR1YWwgfldlYktpdFNvdXJjZUJ1ZmZlcigpOworCisgICAgLy8gV2Vi
S2l0U291cmNlQnVmZmVyLmlkbCBtZXRob2RzCisgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBi
dWZmZXJlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgZG91YmxlIHRpbWVzdGFtcE9mZnNl
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8VWludDhBcnJheT4gZGF0YSwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uQ29kZSYpOworCisgICAgdm9p
ZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0U291cmNl
QnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8V2ViS2l0
TWVkaWFTb3VyY2U+KTsKKworICAgIGJvb2wgaXNSZW1vdmVkKCkgY29uc3Q7CisKKyAgICBPd25Q
dHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZlB0cjxXZWJLaXRNZWRp
YVNvdXJjZT4gbV9zb3VyY2U7CisKKyAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjI5MjNiMzM2MzcxZmFlZmRlMDNjMzNkYWM0ZTMyNTA5MDM4NTA5YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyLmlkbApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1N
RURJQV9TT1VSQ0UKK10gaW50ZXJmYWNlIFdlYktpdFNvdXJjZUJ1ZmZlciB7CisKKyAgICAvLyBS
ZXR1cm5zIHRoZSB0aW1lIHJhbmdlcyBidWZmZXJlZC4KKyAgICBbR2V0dGVyUmFpc2VzRXhjZXB0
aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgVGltZVJhbmdlcyBidWZmZXJlZDsKKworICAgIC8vIEFw
cGxpZXMgYW4gb2Zmc2V0IHRvIG1lZGlhIHNlZ21lbnQgdGltZXN0YW1wcy4KKyAgICBbU2V0dGVy
UmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHRpbWVzdGFtcE9mZnNldDsKKworICAg
IC8vIEFwcGVuZCBzZWdtZW50IGRhdGEuCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBhcHBl
bmQoVWludDhBcnJheSBkYXRhKTsKKworICAgIC8vIEFib3J0IHRoZSBjdXJyZW50IHNlZ21lbnQg
YXBwZW5kIHNlcXVlbmNlLgorICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYWJvcnQoKTsKK307
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MjUyOWRmNTNjOGQ1MzE2
MDViM2UxNGZhMDBiZDE5YzM3OTZmNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwCkBAIC0wLDAg
KzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiV2ViS2l0U291cmNl
QnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0U291cmNlQnVmZmVyTGlz
dDo6V2ViS2l0U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIDogbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShhc3luY0V2ZW50
UXVldWUpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6bGVu
Z3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0LnNpemUoKTsKK30KKworV2ViS2l0U291
cmNlQnVmZmVyKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAoreworICAgIGlmIChpbmRleCA+PSBtX2xpc3Quc2l6ZSgpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKK30KKwordm9pZCBXZWJLaXRTb3Vy
Y2VCdWZmZXJMaXN0OjphZGQoUGFzc1JlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+IGJ1ZmZlcikK
K3sKKyAgICBtX2xpc3QuYXBwZW5kKGJ1ZmZlcik7CisgICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2
ZW50TmFtZXMoKS53ZWJraXRhZGRzb3VyY2VidWZmZXJFdmVudCk7Cit9CisKK2Jvb2wgV2ViS2l0
U291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFdlYktpdFNvdXJjZUJ1ZmZlciogYnVmZmVyKQorewor
ICAgIHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGJ1ZmZlcik7CisgICAgaWYgKGluZGV4ID09
IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBidWZmZXItPnJlbW92ZWRG
cm9tTWVkaWFTb3VyY2UoKTsKKyAgICBtX2xpc3QucmVtb3ZlKGluZGV4KTsKKyAgICBjcmVhdGVB
bmRGaXJlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlckV2ZW50KTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpjbGVh
cigpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3Quc2l6ZSgpOyArK2kpCisg
ICAgICAgIG1fbGlzdFtpXS0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOworICAgIG1fbGlzdC5j
bGVhcigpOworICAgIGNyZWF0ZUFuZEZpcmVFdmVudChldmVudE5hbWVzKCkud2Via2l0cmVtb3Zl
c291cmNlYnVmZmVyRXZlbnQpOworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmNy
ZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3sKKyAgICBB
U1NFUlQobV9hc3luY0V2ZW50UXVldWUpOworCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIGV2ZW50LT5zZXRUYXJn
ZXQodGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2ZW50LnJl
bGVhc2UoKSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgV2ViS2l0U291cmNlQnVmZmVyTGlz
dDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRl
cmZhY2VGb3JXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OworfQorCitTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworfQorCitFdmVudFRh
cmdldERhdGEqIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmV2ZW50VGFyZ2V0RGF0YSgpCit7Cisg
ICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0OjplbnN1cmVFdmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVy
biAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dFNvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0U291cmNlQnVmZmVyTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZDI3YjVkODZiZDFlMDc0MmUx
NGFmMDQyZDk1MWE3MDE2MzdlYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaApAQCAtMCwwICsxLDkw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0X2gKKyNkZWZpbmUgV2ViS2l0U291cmNl
QnVmZmVyTGlzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBXZWJLaXRTb3VyY2VCdWZmZXI7CitjbGFzcyBHZW5lcmljRXZlbnRRdWV1
ZTsKKworY2xhc3MgV2ViS2l0U291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YktpdFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgRXZl
bnRUYXJnZXQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmlj
RXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQsIGFzeW5jRXZlbnRRdWV1ZSkp
OworICAgIH0KKyAgICB2aXJ0dWFsIH5XZWJLaXRTb3VyY2VCdWZmZXJMaXN0KCkgeyB9CisKKyAg
ICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0OworICAgIFdlYktpdFNvdXJjZUJ1ZmZlciog
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisKKyAgICB2b2lkIGFkZChQYXNzUmVmUHRyPFdl
YktpdFNvdXJjZUJ1ZmZlcj4pOworICAgIGJvb2wgcmVtb3ZlKFdlYktpdFNvdXJjZUJ1ZmZlciop
OworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYktpdFNv
dXJjZUJ1ZmZlckxpc3Q+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0Pjo6ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0
RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdl
dERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOworCitwcml2YXRlOgorICAg
IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEdlbmVyaWNF
dmVudFF1ZXVlKik7CisKKyAgICB2b2lkIGNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsg
cmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsg
ZGVyZWYoKTsgfQorCisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKyAgICBH
ZW5lcmljRXZlbnRRdWV1ZSogbV9hc3luY0V2ZW50UXVldWU7CisKKyAgICBWZWN0b3I8UmVmUHRy
PFdlYktpdFNvdXJjZUJ1ZmZlcj4gPiBtX2xpc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NjFiOWExNWY2MTZlYzMxZTdkNDc0YzBkOTMwMTk4NGE0YTFkYjcxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TT1VS
Q0UsCisgICAgRXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0CitdIGlu
dGVyZmFjZSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0IDogRXZlbnRUYXJnZXQgeworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgV2ViS2l0U291
cmNlQnVmZmVyIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OworCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDVjMzg4
YWJhZjNhZGVmMTczN2MyZGEzOTkxNjI3MjQxMDA0YzQwZTcuLjBkODRhMWIyM2QxY2Y5NGY2NDJm
OGU3NTkwMmEyZmY3ZWI3NWVjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1DZW50ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCIK
ICNpbmNsdWRlICJVVUlELmgiCkBAIC0zMzAsNiArMzMxLDExIEBAIHZvaWQgTWVkaWFTdHJlYW06
OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZChUaW1lcjxNZWRpYVN0cmVhbT4qKQogICAgIGV2ZW50
cy5jbGVhcigpOwogfQogCitVUkxSZWdpc3RyeSYgTWVkaWFTdHJlYW06OnJlZ2lzdHJ5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0cnkoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaApp
bmRleCBkMTM0NDJmNjIzMWEwM2M1NDk1MDY2NmMyYjlkZTZlYWQ0ZmM4YjNjLi5mODFlMmM4ZThk
Yjk2N2JmN2FkOGY4OWMxMjZlODg3OTVlY2ZjYTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0zNCwxMiArMzQsMTMgQEAKICNp
bmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRy
YWNrLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFTdHJlYW0+LCBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50LCBwdWJsaWMg
RXZlbnRUYXJnZXQsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitjbGFzcyBN
ZWRpYVN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiwgcHVibGljIFVSTFJl
Z2lzdHJhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50LCBwdWJsaWMgRXZl
bnRUYXJnZXQsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwpAQCAtNzksNiAr
ODAsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsK
ICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKKyAgICAvLyBVUkxS
ZWdpc3RyYWJsZQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3QgT1ZF
UlJJREU7CisKIHByb3RlY3RlZDoKICAgICBNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3Ry
eS5jcHAKaW5kZXggODQzZWFhYjRjN2U2OGE0OTFiZWJhOGI2MmNhYTYyYjRmYzlmYTQ4ZS4uZmY1
YzZkYWI4Mzg0YmUxNDMzMzJmNDM3YTdlNTU0Nzc1YTk4ZmRjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnku
Y3BwCkBAIC00MSwxMyArNDEsMTQgQEAgTWVkaWFTdHJlYW1SZWdpc3RyeSYgTWVkaWFTdHJlYW1S
ZWdpc3RyeTo6cmVnaXN0cnkoKQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAotdm9pZCBNZWRp
YVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwmIHVybCwg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQordm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5
OjpyZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmIHVybCwgVVJMUmVnaXN0
cmFibGUqIHN0cmVhbSkKIHsKKyAgICBBU1NFUlQoJnN0cmVhbS0+cmVnaXN0cnkoKSA9PSB0aGlz
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3RyZWFtRGVzY3JpcHRvcnMu
c2V0KHVybC5zdHJpbmcoKSwgc3RyZWFtLT5kZXNjcmlwdG9yKCkpOworICAgIG1fc3RyZWFtRGVz
Y3JpcHRvcnMuc2V0KHVybC5zdHJpbmcoKSwgc3RhdGljX2Nhc3Q8TWVkaWFTdHJlYW0qPihzdHJl
YW0pLT5kZXNjcmlwdG9yKCkpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnVucmVn
aXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwpCit2b2lkIE1lZGlhU3RyZWFtUmVn
aXN0cnk6OnVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYgdXJsKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgbV9zdHJlYW1EZXNjcmlwdG9ycy5yZW1vdmUodXJsLnN0cmluZygp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1SZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVJlZ2lzdHJ5LmgKaW5kZXggMWY5Mjc0NTA5NWU5NGZlNzM0MjA5YWM4Y2UwMzg3Mjk3
YjAwOGIzMC4uZThiZTRjMWI0OTBmOTMwYjFhMTMwNGQwYjFjYzZhMjczY2ViZWY3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lz
dHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVJlZ2lzdHJ5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CkBAIC0zNywxNCArMzgsMTQgQEAgY2xhc3MgS1VSTDsKIGNsYXNzIE1lZGlhU3RyZWFtOwog
Y2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogCi1jbGFzcyBNZWRpYVN0cmVhbVJlZ2lzdHJ5
IHsKK2NsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnkgOiBwdWJsaWMgVVJMUmVnaXN0cnkgewogcHVi
bGljOgogICAgIC8vIFJldHVybnMgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgTWVkaWFTdHJlYW1SZWdp
c3RyeS4KICAgICBzdGF0aWMgTWVkaWFTdHJlYW1SZWdpc3RyeSYgcmVnaXN0cnkoKTsKIAogICAg
IC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIHN0cmVh
bSBkYXRhLgotICAgIHZvaWQgcmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiwgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgdW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJM
KGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmln
aW4qLCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclVSTChjb25zdCBLVVJMJikgT1ZFUlJJREU7CiAKICAgICBNZWRpYVN0
cmVhbURlc2NyaXB0b3IqIGxvb2t1cE1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBTdHJpbmcm
IHVybCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VVJMTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
UkxNZWRpYVN0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1OWFmN2NlMDFlMmNhZTA5MjJkMThlMzZh
Zjc5NmMxOTM5MzMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVVJMTWVkaWFTdHJlYW0uaCIKKworI2luY2x1ZGUgIkRPTVVS
TC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgVVJMTWVkaWFTdHJlYW06OmNyZWF0
ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBNZWRpYVN0cmVhbSogc3RyZWFtKQoreworICAgIC8vIFNpbmNlIFdlYldvcmtlcnMgY2Fubm90
IG9idGFpbiBTdHJlYW0gb2JqZWN0cywgd2Ugc2hvdWxkIGJlIG9uIHRoZSBtYWluIHRocmVhZC4K
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0IHx8ICFzdHJlYW0pCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4g
RE9NVVJMOjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RyZWFtKTsK
K30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZiYWMwYmE5
N2VmZTBlNTQwODljZjYxOGY5ZDI2ZTliZGNhOTk3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBVUkxNZWRpYVN0cmVhbV9oCisjZGVmaW5lIFVSTE1lZGlhU3RyZWFtX2gK
KworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTWVkaWFTdHJlYW07CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBV
UkxNZWRpYVN0cmVhbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cmluZyBjcmVhdGVPYmplY3RV
UkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU3RyZWFtKik7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjhlZGI1YTIx
MzVmNzQ4ZmUwMDE5YzY2Njk3NjhhYTg5NjFhODZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5pZGwKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCitwYXJ0aWFsIGludGVyZmFjZSBVUkwgeworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3RhdGljIERPTVN0cmlu
ZyBjcmVhdGVPYmplY3RVUkwoTWVkaWFTdHJlYW0/IHN0cmVhbSk7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIzNzM0YjIx
ZTdjOGJkNDI3MmUyMDI0NDlmN2Q4MDRmZjE5MzRjNTAuLmM2Y2I5NjEwYWFiMTQ0OWRhOGVjOWUx
N2M1MTk2MzU1OWU1NDBmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxOTYsMTIgKzUxOTYsMzQgQEAKIAkJQ0QyN0Y2RTUx
NDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAv
KiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3
RCAvKiBNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTYxNDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxl
ci5jcHAgKi87IH07CiAJCUNEMzdCMzk4MTVDMUI5NzEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9n
Z2luZ0tleXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAg
Ki87IH07CisJCUNEM0E0OTUyMTdBOUM4QzYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0OTUxMTdB
OUM4QjYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuaCAqLzsgfTsKKwkJQ0QzQTQ5NTQxN0E5
Q0M5MDAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1MDE3QTlDOEI2MDAyNzRFNDIgLyogTWVk
aWFTb3VyY2VCYXNlLmNwcCAqLzsgfTsKKwkJQ0QzQTQ5NUUxN0E5RDAxQjAwMjc0RTQyIC8qIE1l
ZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEM0E0OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi87IH07CisJ
CUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTYxN0E5RDAxQjAwMjc0RTQy
IC8qIE1lZGlhU291cmNlLmggKi87IH07CisJCUNEM0E0OTYxMTdBOUQwMUIwMDI3NEU0MiAvKiBT
b3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzQTQ5NTgxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgKi87IH07
CisJCUNEM0E0OTYyMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0OTU5MTdBOUQwMUIwMDI3
NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCAqLzsgfTsKKwkJQ0QzQTQ5NjQxN0E5RDAxQjAwMjc0RTQy
IC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QzQTQ5NUIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxp
c3QuY3BwICovOyB9OworCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
QTQ5NUMxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCAqLzsgfTsKIAkJQ0Q0
N0IzRkMxNkNDMzRGODAwQTIxRUM4IC8qIENETVByaXZhdGVBVkZvdW5kYXRpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ3QjNGQTE2Q0MzNEY4
MDBBMjFFQzggLyogQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbSAqLzsgfTsKIAkJQ0Q0QUM1MkEx
NDk2QUU5QTAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgaW4gQ29weSBBdWRpbyBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QUM1MjgxNDk2QUUyRjAwODdD
NEVGIC8qIENvbXBvc2l0ZS53YXYgKi87IH07CiAJCUNENTM5M0QzMTc1RTAxODYwMEMwNzEyMyAv
KiBKU01lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgKi87
IH07CiAJCUNENTM5M0Q0MTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTM5M0QyMTc1RTAxODYw
MEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCAqLzsgfTsKIAkJQ0Q1NERFNDcxNzQ2OEI2RjAwNUU1
QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NERFNDUxNzQ2OEI2RjAwNUU1QjM2IC8qIEF1ZGlv
U2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovOyB9OwogCQlDRDU0REU0QjE3NDY5QzZEMDA1RTVCMzYg
LyogQXVkaW9TZXNzaW9uTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMu
Y3BwICovOyB9OworCQlDRDYxRkU2MzE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0TWVkaWFTb3Vy
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFB
OTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJ
Q0Q2MUZFNjQxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1lZGlhU291cmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJERjE1QjVDRTIyMDBE
NTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q2MUZFNjcxNzk0QUFEQjAw
NDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTExNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlh
U291cmNlUmVnaXN0cnkuY3BwICovOyB9OworCQlDRDYxRkU2ODE3OTRBQURCMDA0MTAxRUIgLyog
TWVkaWFTb3VyY2VSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjFBOTQyRTIxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVnaXN0
cnkuaCAqLzsgfTsKKwkJQ0Q2MUZFNjkxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1
ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MUE5NDJFMzE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLzsgfTsK
KwkJQ0Q2MUZFNkExNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTQxNUI1Q0Uy
MjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oICovOyB9OworCQlDRDYxRkU2QjE3OTRB
QURCMDA0MTAxRUIgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEg
LyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgKi87IH07CisJCUNENjFGRTZDMTc5NEFBREIw
MDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5oICovOyB9OworCQlDRDYxRkU3RTE3OTRDQjI2MDA0MTAxRUIg
LyogSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU3QzE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRp
YVNvdXJjZS5jcHAgKi87IH07CisJCUNENjFGRTdGMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktp
dE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDYxRkU3RDE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5oICov
OyB9OworCQlDRDYxRkU4NDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MUZF
ODAxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJ
Q0Q2MUZFODUxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4MTE3OTRDQzU5
MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLzsgfTsKKwkJQ0Q2MUZFODYxNzk0
Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4MjE3OTRDQzU5MDA0MTAx
RUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLzsgfTsKKwkJQ0Q2MUZFODcxNzk0
Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MUZFODMxNzk0Q0M1OTAwNDEwMUVC
IC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oICovOyB9OwogCQlDRDdFMDUyMjE2NTFDMjgy
MDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1MjExNjUxQTg0MTAwQzEyMDFGIC8q
IFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsKIAkJQ0Q4MjAzMEExMzk1QUI2QTAw
Rjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA2MTM5NUFCNkEwMEY5NTZDNiAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q4MjAzMEIxMzk1QUI2QTAwRjk1NkM2IC8qIFdl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwNzEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlci5tbSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAi
LVduby11bmRlZiAtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKQEAgLTUyMDks
NiArNTIzMSwxNiBAQAogCQlDRDgyMDMwRDEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA5MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwogCQlDRDgyMDMxMDEzOTVBQ0U3
MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDgyMDMwRTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2lu
ZG93QW5pbWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0Q4MjAzMTExMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzBG
MTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24ubW0gKi87IH07CisJCUNEOURF
MTc0MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAv
KiBKU01lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q5REUxNzUxN0FBQzc0QzAwRUEzODZEIC8q
IEpTTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggKi87IH07
CisJCUNEOURFMTdBMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3NjE3QUFDNzVC
MDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQlDRDlERTE3QjE3QUFDNzVC
MDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc3MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1
ZmZlci5oICovOyB9OworCQlDRDlERTE3QzE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZm
ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEOURFMTc4MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwICovOyB9
OworCQlDRDlERTE3RDE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3OTE3QUFD
NzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggKi87IH07CisJCUNEOURFMTgxMTdB
QUQ2QTQwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3RTE3QUFENjRFMDBFQTM4NkQgLyogVVJM
TWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlDRDlERTE4MjE3QUFENkE0MDBFQTM4NkQgLyogVVJM
TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEOURFMTdGMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5oICovOyB9Owor
CQlDRDlERTE4NTE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTgzMTdBQjBDRjMw
MEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlDRDlERTE4NjE3QUIwQ0Yz
MDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE4NDE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlh
U291cmNlLmggKi87IH07CiAJCUNEQTc5ODI0MTcwQTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RB
Nzk4MjMxNzBBMjU4MzAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbi5jcHAgKi87IH07CiAJCUNEQTc5
ODI3MTcwQTI3OTEwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25JT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE3OTgyNTE3MEEyNzkwMDBENDVDNTUg
LyogQXVkaW9TZXNzaW9uSU9TLm1tICovOyB9OwogCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUg
LyogQXVkaW9TZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREE3OTgyMTE3MEEyMkRDMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUyMzgsNiArNTI3
MCw3IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYzMzE0NjBCNDYyMDA4
QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2REQgLyog
UmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAq
LzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODMx
Mjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OworCQlDREVFMzkz
NzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAg
LyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdB
QSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREY2
NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDOTE0NUI0M0E3
MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UwMkYwQzQxMUU4M0FERDAwQzY2ODRB
IC8qIFNjcmlwdENvbnRyb2xsZXJCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRTAyRjBDMzExRTgzQUREMDBDNjY4NEEgLyogU2NyaXB0Q29udHJv
bGxlckJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTA0NTMsMTcgKzEwNDg2LDE3IEBACiAJCUIxMEI2OTdFMTQwQzE3NDAwMEJDMUMyNiAv
KiBXZWJWVFRUb2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViVlRUVG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjEw
QjY5N0YxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWVFRUb2tlbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjE4Mjc0OTIxMzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FsbGJhY2tGdW5jdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkRFMTVCNUNFMjIwMEQ1
MjVEMSAvKiBNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0
MkRGMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCMUE5NDJFMDE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2UuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IE1lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE1lZGlhU291cmNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyREYxNUI1Q0UyMjAwRDUyNUQxIC8q
IFdlYktpdE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YktpdE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkUw
MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViS2l0TWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMUE5NDJFMTE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFBOTQyRTIxNUI1Q0UyMjAwRDUy
NUQxIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTb3VyY2VSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCMUE5NDJFMzE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZm
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU1MTVCNUNFMjIwMEQ1MjVEMSAvKiBT
b3VyY2VCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAv
KiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNvdXJjZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
MUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU4MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJM
aXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTMxNUI1Q0UyMjAwRDUyNUQxIC8qIFdl
YktpdFNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJLaXRTb3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
MUE5NDJFNDE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291
cmNlQnVmZmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXIu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1
RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFODE1QjVD
RTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUIxQUQ0RTcxMTNBMTJBNDYwMDg0NkIyNyAvKiBUZXh0VHJhY2tMb2FkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGV4dFRyYWNrTG9hZGVyLmNw
cDsgcGF0aCA9IGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CiAJCUIxQUQ0RTcyMTNBMTJBNDYwMDg0NkIyNyAvKiBUZXh0VHJhY2tMb2FkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFRyYWNrTG9hZGVyLmg7IHBh
dGggPSBsb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJQjFENUVDQjQxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tGdW5jdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE5NDAsNiArMTE5NzMsMTcgQEAKIAkJQ0QyN0Y2RTYx
NDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDM3QjM3NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpYWdub3N0
aWNMb2dnaW5nS2V5cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzdCMzc1
MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTUwMTdBOUM4QjYwMDI3NEU0MiAvKiBNZWRpYVNvdXJj
ZUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VCYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTExN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlh
U291cmNlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZUJhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTUxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291
cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTYxN0E5RDAxQjAwMjc0
RTQyIC8qIE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTU3MTdBOUQw
MUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVk
aWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1ODE3QTlE
MDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEM0E0OTU5MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEM0E0OTVBMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEM0E0OTVCMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZl
ckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1QzE3QTlEMDFC
MDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEM0E0OTVEMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q0N0IzRjkxNkNDMzRGODAwQTIxRUM4IC8qIENETVByaXZhdGVBVkZvdW5k
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ0RNUHJpdmF0ZUFWRm91
bmRhdGlvbi5oOyBwYXRoID0gTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlQVZGb3Vu
ZGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDdCM0ZBMTZDQzM0Rjgw
MEEyMUVDOCAvKiBDRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbTsgcGF0aCA9IE1v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0
ZS53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBh
dWRpby53YXY7IG5hbWUgPSBDb21wb3NpdGUud2F2OyBwYXRoID0gcGxhdGZvcm0vYXVkaW8vcmVz
b3VyY2VzL0NvbXBvc2l0ZS53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTEx
OTUwLDYgKzExOTk0LDEyIEBACiAJCUNENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9y
eUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZW1vcnlJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRERTQ1MTc0NjhCNkYwMDVFNUIzNiAv
KiBBdWRpb1Nlc3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTdDMTc5NENCMjYwMDQxMDFF
QiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDYxRkU3RDE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdE1lZGlhU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTgwMTc5NENDNTkwMDQxMDFFQiAv
KiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYktpdFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNENjFGRTgxMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdFNvdXJjZUJ1ZmZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDYxRkU4MjE3OTRDQzU5MDA0MTAxRUIg
LyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNENjFGRTgzMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJj
ZUJ1ZmZlckxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRT
b3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIw
MTY1MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHBhdGggPSBvYmpjL1dlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdFMDUyMTE2
NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tOyBwYXRoID0gb2JqYy9XZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
ODIwMzA2MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTU4LDYgKzEyMDA4LDE3
IEBACiAJCUNEODIwMzA5MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5IVURX
aW5kb3dDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjAzMEUxMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0Fu
aW1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJXaW5kb3dBbmlt
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjAzMEYxMzk1QUNFNzAw
Rjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYldpbmRvd0FuaW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVNvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAv
KiBKU01lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVk
aWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzYxN0FBQzc1
QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q5REUxNzcxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTc4MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1
ZmZlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTb3Vy
Y2VCdWZmZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzkx
N0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q5REUxN0UxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxN0YxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVSTE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEOURFMTgwMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVVJMTWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDlERTE4MzE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTg0MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVk
aWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTE1lZGlhU291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTc5ODIxMTcwQTIyREMwMEQ0
NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTc5ODIyMTcwQTI0RjQwMEQ0NUM1NSAvKiBB
dWRpb1Nlc3Npb25MaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nlc3Npb25MaXN0ZW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREE3OTgyMzE3MEEyNTgzMDBENDVD
NTUgLyogQXVkaW9TZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEF1ZGlvU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjAx
Niw2ICsxMjA3Nyw4IEBACiAJCUNERUE3NjMzMTQ2MEI0NjIwMDhCMzFGMSAvKiBDbG9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbG9jay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJG
dWxsU2NyZWVuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZ1bGxT
Y3JlZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODMxMjc2MjMwNDAw
Qjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVyRnVsbFNjcmVlbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVFMzkzODE3OTc0Mjc0MDAxRDc1ODAg
LyogVVJMUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMUmVnaXN0cnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQzkxNDVCNDNBNzAwQzRDN0FBIC8qIE1lZGlhQ29u
dHJvbGxlckludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YUNvbnRyb2xsZXJJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RG
NjVDQ0MxNDVCNkFGRTAwQzRDN0FBIC8qIEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxNZWRpYUVsZW1lbnRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTAyRjBDMzExRTgzQUREMDBD
NjY4NEEgLyogU2NyaXB0Q29udHJvbGxlckJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyaXB0Q29udHJvbGxlckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEzMjc5LDYgKzEzMzQyLDcgQEAKIAkJCQlBODNCNzkwODBDQ0FGRjJCMDAwQjA4MjUg
LyogSFRNTCAqLywKIAkJCQlBQTkzQzg1MDE3NUQ1QjIwMDBGRDNDRTMgLyogSW5kaWVVSSAqLywK
IAkJCQkxQzVGQUVDQTBEQ0ZEOEM5MDBENThGNzggLyogSW5zcGVjdG9yICovLAorCQkJCUNENjFG
RTdCMTc5NENBMDIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZSAqLywKIAkJCQkzMzUwM0M5QzEwMTc5
QTlBMDAzQjQ3RTEgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkxQUMyMjYwMjBEQjY5RUE3MDA4
OUI2NjkgLyogT2ZmbGluZSAqLywKIAkJCQlBOUQyNDdGOTBENzU3RTQxMDBGREY5NTkgLyogUGx1
Z2lucyAqLywKQEAgLTE1OTA4LDYgKzE1OTcyLDggQEAKIAkJCQlFNDQ2MTM5MjBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5jcHAgKi8sCiAJCQkJRTQ0NjEzOTMwQ0Q2MzMxMDAw
RkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQuaCAqLywKIAkJCQlFNDQ2MTM5NDBDRDYzMzEwMDBG
QURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5pZGwgKi8sCisJCQkJQ0Q5REUxODMxN0FCMENGMzAw
RUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q5REUxODQxN0FCMENGMzAw
RUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5oICovLAogCQkJCUE4RUE3OUVDMEExOTE2REYwMEE4
RUY1RiAvKiBIVE1MTWVudUVsZW1lbnQuY3BwICovLAogCQkJCUE4RUE3OUU4MEExOTE2REYwMEE4
RUY1RiAvKiBIVE1MTWVudUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUU0MzBBMUQyNjlFMDBCNDJC
MjUgLyogSFRNTE1lbnVFbGVtZW50LmlkbCAqLywKQEAgLTE2MDcxLDYgKzE2MTM3LDcgQEAKIAkJ
CQlGNTVCM0Q5NjEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuaCAqLywKIAkJ
CQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuY3BwICovLAogCQkJ
CTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5Eb2N1bWVudC5oICovLAorCQkJCUNE
RUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLywKIAkJCQkx
MEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oICovLAogCQkJCUY1
NUIzRDk3MTI1MUYxMkQwMDNFRjI2OSAvKiBSYWRpb0lucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1
QjNEOTgxMjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBlLmggKi8sCkBAIC0xNjEwNSw2
ICsxNjE3Miw3IEBACiAJCQkJQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5o
ICovLAogCQkJCUY1NUIzREE5MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICov
LAogCQkJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKKwkJ
CQlDREVFMzkzODE3OTc0Mjc0MDAxRDc1ODAgLyogVVJMUmVnaXN0cnkuaCAqLywKIAkJCQlGNUEx
NTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLAogCQkJCUY1
QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovLAogCQkJCTE1
Qzc3MDhCMTAwRDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmNwcCAqLywKQEAgLTE3Njgy
LDE3ICsxNzc1MCwzMSBAQAogCQlCMUE5NDJERDE1QjVDRTIyMDBENTI1RDEgLyogbWVkaWFzb3Vy
Y2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUIxQTk0
MkRFMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5jcHAgKi8sCi0JCQkJQjFBOTQyREYx
NUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmggKi8sCi0JCQkJQjFBOTQyRTAxNUI1Q0Uy
MjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmlkbCAqLywKKwkJCQlDRDNBNDk1NTE3QTlEMDFCMDAy
NzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNEM0E0OTU2MTdBOUQwMUIwMDI3NEU0
MiAvKiBNZWRpYVNvdXJjZS5oICovLAorCQkJCUNEM0E0OTU3MTdBOUQwMUIwMDI3NEU0MiAvKiBN
ZWRpYVNvdXJjZS5pZGwgKi8sCisJCQkJQ0QzQTQ5NTAxN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlh
U291cmNlQmFzZS5jcHAgKi8sCisJCQkJQ0QzQTQ5NTExN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlh
U291cmNlQmFzZS5oICovLAogCQkJCUIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNv
dXJjZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQlCMUE5NDJFMjE1QjVDRTIyMDBENTI1RDEgLyogTWVk
aWFTb3VyY2VSZWdpc3RyeS5oICovLAotCQkJCUIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBT
b3VyY2VCdWZmZXIuY3BwICovLAotCQkJCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3Vy
Y2VCdWZmZXIuaCAqLywKLQkJCQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVm
ZmVyLmlkbCAqLywKLQkJCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVy
TGlzdC5jcHAgKi8sCi0JCQkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZl
ckxpc3QuaCAqLywKLQkJCQlCMUE5NDJFODE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVy
TGlzdC5pZGwgKi8sCisJCQkJQ0QzQTQ5NTgxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZl
ci5jcHAgKi8sCisJCQkJQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5o
ICovLAorCQkJCUNEM0E0OTVBMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaWRsICov
LAorCQkJCUNEM0E0OTVCMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAq
LywKKwkJCQlDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICov
LAorCQkJCUNEM0E0OTVEMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAq
LywKKwkJCQlDRDlERTE3RTE3QUFENjRFMDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuY3BwICov
LAorCQkJCUNEOURFMTdGMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5oICovLAor
CQkJCUNEOURFMTgwMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5pZGwgKi8sCisJ
CQkJQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCAqLywK
KwkJCQlCMUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaCAqLywK
KwkJCQlCMUE5NDJFMDE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaWRsICov
LAorCQkJCUIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuY3Bw
ICovLAorCQkJCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIu
aCAqLywKKwkJCQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVy
LmlkbCAqLywKKwkJCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVm
ZmVyTGlzdC5jcHAgKi8sCisJCQkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNv
dXJjZUJ1ZmZlckxpc3QuaCAqLywKKwkJCQlCMUE5NDJFODE1QjVDRTIyMDBENTI1RDEgLyogV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5pZGwgKi8sCiAJCQkpOwogCQkJbmFtZSA9IG1lZGlhc291cmNl
OwogCQkJcGF0aCA9IE1vZHVsZXMvbWVkaWFzb3VyY2U7CkBAIC0xOTQ2NCw2ICsxOTU0NiwyNSBA
QAogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNE
NjFGRTdCMTc5NENBMDIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZSAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8q
IEpTTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAvKiBK
U01lZGlhU291cmNlLmggKi8sCisJCQkJQ0Q5REUxNzYxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291
cmNlQnVmZmVyLmNwcCAqLywKKwkJCQlDRDlERTE3NzE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3Vy
Y2VCdWZmZXIuaCAqLywKKwkJCQlDRDlERTE3ODE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VC
dWZmZXJMaXN0LmNwcCAqLywKKwkJCQlDRDlERTE3OTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3Vy
Y2VCdWZmZXJMaXN0LmggKi8sCisJCQkJQ0Q2MUZFODAxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2Vi
S2l0U291cmNlQnVmZmVyLmNwcCAqLywKKwkJCQlDRDYxRkU4MTE3OTRDQzU5MDA0MTAxRUIgLyog
SlNXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLywKKwkJCQlDRDYxRkU4MjE3OTRDQzU5MDA0MTAxRUIg
LyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKKwkJCQlDRDYxRkU4MzE3OTRDQzU5
MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggKi8sCisJCQkJQ0Q2MUZFN0Mx
Nzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNENjFG
RTdEMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmggKi8sCisJCQkpOwor
CQkJbmFtZSA9IE1lZGlhU291cmNlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1lZGlhICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxMzU1LDYgKzIxNDU2LDcgQEAK
IAkJCQlGRDE2NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNhYmxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEwMEVFNzYxNTQ2RUFDMTAwQkExMUQxIC8qIERlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QzlBQkY5MTM1N0EzQkYwMEY1NTAzRiAv
KiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNjgxNzk0
QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNDQzJCNTE0MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNDQzJCNTE2MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNDA0LDYgKzIxNTA2LDcgQEAKIAkJCQk4NUQz
ODlCMjBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVF
NzExOEQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUF0dHJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5NDZFRUYxMDdGREJBQzAwODU3MTkzIC8qIERPTUJlZm9yZUxvYWRFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFODUxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291
cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTJEOTlFNzEwRTJCQzFDMDA0OTYzMzcg
LyogRE9NQmxvYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUyRDk5RUExMEUyQkMzODAwNDk2MzM3
IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwODlDRDcwQTk4QzQy
ODAwQTI3NUFBIC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTU2Myw2
ICsyMTY2Niw3IEBACiAJCQkJODU5OTJFQkUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5r
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQjgwQUM1RDUzNTAwNTMyNzBGIC8q
IERPTUhUTUxMaW5rRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVG
MzBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1hcEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1RTcxMUI5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWFwRWxl
bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUxNTc5RjBDMDNCQkQzMDA4QkIw
RUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUxNTZF
QTBDMDNCNzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjE1NzcsNiArMjE2ODEsNyBAQAogCQkJCTg1QkE0RDE1MEFBNjg4Njgw
MDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3
MTFCRTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0RWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NUYzMkFFRTBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdy
b3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUxODIxN0FBRDZBNDAwRUEzODZE
IC8qIFVSTE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFCRjBBQzVENTM1
MDA1MzI3MEYgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTQwNzU2QjBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1NDA3NTZEMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1M
T3B0aW9uRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTg2LDYgKzIxNjkx
LDcgQEAKIAkJCQk4NUU3MTFDMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFncmFwaEVs
ZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFQ0JFRjcwQUE3NjI2OTAwNTQ0
RjBCIC8qIERPTUhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUMy
MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MUGFyYW1FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNENjFGRTZBMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MTgzQjQ4MEFBNjkyNjEwMEYxOUZBMyAvKiBET01I
VE1MUHJlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQzMwQUM1RDUzNTAwNTMy
NzBGIC8qIERPTUhUTUxQcmVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0
MjI2RTk1MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTIyNjMwLDYgKzIyNzM2LDcgQEAKIAkJCQk0MzU4RTg3RDEzNjBBMkVFMDBF
NDc0OEMgLyogSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkZBM0Q3OTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZsb29kRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJGQTNEN0IwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGdW5jQUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTdGMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dl
YktpdE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3RDBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdGRUZ1bmNCRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNE
N0YwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGdW5jR0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyRkEzRDgxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRnVuY1JFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIyNzYwLDYgKzIyODY3LDcgQEAKIAkJCQlCQzJDQkY0RTE0MEYx
QUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkUzRkFEMzkxNDczM0Y0MDExRTQyMzA3IC8qIEpTV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDIyRTQyMzA3IC8qIEpTV2ViR0xEZWJ1
Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTUyMTdBOUM4QzYwMDI3NEU0MiAv
KiBNZWRpYVNvdXJjZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFM0ZBRDM5MTQ3MzNGNDAw
MEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3
Qjk5ODEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEZyYW1lYnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIyOTg5LDYgKzIzMDk3LDcgQEAKIAkJCQlGNEVBRjRBRjEwQzc0
MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTAw
MTQ2MjhCMTAzQ0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkU5RTg5RkMxNkUyREMwNTAwQTkwOEY4IC8qIE9yaWdpbkxvY2suaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNEOURFMTg2MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZENTgxRkFGMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxh
dG9yTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1REQwRTgxQjhERDAwQjI1OTY1IC8q
IE91dGxpbmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwRDU3MzcwQTVDNzdGRTAwN0VE
RDRDIC8qIE92ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMyMjEsNiArMjMzMzAs
NyBAQAogCQkJCTQzNjcwOEM5MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lu
bGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTYyMTdBOUQwMUIw
MDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENCMTJE
OUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQURERjFBRDcxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4g
SGVhZGVycyAqLywKQEAgLTIzMjcyLDYgKzIzMzgyLDcgQEAKIAkJCQk1MTRDNzY3OTBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3NjdB
MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE0Qzc2N0IwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTY0MTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRN
ZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFNDE0MzQxNkE2NTk2MzAwQzYzM0M3
IC8qIFJlc291cmNlSGFuZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNGMEFE
QkE1REUwMEE0NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBB
M0E3MzExNDA1QTM5ODAwRkI4RUQzIC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMzQwMCw2ICsyMzUxMSw3IEBACiAJCQkJNDFFMUIxRDQwRkY1OTg2OTAwNTc2
QjNCIC8qIFNoYXJlZFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTY4RTgxMDIyNkU4
OTAwOUJDODI3IC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUQxNjhFQTEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNkMxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJj
ZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4MzlDMTYzNzQwQTcwMDA3QjY5
MiAvKiBTaGFyZWRXb3JrZXJTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTY4RUUx
MDIyNkU4OTAwOUJDODI3IC8qIFNoYXJlZFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJDM0RBNjUwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIzNTQ4LDcgKzIzNjYwLDkgQEAKIAkJCQkwOEQ0NkNFMzEyN0FENUZDMDA4OTY5
NEIgLyogU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFGQjk2
N0IxMzgzRDY0NjAwQUM4QTRDIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJP
ZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MjNEMTU5MTI3QUQ2QUMwMDBFQkM5NSAvKiBTVkdB
bmltYXRlZEludGVnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTg3MTc5NENDNTkwMDQx
MDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcx
RTYyM0QxMTUxRjcyQTYwMDM2RTJGNCAvKiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURFMTdCMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1Nv
dXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5MDIxQTkxMjZFRjVERTAwOTJENUVB
IC8qIFNWR0FuaW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODkwMjFBRDEyNkVG
NUU5MDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODhBMEUwNDEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmLmggaW4gSGVhZGVycyAqLywKQEAgLTIzODA1LDYgKzIzOTE5LDcgQEAKIAkJCQlCQ0VGNDVF
OTBFNjg3NzY3MDAxQzEyODcgLyogVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MEZDNjhBMTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURlY29kZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VC
dWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODI0QjQ2NTBFMkVGMkVBMDA4MUE3Qjcg
LyogVGV4dFJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNEIwRDAwNkMxRDAwRUY2RjI2
IC8qIFRleHRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NTlFOTQwMTRFRjFDRjgwMDI2
QTJERCAvKiBUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MzgsNiArMjM5NTMsNyBA
QAogCQkJCTQ5RTkxMkFFMEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNrTGlzdEJh
c2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQzQwRUY4NkQ0NzAwOUQwQ0FGIC8q
IFRyYW5zZm9ybWF0aW9uTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjQ4NEY0RDE3MUY4
MjFFMDAwNDA3NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OUU5MTFDRTBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIzOTg3LDYgKzI0MTAzLDcgQEAKIAkJCQlGNTVCM0RFMDEyNTFGMTJEMDAzRUYy
NjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNTEwQTQ0RUZD
NzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODBGNDc0MDlB
MTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURFMTc1MTdB
QUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDEx
RENCMTE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMjNFNTY5MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENvbnRleHQuaCBp
biBIZWFkZXJzICovLApAQCAtMjQ2MDUsNiArMjQ3MjIsNyBAQAogCQkJCUE4MTg3MjI1MDk3N0Qz
QzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RDgy
MzhCMEFGOTJERjYwMDA0RjA1NyAvKiBDaHJvbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUJB
RjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUNEOURFMTc0MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDgyMCw2ICsyNDkzOCw3IEBACiAJCQkJODUw
MzJEREMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1bGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk4NTAzMkRERTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODUwMzJERTAwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VS
dWxlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxN0ExN0FBQzc1QjAwRUEzODZEIC8qIEpT
U291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1OEMzODJEMEFBOEU0MDUwMEIx
ODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMy
REUyMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODUwMzJERTQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0Lm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNDg3NCw2ICsyNDk5Myw3IEBACiAJCQkJODVERjgxOTYwQUE3N0U0QjAwNDg2QUQ3
IC8qIERPTUhUTUxGcmFtZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODE5ODBB
QTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1OTkyRUJCMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKKwkJCQlDRDNBNDk2NDE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVm
ZmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTE4M0I0NTBBQTY5MjYxMDBGMTlGQTMg
LyogRE9NSFRNTEhlYWRpbmdFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVFQ0JFRjIw
QUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk4NTk5MkVCRDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yNTA2OSw2ICsyNTE4OSw3IEBACiAJCQkJODk4Nzg1NjQxMjJDQTA2NDAw
M0FBQkRBIC8qIEZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2
MDMwNkMwQ0M0MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyNkMxN0EzRjE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3RlbUlPUy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCUNEM0E0OTU0MTdBOUNDOTAwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0QjNGNzYwQzcyMjA1NTAwMDUzMERGIC8qIEZpbGVT
eXN0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYwMzAwQjBDQzQyNTEyMDBDOEFDMjUg
LyogRmlsZVN5c3RlbVBPU0lYLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2QzhEMTIyQjhB
M0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUzMTUsNiAr
MjU0MzYsNyBAQAogCQkJCUMzQ0YxN0E2MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2Vy
dmVyUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NkYwQjA1MzgxNDAwMkNF
NjRGIC8qIEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzRDI1OTc3MTNDODE2RjQwMDYw
ODU1OSAvKiBJbWFnZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDlERTE3QzE3QUFD
NzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyQTEwQjk0MEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTIyOTJCMjdDMTM1NjY2OTQwMENGMTFFRiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU1RTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VD
Ry5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTEzLDYgKzI1NjM1LDcgQEAKIAkJCQk1MkNDQTlF
MjE1RTNGNjJDMDA1M0M3N0YgLyogSlNET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQ0U1M0RGMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMwMDAxRkU2ODIgLyogSlNET01QYXRo
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENjFGRTZCMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5RDI0N0ZFMEQ3NTdF
NjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgw
MDBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOUM2RTY0QzBENzQ2NUU3MDA2NDQyRTkgLyogSlNET01QbHVnaW5BcnJheUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTYzLDYgKzI1Njg2LDcgQEAKIAkJCQlGRTgwREE2MzBF
OUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRTgwREE2NTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDNBNDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ4MkI3NTExMTk4Q0I2QjAwQkZCMDA1IC8q
IEpTSGFzaENoYW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTRFMEMyNzVD
NjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFN0IxOTMw
RDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI1NTgyLDYgKzI1NzA2LDcgQEAKIAkJCQk5MzkyMjYyRDEwMzIxMDdCMDA2RTdENUQgLyogSlNI
VE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0NCQUQ0MDBD
MThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0NCQUQzQjBDMThCRkY4MDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDRDYxRkU4NDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRT
b3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEExRTcxOTAxNEUxMDFFNDAwNjI2
RjlEIC8qIEpTSFRNTENvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1QzA0
MUU2MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDM1OUQ4QkUxMjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRNTERldGFpbHNFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU4OTMsNiArMjYwMTgsNyBAQAogCQkJCUIyRkEz
RENBMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
QWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzRENDMEFCNzVBNkYwMDBFNUFDNCAvKiBK
U1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyQzk2RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0QzQTQ5NjExN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RDRTBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdQYXRoU2VnTGluZXRvQWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREQwMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREQyMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsUmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYxMTAsNiArMjYyMzYsNyBA
QAogCQkJCUQzNDA2MjlCMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRp
YVF1ZXJ5TWF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDY3MUE3NzE1OUJCMDcwMDAx
OTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMTcwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1N0VEQTA4MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1v
cnlQcmVzc3VyZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3RURBMEIxMzg1Q0JE
ODAwNEUwNjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbSBpbiBTb3VyY2VzICovLApA
QCAtMjYzMjgsNiArMjY0NTUsNyBAQAogCQkJCTQzOTA0NkRCMTJEQTI1RTgwMEFGODBBMiAvKiBS
ZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZERDEyREEy
NUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
MzkwNDZERjEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0Q2MUZFNjMxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1lZGlhU291
cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkUxMTJEQTI1RTgwMEFGODBBMiAvKiBS
ZW5kZXJNYXRoTUxSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkUzMTJEQTI1RTgw
MEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUI3QTIw
OEQyRTEyOTc5QjRBRTE5REU2IC8qIFJlbmRlck1hdGhNTFNwYWNlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjY1NzMsNiArMjY3MDEsNyBAQAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAv
KiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFG
MEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0Q5REUxODUxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUUzRjlDNzBEQTA1OURDMDAyNTA5MTEgLyogU3RvcmFnZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDNTE2MEVFQTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MTAyRUQwMEZEOUVGOEMwMEZBRkYwNCAvKiBT
dG9yYWdlQXJlYVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjY5NCw2ICsyNjgyMyw3IEBA
CiAJCQkJQjIyMjc5REMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRmxvb2RFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyMjI3OURGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNB
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlFMjBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHRkVGdW5jQkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZFN0UxNzk0
Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjIyMjc5RTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY0dFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyMjI3OUU4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNSRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlFQjBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY3NTQsNiAr
MjY4ODQsNyBAQAogCQkJCTg0NzZDOUVBMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZH
UGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MTlEMkFDMTIw
RDkyRkMwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDRDYxRkU4NjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTU4MEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdQYXRoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDc2QzlFRjExREY2QTU4MDA1
NTVCMDIgLyogU1ZHUGF0aFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0E4MDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
NjgzNyw2ICsyNjk2OCw3IEBACiAJCQkJOTNGMTlBOUQwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRS
ZXNvdXJjZURlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc2RENDRTExM0I0Rjk2NjAw
MkVCRUZDIC8qIFRleHRSdW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNEEwRDAwNkMx
RDAwRUY2RjI2IC8qIFRleHRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxODEx
N0FBRDZBNDAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3NTlFOTNGMTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTc1OUU5NDIxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzFBOUVDMjE2OEZCQzQzMDAyNjI5RjkgLyogVGV4dFRyYWNrQ3VlR2Vu
ZXJpYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2OTg0LDYgKzI3MTE2LDcgQEAKIAkJCQkwRkNG
MzMyQzBGMkI5QTI1MDA0QjY3OTUgLyogV2ViVGlsZWRMYXllci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBQTcxNjFFMTQ5QkYyRkEwMDE2RUMxOSAvKiBXZWJUaWxlTGF5ZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDRDgyMDMwQjEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENjFGRTY5MTc5NEFBREIwMDQxMDFF
QiAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q4MjAzMEQx
Mzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlGMTIxNzFGNTE2QThDRUQyMDAwMDUzQ0EgLyogV2ViVlRU
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDIxQTgwMjEzRUNFNURGMDBCQjcwNjQg
LyogV2ViVlRUUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjcwMDIsNiArMjcxMzUsNyBA
QAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTAxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRl
YnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNFMjY0MzAxNDc0ODk5MTAwNUE4
NTg4IC8qIFdvcmtlckV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RFRTM5Mzcx
Nzk3NDI1OTAwMUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkU0MzQ2NDgwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckdsb2JhbFNjb3BlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3MTJBNjExMTUwMDkwQ0UwMDQ4QUYxMCAvKiBXb3JrZXJHbG9iYWxT
Y29wZUluZGV4ZWREYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0Y4RTY2NTE1MUQ0
QTRCMDBEMkQxODEgLyogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggYzFkNjVjYThlZjA3YWI0MzAyMTkx
YzE5OWU4NWE0MzcyNGE1MTlkOS4uZDYyOTg2YmQwMTZlZWEyN2RhMzY2YWZhNjVmZTA0YmQ2YjMx
ZDU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xNjYsNiArMTY2LDE0IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh3ZWJraXRiZWdpbmZ1bGxzY3JlZW4pIFwKICAgICBt
YWNybyh3ZWJraXRlbmRmdWxsc2NyZWVuKSBcCiAgICAgXAorICAgIG1hY3JvKGFkZHNvdXJjZWJ1
ZmZlcikgXAorICAgIG1hY3JvKHJlbW92ZXNvdXJjZWJ1ZmZlcikgXAorICAgIG1hY3JvKHNvdXJj
ZW9wZW4pIFwKKyAgICBtYWNybyhzb3VyY2VlbmRlZCkgXAorICAgIG1hY3JvKHNvdXJjZWNsb3Nl
KSBcCisgICAgbWFjcm8odXBkYXRlKSBcCisgICAgbWFjcm8odXBkYXRlZW5kKSBcCisgICAgbWFj
cm8odXBkYXRlc3RhcnQpIFwKICAgICBtYWNybyh3ZWJraXRhZGRzb3VyY2VidWZmZXIpIFwKICAg
ICBtYWNybyh3ZWJraXRyZW1vdmVzb3VyY2VidWZmZXIpIFwKICAgICBtYWNybyh3ZWJraXRzb3Vy
Y2VvcGVuKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCmluZGV4IDZhODBhOGFjZDg1ZTgzZDlk
ZjIyN2Q1MjliYmFmZGVkMmJlYzA1YmEuLjVlMTNjOTUyYTU0NDYwMDg3MmUyZGFiZjYyY2RhYmVj
YjhjZGQ5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC01Nyw3ICs1Nyw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRQcm9jZXNzb3JOb2RlOwogICAgIGNs
YXNzIExvY2FsTWVkaWFTdHJlYW07CiAgICAgY2xhc3MgTWVkaWFDb250cm9sbGVyOwotICAgIGNs
YXNzIE1lZGlhU291cmNlOwogICAgIGNsYXNzIE1lZGlhU3RyZWFtOwogICAgIGNsYXNzIE1lc3Nh
Z2VQb3J0OwogICAgIGNsYXNzIE5vZGU7CkBAIC02Niw3ICs2NSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIGNsYXNzIFNoYXJl
ZFdvcmtlcjsKICAgICBjbGFzcyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTsKLSAgICBjbGFzcyBT
b3VyY2VCdWZmZXJMaXN0OwogICAgIGNsYXNzIFRleHRUcmFjazsKICAgICBjbGFzcyBUZXh0VHJh
Y2tDdWU7CiAgICAgY2xhc3MgVmlkZW9UcmFja0xpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
VGFyZ2V0RmFjdG9yeS5pbgppbmRleCBhZWVhOTZhNmNjMmE2MDI5ODg5NjIxYWNlY2NmOGU0ZmI3
YzcwMTUxLi5kYjc3ZWNhMDU1NzExM2U5ZmFhNjY3NDE0ZWUyYmQ5Y2Q3YTBiZTg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTMxLDYgKzMxLDcgQEAgUlRD
RFRNRlNlbmRlciBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIFJUQ1BlZXJDb25uZWN0aW9uIGNv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTQogU2hhcmVkV29ya2VyIGNvbmRpdGlvbmFsPVNIQVJFRF9X
T1JLRVJTCiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSBjb25kaXRpb25hbD1TSEFSRURfV09SS0VS
UworU291cmNlQnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogU291cmNlQnVmZmVyTGlz
dCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIFNwZWVjaFJlY29nbml0aW9uIGNvbmRpdGlvbmFs
PVNDUklQVEVEX1NQRUVDSAogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQ
RUVDSF9TWU5USEVTSVMKQEAgLTM5LDcgKzQwLDkgQEAgVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJ
REVPX1RSQUNLCiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRleHRUcmFj
a0xpc3QgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFZpZGVvVHJhY2tMaXN0IGNvbmRpdGlvbmFs
PVZJREVPX1RSQUNLCitXZWJLaXRNZWRpYVNvdXJjZSBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UK
IFdlYktpdE5hbWVkRmxvdworV2ViS2l0U291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJ
QV9TT1VSQ0UKIFdlYlNvY2tldCBjb25kaXRpb25hbD1XRUJfU09DS0VUUwogV29ya2VyIGNvbmRp
dGlvbmFsPVdPUktFUlMKIFhNTEh0dHBSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRl
eCA3NjQwZjVmNTAzYmYyY2E5YjQ2YmQ4M2ZhODMwNGU2N2FjMmNhYTIwLi5jMDM3ODRmNDMwNmJh
NmQwNmU5MjcxMGI3YWQzOTZhNTkyNjRmNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAg
LTUyLDYgKzUyLDMzIEBAIGVudW0gU2xpY2VIaXN0b2dyYW1FbnVtIHsKIAogfSAvLyBuYW1lc3Bh
Y2UKIAorY2xhc3MgQmxvYlVSTFJlZ2lzdHJ5IDogcHVibGljIFVSTFJlZ2lzdHJ5IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBL
VVJMJiwgVVJMUmVnaXN0cmFibGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdp
c3RlclVSTChjb25zdCBLVVJMJikgT1ZFUlJJREU7CisKKyAgICBzdGF0aWMgVVJMUmVnaXN0cnkm
IHJlZ2lzdHJ5KCk7Cit9OworCisKK3ZvaWQgQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RlclVSTChT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBLVVJMJiBwdWJsaWNVUkwsIFVSTFJlZ2lzdHJh
YmxlKiBibG9iKQoreworICAgIEFTU0VSVCgmYmxvYi0+cmVnaXN0cnkoKSA9PSB0aGlzKTsKKyAg
ICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwob3JpZ2luLCBwdWJsaWNV
UkwsIHN0YXRpY19jYXN0PEJsb2IqPihibG9iKS0+dXJsKCkpOworfQorCit2b2lkIEJsb2JVUkxS
ZWdpc3RyeTo6dW5yZWdpc3RlclVSTChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeTo6dW5yZWdpc3RlckJsb2JVUkwodXJsKTsKK30KKworVVJMUmVnaXN0cnkm
IEJsb2JVUkxSZWdpc3RyeTo6cmVnaXN0cnkoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QmxvYlVSTFJlZ2lzdHJ5LCBpbnN0YW5jZSwgKCkpOworICAgIHJldHVybiBpbnN0YW5jZTsKK30K
KworCiBCbG9iOjpCbG9iKCkKICAgICA6IG1fc2l6ZSgwKQogewpAQCAtMjA2LDQgKzIzMywxMCBA
QCBQYXNzUmVmUHRyPEJsb2I+IEJsb2I6OnNsaWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25n
IGVuZCwgY29uc3QgU3RyaW5nJiBjb250ZQogfQogI2VuZGlmCiAKK1VSTFJlZ2lzdHJ5JiBCbG9i
OjpyZWdpc3RyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEJsb2JVUkxSZWdpc3RyeTo6cmVnaXN0
cnkoKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmlu
ZGV4IGJmNGEyODUxZDNjNWM5MDA1ZGQ1OWIxNGQ3MmUxZjk3OTk0NTUxZTEuLjIxYjMxYjQxM2Fj
ZjdlNDhjZjkyNWJlOTJmMWJiNTAyY2RkNjRkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAj
aW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBCbG9iIDog
cHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8QmxvYj4geworY2xhc3Mg
QmxvYiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVi
bGljIFJlZkNvdW50ZWQ8QmxvYj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJs
b2I+IGNyZWF0ZSgpCiAgICAgewpAQCAtNzgsNiArNzksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgaXNOb3JtYWxpemVkQ29udGVudFR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGlj
IGJvb2wgaXNOb3JtYWxpemVkQ29udGVudFR5cGUoY29uc3QgQ1N0cmluZyYpOwogCisgICAgLy8g
VVJMUmVnaXN0cmFibGUKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0
IE9WRVJSSURFOworCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgUGFzc1JlZlB0cjxCbG9iPiBzbGlj
ZShsb25nIGxvbmcgc3RhcnQgPSAwLCBsb25nIGxvbmcgZW5kID0gc3RkOjpudW1lcmljX2xpbWl0
czxsb25nIGxvbmc+OjptYXgoKSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9IFN0cmluZygp
KSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCmluZGV4IDM2ZTU1OWVkZjJlNDVh
ZDE0ODQxYTk4NTViMmViMmMzNDc2MjNmZDguLmFlMzY5MzgyNGIzZTk1ODFmMjQxNDBiNWM4MTll
MmQzZDI5N2U3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKQEAgLTM5LDcyICszOSwyNCBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlRocmVhZGFi
bGVCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCi0jaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgIk1l
ZGlhU291cmNlUmVnaXN0cnkuaCIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnku
aCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotU3RyaW5nIERPTVVSTDo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU291cmNlKiBzb3VyY2UpCi17Ci0gICAg
Ly8gU2luY2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIE1lZGlhU291cmNlIG9iamVjdHMsIHdl
IHNob3VsZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLQotICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhc291cmNlKQotICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBLVVJMIHB1YmxpY1VSTCA9IEJsb2JVUkw6OmNyZWF0
ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKLSAg
ICBpZiAocHVibGljVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0g
ICAgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0cnkoKS5yZWdpc3Rlck1lZGlhU291cmNlVVJM
KHB1YmxpY1VSTCwgc291cmNlKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNV
UkxNYW5hZ2VyKCkuc291cmNlVVJMcygpLmFkZChwdWJsaWNVUkwuc3RyaW5nKCkpOwotCi0gICAg
cmV0dXJuIHB1YmxpY1VSTC5zdHJpbmcoKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKLVN0cmluZyBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNZWRpYVN0cmVhbSogc3RyZWFtKQotewot
ICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhc3RyZWFtKQotICAgICAgICByZXR1
cm4gU3RyaW5nKCk7Ci0KLSAgICBLVVJMIHB1YmxpY1VSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1Ymxp
Y1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBpZiAo
cHVibGljVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgLy8g
U2luY2UgV2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIFN0cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQg
YmUgb24gdGhlIG1haW4gdGhyZWFkLgotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAg
ICBNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwo
cHVibGljVVJMLCBzdHJlYW0pOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VS
TE1hbmFnZXIoKS5zdHJlYW1VUkxzKCkuYWRkKHB1YmxpY1VSTC5zdHJpbmcoKSk7Ci0KLSAgICBy
ZXR1cm4gcHVibGljVVJMLnN0cmluZygpOwotfQotI2VuZGlmCi0KIFN0cmluZyBET01VUkw6OmNy
ZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBCbG9iKiBibG9iKQogewogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAh
YmxvYikKICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBjcmVhdGVQdWJsaWNV
Ukwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgYmxvYik7Cit9CiAKK1N0cmluZyBET01VUkw6OmNy
ZWF0ZVB1YmxpY1VSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBVUkxSZWdpc3RyYWJsZSogcmVnaXN0cmFibGUpCit7CiAgICAgS1VSTCBwdWJsaWNVUkwg
PSBCbG9iVVJMOjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKSk7CiAgICAgaWYgKHB1YmxpY1VSTC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKIAotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVS
TChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBwdWJsaWNVUkwsIGJs
b2ItPnVybCgpKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2Vy
KCkuYmxvYlVSTHMoKS5hZGQocHVibGljVVJMLnN0cmluZygpKTsKKyAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkucmVnaXN0ZXJVUkwoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgcHVibGljVVJMLCByZWdpc3RyYWJsZSk7CiAKICAg
ICByZXR1cm4gcHVibGljVVJMLnN0cmluZygpOwogfQpAQCAtMTIxLDI5ICs3Myw3IEBAIHZvaWQg
RE9NVVJMOjpyZXZva2VPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgY29uCiAjZW5kaWYKICAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVz
dEZyb21DYWNoZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAotICAgIEhhc2hT
ZXQ8U3RyaW5nPiYgYmxvYlVSTHMgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxN
YW5hZ2VyKCkuYmxvYlVSTHMoKTsKLSAgICBpZiAoYmxvYlVSTHMuY29udGFpbnModXJsLnN0cmlu
ZygpKSkgewotICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVS
TCh1cmwpOwotICAgICAgICBibG9iVVJMcy5yZW1vdmUodXJsLnN0cmluZygpKTsKLSAgICB9Ci0K
LSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIEhhc2hTZXQ8U3RyaW5nPiYgc291cmNlVVJM
cyA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5zb3VyY2VVUkxz
KCk7Ci0gICAgaWYgKHNvdXJjZVVSTHMuY29udGFpbnModXJsLnN0cmluZygpKSkgewotICAgICAg
ICBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnVucmVnaXN0ZXJNZWRpYVNvdXJjZVVS
TCh1cmwpOwotICAgICAgICBzb3VyY2VVUkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwotICAgIH0K
LSNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgSGFzaFNldDxTdHJpbmc+JiBz
dHJlYW1VUkxzID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJMTWFuYWdlcigpLnN0
cmVhbVVSTHMoKTsKLSAgICBpZiAoc3RyZWFtVVJMcy5jb250YWlucyh1cmwuc3RyaW5nKCkpKSB7
Ci0gICAgICAgIC8vIEZJWE1FOiBtYWtlIHN1cmUgb2YgdGhpcyBhc3NlcnRpb24gYmVsb3cuIFJh
aXNlIGEgc3BlYyBxdWVzdGlvbiBpZiByZXF1aXJlZC4KLSAgICAgICAgLy8gU2luY2UgV2ViV29y
a2VycyBjYW5ub3Qgb2J0YWluIFN0cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1h
aW4gdGhyZWFkLgotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBNZWRp
YVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTCh1cmwp
OwotICAgICAgICBzdHJlYW1VUkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwotICAgIH0KLSNlbmRp
ZgorICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2Uo
dXJsKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01VUkwuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmgKaW5kZXgg
ODZlYTVmZjAxMzI1ZjQyNTQxMjgyMzlhYWUwM2Q2MDAzNGY1NjA0Yi4uYjM1ODI2MzI0MDg0MjQw
NmVlODU5MDhlYzA1YTZlZWJkNDA2MDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01VUkwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oCkBAIC0zNiw5ICsz
Niw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7Ci1jbGFzcyBNZWRpYVNv
dXJjZTsKLWNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
K2NsYXNzIFVSTFJlZ2lzdHJhYmxlOwogCiBjbGFzcyBET01VUkwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxET01VUkw+IHsKIApAQCAtNTAsMTIgKzQ5LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0
cmluZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEJsb2IqKTsKICAg
ICBzdGF0aWMgdm9pZCByZXZva2VPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYpOwotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc3RhdGljIFN0cmlu
ZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU291cmNlKik7
Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIHN0YXRpYyBTdHJpbmcgY3Jl
YXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNZWRpYVN0cmVhbSopOwotI2Vu
ZGlmCisKKyAgICBzdGF0aWMgU3RyaW5nIGNyZWF0ZVB1YmxpY1VSTChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgVVJMUmVnaXN0cmFibGUqKTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwu
aWRsCmluZGV4IGQxMzIxYTBhYzcxMmEwYjEzNGU2YjE3NTBmOGUwMzhiMGU5NDdlNTMuLjQ2ZDQ3
NDg2OTMzYjFkZTc3YmRlMDliYTdlMzM0NDllMWM1ZDZjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVVJMLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5p
ZGwKQEAgLTM0LDEyICszNCw2IEBACiAgICAgSW50ZXJmYWNlTmFtZT1VUkwsCiAgICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgRE9NVVJMIHsKLSNpZiBkZWZpbmVkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICYmIEVOQUJMRV9NRURJQV9TT1VSQ0UKLSAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0
YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlhU291cmNlPyBzb3VyY2UpOwotI2Vu
ZGlmCi0jaWYgZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKSAmJiBFTkFCTEVfTUVESUFfU1RS
RUFNCi0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51
bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChNZWRpYVN0
cmVhbT8gc3RyZWFtKTsKLSNlbmRpZgogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3RhdGljIERPTVN0cmluZyBjcmVh
dGVPYmplY3RVUkwoQmxvYj8gYmxvYik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRdIHN0YXRpYyB2b2lkIHJldm9rZU9iamVjdFVSTChET01TdHJpbmcgdXJsKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzYTlhNmQ5MzJjNmY2
MDI3YjNiYjI0YjQwNWVkODRiNWZlZGFhYWY2Li5hOGNkMmRjNDYzNGM2YTUwZDU5NDM3OTZlOGY1
YzRiZTg1MjAzODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
QEAgLTExOSw4ICsxMTksNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQot
I2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5o
IgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpAQCAtMzc4LDcgKzM3Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVk
aWFFbGVtZW50KCkKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPnJlbW92ZU1lZGlhRWxlbWVu
dCh0aGlzKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUo
TWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQpAQCAtODExLDcgKzgxMCw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgICAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKIAogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7
CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiAhRU5BQkxFKFBMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pCkBAIC0xMDk4LDExICsxMDk3LDE3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6bG9hZFJlc291cmNlKGNvbnN0IEtVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBj
b250ZW50CiAgICAgQVNTRVJUKCFtX21lZGlhU291cmNlKTsKIAogICAgIGlmICh1cmwucHJvdG9j
b2xJcyhtZWRpYVNvdXJjZUJsb2JQcm90b2NvbCkpCi0gICAgICAgIG1fbWVkaWFTb3VyY2UgPSBN
ZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLmxvb2t1cE1lZGlhU291cmNlKHVybC5zdHJp
bmcoKSk7CisgICAgICAgIG1fbWVkaWFTb3VyY2UgPSBIVE1MTWVkaWFTb3VyY2U6Omxvb2t1cCh1
cmwuc3RyaW5nKCkpOwogCiAgICAgaWYgKG1fbWVkaWFTb3VyY2UpIHsKLSAgICAgICAgaWYgKCFt
X3BsYXllci0+bG9hZCh1cmwsIG1fbWVkaWFTb3VyY2UpKQorICAgICAgICBpZiAobV9tZWRpYVNv
dXJjZS0+YXR0YWNoVG9FbGVtZW50KCkpCisgICAgICAgICAgICBtX3BsYXllci0+bG9hZCh1cmws
IG1fbWVkaWFTb3VyY2UpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZvcmdldCBv
dXIgcmVmZXJlbmNlIHRvIHRoZSBNZWRpYVNvdXJjZSwgc28gd2UgbGVhdmUgaXQgYWxvbmUKKyAg
ICAgICAgICAgIC8vIHdoaWxlIHByb2Nlc3NpbmcgcmVtYWluZGVyIG9mIGxvYWQgZmFpbHVyZS4K
KyAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UgPSAwOwogICAgICAgICAgICAgbWVkaWFMb2FkaW5n
RmFpbGVkKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CisgICAgICAgIH0KICAgICB9IGVsc2UK
ICNlbmRpZgogICAgIGlmICghbV9wbGF5ZXItPmxvYWQodXJsLCBjb250ZW50VHlwZSwga2V5U3lz
dGVtKSkKQEAgLTE2MDgsNyArMTYxMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1
cHBvcnRlZCgpCiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCk7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNl
OjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAg
ICAgLy8gOCAtIFNldCB0aGUgZWxlbWVudCdzIGRlbGF5aW5nLXRoZS1sb2FkLWV2ZW50IGZsYWcg
dG8gZmFsc2UuIFRoaXMgc3RvcHMgZGVsYXlpbmcgdGhlIGxvYWQgZXZlbnQuCkBAIC0xNjM5LDcg
KzE2NDQsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lRXJyb3IoUGFzc1Jl
ZlB0cjxNZWRpYUVycm9yPiBlcnIpCiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuZXJy
b3JFdmVudCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRl
KE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsK
ICNlbmRpZgogCiAgICAgLy8gNCAtIFNldCB0aGUgZWxlbWVudCdzIG5ldHdvcmtTdGF0ZSBhdHRy
aWJ1dGUgdG8gdGhlIE5FVFdPUktfRU1QVFkgdmFsdWUgYW5kIHF1ZXVlIGEKQEAgLTIxOTAsNyAr
MjE5NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhkb3VibGUgdGltZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICAvLyBBbHdheXMgbm90
aWZ5IHRoZSBtZWRpYSBlbmdpbmUgb2YgYSBzZWVrIGlmIHRoZSBzb3VyY2UgaXMgbm90IGNsb3Nl
ZC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHNvdXJjZSBpcwogICAgIC8vIGFsd2F5cyBpbiBhIGZs
dXNoZWQgc3RhdGUgd2hlbiB0aGUgJ3NlZWtpbmcnIGV2ZW50IGZpcmVzLgotICAgIGlmIChtX21l
ZGlhU291cmNlICYmIG1fbWVkaWFTb3VyY2UtPnJlYWR5U3RhdGUoKSAhPSBNZWRpYVNvdXJjZTo6
Y2xvc2VkS2V5d29yZCgpKQorICAgIGlmIChtX21lZGlhU291cmNlICYmIG1fbWVkaWFTb3VyY2Ut
PmlzQ2xvc2VkKCkpCiAgICAgICAgIG5vU2Vla1JlcXVpcmVkID0gZmFsc2U7CiAjZW5kaWYKIApA
QCAtMjU1NCwxNCArMjU1OSwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJu
YWwoKQogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLXZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0U291cmNlU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKK3ZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6Y2xvc2VNZWRpYVNvdXJjZSgpCiB7CiAgICAgaWYgKCFtX21lZGlhU291cmNlKQotICAg
ICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm47CiAKLSAgICBtX21lZGlhU291cmNlLT5zZXRS
ZWFkeVN0YXRlKHN0YXRlKTsKLSAgICBpZiAoc3RhdGUgPT0gTWVkaWFTb3VyY2U6OmNsb3NlZEtl
eXdvcmQoKSkKLSAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgbV9tZWRpYVNvdXJjZS0+
Y2xvc2UoKTsKKyAgICBtX21lZGlhU291cmNlID0gMDsKIH0KICNlbmRpZgogCkBAIC0zODc0LDYg
KzM4NzgsMTIgQEAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBIVE1MTWVkaWFFbGVtZW50OjpidWZm
ZXJlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJuIFRpbWVS
YW5nZXM6OmNyZWF0ZSgpOworCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKyAgICBpZiAobV9t
ZWRpYVNvdXJjZSkKKyAgICAgICAgcmV0dXJuIG1fbWVkaWFTb3VyY2UtPmJ1ZmZlcmVkKCk7Cisj
ZW5kaWYKKwogICAgIHJldHVybiBtX3BsYXllci0+YnVmZmVyZWQoKTsKIH0KIApAQCAtNDA5MSw3
ICs0MTAxLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAg
ICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CiAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3
b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAgICAgLy8gNCAtIElm
IHRoZSBtZWRpYSBlbGVtZW50J3MgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaGFzIGEgdmFsdWUgZXF1
YWwgdG8gSEFWRV9OT1RISU5HLCBzZXQgdGhlIApAQCAtNDEzNiw3ICs0MTQ2LDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhUGxheWVyKGludCBmbGFncykKICNpZiAhRU5BQkxF
KFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAg
IHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3Nl
TWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAgICAgbV9wbGF5ZXIuY2xlYXIoKTsKQEAgLTQ3ODUs
NyArNDc5NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIoKQog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBpZiAobV9tZWRpYVNvdXJjZSkKLSAgICAg
ICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29y
ZCgpKTsKKyAgICAgICAgbV9tZWRpYVNvdXJjZS0+Y2xvc2UoKTsKICNlbmRpZgogCiAgICAgbV9w
bGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCAwYzdiMTRjNTQyZTA2NzAwZjczNjFkMGEzYTQ4NzYwZWZkMmQw
YWU3Li41OGNhMTgwYTM5NWU4ZTI4MDBkZGY1ZWZmYzk2YWQ5ZDZiMjFlYzA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAvLyAgTWVkaWEgU291cmNlLgotICAgIHZvaWQg
c2V0U291cmNlU3RhdGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjbG9zZU1lZGlhU291cmNl
KCk7CiAjZW5kaWYgCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpAQCAtNjc0LDcgKzY3
NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fcHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2s7
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIFJlZlB0cjxNZWRpYVNvdXJjZT4gbV9t
ZWRpYVNvdXJjZTsKKyAgICBSZWZQdHI8SFRNTE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOwog
I2VuZGlmCiAKICAgICBtdXRhYmxlIGRvdWJsZSBtX2NhY2hlZFRpbWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTViYTE0MTQzMmZkYWU3OGU3YWUw
YWYzMWNjOWFmNDkwODBkZjJkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1VSTFJlZ2lzdHJ5KiBIVE1MTWVkaWFTb3VyY2U6OnNfcmVnaXN0cnkgPSAwOworCit2b2lkIEhU
TUxNZWRpYVNvdXJjZTo6c2V0UmVnaXN0cnkoVVJMUmVnaXN0cnkqIHJlZ2lzdHJ5KQoreworICAg
IEFTU0VSVCghc19yZWdpc3RyeSk7CisgICAgc19yZWdpc3RyeSA9IHJlZ2lzdHJ5OworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTIzYmY1YjQ3
ZmI5ZjA4NmY0NDk4OTg4YmE4MzgyOGRlYmNiYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBI
VE1MTWVkaWFTb3VyY2VfaAorI2RlZmluZSBIVE1MTWVkaWFTb3VyY2VfaAorCisjaW5jbHVkZSAi
VVJMUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE1lZGlhU291cmNlUHJpdmF0ZTsKK2NsYXNzIFRpbWVSYW5nZXM7CisK
K2NsYXNzIEhUTUxNZWRpYVNvdXJjZSA6IHB1YmxpYyBVUkxSZWdpc3RyYWJsZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIHZvaWQgc2V0UmVnaXN0cnkoVVJMUmVnaXN0cnkqKTsKKyAgICBzdGF0aWMg
SFRNTE1lZGlhU291cmNlKiBsb29rdXAoY29uc3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJuIHNfcmVn
aXN0cnkgPyBzdGF0aWNfY2FzdDxIVE1MTWVkaWFTb3VyY2UqPihzX3JlZ2lzdHJ5LT5sb29rdXAo
dXJsKSkgOiAwOyB9CisKKyAgICB2b2lkIHJlZigpIHsgcmVmSFRNTE1lZGlhU291cmNlKCk7IH0K
KyAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZkhUTUxNZWRpYVNvdXJjZSgpOyB9CisKKyAgICAvLyBD
YWxsZWQgd2hlbiBhbiBIVE1MTWVkaWFFbGVtZW50IGlzIGF0dGVtcHRpbmcgdG8gYXR0YWNoIHRv
IHRoaXMgb2JqZWN0LAorICAgIC8vIGFuZCBoZWxwcyBlbmZvcmNlIGF0dGFjaG1lbnQgdG8gYXQg
bW9zdCBvbmUgZWxlbWVudCBhdCBhIHRpbWUuCisgICAgLy8gSWYgYWxyZWFkeSBhdHRhY2hlZCwg
cmV0dXJucyBmYWxzZS4gT3RoZXJ3aXNlLCBtdXN0IGJlIGluCisgICAgLy8gJ2Nsb3NlZCcgc3Rh
dGUsIGFuZCByZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgYXR0YWNobWVudCBzdWNjZXNzLgorICAg
IC8vIFJlYXR0YWNobWVudCBhbGxvd2VkIGJ5IGZpcnN0IGNhbGxpbmcgY2xvc2UoKSAoZXZlbiBp
ZiBhbHJlYWR5IGluICdjbG9zZWQnKS4KKyAgICB2aXJ0dWFsIGJvb2wgYXR0YWNoVG9FbGVtZW50
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRlQW5kT3BlbihQYXNzT3duUHRyPE1l
ZGlhU291cmNlUHJpdmF0ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGlzQ2xvc2VkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91Ymxl
IGR1cmF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2Vz
PiBidWZmZXJlZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmSFRNTE1lZGlhU291
cmNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZkhUTUxNZWRpYVNvdXJjZSgpID0gMDsK
KworICAgIC8vIFVSTFJlZ2lzdHJhYmxlCisgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0
cnkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAqc19yZWdpc3RyeTsgfQorCitwcml2YXRlOgor
ICAgIHN0YXRpYyBVUkxSZWdpc3RyeSogc19yZWdpc3RyeTsKK307CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDdiMDdj
MTVhYzM3Y2UxZTQ0M2JmNjgzYTcyNDhmODdjYTVlYzNlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5IEluYy4KKyAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQdWJsaWNVUkxNYW5hZ2VyLmgiCisKKyNpbmNsdWRl
ICJLVVJMLmgiCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBQdWJsaWNVUkxNYW5h
Z2VyOjpyZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBLVVJMJiB1cmws
IFVSTFJlZ2lzdHJhYmxlKiByZWdpc3RyYWJsZSkKK3sKKyAgICBSZWdpc3RyeVVSTE1hcDo6aXRl
cmF0b3IgZm91bmQgPSBtX3JlZ2lzdHJ5VG9VUkwuYWRkKCZyZWdpc3RyYWJsZS0+cmVnaXN0cnko
KSwgVVJMU2V0KCkpLml0ZXJhdG9yOworICAgIGZvdW5kLT5rZXktPnJlZ2lzdGVyVVJMKG9yaWdp
biwgdXJsLCByZWdpc3RyYWJsZSk7CisgICAgZm91bmQtPnZhbHVlLmFkZCh1cmwuc3RyaW5nKCkp
OworfQorCit2b2lkIFB1YmxpY1VSTE1hbmFnZXI6OnJldm9rZShjb25zdCBLVVJMJiB1cmwpCit7
CisgICAgZm9yIChSZWdpc3RyeVVSTE1hcDo6aXRlcmF0b3IgaSA9IG1fcmVnaXN0cnlUb1VSTC5i
ZWdpbigpOyBpICE9IG1fcmVnaXN0cnlUb1VSTC5lbmQoKTsgKytpKSB7CisgICAgICAgIGlmIChp
LT52YWx1ZS5jb250YWlucyh1cmwuc3RyaW5nKCkpKSB7CisgICAgICAgICAgICBpLT5rZXktPnVu
cmVnaXN0ZXJVUkwodXJsKTsKKyAgICAgICAgICAgIGktPnZhbHVlLnJlbW92ZSh1cmwuc3RyaW5n
KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgUHVi
bGljVVJMTWFuYWdlcjo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgZm9yIChSZWdpc3RyeVVS
TE1hcDo6aXRlcmF0b3IgaSA9IG1fcmVnaXN0cnlUb1VSTC5iZWdpbigpOyBpICE9IG1fcmVnaXN0
cnlUb1VSTC5lbmQoKTsgKytpKSB7CisgICAgICAgIGZvciAoVVJMU2V0OjppdGVyYXRvciBqID0g
aS0+dmFsdWUuYmVnaW4oKTsgaiAhPSBpLT52YWx1ZS5lbmQoKTsgKytqKQorICAgICAgICAgICAg
aS0+a2V5LT51bnJlZ2lzdGVyVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAqaikpOworICAgIH0K
KworICAgIG1fcmVnaXN0cnlUb1VSTC5jbGVhcigpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UHVibGljVVJMTWFuYWdlci5oCmluZGV4IGUxN2U0NmE4ZDZiYWY3ZGI2Y2E0NWRmNzgyNWIwMTc4
NWIyYjZkNGYuLmYwMzhmYjViOWEyODkwMjg5ZjBkZTcwOTA0ZDZmM2YwMGRmZGM3ZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCkBAIC0yNyw2MyArMjcsMzMgQEAKICNk
ZWZpbmUgUHVibGljVVJMTWFuYWdlcl9oCiAKICNpZiBFTkFCTEUoQkxPQikKLSNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1SZWdp
c3RyeS5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1l
ZGlhU291cmNlLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgotI2VuZGlmCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgS1VSTDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFVSTFJlZ2lzdHJ5OworY2xh
c3MgVVJMUmVnaXN0cmFibGU7CiAKIGNsYXNzIFB1YmxpY1VSTE1hbmFnZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFB1Ymxp
Y1VSTE1hbmFnZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQdWJsaWNVUkxNYW5h
Z2VyKTsgfQotICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpCi0gICAgewotICAgICAgICBIYXNo
U2V0PFN0cmluZz46Oml0ZXJhdG9yIGJsb2JVUkxzRW5kID0gbV9ibG9iVVJMcy5lbmQoKTsKLSAg
ICAgICAgZm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ZXIgPSBtX2Jsb2JVUkxzLmJl
Z2luKCk7IGl0ZXIgIT0gYmxvYlVSTHNFbmQ7ICsraXRlcikKLSAgICAgICAgICAgIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAq
aXRlcikpOwotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgSGFzaFNldDxTdHJp
bmc+OjppdGVyYXRvciBzdHJlYW1VUkxzRW5kID0gbV9zdHJlYW1VUkxzLmVuZCgpOwotICAgICAg
ICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXRlciA9IG1fc3RyZWFtVVJMcy5iZWdp
bigpOyBpdGVyICE9IHN0cmVhbVVSTHNFbmQ7ICsraXRlcikKLSAgICAgICAgICAgIE1lZGlhU3Ry
ZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJMKEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCAqaXRlcikpOwotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
LSAgICAgICAgSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBzb3VyY2VVUkxzRW5kID0gbV9zb3Vy
Y2VVUkxzLmVuZCgpOwotICAgICAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXRl
ciA9IG1fc291cmNlVVJMcy5iZWdpbigpOyBpdGVyICE9IHNvdXJjZVVSTHNFbmQ7ICsraXRlcikK
LSAgICAgICAgICAgIE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1l
ZGlhU291cmNlVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAqaXRlcikpOwotI2VuZGlmCi0gICAg
fQogCi0gICAgSGFzaFNldDxTdHJpbmc+JiBibG9iVVJMcygpIHsgcmV0dXJuIG1fYmxvYlVSTHM7
IH0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIEhhc2hTZXQ8U3RyaW5nPiYgc3RyZWFt
VVJMcygpIHsgcmV0dXJuIG1fc3RyZWFtVVJMczsgfQotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSAgICBIYXNoU2V0PFN0cmluZz4mIHNvdXJjZVVSTHMoKSB7IHJldHVybiBtX3Nv
dXJjZVVSTHM7IH0KLSNlbmRpZgorICAgIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4q
LCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKTsKKyAgICB2b2lkIHJldm9rZShjb25zdCBL
VVJMJik7CisgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CiAKIHByaXZhdGU6Ci0gICAgSGFz
aFNldDxTdHJpbmc+IG1fYmxvYlVSTHM7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBI
YXNoU2V0PFN0cmluZz4gbV9zdHJlYW1VUkxzOwotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9zb3VyY2VVUkxzOwotI2VuZGlmCisgICAgdHlw
ZWRlZiBIYXNoU2V0PFN0cmluZz4gVVJMU2V0OworICAgIHR5cGVkZWYgSGFzaE1hcDxVUkxSZWdp
c3RyeSosIFVSTFNldCA+IFJlZ2lzdHJ5VVJMTWFwOworICAgIFJlZ2lzdHJ5VVJMTWFwIG1fcmVn
aXN0cnlUb1VSTDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVVJMUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
UmVnaXN0cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Njg3YzljOTNmOTJkMDVhNGVmOWZkMTVmMzMzNWNjMzg1
MzJiMGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxSZWdpc3Ry
eS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFVSTFJlZ2lzdHJ5X2gKKyNkZWZpbmUgVVJMUmVn
aXN0cnlfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgVVJM
UmVnaXN0cnk7CisKK2NsYXNzIFVSTFJlZ2lzdHJhYmxlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5VUkxSZWdpc3RyYWJsZSgpIHsgfQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5
KCkgY29uc3QgPSAwOworfTsKKworY2xhc3MgVVJMUmVnaXN0cnkgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1YWwgflVSTFJlZ2lzdHJ5KCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYs
IFVSTFJlZ2lzdHJhYmxlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNv
bnN0IEtVUkwmKSA9IDA7CisKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGlvbmFsIEFQSQorICAgIHZp
cnR1YWwgVVJMUmVnaXN0cmFibGUqIGxvb2t1cChjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gVVJMUmVnaXN0cnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDNiMGQ2M2Y3ZTBkZWJkMDEzMGJlYzlkMDlkNzEz
ODRmNDYwM2ZlNTMuLmI0OTEyMTZkZTFlNmJjZTc3ODIyMjQ1MTE1NTYwMTk0MjdiYTlkMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTQ1LDcgKzQ1LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSNp
bmNsdWRlICJNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShRVCkKQEAgLTkzLDcgKzkzLDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9CiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPE1l
ZGlhU291cmNlPikgeyB9CisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgUGFz
c1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KSB7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxMb2FkKCkgeyB9CiAKQEAgLTM5NCw3ICszOTQsNyBAQCBib29sIE1lZGlhUGxheWVyOjps
b2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25z
dCBTdAogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLWJvb2wgTWVkaWFQbGF5ZXI6Omxv
YWQoY29uc3QgS1VSTCYgdXJsLCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPiBtZWRpYVNvdXJjZSkK
K2Jvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBQYXNzUmVmUHRyPEhUTUxN
ZWRpYVNvdXJjZT4gbWVkaWFTb3VyY2UpCiB7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG1lZGlhU291
cmNlOwogICAgIG1fY29udGVudE1JTUVUeXBlID0gIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5MjczNGNhYjUwY2MzMDM0ZTRhY2Uy
YjMwOGQ1Zjc4NzljYTg1Yzk4Li5jNjYzNTEzNDg4OTJiMjc1MjYzNGJiZTQ4NzM0NWYyMDczNjNl
ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKQEAgLTY2LDEwICs2NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1Nv
dXJjZVByb3ZpZGVyOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBHU3RyZWFtZXJHV29ybGQ7Ci1j
bGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKLWNsYXNzIE1lZGlhU291cmNlOworY2xhc3MgSFRNTE1lZGlhU291cmNlOwogI2VuZGlmCitj
bGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBjbGFzcyBUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbjsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBob2xkIGV2ZXJ5IG5hdGl2ZQpAQCAt
Mjc5LDcgKzI3OSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbG9hZChjb25zdCBLVVJMJiwgY29u
c3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7CiAjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkKLSAgICBib29sIGxvYWQoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFT
b3VyY2U+KTsKKyAgICBib29sIGxvYWQoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8SFRNTE1lZGlh
U291cmNlPik7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIApAQCAtMjg4LDcgKzI4
OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwogICAgIHZvaWQgcGxh
eSgpOwotICAgIHZvaWQgcGF1c2UoKTsgICAgCisgICAgdm9pZCBwYXVzZSgpOwogCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICAvLyBSZXByZXNlbnRzIHN5bmNocm9ub3VzIGV4Y2Vw
dGlvbnMgdGhhdCBjYW4gYmUgdGhyb3duIGZyb20gdGhlIEVuY3J5cHRlZCBNZWRpYSBtZXRob2Rz
LgpAQCAtMzE1LDcgKzMxNSw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgcmF0ZSgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0UmF0ZShkb3VibGUpOwogCi0gICAgYm9vbCBwcmVzZXJ2ZXNQaXRjaCgpIGNv
bnN0OyAgICAKKyAgICBib29sIHByZXNlcnZlc1BpdGNoKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQ
cmVzZXJ2ZXNQaXRjaChib29sKTsKIAogICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVy
ZWQoKTsKQEAgLTMzNCw3ICszMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNDbG9zZWRDYXB0
aW9ucygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wgY2xv
c2VkQ2FwdGlvbnNWaXNpYmxlKTsKIAotICAgIGJvb2wgYXV0b3BsYXkoKSBjb25zdDsgICAgCisg
ICAgYm9vbCBhdXRvcGxheSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QXV0b3BsYXkoYm9vbCk7CiAK
ICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKQEAgLTUx
Miw3ICs1MTIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQotICAgIFJlZlB0cjxNZWRpYVNvdXJjZT4gbV9tZWRpYVNvdXJjZTsKKyAgICBSZWZQdHI8SFRN
TE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4
IGNiZTgwZTZjMjdmYTdlY2RmNzE3ZjhiMzJkOTE0OTFjZGYzNmViMmQuLjQ0ODY5ZjRkYWUwZWM0
Mzg0ZWMwN2M1NjFlNjJkMmNjYjY1Yzk3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC00Niw3ICs0Niw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSA9IDA7
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmIHVybCwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KSA9
IDA7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2
YXRlLmgKaW5kZXggMmIxMDc0ZmJjZmIyZTE0Y2E2NWQyZTU5NTgzM2JlYzViZjZlNTE5NC4uMmRm
ZDU4YTI0MTJjYTM3NjNhMGNmZGQ4ZWFmYzAyZjE1YTUwNTgxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKQEAgLTUw
LDcgKzUwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXREdXJhdGlvbihkb3VibGUpID0gMDsKICAgICBlbnVtIEVuZE9m
U3RyZWFtU3RhdHVzIHsgRW9zTm9FcnJvciwgRW9zTmV0d29ya0Vycm9yLCBFb3NEZWNvZGVFcnJv
ciB9OwotICAgIHZpcnR1YWwgdm9pZCBlbmRPZlN0cmVhbShFbmRPZlN0cmVhbVN0YXR1cykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBtYXJrRW5kT2ZTdHJlYW0oRW5kT2ZTdHJlYW1TdGF0dXMpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJlYW0oKSA9IDA7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
aW5kZXggZDlkNzE3ODA3ZGM0ZjQ5ODc3ZTQ5ODIwZGQzOGYxYzE1Njg1YmRmYi4uNTJmMDNmODQ3
NzZhMTBiNGIyOGZiNjkwNDcxYjA2NjZlNWZmY2E0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMTI5LDYgKzEyOSw5IEBA
IHByb3RlY3RlZDoKIAogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJbnRlcmZhY2Ug
b3ZlcnJpZGVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKTsKKyNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPikgeyB9OworI2VuZGlmCiAgICAgdmlydHVh
bCB2b2lkIGNhbmNlbExvYWQoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvUGxh
eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCBmMjI2Y2RhODc2ZTIzZjcxZWRm
NTJmMmQ3MDdiNTY1YjVkYzRlNTQzLi43MmIyMjU0MDFjMDhkNmM5YTgwZGM2ODVjNjZkNjQyYTEy
NzkzYjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtOTcsNiArOTcsOSBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIAogICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCk7CisjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
LCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pIHsgfTsKKyNlbmRpZgogICAgIHZvaWQgY2Fu
Y2VsTG9hZCgpOwogICAgIHZvaWQgbG9hZEludGVybmFsKGNvbnN0IFN0cmluZyYgdXJsKTsKICAg
ICB2b2lkIHJlc3VtZUxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9NSU1FVHlwZVJlZ2lzdHJ5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L01JTUVUeXBlUmVnaXN0cnlNYWMubW0KaW5kZXggZDIyZTJiNjYxOTgxYzAwODgzN2RmYmMyYzlh
NTMyNjAwNmIyYjRiOC4uODgzNjY0MDUwM2M4ZmQ0YzExZWFkMTZiOWQ5NDU1MDYyMTgxMGQ4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlN
YWMubW0KQEAgLTczLDQgKzczLDExIEBAIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNh
dGlvblBsdWdpbk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK2Jvb2wgTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFk
ZHNvdXJjZWJ1ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRiZWY4MmZhZDI0M2Y0ZTdmYmI3ODU2MDE4YzhkNzg3YTk1NzRmN2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
IAorUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggZW1wdHkgdHlwZSAKK1BBU1MgVGVz
dCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIHVuc3VwcG9ydGVkIHR5cGUgCitQQVNTIFRlc3QgYWRk
U291cmNlQnVmZmVyKCkgd2l0aCBWb3JiaXMgYW5kIFZQOCAKK1BBU1MgVGVzdCBhZGRTb3VyY2VC
dWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMgCitG
QUlMIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGFzc2VydF90cnVl
OiB2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSxtcDRhLjQwLjIiIGlzIHN1cHBvcnRlZCBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGgg
QUFDIGFuZCBILjI2NCBpbiBzZXBhcmF0ZSBTb3VyY2VCdWZmZXJzIGFzc2VydF90cnVlOiB2aWRl
by9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSIgaXMgc3VwcG9ydGVkIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTAxMzRiZWI3YjNkNmE0YjkyOTFjNjM4NDMyY2YyYjQ2NGIzNTZiMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKworICAgICAg
ICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyc+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rp
b24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRBY2Nlc3NFcnJvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoIiIp
OyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRkU291cmNlQnVmZmVyKCkgdGhyZXcg
YW4gZXhjZXB0aW9uIHdoZW4gcGFzc2VkIGFuIGVtcHR5IHN0cmluZy4iKTsKKyAgICAgICAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0
aCBlbXB0eSB0eXBlIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRl
c3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoImludmFsaWRU
eXBlIik7IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRTb3VyY2VCdWZmZXIoKSB0
aHJldyBhbiBleGNlcHRpb24gZm9yIGFuIHVuc3VwcG9ydGVkIHR5cGUuIik7CisgICAgICAgICAg
ICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdp
dGggdW5zdXBwb3J0ZWQgdHlwZSIpOworCisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1
bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAg
ICAgICAgICAgICB2YXIgbWltZXR5cGUgPSAndmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMi
JzsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0
ZWQobWltZXR5cGUpLCBtaW1ldHlwZSArICIgaXMgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAg
ICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtaW1ldHlw
ZSk7CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlciAhPSBudWxsLCAiTmV3
IFNvdXJjZUJ1ZmZlciByZXR1cm5lZCIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1l
ZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJjZUJ1ZmZlciwgIlNvdXJjZUJ1ZmZlciBp
cyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAi
U291cmNlQnVmZmVyIGlzIGluIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAg
ICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVm
ZmVyKCkgd2l0aCBWb3JiaXMgYW5kIFZQOCIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVz
dChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgdmFyIHZpZGVvTWltZXR5cGUgPSAndmlkZW8vd2VibTtjb2RlY3M9InZw
OCInOworICAgICAgICAgICAgICB2YXIgYXVkaW9NaW1ldHlwZSA9ICdhdWRpby93ZWJtO2NvZGVj
cz0idm9yYmlzIic7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNU
eXBlU3VwcG9ydGVkKHZpZGVvTWltZXR5cGUpLCB2aWRlb01pbWV0eXBlICsgIiBpcyBzdXBwb3J0
ZWQiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9y
dGVkKGF1ZGlvTWltZXR5cGUpLCBhdWRpb01pbWV0eXBlICsgIiBpcyBzdXBwb3J0ZWQiKTsKKwor
ICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQSA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcih2aWRlb01pbWV0eXBlKTsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlckIgPSBt
ZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoYXVkaW9NaW1ldHlwZSk7CisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVy
QSwgInNvdXJjZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNb
MF0sIHNvdXJjZUJ1ZmZlckEsICJzb3VyY2VCdWZmZXJBIGlzIGluIG1lZGlhU291cmNlLmFjdGl2
ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJj
ZS5zb3VyY2VCdWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJCLCAic291cmNlQnVmZmVyQiBpcyBpbiBt
ZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSwgc291cmNlQnVmZmVyQiwgInNvdXJj
ZUJ1ZmZlckIgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIo
KSB3aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMiKTsKKworICAg
ICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRp
YVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBtaW1ldHlwZSA9ICd2aWRl
by9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSxtcDRhLjQwLjIiJzsKKworICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobWltZXR5cGUpLCBtaW1ldHlw
ZSArICIgaXMgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9
IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtaW1ldHlwZSk7CisgICAgICAgICAgICAgIGFz
c2VydF90cnVlKHNvdXJjZUJ1ZmZlciAhPSBudWxsLCAiTmV3IFNvdXJjZUJ1ZmZlciByZXR1cm5l
ZCIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZl
cnNbMF0sIHNvdXJjZUJ1ZmZlciwgIlNvdXJjZUJ1ZmZlciBpcyBpbiBtZWRpYVNvdXJjZS5zb3Vy
Y2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVmZmVyIGlzIGluIG1l
ZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEgu
MjY0Iik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlh
RWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgdmlk
ZW9NaW1ldHlwZSA9ICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSInOworICAgICAgICAg
ICAgICB2YXIgYXVkaW9NaW1ldHlwZSA9ICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjIiJzsK
KworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQo
dmlkZW9NaW1ldHlwZSksIHZpZGVvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoYXVkaW9NaW1l
dHlwZSksIGF1ZGlvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworCisgICAgICAgICAgICAg
IHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHZpZGVvTWlt
ZXR5cGUpOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFk
ZFNvdXJjZUJ1ZmZlcihhdWRpb01pbWV0eXBlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXJBLCAic291cmNlQnVm
ZmVyQSBpcyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVm
ZmVyQSwgInNvdXJjZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVy
cyIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZl
cnNbMV0sIHNvdXJjZUJ1ZmZlckIsICJzb3VyY2VCdWZmZXJCIGlzIGluIG1lZGlhU291cmNlLnNv
dXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJCLCAic291cmNlQnVmZmVyQiBpcyBp
biBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3Qu
ZG9uZSgpOworICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggQUFDIGFu
ZCBILjI2NCBpbiBzZXBhcmF0ZSBTb3VyY2VCdWZmZXJzIik7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
YXBwZW5kLWJ1ZmZlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzY2VlNjJjMTkzZmM4ZTQ4
YzIzZWFkODIxMGYyZDIyN2Y1YmE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZlci5hcHBl
bmRCdWZmZXIoKSBldmVudCBkaXNwYXRjaGluZy4gCitQQVNTIFRlc3QgU291cmNlQnVmZmVyLmFw
cGVuZEJ1ZmZlcigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4gCitQQVNT
IFRlc3QgU291cmNlQnVmZmVyLmFib3J0KCkgY2FsbCBkdXJpbmcgYSBwZW5kaW5nIGFwcGVuZEJ1
ZmZlcigpLiAKK1BBU1MgVGVzdCBTb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKCkgdHJpZ2dlcmlu
ZyBhbiAnZW5kZWQnIHRvICdvcGVuJyB0cmFuc2l0aW9uLiAKK1BBU1MgVGVzdCBNZWRpYVNvdXJj
ZS5yZW1vdmVTb3VyY2VCdWZmZXIoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVmZmVy
KCkuIAorUEFTUyBUZXN0IGFwcGVuZGluZyBhbiBlbXB0eSBBcnJheUJ1ZmZlclZpZXcuIAorUEFT
UyBUZXN0IGFwcGVuZGluZyBhbiBlbXB0eSBBcnJheUJ1ZmZlci4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVu
ZC1idWZmZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWFwcGVuZC1idWZmZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjg1YjQwN2I3N2Q5
OWY1Mjc3NzY5MDNlNTg2ZTZmYTBiMzMyMDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZl
ci5odG1sCkBAIC0wLDAgKzEsMTk5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2Ut
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0n
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBkZXNjcmlw
dGlvbikKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rp
b24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgdmFyIG1lZGlhVHlwZSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZv
cmJpcyInOworICAgICAgICAgICAgICAgICAgdmFyIG1lZGlhVVJMID0gJy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC53ZWJtJzsKKyAgICAgICAgICAgICAgICAgIHZhciBz
b3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobWVkaWFUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmluYXJ5RGF0YSh0ZXN0LCBtZWRp
YVVSTCwgZnVuY3Rpb24obWVkaWFEYXRhKQorICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNv
dXJjZUJ1ZmZlciwgbWVkaWFEYXRhKTsKKworICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgIH0sIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICB9OworCisgICAgICAgICAgbWVkaWFz
b3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291
cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAg
IHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKworICAgICAgICAgICAg
ICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBz
dGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwg
InVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAg
ICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7CisKKyAgICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmli
dXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50
cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIp
OworICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgfSwgIlRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcigpIGV2ZW50IGRpc3BhdGNo
aW5nLiIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0
ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkK
KyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50
LCAnZXJyb3InKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZl
ciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0
LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsK
KyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQi
LCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVm
ZmVyKG1lZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVy
LnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAgICAgICBm
dW5jdGlvbigpIHsgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOyB9LAorICAg
ICAgICAgICAgICAgICAgImFwcGVuZEJ1ZmZlcigpIHRocm93cyBhbiBleGNlcHRpb24gdGhlcmUg
aXMgYSBwZW5kaW5nIGFwcGVuZC4iKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3Vy
Y2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAg
ICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRh
dGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAg
dGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IFNvdXJj
ZUJ1ZmZlci5hcHBlbmRCdWZmZXIoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVmZmVy
KCkuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRl
c3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQs
ICdlcnJvcicpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVy
LCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3Qu
ZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAiYWJvcnQiLCAiQXBwZW5kIGFib3J0ZWQuIik7Cisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIiwg
IkFwcGVuZCBlbmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZl
cihtZWRpYURhdGEpOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51
cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAgICAgICAgICAg
c291cmNlQnVmZmVyLmFib3J0KCk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJj
ZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworCisgICAg
ICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRh
dGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAg
dGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IFNvdXJj
ZUJ1ZmZlci5hYm9ydCgpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4iKTsK
KworICAgICAgICAgIG1lZGlhc291cmNlX2xvYWRkYXRhX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVk
aWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgc291cmNlQnVmZmVyLCBtZWRpYURhdGEpCisgICAgICAg
ICAgeworICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9y
Jyk7CisKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRh
dGVzdGFydCIsICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBwZW5kIHN1Y2Nlc3MuIik7CisgICAgICAg
ICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVu
ZCBlbmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRp
YURhdGEpOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcs
ICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3Qud2Fp
dEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0
dHJpYnV0ZSBpcyBmYWxzZSIpOworCisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50
KG1lZGlhU291cmNlLCAic291cmNlZW5kZWQiLCAiTWVkaWFTb3VyY2Ugc291cmNlZW5kZWQgZXZl
bnQiKTsKKyAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJlbmRl
ZCIsICJNZWRpYVNvdXJjZSByZWFkeVN0YXRlIGlzICdlbmRlZCciKTsKKyAgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24o
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlh
U291cmNlLnJlYWR5U3RhdGUsICJlbmRlZCIsICJNZWRpYVNvdXJjZSByZWFkeVN0YXRlIGlzICdl
bmRlZCciKTsKKworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJj
ZSwgInNvdXJjZW9wZW4iLCAiTWVkaWFTb3VyY2Ugc291cmNlb3BlbiBldmVudCIpOworICAgICAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIs
ICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQo
c291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAg
ICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5k
IGVuZGVkLiIpOworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlciht
ZWRpYURhdGEpOworCisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNl
LnJlYWR5U3RhdGUsICJvcGVuIiwgIk1lZGlhU291cmNlIHJlYWR5U3RhdGUgaXMgJ29wZW4nIik7
CisgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1
cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlT
dGF0ZSwgIm9wZW4iLCAiTWVkaWFTb3VyY2UgcmVhZHlTdGF0ZSBpcyAnb3BlbiciKTsKKyAgICAg
ICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGlu
ZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBTb3VyY2VCdWZmZXIuYXBwZW5k
QnVmZmVyKCkgdHJpZ2dlcmluZyBhbiAnZW5kZWQnIHRvICdvcGVuJyB0cmFuc2l0aW9uLiIpOwor
CisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRp
YUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3In
KTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0
ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgImFib3J0IiwgIkFwcGVuZCBhYm9ydGVkLiIpOworICAgICAgICAg
ICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQg
ZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobWVkaWFE
YXRhKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcs
ICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1
ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJz
b3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIG1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1
ZmZlcihzb3VyY2VCdWZmZXIpOworCisgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VC
dWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKworICAgICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAg
ICAgICBmdW5jdGlvbigpIHsgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOyB9
LAorICAgICAgICAgICAgICAgICAgImFwcGVuZEJ1ZmZlcigpIHRocm93cyBhbiBleGNlcHRpb24g
YmVjYXVzZSBpdCBpc24ndCBhdHRhY2hlZCB0byB0aGUgbWVkaWFTb3VyY2UgYW55bW9yZS4iKTsK
KworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZm
ZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAg
ICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVz
dCBNZWRpYVNvdXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcg
YXBwZW5kQnVmZmVyKCkuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9u
KHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAg
ICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlh
U291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7Cisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFw
cGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1
ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJj
ZUJ1ZmZlci5hcHBlbmRCdWZmZXIobmV3IFVpbnQ4QXJyYXkoMCkpOworCisgICAgICAgICAgICAg
IGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBp
cyB0cnVlIik7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVu
Y3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
c291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7Cisg
ICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgfSwgIlRlc3QgYXBwZW5kaW5nIGFuIGVtcHR5IEFycmF5QnVmZmVyVmlldy4iKTsKKworCisg
ICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1l
ZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9
IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0aWwuVklERU9fT05MWV9U
WVBFKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVw
ZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVj
dEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAg
ICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBw
ZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG5l
dyBBcnJheUJ1ZmZlcigwKSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVm
ZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAg
ICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcs
ICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3Qu
ZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBhcHBlbmRpbmcg
YW4gZW1wdHkgQXJyYXlCdWZmZXIuIik7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA1OWI1NDExZGU5NGU5Yzg3ODQxNmU4NzMxMzNjM2JhYjJmNTU5
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CisgCitQQVNTIERlbXV4ZWQgY29udGVudCB3aXRoIGRpZmZlcmVudCBsZW5ndGhzIAorUEFTUyBN
dXhlZCB0cmFja3Mgd2l0aCBkaWZmZXJlbnQgbGVuZ3RocyAKK1BBU1MgRGVtdXhlZCBjb250ZW50
IHdpdGggYW4gZW1wdHkgYnVmZmVyZWQgcmFuZ2Ugb24gb25lIFNvdXJjZUJ1ZmZlciAKK1BBU1Mg
TXV4ZWQgY29udGVudCBlbXB0eSBidWZmZXJlZCByYW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtYnVmZmVyZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI4MzhhMDY0N2IxOTNiYjFkMmU0YmNh
Njc3Zjc4OGJjYjIzZTEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQuaHRtbApAQCAtMCwwICsx
LDE2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0
PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gbWVk
aWFTb3VyY2VEZW11eGVkVGVzdChjYWxsYmFjaywgZGVzY3JpcHRpb24pCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdmFyIG1hbmlmZXN0RmlsZW5hbWVBID0gIndlYm0vdGVzdC1hLTEy
OGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiI7CisgICAgICAgICAgICAgICAgdmFyIG1hbmlm
ZXN0RmlsZW5hbWVCID0gIndlYm0vdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5p
ZmVzdC5qc29uIjsKKyAgICAgICAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRl
c3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICAgICAgICAg
ICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsKKworICAgICAgICAg
ICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEodGVzdCwgbWFu
aWZlc3RGaWxlbmFtZUEsIGZ1bmN0aW9uKHR5cGVBLCBkYXRhQSkKKyAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZl
c3RBbmREYXRhKHRlc3QsIG1hbmlmZXN0RmlsZW5hbWVCLCBmdW5jdGlvbih0eXBlQiwgZGF0YUIp
CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHR5cGVBKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodHlwZUIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVm
ZmVycy5sZW5ndGgsIDIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2so
dGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgZGF0YUEsIGRhdGFCKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9LCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBmdW5j
dGlvbiBhcHBlbmREYXRhKHRlc3QsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIsIGNhbGxiYWNr
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVk
aWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXTsKKyAgICAgICAgICAgICAgICB2YXIgc291
cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV07CisKKyAgICAg
ICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckEsICJ1cGRhdGUiKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckEsICJ1cGRhdGVlbmQi
KTsKKyAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXJBLmFwcGVuZEJ1ZmZlcihkYXRhQSk7CisK
KyAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckIsICJ1cGRhdGUi
KTsKKyAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckIsICJ1cGRh
dGVlbmQiKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXJCLmFwcGVuZEJ1ZmZlcihkYXRh
Qik7CisKKyAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlv
bigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gdGltZVJhbmdlc1RvU3RyaW5nKHJhbmdlcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgIHZhciBzID0gInsiOworICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYW5n
ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICBzICs9ICIgWyIgKyByYW5nZXMu
c3RhcnQoaSkudG9GaXhlZCgzKSArICIsICIgKyByYW5nZXMuZW5kKGkpLnRvRml4ZWQoMykgKyAi
KSI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICByZXR1cm4gcyArICIgfSI7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFzc2VydEJ1ZmZlcmVkRXF1YWxz
KG9iaiwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHZhciBhY3R1YWwgPSB0aW1lUmFuZ2VzVG9TdHJpbmcob2JqLmJ1ZmZlcmVkKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVkaWFTb3VyY2VEZW11eGVkVGVzdChmdW5j
dGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIpIHsKKyAg
ICAgICAgICAgICAgICBhcHBlbmREYXRhKHRlc3QsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIs
IGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IFsw
LjAwMCwgMi4wMjMpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOwor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3Rp
dmVTb3VyY2VCdWZmZXJzWzFdLCAieyBbMC4wMDAsIDIuMDAxKSB9IiwgIm1lZGlhU291cmNlLmFj
dGl2ZVNvdXJjZUJ1ZmZlcnNbMV0iKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVy
ZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyBbMC4wMDAsIDIuMDAxKSB9IiwgIm1lZGlhRWxlbWVu
dC5idWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3Ry
ZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRp
YVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgIGFz
c2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7
IFswLjAwMCwgMi4wMDEpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSIp
OworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQs
ICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9LCAiRGVtdXhlZCBjb250ZW50IHdpdGggZGlmZmVyZW50IGxlbmd0aHMiKTsKKworICAg
ICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1l
ZGlhU291cmNlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5w
YXVzZSgpOworICAgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAn
ZXJyb3InKTsKKyAgICAgICAgICAgICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAn
ZW5kZWQnKTsKKworICAgICAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5mZXRjaE1hbmlmZXN0
QW5kRGF0YSh0ZXN0LCAid2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZw
cy0xMGtmci1tYW5pZmVzdC5qc29uIiwgZnVuY3Rpb24odHlwZSwgZGF0YSkKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIodHlwZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3Qu
ZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIik7CisgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZGF0YSk7CisKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRp
YVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBbMC4wMDAsIDIuMDA0KSB9IiwgIm1l
ZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgWzAuMDAwLCAyLjAwNCkg
fSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
bWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsg
WzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1l
bnQsICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJNdXhlZCB0cmFja3Mgd2l0
aCBkaWZmZXJlbnQgbGVuZ3RocyIpOworCisKKyAgICAgICAgICAgIG1lZGlhU291cmNlRGVtdXhl
ZFRlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgZGF0YUEsIGRh
dGFCKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kRGF0YSh0ZXN0LCBtZWRpYVNvdXJjZSwgZGF0
YUEsIGRhdGFCLnN1YmFycmF5KDAsIDMxOCksIGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFj
dGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFTb3VyY2Uu
YWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZm
ZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdLCAieyB9IiwgIm1l
ZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0iKTsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyB9IiwgIm1lZGlhRWxlbWVudC5i
dWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFt
KCk7CisKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3Vy
Y2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IH0i
LCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IH0iLCAibWVkaWFFbGVt
ZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiRGVtdXhlZCBjb250ZW50IHdpdGggYW4g
ZW1wdHkgYnVmZmVyZWQgcmFuZ2Ugb24gb25lIFNvdXJjZUJ1ZmZlciIpOworCisgICAgICAgICAg
ICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3Vy
Y2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBhdXNlKCk7
CisgICAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicp
OworICAgICAgICAgICAgICAgIHRlc3QuZW5kT25FdmVudChtZWRpYUVsZW1lbnQsICdlbmRlZCcp
OworCisgICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRh
KHRlc3QsICJ3ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2Zy
LW1hbmlmZXN0Lmpzb24iLCBmdW5jdGlvbih0eXBlLCBkYXRhKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNv
dXJjZUJ1ZmZlcih0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChz
b3VyY2VCdWZmZXIsICJ1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RF
dmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiKTsKKyAgICAgICAgICAgICAgICAgICAgc291
cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhLnN1YmFycmF5KDAsIDQwNTIpKTsKKworICAgICAg
ICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVk
RXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IH0iLCAibWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyB9IiwgIm1lZGlhRWxlbWVudC5i
dWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5lbmRPZlN0
cmVhbSgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyht
ZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyB9IiwgIm1lZGlhU291cmNlLmFj
dGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1
ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgfSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQi
KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgIk11eGVkIGNv
bnRlbnQgZW1wdHkgYnVmZmVyZWQgcmFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jODVjZTFiZDkzODc3ZDU3OWYzNDJjZTczNzIxYmNhZGMyM2Qy
ZWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
KyAKK1BBU1MgVGVzdCBhdHRyaWJ1dGUgdmFsdWVzIG9uIGEgY2xvc2VkIE1lZGlhU291cmNlIG9i
amVjdC4gCitQQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2hpbGUgY2xvc2VkLiAKK1BBU1Mg
VGVzdCByZW1vdmVTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9zZWQuIAorUEFTUyBUZXN0IGVuZE9m
U3RyZWFtKCkgd2hpbGUgY2xvc2VkLiAKK1BBU1MgVGVzdCBzZXR0aW5nIGR1cmF0aW9uIHdoaWxl
IGNsb3NlZC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWNsb3NlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjkzMzFkZmQ0MDc1MWFjZjA1MTYzZDliZTZkZDQ3ZjhlNjljZWIxNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNsb3NlZC5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNv
dXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBo
cmVmPScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIg
bWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgInNvdXJjZUJ1ZmZlcnMg
aXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3Rp
dmVTb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHki
KTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAi
Y2xvc2VkIiwgInJlYWR5U3RhdGUgaXMgJ2Nsb3NlZCciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0
X3RydWUoTnVtYmVyLmlzTmFOKG1lZGlhU291cmNlLmR1cmF0aW9uKSwgImR1cmF0aW9uIGlzIE5h
TiIpOworICAgICAgICAgIH0sICJUZXN0IGF0dHJpYnV0ZSB2YWx1ZXMgb24gYSBjbG9zZWQgTWVk
aWFTb3VyY2Ugb2JqZWN0LiIpOworCisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7
CisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoJ3Zp
ZGVvL3dlYm07Y29kZWNzPSJ2cDgiJyk7IH0sCisgICAgICAgICAgICAgICAgICAiYWRkU291cmNl
QnVmZmVyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGNsb3NlZC4iKTsKKyAgICAgICAgICB9
LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9zZWQuIik7CisKKyAgICAgICAgICBt
ZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2Up
CisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgVk9SQklTX1RZUEUgPSAndmlkZW8vd2Vi
bTtjb2RlY3M9InZvcmJpcyInOworICAgICAgICAgICAgICB2YXIgQUFDX1RZUEUgPSAndmlkZW8v
bXA0O2NvZGVjcz0ibXA0YS40MC4yIic7CisgICAgICAgICAgICAgIHZhciBtZWRpYVR5cGUgPSBN
ZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoVk9SQklTX1RZUEUpID8gVk9SQklTX1RZUEUgOiBB
QUNfVFlQRTsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFk
ZFNvdXJjZUJ1ZmZlcihtZWRpYVR5cGUpOworCisgICAgICAgICAgICAgIC8vIFNldHVwIGEgaGFu
ZGxlciB0byBydW4gd2hlbiB0aGUgTWVkaWFTb3VyY2UgY2xvc2VzLgorICAgICAgICAgICAgICBt
ZWRpYVNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCdzb3VyY2VjbG9zZScsIHRlc3Quc3RlcF9mdW5j
KGZ1bmN0aW9uIChldmVudCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgInNvdXJjZUJ1
ZmZlcnMgaXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVycy5sZW5ndGgsIDAsICJhY3RpdmVTb3VyY2VCdWZmZXJz
IGlzIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNl
LnJlYWR5U3RhdGUsICJjbG9zZWQiLCAicmVhZHlTdGF0ZSBpcyAnY2xvc2VkJyIpOworICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiTm90Rm91bmRFcnJvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZlcihzb3Vy
Y2VCdWZmZXIpOyB9LAorICAgICAgICAgICAgICAgICAgICAgICJyZW1vdmVTb3VyY2VCdWZmZXIo
KSB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gY2xvc2VkLiIpOworICAgICAgICAgICAgICAgICAg
dGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pKTsKKworICAgICAgICAgICAgICAvLyBUcmln
Z2VyIHRoZSBNZWRpYVNvdXJjZSB0byBjbG9zZS4KKyAgICAgICAgICAgICAgbWVkaWFFbGVtZW50
LnNyYyA9ICIiOworICAgICAgICAgIH0sICJUZXN0IHJlbW92ZVNvdXJjZUJ1ZmZlcigpIHdoaWxl
IGNsb3NlZC4iKTsKKworICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAg
ICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAg
ICAgICBmdW5jdGlvbigpIHsgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsgfSwKKyAgICAgICAg
ICAgICAgICAgICJlbmRPZlN0cmVhbSgpIHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBjbG9zZWQu
Iik7CisgICAgICAgICAgfSwgIlRlc3QgZW5kT2ZTdHJlYW0oKSB3aGlsZSBjbG9zZWQuIik7CisK
KworICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAgICAg
IHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5jdGlv
bigpIHsgbWVkaWFTb3VyY2UuZHVyYXRpb24gPSAxMDsgfSwKKyAgICAgICAgICAgICAgICAgICJT
ZXR0aW5nIGR1cmF0aW9uIHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBjbG9zZWQuIik7CisgICAg
ICAgICAgfSwgIlRlc3Qgc2V0dGluZyBkdXJhdGlvbiB3aGlsZSBjbG9zZWQuIik7CisKKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtYS1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJkZWYwM2RlYzZlZDcwZGY3ZDJlOWNlODcwNWFkMjlk
YzBlNTY5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCBhdWRpby1vbmx5IGJp
dHJhdGUgY2hhbmdlcy4gYXNzZXJ0X3RydWU6IGF1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiIg
aXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI2NDBhNjQ4ODI5ZDA2NDlhNmY1MjA1YWY1ZGNhODgxYzYzNzE3ZTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJpdHJhdGUuaHRtbApAQCAtMCwwICsx
LDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxk
aXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNv
dXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhLTEyOGstNDQxMDBIei0xY2giLCAiYS0xOTJr
LTQ0MTAwSHotMWNoIiwgIlRlc3RzIG1wNCBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS1tcDQtYXYtYXVkaW8tYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1w
NC1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjdmMDYwYTMzN2Fl
ZDI4OWVmYWNlYmU3ZDcxOWI3Mzg2NzUyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtYXYtYXVkaW8tYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitG
QUlMIFRlc3RzIG1wNCBhdWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVu
dC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiIg
aXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRp
by1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJkMmI0ZDBmYWY1NjBkMmIxYTQ2YmFlOThiODMx
Yjk2NDJhYmZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWF1ZGlvLWJp
dHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3Vy
Y2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhdi0zODRr
LTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiYXYtNDQ4ay00NDEwMEh6LTFjaC02
NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCBhdWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4g
bXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVzaXplLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmQ3YjYxZTE5MzkwOTE1YjQ5YTI1ZjNjNDZlYmJmOTBkNDEwNjNiMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4
ZWQgY29udGVudC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1w
NGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2
LWZyYW1lc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NWU4YWUxZDU3YjM2MDRiOTVjMGVkYTBhNWFl
ODYzZTcyNGQ2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFtZXNp
emUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2Ut
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25m
aWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhdi0zODRrLTQ0
MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4
NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlw
bGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZDYwOWJlMTk0YTc3MGNlOTBhYWM3Zjg2MTQ3NGMzNzEwYjBlYjY1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4g
bXVsdGlwbGV4ZWQgY29udGVudC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEu
NEQ0MDAxLG1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZjlkMGNlMmQz
OTIwNDAxNjM3NjMzMmUxMjdiZGY1MWU4NDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2UtbXA0LWF2LXZpZGVvLWJpdHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3Nz
Ij4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRl
c3QoIm1wNCIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiYXYt
NjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCB2aWRlbyBi
aXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1i
aXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDFmNzE0ZWMwZTQ5NTc5Y2JkYmU1NmQyNjFiYTVmOTgxZjc5NmM0NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2aWRlby1vbmx5IGJpdHJhdGUgY2hh
bmdlcy4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIiBpcyBzdXBw
b3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Ut
bXA0LXYtYml0cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzYyZDc2OTYzY2E2YWI1NTQwNGVmNzI3NTQ3MDJiYmMwZmQ0MWU5MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29u
ZmlnQ2hhbmdlVGVzdCgibXA0IiwgInYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgInYtMjU2
ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCB2aWRlby1vbmx5IGJpdHJhdGUgY2hh
bmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMGVjYjVmZTE0YjY3
MDk0NmNjMDc1YjcxMDQxZmVmODI4OGQ2M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRl
c3RzIG1wNCB2aWRlby1vbmx5IGZyYW1lIHJhdGUgY2hhbmdlcy4gYXNzZXJ0X3RydWU6IHZpZGVv
L21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25m
aWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMmEzNTVmOGU1N2Zl
MmIzNDI5YjYxZDc3MWQ5YjUyMDEwNzM5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWZyYW1lcmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAg
ICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0
IiwgInYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnIiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBr
ZnIiLCAiVGVzdHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiIpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lc2l6
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkwZDRlYTVmYTE2NjA0OWQ3ZmY2ZDE2NTU2Njkw
YmMzNjljNjJmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXpl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IHZpZGVvLW9u
bHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZj
MS40RDQwMDEiIGlzIHN1cHBvcnRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYt
ZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRiZjk0Y2I4YmFkNTA1Zjc5YzJlMzA2ZDViMDA0
YWQ3ZTBkYWJmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXpl
Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0
aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJtcDQiLCAidi0xMjhrLTMyMHgy
NDAtMzBmcHMtMTBrZnIiLCAidi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0
IHZpZGVvLW9ubHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYS1iaXRyYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhiNGJlY2E5NWQzNTk3OTEwZTk3NTNlOTMyYTc1NWUzNGMxZjRmZTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYS1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2VibSBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdl
cy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1j
aGFuZ2Utd2VibS1hLWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmUyM2Q0N2QwMDU1Yjk1NDY3
N2IwZTZhNDNlNDNkMTdkZjRiMmJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJt
LWEtYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRp
YXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgid2VibSIsICJh
LTEyOGstNDQxMDBIei0xY2giLCAiYS0xOTJrLTQ0MTAwSHotMWNoIiwgIlRlc3RzIHdlYm0gYXVk
aW8tb25seSBiaXRyYXRlIGNoYW5nZXMuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMGU2NGQ3NThmOGIyYTNiMjU5YzcxNTQxZWQyYWQzMzllNTk5MDhm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIGF1ZGlvIGJpdHJh
dGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNo
YW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRp
by1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE5OGM3MWFiYmQ5NmE2ZmYwMTczYmIwYjVkYzE1
Y2I3MmE0YjM3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1i
aXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291
cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgor
ICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgImF2LTM4
NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJhdi00NDhrLTQ0MTAwSHotMWNo
LTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSBhdWRpbyBiaXRyYXRlIGNoYW5nZXMg
aW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1lc2l6ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNzRlMGIxY2M3NTEwMGVjZGRhMTAxYmNiNjc4MWU0OGFlMDkwODRlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gZnJhbWUgc2l6ZSBjaGFuZ2VzIGluIG11
bHRpcGxleGVkIGNvbnRlbnQuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJh
bWVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODFjMzNmMWVlYTkwNTU1NGZhNWQ1NzY2OTM4OGIyNDQ3YjA2NTQ1MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsxLDE2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9
ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNv
bmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAiYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBz
LTEwa2ZyIiwgImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJUZXN0
cyB3ZWJtIGZyYW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0t
YXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY3ODk0NWQ3NWZiMmE2
MWJjN2JjZTRlZjc0YmNlMjFmNDJkYTZkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Ut
d2VibS1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK1BB
U1MgVGVzdHMgd2VibSB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVu
dC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMTc4
YmM0MGZiMDhiZTUyZjIwNjRjMGZiZDViMDkyNmJjMWI1YTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25m
aWctY2hhbmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmln
Q2hhbmdlVGVzdCgid2VibSIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBr
ZnIiLCAiYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIHdl
Ym0gdmlkZW8gYml0cmF0ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIik7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2Utd2VibS12LWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJjNzBiZGZkNjVmMDEyZjJiYzk3MjEzYzk5YTRi
Y2NmNDJmNDVhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWJpdHJhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIHZpZGVvLW9u
bHkgYml0cmF0ZSBjaGFuZ2VzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0
cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIy
NzdhYjVlZGQ5N2RjYzQ1YmU3ZWJmNzRmYzY3YTE1MmY3NWYzOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlLXdlYm0tdi1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFu
Z2VUZXN0KCJ3ZWJtIiwgInYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgInYtMjU2ay0zMjB4
MjQwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIHdlYm0gdmlkZW8tb25seSBiaXRyYXRlIGNoYW5nZXMu
Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdl
Ym0tdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1NmFmNjFmNDIwZWJlM2I2
N2IwY2RjZjg3OGZiOTYwYjgyYTE4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdl
Ym0tdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0
cyB3ZWJtIHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS13ZWJtLXYtZnJhbWVyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJh
dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40OGRmZmQ5NjMxZGYzY2QzYjAwOGNmMDJjNGUzMmQ5YzU1MTQ2
OGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVyYXRlLmh0bWwK
QEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5Pgor
ICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgInYtMTI4ay0zMjB4MjQwLTI0
ZnBzLThrZnIiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2aWRl
by1vbmx5IGZyYW1lIHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVzaXplLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWE2MDUwNGMyN2E2ZjFlZjc1ZjY1MzA2ZDJkMjYxYmY5ODdhZTRkNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gdmlkZW8tb25seSBmcmFtZSBzaXplIGNo
YW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXNpemUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZWUwZDFhZDlj
YTAwMWNiZWJiNmY5M2ViNTk1ZmY5YWM5NzY4ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tdi1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3Qo
IndlYm0iLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAidi0xMjhrLTY0MHg0ODAtMzBm
cHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2aWRlby1vbmx5IGZyYW1lIHNpemUgY2hhbmdlcy4iKTsK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZXMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODM0MjQ4MGFiZGEyZTZk
MjJhNmQ3ZDA0ZTQwNTZhNjlhMGJjNzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMu
anMKQEAgLTAsMCArMSw2MCBAQAorZnVuY3Rpb24gYXBwZW5kQnVmZmVyKHRlc3QsIHNvdXJjZUJ1
ZmZlciwgZGF0YSkKK3sKKyAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0
ZSIpOworICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIik7Cisg
ICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhKTsKK30KKworZnVuY3Rpb24gbWVkaWFT
b3VyY2VDb25maWdDaGFuZ2VUZXN0KGRpcmVjdG9yeSwgaWRBLCBpZEIsIGRlc2NyaXB0aW9uKQor
eworICAgIHZhciBtYW5pZmVzdEZpbGVuYW1lQSA9IGRpcmVjdG9yeSArICIvdGVzdC0iICsgaWRB
ICsgIi1tYW5pZmVzdC5qc29uIjsKKyAgICB2YXIgbWFuaWZlc3RGaWxlbmFtZUIgPSBkaXJlY3Rv
cnkgKyAiL3Rlc3QtIiArIGlkQiArICItbWFuaWZlc3QuanNvbiI7CisgICAgbWVkaWFzb3VyY2Vf
dGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgIHsKKyAg
ICAgICAgbWVkaWFFbGVtZW50LnBhdXNlKCk7CisgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVk
aWFFbGVtZW50LCAnZXJyb3InKTsKKyAgICAgICAgdGVzdC5lbmRPbkV2ZW50KG1lZGlhRWxlbWVu
dCwgJ2VuZGVkJyk7CisKKyAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmRE
YXRhKHRlc3QsIG1hbmlmZXN0RmlsZW5hbWVBLCBmdW5jdGlvbih0eXBlQSwgZGF0YUEpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0YSh0
ZXN0LCBtYW5pZmVzdEZpbGVuYW1lQiwgZnVuY3Rpb24odHlwZUIsIGRhdGFCKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZUEsIHR5cGVCLCAiTWVkaWEg
Zm9ybWF0IHR5cGVzIG1hdGNoIik7CisKKyAgICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVy
ID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHR5cGVBKTsKKworICAgICAgICAgICAgICAg
IGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIsIGRhdGFBKTsKKworICAgICAgICAgICAg
ICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgc2Vjb25kIGJ1ZmZlciBzdGFydGlu
ZyBhdCAwLjUgc2Vjb25kLgorICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIudGltZXN0
YW1wT2Zmc2V0ID0gMC41OworICAgICAgICAgICAgICAgICAgICBhcHBlbmRCdWZmZXIodGVzdCwg
c291cmNlQnVmZmVyLCBkYXRhQik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
ICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIGZpcnN0IGJ1ZmZlciBzdGFydGlu
ZyBhdCAxIHNlY29uZC4KKyAgICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLnRpbWVzdGFt
cE9mZnNldCA9IDE7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3Vy
Y2VCdWZmZXIsIGRhdGFBKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
IHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgc2Vjb25kIGJ1ZmZlciBzdGFydGluZyBh
dCAxLjUgc2Vjb25kLgorICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIudGltZXN0YW1w
T2Zmc2V0ID0gMS41OworICAgICAgICAgICAgICAgICAgICBhcHBlbmRCdWZmZXIodGVzdCwgc291
cmNlQnVmZmVyLCBkYXRhQik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
ICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAvLyBUcnVuY2F0ZSB0aGUgcHJlc2VudGF0aW9uIHRvIGEg
ZHVyYXRpb24gb2YgMiBzZWNvbmRzLgorICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5k
dXJhdGlvbiA9IDI7CisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFt
KCk7CisKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBsYXkoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9LCBkZXNjcmlw
dGlvbiwgeyB0aW1lb3V0OiAxMDAwMCB9ICk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ1ZTBjNjAwMWI3ZTBiMmQwZjdhNDM0ODAzMWM5ZGZmMWUxNTc3OGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1pcy10eXBlLXN1cHBvcnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mg
VGVzdCBpbnZhbGlkIHR5cGVzIAorUEFTUyBUZXN0IHZhbGlkIFdlYk0gdHlwZXMgCitGQUlMIFRl
c3QgdmFsaWQgTVA0IHR5cGVzIGFzc2VydF90cnVlOiBUeXBlICJ2aWRlby9tcDQ7Y29kZWNzPSJh
dmMxLjRkMDAxZSIiIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1pcy10eXBlLXN1cHBvcnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hYzRmY2E1NmM0MTdhYzk2YThhZWZkMDlkMjM3MjFiMjk5ODQwNTY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtaXMtdHlwZS1zdXBwb3J0ZWQuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayBy
ZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAgIHZhciBpbnZhbGlkVHlwZXMgPSBbCisgICAgICAgICAgICAgICAgICAvLyBJ
bnZhbGlkIE1JTUUgZm9ybWF0LgorICAgICAgICAgICAgICAgICAgJ3ZpZGVvJywKKyAgICAgICAg
ICAgICAgICAgICd2aWRlby8nLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm0nLAorICAg
ICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07JywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93
ZWJtO2NvZGVjcycsCisgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibTtjb2RlY3M9JywKKyAg
ICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0iJywKKyAgICAgICAgICAgICAgICAg
ICd2aWRlby93ZWJtO2NvZGVjcz0iIicsCisgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibTtj
b2RlY3M9IiwiJywKKworICAgICAgICAgICAgICAgICAgLy8gTWlzbWF0Y2ggYmV0d2VlbiBtYWpv
ciB0eXBlIGFuZCBjb2RlYyBJRAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNz
PSJ2cDgiJywKKyAgICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAx
ZSInLAorCisgICAgICAgICAgICAgICAgICAvLyBNaXNtYXRjaCBiZXR3ZWVuIG1pbm9yIHR5cGUg
YW5kIGNvZGVjIElELgorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9InZvcmJp
cyInLAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJtcDRhLjQwLjIiJywK
KyAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJ2cDgiJywKKyAgICAgICAgICAg
ICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0ibXA0YS40MC4yIicsCisKKyAgICAgICAgICAgICAg
ICAgIC8vIEludmFsaWQgY29kZWMgSURzLgorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07
Y29kZWNzPSJtcDRhIicsCisgICAgICAgICAgICAgICAgICAnYXVkaW8vd2VibTtjb2RlY3M9Im1w
NGEuNDAiJywKKyAgICAgICAgICAgICAgICAgICdhdWRpby93ZWJtO2NvZGVjcz0ibXA0YS40MC4i
JywKKyAgICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjY3LjMiJworICAg
ICAgICAgICAgICBdOworCisgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW52YWxp
ZFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKE1lZGlh
U291cmNlLmlzVHlwZVN1cHBvcnRlZChpbnZhbGlkVHlwZXNbaV0pLCAiVHlwZSBcIiIgKyBpbnZh
bGlkVHlwZXNbaV0gKyAiXCIgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgfSwgIlRlc3QgaW52YWxpZCB0eXBlcyIpOworCisgICAgICAgICAgdGVzdChmdW5jdGlv
biAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHZhbGlkVHlwZXMgPSBbCisgICAg
ICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0idnA4IicsCisgICAgICAgICAgICAg
ICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0idm9yYmlzIicsCisgICAgICAgICAgICAgICAgICAg
ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInLAorICAgICAgICAgICAgICAgICAgICAn
dmlkZW8vd2VibTtjb2RlY3M9InZvcmJpcywgdnA4IicsCisgICAgICAgICAgICAgICAgICAgICdh
dWRpby93ZWJtO2NvZGVjcz0idm9yYmlzIicsCisgICAgICAgICAgICAgIF07CisKKyAgICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWxpZFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKHZhbGlk
VHlwZXNbaV0pLCAiVHlwZSBcIiIgKyB2YWxpZFR5cGVzW2ldICsgIlwiIHN1cHBvcnRlZCIpOwor
ICAgICAgICAgICAgICB9CisgICAgICAgICAgfSwgIlRlc3QgdmFsaWQgV2ViTSB0eXBlcyIpOwor
CisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
dmFyIHZhbGlkVHlwZXMgPSBbCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNz
PSJhdmMxLjRkMDAxZSInLCAvLyBILjI2NCBNYWluIFByb2ZpbGUgbGV2ZWwgMy4wCisgICAgICAg
ICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjQyMDAxZSInLCAvLyBILjI2NCBC
YXNlbGluZSBQcm9maWxlIGxldmVsIDMuMAorICAgICAgICAgICAgICAgICAgICAnYXVkaW8vbXA0
O2NvZGVjcz0ibXA0YS40MC4yIicsICAgLy8gTVBFRzQgQUFDLUxDCisgICAgICAgICAgICAgICAg
ICAgICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjUiJywgICAvLyBNUEVHNCBIRS1BQUMKKyAg
ICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNjciJywgICAgIC8vIE1Q
RUcyIEFBQy1MQworICAgICAgICAgICAgICAgICAgICAndmlkZW8vbXA0O2NvZGVjcz0ibXA0YS40
MC4yIicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAx
ZSxtcDRhLjQwLjIiJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9Im1w
NGEuNDAuMiAsIGF2YzEuNGQwMDFlICInLAorICAgICAgICAgICAgICAgICAgICAndmlkZW8vbXA0
O2NvZGVjcz0iYXZjMS40ZDAwMWUsbXA0YS40MC41IicsCisgICAgICAgICAgICAgICAgICAgICd2
aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQwLjUiJywKKyAgICAgICAgICAgICAg
XTsKKworICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlkVHlwZXMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVT
dXBwb3J0ZWQodmFsaWRUeXBlc1tpXSksICJUeXBlIFwiIiArIHZhbGlkVHlwZXNbaV0gKyAiXCIg
c3VwcG9ydGVkIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAiVGVzdCB2YWxpZCBN
UDQgdHlwZXMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtbXVsdGlwbGUtYXR0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTlmNzgyMjY1ZTUzMWUxMGQ4ZmQ3YmJkMTRlNDEzY2YzMzRjNDY3
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACisgCitQQVNTIFRlc3QgZXhhY3RseSBvbmUgc3VjY2VlZHMgd2hlbiB0d28gTWVkaWFF
bGVtZW50cyBhdHRhY2ggdG8gc2FtZSBNZWRpYVNvdXJjZSAKK1BBU1MgVGVzdCB0aGF0IE1lZGlh
U291cmNlIGNhbiByZWF0dGFjaCBpZiBjbG9zZWQgZmlyc3QgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxl
LWF0dGFjaC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNjN2JkYzY5MTUy
NDA5ODc5ZmIxYjg5NDllMDA0MTNkNTg3ODY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0
dGFjaC5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3Vy
Y2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJl
Zj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgZnVuY3Rpb24gdHdvTWVkaWFFbGVtZW50VGVzdCh0ZXN0RnVuY3Rpb24sIGRlc2NyaXB0
aW9uKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgbWVkaWFfdGVzdChmdW5jdGlvbih0ZXN0
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICB2YXIgZmlyc3RNZWRpYVRhZyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgICB2YXIg
c2Vjb25kTWVkaWFUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaXJzdE1lZGlhVGFnKTsKKyAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2Vjb25kTWVkaWFUYWcp
OworCisgICAgICAgICAgICAgICAgICAvLyBPdmVybG9hZCBkb25lKCkgc28gdGhhdCBlbGVtZW50
cyBhZGRlZCB0byB0aGUgZG9jdW1lbnQgY2FuIGJlCisgICAgICAgICAgICAgICAgICAvLyByZW1v
dmVkLgorICAgICAgICAgICAgICAgICAgdmFyIHJlbW92ZU1lZGlhRWxlbWVudHMgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICAgdmFyIG9sZFRlc3REb25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7
CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUgPSBmdW5jdGlvbigpCisgICAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZU1lZGlhRWxlbWVudHMpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWNv
bmRNZWRpYVRhZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZmlyc3RNZWRpYVRhZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92
ZU1lZGlhRWxlbWVudHMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgb2xkVGVzdERvbmUoKTsKKyAgICAgICAgICAgICAgICAgIH07CisKKyAg
ICAgICAgICAgICAgICAgIHRlc3RGdW5jdGlvbih0ZXN0LCBmaXJzdE1lZGlhVGFnLCBzZWNvbmRN
ZWRpYVRhZyk7CisgICAgICAgICAgICAgIH0sIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICB9CisK
KyAgICAgICAgICB0d29NZWRpYUVsZW1lbnRUZXN0KGZ1bmN0aW9uKHRlc3QsIGZpcnN0TWVkaWFU
YWcsIHNlY29uZE1lZGlhVGFnKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gV2hlbiBh
dHRhY2htZW50IG9mIG1lZGlhU291cmNlIHRvIHR3byBNZWRpYUVsZW1lbnRzIGlzIGRvbmUKKyAg
ICAgICAgICAgICAgLy8gd2l0aG91dCBhbiBpbnRlcnZlbmluZyBzdGFibGUgc3RhdGUsIGV4YWN0
bHkgb25lIG9mIHRoZSB0d28KKyAgICAgICAgICAgICAgLy8gTWVkaWFFbGVtZW50cyBzaG91bGQg
c3VjY2Vzc2Z1bGx5IGF0dGFjaCwgYW5kIHRoZSBvdGhlciBvbmUKKyAgICAgICAgICAgICAgLy8g
c2hvdWxkIGdldCBlcnJvciBldmVudCBkdWUgdG8gbWVkaWFTb3VyY2UgYWxyZWFkeSBpbiAnb3Bl
bicKKyAgICAgICAgICAgICAgLy8gcmVhZHlTdGF0ZS4KKyAgICAgICAgICAgICAgdmFyIG1lZGlh
U291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJj
ZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UpOworICAgICAgICAgICAgICB2
YXIgZ290U291cmNlT3BlbiA9IGZhbHNlOworICAgICAgICAgICAgICB2YXIgZ290RXJyb3IgPSBm
YWxzZTsKKyAgICAgICAgICAgICAgdmFyIGRvbmVJZkZpbmlzaGVkID0gdGVzdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpZiAoZ290U291
cmNlT3BlbiAmJiBnb3RFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsK
KyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIHZhciBlcnJvckhhbmRsZXIgPSB0ZXN0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICBmaXJzdE1lZGlhVGFnLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JIYW5kbGVy
KTsKKyAgICAgICAgICAgICAgICAgIHNlY29uZE1lZGlhVGFnLnJlbW92ZUV2ZW50TGlzdGVuZXIo
J2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKworICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50VGFy
Z2V0ID0gZS50YXJnZXQ7CisgICAgICAgICAgICAgICAgICB2YXIgb3RoZXJUYXJnZXQ7CisgICAg
ICAgICAgICAgICAgICBpZiAoZXZlbnRUYXJnZXQgPT0gZmlyc3RNZWRpYVRhZykgeworICAgICAg
ICAgICAgICAgICAgICAgIG90aGVyVGFyZ2V0ID0gc2Vjb25kTWVkaWFUYWc7CisgICAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZl
bnRUYXJnZXQsIHNlY29uZE1lZGlhVGFnLCAnRXJyb3IgdGFyZ2V0IGNoZWNrJyk7CisgICAgICAg
ICAgICAgICAgICAgICAgb3RoZXJUYXJnZXQgPSBmaXJzdE1lZGlhVGFnOworICAgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShldmVudFRhcmdldC5lcnJv
ciAhPSBudWxsLCAnRXJyb3Igc3RhdGUgb24gb25lIHRhZycpOworICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhldmVudFRhcmdldC5lcnJvci5jb2RlLCBNZWRpYUVycm9yLk1FRElBX0VS
Ul9TUkNfTk9UX1NVUFBPUlRFRCwgJ0V4cGVjdGVkIGVycm9yIGNvZGUnKTsKKyAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMob3RoZXJUYXJnZXQuZXJyb3IsIG51bGwsICdObyBlcnJvciBv
biBvdGhlciB0YWcnKTsKKworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudFRh
cmdldC5uZXR3b3JrU3RhdGUsIEhUTUxNZWRpYUVsZW1lbnQuTkVUV09SS19OT19TT1VSQ0UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUYWcgd2l0aCBlcnJvciBzdGF0ZSBuZXR3
b3JrU3RhdGUnKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMob3RoZXJUYXJnZXQu
bmV0d29ya1N0YXRlLCBIVE1MTWVkaWFFbGVtZW50Lk5FVFdPUktfTE9BRElORywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1RhZyB3aXRob3V0IGVycm9yIHN0YXRlIG5ldHdvcmtT
dGF0ZScpOworCisgICAgICAgICAgICAgICAgICBnb3RFcnJvciA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICBkb25lSWZGaW5pc2hlZCgpOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAnc291cmNlb3BlbicsICdBbiBhdHRh
Y2htZW50IHN1Y2NlZWRlZCcpOworICAgICAgICAgICAgICBmaXJzdE1lZGlhVGFnLmFkZEV2ZW50
TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKyAgICAgICAgICAgICAgc2Vjb25kTWVk
aWFUYWcuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIpOworCisgICAgICAg
ICAgICAgIGZpcnN0TWVkaWFUYWcuc3JjID0gbWVkaWFTb3VyY2VVUkw7CisgICAgICAgICAgICAg
IHNlY29uZE1lZGlhVGFnLnNyYyA9IG1lZGlhU291cmNlVVJMOworCisgICAgICAgICAgICAgIHRl
c3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAnb3Bl
bicsICdTb3VyY2UgaXMgb3BlbmVkJyk7CisgICAgICAgICAgICAgICAgICBnb3RTb3VyY2VPcGVu
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgIGRvbmVJZkZpbmlzaGVkKCk7CisgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgIH0sICdUZXN0IGV4YWN0bHkgb25lIHN1Y2NlZWRzIHdoZW4gdHdv
IE1lZGlhRWxlbWVudHMgYXR0YWNoIHRvIHNhbWUgTWVkaWFTb3VyY2UnKTsKKworICAgICAgICAg
IG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJj
ZSkgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUs
ICdvcGVuJywgJ1NvdXJjZSBvcGVuJyk7CisgICAgICAgICAgICAgIC8vIFNldCB0aGUgdGFnJ3Mg
c3JjIGF0dHJpYnV0ZS4gIFRoaXMgc2hvdWxkIGNsb3NlIG1lZGlhU291cmNlLAorICAgICAgICAg
ICAgICAvLyByZWF0dGFjaCBpdCB0byB0aGUgdGFnLCBhbmQgaW5pdGlhdGUgc291cmNlIHJlb3Bl
bmluZy4KKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZSwgJ3NvdXJj
ZW9wZW4nLCAnU291cmNlIGF0dGFjaGVkIGFnYWluJyk7CisgICAgICAgICAgICAgIG1lZGlhRWxl
bWVudC5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU291cmNlKTsKKyAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAnY2xvc2VkJywgJ1NvdXJj
ZSBjbG9zZWQnKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhm
dW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgJ29wZW4nLCAnU291cmNlIHJlb3BlbmVkJyk7Cisg
ICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgfSwgJ1Rlc3QgdGhhdCBNZWRpYVNvdXJjZSBjYW4gcmVhdHRhY2ggaWYgY2xvc2VkIGZpcnN0
Jyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBs
YXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtcGxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJjMjZhMDZlYTE2
ZDUyYTI3Y2RlMGIwMWYxYmVjYTIzNTVhY2YxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0IG5vcm1hbCBwbGF5YmFjayBjYXNl
IHdpdGggTWVkaWFTb3VyY2UgQVBJIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1wbGF5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1wbGF5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDc4ZTY2YTlkMmY1ZjI1YmY3ZmU3NTcxZDNlYTNmZmJlNjk2NTQxNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLXBsYXkuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
bWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVz
aGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1l
bnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25F
dmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICAgICAgICB0ZXN0LmVuZE9uRXZl
bnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsKKworICAgICAgICAgICAgICB2YXIgbWVkaWFUeXBl
ID0gJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIic7CisgICAgICAgICAgICAgIHZhciBt
ZWRpYVVSTCA9ICcvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qud2VibSc7
CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VC
dWZmZXIobWVkaWFUeXBlKTsKKworICAgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwubG9hZEJp
bmFyeURhdGEodGVzdCwgbWVkaWFVUkwsIGZ1bmN0aW9uKGRhdGEpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVl
bmQnLCB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZHVyYXRpb24gPSAxOworICAgICAgICAgICAg
ICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgbWVkaWFFbGVtZW50LnBsYXkoKTsKKyAgICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAg
ICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZGF0YSk7CisgICAgICAgICAgICAg
IH0pOworICAgICAgICAgIH0sICJUZXN0IG5vcm1hbCBwbGF5YmFjayBjYXNlIHdpdGggTWVkaWFT
b3VyY2UgQVBJIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjliZDY5MWVjYTBlMDAyYWI3NzdhYzcxMWQwNzI1MDkyYmNk
OTY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZlckxpc3QgZXZlbnQgZGlzcGF0Y2hp
bmcuIAorUEFTUyBUZXN0IHRoYXQgb25seSAxIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudCBmaXJl
cyBvbiBlYWNoIFNvdXJjZUJ1ZmZlckxpc3Qgd2hlbiB0aGUgTWVkaWFTb3VyY2UgY2xvc2VzLiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFkNDg3YTFhZDhmMTQxYWE4MzNhYTYzMGUwOTBkNDFmMTJkZjIxNjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0Lmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorCisgICAgICAgIDxs
aW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3Nz
Jz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgZnVuY3Rpb24gdmVyaWZ5U291cmNlQnVmZmVy
TGlzdHMobWVkaWFTb3VyY2UsIGV4cGVjdGVkKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCwgZXhwZWN0ZWQu
bGVuZ3RoLCAic291cmNlQnVmZmVycyBsZW5ndGgiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0aCwgZXhwZWN0ZWQubGVu
Z3RoLCAiYWN0aXZlU291cmNlQnVmZmVycyBsZW5ndGgiKTsKKyAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1tpXSwgZXhwZWN0ZWRbaV0sICJW
ZXJpZnlpbmcgbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1siICsgaSArICJdIik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzW2ld
LCBleHBlY3RlZFtpXSwgIlZlcmlmeWluZyBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJz
WyIgKyBpICsgIl0iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAg
IG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJj
ZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3Vy
Y2Uuc291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7Cisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVm
ZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAg
ICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1l
ZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworICAgICAgICAgICAgICB2YXIgc291cmNl
QnVmZmVyQiA9IG51bGw7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVu
dHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4
cGVjdEV2ZW50KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMsICJhZGRzb3VyY2VidWZmZXIiLCAi
c291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRp
YVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2ZVNv
dXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlckIgPSBtZWRpYVNv
dXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLkFVRElPX09OTFlfVFlQRSk7CisK
KyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBb
c291cmNlQnVmZmVyQSwgc291cmNlQnVmZmVyQl0pOworICAgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uu
YWN0aXZlU291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VC
dWZmZXJzIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNl
LnNvdXJjZUJ1ZmZlcnMsICJyZW1vdmVzb3VyY2VidWZmZXIiLCAic291cmNlQnVmZmVycyIpOwor
ICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVmZmVyKHNvdXJjZUJ1
ZmZlckEpOworCisgICAgICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRp
YVNvdXJjZSwgW3NvdXJjZUJ1ZmZlckJdKTsKKworICAgICAgICAgICAgICAgICAgdGVzdC5leHBl
Y3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgInNv
dXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3Vy
Y2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworCisg
ICAgICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwgW3Nv
dXJjZUJ1ZmZlckIsIHNvdXJjZUJ1ZmZlckFdKTsKKyAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgfSwgIlRlc3QgU291cmNlQnVmZmVyTGlzdCBldmVudCBkaXNwYXRjaGluZy4i
KTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVt
ZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3Vy
Y2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uu
YWN0aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZm
ZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNl
QnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFk
ZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHZh
ciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNl
VXRpbC5WSURFT19PTkxZX1RZUEUpOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9
IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0aWwuQVVESU9fT05MWV9U
WVBFKTsKKworICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJj
ZSwgW3NvdXJjZUJ1ZmZlckEsIHNvdXJjZUJ1ZmZlckJdKTsKKworICAgICAgICAgICAgICB0ZXN0
LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNl
QnVmZmVyQSwgc291cmNlQnVmZmVyQl0pOworCisgICAgICAgICAgICAgICAgICAvLyBGb3JjZSB0
aGUgbWVkaWEgZWxlbWVudCB0byBjbG9zZSB0aGUgTWVkaWFTb3VyY2Ugb2JqZWN0LgorICAgICAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZm
ZXJzLCAicmVtb3Zlc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywg
InJlbW92ZXNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAg
ICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAic291cmNlY2xvc2UiLCAibWVkaWFTb3Vy
Y2UgY2xvc2luZyIpOworICAgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9ICIiOwor
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2
ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgImNsb3NlZCIsICJtZWRpYVNvdXJjZSBp
cyBjbG9zZWQuIik7CisKKyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3Rz
KG1lZGlhU291cmNlLCBbXSk7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3QgdGhhdCBvbmx5IDEgcmVtb3Zlc291cmNl
YnVmZmVyIGV2ZW50IGZpcmVzIG9uIGVhY2ggU291cmNlQnVmZmVyTGlzdCB3aGVuIHRoZSBNZWRp
YVNvdXJjZSBjbG9zZXMuIik7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLXV0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU2ZjAxMmY0ZDk5ZGM2
MTNkYmRmM2FjMDdmMjI0ZDUxODA5N2U3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXV0aWwuanMKQEAgLTAs
MCArMSwyMjkgQEAKKyhmdW5jdGlvbih3aW5kb3cpIHsKKyAgICBFdmVudEV4cGVjdGF0aW9uc01h
bmFnZXIgPSBmdW5jdGlvbih0ZXN0KQorICAgIHsKKyAgICAgICAgdGhpcy50ZXN0XyA9IHRlc3Q7
CisgICAgICAgIHRoaXMuZXZlbnRUYXJnZXRMaXN0XyA9IFtdOworICAgICAgICB0aGlzLndhaXRD
YWxsYmFja3NfID0gW107CisgICAgfTsKKworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdlci5w
cm90b3R5cGUuZXhwZWN0RXZlbnQgPSBmdW5jdGlvbihvYmplY3QsIGV2ZW50TmFtZSwgZGVzY3Jp
cHRpb24pCisgICAgeworICAgICAgICB2YXIgZXZlbnRJbmZvID0geyAndGFyZ2V0Jzogb2JqZWN0
LCAndHlwZSc6IGV2ZW50TmFtZSwgJ2Rlc2NyaXB0aW9uJzogZGVzY3JpcHRpb259OworICAgICAg
ICB2YXIgZXhwZWN0YXRpb25zID0gdGhpcy5nZXRFeHBlY3RhdGlvbnNfKG9iamVjdCk7CisgICAg
ICAgIGV4cGVjdGF0aW9ucy5wdXNoKGV2ZW50SW5mbyk7CisKKyAgICAgICAgdmFyIHQgPSB0aGlz
OworICAgICAgICB2YXIgd2FpdEhhbmRsZXIgPSB0aGlzLnRlc3RfLnN0ZXBfZnVuYyhmdW5jdGlv
bigpIHsgdC5oYW5kbGVXYWl0Q2FsbGJhY2tfKCk7IH0pOworICAgICAgICB2YXIgZXZlbnRIYW5k
bGVyID0gdGhpcy50ZXN0Xy5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRIYW5k
bGVyKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGF0aW9uc1swXTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBleHBlY3RlZC50YXJnZXQsICJFdmVu
dCB0YXJnZXQgbWF0Y2guIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnR5cGUs
IGV4cGVjdGVkLnR5cGUsICJFdmVudCB0eXBlcyBtYXRjaC4iKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZXZlbnRJbmZvLmRlc2NyaXB0aW9uLCBleHBlY3RlZC5kZXNjcmlwdGlvbiwgIkRl
c2NyaXB0aW9ucyBtYXRjaCBmb3IgJyIgKyAgZXZlbnQudHlwZSArICInLiIpOworCisgICAgICAg
ICAgICBleHBlY3RhdGlvbnMuc2hpZnQoMSk7CisgICAgICAgICAgICBpZiAodC53YWl0Q2FsbGJh
Y2tzXy5sZW5ndGggPiAwKQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQod2FpdEhhbmRsZXIs
IDApOworICAgICAgICB9KTsKKyAgICAgICAgb2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lLCBldmVudEhhbmRsZXIpOworICAgIH07CisKKyAgICBFdmVudEV4cGVjdGF0aW9uc01hbmFn
ZXIucHJvdG90eXBlLndhaXRGb3JFeHBlY3RlZEV2ZW50cyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQor
ICAgIHsKKyAgICAgICAgdGhpcy53YWl0Q2FsbGJhY2tzXy5wdXNoKGNhbGxiYWNrKTsKKyAgICAg
ICAgc2V0VGltZW91dCh0aGlzLmhhbmRsZVdhaXRDYWxsYmFja18uYmluZCh0aGlzKSwgMCk7Cisg
ICAgfTsKKworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdlci5wcm90b3R5cGUuZXhwZWN0aW5n
RXZlbnRzID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLmV2ZW50VGFyZ2V0TGlzdF8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0aGlz
LmV2ZW50VGFyZ2V0TGlzdF9baV0uZXhwZWN0YXRpb25zLmxlbmd0aCA+IDApIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnByb3Rv
dHlwZS5oYW5kbGVXYWl0Q2FsbGJhY2tfID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMud2FpdENhbGxiYWNrc18ubGVuZ3RoID09IDAgfHwgdGhpcy5leHBlY3RpbmdFdmVudHMo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gdGhpcy53YWl0
Q2FsbGJhY2tzXy5zaGlmdCgxKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9OworCisgICAg
RXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5nZXRFeHBlY3RhdGlvbnNfID0gZnVu
Y3Rpb24odGFyZ2V0KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmV2
ZW50VGFyZ2V0TGlzdF8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBpbmZvID0gdGhp
cy5ldmVudFRhcmdldExpc3RfW2ldOworICAgICAgICAgICAgaWYgKGluZm8udGFyZ2V0ID09IHRh
cmdldCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbmZvLmV4cGVjdGF0aW9uczsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB2YXIgZXhwZWN0YXRpb25zID0gW107CisgICAg
ICAgIHRoaXMuZXZlbnRUYXJnZXRMaXN0Xy5wdXNoKHsgJ3RhcmdldCc6IHRhcmdldCwgJ2V4cGVj
dGF0aW9ucyc6IGV4cGVjdGF0aW9ucyB9KTsKKyAgICAgICAgcmV0dXJuIGV4cGVjdGF0aW9uczsK
KyAgICB9OworCisgICAgZnVuY3Rpb24gbG9hZERhdGFfKHRlc3QsIHVybCwgY2FsbGJhY2ssIGlz
QmluYXJ5KQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKKyAgICAgICAgcmVxdWVzdC5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgICAgICBpZiAo
aXNCaW5hcnkpIHsKKyAgICAgICAgICAgIHJlcXVlc3QucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVm
ZmVyJzsKKyAgICAgICAgfQorICAgICAgICByZXF1ZXN0Lm9ubG9hZCA9IHRlc3Quc3RlcF9mdW5j
KGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmVxdWVzdC5zdGF0
dXMgIT0gMjAwKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3Rl
ZCBzdGF0dXMgY29kZSA6ICIgKyByZXF1ZXN0LnN0YXR1cyk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVxdWVzdC5y
ZXNwb25zZTsKKyAgICAgICAgICAgIGlmIChpc0JpbmFyeSkgeworICAgICAgICAgICAgICAgIHJl
c3BvbnNlID0gbmV3IFVpbnQ4QXJyYXkocmVzcG9uc2UpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgY2FsbGJhY2socmVzcG9uc2UpOworICAgICAgICB9KTsKKyAgICAgICAgcmVxdWVzdC5v
bmVycm9yID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHJlcXVlc3Quc2VuZCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5NZWRp
YVNvdXJjZV8odGVzdCwgbWVkaWFUYWcsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG1l
ZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgIHZhciBtZWRpYVNvdXJjZVVS
TCA9IFVSTC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UpOworCisgICAgICAgIHZhciBldmVu
dEhhbmRsZXIgPSB0ZXN0LnN0ZXBfZnVuYyhvblNvdXJjZU9wZW4pOworICAgICAgICBmdW5jdGlv
biBvblNvdXJjZU9wZW4oZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1lZGlhU291cmNl
LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NvdXJjZW9wZW4nLCBldmVudEhhbmRsZXIpOworICAgICAg
ICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChtZWRpYVNvdXJjZVVSTCk7CisgICAgICAgICAgICBj
YWxsYmFjayhtZWRpYVNvdXJjZSk7CisgICAgICAgIH0KKworICAgICAgICBtZWRpYVNvdXJjZS5h
ZGRFdmVudExpc3RlbmVyKCdzb3VyY2VvcGVuJywgZXZlbnRIYW5kbGVyKTsKKyAgICAgICAgbWVk
aWFUYWcuc3JjID0gbWVkaWFTb3VyY2VVUkw7CisgICAgfQorCisgICAgdmFyIE1lZGlhU291cmNl
VXRpbCA9IHt9OworCisgICAgTWVkaWFTb3VyY2VVdGlsLmxvYWRUZXh0RGF0YSA9IGZ1bmN0aW9u
KHRlc3QsIHVybCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBsb2FkRGF0YV8odGVzdCwgdXJs
LCBjYWxsYmFjaywgZmFsc2UpOworICAgIH07CisKKyAgICBNZWRpYVNvdXJjZVV0aWwubG9hZEJp
bmFyeURhdGEgPSBmdW5jdGlvbih0ZXN0LCB1cmwsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAg
bG9hZERhdGFfKHRlc3QsIHVybCwgY2FsbGJhY2ssIHRydWUpOworICAgIH07CisKKyAgICBNZWRp
YVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEgPSBmdW5jdGlvbih0ZXN0LCBtYW5pZmVz
dEZpbGVuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBiYXNlVVJMID0gJy9tZWRp
YS9yZXNvdXJjZXMvbWVkaWEtc291cmNlLyc7CisgICAgICAgIHZhciBtYW5pZmVzdFVSTCA9IGJh
c2VVUkwgKyBtYW5pZmVzdEZpbGVuYW1lOworICAgICAgICBNZWRpYVNvdXJjZVV0aWwubG9hZFRl
eHREYXRhKHRlc3QsIG1hbmlmZXN0VVJMLCBmdW5jdGlvbihtYW5pZmVzdFRleHQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHZhciBtYW5pZmVzdCA9IEpTT04ucGFyc2UobWFuaWZlc3RUZXh0KTsK
KworICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKG1h
bmlmZXN0LnR5cGUpLCBtYW5pZmVzdC50eXBlICsgIiBpcyBzdXBwb3J0ZWQuIik7CisKKyAgICAg
ICAgICAgIHZhciBtZWRpYVVSTCA9IGJhc2VVUkwgKyBtYW5pZmVzdC51cmw7CisgICAgICAgICAg
ICBNZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURhdGEodGVzdCwgbWVkaWFVUkwsIGZ1bmN0aW9u
KG1lZGlhRGF0YSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhtYW5p
ZmVzdC50eXBlLCBtZWRpYURhdGEpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH07CisKKyAgICBmdW5jdGlvbiBnZXRGaXJzdFN1cHBvcnRlZFR5cGUodHlwZUxpc3QpCisgICAg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVMaXN0Lmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICBpZiAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKHR5cGVMaXN0W2ldKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUxpc3RbaV07CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICIiOworICAgIH0KKworICAgIHZhciBhdWRpb09ubHlUeXBlcyA9IFsnYXVkaW8vd2Vi
bTtjb2RlY3M9InZvcmJpcyInLCAnYXVkaW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIiddOworICAg
IHZhciB2aWRlb09ubHlUeXBlcyA9IFsndmlkZW8vd2VibTtjb2RlY3M9InZwOCInLCAndmlkZW8v
bXA0O2NvZGVjcz0iYXZjMS40RDQwMDEiJ107CisgICAgdmFyIGF1ZGlvVmlkZW9UeXBlcyA9IFsn
dmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiJywgJ3ZpZGVvL21wNDtjb2RlY3M9Im1wNGEu
NDAuMiInXTsKKyAgICBNZWRpYVNvdXJjZVV0aWwuQVVESU9fT05MWV9UWVBFID0gZ2V0Rmlyc3RT
dXBwb3J0ZWRUeXBlKGF1ZGlvT25seVR5cGVzKTsKKyAgICBNZWRpYVNvdXJjZVV0aWwuVklERU9f
T05MWV9UWVBFID0gZ2V0Rmlyc3RTdXBwb3J0ZWRUeXBlKHZpZGVvT25seVR5cGVzKTsKKyAgICBN
ZWRpYVNvdXJjZVV0aWwuQVVESU9fVklERU9fVFlQRSA9IGdldEZpcnN0U3VwcG9ydGVkVHlwZShh
dWRpb1ZpZGVvVHlwZXMpOworCisgICAgZnVuY3Rpb24gYWRkRXh0cmFUZXN0TWV0aG9kcyh0ZXN0
KQorICAgIHsKKyAgICAgICAgdGVzdC5mYWlsT25FdmVudCA9IGZ1bmN0aW9uKG9iamVjdCwgZXZl
bnROYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWUsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgZXZlbnQgJyIgKyBl
dmVudE5hbWUgKyAiJyIpOworICAgICAgICAgICAgfSkpOworICAgICAgICB9OworCisgICAgICAg
IHRlc3QuZW5kT25FdmVudCA9IGZ1bmN0aW9uKG9iamVjdCwgZXZlbnROYW1lKQorICAgICAgICB7
CisgICAgICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIHRlc3Quc3Rl
cF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7IHRlc3QuZG9uZSgpOyB9KSk7CisgICAgICAgIH07CisK
KyAgICAgICAgdGVzdC5ldmVudEV4cGVjdGF0aW9uc18gPSBuZXcgRXZlbnRFeHBlY3RhdGlvbnNN
YW5hZ2VyKHRlc3QpOworICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50ID0gZnVuY3Rpb24ob2JqZWN0
LCBldmVudE5hbWUsIGRlc2NyaXB0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICB0ZXN0LmV2
ZW50RXhwZWN0YXRpb25zXy5leHBlY3RFdmVudChvYmplY3QsIGV2ZW50TmFtZSwgZGVzY3JpcHRp
b24pOworICAgICAgICB9OworCisgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzID0g
ZnVuY3Rpb24oY2FsbGJhY2spCisgICAgICAgIHsKKyAgICAgICAgICAgIHRlc3QuZXZlbnRFeHBl
Y3RhdGlvbnNfLndhaXRGb3JFeHBlY3RlZEV2ZW50cyhjYWxsYmFjayk7CisgICAgICAgIH07CisK
KyAgICAgICAgdmFyIG9sZFRlc3REb25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7CisgICAgICAg
IHRlc3QuZG9uZSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRlc3Qu
c3RhdHVzID09IHRlc3QuUEFTUykKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodGVzdC5l
dmVudEV4cGVjdGF0aW9uc18uZXhwZWN0aW5nRXZlbnRzKCksICJObyBwZW5kaW5nIGV2ZW50IGV4
cGVjdGF0aW9ucy4iKTsKKyAgICAgICAgICAgIG9sZFRlc3REb25lKCk7CisgICAgICAgIH07Cisg
ICAgfTsKKworICAgIHdpbmRvd1snTWVkaWFTb3VyY2VVdGlsJ10gPSBNZWRpYVNvdXJjZVV0aWw7
CisgICAgd2luZG93WydtZWRpYV90ZXN0J10gPSBmdW5jdGlvbih0ZXN0RnVuY3Rpb24sIGRlc2Ny
aXB0aW9uLCBvcHRpb25zKQorICAgIHsKKyAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307
CisgICAgICAgIHJldHVybiBhc3luY190ZXN0KGZ1bmN0aW9uKHRlc3QpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGFkZEV4dHJhVGVzdE1ldGhvZHModGVzdCk7CisgICAgICAgICAgICB0ZXN0RnVu
Y3Rpb24odGVzdCk7CisgICAgICAgIH0sIGRlc2NyaXB0aW9uLCBvcHRpb25zKTsKKyAgICB9Owor
ICAgIHdpbmRvd1snbWVkaWFzb3VyY2VfdGVzdCddID0gZnVuY3Rpb24odGVzdEZ1bmN0aW9uLCBk
ZXNjcmlwdGlvbiwgb3B0aW9ucykKKyAgICB7CisgICAgICAgIHJldHVybiBtZWRpYV90ZXN0KGZ1
bmN0aW9uKHRlc3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBtZWRpYVRhZyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKG1lZGlhVGFnKTsKKworICAgICAgICAgICAgLy8gT3ZlcmxvYWQgZG9uZSgpIHNv
IHRoYXQgZWxlbWVudCBhZGRlZCB0byB0aGUgZG9jdW1lbnQgY2FuIGJlIHJlbW92ZWQuCisgICAg
ICAgICAgICB0ZXN0LnJlbW92ZU1lZGlhRWxlbWVudF8gPSB0cnVlOworICAgICAgICAgICAgdmFy
IG9sZFRlc3REb25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7CisgICAgICAgICAgICB0ZXN0LmRv
bmUgPSBmdW5jdGlvbigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3Qu
cmVtb3ZlTWVkaWFFbGVtZW50XykgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKG1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5yZW1vdmVN
ZWRpYUVsZW1lbnRfID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IG9sZFRlc3REb25lKCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBvcGVuTWVkaWFT
b3VyY2VfKHRlc3QsIG1lZGlhVGFnLCBmdW5jdGlvbihtZWRpYVNvdXJjZSkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RnVuY3Rpb24odGVzdCwgbWVkaWFUYWcsIG1lZGlhU291
cmNlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCBkZXNjcmlwdGlvbiwgb3B0aW9ucyk7
CisKKyAgICB9OworfSkod2luZG93KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1l
ZGlhLXNvdXJjZS1vYmplY3RzLWV4cGVjdGVkLnR4dAppbmRleCBiMDNkYmU0MzRiODVkZjQ3M2Iz
ZGQ2MzAyYWQzNGJjMmQ3NjkwYTA5Li5kZjZjYmI4NzFlNDY5M2U0MDEwMGM5ZTUwNTI5Y2UyNWQ4
YmU5MTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2JqZWN0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLW9i
amVjdHMtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQCBUZXN0cyBNZWRpYVNvdXJjZSwgU291
cmNlQnVmZmVyLCBhbmQgU291cmNlQnVmZmVyTGlzdCBvYmplY3RzLgogCiBFVkVOVCh3ZWJraXRz
b3VyY2VvcGVuKQogVGVzdCBNZWRpYVNvdXJjZSBvYmplY3QgdHlwZQotRVhQRUNURUQgKG1lZGlh
U291cmNlID09ICdbb2JqZWN0IE1lZGlhU291cmNlXScpIE9LCitFWFBFQ1RFRCAobWVkaWFTb3Vy
Y2UgPT0gJ1tvYmplY3QgV2ViS2l0TWVkaWFTb3VyY2VdJykgT0sKIEVYUEVDVEVEIChtZWRpYVNv
dXJjZSBpbnN0YW5jZW9mIHdpbmRvdy5XZWJLaXRNZWRpYVNvdXJjZSA9PSAndHJ1ZScpIE9LCiAK
IEFkZCBhIFNvdXJjZUJ1ZmZlcgpAQCAtMTEsNyArMTEsNyBAQCBSVU4oc2VnbWVudEhlbHBlci5h
ZGRTb3VyY2VCdWZmZXIoKSkKIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxl
bmd0aCA9PSAnMScpIE9LCiAKIFRlc3QgU291cmNlQnVmZmVyTGlzdCBvYmplY3QgdHlwZToKLUVY
UEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2JqZWN0IFNvdXJjZUJ1ZmZl
ckxpc3RdJykgT0sKK0VYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2Jq
ZWN0IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5z
b3VyY2VCdWZmZXJzIGluc3RhbmNlb2Ygd2luZG93LldlYktpdFNvdXJjZUJ1ZmZlckxpc3QgPT0g
J3RydWUnKSBPSwogCiBUZXN0IFNvdXJjZUJ1ZmZlciBvYmplY3QgdHlwZQpAQCAtMzksNyArMzks
NyBAQCBFWFBFQ1RFRCAobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXS5idWZmZXJlZC5lbmQo
MSkgPiAnNScpIE9LCiBSZW1vdmUgU291cmNlQnVmZmVyCiBSVU4obWVkaWFTb3VyY2UucmVtb3Zl
U291cmNlQnVmZmVyKHNlZ21lbnRIZWxwZXIuc291cmNlQnVmZmVyKSkKIEVYUEVDVEVEIChtZWRp
YVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCA9PSAnMCcpIE9LCi1FWFBFQ1RFRCAobWVkaWFT
b3VyY2Uuc291cmNlQnVmZmVycyA9PSAnW29iamVjdCBTb3VyY2VCdWZmZXJMaXN0XScpIE9LCitF
WFBFQ1RFRCAobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyA9PSAnW29iamVjdCBXZWJLaXRTb3Vy
Y2VCdWZmZXJMaXN0XScpIE9LCiAKIFRlc3QgdGhhdCBhcHBlbmQoKSB0aHJvd3MgYW4gZXJyb3Ig
YWZ0ZXIgU291cmNlQnVmZmVyIGhhcyBiZWVuIHJlbW92ZWQuCiBHb3QgZXhwZWN0ZWQgZXhjZXB0
aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL2dl
bmVyYXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvZ2VuZXJhdGUtY29uZmlnLWNoYW5nZS10ZXN0cy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZWRiOTI1YjQ0OGFmMzYwNDFhNGNhM2YwMGVkMjhmMTJhYjcwNjhjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL2dlbmVyYXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkKQEAgLTAsMCArMSwy
MjYgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
IyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiCitUaGlzIGlz
IGEgc2NyaXB0IHRoYXQgZ2VuZXJhdGVzIHRoZSBjb250ZW50IGFuZCBIVE1MIGZpbGVzIGZvciBN
ZWRpYSBTb3VyY2UKK2NvZGVjIGNvbmZpZyBjaGFuZ2UgTGF5b3V0VGVzdHMuCisiIiIKK2ltcG9y
dCBqc29uCitpbXBvcnQgb3MKKworRFVSQVRJT04gPSAyCitNRURJQV9GT1JNQVRTID0gWyd3ZWJt
JywgJ21wNCddCitFTkNPREVfU0VUVElOR1MgPSBbCisgICAgIyMgVmlkZW8tb25seSBmaWxlcwor
ICAgICMgRnJhbWUgcmF0ZSBjaGFuZ2VzCisgICAgeydmcyc6ICczMjB4MjQwJywgJ2ZyJzogMjQs
ICdrZnInOiA4LCAnYyc6ICcjZmYwMDAwJywgJ3Zicic6IDEyOCwgJ2Ficic6IDAsICdhc3InOiAw
LCAnYWNoJzogMCwgJ2FmcmVxJzogMH0sCisgICAgeydmcyc6ICczMjB4MjQwJywgJ2ZyJzogMzAs
ICdrZnInOiAxMCwgJ2MnOiAnI2ZmMDAwMCcsICd2YnInOiAxMjgsICdhYnInOiAwLCAnYXNyJzog
MCwgJ2FjaCc6IDAsICdhZnJlcSc6IDB9LAorICAgICMgRnJhbWUgc2l6ZSBjaGFuZ2UKKyAgICB7
J2ZzJzogJzY0MHg0ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjMDBmZjAwJywgJ3Zi
cic6IDEyOCwgJ2Ficic6IDAsICdhc3InOiAwLCAnYWNoJzogMCwgJ2FmcmVxJzogMH0sCisgICAg
IyBCaXRyYXRlIGNoYW5nZQorICAgIHsnZnMnOiAnMzIweDI0MCcsICdmcic6IDMwLCAna2ZyJzog
MTAsICdjJzogJyNmZjAwZmYnLCAndmJyJzogMjU2LCAnYWJyJzogMCwgJ2Fzcic6IDAsICdhY2gn
OiAwLCAnYWZyZXEnOiAwfSwKKworICAgICMjIEF1ZGlvLW9ubHkgZmlsZXMKKyAgICAjIEJpdHJh
dGUvQ29kZWJvb2sgY2hhbmdlcworICAgIHsnZnMnOiAnMHgwJywgJ2ZyJzogMCwgJ2tmcic6IDAs
ICdjJzogJyMwMDAwMDAnLCAndmJyJzogMCwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0MTAwLCAnYWNo
JzogMSwgJ2FmcmVxJzogMjAwMH0sCisgICAgeydmcyc6ICcweDAnLCAnZnInOiAwLCAna2ZyJzog
MCwgJ2MnOiAnIzAwMDAwMCcsICd2YnInOiAwLCAnYWJyJzogMTkyLCAnYXNyJzogNDQxMDAsICdh
Y2gnOiAxLCAnYWZyZXEnOiA0MDAwfSwKKworICAgICMjIEF1ZGlvLVZpZGVvIGZpbGVzCisgICAg
IyBGcmFtZSBzaXplIGNoYW5nZS4KKyAgICB7J2ZzJzogJzMyMHgyNDAnLCAnZnInOiAzMCwgJ2tm
cic6IDEwLCAnYyc6ICcjZmYwMDAwJywgJ3Zicic6IDI1NiwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0
MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogMjAwMH0sCisgICAgeydmcyc6ICc2NDB4NDgwJywgJ2Zy
JzogMzAsICdrZnInOiAxMCwgJ2MnOiAnIzAwZmYwMCcsICd2YnInOiAyNTYsICdhYnInOiAxMjgs
ICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDIwMDB9LAorICAgICMgQXVkaW8gYml0
cmF0ZSBjaGFuZ2UuCisgICAgeydmcyc6ICc2NDB4NDgwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwg
J2MnOiAnIzAwZmYwMCcsICd2YnInOiAyNTYsICdhYnInOiAxOTIsICdhc3InOiA0NDEwMCwgJ2Fj
aCc6IDEsICdhZnJlcSc6IDQwMDB9LAorICAgICMgVmlkZW8gYml0cmF0ZSBjaGFuZ2UuCisgICAg
eydmcyc6ICc2NDB4NDgwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnIzAwZmZmZicsICd2
YnInOiA1MTIsICdhYnInOiAxMjgsICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDIw
MDB9LAorXQorCitDT05GSUdfQ0hBTkdFX1RFU1RTID0gWworICAgIFsidi1mcmFtZXJhdGUiLCAw
LCAxLCAiVGVzdHMgJXMgdmlkZW8tb25seSBmcmFtZSByYXRlIGNoYW5nZXMuIl0sCisgICAgWyJ2
LWZyYW1lc2l6ZSIsIDEsIDIsICJUZXN0cyAlcyB2aWRlby1vbmx5IGZyYW1lIHNpemUgY2hhbmdl
cy4iXSwKKyAgICBbInYtYml0cmF0ZSIsIDEsIDMsICJUZXN0cyAlcyB2aWRlby1vbmx5IGJpdHJh
dGUgY2hhbmdlcy4iXSwKKyAgICBbImEtYml0cmF0ZSIsIDQsIDUsICJUZXN0cyAlcyBhdWRpby1v
bmx5IGJpdHJhdGUgY2hhbmdlcy4iXSwKKyAgICBbImF2LWZyYW1lc2l6ZSIsIDYsIDcsICJUZXN0
cyAlcyBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iXSwKKyAgICBb
ImF2LWF1ZGlvLWJpdHJhdGUiLCA3LCA4LCAiVGVzdHMgJXMgYXVkaW8gYml0cmF0ZSBjaGFuZ2Vz
IGluIG11bHRpcGxleGVkIGNvbnRlbnQuIl0sCisgICAgWyJhdi12aWRlby1iaXRyYXRlIiwgNywg
OSwgIlRlc3RzICVzIHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50
LiJdCitdCisKK0NPREVDX0lORk8gPSB7CisgICAgIm1wNCI6IHsiYXVkaW8iOiAibXA0YS40MC4y
IiwgInZpZGVvIjogImF2YzEuNEQ0MDAxIn0sCisgICAgIndlYm0iOiB7ImF1ZGlvIjogInZvcmJp
cyIsICJ2aWRlbyI6ICJ2cDgifQorfQorCitIVE1MX1RFTVBMQVRFID0gIiIiPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+
CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0
KCIlKG1lZGlhX2Zvcm1hdClzIiwgIiUoaWRBKXMiLCAiJShpZEIpcyIsICIlKGRlc2NyaXB0aW9u
KXMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgorIiIiCisKK2Rl
ZiBydW4oY21kX2xpbmUpOgorICAgIG9zLnN5c3RlbSgiICIuam9pbihjbWRfbGluZSkpCisKK2Rl
ZiBnZW5lcmF0ZV9tYW5pZmVzdChmaWxlbmFtZSwgbWVkaWFfZmlsZW5hbWUsIG1lZGlhX2Zvcm1h
dCwgaGFzX2F1ZGlvLCBoYXNfdmlkZW8pOgorICAgIG1ham9yX3R5cGUgPSAiYXVkaW8iCisgICAg
aWYgaGFzX3ZpZGVvOgorICAgICAgICBtYWpvcl90eXBlID0gInZpZGVvIgorCisgICAgY29kZWNz
ID0gW10KKyAgICBpZiBoYXNfdmlkZW86CisgICAgICAgIGNvZGVjcy5hcHBlbmQoQ09ERUNfSU5G
T1ttZWRpYV9mb3JtYXRdWyJ2aWRlbyJdKQorCisgICAgaWYgaGFzX2F1ZGlvOgorICAgICAgICBj
b2RlY3MuYXBwZW5kKENPREVDX0lORk9bbWVkaWFfZm9ybWF0XVsiYXVkaW8iXSkKKworICAgIG1p
bWV0eXBlID0gIiVzLyVzO2NvZGVjcz1cIiVzXCIiICUgKG1ham9yX3R5cGUsIG1lZGlhX2Zvcm1h
dCwgIiwiLmpvaW4oY29kZWNzKSkKKworICAgIG1hbmlmZXN0ID0geyAndXJsJzogbWVkaWFfZmls
ZW5hbWUsICd0eXBlJzogbWltZXR5cGV9CisKKyAgICBmID0gb3BlbihmaWxlbmFtZSwgIndiIikK
KyAgICBmLndyaXRlKGpzb24uZHVtcHMobWFuaWZlc3QsIGluZGVudD00LCBzZXBhcmF0b3JzPSgn
LCcsICc6ICcpKSkKKyAgICBmLmNsb3NlKCkKKworZGVmIGdlbmVyYXRlX3Rlc3RfaHRtbChtZWRp
YV9mb3JtYXQsIGNvbmZpZ19jaGFuZ2VfdGVzdHMsIGVuY29kaW5nX2lkcyk6CisgICAgZm9yIHRl
c3RfaW5mbyBpbiBjb25maWdfY2hhbmdlX3Rlc3RzOgorICAgICAgICBmaWxlbmFtZSA9ICIuLi8u
Li9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS0lcy0lcy5odG1sIiAlICht
ZWRpYV9mb3JtYXQsIHRlc3RfaW5mb1swXSkKKyAgICAgICAgaHRtbCA9IEhUTUxfVEVNUExBVEUg
JSB7J21lZGlhX2Zvcm1hdCc6IG1lZGlhX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdpZEEnOiBlbmNvZGluZ19pZHNbdGVzdF9pbmZvWzFdXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdpZEInOiBlbmNvZGluZ19pZHNbdGVzdF9pbmZvWzJdXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICB0ZXN0X2lu
Zm9bM10gJSAobWVkaWFfZm9ybWF0KX0KKyAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICJ3YiIp
CisgICAgICAgIGYud3JpdGUoaHRtbCkKKyAgICAgICAgZi5jbG9zZSgpCisKKworZGVmIG1haW4o
KToKKyAgICBlbmNvZGluZ19pZHMgPSBbXQorCisgICAgZm9yIG1lZGlhX2Zvcm1hdCBpbiBNRURJ
QV9GT1JNQVRTOgorICAgICAgICBydW4oWyJta2RpciAiLCBtZWRpYV9mb3JtYXRdKQorCisgICAg
ICAgIGZvciBzZXR0aW5ncyBpbiBFTkNPREVfU0VUVElOR1M6CisgICAgICAgICAgICB2aWRlb19i
aXRyYXRlID0gc2V0dGluZ3NbJ3ZiciddCisgICAgICAgICAgICBoYXNfdmlkZW8gPSAodmlkZW9f
Yml0cmF0ZSA+IDApCisKKyAgICAgICAgICAgIGF1ZGlvX2JpdHJhdGUgPSBzZXR0aW5nc1snYWJy
J10KKyAgICAgICAgICAgIGhhc19hdWRpbyA9IChhdWRpb19iaXRyYXRlID4gMCkKKyAgICAgICAg
ICAgIGJpdHJhdGUgPSB2aWRlb19iaXRyYXRlICsgYXVkaW9fYml0cmF0ZQorCisgICAgICAgICAg
ICBmcmFtZV9zaXplID0gc2V0dGluZ3NbJ2ZzJ10KKyAgICAgICAgICAgIGZyYW1lX3JhdGUgPSBz
ZXR0aW5nc1snZnInXQorICAgICAgICAgICAga2V5ZnJhbWVfcmF0ZSA9IHNldHRpbmdzWydrZnIn
XQorICAgICAgICAgICAgY29sb3IgPSBzZXR0aW5nc1snYyddCisKKyAgICAgICAgICAgIHNhbXBs
ZV9yYXRlID0gc2V0dGluZ3NbJ2FzciddCisgICAgICAgICAgICBjaGFubmVscyA9IHNldHRpbmdz
WydhY2gnXQorICAgICAgICAgICAgZnJlcXVlbmN5ID0gc2V0dGluZ3NbJ2FmcmVxJ10KKworICAg
ICAgICAgICAgY21kbGluZSA9IFsiZmZtcGVnIiwgIi15Il0KKworICAgICAgICAgICAgaWRfcHJl
Zml4ID0gIiIKKyAgICAgICAgICAgIGlkX3BhcmFtcyA9ICIiCisgICAgICAgICAgICBpZiBoYXNf
YXVkaW86CisgICAgICAgICAgICAgICAgaWRfcHJlZml4ICs9ICJhIgorICAgICAgICAgICAgICAg
IGlkX3BhcmFtcyArPSAiLSVzSHotJXNjaCIgJSAoc2FtcGxlX3JhdGUsIGNoYW5uZWxzKQorCisg
ICAgICAgICAgICAgICAgY2hhbm5lbF9sYXlvdXQgPSAiRkMiCisgICAgICAgICAgICAgICAgc2lu
X2Z1bmMgPSAic2luKCVzKjIqUEkqdCkiICUgZnJlcXVlbmN5CisgICAgICAgICAgICAgICAgZnVu
YyA9IHNpbl9mdW5jCisgICAgICAgICAgICAgICAgaWYgY2hhbm5lbHMgPT0gMjoKKyAgICAgICAg
ICAgICAgICAgICAgY2hhbm5lbF9sYXlvdXQgKz0gInxCQyIKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYyArPSAifCIgKyBzaW5fZnVuYworCisgICAgICAgICAgICAgICAgY21kbGluZSArPSBbIi1m
IiwgImxhdmZpIiwgIi1pIiwgImFldmFsc3JjPVwiJXM6cz0lczpjPSVzOmQ9JXNcIiIgJSAoZnVu
Yywgc2FtcGxlX3JhdGUsIGNoYW5uZWxfbGF5b3V0LCBEVVJBVElPTildCisKKyAgICAgICAgICAg
IGlmIGhhc192aWRlbzoKKyAgICAgICAgICAgICAgICBpZF9wcmVmaXggKz0gInYiCisgICAgICAg
ICAgICAgICAgaWRfcGFyYW1zICs9ICItJXMtJXNmcHMtJXNrZnIiICUgKGZyYW1lX3NpemUsIGZy
YW1lX3JhdGUsIGtleWZyYW1lX3JhdGUpCisKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsi
LWYiLCAibGF2ZmkiLCAiLWkiLCAiY29sb3I9JXM6ZHVyYXRpb249JXM6c2l6ZT0lczpyYXRlPSVz
IiAlIChjb2xvciwgRFVSQVRJT04sIGZyYW1lX3NpemUsIGZyYW1lX3JhdGUpXQorCisgICAgICAg
ICAgICBpZiBoYXNfYXVkaW86CisgICAgICAgICAgICAgICAgY21kbGluZSArPSBbIi1iOmEiLCAi
JXNrIiAlIGF1ZGlvX2JpdHJhdGVdCisKKyAgICAgICAgICAgIGlmIGhhc192aWRlbzoKKyAgICAg
ICAgICAgICAgICBjbWRsaW5lICs9IFsiLWI6diIsICIlc2siICUgdmlkZW9fYml0cmF0ZV0KKyAg
ICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWtleWludF9taW4iLCAiJXMiICUga2V5ZnJhbWVf
cmF0ZV0KKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWciLCAiJXMiICUga2V5ZnJhbWVf
cmF0ZV0KKworCisgICAgICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZvID0gIidkcmF3dGV4dD1m
b250ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnRleHQ9VGltZVxcXFw6XFxcXCAle3B0c30iCisgICAg
ICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZvICs9ICIsZHJhd3RleHQ9Zm9udGZpbGU9TW9ubzpm
b250c2l6ZT0zMjp5PTMyOnRleHQ9U2l6ZVxcXFw6XFxcXCAlcyIgJSAoZnJhbWVfc2l6ZSkKKyAg
ICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1Nb25v
OmZvbnRzaXplPTMyOnk9NjQ6dGV4dD1CaXRyYXRlXFxcXDpcXFxcICVzIiAlIChiaXRyYXRlKQor
ICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1v
bm86Zm9udHNpemU9MzI6eT05Njp0ZXh0PUZyYW1lUmF0ZVxcXFw6XFxcXCAlcyIgJSAoZnJhbWVf
cmF0ZSkKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250
ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnk9MTI4OnRleHQ9S2V5RnJhbWVSYXRlXFxcXDpcXFxcICVz
IiAlIChrZXlmcmFtZV9yYXRlKQorCisgICAgICAgICAgICAgICAgaWYgaGFzX2F1ZGlvOgorICAg
ICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1N
b25vOmZvbnRzaXplPTMyOnk9MTYwOnRleHQ9U2FtcGxlUmF0ZVxcXFw6XFxcXCAlcyIgJSAoc2Ft
cGxlX3JhdGUpCisgICAgICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0
ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6eT0xOTI6dGV4dD1DaGFubmVsc1xcXFw6XFxc
XCAlcyIgJSAoY2hhbm5lbHMpCisKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0g
IiciCisgICAgICAgICAgICAgICAgY21kbGluZSArPSBbIi12ZiIsIHRleHRPdmVybGF5SW5mb10K
KworICAgICAgICAgICAgZW5jb2RpbmdfaWQgPSAiJXMtJXNrJXMiICUgKGlkX3ByZWZpeCwgYml0
cmF0ZSwgaWRfcGFyYW1zKQorCisgICAgICAgICAgICBpZiBsZW4oZW5jb2RpbmdfaWRzKSA8IGxl
bihFTkNPREVfU0VUVElOR1MpOgorICAgICAgICAgICAgICAgIGVuY29kaW5nX2lkcy5hcHBlbmQo
ZW5jb2RpbmdfaWQpCisKKyAgICAgICAgICAgIGZpbGVuYW1lX2Jhc2UgPSAiJXMvdGVzdC0lcyIg
JSAobWVkaWFfZm9ybWF0LCBlbmNvZGluZ19pZCkKKyAgICAgICAgICAgIG1lZGlhX2ZpbGVuYW1l
ID0gZmlsZW5hbWVfYmFzZSArICIuIiArIG1lZGlhX2Zvcm1hdAorICAgICAgICAgICAgbWFuaWZl
c3RfZmlsZW5hbWUgPSBmaWxlbmFtZV9iYXNlICsgIi1tYW5pZmVzdC5qc29uIgorCisgICAgICAg
ICAgICBjbWRsaW5lLmFwcGVuZChtZWRpYV9maWxlbmFtZSkKKyAgICAgICAgICAgIHJ1bihjbWRs
aW5lKQorCisgICAgICAgICAgICAjIFJlbXV4IGZpbGUgc28gaXQgY29uZm9ybXMgdG8gTVNFIGJ5
dGVzdHJlYW0gcmVxdWlyZW1lbnRzLgorICAgICAgICAgICAgaWYgbWVkaWFfZm9ybWF0ID09ICJ3
ZWJtIjoKKyAgICAgICAgICAgICAgICB0bXBfZmlsZW5hbWUgPSBtZWRpYV9maWxlbmFtZSArICIu
dG1wIgorICAgICAgICAgICAgICAgIHJ1bihbIm1zZV93ZWJtX3JlbXV4ZXIiLCBtZWRpYV9maWxl
bmFtZSwgdG1wX2ZpbGVuYW1lXSkKKyAgICAgICAgICAgICAgICBydW4oWyJtdiIsIHRtcF9maWxl
bmFtZSwgbWVkaWFfZmlsZW5hbWVdKQorICAgICAgICAgICAgZWxpZiBtZWRpYV9mb3JtYXQgPT0g
Im1wNCI6CisgICAgICAgICAgICAgICAgcnVuKFsiTVA0Qm94IiwgIi1kYXNoIiwgIjI1MCIsICIt
cmFwIiwgbWVkaWFfZmlsZW5hbWVdKQorICAgICAgICAgICAgICAgIHJ1bihbIm12IiwgZmlsZW5h
bWVfYmFzZSArICJfZGFzaC5tcDQiLCBtZWRpYV9maWxlbmFtZV0pCisgICAgICAgICAgICAgICAg
cnVuKFsicm0iLCBmaWxlbmFtZV9iYXNlICsgIl9kYXNoLm1wZCJdKQorCisgICAgICAgICAgICBn
ZW5lcmF0ZV9tYW5pZmVzdChtYW5pZmVzdF9maWxlbmFtZSwgbWVkaWFfZmlsZW5hbWUsIG1lZGlh
X2Zvcm1hdCwgaGFzX2F1ZGlvLCBoYXNfdmlkZW8pCisgICAgICAgIGdlbmVyYXRlX3Rlc3RfaHRt
bChtZWRpYV9mb3JtYXQsIENPTkZJR19DSEFOR0VfVEVTVFMsIGVuY29kaW5nX2lkcykKKworaWYg
J19fbWFpbl9fJyA9PSBfX25hbWVfXzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTEy
OGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTEyOGstNDQxMDBIei0xY2gtbWFu
aWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2NhYTQ2MGU5ZjA3ODI3ODY4MGM2Y2RiOWUxY2U5MTRh
OGM1OWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVz
dC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYS0xMjhrLTQ0
MTAwSHotMWNoLm1wNCIsCisgICAgInR5cGUiOiAiYXVkaW8vbXA0O2NvZGVjcz1cIm1wNGEuNDAu
MlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTE5
MmstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTE5MmstNDQxMDBIei0xY2gtbWFu
aWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWE2ZjMzOWI3OTE4MGJhOGU4MTFmMWM4OTljMGEzY2Mx
NGY0NDUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVz
dC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYS0xOTJrLTQ0
MTAwSHotMWNoLm1wNCIsCisgICAgInR5cGUiOiAiYXVkaW8vbXA0O2NvZGVjcz1cIm1wNGEuNDAu
MlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0z
ODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1h
di0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NzMxZTMxNzBlNWNhNTIzNDdlZmYzZGVmOGU1NDA5ZjEyMWI4YWNlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEt
c291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1t
YW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYt
Mzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAi
dmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0
MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNo
LTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGRlZDYxMWY2
ODJkNTJlNzgxODRhN2NiY2U0N2YzYjEwMmFhN2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2
LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0w
LDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC02
NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1c
ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS9tcDQvdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIt
bWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBr
ZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTQ2MzQ5ZjkzZWQyMThkOTcwZjNlZmE4YjNl
NzQ4YzAxNmRjNzBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTQ0OGstNDQxMDBIei0xY2gt
NjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAg
ICJ1cmwiOiAibXA0L3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2Zy
Lm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEu
NDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1h
di02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVz
dC1hdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNGRhOWI0Y2UzZjczOGMzNDYyYmUyNDRlZTY5ZjQxYzJlNGMyMTc1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL21wNC90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qt
YXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUi
OiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0yNGZw
cy04a2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5p
ZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMWI2ZDAyNDViYTVkZThhNTlkY2RmNzk1YmEyYWIwMDg2
NDdlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1t
YW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qtdi0x
MjhrLTMyMHgyNDAtMjRmcHMtOGtmci5tcDQiLAorICAgICJ0eXBlIjogInZpZGVvL21wNDtjb2Rl
Y3M9XCJhdmMxLjRENDAwMVwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJj
ZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0
LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Uw
Mjg0NDEwNWJhYTYyOWJmNDM4ZTFhNmU5YzFjYzYyZWQ5NzhiNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQv
dGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEs
NCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIu
bXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDFcIiIKK30K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTY0MHg0
ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstNjQweDQ4MC0zMGZwcy0x
MGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzRmNGJjYmRmY2NhZThlNWEzODY4MzFl
OTEyODY3OTE3Y2MwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBm
cHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIm1w
NC90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlk
ZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3Vy
Y2UvbXA0L3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MmQzZTFlNTI0ZWM3ZjkxZmQyNGNmZTA4ZDE5ZmU1ODA5NTM1NmFjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEt
c291cmNlL21wNC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24K
QEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC12LTI1NmstMzIweDI0MC0z
MGZwcy0xMGtmci5tcDQiLAorICAgICJ0eXBlIjogInZpZGVvL21wNDtjb2RlY3M9XCJhdmMxLjRE
NDAwMVwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qt
YS0xMjhrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTI4ay00NDEwMEh6LTFj
aC1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyNGRhODE0OWZlNmQzNmM4OTE1MDFkMDU5Zjg1
NjIxZjA2Y2RlMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1t
YW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWEt
MTI4ay00NDEwMEh6LTFjaC53ZWJtIiwKKyAgICAidHlwZSI6ICJhdWRpby93ZWJtO2NvZGVjcz1c
InZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rl
c3QtYS0xOTJrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTkyay00NDEwMEh6
LTFjaC1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMmZhMWU4YzMzNWRmMTZmMTZjNDkxMDkw
ODhiOWE5MTQ4YzUzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTkyay00NDEwMEh6LTFj
aC1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0
LWEtMTkyay00NDEwMEh6LTFjaC53ZWJtIiwKKyAgICAidHlwZSI6ICJhdWRpby93ZWJtO2NvZGVj
cz1cInZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJt
L3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpz
b24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uv
d2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVz
dC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFmOWYwN2FmMTVkYjhhY2IwOGZlYzY5NjdhNmM5MmVmYjYyYmU1
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0z
MGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAi
d2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci53ZWJtIiwK
KyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOCx2b3JiaXNcIiIKK30KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0x
Y2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi0zODRrLTQ0MTAw
SHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2Vj
ODZiM2RiOTI3Nzg3ODcwNWZkMTcwOGVjN2FlYmE3MWQwODg3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0v
dGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNv
bgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC1hdi0zODRrLTQ0MTAw
SHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8vd2Vi
bTtjb2RlY3M9XCJ2cDgsdm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEt
c291cmNlL3dlYm0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIt
bWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEw
a2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhNTlkYjU4NmVkNTliYmIzMDhjZjQ5Njhj
OWRlOTkwNzE5M2E3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFj
aC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7Cisg
ICAgInVybCI6ICJ3ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEw
a2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4LHZvcmJpc1wi
IgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNjQw
ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2
LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg2NzIzYjM0YTgxOWNmN2QzYTQ2OWFiY2EyYWQ2MGVhMTVhOWJmMzYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1z
b3VyY2Uvd2VibS90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1t
YW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWF2
LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6
ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOCx2b3JiaXNcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnItbWFu
aWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29u
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAwZTEwM2FjYTliNjZkOGM2ZTE0YThlZWIwZmQ3ODg4MzAyMDY5ZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9t
ZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnItbWFuaWZlc3Qu
anNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC12LTEyOGstMzIw
eDI0MC0yNGZwcy04a2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwi
dnA4XCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12
LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTEyOGstMzIw
eDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkZWViNDAxZDk2OTEx
NWU1ZDNmZTE3OGUzOWQwOTBjN2M3NjY0OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4
ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7Cisg
ICAgInVybCI6ICJ3ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIud2VibSIsCisg
ICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDhcIiIKK30KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2Zy
LW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9t
ZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGUzMDQ2MDY2NzgxNjBmZjg3NWE0MWY5OTc5MGJlOGNiYThlNzUy
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFu
aWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC12LTEy
OGstNjQweDQ4MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2Nv
ZGVjcz1cInZwOFwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJt
L3Rlc3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0y
NTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDcwNjc0
YmZmNWQ3NWRhYTk3MmU0NzJmYjIyMTkyODc0MDgxODNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVz
dC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBA
QAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLndl
Ym0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4XCIiCit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208134</attachid>
            <date>2013-08-05 10:24:45 -0700</date>
            <delta_ts>2013-08-05 11:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118752-20130805102444.patch</filename>
            <type>text/plain</type>
            <size>314743</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlZDBhMWM0ZWE4NGU3
OTY1OTI2ZjNiN2U5MDA1ZDczNzI0Zjg2NS4uNzYzNTJiNDg5YTljNmFjZjk5ZTlmMDVhNGQ3MDNi
YzFmNWU2NjQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA3LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIGJsaW5rIE1lZGlh
U291cmNlIGNoYW5nZXMgc2luY2UgZm9yay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODc1MgorCisgICAgICAgIEFkZCBmaWxlcyB0byBwcm9qZWN0
LiBGaXggY29tcGlsZSBlcnJvcnMgZXhwb3NlZCBieSBlbmFibGluZy4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2VSZWdpc3RyeTo6bG9va3VwTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bG9hZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUpOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisKKyAgICAgICAgTWVyZ2UKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvYzM4ZTI5NTVkYjk4YTMwMGE1MzViNjkyODY5ZmVh
MGU0MTUwMTQ5NworICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hy
b21pdW0vYmxpbmsvKy84NTY4MDE1ZTliZWUxZGU3ZmNjZWUyODE2M2Y5ZTRhNGI1MWY5YmFmCisg
ICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8r
LzE0NDE3ZThmYTYyOTRmNGU3ZGJjMWUwZmFjNTQ5Mzk4NTIyYjJmOTcKKyAgICAgICAgaHR0cHM6
Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZjQzYTU0OTZmMjMz
MTAyZjg4NjFhMDY3YTljZjgwNTNjMDEwZDQwMQorICAgICAgICBodHRwczovL2Nocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy81Nzc3MTQzOTgwNmY3YzZlNmEyNzJlZmIx
ZWE3MjkwMGY1ZjZhMDE1CisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9ibGluay8rLzhjNzdhNzkwYTlkMjI1MTk0ZGIwYTg4MzIzOTlkMGY5ZTFmYTU0
ZWMKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2Js
aW5rLysvZDMzYWUzZmE3YTg1OTJlOTQ2NTAzZWQxN2Y4NjJhMjdjNmQ5ZGRlMQorICAgICAgICBo
dHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy8xY2FhYTlj
NTFmMDZlMWI5MzQxZDU4Yzk5NGY3N2ZkNTlmY2QyMzZkCisgICAgICAgIGh0dHBzOi8vY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2U5NTcyMDM5M2IwZWJlNjdmMTlk
ZTM5YmI3N2NkZjI5MjYxNjU1MTIKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL2JsaW5rLysvYmFkMmMxYjRiNzBmYWVjNzMxYjJhZDNjYzhhNGNjZjI4
ZGU2Y2MzOAorICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vYmxpbmsvKy9hNzg3MzQzMGMzZDVjOTM3MzMzNmM2ZjM5OTNkYjNjYjQyMjhlOWNkCisgICAg
ICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rLzUw
ODk2NmQ1ZTMyMzYwYjNjZWMwNThmOWZiYWUwMDE0NTQyZmJjNTIKKyAgICAgICAgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvMzcxZGZlNzJmNjFjZTZm
NzNlNmMyNDIzMjRkYTczYzQxNWQzOGJlMworCiAyMDEzLTA4LTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IGVnbHBsYXRmb3JtLmgg
dG8gYmUgZm91bmQgYnkgV2luZG93cyBXZWJHTCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNzVjZWUzNzEzZmY2ZGYxMWY2ZjhjODlkY2VmZGYyYWQ1MWUwZGY0Yy4uNjk0NWFkYzgwM2Rj
NTM4MDBlZDQwMTE3M2RkZDY4OTEwOGFmYmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
OSw2ICsyMDksMTAgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDFkMzQ2ZTJlN2RjYmUwYzMxMDVjNWRhMGYzZmQwZWI4MzI0
MGQ3MDIuLmI5MzYyYWVlMTdiNjk2ZWI0OTZjYjUzM2IzOWMzMDFlYzI3ZTBkNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI3Niw3ICsyNzYsNyBAQAogI2luY2x1ZGUgIkpTTWVk
aWFMaXN0LmNwcCIKICNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0LmNwcCIKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQotI2luY2x1ZGUgIkpTTWVkaWFTb3VyY2UuY3BwIgorI2luY2x1ZGUgIkpT
V2ViS2l0TWVkaWFTb3VyY2UuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5l
bC5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnQuY3BwIgpAQCAtMzIxLDggKzMyMSw4IEBA
CiAjaW5jbHVkZSAiSlNTaGFyZWRXb3JrZXIuY3BwIgogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGUuY3BwIgogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiSlNT
b3VyY2VCdWZmZXIuY3BwIgotI2luY2x1ZGUgIkpTU291cmNlQnVmZmVyTGlzdC5jcHAiCisjaW5j
bHVkZSAiSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1NRTEVycm9yLmNwcCIKICNpbmNs
dWRlICJKU1NRTEV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBhYWIzZTgxN2E1M2Q2MzZlYTUzYjA5YWRhY2ZkZWFjM2RkYWM4YWY4Li5iZjE5YTQ1MGVjN2Uy
NDhmZTQ5MjcxZDcyODVkNzliOGMwNzA2Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTExMiw5ICsxMTIsMTMgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmlkbCBc
Ci0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCi0g
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAorCSQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDA2NjcwY2I3OTNk
OGQxMmZkMGY5MzQ1ODEyZWUyMTNjMzFkOTZhYTkuLjczZTZjZjllY2M3MDFiZThjODI1YzM0MmYw
ZTcwODA5MDJlNjYwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTY3NCw3ICs2
NzQsMTEgQEAgZW5hYmxlPyhNRURJQV9TT1VSQ0UpIHsKICAgSURMX0JJTkRJTkdTICs9IFwKICAg
ICAkJFBXRC9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbCBcCiAgICAgJCRQV0Qv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRsIFwKLSAgICAkJFBXRC9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAgJCRQV0QvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCisgICAgJCRQV0QvTW9kdWxlcy9tZWRpYXNv
dXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0TWVkaWFTb3VyY2UuaWRsIFwKKyAgICAkJFBXRC9Nb2R1bGVzL21lZGlhc291cmNlL1dl
YktpdFNvdXJjZUJ1ZmZlci5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5pZGwKIH0KIAogcXRQcmVwYXJlVG9vbChRTUFLRV9NT0MsIG1v
YykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDNkNGYyY2RkYTIyYTVjNDM4N2Fm
NzU1YjdlNjYxOTNjYjIxN2UxN2EuLmUxMTM5NDY5Y2FiMjViZGUzYWZjZDM0YTJhYzIxNzE4Y2Qy
MTUzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTE3LDYgKzUxNyw4IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01l
ZGlhTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTb3VyY2UuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1dlYktpdE1lZGlhU291cmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1dlYktpdE1lZGlhU291cmNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZWRpYVN0cmVhbS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbS5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
Y3BwIFwKQEAgLTY4Myw2ICs2ODUsMTAgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dFNvdXJjZUJ1ZmZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRTb3Vy
Y2VCdWZmZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0U291cmNlQnVmZmVy
TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXApAQCAtMTI2NSw2ICsx
MjcxLDEwIEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxN
ZWRpYVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRN
ZWRpYVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRT
b3VyY2VCdWZmZXIuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9M
b2NhbE1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtRXZlbnQuaWRsIFwKQEAgLTE5NzcsMTIgKzE5ODcsMjIgQEAgd2ViY29yZV9tb2R1bGVzX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2Jh
bFNjb3BlSW5kZXhlZERhdGFiYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2VCYXNlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0
cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3Ry
YWludHNJbXBsLmNwcCBcCkBAIC0zNzQzLDYgKzM3NjMsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1Jh
ZGlvSW5wdXRUeXBlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBlZTYzMjY5YzZlOGI4MDY0YWI2NDEzYTIyMjg2NmE3
YjE3NzAxOWE0Li4wZWIwMjlkYmQ3YjcwZDFmMjIxNzdkMGM3ZjUyOTUxZTFkN2EyNDIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzQsMTEgKzM0LDE1IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUg
IkNvbnRlbnRUeXBlLmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgorI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAi
TWVkaWFTb3VyY2VSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIK
ICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSA8d3RmL1VpbnQ4QXJyYXkuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTAsNjQgKzU0LDI0IEBAIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IE1lZGlhU291cmNlOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIH0KIAogTWVkaWFTb3VyY2U6Ok1l
ZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCkKLSAgICAsIG1fcmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpCi0g
ICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKHRoaXMpKQor
ICAgIDogTWVkaWFTb3VyY2VCYXNlKGNvbnRleHQpCiB7Ci0gICAgbV9zb3VyY2VCdWZmZXJzID0g
U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9hc3lu
Y0V2ZW50UXVldWUuZ2V0KCkpOwotICAgIG1fYWN0aXZlU291cmNlQnVmZmVycyA9IFNvdXJjZUJ1
ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fYXN5bmNFdmVudFF1
ZXVlLmdldCgpKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UgJXAi
LCB0aGlzKTsKKyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50UXVldWUoKSk7CisgICAgbV9hY3Rp
dmVTb3VyY2VCdWZmZXJzID0gU291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgYXN5bmNFdmVudFF1ZXVlKCkpOwogfQogCi1jb25zdCBTdHJpbmcmIE1lZGlh
U291cmNlOjpvcGVuS2V5d29yZCgpCitNZWRpYVNvdXJjZTo6fk1lZGlhU291cmNlKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgb3BlbiwgKEFTQ0lJTGl0ZXJhbCgi
b3BlbiIpKSk7Ci0gICAgcmV0dXJuIG9wZW47Ci19Ci0KLWNvbnN0IFN0cmluZyYgTWVkaWFTb3Vy
Y2U6OmNsb3NlZEtleXdvcmQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBjbG9zZWQsIChBU0NJSUxpdGVyYWwoImNsb3NlZCIpKSk7Ci0gICAgcmV0dXJuIGNsb3Nl
ZDsKLX0KLQotY29uc3QgU3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCkKLXsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kZWQsIChBU0NJSUxpdGVyYWwo
ImVuZGVkIikpKTsKLSAgICByZXR1cm4gZW5kZWQ7Ci19Ci0KLVNvdXJjZUJ1ZmZlckxpc3QqIE1l
ZGlhU291cmNlOjpzb3VyY2VCdWZmZXJzKCkKLXsKLSAgICByZXR1cm4gbV9zb3VyY2VCdWZmZXJz
LmdldCgpOwotfQotCi1Tb3VyY2VCdWZmZXJMaXN0KiBNZWRpYVNvdXJjZTo6YWN0aXZlU291cmNl
QnVmZmVycygpCi17Ci0gICAgLy8gRklYTUUoOTE2NDkpOiBzdXBwb3J0IHRyYWNrIHNlbGVjdGlv
bgotICAgIHJldHVybiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7Ci19Ci0KLWRvdWJsZSBN
ZWRpYVNvdXJjZTo6ZHVyYXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX3JlYWR5U3RhdGUg
PT0gY2xvc2VkS2V5d29yZCgpID8gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05h
TigpIDogbV9wcml2YXRlLT5kdXJhdGlvbigpOwotfQotCi12b2lkIE1lZGlhU291cmNlOjpzZXRE
dXJhdGlvbihkb3VibGUgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChk
dXJhdGlvbiA8IDAuMCB8fCBzdGQ6OmlzbmFuKGR1cmF0aW9uKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAobV9yZWFk
eVN0YXRlICE9IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3ByaXZhdGUtPnNldER1cmF0aW9uKGR1
cmF0aW9uKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVNvdXJjZTo6fk1lZGlhU291cmNlICVwIiwg
dGhpcyk7CisgICAgQVNTRVJUKGlzQ2xvc2VkKCkpOwogfQogCiBTb3VyY2VCdWZmZXIqIE1lZGlh
U291cmNlOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3
LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tYWRkc291cmNlYnVm
ZmVyCisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlciglcykgJXAi
LCB0eXBlLmFzY2lpKCkuZGF0YSgpLCB0aGlzKTsKKworICAgIC8vIDIuMiBodHRwczovL2R2Y3Mu
dzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3VyY2VCdWZmZXItU291cmNlQnVmZmVy
LURPTVN0cmluZy10eXBlCiAgICAgLy8gMS4gSWYgdHlwZSBpcyBudWxsIG9yIGFuIGVtcHR5IHRo
ZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKICAgICAvLyBhYm9y
dCB0aGVzZSBzdGVwcy4KICAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkg
ewpAQCAtMTI0LDcgKzg4LDcgQEAgU291cmNlQnVmZmVyKiBNZWRpYVNvdXJjZTo6YWRkU291cmNl
QnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMKIAogICAgIC8vIDQu
IElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZSB0
aGVuIHRocm93IGFuCiAgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8fCBtX3JlYWR5U3RhdGUgIT0gb3Bl
bktleXdvcmQoKSkgeworICAgIGlmICghaXNPcGVuKCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTMyLDM4ICs5NiwyOSBA
QCBTb3VyY2VCdWZmZXIqIE1lZGlhU291cmNlOjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5n
JiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYwogICAgIC8vIDUuIENyZWF0ZSBhIG5ldyBTb3VyY2VC
dWZmZXIgb2JqZWN0IGFuZCBhc3NvY2lhdGVkIHJlc291cmNlcy4KICAgICBDb250ZW50VHlwZSBj
b250ZW50VHlwZSh0eXBlKTsKICAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY3MgPSBjb250ZW50VHlw
ZS5jb2RlY3MoKTsKLSAgICBPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVy
UHJpdmF0ZTsKLSAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+YWRkU291cmNlQnVmZmVyKGNvbnRlbnRU
eXBlLnR5cGUoKSwgY29kZWNzLCAmc291cmNlQnVmZmVyUHJpdmF0ZSkpIHsKLSAgICBjYXNlIE1l
ZGlhU291cmNlUHJpdmF0ZTo6T2s6IHsKLSAgICAgICAgQVNTRVJUKHNvdXJjZUJ1ZmZlclByaXZh
dGUpOwotICAgICAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBidWZmZXIgPSBTb3VyY2VCdWZmZXI6
OmNyZWF0ZShzb3VyY2VCdWZmZXJQcml2YXRlLnJlbGVhc2UoKSwgdGhpcyk7Ci0KLSAgICAgICAg
Ly8gNi4gQWRkIHRoZSBuZXcgb2JqZWN0IHRvIHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSBhZGRz
b3VyY2VidWZmZXIgb24gdGhhdCBvYmplY3QuCi0gICAgICAgIG1fc291cmNlQnVmZmVycy0+YWRk
KGJ1ZmZlcik7Ci0gICAgICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7Ci0g
ICAgICAgIC8vIDcuIFJldHVybiB0aGUgbmV3IG9iamVjdCB0byB0aGUgY2FsbGVyLgotICAgICAg
ICByZXR1cm4gYnVmZmVyLmdldCgpOwotICAgIH0KLSAgICBjYXNlIE1lZGlhU291cmNlUHJpdmF0
ZTo6Tm90U3VwcG9ydGVkOgotICAgICAgICAvLyAyIChjb250KS4gSWYgdHlwZSBjb250YWlucyBh
IE1JTUUgdHlwZSAuLi4gdGhhdCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggdGhlIHR5cGVzIAotICAg
ICAgICAvLyBzcGVjaWZpZWQgZm9yIHRoZSBvdGhlciBTb3VyY2VCdWZmZXIgb2JqZWN0cyBpbiBz
b3VyY2VCdWZmZXJzLCB0aGVuIHRocm93Ci0gICAgICAgIC8vIGEgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6
OlJlYWNoZWRJZExpbWl0OgotICAgICAgICAvLyAzIChjb250KS4gSWYgdGhlIHVzZXIgYWdlbnQg
Y2FuJ3QgaGFuZGxlIGFueSBtb3JlIFNvdXJjZUJ1ZmZlciBvYmplY3RzIHRoZW4gdGhyb3cgCi0g
ICAgICAgIC8vIGEgUVVPVEFfRVhDRUVERURfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCi0gICAgICAgIGVjID0gUVVPVEFfRVhDRUVERURfRVJSOworICAgIE93blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlID0gY3JlYXRlU291cmNlQnVmZmVy
UHJpdmF0ZShjb250ZW50VHlwZS50eXBlKCksIGNvZGVjcywgZWMpOworCisgICAgaWYgKCFzb3Vy
Y2VCdWZmZXJQcml2YXRlKSB7CisgICAgICAgIEFTU0VSVChlYyA9PSBOT1RfU1VQUE9SVEVEX0VS
UiB8fCBlYyA9PSBRVU9UQV9FWENFRURFRF9FUlIpOworICAgICAgICAvLyAyLiBJZiB0eXBlIGNv
bnRhaW5zIGEgTUlNRSB0eXBlIHRoYXQgaXMgbm90IHN1cHBvcnRlZCAuLi4sIHRoZW4gdGhyb3cg
YSBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
ICAgICAvLyAzLiBJZiB0aGUgdXNlciBhZ2VudCBjYW4ndCBoYW5kbGUgYW55IG1vcmUgU291cmNl
QnVmZmVyIG9iamVjdHMgdGhlbiB0aHJvdyBhIFFVT1RBX0VYQ0VFREVEX0VSUiBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIFJlZlB0cjxTb3VyY2VCdWZm
ZXI+IGJ1ZmZlciA9IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUucmVs
ZWFzZSgpLCB0aGlzLCBhc3luY0V2ZW50UXVldWUoKSk7CisgICAgLy8gNi4gQWRkIHRoZSBuZXcg
b2JqZWN0IHRvIHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSBhZGRzb3VyY2VidWZmZXIgb24gdGhh
dCBvYmplY3QuCisgICAgbV9zb3VyY2VCdWZmZXJzLT5hZGQoYnVmZmVyKTsKKyAgICBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnMtPmFkZChidWZmZXIpOworICAgIC8vIDcuIFJldHVybiB0aGUgbmV3IG9i
amVjdCB0byB0aGUgY2FsbGVyLgorICAgIHJldHVybiBidWZmZXIuZ2V0KCk7CiB9CiAKIHZvaWQg
TWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqIGJ1ZmZlciwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gMy4xIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9odG1s
LW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLXJl
bW92ZXNvdXJjZWJ1ZmZlcgorICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlOjpyZW1vdmVTb3Vy
Y2VCdWZmZXIoKSAlcCIsIHRoaXMpOworICAgIFJlZlB0cjxTb3VyY2VCdWZmZXI+IHByb3RlY3Qo
YnVmZmVyKTsKKworICAgIC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEv
cmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRp
YVNvdXJjZS1yZW1vdmVTb3VyY2VCdWZmZXItdm9pZC1Tb3VyY2VCdWZmZXItc291cmNlQnVmZmVy
CiAgICAgLy8gMS4gSWYgc291cmNlQnVmZmVyIGlzIG51bGwgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZAogICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgogICAg
IGlmICghYnVmZmVyKSB7CkBAIC0xNzEsOTggKzEyNiw2OCBAQCB2b2lkIE1lZGlhU291cmNlOjpy
ZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyKiBidWZmZXIsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gMi4gSWYgc291cmNlQnVmZmVycyBp
cyBlbXB0eSB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQKLSAg
ICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8fCAhbV9zb3VyY2VC
dWZmZXJzLT5sZW5ndGgoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gMy4gSWYgc291cmNlQnVmZmVyIHNwZWNpZmll
cyBhbiBvYmplY3QgdGhhdCBpcyBub3QgaW4gc291cmNlQnVmZmVycyB0aGVuCisgICAgLy8gMi4g
SWYgc291cmNlQnVmZmVyIHNwZWNpZmllcyBhbiBvYmplY3QgdGhhdCBpcyBub3QgaW4gc291cmNl
QnVmZmVycyB0aGVuCiAgICAgLy8gdGhyb3cgYSBOT1RfRk9VTkRfRVJSIGV4Y2VwdGlvbiBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgLy8gNi4gUmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIHNv
dXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQKLSAgICAvLyBv
biB0aGF0IG9iamVjdC4KLSAgICBpZiAoIW1fc291cmNlQnVmZmVycy0+cmVtb3ZlKGJ1ZmZlcikp
IHsKKyAgICBpZiAoIW1fc291cmNlQnVmZmVycy0+bGVuZ3RoKCkgfHwgIW1fc291cmNlQnVmZmVy
cy0+Y29udGFpbnMoYnVmZmVyKSkgewogICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyA3LiBEZXN0cm95IGFsbCByZXNvdXJjZXMgZm9y
IHNvdXJjZUJ1ZmZlci4KLSAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIp
OworICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIudXBkYXRpbmcgYXR0cmlidXRlIGVxdWFs
cyB0cnVlLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOiAuLi4KKyAgICBidWZmZXItPmFi
b3J0SWZVcGRhdGluZygpOwogCi0gICAgLy8gNC4gUmVtb3ZlIHRyYWNrIGluZm9ybWF0aW9uIGZy
b20gYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQgdGV4dFRyYWNrcyBmb3IgYWxsIHRyYWNr
cyAKLSAgICAvLyBhc3NvY2lhdGVkIHdpdGggc291cmNlQnVmZmVyIGFuZCBmaXJlIGEgc2ltcGxl
IGV2ZW50IG5hbWVkIGNoYW5nZSBvbiB0aGUgbW9kaWZpZWQgbGlzdHMuCisgICAgLy8gU3RlcHMg
NC05IGFyZSByZWxhdGVkIHRvIHVwZGF0aW5nIGF1ZGlvVHJhY2tzLCB2aWRlb1RyYWNrcywgYW5k
IHRleHRUcmFja3Mgd2hpY2ggYXJlbid0IGltcGxtZW50ZWQgeWV0LgogICAgIC8vIEZJWE1FKDkx
NjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KIAotICAgIC8vIDUuIElmIHNvdXJjZUJ1ZmZl
ciBpcyBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJlbW92ZSBpdCBmcm9tIHRoYXQgbGlz
dCBhbmQgZmlyZSBhCi0gICAgLy8gcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50IG9uIHRoYXQgb2Jq
ZWN0LgotICAgIC8vIEZJWE1FKDkxNjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KLX0KKyAg
ICAvLyAxMC4gSWYgc291cmNlQnVmZmVyIGlzIGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMsIHRoZW4g
cmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMgLi4uCisgICAgbV9h
Y3RpdmVTb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKTsKIAotY29uc3QgU3RyaW5nJiBNZWRp
YVNvdXJjZTo6cmVhZHlTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsK
KyAgICAvLyAxMS4gUmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9tIHNvdXJjZUJ1ZmZlcnMgYW5kIGZp
cmUgYSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQKKyAgICAvLyBvbiB0aGF0IG9iamVjdC4KKyAg
ICBtX3NvdXJjZUJ1ZmZlcnMtPnJlbW92ZShidWZmZXIpOworCisgICAgLy8gMTIuIERlc3Ryb3kg
YWxsIHJlc291cmNlcyBmb3Igc291cmNlQnVmZmVyLgorICAgIGJ1ZmZlci0+cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpOwogfQogCi12b2lkIE1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKGNvbnN0
IFN0cmluZyYgc3RhdGUpCit2b2lkIE1lZGlhU291cmNlOjpvblJlYWR5U3RhdGVDaGFuZ2UoY29u
c3QgQXRvbWljU3RyaW5nJiBvbGRTdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdGF0ZSkK
IHsKLSAgICBBU1NFUlQoc3RhdGUgPT0gb3BlbktleXdvcmQoKSB8fCBzdGF0ZSA9PSBjbG9zZWRL
ZXl3b3JkKCkgfHwgc3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpOwotICAgIGlmIChtX3JlYWR5U3Rh
dGUgPT0gc3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBvbGRTdGF0ZSA9IG1f
cmVhZHlTdGF0ZTsKLSAgICBtX3JlYWR5U3RhdGUgPSBzdGF0ZTsKLQotICAgIGlmIChtX3JlYWR5
U3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpKSB7Ci0gICAgICAgIG1fc291cmNlQnVmZmVycy0+Y2xl
YXIoKTsKLSAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigpOwotICAgICAgICBt
X3ByaXZhdGUuY2xlYXIoKTsKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Vi
a2l0c291cmNlY2xvc2VFdmVudCk7CisgICAgaWYgKGlzT3BlbigpKSB7CisgICAgICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLnNvdXJjZW9wZW5FdmVudCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAob2xkU3RhdGUgPT0gb3BlbktleXdvcmQoKSAmJiBtX3JlYWR5U3Rh
dGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVz
KCkud2Via2l0c291cmNlZW5kZWRFdmVudCk7CisgICAgaWYgKG9sZFN0YXRlID09IG9wZW5LZXl3
b3JkKCkgJiYgbmV3U3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpIHsKKyAgICAgICAgc2NoZWR1bGVF
dmVudChldmVudE5hbWVzKCkuc291cmNlZW5kZWRFdmVudCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAobV9yZWFkeVN0YXRlID09IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAg
c2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlb3BlbkV2ZW50KTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLX0KKyAgICBBU1NFUlQoaXNDbG9zZWQoKSk7CiAKLXZvaWQgTWVk
aWFTb3VyY2U6OmVuZE9mU3RyZWFtKGNvbnN0IFN0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXct
ZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1lbmRvZnN0cmVhbQot
ICAgIC8vIDEuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVu
IiBzdGF0ZSB0aGVuIHRocm93IGFuCi0gICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9u
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoIW1fcHJpdmF0ZSB8fCBtX3JlYWR5U3Rh
dGUgIT0gb3BlbktleXdvcmQoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+Y2xlYXIo
KTsKIAotICAgIE1lZGlhU291cmNlUHJpdmF0ZTo6RW5kT2ZTdHJlYW1TdGF0dXMgZW9zU3RhdHVz
ID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yOworICAgIC8vIENsZWFyIFNvdXJjZUJ1
ZmZlciByZWZlcmVuY2VzIHRvIHRoaXMgb2JqZWN0LgorICAgIGZvciAodW5zaWduZWQgbG9uZyBp
ID0gMDsgaSA8IG1fc291cmNlQnVmZmVycy0+bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJzLT5pdGVtKGkpLT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisgICAgbV9zb3Vy
Y2VCdWZmZXJzLT5jbGVhcigpOwogCi0gICAgaWYgKGVycm9yLmlzTnVsbCgpIHx8IGVycm9yLmlz
RW1wdHkoKSkKLSAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vy
cm9yOwotICAgIGVsc2UgaWYgKGVycm9yID09ICJuZXR3b3JrIikKLSAgICAgICAgZW9zU3RhdHVz
ID0gTWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOZXR3b3JrRXJyb3I7Ci0gICAgZWxzZSBpZiAoZXJy
b3IgPT0gImRlY29kZSIpCi0gICAgICAgIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6
RW9zRGVjb2RlRXJyb3I7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1l
cygpLnNvdXJjZWNsb3NlRXZlbnQpOworfQogCi0gICAgLy8gMi4gQ2hhbmdlIHRoZSByZWFkeVN0
YXRlIGF0dHJpYnV0ZSB2YWx1ZSB0byAiZW5kZWQiLgotICAgIHNldFJlYWR5U3RhdGUoZW5kZWRL
ZXl3b3JkKCkpOwotICAgIG1fcHJpdmF0ZS0+ZW5kT2ZTdHJlYW0oZW9zU3RhdHVzKTsKK1ZlY3Rv
cjxSZWZQdHI8VGltZVJhbmdlcz4gPiBNZWRpYVNvdXJjZTo6YWN0aXZlUmFuZ2VzKCkgY29uc3QK
K3sKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKG1fYWN0aXZl
U291cmNlQnVmZmVycy0+bGVuZ3RoKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9h
Y3RpdmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytpKQorICAgICAgICBhY3RpdmVSYW5nZXNb
aV0gPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPml0ZW0oaSktPmJ1ZmZlcmVkKEFTU0VSVF9OT19F
WENFUFRJT04pOworCisgICAgcmV0dXJuIGFjdGl2ZVJhbmdlczsKIH0KIAogYm9vbCBNZWRpYVNv
dXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICAvLyBTZWN0
aW9uIDIuMSBpc1R5cGVTdXBwb3J0ZWQoKSBtZXRob2Qgc3RlcHMuCisgICAgTE9HKE1lZGlhLCAi
TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCglcykiLCB0eXBlLmFzY2lpKCkuZGF0YSgpKTsK
KworICAgIC8vIFNlY3Rpb24gMi4yIGlzVHlwZVN1cHBvcnRlZCgpIG1ldGhvZCBzdGVwcy4KICAg
ICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlh
LXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLU1lZGlhU291cmNlLWlzVHlwZVN1cHBvcnRl
ZC1ib29sZWFuLURPTVN0cmluZy10eXBlCiAgICAgLy8gMS4gSWYgdHlwZSBpcyBhbiBlbXB0eSBz
dHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAgIGlmICh0eXBlLmlzTnVsbCgpIHx8IHR5cGUu
aXNFbXB0eSgpKQpAQCAtMjgyLDU2ICsyMDcsMTEgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBl
U3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNvbnRlbnRUeXBlLnR5cGUoKSwgY29k
ZWNzKTsKIH0KIAotdm9pZCBNZWRpYVNvdXJjZTo6c2V0UHJpdmF0ZUFuZE9wZW4oUGFzc093blB0
cjxNZWRpYVNvdXJjZVByaXZhdGU+IG1lZGlhU291cmNlUHJpdmF0ZSkKLXsKLSAgICBBU1NFUlQo
bWVkaWFTb3VyY2VQcml2YXRlKTsKLSAgICBBU1NFUlQoIW1fcHJpdmF0ZSk7Ci0gICAgbV9wcml2
YXRlID0gbWVkaWFTb3VyY2VQcml2YXRlOwotICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdvcmQo
KSk7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2U6OmludGVyZmFjZU5hbWUo
KSBjb25zdAogewogICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yTWVkaWFTb3Vy
Y2U7CiB9CiAKLVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNlOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7Ci19Ci0KLWJvb2wgTWVkaWFTb3VyY2U6Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZSB8fCBtX2FzeW5jRXZlbnRR
dWV1ZS0+aGFzUGVuZGluZ0V2ZW50cygpCi0gICAgICAgIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFz
UGVuZGluZ0FjdGl2aXR5KCk7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2U6OnN0b3AoKQotewotICAg
IG1fcHJpdmF0ZS5jbGVhcigpOwotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5jYW5jZWxBbGxFdmVu
dHMoKTsKLX0KLQotRXZlbnRUYXJnZXREYXRhKiBNZWRpYVNvdXJjZTo6ZXZlbnRUYXJnZXREYXRh
KCkKLXsKLSAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwotfQotCi1FdmVudFRhcmdldERh
dGEqIE1lZGlhU291cmNlOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQotewotICAgIHJldHVybiAm
bV9ldmVudFRhcmdldERhdGE7Ci19Ci0KLXZvaWQgTWVkaWFTb3VyY2U6OnNjaGVkdWxlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCi17Ci0gICAgQVNTRVJUKG1fYXN5bmNFdmVu
dFF1ZXVlKTsKLQotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwotCi0gICAg
bV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChldmVudC5yZWxlYXNlKCkpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGJjZjkzNWM2ZjE3YTA1MTVlYzJh
ZmRjNmJlN2U1ZTJiMzEwMTU3NzQuLmRlNThjZThiODZmMDkyMWU0ZTNjMzdmZGMyYzhmNzIxOGEy
ZmJiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTMzLDczICszMyw0NSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAot
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVl
LmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3Vy
Y2VCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU291cmNl
QnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTb3VyY2Ug
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNvdXJjZT4sIHB1YmxpYyBFdmVudFRhcmdldCwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBNZWRpYVNvdXJjZSA6IHB1YmxpYyBNZWRpYVNv
dXJjZUJhc2UsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdCBTdHJpbmcmIG9wZW5LZXl3b3JkKCk7Ci0gICAgc3RhdGljIGNvbnN0IFN0cmluZyYgY2xv
c2VkS2V5d29yZCgpOwotICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGVuZGVkS2V5d29yZCgpOwot
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7Ci0gICAgdmlydHVhbCB+TWVkaWFTb3VyY2UoKSB7IH0KKyAgICB2aXJ0dWFs
IH5NZWRpYVNvdXJjZSgpOwogCiAgICAgLy8gTWVkaWFTb3VyY2UuaWRsIG1ldGhvZHMKLSAgICBT
b3VyY2VCdWZmZXJMaXN0KiBzb3VyY2VCdWZmZXJzKCk7Ci0gICAgU291cmNlQnVmZmVyTGlzdCog
YWN0aXZlU291cmNlQnVmZmVycygpOwotICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0OwotICAg
IHZvaWQgc2V0RHVyYXRpb24oZG91YmxlLCBFeGNlcHRpb25Db2RlJik7CisgICAgU291cmNlQnVm
ZmVyTGlzdCogc291cmNlQnVmZmVycygpIHsgcmV0dXJuIG1fc291cmNlQnVmZmVycy5nZXQoKTsg
fQorICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKSB7IHJldHVybiBt
X2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KICAgICBTb3VyY2VCdWZmZXIqIGFkZFNvdXJj
ZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHJl
bW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgY29u
c3QgU3RyaW5nJiByZWFkeVN0YXRlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKGNv
bnN0IFN0cmluZyYpOwotICAgIHZvaWQgZW5kT2ZTdHJlYW0oY29uc3QgU3RyaW5nJiBlcnJvciwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBT
dHJpbmcmIHR5cGUpOwogCi0gICAgdm9pZCBzZXRQcml2YXRlQW5kT3BlbihQYXNzT3duUHRyPE1l
ZGlhU291cmNlUHJpdmF0ZT4pOwotCiAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBPVkVSUklERTsKLQotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZh
Y2UKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJREU7
CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlPjo6cmVmOwotICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8TWVkaWFTb3VyY2U+OjpkZXJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlh
U291cmNlQmFzZT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlQmFzZT46
OmRlcmVmOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhU291cmNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBFdmVudFRhcmdldERh
dGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9p
ZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQotCi0gICAgdm9pZCBzY2hl
ZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsKLQotICAgIEV2ZW50VGFy
Z2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKLQotICAgIFN0cmluZyBtX3JlYWR5U3RhdGU7Ci0g
ICAgT3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIC8vIE1lZGlhU291
cmNlQmFzZSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQgb25SZWFkeVN0YXRlQ2hhbmdlKGNv
bnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IGFjdGl2ZVJhbmdlcygpIGNvbnN0IE9W
RVJSSURFOwogCiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlckxpc3Q+IG1fc291cmNlQnVmZmVyczsK
ICAgICBSZWZQdHI8U291cmNlQnVmZmVyTGlzdD4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzOwotICAg
IE93blB0cjxHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKaW5kZXggN2IwNDM0NzA4
ZTI1ZDFlYWFlNWVlMzMyZTRkNWI3NGQ1YzE5OTVhZS4uZDBkNGRkNGY3OTIyZTM5MTNhNTZlZjBk
MTA0NWQxYzJlMDg5YmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMyLDEwICszMiwxMCBAQAogICAgIENvbmRpdGlvbmFs
PU1FRElBX1NPVVJDRSwKICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgRXZlbnRUYXJnZXQsCisg
ICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgIENvbnN0cnVjdG9yLAotICAgIENvbnN0
cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKLSAgICBJbnRlcmZhY2VOYW1l
PVdlYktpdE1lZGlhU291cmNlCi1dIGludGVyZmFjZSBNZWRpYVNvdXJjZSB7CisgICAgQ29uc3Ry
dWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0CitdIGludGVyZmFjZSBNZWRpYVNv
dXJjZSA6IEV2ZW50VGFyZ2V0IHsKICAgICAvLyBBbGwgdGhlIHNvdXJjZSBidWZmZXJzIGNyZWF0
ZWQgYnkgdGhpcyBvYmplY3QuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNvdXJjZUJ1ZmZlckxp
c3Qgc291cmNlQnVmZmVyczsKIApAQCAtNTIsMTQgKzUyLDQgQEAKICAgICBbUmFpc2VzRXhjZXB0
aW9uXSB2b2lkIGVuZE9mU3RyZWFtKFtEZWZhdWx0PU51bGxTdHJpbmddIG9wdGlvbmFsIERPTVN0
cmluZyBlcnJvcik7CiAKICAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBwb3J0ZWQgKERPTVN0
cmluZyB0eXBlKTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQotICAgIHZvaWQgYWRk
RXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
YWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9N
U3RyaW5nIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIg
bGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50
KEV2ZW50IGV2ZW50KTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2NlNWM4MjYyMWFk
NWZiNGY4NzNjMWVjYWY0ZTlmYjM4YjAzNzZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuY3BwCkBAIC0wLDAgKzEs
MzE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlQmFzZS5oIgor
CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJTb3VyY2VCdWZmZXJQ
cml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhU291cmNlQmFz
ZTo6TWVkaWFTb3VyY2VCYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKKyAgICAsIG1fcmVhZHlTdGF0ZShjbG9zZWRLZXl3
b3JkKCkpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRl
KHRoaXMpKQorICAgICwgbV9hdHRhY2hlZChmYWxzZSkKK3sKK30KKworTWVkaWFTb3VyY2VCYXNl
Ojp+TWVkaWFTb3VyY2VCYXNlKCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNv
dXJjZUJhc2U6Om9wZW5LZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgb3BlbiwgKCJvcGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIHJldHVybiBvcGVuOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhU291cmNlQmFzZTo6Y2xvc2VkS2V5d29yZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJjbG9zZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgcmV0dXJuIGNsb3NlZDsKK30KKworY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYVNvdXJjZUJhc2U6OmVuZGVkS2V5d29yZCgpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBlbmRlZDsKK30KKwor
dm9pZCBNZWRpYVNvdXJjZUJhc2U6OnNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVkaWFT
b3VyY2VQcml2YXRlPiBtZWRpYVNvdXJjZVByaXZhdGUpCit7CisgICAgQVNTRVJUKG1lZGlhU291
cmNlUHJpdmF0ZSk7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUpOworICAgIEFTU0VSVChtX2F0dGFj
aGVkKTsKKyAgICBtX3ByaXZhdGUgPSBtZWRpYVNvdXJjZVByaXZhdGU7CisgICAgc2V0UmVhZHlT
dGF0ZShvcGVuS2V5d29yZCgpKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OmFkZGVkVG9S
ZWdpc3RyeSgpCit7CisgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworfQorCit2b2lkIE1l
ZGlhU291cmNlQmFzZTo6cmVtb3ZlZEZyb21SZWdpc3RyeSgpCit7CisgICAgdW5zZXRQZW5kaW5n
QWN0aXZpdHkodGhpcyk7Cit9CisKK2RvdWJsZSBNZWRpYVNvdXJjZUJhc2U6OmR1cmF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaXNDbG9zZWQoKSA/IHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjpxdWlldF9OYU4oKSA6IG1fcHJpdmF0ZS0+ZHVyYXRpb24oKTsKK30KKworUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBNZWRpYVNvdXJjZUJhc2U6OmJ1ZmZlcmVkKCkgY29uc3QKK3sKKyAgICAv
LyBJbXBsZW1lbnRzIE1lZGlhU291cmNlIGFsZ29yaXRobSBmb3IgSFRNTE1lZGlhRWxlbWVudC5i
dWZmZXJlZC4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZp
bGUvZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjaHRtbG1lZGlhZWxlbWVu
dC1leHRlbnNpb25zCisgICAgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IHJhbmdlcyA9IGFj
dGl2ZVJhbmdlcygpOworCisgICAgLy8gMS4gSWYgYWN0aXZlU291cmNlQnVmZmVycy5sZW5ndGgg
ZXF1YWxzIDAgdGhlbiByZXR1cm4gYW4gZW1wdHkgVGltZVJhbmdlcyBvYmplY3QgYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIGlmIChyYW5nZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
VGltZVJhbmdlczo6Y3JlYXRlKCk7CisKKyAgICAvLyAyLiBMZXQgYWN0aXZlIHJhbmdlcyBiZSB0
aGUgcmFuZ2VzIHJldHVybmVkIGJ5IGJ1ZmZlcmVkIGZvciBlYWNoIFNvdXJjZUJ1ZmZlciBvYmpl
Y3QgaW4gYWN0aXZlU291cmNlQnVmZmVycy4KKyAgICAvLyAzLiBMZXQgaGlnaGVzdCBlbmQgdGlt
ZSBiZSB0aGUgbGFyZ2VzdCByYW5nZSBlbmQgdGltZSBpbiB0aGUgYWN0aXZlIHJhbmdlcy4KKyAg
ICBkb3VibGUgaGlnaGVzdEVuZFRpbWUgPSAtMTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHJhbmdlcy5zaXplKCk7ICsraSkgeworICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSByYW5nZXNb
aV0tPmxlbmd0aCgpOworICAgICAgICBpZiAobGVuZ3RoKQorICAgICAgICAgICAgaGlnaGVzdEVu
ZFRpbWUgPSBzdGQ6Om1heChoaWdoZXN0RW5kVGltZSwgcmFuZ2VzW2ldLT5lbmQobGVuZ3RoIC0g
MSwgQVNTRVJUX05PX0VYQ0VQVElPTikpOworICAgIH0KKworICAgIC8vIFJldHVybiBhbiBlbXB0
eSByYW5nZSBpZiBhbGwgcmFuZ2VzIGFyZSBlbXB0eS4KKyAgICBpZiAoaGlnaGVzdEVuZFRpbWUg
PCAwKQorICAgICAgICByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisKKyAgICAvLyA0LiBM
ZXQgaW50ZXJzZWN0aW9uIHJhbmdlcyBlcXVhbCBhIFRpbWVSYW5nZSBvYmplY3QgY29udGFpbmlu
ZyBhIHNpbmdsZSByYW5nZSBmcm9tIDAgdG8gaGlnaGVzdCBlbmQgdGltZS4KKyAgICBSZWZQdHI8
VGltZVJhbmdlcz4gaW50ZXJzZWN0aW9uUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKDAsIGhp
Z2hlc3RFbmRUaW1lKTsKKworICAgIC8vIDUuIEZvciBlYWNoIFNvdXJjZUJ1ZmZlciBvYmplY3Qg
aW4gYWN0aXZlU291cmNlQnVmZmVycyBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICBib29s
IGVuZGVkID0gcmVhZHlTdGF0ZSgpID09IGVuZGVkS2V5d29yZCgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcmFuZ2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIDUuMSBMZXQgc291
cmNlIHJhbmdlcyBlcXVhbCB0aGUgcmFuZ2VzIHJldHVybmVkIGJ5IHRoZSBidWZmZXJlZCBhdHRy
aWJ1dGUgb24gdGhlIGN1cnJlbnQgU291cmNlQnVmZmVyLgorICAgICAgICBUaW1lUmFuZ2VzKiBz
b3VyY2VSYW5nZXMgPSByYW5nZXNbaV0uZ2V0KCk7CisKKyAgICAgICAgLy8gNS4yIElmIHJlYWR5
U3RhdGUgaXMgImVuZGVkIiwgdGhlbiBzZXQgdGhlIGVuZCB0aW1lIG9uIHRoZSBsYXN0IHJhbmdl
IGluIHNvdXJjZSByYW5nZXMgdG8gaGlnaGVzdCBlbmQgdGltZS4KKyAgICAgICAgaWYgKGVuZGVk
ICYmIHNvdXJjZVJhbmdlcy0+bGVuZ3RoKCkpCisgICAgICAgICAgICBzb3VyY2VSYW5nZXMtPmFk
ZChzb3VyY2VSYW5nZXMtPnN0YXJ0KHNvdXJjZVJhbmdlcy0+bGVuZ3RoKCkgLSAxLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKSwgaGlnaGVzdEVuZFRpbWUpOworCisgICAgICAgIC8vIDUuMyBMZXQgbmV3
IGludGVyc2VjdGlvbiByYW5nZXMgZXF1YWwgdGhlIHRoZSBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0
aGUgaW50ZXJzZWN0aW9uIHJhbmdlcyBhbmQgdGhlIHNvdXJjZSByYW5nZXMuCisgICAgICAgIC8v
IDUuNCBSZXBsYWNlIHRoZSByYW5nZXMgaW4gaW50ZXJzZWN0aW9uIHJhbmdlcyB3aXRoIHRoZSBu
ZXcgaW50ZXJzZWN0aW9uIHJhbmdlcy4KKyAgICAgICAgaW50ZXJzZWN0aW9uUmFuZ2VzLT5pbnRl
cnNlY3RXaXRoKHNvdXJjZVJhbmdlcyk7CisgICAgfQorCisgICAgcmV0dXJuIGludGVyc2VjdGlv
blJhbmdlcy5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpzZXREdXJhdGlv
bihkb3VibGUgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChkdXJhdGlv
biA8IDAuMCB8fCBzdGQ6OmlzbmFuKGR1cmF0aW9uKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIWlzT3BlbigpKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgbV9wcml2YXRlLT5zZXREdXJhdGlvbihkdXJhdGlvbik7Cit9CisKKwordm9pZCBNZWRp
YVNvdXJjZUJhc2U6OnNldFJlYWR5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkKK3sK
KyAgICBBU1NFUlQoc3RhdGUgPT0gb3BlbktleXdvcmQoKSB8fCBzdGF0ZSA9PSBjbG9zZWRLZXl3
b3JkKCkgfHwgc3RhdGUgPT0gZW5kZWRLZXl3b3JkKCkpOworCisgICAgQXRvbWljU3RyaW5nIG9s
ZFN0YXRlID0gcmVhZHlTdGF0ZSgpOworICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlQmFzZTo6
c2V0UmVhZHlTdGF0ZSgpICVwIDogJXMgLT4gJXMiLCB0aGlzLCBvbGRTdGF0ZS5zdHJpbmcoKS5h
c2NpaSgpLmRhdGEoKSwgc3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworCisgICAgaWYg
KHN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgeworICAgICAgICBtX3ByaXZhdGUuY2xlYXIoKTsK
KyAgICAgICAgbV9hdHRhY2hlZCA9IGZhbHNlOworICAgIH0KKworICAgIGlmIChvbGRTdGF0ZSA9
PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZWFkeVN0YXRlID0gc3RhdGU7CisK
KyAgICBvblJlYWR5U3RhdGVDaGFuZ2Uob2xkU3RhdGUsIHN0YXRlKTsKK30KKwordm9pZCBNZWRp
YVNvdXJjZUJhc2U6OmVuZE9mU3RyZWFtKGNvbnN0IEF0b21pY1N0cmluZyYgZXJyb3IsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBuZXR3b3JrLCAoIm5ldHdvcmsiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlY29k
ZSwgKCJkZWNvZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisKKyAg
ICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tZW5kb2ZzdHJlYW0KKyAgICAvLyAxLiBJ
ZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgbm90IGluIHRoZSAib3BlbiIgc3RhdGUgdGhl
biB0aHJvdyBhbgorICAgIC8vIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQg
dGhlc2Ugc3RlcHMuCisgICAgaWYgKCFpc09wZW4oKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTWVkaWFTb3VyY2VQcml2
YXRlOjpFbmRPZlN0cmVhbVN0YXR1cyBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVv
c05vRXJyb3I7CisKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkgfHwgZXJyb3IuaXNFbXB0eSgpKQor
ICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc05vRXJyb3I7CisgICAg
ZWxzZSBpZiAoZXJyb3IgPT0gbmV0d29yaykKKyAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3Vy
Y2VQcml2YXRlOjpFb3NOZXR3b3JrRXJyb3I7CisgICAgZWxzZSBpZiAoZXJyb3IgPT0gZGVjb2Rl
KQorICAgICAgICBlb3NTdGF0dXMgPSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc0RlY29kZUVycm9y
OworICAgIGVsc2UgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIDIuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1
dGUgdmFsdWUgdG8gImVuZGVkIi4KKyAgICBzZXRSZWFkeVN0YXRlKGVuZGVkS2V5d29yZCgpKTsK
KyAgICBtX3ByaXZhdGUtPm1hcmtFbmRPZlN0cmVhbShlb3NTdGF0dXMpOworfQorCitib29sIE1l
ZGlhU291cmNlQmFzZTo6aXNPcGVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVhZHlTdGF0ZSgp
ID09IG9wZW5LZXl3b3JkKCk7Cit9CisKK2Jvb2wgTWVkaWFTb3VyY2VCYXNlOjppc0Nsb3NlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlYWR5U3RhdGUoKSA9PSBjbG9zZWRLZXl3b3JkKCk7Cit9
CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpjbG9zZSgpCit7CisgICAgc2V0UmVhZHlTdGF0ZShj
bG9zZWRLZXl3b3JkKCkpOworfQorCitib29sIE1lZGlhU291cmNlQmFzZTo6YXR0YWNoVG9FbGVt
ZW50KCkKK3sKKyAgICBpZiAobV9hdHRhY2hlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgQVNTRVJUKGlzQ2xvc2VkKCkpOworCisgICAgbV9hdHRhY2hlZCA9IHRydWU7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpvcGVuSWZJbkVuZGVkU3RhdGUo
KQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gZW5kZWRLZXl3b3JkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdvcmQoKSk7CisgICAgbV9wcml2YXRl
LT51bm1hcmtFbmRPZlN0cmVhbSgpOworfQorCitib29sIE1lZGlhU291cmNlQmFzZTo6aGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlIHx8IG1fYXN5bmNF
dmVudFF1ZXVlLT5oYXNQZW5kaW5nRXZlbnRzKCkKKyAgICAgICAgfHwgQWN0aXZlRE9NT2JqZWN0
OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OnN0b3Ao
KQoreworICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5jbG9zZSgpOworICAgIGlmICghaXNDbG9zZWQo
KSkKKyAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpOworICAgIG1fcHJpdmF0
ZS5jbGVhcigpOworfQorCitQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IE1lZGlhU291
cmNlQmFzZTo6Y3JlYXRlU291cmNlQnVmZmVyUHJpdmF0ZShjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IE1lZGlhU291cmNlUHJpdmF0ZTo6Q29kZWNzQXJyYXkmIGNvZGVjcywgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclBy
aXZhdGU7CisgICAgc3dpdGNoIChtX3ByaXZhdGUtPmFkZFNvdXJjZUJ1ZmZlcih0eXBlLCBjb2Rl
Y3MsICZzb3VyY2VCdWZmZXJQcml2YXRlKSkgeworICAgIGNhc2UgTWVkaWFTb3VyY2VQcml2YXRl
OjpPazogeworICAgICAgICByZXR1cm4gc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNlKCk7Cisg
ICAgfQorICAgIGNhc2UgTWVkaWFTb3VyY2VQcml2YXRlOjpOb3RTdXBwb3J0ZWQ6CisgICAgICAg
IC8vIDIuMiBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVs
dC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3Vy
Y2VCdWZmZXItU291cmNlQnVmZmVyLURPTVN0cmluZy10eXBlCisgICAgICAgIC8vIFN0ZXAgMjog
SWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSAuLi4gdGhhdCBpcyBub3Qgc3VwcG9ydGVkIHdp
dGggdGhlIHR5cGVzCisgICAgICAgIC8vIHNwZWNpZmllZCBmb3IgdGhlIG90aGVyIFNvdXJjZUJ1
ZmZlciBvYmplY3RzIGluIHNvdXJjZUJ1ZmZlcnMsIHRoZW4gdGhyb3cKKyAgICAgICAgLy8gYSBO
T1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgICAg
ICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBj
YXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6UmVhY2hlZElkTGltaXQ6CisgICAgICAgIC8vIDIuMiBo
dHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1hZGRTb3VyY2VCdWZmZXIt
U291cmNlQnVmZmVyLURPTVN0cmluZy10eXBlCisgICAgICAgIC8vIFN0ZXAgMzogSWYgdGhlIHVz
ZXIgYWdlbnQgY2FuJ3QgaGFuZGxlIGFueSBtb3JlIFNvdXJjZUJ1ZmZlciBvYmplY3RzIHRoZW4g
dGhyb3cKKyAgICAgICAgLy8gYSBRVU9UQV9FWENFRURFRF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KKyAgICAgICAgZWMgPSBRVU9UQV9FWENFRURFRF9FUlI7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCit2b2lkIE1lZGlhU291cmNlQmFzZTo6c2NoZWR1bGVFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3sKKyAgICBBU1NFUlQobV9hc3luY0V2
ZW50UXVldWUpOworCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CisKKyAg
ICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7Cit9CisK
K1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIE1lZGlhU291cmNlQmFzZTo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOworfQorCitFdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlQmFzZTo6
ZXZlbnRUYXJnZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQor
CitFdmVudFRhcmdldERhdGEqIE1lZGlhU291cmNlQmFzZTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRh
KCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCitVUkxSZWdpc3RyeSYg
TWVkaWFTb3VyY2VCYXNlOjpyZWdpc3RyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhU291
cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJhc2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZDYxNmIxOWE3MmQ4NzdkOTMwMjJhYmQ5YjRjOTAxNzg2YzgyYWRlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZUJh
c2UuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFTb3VyY2VCYXNlX2gKKyNkZWZpbmUg
TWVkaWFTb3VyY2VCYXNlX2gKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
IkhUTUxNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIlVSTFJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKKworY2xhc3MgTWVkaWFT
b3VyY2VCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VCYXNlPiwgcHVibGljIEhU
TUxNZWRpYVNvdXJjZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBvcGVuS2V5d29yZCgp
OworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNsb3NlZEtleXdvcmQoKTsKKyAgICBz
dGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBlbmRlZEtleXdvcmQoKTsKKworICAgIHZpcnR1YWwg
fk1lZGlhU291cmNlQmFzZSgpOworCisgICAgdm9pZCBhZGRlZFRvUmVnaXN0cnkoKTsKKyAgICB2
b2lkIHJlbW92ZWRGcm9tUmVnaXN0cnkoKTsKKyAgICB2b2lkIG9wZW5JZkluRW5kZWRTdGF0ZSgp
OworICAgIGJvb2wgaXNPcGVuKCkgY29uc3Q7CisKKyAgICAvLyBIVE1MTWVkaWFTb3VyY2UKKyAg
ICB2aXJ0dWFsIGJvb2wgYXR0YWNoVG9FbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldFByaXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVkaWFTb3VyY2VQcml2YXRlPikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzQ2xvc2VkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRp
b24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
YnVmZmVyZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmSFRNTE1lZGlh
U291cmNlKCkgT1ZFUlJJREUgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkhUTUxN
ZWRpYVNvdXJjZSgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorCisgICAgdm9pZCBzZXREdXJhdGlv
bihkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJlYWR5
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KKyAgICB2b2lkIHNldFJlYWR5
U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9pZCBlbmRPZlN0cmVhbShjb25zdCBB
dG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJik7CisKKworICAgIC8vIEFjdGl2ZURP
TU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKworICAg
IC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CisK
KyAgICAvLyBVUkxSZWdpc3RyYWJsZSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5
JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRp
YVNvdXJjZUJhc2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZUJhc2U+
OjpkZXJlZjsKKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IE1lZGlhU291cmNlQmFzZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgb25SZWFkeVN0YXRlQ2hh
bmdlKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkU3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBhY3Rp
dmVSYW5nZXMoKSBjb25zdCA9IDA7CisKKyAgICBQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGU+IGNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBN
ZWRpYVNvdXJjZVByaXZhdGU6OkNvZGVjc0FycmF5JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSk7CisgICAgR2Vu
ZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNF
dmVudFF1ZXVlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgT3duUHRyPE1lZGlhU291cmNlUHJp
dmF0ZT4gbV9wcml2YXRlOworICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsK
KyAgICBBdG9taWNTdHJpbmcgbV9yZWFkeVN0YXRlOworICAgIE93blB0cjxHZW5lcmljRXZlbnRR
dWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CisgICAgYm9vbCBtX2F0dGFjaGVkOworfTsKKworfQor
CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcAppbmRleCAxYzYyNjc0NjdmNDVk
ZTg3NTRjZTUzNmEzNjA4MjUzYmM2ZjJhNGIxLi5kYjQ3NTFlMDA1YmM1ZTIwYTQ4NDNmZjBiNGM3
NjFjOWM5MWYzYzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgIk1l
ZGlhU291cmNlLmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VCYXNlLmgiCiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMzMgKzQ2LDM3IEBA
IE1lZGlhU291cmNlUmVnaXN0cnkmIE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCkKICAg
ICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKLXZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0
ZXJNZWRpYVNvdXJjZVVSTChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+
IHNvdXJjZSkKK3ZvaWQgTWVkaWFTb3VyY2VSZWdpc3RyeTo6cmVnaXN0ZXJVUkwoU2VjdXJpdHlP
cmlnaW4qLCBjb25zdCBLVVJMJiB1cmwsIFVSTFJlZ2lzdHJhYmxlKiByZWdpc3RyYWJsZSkKIHsK
KyAgICBBU1NFUlQoJnJlZ2lzdHJhYmxlLT5yZWdpc3RyeSgpID09IHRoaXMpOwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBzb3VyY2UtPnNldFBlbmRpbmdBY3Rpdml0eShzb3Vy
Y2UuZ2V0KCkpOwotCisgICAgTWVkaWFTb3VyY2VCYXNlKiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxN
ZWRpYVNvdXJjZUJhc2UqPihyZWdpc3RyYWJsZSk7CisgICAgc291cmNlLT5hZGRlZFRvUmVnaXN0
cnkoKTsKICAgICBtX21lZGlhU291cmNlcy5zZXQodXJsLnN0cmluZygpLCBzb3VyY2UpOwogfQog
Ci12b2lkIE1lZGlhU291cmNlUmVnaXN0cnk6OnVucmVnaXN0ZXJNZWRpYVNvdXJjZVVSTChjb25z
dCBLVVJMJiB1cmwpCit2b2lkIE1lZGlhU291cmNlUmVnaXN0cnk6OnVucmVnaXN0ZXJVUkwoY29u
c3QgS1VSTCYgdXJsKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4gPjo6aXRlcmF0b3IgaXRlciA9IG1fbWVkaWFT
b3VyY2VzLmZpbmQodXJsLnN0cmluZygpKTsKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1l
ZGlhU291cmNlQmFzZT4gPjo6aXRlcmF0b3IgaXRlciA9IG1fbWVkaWFTb3VyY2VzLmZpbmQodXJs
LnN0cmluZygpKTsKICAgICBpZiAoaXRlciA9PSBtX21lZGlhU291cmNlcy5lbmQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBzb3VyY2UgPSBpdGVyLT52YWx1
ZTsKKyAgICBSZWZQdHI8TWVkaWFTb3VyY2VCYXNlPiBzb3VyY2UgPSBpdGVyLT52YWx1ZTsKICAg
ICBtX21lZGlhU291cmNlcy5yZW1vdmUoaXRlcik7Ci0KLSAgICAvLyBSZW1vdmUgdGhlIHBlbmRp
bmcgYWN0aXZpdHkgYWRkZWQgaW4gcmVnaXN0ZXJNZWRpYVNvdXJjZVVSTCgpLgotICAgIHNvdXJj
ZS0+dW5zZXRQZW5kaW5nQWN0aXZpdHkoc291cmNlLmdldCgpKTsKKyAgICBzb3VyY2UtPnJlbW92
ZWRGcm9tUmVnaXN0cnkoKTsKIH0KIAotTWVkaWFTb3VyY2UqIE1lZGlhU291cmNlUmVnaXN0cnk6
Omxvb2t1cE1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgdXJsKQorVVJMUmVnaXN0cmFibGUqIE1l
ZGlhU291cmNlUmVnaXN0cnk6Omxvb2t1cChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBtX21lZGlhU291cmNlcy5nZXQodXJsKS5n
ZXQoKTsKKyAgICByZXR1cm4gbV9tZWRpYVNvdXJjZXMuZ2V0KHVybCk7Cit9CisKK01lZGlhU291
cmNlUmVnaXN0cnk6Ok1lZGlhU291cmNlUmVnaXN0cnkoKQoreworICAgIEhUTUxNZWRpYVNvdXJj
ZTo6c2V0UmVnaXN0cnkodGhpcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdp
c3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJl
Z2lzdHJ5LmgKaW5kZXggOTZkYTZiMzQ3YzcwYzUxMWNiNDY4ZmVkMjE3MjcyOTcxNjY3NTM3NC4u
NDZjMjRkNGUwMzA1ZjZkZGRlOTFjZjRlODQ0MWY0NzdjOTY0OGE2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5
LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNs
dWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC00
MCwyMSArNDEsMjEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsKLWNsYXNz
IE1lZGlhU291cmNlOworY2xhc3MgTWVkaWFTb3VyY2VCYXNlOwogCi1jbGFzcyBNZWRpYVNvdXJj
ZVJlZ2lzdHJ5IHsKK2NsYXNzIE1lZGlhU291cmNlUmVnaXN0cnkgOiBwdWJsaWMgVVJMUmVnaXN0
cnkgewogcHVibGljOgogICAgIC8vIFJldHVybnMgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgTWVkaWFT
b3VyY2VSZWdpc3RyeS4KICAgICBzdGF0aWMgTWVkaWFTb3VyY2VSZWdpc3RyeSYgcmVnaXN0cnko
KTsKIAogICAgIC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lm
aWVkIG1lZGlhIHNvdXJjZS4KLSAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwoY29uc3Qg
S1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKLSAgICB2b2lkIHVucmVnaXN0ZXJNZWRp
YVNvdXJjZVVSTChjb25zdCBLVVJMJik7Ci0KLSAgICBNZWRpYVNvdXJjZSogbG9va3VwTWVkaWFT
b3VyY2UoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVSTChT
ZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmLCBVUkxSZWdpc3RyYWJsZSopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFVSTFJlZ2lzdHJhYmxlKiBsb29rdXAoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7
CiAKIHByaXZhdGU6Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZT4gPiBt
X21lZGlhU291cmNlczsKKyAgICBNZWRpYVNvdXJjZVJlZ2lzdHJ5KCk7CisgICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZUJhc2U+ID4gbV9tZWRpYVNvdXJjZXM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZmY4MGRmNTQ3NDRhNGEzMTM0ODljMjU2
NzBhNzJkNjUxNDkzZWUyMS4uYWY3NjdlZjQwNDIyNTFiYjNiOGI5MmQyYzc3ZGM5YWFmYmQ5MzRi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzMsMjIgKzMzLDMyIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlNv
dXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8
d3RmL1VpbnQ4QXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKyNpbmNsdWRl
IDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1Jl
ZlB0cjxTb3VyY2VCdWZmZXI+IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKFBhc3NPd25QdHI8U291cmNl
QnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwgUGFzc1JlZlB0cjxNZWRpYVNvdXJj
ZT4gc291cmNlKQorUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+IFNvdXJjZUJ1ZmZlcjo6Y3JlYXRl
KFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSwgTWVk
aWFTb3VyY2UqIHNvdXJjZSwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRl
LCBzb3VyY2UpKTsKKyAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBzb3VyY2VCdWZmZXIoYWRvcHRS
ZWYobmV3IFNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRlLCBzb3VyY2UsIGFzeW5jRXZl
bnRRdWV1ZSkpKTsKKyAgICBzb3VyY2VCdWZmZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBzb3VyY2VCdWZmZXIucmVsZWFzZSgpOwogfQogCi1Tb3VyY2VCdWZmZXI6OlNvdXJjZUJ1
ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUs
IFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IHNvdXJjZSkKLSAgICA6IG1fcHJpdmF0ZShzb3VyY2VC
dWZmZXJQcml2YXRlKQorU291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBNZWRpYVNvdXJjZSogc291cmNl
LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KHNvdXJjZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9wcml2YXRlKHNv
dXJjZUJ1ZmZlclByaXZhdGUpCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCisgICAgLCBtX2FzeW5j
RXZlbnRRdWV1ZShhc3luY0V2ZW50UXVldWUpCisgICAgLCBtX3VwZGF0aW5nKGZhbHNlKQogICAg
ICwgbV90aW1lc3RhbXBPZmZzZXQoMCkKKyAgICAsIG1fYXBwZW5kQnVmZmVyVGltZXIodGhpcywg
JlNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCkKIHsKICAgICBBU1NFUlQobV9w
cml2YXRlKTsKICAgICBBU1NFUlQobV9zb3VyY2UpOwpAQCAtNTYsNiArNjYsNyBAQCBTb3VyY2VC
dWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJj
ZUJ1ZmZlclByaXZhdGUsCiAKIFNvdXJjZUJ1ZmZlcjo6flNvdXJjZUJ1ZmZlcigpCiB7CisgICAg
QVNTRVJUKGlzUmVtb3ZlZCgpKTsKIH0KIAogUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBTb3VyY2VC
dWZmZXI6OmJ1ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApAQCAtODgsMTEgKzk5LDkg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNldFRpbWVzdGFtcE9mZnNldChkb3VibGUgb2Zmc2V0LCBF
eGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBh
dHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3Rh
dGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoaXNFbmRlZCgpKSB7Ci0g
ICAgICAgIC8vIDQuMSBTZXQgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQg
bWVkaWEgc291cmNlIHRvICJvcGVuIgotICAgICAgICAvLyA0LjIgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNv
dXJjZS4KLSAgICAgICAgbV9zb3VyY2UtPnNldFJlYWR5U3RhdGUoTWVkaWFTb3VyY2U6Om9wZW5L
ZXl3b3JkKCkpOwotICAgIH0KKyAgICAvLyA0LjEgU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0
ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKKyAgICAvLyA0LjIgUXVldWUg
YSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZS4KKyAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CiAK
ICAgICAvLyA1LiBJZiB0aGlzIG9iamVjdCBpcyB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIGEgbWVk
aWEgc2VnbWVudCB0byBiZSBhcHBlbmRlZCwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VS
UgogICAgIC8vIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KQEAgLTEwNSw0OSArMTE0LDc1IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzZXRUaW1lc3RhbXBPZmZzZXQoZG91YmxlIG9mZnNldCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjphcHBlbmQoUGFzc1JlZlB0cjxVaW50OEFycmF5PiBkYXRhLCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXIoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gU291cmNlQnVm
ZmVyLmFwcGVuZCgpIHN0ZXBzIGZyb20gT2N0b2JlciAxc3QgdmVyc2lvbiBvZiB0aGUgTWVkaWEg
U291cmNlIEV4dGVuc2lvbnMgc3BlYy4KLSAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0
bWwtbWVkaWEvcmF3LWZpbGUvN2JhYjY2MzY4ZjJjL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Uu
aHRtbCNkb20tYXBwZW5kCi0KLSAgICAvLyAyLiBJZiBkYXRhIGlzIG51bGwgdGhlbiB0aHJvdyBh
biBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICAvLyBTZWN0aW9uIDMuMiBhcHBlbmRCdWZmZXIoKQorICAgIC8vIGh0dHBzOi8vZHZjcy53My5v
cmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZlci1hcHBlbmRCdWZmZXItdm9pZC1BcnJheUJ1ZmZlclZp
ZXctZGF0YQorICAgIC8vIDEuIElmIGRhdGEgaXMgbnVsbCB0aGVuIHRocm93IGFuIElOVkFMSURf
QUNDRVNTX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGlmICghZGF0
YSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIC8vIDMuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cKLSAg
ICAvLyAgICBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0
ZXBzLgotICAgIGlmIChpc1JlbW92ZWQoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGFwcGVuZEJ1ZmZlckludGVybmFsKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhLT5kYXRhKCkpLCBkYXRhLT5ieXRlTGVuZ3Ro
KCksIGVjKTsKK30KIAotICAgIC8vIDUuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBt
ZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKLSAgICBpZiAoaXNFbmRlZCgpKSB7Ci0gICAgICAgIC8vIDUuMS4gU2V0IHRoZSBy
ZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCi0gICAgICAgIC8v
IDUuMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3Bl
biBhdCBtZWRpYSBzb3VyY2UuCi0gICAgICAgIG1fc291cmNlLT5zZXRSZWFkeVN0YXRlKE1lZGlh
U291cmNlOjpvcGVuS2V5d29yZCgpKTsKK3ZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXIo
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIC8vIFNlY3Rpb24gMy4yIGFwcGVuZEJ1ZmZlcigpCisgICAgLy8gaHR0cHM6Ly9kdmNzLncz
Lm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLWFwcGVuZEJ1ZmZlci12b2lkLUFycmF5QnVmZmVy
Vmlldy1kYXRhCisgICAgLy8gMS4gSWYgZGF0YSBpcyBudWxsIHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFk
YXRhKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgLy8gU3RlcHMgNiAmIGJleW9uZCBhcmUgaGFuZGxlZCBieSB0aGUgcHJp
dmF0ZSBpbXBsZW1lbnRhdGlvbi4KLSAgICBtX3ByaXZhdGUtPmFwcGVuZChkYXRhLT5kYXRhKCks
IGRhdGEtPmxlbmd0aCgpKTsKKyAgICBhcHBlbmRCdWZmZXJJbnRlcm5hbChzdGF0aWNfY2FzdDx1
bnNpZ25lZCBjaGFyKj4oZGF0YS0+YmFzZUFkZHJlc3MoKSksIGRhdGEtPmJ5dGVMZW5ndGgoKSwg
ZWMpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgLy8gU2VjdGlvbiAzLjIgYWJvcnQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8gaHR0cHM6
Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLWFib3J0LXZvaWQKICAgICAvLyAx
LiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMg
YXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlCiAgICAgLy8gICAgdGhlbiB0aHJv
dyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgIC8vIDIuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlh
IHNvdXJjZSBpcyBub3QgaW4gdGhlICJvcGVuIiBzdGF0ZQogICAgIC8vICAgIHRoZW4gdGhyb3cg
YW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICBpZiAoaXNSZW1vdmVkKCkgfHwgIWlzT3BlbigpKSB7CisgICAgaWYgKGlzUmVtb3ZlZCgpIHx8
ICFtX3NvdXJjZS0+aXNPcGVuKCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIu
dXBkYXRpbmcgYXR0cmlidXRlIGVxdWFscyB0cnVlLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOiAuLi4KKyAgICBhYm9ydElmVXBkYXRpbmcoKTsKKwogICAgIC8vIDQuIFJ1biB0aGUgcmVz
ZXQgcGFyc2VyIHN0YXRlIGFsZ29yaXRobS4KICAgICBtX3ByaXZhdGUtPmFib3J0KCk7CisKKyAg
ICAvLyBGSVhNRSgyMjk0MDgpIEFkZCBzdGVwcyA1LTYgdXBkYXRlIGFwcGVuZFdpbmRvd1N0YXJ0
ICYgYXBwZW5kV2luZG93RW5kLgorfQorCisKK3ZvaWQgU291cmNlQnVmZmVyOjphYm9ydElmVXBk
YXRpbmcoKQoreworICAgIC8vIFNlY3Rpb24gMy4yIGFib3J0KCkgbWV0aG9kIHN0ZXAgMyBzdWJz
dGVwcy4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
ZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXIt
YWJvcnQtdm9pZAorCisgICAgaWYgKCFtX3VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyAzLjEuIEFib3J0IHRoZSBidWZmZXIgYXBwZW5kIGFuZCBzdHJlYW0gYXBwZW5kIGxvb3Ag
YWxnb3JpdGhtcyBpZiB0aGV5IGFyZSBydW5uaW5nLgorICAgIG1fYXBwZW5kQnVmZmVyVGltZXIu
c3RvcCgpOworICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKKworICAgIC8vIDMuMi4g
U2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCisgICAgbV91cGRhdGluZyA9IGZh
bHNlOworCisgICAgLy8gMy4zLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBu
YW1lZCBhYm9ydCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVu
dChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CisKKyAgICAvLyAzLjQuIFF1ZXVlIGEgdGFzayB0
byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZWVuZCBhdCB0aGlzIFNvdXJjZUJ1ZmZl
ciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRlZW5kRXZlbnQp
OwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpCkBAIC0x
NTYsNyArMTkxLDM4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNl
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRlLT5yZW1vdmVkRnJvbU1lZGlhU291
cmNlKCk7Ci0gICAgbV9zb3VyY2UuY2xlYXIoKTsKKyAgICBtX3NvdXJjZSA9IDA7CisgICAgbV9h
c3luY0V2ZW50UXVldWUgPSAwOworfQorCitib29sIFNvdXJjZUJ1ZmZlcjo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zb3VyY2U7Cit9CisKK3ZvaWQgU291cmNl
QnVmZmVyOjpzdG9wKCkKK3sKKyAgICBtX2FwcGVuZEJ1ZmZlclRpbWVyLnN0b3AoKTsKK30KKwor
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogU291cmNlQnVmZmVyOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgU291cmNlQnVmZmVyOjppbnRl
cmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZlbnROYW1lcygpLmludGVyZmFjZUZv
clNvdXJjZUJ1ZmZlcjsKK30KKworRXZlbnRUYXJnZXREYXRhKiBTb3VyY2VCdWZmZXI6OmV2ZW50
VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZl
bnRUYXJnZXREYXRhKiBTb3VyY2VCdWZmZXI6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCit7Cisg
ICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKIH0KIAogYm9vbCBTb3VyY2VCdWZmZXI6Omlz
UmVtb3ZlZCgpIGNvbnN0CkBAIC0xNjQsMTYgKzIzMCw3NCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6
aXNSZW1vdmVkKCkgY29uc3QKICAgICByZXR1cm4gIW1fc291cmNlOwogfQogCi1ib29sIFNvdXJj
ZUJ1ZmZlcjo6aXNPcGVuKCkgY29uc3QKK3ZvaWQgU291cmNlQnVmZmVyOjpzY2hlZHVsZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQogewotICAgIEFTU0VSVChtX3NvdXJjZSk7
Ci0gICAgcmV0dXJuIG1fc291cmNlLT5yZWFkeVN0YXRlKCkgPT0gTWVkaWFTb3VyY2U6Om9wZW5L
ZXl3b3JkKCk7CisgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsKKworICAgIFJlZlB0cjxF
dmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKTsKKyAg
ICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVl
dWVFdmVudChldmVudC5yZWxlYXNlKCkpOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlcjo6aXNFbmRl
ZCgpIGNvbnN0Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVySW50ZXJuYWwodW5zaWdu
ZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
QVNTRVJUKG1fc291cmNlKTsKLSAgICByZXR1cm4gbV9zb3VyY2UtPnJlYWR5U3RhdGUoKSA9PSBN
ZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCk7CisgICAgLy8gU2VjdGlvbiAzLjIgYXBwZW5kQnVm
ZmVyKCkKKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
ZGVmYXVsdC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXIt
YXBwZW5kQnVmZmVyLXZvaWQtQXJyYXlCdWZmZXJWaWV3LWRhdGEKKworICAgIC8vIFN0ZXAgMSBp
cyBlbmZvcmNlZCBieSB0aGUgY2FsbGVyLgorICAgIC8vIDIuIElmIHRoaXMgb2JqZWN0IGhhcyBi
ZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVu
dCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIDMuIElmIHRoZSB1cGRhdGluZyBhdHRyaWJ1
dGUgZXF1YWxzIHRydWUsIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9u
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkgfHwgbV91cGRhdGlu
ZykgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgLy8gNC4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJl
bnQgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0YXRlIHRoZW4gcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHM6IC4uLgorICAgIG1fc291cmNlLT5vcGVuSWZJbkVuZGVkU3RhdGUoKTsKKwor
ICAgIC8vIFN0ZXBzIDUtNgorCisgICAgLy8gNy4gQWRkIGRhdGEgdG8gdGhlIGVuZCBvZiB0aGUg
aW5wdXQgYnVmZmVyLgorICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuYXBwZW5kKGRhdGEsIHNpemUp
OworCisgICAgLy8gOC4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gdHJ1ZS4KKyAgICBt
X3VwZGF0aW5nID0gdHJ1ZTsKKworICAgIC8vIDkuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2lt
cGxlIGV2ZW50IG5hbWVkIHVwZGF0ZXN0YXJ0IGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4K
KyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVzdGFydEV2ZW50KTsKKworICAg
IC8vIDEwLiBBc3luY2hyb25vdXNseSBydW4gdGhlIGJ1ZmZlciBhcHBlbmQgYWxnb3JpdGhtLgor
ICAgIG1fYXBwZW5kQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFNvdXJj
ZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+KikKK3sK
KyAgICBBU1NFUlQobV91cGRhdGluZyk7CisKKyAgICAvLyBTZWN0aW9uIDMuNS40IEJ1ZmZlciBB
cHBlbmQgQWxnb3JpdGhtCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlh
L3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3NvdXJjZWJ1
ZmZlci1idWZmZXItYXBwZW5kCisKKyAgICAvLyAxLiBSdW4gdGhlIHNlZ21lbnQgcGFyc2VyIGxv
b3AgYWxnb3JpdGhtLgorICAgIC8vIFN0ZXAgMiBkb2Vzbid0IGFwcGx5IHNpbmNlIHdlIHJ1biBT
dGVwIDEgc3luY2hyb25vdXNseSBoZXJlLgorICAgIHNpemVfdCBhcHBlbmRTaXplID0gbV9wZW5k
aW5nQXBwZW5kRGF0YS5zaXplKCk7CisgICAgaWYgKCFhcHBlbmRTaXplKSB7CisgICAgICAgIC8v
IFJlc2l6ZSBidWZmZXIgZm9yIDAgYnl0ZSBhcHBlbmRzIHNvIHdlIGFsd2F5cyBoYXZlIGEgdmFs
aWQgcG9pbnRlci4KKyAgICAgICAgLy8gV2UgbmVlZCB0byBjb252ZXkgYWxsIGFwcGVuZHMsIGV2
ZW4gMCBieXRlIG9uZXMgdG8gfG1fcHJpdmF0ZXwgc28KKyAgICAgICAgLy8gdGhhdCBpdCBjYW4g
Y2xlYXIgaXRzIGVuZCBvZiBzdHJlYW0gc3RhdGUgaWYgbmVjZXNzYXJ5LgorICAgICAgICBtX3Bl
bmRpbmdBcHBlbmREYXRhLnJlc2l6ZSgxKTsKKyAgICB9CisgICAgbV9wcml2YXRlLT5hcHBlbmQo
bV9wZW5kaW5nQXBwZW5kRGF0YS5kYXRhKCksIGFwcGVuZFNpemUpOworCisgICAgLy8gMy4gU2V0
IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCisgICAgbV91cGRhdGluZyA9IGZhbHNl
OworICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKKworICAgIC8vIDQuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZSBhdCB0aGlzIFNvdXJjZUJ1
ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRlRXZlbnQp
OworCisgICAgLy8gNS4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQg
dXBkYXRlZW5kIGF0IHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50
KGV2ZW50TmFtZXMoKS51cGRhdGVlbmRFdmVudCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCmluZGV4IGEzNWUzMjVjYTEzODk3YTBlZDgyZWMxMmY3YTA0MzI2YzdjYjM3YjAuLjE2ZTJh
ZDU2YTRjNTlmNzZhMzU3YjI0MDMyYmVmY2M3ZjYyYjE0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNDUgKzMzLDgwIEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0
LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEdlbmVyaWNFdmVudFF1ZXVlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBTb3VyY2VCdWZm
ZXJQcml2YXRlOwogY2xhc3MgVGltZVJhbmdlczsKIAotY2xhc3MgU291cmNlQnVmZmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyPiB7CitjbGFzcyBTb3VyY2VCdWZmZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJs
aWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVm
ZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTb3VyY2VCdWZmZXI+IGNyZWF0ZShQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+
LCBNZWRpYVNvdXJjZSosIEdlbmVyaWNFdmVudFF1ZXVlKik7CiAKICAgICB2aXJ0dWFsIH5Tb3Vy
Y2VCdWZmZXIoKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlci5pZGwgbWV0aG9kcworICAgIGJvb2wg
dXBkYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0aW5nOyB9CiAgICAgUGFzc1JlZlB0cjxU
aW1lUmFuZ2VzPiBidWZmZXJlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgZG91YmxlIHRp
bWVzdGFtcE9mZnNldCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJs
ZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8VWludDhBcnJh
eT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYXBwZW5kQnVmZmVyKFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXI+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFwcGVuZEJ1
ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdm9pZCBhYm9ydElmVXBkYXRp
bmcoKTsKICAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKIAorICAgIC8vIEFjdGl2
ZURPTU9iamVjdCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKwor
ICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3QgT1ZFUlJJREU7
CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj46OnJlZjsKKyAgICB1c2luZyBS
ZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj46OmRlcmVmOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRXZl
bnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFy
Z2V0RGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVF
dmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKwogcHJpdmF0ZToKLSAgICBTb3VyY2VCdWZmZXIo
UGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4p
OworICAgIFNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+LCBNZWRp
YVNvdXJjZSosIEdlbmVyaWNFdmVudFF1ZXVlKik7CiAKICAgICBib29sIGlzUmVtb3ZlZCgpIGNv
bnN0OwotICAgIGJvb2wgaXNPcGVuKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0VuZGVkKCkgY29uc3Q7
CisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKTsK
KworICAgIHZvaWQgYXBwZW5kQnVmZmVySW50ZXJuYWwodW5zaWduZWQgY2hhciosIHVuc2lnbmVk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhcHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVy
PFNvdXJjZUJ1ZmZlcj4qKTsKIAogICAgIE93blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBtX3By
aXZhdGU7Ci0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBNZWRpYVNvdXJj
ZSogbV9zb3VyY2U7CisgICAgR2VuZXJpY0V2ZW50UXVldWUqIG1fYXN5bmNFdmVudFF1ZXVlOwor
ICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIAorICAgIGJvb2wgbV91cGRh
dGluZzsKICAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CisKKyAgICBWZWN0b3I8dW5zaWdu
ZWQgY2hhcj4gbV9wZW5kaW5nQXBwZW5kRGF0YTsKKyAgICBUaW1lcjxTb3VyY2VCdWZmZXI+IG1f
YXBwZW5kQnVmZmVyVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmlkbAppbmRleCA3MWYyYjZiNjg0NDYwZDE1YzNhN2VmYjI0NjRmZTY3ZDg5
MmYwNDNjLi5jMTkwYjFjMjdjMDVhMTk1NDZkZGVlZjlhMWI4ZTc4ODllYzZkZDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRs
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMCw5ICszMCwxNCBAQAogIAogWwogICAgIENvbmRpdGlvbmFsPU1FRElBX1NPVVJDRSwKLSAg
ICBJbnRlcmZhY2VOYW1lPVdlYktpdFNvdXJjZUJ1ZmZlcgotXSBpbnRlcmZhY2UgU291cmNlQnVm
ZmVyIHsKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKKyAgICBBY3RpdmVET01PYmplY3QsCisgICAg
RXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0CitdIGludGVyZmFjZSBT
b3VyY2VCdWZmZXIgOiBFdmVudFRhcmdldCB7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiB1cGRhdGluZzsKKyAgCiAgICAgLy8gUmV0dXJucyB0aGUgdGltZSByYW5nZXMgYnVmZmVy
ZWQuCiAgICAgW0dldHRlclJhaXNlc0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFRpbWVS
YW5nZXMgYnVmZmVyZWQ7CiAKQEAgLTQwLDcgKzQ1LDggQEAKICAgICBbU2V0dGVyUmFpc2VzRXhj
ZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHRpbWVzdGFtcE9mZnNldDsKIAogICAgIC8vIEFwcGVu
ZCBzZWdtZW50IGRhdGEuCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBhcHBlbmQoVWludDhB
cnJheSBkYXRhKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFwcGVuZEJ1ZmZlcihBcnJh
eUJ1ZmZlciBkYXRhKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFwcGVuZEJ1ZmZlcihB
cnJheUJ1ZmZlclZpZXcgZGF0YSk7CiAKICAgICAvLyBBYm9ydCB0aGUgY3VycmVudCBzZWdtZW50
IGFwcGVuZCBzZXF1ZW5jZS4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFib3J0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXJMaXN0LmNwcAppbmRleCAxMWRkOTFjMjcwYWZmNmY2YWFjY2EwN2FkYjFiNmNiNjM0ODRhODA5
Li4yNjRhZTRlYjYyZTIyY2Y0NWUzNjhiODNmYjAyYWUwNTAyOTlmNzFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTM5LDUyICszOSwzOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNvdXJjZUJ1ZmZl
ckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJpY0V2ZW50UXVldWUqIGFz
eW5jRXZlbnRRdWV1ZSkKK1NvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRR
dWV1ZSkKICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQogICAgICwgbV9h
c3luY0V2ZW50UXVldWUoYXN5bmNFdmVudFF1ZXVlKQogewogfQogCi11bnNpZ25lZCBsb25nIFNv
dXJjZUJ1ZmZlckxpc3Q6Omxlbmd0aCgpIGNvbnN0CitTb3VyY2VCdWZmZXJMaXN0Ojp+U291cmNl
QnVmZmVyTGlzdCgpCiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19Ci0KLVNvdXJjZUJ1
ZmZlciogU291cmNlQnVmZmVyTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAg
ICBpZiAoaW5kZXggPj0gbV9saXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIG1fbGlzdFtpbmRleF0uZ2V0KCk7CisgICAgQVNTRVJUKG1fbGlzdC5pc0VtcHR5KCkpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmFkZChQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4g
YnVmZmVyKQogewogICAgIG1fbGlzdC5hcHBlbmQoYnVmZmVyKTsKLSAgICBjcmVhdGVBbmRGaXJl
RXZlbnQoZXZlbnROYW1lcygpLndlYmtpdGFkZHNvdXJjZWJ1ZmZlckV2ZW50KTsKKyAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5hZGRzb3VyY2VidWZmZXJFdmVudCk7CiB9CiAKLWJvb2wg
U291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFNvdXJjZUJ1ZmZlciogYnVmZmVyKQordm9pZCBTb3Vy
Y2VCdWZmZXJMaXN0OjpyZW1vdmUoU291cmNlQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgc2l6ZV90
IGluZGV4ID0gbV9saXN0LmZpbmQoYnVmZmVyKTsKICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGJ1ZmZlci0+cmVtb3ZlZEZyb21NZWRpYVNv
dXJjZSgpOworICAgICAgICByZXR1cm47CiAgICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAg
Y3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRyZW1vdmVzb3VyY2VidWZmZXJF
dmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
cmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmNs
ZWFyKCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGlzdC5zaXplKCk7ICsraSkK
LSAgICAgICAgbV9saXN0W2ldLT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CiAgICAgbV9saXN0
LmNsZWFyKCk7Ci0gICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRyZW1v
dmVzb3VyY2VidWZmZXJFdmVudCk7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkucmVt
b3Zlc291cmNlYnVmZmVyRXZlbnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0
ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3ZvaWQgU291cmNl
QnVmZmVyTGlzdDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkK
IHsKICAgICBBU1NFUlQobV9hc3luY0V2ZW50UXVldWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IDBkNDc2
NGUxM2QxMWExNDBlODkxOTFhNTc5YTdmY2QwNGViMTk0ZWUuLjhlZDM0N2YyNjE5YzA1MWMwY2Fm
ODE2M2NhYTQ5MTE2MmRlOTI0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQyLDE5ICs0MywyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKIAotY2xhc3Mg
U291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBw
dWJsaWMgRXZlbnRUYXJnZXQgeworY2xhc3MgU291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMg
RXZlbnRUYXJnZXQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZl
ckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmljRXZl
bnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQsIGFzeW5jRXZlbnRRdWV1ZSkpOwogICAgIH0K
LSAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJMaXN0KCkgeyB9CisgICAgdmlydHVhbCB+U291cmNl
QnVmZmVyTGlzdCgpOwogCi0gICAgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKLSAgICBT
b3VyY2VCdWZmZXIqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQorICAgIFNvdXJjZUJ1
ZmZlciogaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCB7IHJldHVybiAoaW5kZXggPCBt
X2xpc3Quc2l6ZSgpKSA/IG1fbGlzdFtpbmRleF0uZ2V0KCkgOiAwOyB9CiAKICAgICB2b2lkIGFk
ZChQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlcj4pOwotICAgIGJvb2wgcmVtb3ZlKFNvdXJjZUJ1ZmZl
ciopOworICAgIHZvaWQgcmVtb3ZlKFNvdXJjZUJ1ZmZlciopOworICAgIGJvb2wgY29udGFpbnMo
U291cmNlQnVmZmVyKiBidWZmZXIpIHsgcmV0dXJuIG1fbGlzdC5maW5kKGJ1ZmZlcikgIT0gbm90
Rm91bmQ7IH0KICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZh
Y2UKQEAgLTcxLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBTb3VyY2VCdWZm
ZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBHZW5lcmljRXZlbnRRdWV1ZSopOwogCi0g
ICAgdm9pZCBjcmVhdGVBbmRGaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9p
ZCBzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CkBAIC04Niw0ICs4OCw1IEBA
IHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuaWRsCmluZGV4IDViMTRhZDhkMGQ2ZWE5OWU3NjQ0NjNhZmQ2ODFhOWY5NjMyMDE3MmIu
LmI4NmY2YWFmNmZmMGEzYWVhMTdiMTQ5YjcyODM3MWUxMDM1NTk5MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0Lmlk
bApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzAsMTkgKzMwLDEyIEBACiAgCiBbCiAgICAgQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFLAor
ICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIEV2ZW50VGFyZ2V0LAotICAgIEludGVyZmFjZU5h
bWU9V2ViS2l0U291cmNlQnVmZmVyTGlzdAotXSBpbnRlcmZhY2UgU291cmNlQnVmZmVyTGlzdCB7
CisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQKK10gaW50ZXJmYWNlIFNvdXJjZUJ1ZmZlckxpc3QgOiBFdmVudFRhcmdldCB7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgIGdldHRl
ciBTb3VyY2VCdWZmZXIgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLQotICAgIC8vIEV2ZW50
VGFyZ2V0IGludGVyZmFjZQotICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKLSAg
ICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgW1JhaXNlc0V4
Y2VwdGlvbl0gYm9vbGVhbiBkaXNwYXRjaEV2ZW50KEV2ZW50IGV2ZW50KTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjgxMDFkZjE1ZjczYzQ4ZTUyOGQyZjVkYjA3MWU4NGM5NTZiODQ4Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJM
TWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVVJMTWVkaWFTb3VyY2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNp
bmNsdWRlICJET01VUkwuaCIKKyNpbmNsdWRlICJNZWRpYVNvdXJjZUJhc2UuaCIKKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBVUkxN
ZWRpYVNvdXJjZTo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU291cmNlQmFzZSogc291cmNlKQoreworICAgIC8vIFNp
bmNlIFdlYldvcmtlcnMgY2Fubm90IG9idGFpbiBNZWRpYVNvdXJjZSBvYmplY3RzLCB3ZSBzaG91
bGQgYmUgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgfHwgIXNvdXJjZSkKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworICAgIHJldHVybiBET01VUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBzb3VyY2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9V
UkxNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxN
ZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NTVlZmI0NWQ3MDNmY2RiY2VjNDIxZDc1NDQ3Mjkx
OTczYzQxYTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1VSTE1lZGlhU291cmNlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVVJMTWVkaWFT
b3VyY2VfaAorI2RlZmluZSBVUkxNZWRpYVNvdXJjZV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBNZWRpYVNvdXJjZUJhc2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
CitjbGFzcyBVUkxNZWRpYVNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cmluZyBjcmVh
dGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU291cmNlQmFzZSopOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjllNWZlODNjZDE0NjZmZWJhYzZmOWFlNThiNTNkZjZlMmNhNTY2ZTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1l
ZGlhU291cmNlLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TT1VS
Q0UKK10KK3BhcnRpYWwgaW50ZXJmYWNlIFVSTCB7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3Ry
aW5nIGNyZWF0ZU9iamVjdFVSTChNZWRpYVNvdXJjZT8gc291cmNlKTsKKyAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0
YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKFdlYktpdE1lZGlhU291cmNlPyBzb3VyY2Up
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0TWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9X
ZWJLaXRNZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4YzJlYzJhZmIzNmZmNjViZmIzN2M4
OTgzZDFlMGU0ZTBlNWIwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMjA2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhU291cmNlLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCisjaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlNvdXJjZUJ1
ZmZlclByaXZhdGUuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSA8d3RmL1Vp
bnQ4QXJyYXkuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFdlYktpdE1l
ZGlhU291cmNlPiBXZWJLaXRNZWRpYVNvdXJjZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBtZWRpYVNvdXJj
ZShhZG9wdFJlZihuZXcgV2ViS2l0TWVkaWFTb3VyY2UoY29udGV4dCkpKTsKKyAgICBtZWRpYVNv
dXJjZS0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1lZGlhU291cmNlLnJlbGVhc2Uo
KTsKK30KKworV2ViS2l0TWVkaWFTb3VyY2U6OldlYktpdE1lZGlhU291cmNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBNZWRpYVNvdXJjZUJhc2UoY29udGV4dCkKK3sK
KyAgICBtX3NvdXJjZUJ1ZmZlcnMgPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBhc3luY0V2ZW50UXVldWUoKSk7CisgICAgbV9hY3RpdmVT
b3VyY2VCdWZmZXJzID0gV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgYXN5bmNFdmVudFF1ZXVlKCkpOworfQorCitXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0KiBXZWJLaXRNZWRpYVNvdXJjZTo6c291cmNlQnVmZmVycygpCit7CisgICAgcmV0dXJu
IG1fc291cmNlQnVmZmVycy5nZXQoKTsKK30KKworV2ViS2l0U291cmNlQnVmZmVyTGlzdCogV2Vi
S2l0TWVkaWFTb3VyY2U6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKQoreworICAgIC8vIEZJWE1FKDkx
NjQ5KTogc3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KKyAgICByZXR1cm4gbV9hY3RpdmVTb3VyY2VC
dWZmZXJzLmdldCgpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXIqIFdlYktpdE1lZGlhU291cmNl
OjphZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUv
dGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNkb20tYWRkc291cmNlYnVmZmVyCisg
ICAgLy8gMS4gSWYgdHlwZSBpcyBudWxsIG9yIGFuIGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKKyAgICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkgeworICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gMi4g
SWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgLi4uLCB0
aGVuIHRocm93IGEKKyAgICAvLyBOT1RfU1VQUE9SVEVEX0VSUiBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgorICAgIGlmICghaXNUeXBlU3VwcG9ydGVkKHR5cGUpKSB7CisgICAgICAg
IGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IC8vIDQuIElmIHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBub3QgaW4gdGhlICJvcGVuIiBz
dGF0ZSB0aGVuIHRocm93IGFuCisgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIWlzT3BlbigpKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIDUu
IENyZWF0ZSBhIG5ldyBTb3VyY2VCdWZmZXIgb2JqZWN0IGFuZCBhc3NvY2lhdGVkIHJlc291cmNl
cy4KKyAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZSh0eXBlKTsKKyAgICBWZWN0b3I8U3RyaW5n
PiBjb2RlY3MgPSBjb250ZW50VHlwZS5jb2RlY3MoKTsKKyAgICBPd25QdHI8U291cmNlQnVmZmVy
UHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0ZSA9IGNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUo
Y29udGVudFR5cGUudHlwZSgpLCBjb2RlY3MsIGVjKTsKKyAgICBpZiAoIXNvdXJjZUJ1ZmZlclBy
aXZhdGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZl
cj4gYnVmZmVyID0gV2ViS2l0U291cmNlQnVmZmVyOjpjcmVhdGUoc291cmNlQnVmZmVyUHJpdmF0
ZS5yZWxlYXNlKCksIHRoaXMpOworICAgIC8vIDYuIEFkZCB0aGUgbmV3IG9iamVjdCB0byBzb3Vy
Y2VCdWZmZXJzIGFuZCBmaXJlIGEgYWRkc291cmNlYnVmZmVyIG9uIHRoYXQgb2JqZWN0LgorICAg
IG1fc291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJz
LT5hZGQoYnVmZmVyKTsKKyAgICAvLyA3LiBSZXR1cm4gdGhlIG5ldyBvYmplY3QgdG8gdGhlIGNh
bGxlci4KKyAgICByZXR1cm4gYnVmZmVyLmdldCgpOworfQorCit2b2lkIFdlYktpdE1lZGlhU291
cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNlQnVmZmVyKiBidWZmZXIsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIC8vIDMuMSBodHRwOi8vZHZjcy53My5vcmcvaGcvaHRtbC1t
ZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1yZW1v
dmVzb3VyY2VidWZmZXIKKyAgICAvLyAxLiBJZiBzb3VyY2VCdWZmZXIgaXMgbnVsbCB0aGVuIHRo
cm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kCisgICAgLy8gYWJvcnQgdGhl
c2Ugc3RlcHMuCisgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAyLiBJZiBzb3VyY2VCdWZm
ZXJzIGlzIGVtcHR5IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFu
ZAorICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChpc0Nsb3NlZCgpIHx8ICFtX3Nv
dXJjZUJ1ZmZlcnMtPmxlbmd0aCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAzLiBJZiBzb3VyY2VCdWZmZXIgc3Bl
Y2lmaWVzIGFuIG9iamVjdCB0aGF0IGlzIG5vdCBpbiBzb3VyY2VCdWZmZXJzIHRoZW4KKyAgICAv
LyB0aHJvdyBhIE5PVF9GT1VORF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
KyAgICAvLyA2LiBSZW1vdmUgc291cmNlQnVmZmVyIGZyb20gc291cmNlQnVmZmVycyBhbmQgZmly
ZSBhIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudAorICAgIC8vIG9uIHRoYXQgb2JqZWN0LgorICAg
IGlmICghbV9zb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKSkgeworICAgICAgICBlYyA9IE5P
VF9GT1VORF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyA3LiBEZXN0cm95
IGFsbCByZXNvdXJjZXMgZm9yIHNvdXJjZUJ1ZmZlci4KKyAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZl
cnMtPnJlbW92ZShidWZmZXIpOworCisgICAgLy8gNC4gUmVtb3ZlIHRyYWNrIGluZm9ybWF0aW9u
IGZyb20gYXVkaW9UcmFja3MsIHZpZGVvVHJhY2tzLCBhbmQgdGV4dFRyYWNrcyBmb3IgYWxsIHRy
YWNrcworICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2VCdWZmZXIgYW5kIGZpcmUgYSBzaW1w
bGUgZXZlbnQgbmFtZWQgY2hhbmdlIG9uIHRoZSBtb2RpZmllZCBsaXN0cy4KKyAgICAvLyBGSVhN
RSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCisKKyAgICAvLyA1LiBJZiBzb3VyY2VC
dWZmZXIgaXMgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhlbiByZW1vdmUgaXQgZnJvbSB0aGF0
IGxpc3QgYW5kIGZpcmUgYQorICAgIC8vIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudCBvbiB0aGF0
IG9iamVjdC4KKyAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCit9
CisKK3ZvaWQgV2ViS2l0TWVkaWFTb3VyY2U6Om9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9t
aWNTdHJpbmcmIG9sZFN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKQoreworICAg
IGlmIChpc0Nsb3NlZCgpKSB7CisgICAgICAgIG1fc291cmNlQnVmZmVycy0+Y2xlYXIoKTsKKyAg
ICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5jbGVhcigpOworICAgICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VjbG9zZUV2ZW50KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChvbGRTdGF0ZSA9PSBvcGVuS2V5d29yZCgpICYmIG5ld1N0YXRl
ID09IGVuZGVkS2V5d29yZCgpKSB7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygp
LndlYmtpdHNvdXJjZWVuZGVkRXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKGlzT3BlbigpKSB7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtp
dHNvdXJjZW9wZW5FdmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK1ZlY3RvcjxS
ZWZQdHI8VGltZVJhbmdlcz4gPiBXZWJLaXRNZWRpYVNvdXJjZTo6YWN0aXZlUmFuZ2VzKCkgY29u
c3QKK3sKKyAgICBWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKG1fYWN0
aXZlU291cmNlQnVmZmVycy0+bGVuZ3RoKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5sZW5ndGgoKTsgKytpKQorICAgICAgICBhY3RpdmVSYW5n
ZXNbaV0gPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPml0ZW0oaSktPmJ1ZmZlcmVkKEFTU0VSVF9O
T19FWENFUFRJT04pOworCisgICAgcmV0dXJuIGFjdGl2ZVJhbmdlczsKK30KKworYm9vbCBXZWJL
aXRNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAg
ICAvLyBTZWN0aW9uIDIuMSBpc1R5cGVTdXBwb3J0ZWQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8g
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRpYVNvdXJjZS1pc1R5cGVTdXBwb3J0ZWQtYm9v
bGVhbi1ET01TdHJpbmctdHlwZQorICAgIC8vIDEuIElmIHR5cGUgaXMgYW4gZW1wdHkgc3RyaW5n
LCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBpZiAodHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ29udGVudFR5cGUgY29udGVudFR5
cGUodHlwZSk7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFtZXRlcigiY29k
ZWNzIik7CisKKyAgICAvLyAyLiBJZiB0eXBlIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBNSU1F
IHR5cGUgc3RyaW5nLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBpZiAoY29udGVudFR5cGUudHlw
ZSgpLmlzRW1wdHkoKSB8fCBjb2RlY3MuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAvLyAzLiBJZiB0eXBlIGNvbnRhaW5zIGEgbWVkaWEgdHlwZSBvciBtZWRpYSBzdWJ0
eXBlIHRoYXQgdGhlIE1lZGlhU291cmNlIGRvZXMgbm90IHN1cHBvcnQsIHRoZW4gcmV0dXJuIGZh
bHNlLgorICAgIC8vIDQuIElmIHR5cGUgY29udGFpbnMgYXQgYSBjb2RlYyB0aGF0IHRoZSBNZWRp
YVNvdXJjZSBkb2VzIG5vdCBzdXBwb3J0LCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICAvLyA1LiBJ
ZiB0aGUgTWVkaWFTb3VyY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgc3BlY2lmaWVkIGNvbWJpbmF0
aW9uIG9mIG1lZGlhIHR5cGUsIG1lZGlhIHN1YnR5cGUsIGFuZCBjb2RlY3MgdGhlbiByZXR1cm4g
ZmFsc2UuCisgICAgLy8gNi4gUmV0dXJuIHRydWUuCisgICAgcmV0dXJuIE1JTUVUeXBlUmVnaXN0
cnk6OmlzU3VwcG9ydGVkTWVkaWFTb3VyY2VNSU1FVHlwZShjb250ZW50VHlwZS50eXBlKCksIGNv
ZGVjcyk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgV2ViS2l0TWVkaWFTb3VyY2U6OmludGVy
ZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9y
V2ViS2l0TWVkaWFTb3VyY2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1l
ZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1l
ZGlhU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU3NWFlMzYyYWFiNjg4OGVlNDIyODU1MmExNDFkMmZi
MjA4Y2YyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJLaXRN
ZWRpYVNvdXJjZV9oCisjZGVmaW5lIFdlYktpdE1lZGlhU291cmNlX2gKKworI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJNZWRpYVNvdXJjZUJhc2UuaCIKKyNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlICJXZWJLaXRTb3VyY2VCdWZmZXIuaCIKKyNpbmNs
dWRlICJXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJLaXRNZWRpYVNvdXJjZSA6IHB1
YmxpYyBNZWRpYVNvdXJjZUJhc2UsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYktpdE1lZGlhU291cmNlKCkgeyB9CisK
KyAgICAvLyBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgbWV0aG9kcworICAgIFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3QqIHNvdXJjZUJ1ZmZlcnMoKTsKKyAgICBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KiBh
Y3RpdmVTb3VyY2VCdWZmZXJzKCk7CisgICAgV2ViS2l0U291cmNlQnVmZmVyKiBhZGRTb3VyY2VC
dWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCByZW1v
dmVTb3VyY2VCdWZmZXIoV2ViS2l0U291cmNlQnVmZmVyKiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHN0YXRpYyBib29sIGlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOworCisgICAg
Ly8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IGludGVyZmFjZU5hbWUoKSBjb25zdCBPVkVSUklERTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
TWVkaWFTb3VyY2VCYXNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VC
YXNlPjo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViS2l0TWVkaWFTb3VyY2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAgLy8gTWVkaWFTb3VyY2VCYXNlIGludGVy
ZmFjZQorICAgIHZpcnR1YWwgdm9pZCBvblJlYWR5U3RhdGVDaGFuZ2UoY29uc3QgQXRvbWljU3Ry
aW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWZWN0b3I8
UmVmUHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKCkgY29uc3QgT1ZFUlJJREU7CisKKyAg
ICBSZWZQdHI8V2ViS2l0U291cmNlQnVmZmVyTGlzdD4gbV9zb3VyY2VCdWZmZXJzOworICAgIFJl
ZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0PiBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJkM2ViZjdlZWJiMjlmZGYzODJjOWE2OTA1M2U4MGYwYWIwYjcxNTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dE1lZGlhU291cmNlLmlkbApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1NRURJ
QV9TT1VSQ0UsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIEV2ZW50VGFyZ2V0LAorICAgIEpT
R2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBDb25zdHJ1Y3RvciwKKyAgICBDb25zdHJ1Y3Rv
ckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKK10gaW50ZXJmYWNlIFdlYktpdE1lZGlh
U291cmNlIDogRXZlbnRUYXJnZXQgeworICAgIC8vIEFsbCB0aGUgc291cmNlIGJ1ZmZlcnMgY3Jl
YXRlZCBieSB0aGlzIG9iamVjdC4KKyAgICByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U291cmNl
QnVmZmVyTGlzdCBzb3VyY2VCdWZmZXJzOworCisgICAgLy8gU3Vic2V0IG9mIHNvdXJjZUJ1ZmZl
cnMgdGhhdCBwcm92aWRlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZC9lbmFibGVkIHRyYWNrcy4KKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U291cmNlQnVmZmVyTGlzdCBhY3RpdmVTb3VyY2VC
dWZmZXJzOworCisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSBk
dXJhdGlvbjsKKworICAgIFtSYWlzZXNFeGNlcHRpb25dIFdlYktpdFNvdXJjZUJ1ZmZlciBhZGRT
b3VyY2VCdWZmZXIoRE9NU3RyaW5nIHR5cGUpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQg
cmVtb3ZlU291cmNlQnVmZmVyKFdlYktpdFNvdXJjZUJ1ZmZlciBidWZmZXIpOworCisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRlOworICAgIAorICAgIFtSYWlzZXNF
eGNlcHRpb25dIHZvaWQgZW5kT2ZTdHJlYW0oW0RlZmF1bHQ9TnVsbFN0cmluZ10gb3B0aW9uYWwg
RE9NU3RyaW5nIGVycm9yKTsKKworICAgIHN0YXRpYyBib29sZWFuIGlzVHlwZVN1cHBvcnRlZCAo
RE9NU3RyaW5nIHR5cGUpOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1OTRi
MjhlODM0NWY4MmMxMmFmMjdlMzU5YmQzOWY0Y2Y2MDcwOTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAK
QEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0U291
cmNlQnVmZmVyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJX
ZWJLaXRNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+IFdlYktpdFNv
dXJjZUJ1ZmZlcjo6Y3JlYXRlKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNl
QnVmZmVyUHJpdmF0ZSwgUGFzc1JlZlB0cjxXZWJLaXRNZWRpYVNvdXJjZT4gc291cmNlKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0U291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlclBy
aXZhdGUsIHNvdXJjZSkpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXI6OldlYktpdFNvdXJjZUJ1
ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUs
IFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+IHNvdXJjZSkKKyAgICA6IG1fcHJpdmF0ZShz
b3VyY2VCdWZmZXJQcml2YXRlKQorICAgICwgbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV90aW1l
c3RhbXBPZmZzZXQoMCkKK3sKKyAgICBBU1NFUlQobV9wcml2YXRlKTsKKyAgICBBU1NFUlQobV9z
b3VyY2UpOworfQorCitXZWJLaXRTb3VyY2VCdWZmZXI6On5XZWJLaXRTb3VyY2VCdWZmZXIoKQor
eworfQorCitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IFdlYktpdFNvdXJjZUJ1ZmZlcjo6YnVmZmVy
ZWQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgLy8gU2VjdGlvbiAzLjEgYnVmZmVy
ZWQgYXR0cmlidXRlIHN0ZXBzLgorICAgIC8vIDEuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJl
bW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRp
YSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAgIElOVkFMSURfU1RBVEVfRVJSIGV4Y2Vw
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzUmVtb3ZlZCgpKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKwor
ICAgIC8vIDIuIFJldHVybiBhIG5ldyBzdGF0aWMgbm9ybWFsaXplZCBUaW1lUmFuZ2VzIG9iamVj
dCBmb3IgdGhlIG1lZGlhIHNlZ21lbnRzIGJ1ZmZlcmVkLgorICAgIHJldHVybiBtX3ByaXZhdGUt
PmJ1ZmZlcmVkKCk7Cit9CisKK2RvdWJsZSBXZWJLaXRTb3VyY2VCdWZmZXI6OnRpbWVzdGFtcE9m
ZnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXN0YW1wT2Zmc2V0OworfQorCit2b2lk
IFdlYktpdFNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSBvZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIFNlY3Rpb24gMy4xIHRpbWVzdGFtcE9mZnNldCBh
dHRyaWJ1dGUgc2V0dGVyIHN0ZXBzLgorICAgIC8vIDEuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVu
IHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBt
ZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAgIElOVkFMSURfU1RBVEVfRVJSIGV4
Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzUmVtb3ZlZCgpKSB7Cisg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRp
YSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBz
dGVwczoKKyAgICAvLyA0LjEgU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKKyAgICAvLyA0LjIgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNv
dXJjZS4KKyAgICBtX3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CisKKyAgICAvLyA1LiBJ
ZiB0aGlzIG9iamVjdCBpcyB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIGEgbWVkaWEgc2VnbWVudCB0
byBiZSBhcHBlbmRlZCwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUgorICAgIC8vIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIW1fcHJpdmF0ZS0+c2V0VGltZXN0YW1wT2Zm
c2V0KG9mZnNldCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIDYuIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHRvIHRoZSBu
ZXcgdmFsdWUuCisgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBvZmZzZXQ7Cit9CisKK3ZvaWQgV2Vi
S2l0U291cmNlQnVmZmVyOjphcHBlbmQoUGFzc1JlZlB0cjxVaW50OEFycmF5PiBkYXRhLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBTb3VyY2VCdWZmZXIuYXBwZW5kKCkgc3RlcHMgZnJv
bSBPY3RvYmVyIDFzdCB2ZXJzaW9uIG9mIHRoZSBNZWRpYSBTb3VyY2UgRXh0ZW5zaW9ucyBzcGVj
LgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS83YmFi
NjYzNjhmMmMvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI2RvbS1hcHBlbmQKKworICAg
IC8vIDIuIElmIGRhdGEgaXMgbnVsbCB0aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBl
eGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghZGF0YSkgeworICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIDMuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVm
ZmVycyBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cKKyAgICAvLyAgICBhbiBJ
TlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlm
IChpc1JlbW92ZWQoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gNS4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRl
IG9mIG1lZGlhIHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBzdGF0ZSB0aGVuIHJ1biB0aGUgZm9s
bG93aW5nIHN0ZXBzOgorICAgIC8vIDUuMS4gU2V0IHRoZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBv
ZiBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCisgICAgLy8gNS4yLiBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3VyY2VvcGVuIGF0IG1lZGlhIHNvdXJjZS4KKyAgICBt
X3NvdXJjZS0+b3BlbklmSW5FbmRlZFN0YXRlKCk7CisKKyAgICAvLyBTdGVwcyA2ICYgYmV5b25k
IGFyZSBoYW5kbGVkIGJ5IHRoZSBwcml2YXRlIGltcGxlbWVudGF0aW9uLgorICAgIG1fcHJpdmF0
ZS0+YXBwZW5kKGRhdGEtPmRhdGEoKSwgZGF0YS0+bGVuZ3RoKCkpOworfQorCit2b2lkIFdlYktp
dFNvdXJjZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gU2VjdGlv
biAzLjIgYWJvcnQoKSBtZXRob2Qgc3RlcHMuCisgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaGFz
IGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZQorICAgIC8vICAgIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAyLiBJZiB0aGUgcmVh
ZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgbm90IGluIHRo
ZSAib3BlbiIgc3RhdGUKKyAgICAvLyAgICB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJS
IGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlzUmVtb3ZlZCgpIHx8
ICFtX3NvdXJjZS0+aXNPcGVuKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDQuIFJ1biB0aGUgcmVzZXQgcGFyc2Vy
IHN0YXRlIGFsZ29yaXRobS4KKyAgICBtX3ByaXZhdGUtPmFib3J0KCk7Cit9CisKK3ZvaWQgV2Vi
S2l0U291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKK3sKKyAgICBpZiAoaXNS
ZW1vdmVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpOworICAgIG1fc291cmNlLmNsZWFyKCk7Cit9CisKK2Jvb2wgV2ViS2l0U291
cmNlQnVmZmVyOjppc1JlbW92ZWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9zb3VyY2U7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNmI5ZGZiMjE4NTM2NWYwYTFjZmU3ODcxZGQ2ZTAxNjkzMTViZTU2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VC
dWZmZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJLaXRTb3VyY2VCdWZmZXJfaAorI2Rl
ZmluZSBXZWJLaXRTb3VyY2VCdWZmZXJfaAorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKwor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CitjbGFzcyBUaW1lUmFuZ2VzOworY2xhc3MgV2Vi
S2l0TWVkaWFTb3VyY2U7CisKK2NsYXNzIFdlYktpdFNvdXJjZUJ1ZmZlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYktpdFNvdXJjZUJ1ZmZlcj4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBh
c3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8V2ViS2l0TWVkaWFTb3Vy
Y2U+KTsKKworICAgIHZpcnR1YWwgfldlYktpdFNvdXJjZUJ1ZmZlcigpOworCisgICAgLy8gV2Vi
S2l0U291cmNlQnVmZmVyLmlkbCBtZXRob2RzCisgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBi
dWZmZXJlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgZG91YmxlIHRpbWVzdGFtcE9mZnNl
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8VWludDhBcnJheT4gZGF0YSwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYWJvcnQoRXhjZXB0aW9uQ29kZSYpOworCisgICAgdm9p
ZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisKK3ByaXZhdGU6CisgICAgV2ViS2l0U291cmNl
QnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBhc3NSZWZQdHI8V2ViS2l0
TWVkaWFTb3VyY2U+KTsKKworICAgIGJvb2wgaXNSZW1vdmVkKCkgY29uc3Q7CisKKyAgICBPd25Q
dHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZlB0cjxXZWJLaXRNZWRp
YVNvdXJjZT4gbV9zb3VyY2U7CisKKyAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjI5MjNiMzM2MzcxZmFlZmRlMDNjMzNkYWM0ZTMyNTA5MDM4NTA5YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyLmlkbApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1N
RURJQV9TT1VSQ0UKK10gaW50ZXJmYWNlIFdlYktpdFNvdXJjZUJ1ZmZlciB7CisKKyAgICAvLyBS
ZXR1cm5zIHRoZSB0aW1lIHJhbmdlcyBidWZmZXJlZC4KKyAgICBbR2V0dGVyUmFpc2VzRXhjZXB0
aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgVGltZVJhbmdlcyBidWZmZXJlZDsKKworICAgIC8vIEFw
cGxpZXMgYW4gb2Zmc2V0IHRvIG1lZGlhIHNlZ21lbnQgdGltZXN0YW1wcy4KKyAgICBbU2V0dGVy
UmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHRpbWVzdGFtcE9mZnNldDsKKworICAg
IC8vIEFwcGVuZCBzZWdtZW50IGRhdGEuCisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBhcHBl
bmQoVWludDhBcnJheSBkYXRhKTsKKworICAgIC8vIEFib3J0IHRoZSBjdXJyZW50IHNlZ21lbnQg
YXBwZW5kIHNlcXVlbmNlLgorICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgYWJvcnQoKTsKK307
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MjUyOWRmNTNjOGQ1MzE2
MDViM2UxNGZhMDBiZDE5YzM3OTZmNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwCkBAIC0wLDAg
KzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiV2ViS2l0U291cmNl
QnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0U291cmNlQnVmZmVyTGlz
dDo6V2ViS2l0U291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBHZW5lcmljRXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIDogbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KGNvbnRleHQpCisgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShhc3luY0V2ZW50
UXVldWUpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6bGVu
Z3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9saXN0LnNpemUoKTsKK30KKworV2ViS2l0U291
cmNlQnVmZmVyKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAoreworICAgIGlmIChpbmRleCA+PSBtX2xpc3Quc2l6ZSgpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKK30KKwordm9pZCBXZWJLaXRTb3Vy
Y2VCdWZmZXJMaXN0OjphZGQoUGFzc1JlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+IGJ1ZmZlcikK
K3sKKyAgICBtX2xpc3QuYXBwZW5kKGJ1ZmZlcik7CisgICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2
ZW50TmFtZXMoKS53ZWJraXRhZGRzb3VyY2VidWZmZXJFdmVudCk7Cit9CisKK2Jvb2wgV2ViS2l0
U291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFdlYktpdFNvdXJjZUJ1ZmZlciogYnVmZmVyKQorewor
ICAgIHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGJ1ZmZlcik7CisgICAgaWYgKGluZGV4ID09
IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBidWZmZXItPnJlbW92ZWRG
cm9tTWVkaWFTb3VyY2UoKTsKKyAgICBtX2xpc3QucmVtb3ZlKGluZGV4KTsKKyAgICBjcmVhdGVB
bmRGaXJlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlckV2ZW50KTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpjbGVh
cigpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xpc3Quc2l6ZSgpOyArK2kpCisg
ICAgICAgIG1fbGlzdFtpXS0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOworICAgIG1fbGlzdC5j
bGVhcigpOworICAgIGNyZWF0ZUFuZEZpcmVFdmVudChldmVudE5hbWVzKCkud2Via2l0cmVtb3Zl
c291cmNlYnVmZmVyRXZlbnQpOworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmNy
ZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKK3sKKyAgICBB
U1NFUlQobV9hc3luY0V2ZW50UXVldWUpOworCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgZmFsc2UpOworICAgIGV2ZW50LT5zZXRUYXJn
ZXQodGhpcyk7CisKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+ZW5xdWV1ZUV2ZW50KGV2ZW50LnJl
bGVhc2UoKSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgV2ViS2l0U291cmNlQnVmZmVyTGlz
dDo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5pbnRl
cmZhY2VGb3JXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OworfQorCitTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworfQorCitFdmVudFRh
cmdldERhdGEqIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmV2ZW50VGFyZ2V0RGF0YSgpCit7Cisg
ICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0OjplbnN1cmVFdmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVy
biAmbV9ldmVudFRhcmdldERhdGE7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktp
dFNvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0U291cmNlQnVmZmVyTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZDI3YjVkODZiZDFlMDc0MmUx
NGFmMDQyZDk1MWE3MDE2MzdlYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaApAQCAtMCwwICsxLDkw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0X2gKKyNkZWZpbmUgV2ViS2l0U291cmNl
QnVmZmVyTGlzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBXZWJLaXRTb3VyY2VCdWZmZXI7CitjbGFzcyBHZW5lcmljRXZlbnRRdWV1
ZTsKKworY2xhc3MgV2ViS2l0U291cmNlQnVmZmVyTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YktpdFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgRXZl
bnRUYXJnZXQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBHZW5lcmlj
RXZlbnRRdWV1ZSogYXN5bmNFdmVudFF1ZXVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQsIGFzeW5jRXZlbnRRdWV1ZSkp
OworICAgIH0KKyAgICB2aXJ0dWFsIH5XZWJLaXRTb3VyY2VCdWZmZXJMaXN0KCkgeyB9CisKKyAg
ICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0OworICAgIFdlYktpdFNvdXJjZUJ1ZmZlciog
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisKKyAgICB2b2lkIGFkZChQYXNzUmVmUHRyPFdl
YktpdFNvdXJjZUJ1ZmZlcj4pOworICAgIGJvb2wgcmVtb3ZlKFdlYktpdFNvdXJjZUJ1ZmZlciop
OworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFdlYktpdFNv
dXJjZUJ1ZmZlckxpc3Q+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0Pjo6ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0
RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdl
dERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOworCitwcml2YXRlOgorICAg
IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEdlbmVyaWNF
dmVudFF1ZXVlKik7CisKKyAgICB2b2lkIGNyZWF0ZUFuZEZpcmVFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsg
cmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsg
ZGVyZWYoKTsgfQorCisgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKyAgICBH
ZW5lcmljRXZlbnRRdWV1ZSogbV9hc3luY0V2ZW50UXVldWU7CisKKyAgICBWZWN0b3I8UmVmUHRy
PFdlYktpdFNvdXJjZUJ1ZmZlcj4gPiBtX2xpc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NjFiOWExNWY2MTZlYzMxZTdkNDc0YzBkOTMwMTk4NGE0YTFkYjcxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TT1VS
Q0UsCisgICAgRXZlbnRUYXJnZXQsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0CitdIGlu
dGVyZmFjZSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0IDogRXZlbnRUYXJnZXQgeworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgV2ViS2l0U291
cmNlQnVmZmVyIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OworCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDVjMzg4
YWJhZjNhZGVmMTczN2MyZGEzOTkxNjI3MjQxMDA0YzQwZTcuLjBkODRhMWIyM2QxY2Y5NGY2NDJm
OGU3NTkwMmEyZmY3ZWI3NWVjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1DZW50ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCIK
ICNpbmNsdWRlICJVVUlELmgiCkBAIC0zMzAsNiArMzMxLDExIEBAIHZvaWQgTWVkaWFTdHJlYW06
OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZChUaW1lcjxNZWRpYVN0cmVhbT4qKQogICAgIGV2ZW50
cy5jbGVhcigpOwogfQogCitVUkxSZWdpc3RyeSYgTWVkaWFTdHJlYW06OnJlZ2lzdHJ5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0cnkoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaApp
bmRleCBkMTM0NDJmNjIzMWEwM2M1NDk1MDY2NmMyYjlkZTZlYWQ0ZmM4YjNjLi5mODFlMmM4ZThk
Yjk2N2JmN2FkOGY4OWMxMjZlODg3OTVlY2ZjYTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0zNCwxMiArMzQsMTMgQEAKICNp
bmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRy
YWNrLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFTdHJlYW0+LCBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50LCBwdWJsaWMg
RXZlbnRUYXJnZXQsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitjbGFzcyBN
ZWRpYVN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiwgcHVibGljIFVSTFJl
Z2lzdHJhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50LCBwdWJsaWMgRXZl
bnRUYXJnZXQsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4pOwpAQCAtNzksNiAr
ODAsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsK
ICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKKyAgICAvLyBVUkxS
ZWdpc3RyYWJsZQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3QgT1ZF
UlJJREU7CisKIHByb3RlY3RlZDoKICAgICBNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3Ry
eS5jcHAKaW5kZXggODQzZWFhYjRjN2U2OGE0OTFiZWJhOGI2MmNhYTYyYjRmYzlmYTQ4ZS4uZmY1
YzZkYWI4Mzg0YmUxNDMzMzJmNDM3YTdlNTU0Nzc1YTk4ZmRjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnku
Y3BwCkBAIC00MSwxMyArNDEsMTQgQEAgTWVkaWFTdHJlYW1SZWdpc3RyeSYgTWVkaWFTdHJlYW1S
ZWdpc3RyeTo6cmVnaXN0cnkoKQogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIAotdm9pZCBNZWRp
YVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3Rlck1lZGlhU3RyZWFtVVJMKGNvbnN0IEtVUkwmIHVybCwg
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtKQordm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5
OjpyZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmIHVybCwgVVJMUmVnaXN0
cmFibGUqIHN0cmVhbSkKIHsKKyAgICBBU1NFUlQoJnN0cmVhbS0+cmVnaXN0cnkoKSA9PSB0aGlz
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3RyZWFtRGVzY3JpcHRvcnMu
c2V0KHVybC5zdHJpbmcoKSwgc3RyZWFtLT5kZXNjcmlwdG9yKCkpOworICAgIG1fc3RyZWFtRGVz
Y3JpcHRvcnMuc2V0KHVybC5zdHJpbmcoKSwgc3RhdGljX2Nhc3Q8TWVkaWFTdHJlYW0qPihzdHJl
YW0pLT5kZXNjcmlwdG9yKCkpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnVucmVn
aXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiB1cmwpCit2b2lkIE1lZGlhU3RyZWFtUmVn
aXN0cnk6OnVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYgdXJsKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgbV9zdHJlYW1EZXNjcmlwdG9ycy5yZW1vdmUodXJsLnN0cmluZygp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1SZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVJlZ2lzdHJ5LmgKaW5kZXggMWY5Mjc0NTA5NWU5NGZlNzM0MjA5YWM4Y2UwMzg3Mjk3
YjAwOGIzMC4uZThiZTRjMWI0OTBmOTMwYjFhMTMwNGQwYjFjYzZhMjczY2ViZWY3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lz
dHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVJlZ2lzdHJ5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CkBAIC0zNywxNCArMzgsMTQgQEAgY2xhc3MgS1VSTDsKIGNsYXNzIE1lZGlhU3RyZWFtOwog
Y2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogCi1jbGFzcyBNZWRpYVN0cmVhbVJlZ2lzdHJ5
IHsKK2NsYXNzIE1lZGlhU3RyZWFtUmVnaXN0cnkgOiBwdWJsaWMgVVJMUmVnaXN0cnkgewogcHVi
bGljOgogICAgIC8vIFJldHVybnMgYSBzaW5nbGUgaW5zdGFuY2Ugb2YgTWVkaWFTdHJlYW1SZWdp
c3RyeS4KICAgICBzdGF0aWMgTWVkaWFTdHJlYW1SZWdpc3RyeSYgcmVnaXN0cnkoKTsKIAogICAg
IC8vIFJlZ2lzdGVycyBhIGJsb2IgVVJMIHJlZmVycmluZyB0byB0aGUgc3BlY2lmaWVkIHN0cmVh
bSBkYXRhLgotICAgIHZvaWQgcmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJiwgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbT4pOwotICAgIHZvaWQgdW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJM
KGNvbnN0IEtVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmln
aW4qLCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclVSTChjb25zdCBLVVJMJikgT1ZFUlJJREU7CiAKICAgICBNZWRpYVN0
cmVhbURlc2NyaXB0b3IqIGxvb2t1cE1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBTdHJpbmcm
IHVybCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VVJMTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
UkxNZWRpYVN0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1OWFmN2NlMDFlMmNhZTA5MjJkMThlMzZh
Zjc5NmMxOTM5MzMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVVJMTWVkaWFTdHJlYW0uaCIKKworI2luY2x1ZGUgIkRPTVVS
TC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgVVJMTWVkaWFTdHJlYW06OmNyZWF0
ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBNZWRpYVN0cmVhbSogc3RyZWFtKQoreworICAgIC8vIFNpbmNlIFdlYldvcmtlcnMgY2Fubm90
IG9idGFpbiBTdHJlYW0gb2JqZWN0cywgd2Ugc2hvdWxkIGJlIG9uIHRoZSBtYWluIHRocmVhZC4K
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0IHx8ICFzdHJlYW0pCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4g
RE9NVVJMOjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RyZWFtKTsK
K30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZiYWMwYmE5
N2VmZTBlNTQwODljZjYxOGY5ZDI2ZTliZGNhOTk3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBVUkxNZWRpYVN0cmVhbV9oCisjZGVmaW5lIFVSTE1lZGlhU3RyZWFtX2gK
KworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTWVkaWFTdHJlYW07CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBV
UkxNZWRpYVN0cmVhbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cmluZyBjcmVhdGVPYmplY3RV
UkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU3RyZWFtKik7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjhlZGI1YTIx
MzVmNzQ4ZmUwMDE5YzY2Njk3NjhhYTg5NjFhODZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5pZGwKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCitwYXJ0aWFsIGludGVyZmFjZSBVUkwgeworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3RhdGljIERPTVN0cmlu
ZyBjcmVhdGVPYmplY3RVUkwoTWVkaWFTdHJlYW0/IHN0cmVhbSk7Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5k
ZXggM2IwMzU1MThhNDc4NzcxOTJjMmQwZDM0MjExYjQ3Y2Q4ZjkzNDc1MS4uNjgyMjg4YzAwZGMz
NjI0ZTM2OTMxOWZhYjcyZGYzYjI2MGE5MDNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03MDIsNiArNzAy
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIFwKICAgICBo
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAg
XAorICAgIGh0bWwvUHVibGljVVJMTWFuYWdlci5jcHAgXAogICAgIGh0bWwvUmFkaW9JbnB1dFR5
cGUuY3BwIFwKICAgICBodG1sL1JhZGlvTm9kZUxpc3QuY3BwIFwKICAgICBodG1sL1JhbmdlSW5w
dXRUeXBlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYjM3MzRiMjFlN2M4YmQ0MjcyZTIwMjQ0OWY3ZDgwNGZmMTkzNGM1
MC4uYzZjYjk2MTBhYWIxNDQ5ZGE4ZWM5ZTE3YzUxOTYzNTU5ZTU0MGY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTE5Niwx
MiArNTE5NiwzNCBAQAogCQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsK
IAkJQ0QyN0Y2RTcxNDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFNjE0NTc3MEQz
MDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJQ0QzN0IzOTgxNUMxQjk3
MTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM3QjM3NDE1QzFBN0UxMDA2REM4OTggLyog
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLzsgfTsKKwkJQ0QzQTQ5NTIxN0E5QzhDNjAwMjc0
RTQyIC8qIE1lZGlhU291cmNlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTExN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFz
ZS5oICovOyB9OworCQlDRDNBNDk1NDE3QTlDQzkwMDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0
OTUwMTdBOUM4QjYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3BwICovOyB9OworCQlDRDNB
NDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTUxN0E5RDAxQjAwMjc0RTQyIC8q
IE1lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDNBNDk1NjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Qz
QTQ5NjExN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1ODE3QTlEMDFCMDAyNzRFNDIg
LyogU291cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJQ0QzQTQ5NjIxN0E5RDAxQjAwMjc0RTQyIC8q
IFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oICovOyB9Owor
CQlDRDNBNDk2NDE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1QjE3QTlEMDFC
MDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5jcHAgKi87IH07CisJCUNEM0E0OTY1MTdBOUQw
MUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNl
QnVmZmVyTGlzdC5oICovOyB9OwogCQlDRDQ3QjNGQzE2Q0MzNEY4MDBBMjFFQzggLyogQ0RNUHJp
dmF0ZUFWRm91bmRhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENDdCM0ZBMTZDQzM0RjgwMEEyMUVDOCAvKiBDRE1Qcml2YXRlQVZGb3VuZGF0
aW9uLm1tICovOyB9OwogCQlDRDRBQzUyQTE0OTZBRTlBMDA4N0M0RUYgLyogQ29tcG9zaXRlLndh
diBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDRBQzUyODE0OTZBRTJGMDA4N0M0RUYgLyogQ29tcG9zaXRlLndhdiAqLzsgfTsKIAkJ
Q0Q1MzkzRDMxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUzOTNEMTE3NUUwMTg2MDBDMDcx
MjMgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJQ0Q1MzkzRDQxNzVFMDE4NjAwQzA3MTIz
IC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1MzkzRDIxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovOyB9
OwogCQlDRDU0REU0NzE3NDY4QjZGMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFuYWdlck1hYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0REU0
NTE3NDY4QjZGMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFuYWdlck1hYy5jcHAgKi87IH07CiAJ
CUNENTRERTRCMTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NERFNDkxNzQ2OUM2RDAw
NUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi87IH07CisJCUNENjFGRTYzMTc5NEFBREIw
MDQxMDFFQiAvKiBXZWJLaXRNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJERTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0
TWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlDRDYxRkU2NDE3OTRBQURCMDA0MTAxRUIgLyogV2Vi
S2l0TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIxQTk0MkRGMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJjZS5oICov
OyB9OworCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJF
MTE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgKi87IH07CisJCUNE
NjFGRTY4MTc5NEFBREIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFMjE1QjVDRTIyMDBE
NTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICovOyB9OworCQlDRDYxRkU2OTE3OTRBQURC
MDA0MTAxRUIgLyogV2ViS2l0U291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJL
aXRTb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQlDRDYxRkU2QTE3OTRBQURCMDA0MTAxRUIgLyog
V2ViS2l0U291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMUE5NDJFNDE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVy
LmggKi87IH07CisJCUNENjFGRTZCMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAq
LzsgfTsKKwkJQ0Q2MUZFNkMxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQTk0
MkU3MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggKi87IH07CisJ
CUNENjFGRTdFMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjFGRTdDMTc5NENC
MjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFN0Yx
Nzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjFGRTdEMTc5NENCMjYwMDQxMDFFQiAv
KiBKU1dlYktpdE1lZGlhU291cmNlLmggKi87IH07CisJCUNENjFGRTg0MTc5NENDNTkwMDQxMDFF
QiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4MDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRT
b3VyY2VCdWZmZXIuY3BwICovOyB9OworCQlDRDYxRkU4NTE3OTRDQzU5MDA0MTAxRUIgLyogSlNX
ZWJLaXRTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENjFGRTgxMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZl
ci5oICovOyB9OworCQlDRDYxRkU4NjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENjFGRTgyMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3Qu
Y3BwICovOyB9OworCQlDRDYxRkU4NzE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDYxRkU4MzE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Lmgg
Ki87IH07CiAJCUNEN0UwNTIyMTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDdFMDUyMTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICov
OyB9OwogCQlDRDgyMDMwQTEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q4MjAzMDYxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDgy
MDMwQjEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA3MTM5
NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tICovOyBzZXR0
aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItV25vLXVuZGVmIC1Xbm8tZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiOyB9OyB9OwpAQCAtNTIwOSw2ICs1MjMxLDE2IEBACiAJCUNEODIwMzBEMTM5NUFC
NkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q4MjAzMDkxMzk1
QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0g
Ki87IH07CiAJCUNEODIwMzEwMTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzBF
MTM5NUFDRTcwMEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDgyMDMxMTEzOTVBQ0U3MDBGOTU2
QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q4MjAzMEYxMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0Fu
aW1hdGlvbi5tbSAqLzsgfTsKKwkJQ0Q5REUxNzQxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlD
RDlERTE3NTE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzMxN0FBQzc0QzAwRUEzODZE
IC8qIEpTTWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q5REUxN0ExN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEOURFMTc2MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAg
Ki87IH07CisJCUNEOURFMTdCMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzcxN0FB
Qzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmggKi87IH07CisJCUNEOURFMTdDMTdBQUM3
NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxNzgxN0FBQzc1QjAwRUEzODZEIC8qIEpT
U291cmNlQnVmZmVyTGlzdC5jcHAgKi87IH07CisJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAv
KiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEOURFMTc5MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxp
c3QuaCAqLzsgfTsKKwkJQ0Q5REUxODExN0FBRDZBNDAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURF
MTdFMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5jcHAgKi87IH07CisJCUNEOURF
MTgyMTdBQUQ2QTQwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q5REUxN0YxN0FBRDY0RTAwRUEzODZEIC8q
IFVSTE1lZGlhU291cmNlLmggKi87IH07CisJCUNEOURFMTg1MTdBQjBDRjMwMEVBMzg2RCAvKiBI
VE1MTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q5REUxODMxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5jcHAg
Ki87IH07CisJCUNEOURFMTg2MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTg0MTdB
QjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJQ0RBNzk4MjQxNzBB
MjU4MzAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE3OTgyMzE3MEEyNTgzMDBENDVDNTUgLyogQXVkaW9T
ZXNzaW9uLmNwcCAqLzsgfTsKIAkJQ0RBNzk4MjcxNzBBMjc5MTAwRDQ1QzU1IC8qIEF1ZGlvU2Vz
c2lvbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQTc5ODI1MTcwQTI3OTAwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25JT1MubW0gKi87IH07CiAJ
CUNEQTc5ODJBMTcwQTNEMDAwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTc5ODIxMTcwQTIyREMwMEQ0NUM1
NSAvKiBBdWRpb1Nlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNTIzOCw2ICs1MjcwLDcgQEAKIAkJQ0RFQTc2MzUxNDYwQjcxQTAwOEIz
MUYxIC8qIENsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENERUE3NjMzMTQ2MEI0NjIwMDhCMzFGMSAvKiBDbG9jay5jcHAgKi87IH07CiAJCUNE
RUE3Qzg0MTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MjEyNzYyMzA0MDBCODQ2
REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oICovOyB9OwogCQlDREVBN0M4NTEyNzYyMzA0MDBCODQ2
REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5jcHAgKi87IH07CisJCUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLzsgfTsK
IAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTQxNDU3Njc4NzAw
NzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1Q0NBMTQ1QjQ0ODgwMEM0QzdBQSAvKiBNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRl
cmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDRTAyRjBDNDExRTgzQUREMDBDNjY4NEEgLyogU2NyaXB0Q29udHJvbGxlckJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFMDJGMEMzMTFFODNB
REQwMEM2Njg0QSAvKiBTY3JpcHRDb250cm9sbGVyQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDQ1MywxNyArMTA0ODYsMTcgQEAKIAkJ
QjEwQjY5N0UxNDBDMTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJWVFRUb2tlbml6ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCMTBCNjk3RjE0MEMxNzQwMDBCQzFDMjYgLyogV2ViVlRU
VG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZUVFRva2Vu
aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMTgyNzQ5MjEzNENBNEMxMDBC
OThDMkQgLyogQ2FsbGJhY2tGdW5jdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDYWxsYmFja0Z1bmN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyREYxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291
cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkUwMTVCNUNFMjIwMEQ1MjVEMSAvKiBN
ZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTb3VyY2UuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJERTE1QjVDRTIyMDBENTI1RDEgLyog
V2ViS2l0TWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViS2l0TWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
MUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTAxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlh
U291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRNZWRpYVNvdXJjZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAv
KiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCMUE5NDJFMjE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBT
b3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291
cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyRTQxNUI1
Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTb3VyY2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFB
OTQyRTUxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU291cmNlQnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QjFBOTQyRTYxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyTGlzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU3MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3Vy
Y2VCdWZmZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1
ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjFBOTQyRTgxNUI1Q0Uy
MjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNvdXJjZUJ1ZmZlckxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5
NDJFMzE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJL
aXRTb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0
U291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkU1MTVC
NUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNzE1QjVDRTIy
MDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUIxQTk0MkU4MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFBRDRFNzExM0ExMkE0NjAwODQ2
QjI3IC8qIFRleHRUcmFja0xvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBUZXh0VHJhY2tMb2FkZXIuY3BwOyBwYXRoID0gbG9hZGVyL1RleHRUcmFja0xvYWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQjFBRDRFNzIxM0ExMkE0NjAw
ODQ2QjI3IC8qIFRleHRUcmFja0xvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBUZXh0VHJhY2tMb2FkZXIuaDsgcGF0aCA9IGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuaDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlCMUQ1RUNCNDEzNEI1OERBMDA4N0M3OEYg
LyogQ2FsbGJhY2tGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWxsYmFja0Z1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk0MCw2
ICsxMTk3MywxNyBAQAogCQlDRDI3RjZFNjE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9s
bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzdCMzc0MTVDMUE3RTEw
MDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNM
b2dnaW5nS2V5cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWFnbm9zdGlj
TG9nZ2luZ0tleXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTAxN0E5
QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVNvdXJjZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1
MTE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU291cmNlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1NTE3
QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDNBNDk1NjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0QzQTQ5NTcxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEM0E0OTU4MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0RTQyIC8q
IFNvdXJjZUJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VC
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NUExN0E5RDAxQjAw
Mjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU291cmNl
QnVmZmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NUIxN0E5RDAx
QjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEM0E0OTVDMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NUQxN0E5RDAxQjAwMjc0RTQyIC8qIFNv
dXJjZUJ1ZmZlckxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxp
c3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ3QjNGOTE2Q0MzNEY4MDBB
MjFFQzggLyogQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBDRE1Qcml2YXRlQVZGb3VuZGF0aW9uLmg7IHBhdGggPSBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETVByaXZhdGVBVkZvdW5kYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q0N0IzRkExNkNDMzRGODAwQTIxRUM4IC8qIENETVByaXZhdGVBVkZvdW5kYXRp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDRE1Qcml2YXRl
QVZGb3VuZGF0aW9uLm1tOyBwYXRoID0gTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRl
QVZGb3VuZGF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDRBQzUyODE0
OTZBRTJGMDA4N0M0RUYgLyogQ29tcG9zaXRlLndhdiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGF1ZGlvLndhdjsgbmFtZSA9IENvbXBvc2l0ZS53YXY7
IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvQ29tcG9zaXRlLndhdjsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMTE5NTAsNiArMTE5OTQsMTIgQEAKIAkJQ0Q1MzkzRDIx
NzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1NERFNDUxNzQ2OEI2RjAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFuYWdlck1h
Yy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRERTQ5MTc0NjlDNkQwMDVF
NUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q2MUZFN0MxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRNZWRpYVNvdXJjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTdEMTc5NENCMjYwMDQxMDFF
QiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTV2ViS2l0TWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q2MUZFODAxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2MUZFODExNzk0Q0M1OTAwNDEwMUVC
IC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENjFGRTgyMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2MUZFODMxNzk0Q0M1
OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3RTA1MjAxNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIu
aDsgcGF0aCA9IG9iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEN0UwNTIxMTY1MUE4NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXIubW07IHBhdGggPSBvYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjAzMDYxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTE5NTgsNiArMTIwMDgsMTcgQEAKIAkJQ0Q4MjAzMDkxMzk1QUI2QTAwRjk1NkM2
IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dD
b250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDgyMDMwRTEzOTVB
Q0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYldpbmRvd0FuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDgyMDMwRjEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0aW9uLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViV2luZG93QW5pbWF0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE3MjE3QUFDNzRDMDBF
QTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q5REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDlERTE3NjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTb3VyY2VCdWZmZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE3NzE3QUFDNzVCMDBFQTM4NkQg
LyogSlNTb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNT
b3VyY2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzgxN0FB
Qzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDlERTE3OTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZm
ZXJMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNlQnVmZmVy
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE3RTE3QUFENjRFMDBF
QTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMTWVkaWFT
b3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE3RjE3QUFENjRF
MDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMTWVkaWFTb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxODAxN0FBRDY0RTAwRUEz
ODZEIC8qIFVSTE1lZGlhU291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVUkxNZWRpYVNvdXJjZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTgzMTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1M
TWVkaWFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxODQx
N0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MTWVkaWFTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RBNzk4MjExNzBBMjJEQzAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBdWRpb1Nlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RB
Nzk4MjIxNzBBMjRGNDAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbkxpc3RlbmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1ZGlvU2Vzc2lvbkxpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEQTc5ODIzMTcwQTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDE2LDYgKzEyMDc3LDggQEAKIAkJQ0RFQTc2MzMxNDYw
QjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODIx
Mjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyRnVsbFNjcmVlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREVBN0M4MzEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3NTgw
IC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHVibGljVVJMTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNERUUzOTM4MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVUkxSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDOTE0
NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDQzE0NUI2QUZFMDBDNEM3QUEgLyogSlNIVE1M
TWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNFMDJGMEMzMTFFODNBREQwMEM2Njg0QSAvKiBTY3JpcHRDb250cm9sbGVyQmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRDb250cm9sbGVyQmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMyNzksNiArMTMzNDIsNyBAQAogCQkJ
CUE4M0I3OTA4MENDQUZGMkIwMDBCMDgyNSAvKiBIVE1MICovLAogCQkJCUFBOTNDODUwMTc1RDVC
MjAwMEZEM0NFMyAvKiBJbmRpZVVJICovLAogCQkJCTFDNUZBRUNBMERDRkQ4QzkwMEQ1OEY3OCAv
KiBJbnNwZWN0b3IgKi8sCisJCQkJQ0Q2MUZFN0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlhU291
cmNlICovLAogCQkJCTMzNTAzQzlDMTAxNzlBOUEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25zICov
LAogCQkJCTFBQzIyNjAyMERCNjlFQTcwMDg5QjY2OSAvKiBPZmZsaW5lICovLAogCQkJCUE5RDI0
N0Y5MEQ3NTdFNDEwMEZERjk1OSAvKiBQbHVnaW5zICovLApAQCAtMTU5MDgsNiArMTU5NzIsOCBA
QAogCQkJCUU0NDYxMzkyMENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCAq
LywKIAkJCQlFNDQ2MTM5MzBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5oICov
LAogCQkJCUU0NDYxMzk0MENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmlkbCAq
LywKKwkJCQlDRDlERTE4MzE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCAq
LywKKwkJCQlDRDlERTE4NDE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmggKi8s
CiAJCQkJQThFQTc5RUMwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgKi8s
CiAJCQkJQThFQTc5RTgwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5oICovLAog
CQkJCTFBRTJBRTQzMEExRDI2OUUwMEI0MkIyNSAvKiBIVE1MTWVudUVsZW1lbnQuaWRsICovLApA
QCAtMTYwNzEsNiArMTYxMzcsNyBAQAogCQkJCUY1NUIzRDk2MTI1MUYxMkQwMDNFRjI2OSAvKiBQ
YXNzd29yZElucHV0VHlwZS5oICovLAogCQkJCTk3MjA1QUI5MTIzOTI5MjcwMEIxNzM4MCAvKiBQ
bHVnaW5Eb2N1bWVudC5jcHAgKi8sCiAJCQkJOTcyMDVBQkExMjM5MjkyNzAwQjE3MzgwIC8qIFBs
dWdpbkRvY3VtZW50LmggKi8sCisJCQkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3NTgwIC8qIFB1Ymxp
Y1VSTE1hbmFnZXIuY3BwICovLAogCQkJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJs
aWNVUkxNYW5hZ2VyLmggKi8sCiAJCQkJRjU1QjNEOTcxMjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlv
SW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q5ODEyNTFGMTJEMDAzRUYyNjkgLyogUmFkaW9J
bnB1dFR5cGUuaCAqLywKQEAgLTE2MTA1LDYgKzE2MTcyLDcgQEAKIAkJCQlDMzc1RDdGQzE2NjM5
NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8sCiAJCQkJRjU1QjNEQTkxMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5
IC8qIFVSTElucHV0VHlwZS5oICovLAorCQkJCUNERUUzOTM4MTc5NzQyNzQwMDFENzU4MCAvKiBV
UkxSZWdpc3RyeS5oICovLAogCQkJCUY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0
aW9uTWVzc2FnZS5jcHAgKi8sCiAJCQkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlk
YXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMTVDNzcwOEIxMDBEM0M2QTAwNUJBMjY3IC8qIFZhbGlk
aXR5U3RhdGUuY3BwICovLApAQCAtMTc2ODIsMTcgKzE3NzUwLDMxIEBACiAJCUIxQTk0MkREMTVC
NUNFMjIwMEQ1MjVEMSAvKiBtZWRpYXNvdXJjZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJQjFBOTQyREUxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291
cmNlLmNwcCAqLywKLQkJCQlCMUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2Uu
aCAqLywKLQkJCQlCMUE5NDJFMDE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2UuaWRsICov
LAorCQkJCUNEM0E0OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi8sCisJ
CQkJQ0QzQTQ5NTYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggKi8sCisJCQkJQ0Qz
QTQ5NTcxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmlkbCAqLywKKwkJCQlDRDNBNDk1
MDE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmNwcCAqLywKKwkJCQlDRDNBNDk1
MTE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFTb3VyY2VCYXNlLmggKi8sCiAJCQkJQjFBOTQyRTEx
NUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwICovLAogCQkJCUIxQTk0
MkUyMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmggKi8sCi0JCQkJQjFB
OTQyRTMxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlci5jcHAgKi8sCi0JCQkJQjFBOTQy
RTQxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlci5oICovLAotCQkJCUIxQTk0MkU1MTVC
NUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuaWRsICovLAotCQkJCUIxQTk0MkU2MTVCNUNF
MjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKLQkJCQlCMUE5NDJFNzE1QjVD
RTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5oICovLAotCQkJCUIxQTk0MkU4MTVCNUNF
MjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLywKKwkJCQlDRDNBNDk1ODE3QTlE
MDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmNwcCAqLywKKwkJCQlDRDNBNDk1OTE3QTlEMDFC
MDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggKi8sCisJCQkJQ0QzQTQ5NUExN0E5RDAxQjAwMjc0
RTQyIC8qIFNvdXJjZUJ1ZmZlci5pZGwgKi8sCisJCQkJQ0QzQTQ5NUIxN0E5RDAxQjAwMjc0RTQy
IC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICovLAorCQkJCUNEM0E0OTVDMTdBOUQwMUIwMDI3NEU0
MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmggKi8sCisJCQkJQ0QzQTQ5NUQxN0E5RDAxQjAwMjc0RTQy
IC8qIFNvdXJjZUJ1ZmZlckxpc3QuaWRsICovLAorCQkJCUNEOURFMTdFMTdBQUQ2NEUwMEVBMzg2
RCAvKiBVUkxNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q5REUxN0YxN0FBRDY0RTAwRUEzODZE
IC8qIFVSTE1lZGlhU291cmNlLmggKi8sCisJCQkJQ0Q5REUxODAxN0FBRDY0RTAwRUEzODZEIC8q
IFVSTE1lZGlhU291cmNlLmlkbCAqLywKKwkJCQlCMUE5NDJERTE1QjVDRTIyMDBENTI1RDEgLyog
V2ViS2l0TWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUIxQTk0MkRGMTVCNUNFMjIwMEQ1MjVEMSAv
KiBXZWJLaXRNZWRpYVNvdXJjZS5oICovLAorCQkJCUIxQTk0MkUwMTVCNUNFMjIwMEQ1MjVEMSAv
KiBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgKi8sCisJCQkJQjFBOTQyRTMxNUI1Q0UyMjAwRDUyNUQx
IC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAgKi8sCisJCQkJQjFBOTQyRTQxNUI1Q0UyMjAwRDUy
NUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oICovLAorCQkJCUIxQTk0MkU1MTVCNUNFMjIwMEQ1
MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuaWRsICovLAorCQkJCUIxQTk0MkU2MTVCNUNFMjIw
MEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKKwkJCQlCMUE5NDJFNzE1
QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oICovLAorCQkJCUIxQTk0
MkU4MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLywKIAkJ
CSk7CiAJCQluYW1lID0gbWVkaWFzb3VyY2U7CiAJCQlwYXRoID0gTW9kdWxlcy9tZWRpYXNvdXJj
ZTsKQEAgLTE5NDY0LDYgKzE5NTQ2LDI1IEBACiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0Q2MUZFN0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlh
U291cmNlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlD
RDlERTE3MjE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q5
REUxNzMxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuaCAqLywKKwkJCQlDRDlERTE3
NjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCUNEOURFMTc3
MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oICovLAorCQkJCUNEOURFMTc4MTdB
QUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwICovLAorCQkJCUNEOURFMTc5
MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCAqLywKKwkJCQlDRDYxRkU4
MDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCUNE
NjFGRTgxMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5oICovLAorCQkJ
CUNENjFGRTgyMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3Bw
ICovLAorCQkJCUNENjFGRTgzMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuaCAqLywKKwkJCQlDRDYxRkU3QzE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRp
YVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q2MUZFN0QxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0
TWVkaWFTb3VyY2UuaCAqLywKKwkJCSk7CisJCQluYW1lID0gTWVkaWFTb3VyY2U7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlDREE5OERCRDE2MDE0RTA4MDBGRUEzQjEgLyog
ZW5jcnlwdGVkbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtMjEzNTUsNiArMjE0NTYsNyBAQAogCQkJCUZEMTY2MEE1MTM3ODdDNkQwMDFGRkE3QiAv
KiBEZW5vcm1hbERpc2FibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTAwRUU3NjE1NDZFQUMx
MDBCQTExRDEgLyogRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDYxRkU2ODE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFTb3VyY2VSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERl
dmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2
IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU3MTIwQTVE
MDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjE0
MDQsNiArMjE1MDYsNyBAQAogCQkJCTg1RDM4OUIyMEE5OTFBN0YwMDI4MjE0NSAvKiBET01BdHRy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE4RDBBQzVENTM1MDA1MzI3MEYgLyogRE9NQXR0
ckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NkVFRjEwN0ZEQkFDMDA4NTcxOTMg
LyogRE9NQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDYxRkU4NTE3OTRD
QzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJFMkQ5OUU3MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTA4OUNENzBBOThDNDI4MDBBMjc1QUEgLyogRE9NQ0RBVEFTZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTIxNTYzLDYgKzIxNjY2LDcgQEAKIAkJCQk4NTk5MkVCRTBBQTUw
Njk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NUU3MTFCODBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTExpbmtFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1RUNCRUYzMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTWFw
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUxN0QxN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQjkwQUM1RDUz
NTAwNTMyNzBGIC8qIERPTUhUTUxNYXBFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNTE1NzlGMEMwM0JCRDMwMDhCQjBFRSAvKiBET01IVE1MTWFycXVlZUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNTE1NkVBMEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFy
cXVlZUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTU3Nyw2ICsyMTY4MSw3
IEBACiAJCQkJODVCQTREMTUwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUJFMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1M
T0xpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RjMyQUVFMEFBNjNC
ODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDlERTE4MjE3QUFENkE0MDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1RTcxMUJGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT3B0R3JvdXBFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NDA3NTZCMEFENkNCRjkwMDYyMEM1
NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1NkQw
QUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjE1ODYsNiArMjE2OTEsNyBAQAogCQkJCTg1RTcxMUMxMEFDNUQ1MzUwMDUz
MjcwRiAvKiBET01IVE1MUGFyYWdyYXBoRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NUVDQkVGNzBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTFBhcmFtRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQzIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJh
bUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNkExNzk0QUFEQjAw
NDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUxODNC
NDgwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxQcmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NUU3MTFDMzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFByZUVsZW1lbnRJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQyMjZFOTUxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhU
TUxQcm9ncmVzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2MzAsNiArMjI3MzYsNyBA
QAogCQkJCTQzNThFODdEMTM2MEEyRUUwMEU0NzQ4QyAvKiBKU1NWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDc5MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R0ZFRmxvb2RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3QjBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdGRUZ1bmNBRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZF
N0YxNzk0Q0IyNjAwNDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyRkEzRDdEMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRnVuY0JFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3RjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZ1
bmNHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEODEwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHRkVGdW5jUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI3NjAsNiArMjI4
NjcsNyBAQAogCQkJCUJDMkNCRjRFMTQwRjFBQkQwMDM4NzlCRSAvKiBKU1dlYkdMQ29udGV4dEV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTNGQUQzOTE0NzMzRjQwMTFFNDIzMDcgLyogSlNX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTNGQUQzOTE0NzMz
RjQwMjJFNDIzMDcgLyogSlNXZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0QzQTQ5NTIxN0E5QzhDNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDAwRTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOTk4MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdM
RnJhbWVidWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUMxMTJENTMzNTYwMDgzMkJF
QyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI5ODksNiArMjMw
OTcsNyBAQAogCQkJCUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXpl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDAxNDYyOEIxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdp
bkFjY2Vzc0VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTlFODlGQzE2RTJEQzA1MDBBOTA4
RjggLyogT3JpZ2luTG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUxODYxN0FCMENGMzAw
RUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1ODFGQUYx
NTIwRjkxRjAwM0E3QTc1IC8qIE9zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzVFQjVERDBFODFCOEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTBENTczNzBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMzIyMSw2ICsyMzMzMCw3IEBACiAJCQkJNDM2NzA4QzkxMkQ5Q0E0QjAwMDQ0
MjM0IC8qIFJlbmRlclNWR0ltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxNTEyNTVF
NEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0
QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0QzQTQ5NjIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0IxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR01vZGVs
T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRERGMUFENzEyNTdDRDlBMDAwM0E3NTkgLyog
UmVuZGVyU1ZHUGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQkI1ODUxNDg0RTNBNzAwQjJF
ODdBIC8qIFJlbmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjMyNzIsNiArMjMzODIs
NyBAQAogCQkJCTUxNEM3Njc5MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0EwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFu
ZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3QjBDRTkyM0ExMDA3RUYzQ0Qg
LyogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNjQx
Nzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUU0MTQzNDE2QTY1OTYzMDBDNjMzQzcgLyogUmVzb3VyY2VIYW5kbGVUeXBlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2RDM3M0YwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNlTG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMEEzQTczMTE0MDVBMzk4MDBGQjhFRDMgLyogUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNDAwLDYgKzIzNTExLDcgQEAK
IAkJCQk0MUUxQjFENDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUQxNjhFODEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyR2xvYmFs
U2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDE2OEVBMTAyMjZFODkwMDlCQzgyNyAvKiBT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDYxRkU2QzE3OTRB
QURCMDA0MTAxRUIgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTFCNzgzOUMxNjM3NDBBNzAwMDdCNjkyIC8qIFNoYXJlZFdvcmtlclN0cmF0ZWd5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MUQxNjhFRTEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2Vy
VGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2NTBEMDA2Q0Q2MDBFRjZGMjYgLyog
U2ltcGxlRm9udERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjM1NDgsNyArMjM2NjAsOSBAQAog
CQkJCTA4RDQ2Q0UzMTI3QUQ1RkMwMDg5Njk0QiAvKiBTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3MUZCOTY3QjEzODNENjQ2MDBBQzhBNEMgLyogU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgyM0Qx
NTkxMjdBRDZBQzAwMEVCQzk1IC8qIFNWR0FuaW1hdGVkSW50ZWdlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0Q2MUZFODcxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFFNjIzRDExNTFGNzJBNjAwMzZFMkY0IC8qIFNWR0Fu
aW1hdGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUx
N0IxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0
aExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTA0MTI2RUYxREIwMDk3OEY3QSAvKiBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MDUs
NiArMjM5MTksNyBAQAogCQkJCUJDRUY0NUU5MEU2ODc3NjcwMDFDMTI4NyAvKiBUZXh0TWV0cmlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMwRkM2OEExMDcyQjkyODAwNDUyOTNFIC8qIFRleHRS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOThGNjA4MjQ1RTU5MDAxRTlB
QkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzQTQ5NjUx
N0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE0QjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc1OUU5NDAxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFjay5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMzgzOCw2ICsyMzk1Myw3IEBACiAJCQkJNDlFOTEyQUUwRUZBQzkwNjAwOUQwQ0FG
IC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzAzMzRENzE0NTlGRkQ1
MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBDMjE3MTVD
RTI2MDA2NThEOTggLyogVHJhY2tMaXN0QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzQTQ5
NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OUU5MTFDNDBFRjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZCNDg0RjREMTcxRjgyMUUwMDA0MDc1NSAvKiBUcmFuc2Zvcm1GdW5jdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUNFMEVGODZENDcwMDlEMENBRiAvKiBUcmFu
c2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjM5ODcsNiArMjQxMDMsNyBAQAog
CQkJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAzMUI1MTBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM4MEY0NzQwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0Q5REUxNzUxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTFEQ0IxMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENh
Y2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lk
dGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyM0U1NjkxMjdCMzA0MTAwMEZFRUE3
IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDYwNSw2ICsyNDcy
Miw3IEBACiAJCQkJQTgxODcyMjUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTREODIzOEIwQUY5MkRGNjAwMDRGMDU3IC8qIENocm9tZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBQkFGMjIwODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21l
TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxNzQxN0FBQzc0QzAwRUEzODZEIC8qIEpT
TWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEFDQkMwQkUxMjcxM0NCRDAwOTRG
OUIyIC8qIENsYXNzTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzkwNEI3NjBEMTA5OThG
MDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU3
RDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0
ODIwLDYgKzI0OTM4LDcgQEAKIAkJCQk4NTAzMkREQzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
SW1wb3J0UnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMyRERFMEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NNZWRpYVJ1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMkRFMDBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTUGFnZVJ1bGUubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDlE
RTE3QTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODU4QzM4MkQwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzJERTIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1
bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMkRFNDBBQThDOUJFMDA3RDNCN0QgLyogRE9N
Q1NTUnVsZUxpc3QubW0gaW4gU291cmNlcyAqLywKQEAgLTI0ODc0LDYgKzI0OTkzLDcgQEAKIAkJ
CQk4NURGODE5NjBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTEZyYW1lRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1REY4MTk4MEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MRnJhbWVT
ZXRFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU5OTJFQkIwQUE1MDY5NTAwQUMwNzg1
IC8qIERPTUhUTUxIZWFkRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEM0E0OTY0MTdB
OUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1MTgzQjQ1MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MSGVhZGluZ0VsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NUVDQkVGMjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTEhSRWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OTkyRUJEMEFBNTA2OTUwMEFDMDc4NSAvKiBE
T01IVE1MSHRtbEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKQEAgLTI1MDY5LDYgKzI1MTg5LDcg
QEAKIAkJCQk4OTg3ODU2NDEyMkNBMDY0MDAzQUFCREEgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTYwMzA2QzBDQzQzNjIzMDBDOEFDMjUgLyogRmlsZVN5
c3RlbUNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2QzE3QTNGMTQ5MUQyRDQwMEQxMkJBMiAv
KiBGaWxlU3lzdGVtSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzQTQ5NTQxN0E5Q0M5MDAw
Mjc0RTQyIC8qIE1lZGlhU291cmNlQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRCM0Y3
NjBDNzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxNjAzMDBCMENDNDI1MTIwMEM4QUMyNSAvKiBGaWxlU3lzdGVtUE9TSVguY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTc2RDZDOEQxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVUaHJlYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNTMxNSw2ICsyNTQzNiw3IEBACiAJCQkJQzNDRjE3QTYxNUIwMDYz
RjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCMjc1MzU2RjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDNEMjU5NzcxM0M4MTZGNDAwNjA4NTU5IC8qIEltYWdlQnVmZmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUNEOURFMTdDMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMTBCOTQwQjM4MThENzAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjI5MkIyN0MxMzU2NjY5NDAwQ0Yx
MUVGIC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTVF
MEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZUNHLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MTMs
NiArMjU2MzUsNyBAQAogCQkJCTUyQ0NBOUUyMTVFM0Y2MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVk
Rmxvd0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRTUzREYwQThEMTg4MTAw
MjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCOTEzOTJCMTZB
RTRGQzAwMDFGRTY4MiAvKiBKU0RPTVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZF
NkIxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTlEMjQ3RkUwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE5RDI0ODAwMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdp
bkFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNjRDMEQ3NDY1RTcwMDY0NDJFOSAv
KiBKU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1NjMsNiAr
MjU2ODYsNyBAQAogCQkJCUZFODBEQTYzMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFODBEN0FCMEU5QzFFRDIwMDBENkY3NSAvKiBKU0dl
b2xvY2F0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFODBEQTY1MEU5QzQ3MDMw
MDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEM0E0OTVF
MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NDgyQjc1MTExOThDQjZCMDBCRkIwMDUgLyogSlNIYXNoQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM5NEQxNEUwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0U3QjE5MzBENEU4Njk2MDA3NUE1MzkgLyogSlNIaXN0b3J5Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1ODIsNiArMjU3MDYsNyBAQAogCQkJCTkzOTIy
NjJEMTAzMjEwN0IwMDZFN0Q1RCAvKiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDQ0JBRDQwMEMxOEMxNDIwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQ0JBRDNCMEMxOEJGRjgwMENFODkwRiAvKiBK
U0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENjFGRTg0MTc5
NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0QTFFNzE5MDE0RTEwMUU0MDA2MjZGOUQgLyogSlNIVE1MQ29udGVudEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjVDMDQxRTYwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERh
dGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMzU5RDhCRTEyOUNBNTVDMDAw
NkU1RDIgLyogSlNIVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTg5
Myw2ICsyNjAxOCw3IEBACiAJCQkJQjJGQTNEQ0EwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJG
QTNEQ0MwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9v
dGhSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDOTZEOEQwQjNBRjJCNzAwNUU4MEVDIC8q
IEpTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDNBNDk2MTE3QTlE
MDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEz
RENFMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9BYnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjJGQTNERDAwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxBYnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERDIwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNjExMCw2ICsyNjIzNiw3IEBACiAJCQkJRDM0MDYyOUIxMjUzQkM4QzAwOUU0MjU5
IC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBQTEw
RjMxMjNBOThBQTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZENjcxQTc3MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyog
TWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMxNzA5NzlD
M0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3RURB
MDgxMzg1Q0I5NzAwNEUwNjQ1IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2NTdFREEwQjEzODVDQkQ4MDA0RTA2NDUgLyogTWVtb3J5UHJlc3N1cmVIYW5k
bGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yNjMyOCw2ICsyNjQ1NSw3IEBACiAJCQkJNDM5
MDQ2REIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQzOTA0NkREMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRo
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkRGMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxPcGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDYxRkU2MzE3OTRBQURC
MDA0MTAxRUIgLyogV2ViS2l0TWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5
MDQ2RTExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDM5MDQ2RTMxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvdy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1QjdBMjA4RDJFMTI5NzlCNEFFMTlERTYgLyogUmVuZGVyTWF0
aE1MU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjU3Myw2ICsyNjcwMSw3IEBACiAJCQkJ
OTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBS
YW5nZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDlERTE4NTE3QUIwQ0YzMDBFQTM4NkQgLyog
SFRNTE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTNGOUM3MERBMDU5REMw
MDI1MDkxMSAvKiBTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MTYwRUVBMTAwNDU0
M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUx
MDJFRDAwRkQ5RUY4QzAwRkFGRjA0IC8qIFN0b3JhZ2VBcmVhU3luYy5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTI2Njk0LDYgKzI2ODIzLDcgQEAKIAkJCQlCMjIyNzlEQzBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5REYwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY0FFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyMjI3OUUyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNCRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDRDYxRkU3RTE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNv
dXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlFNTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHRkVGdW5jR0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5RTgwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR0ZFRnVuY1JFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
MjI3OUVCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNjc1NCw2ICsyNjg4NCw3IEBACiAJCQkJODQ3NkM5RUExMURGNkEy
OTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MTlE
MkE4MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODQxOUQyQUMxMjBEOTJGQzAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENjFGRTg2MTc5NENDNTkwMDQxMDFF
QiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIy
MjdBNTgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg0NzZDOUVGMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyMjI3QTgwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnTGlz
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2ODM3LDYgKzI2OTY4LDcgQEAKIAkJCQk5M0YxOUE5
RDA4MjQ1RTU5MDAxRTlBQkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzNzZEQ0NFMTEzQjRGOTY2MDAyRUJFRkMgLyogVGV4dFJ1bi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkMzREE0QTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dFN0cmVhbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDRDlERTE4MTE3QUFENkE0MDBFQTM4NkQgLyogVVJMTWVkaWFTb3Vy
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc1OUU5M0YxNEVGMUNGODAwMjZBMkREIC8qIFRl
eHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzU5RTk0MjE0RUYxQ0Y4MDAyNkEyREQg
LyogVGV4dFRyYWNrQ3VlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MUE5RUMyMTY4RkJDNDMw
MDI2MjlGOSAvKiBUZXh0VHJhY2tDdWVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY5
ODQsNiArMjcxMTYsNyBAQAogCQkJCTBGQ0YzMzJDMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJUaWxl
ZExheWVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBNzE2MUUxNDlCRjJGQTAwMTZFQzE5IC8q
IFdlYlRpbGVMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEODIwMzBCMTM5NUFCNkEwMEY5
NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0Q2MUZFNjkxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDgyMDMwRDEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUYxMjE3MUY1
MTZBOENFRDIwMDAwNTNDQSAvKiBXZWJWVFRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTVEMjFBODAyMTNFQ0U1REYwMEJCNzA2NCAvKiBXZWJWVFRQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzAwMiw2ICsyNzEzNSw3IEBACiAJCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2
IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ3NDJFMDEz
NDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBM0UyNjQzMDE0NzQ4OTkxMDA1QTg1ODggLyogV29ya2VyRXZlbnRRdWV1ZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0ODBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcxMkE2MTExNTAwOTBD
RTAwNDhBRjEwIC8qIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTk3RjhFNjY1MTUxRDRBNEIwMEQyRDE4MSAvKiBXb3JrZXJHbG9iYWxTY29w
ZU5vdGlmaWNhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApp
bmRleCBjMWQ2NWNhOGVmMDdhYjQzMDIxOTFjMTk5ZTg1YTQzNzI0YTUxOWQ5Li5kNjI5ODZiZDAx
NmVlYTI3ZGEzNjZhZmE2NWZlMDRiZDZiMzFkNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
QEAgLTE2Niw2ICsxNjYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHdlYmtp
dGJlZ2luZnVsbHNjcmVlbikgXAogICAgIG1hY3JvKHdlYmtpdGVuZGZ1bGxzY3JlZW4pIFwKICAg
ICBcCisgICAgbWFjcm8oYWRkc291cmNlYnVmZmVyKSBcCisgICAgbWFjcm8ocmVtb3Zlc291cmNl
YnVmZmVyKSBcCisgICAgbWFjcm8oc291cmNlb3BlbikgXAorICAgIG1hY3JvKHNvdXJjZWVuZGVk
KSBcCisgICAgbWFjcm8oc291cmNlY2xvc2UpIFwKKyAgICBtYWNybyh1cGRhdGUpIFwKKyAgICBt
YWNybyh1cGRhdGVlbmQpIFwKKyAgICBtYWNybyh1cGRhdGVzdGFydCkgXAogICAgIG1hY3JvKHdl
YmtpdGFkZHNvdXJjZWJ1ZmZlcikgXAogICAgIG1hY3JvKHdlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZl
cikgXAogICAgIG1hY3JvKHdlYmtpdHNvdXJjZW9wZW4pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmgKaW5kZXggNmE4MGE4YWNkODVlODNkOWRmMjI3ZDUyOWJiYWZkZWQyYmVjMDViYS4uNWUxM2M5
NTJhNTQ0NjAwODcyZTJkYWJmNjJjZGFiZWNiOGNkZDlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmgKQEAgLTU3LDcgKzU3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNj
cmlwdFByb2Nlc3Nvck5vZGU7CiAgICAgY2xhc3MgTG9jYWxNZWRpYVN0cmVhbTsKICAgICBjbGFz
cyBNZWRpYUNvbnRyb2xsZXI7Ci0gICAgY2xhc3MgTWVkaWFTb3VyY2U7CiAgICAgY2xhc3MgTWVk
aWFTdHJlYW07CiAgICAgY2xhc3MgTWVzc2FnZVBvcnQ7CiAgICAgY2xhc3MgTm9kZTsKQEAgLTY2
LDcgKzY1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiAgICAgY2xhc3MgU2hhcmVkV29ya2VyOwogICAgIGNsYXNzIFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlOwotICAgIGNsYXNzIFNvdXJjZUJ1ZmZlckxpc3Q7CiAgICAgY2xhc3MgVGV4
dFRyYWNrOwogICAgIGNsYXNzIFRleHRUcmFja0N1ZTsKICAgICBjbGFzcyBWaWRlb1RyYWNrTGlz
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IGFlZWE5NmE2
Y2MyYTYwMjk4ODk2MjFhY2VjY2Y4ZTRmYjdjNzAxNTEuLmRiNzdlY2EwNTU3MTEzZTlmYWE2Njc0
MTRlZTJiZDljZDdhMGJlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9y
eS5pbgpAQCAtMzEsNiArMzEsNyBAQCBSVENEVE1GU2VuZGVyIGNvbmRpdGlvbmFsPU1FRElBX1NU
UkVBTQogUlRDUGVlckNvbm5lY3Rpb24gY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBTaGFyZWRX
b3JrZXIgY29uZGl0aW9uYWw9U0hBUkVEX1dPUktFUlMKIFNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
IGNvbmRpdGlvbmFsPVNIQVJFRF9XT1JLRVJTCitTb3VyY2VCdWZmZXIgY29uZGl0aW9uYWw9TUVE
SUFfU09VUkNFCiBTb3VyY2VCdWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogU3Bl
ZWNoUmVjb2duaXRpb24gY29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNICiBTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUwpAQCAtMzksNyArNDAsOSBA
QCBUZXh0VHJhY2sgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRleHRUcmFja0N1ZSBjb25kaXRp
b25hbD1WSURFT19UUkFDSwogVGV4dFRyYWNrTGlzdCBjb25kaXRpb25hbD1WSURFT19UUkFDSwog
VmlkZW9UcmFja0xpc3QgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKK1dlYktpdE1lZGlhU291cmNl
IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogV2ViS2l0TmFtZWRGbG93CitXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0IGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogV2ViU29ja2V0IGNvbmRpdGlvbmFs
PVdFQl9TT0NLRVRTCiBXb3JrZXIgY29uZGl0aW9uYWw9V09SS0VSUwogWE1MSHR0cFJlcXVlc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2IuY3BwCmluZGV4IDc2NDBmNWY1MDNiZjJjYTliNDZiZDgzZmE4MzA0
ZTY3YWMyY2FhMjAuLmMwMzc4NGY0MzA2YmE2ZDA2ZTkyNzEwYjdhZDM5NmE1OTI2NGY1ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9CbG9iLmNwcApAQCAtNTIsNiArNTIsMzMgQEAgZW51bSBTbGljZUhpc3Rv
Z3JhbUVudW0gewogCiB9IC8vIG5hbWVzcGFjZQogCitjbGFzcyBCbG9iVVJMUmVnaXN0cnkgOiBw
dWJsaWMgVVJMUmVnaXN0cnkgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVS
TChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmLCBVUkxSZWdpc3RyYWJsZSopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmKSBPVkVSUklERTsK
KworICAgIHN0YXRpYyBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKTsKK307CisKKwordm9pZCBCbG9i
VVJMUmVnaXN0cnk6OnJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IEtV
UkwmIHB1YmxpY1VSTCwgVVJMUmVnaXN0cmFibGUqIGJsb2IpCit7CisgICAgQVNTRVJUKCZibG9i
LT5yZWdpc3RyeSgpID09IHRoaXMpOworICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lz
dGVyQmxvYlVSTChvcmlnaW4sIHB1YmxpY1VSTCwgc3RhdGljX2Nhc3Q8QmxvYio+KGJsb2IpLT51
cmwoKSk7Cit9CisKK3ZvaWQgQmxvYlVSTFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IEtV
UkwmIHVybCkKK3sKKyAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVS
TCh1cmwpOworfQorCitVUkxSZWdpc3RyeSYgQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSgpCit7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChCbG9iVVJMUmVnaXN0cnksIGluc3RhbmNlLCAoKSk7
CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCisKIEJsb2I6OkJsb2IoKQogICAgIDogbV9zaXpl
KDApCiB7CkBAIC0yMDYsNCArMjMzLDEwIEBAIFBhc3NSZWZQdHI8QmxvYj4gQmxvYjo6c2xpY2Uo
bG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlCiB9CiAj
ZW5kaWYKIAorVVJMUmVnaXN0cnkmIEJsb2I6OnJlZ2lzdHJ5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSgpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKaW5kZXggYmY0YTI4NTFkM2M1YzkwMDVkZDU5YjE0ZDcy
ZTFmOTc5OTQ1NTFlMS4uMjFiMzFiNDEzYWNmN2U0OGNmOTI1YmU5MmYxYmI1MDJjZGQ2NGRmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9CbG9iLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0
YS5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNp
bmNsdWRlICJVUkxSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAt
NDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiAKLWNsYXNzIEJsb2IgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMg
UmVmQ291bnRlZDxCbG9iPiB7CitjbGFzcyBCbG9iIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwg
cHVibGljIFVSTFJlZ2lzdHJhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxCbG9iPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKCkKICAgICB7CkBAIC03OCw2ICs3
OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc05vcm1hbGl6ZWRDb250ZW50VHlwZShj
b25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgYm9vbCBpc05vcm1hbGl6ZWRDb250ZW50VHlwZShj
b25zdCBDU3RyaW5nJik7CiAKKyAgICAvLyBVUkxSZWdpc3RyYWJsZQorICAgIHZpcnR1YWwgVVJM
UmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3QgT1ZFUlJJREU7CisKICNpZiBFTkFCTEUoQkxPQikK
ICAgICBQYXNzUmVmUHRyPEJsb2I+IHNsaWNlKGxvbmcgbG9uZyBzdGFydCA9IDAsIGxvbmcgbG9u
ZyBlbmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlID0gU3RyaW5nKCkpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVS
TC5jcHAKaW5kZXggMzZlNTU5ZWRmMmU0NWFkMTQ4NDFhOTg1NWIyZWIyYzM0NzYyM2ZkOC4uYWUz
NjkzODI0YjNlOTU4MWYyNDE0MGI1YzgxOWUyZDNkMjk3ZTczYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJM
LmNwcApAQCAtMzksNzIgKzM5LDI0IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCi0jaW5jbHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1l
ZGlhU291cmNlLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgotI2VuZGlmCi0K
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5j
bHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi1TdHJpbmcgRE9NVVJMOjpjcmVhdGVPYmpl
Y3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWVk
aWFTb3VyY2UqIHNvdXJjZSkKLXsKLSAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRh
aW4gTWVkaWFTb3VyY2Ugb2JqZWN0cywgd2Ugc2hvdWxkIGJlIG9uIHRoZSBtYWluIHRocmVhZC4K
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0IHx8ICFzb3VyY2UpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIEtVUkwg
cHVibGljVVJMID0gQmxvYlVSTDo6Y3JlYXRlUHVibGljVVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPnNlY3VyaXR5T3JpZ2luKCkpOwotICAgIGlmIChwdWJsaWNVUkwuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3Ry
eSgpLnJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwocHVibGljVVJMLCBzb3VyY2UpOwotICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5zb3VyY2VVUkxzKCkuYWRkKHB1
YmxpY1VSTC5zdHJpbmcoKSk7Ci0KLSAgICByZXR1cm4gcHVibGljVVJMLnN0cmluZygpOwotfQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotU3RyaW5nIERPTVVSTDo6Y3JlYXRl
T2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1lZGlhU3RyZWFtKiBzdHJlYW0pCi17Ci0gICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0
IHx8ICFzdHJlYW0pCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIEtVUkwgcHVibGlj
VVJMID0gQmxvYlVSTDo6Y3JlYXRlUHVibGljVVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNl
Y3VyaXR5T3JpZ2luKCkpOwotICAgIGlmIChwdWJsaWNVUkwuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4g
U3RyZWFtIG9iamVjdHMsIHdlIHNob3VsZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5
KCkucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChwdWJsaWNVUkwsIHN0cmVhbSk7Ci0gICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJMTWFuYWdlcigpLnN0cmVhbVVSTHMoKS5hZGQocHVi
bGljVVJMLnN0cmluZygpKTsKLQotICAgIHJldHVybiBwdWJsaWNVUkwuc3RyaW5nKCk7Ci19Ci0j
ZW5kaWYKLQogU3RyaW5nIERPTVVSTDo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEJsb2IqIGJsb2IpCiB7CiAgICAgaWYgKCFz
Y3JpcHRFeGVjdXRpb25Db250ZXh0IHx8ICFibG9iKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgcmV0dXJuIGNyZWF0ZVB1YmxpY1VSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBibG9i
KTsKK30KIAorU3RyaW5nIERPTVVSTDo6Y3JlYXRlUHVibGljVVJMKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFVSTFJlZ2lzdHJhYmxlKiByZWdpc3RyYWJs
ZSkKK3sKICAgICBLVVJMIHB1YmxpY1VSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKICAgICBpZiAocHVibGljVVJM
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3Vy
aXR5T3JpZ2luKCksIHB1YmxpY1VSTCwgYmxvYi0+dXJsKCkpOwotICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5ibG9iVVJMcygpLmFkZChwdWJsaWNVUkwuc3Ry
aW5nKCkpOworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5y
ZWdpc3RlclVSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBwdWJs
aWNVUkwsIHJlZ2lzdHJhYmxlKTsKIAogICAgIHJldHVybiBwdWJsaWNVUkwuc3RyaW5nKCk7CiB9
CkBAIC0xMjEsMjkgKzczLDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNlbmRpZgogICAg
IE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIHJlcXVlc3QpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+JiBibG9iVVJMcyA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5ibG9iVVJMcygpOwotICAgIGlmIChi
bG9iVVJMcy5jb250YWlucyh1cmwuc3RyaW5nKCkpKSB7Ci0gICAgICAgIFRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7Ci0gICAgICAgIGJsb2JVUkxzLnJlbW92
ZSh1cmwuc3RyaW5nKCkpOwotICAgIH0KLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAg
SGFzaFNldDxTdHJpbmc+JiBzb3VyY2VVUkxzID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVi
bGljVVJMTWFuYWdlcigpLnNvdXJjZVVSTHMoKTsKLSAgICBpZiAoc291cmNlVVJMcy5jb250YWlu
cyh1cmwuc3RyaW5nKCkpKSB7Ci0gICAgICAgIE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5
KCkudW5yZWdpc3Rlck1lZGlhU291cmNlVVJMKHVybCk7Ci0gICAgICAgIHNvdXJjZVVSTHMucmVt
b3ZlKHVybC5zdHJpbmcoKSk7Ci0gICAgfQotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLSAgICBIYXNoU2V0PFN0cmluZz4mIHN0cmVhbVVSTHMgPSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkuc3RyZWFtVVJMcygpOwotICAgIGlmIChzdHJlYW1VUkxz
LmNvbnRhaW5zKHVybC5zdHJpbmcoKSkpIHsKLSAgICAgICAgLy8gRklYTUU6IG1ha2Ugc3VyZSBv
ZiB0aGlzIGFzc2VydGlvbiBiZWxvdy4gUmFpc2UgYSBzcGVjIHF1ZXN0aW9uIGlmIHJlcXVpcmVk
LgotICAgICAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4gU3RyZWFtIG9iamVj
dHMsIHdlIHNob3VsZCBiZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgICAgIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5y
ZWdpc3Rlck1lZGlhU3RyZWFtVVJMKHVybCk7Ci0gICAgICAgIHN0cmVhbVVSTHMucmVtb3ZlKHVy
bC5zdHJpbmcoKSk7Ci0gICAgfQotI2VuZGlmCisgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
cHVibGljVVJMTWFuYWdlcigpLnJldm9rZSh1cmwpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01VUkwuaAppbmRleCA4NmVhNWZmMDEzMjVmNDI1NDEyODIzOWFhZTAzZDYw
MDM0ZjU2MDRiLi5iMzU4MjYzMjQwODQyNDA2ZWU4NTkwOGVjMDVhNmVlYmQ0MDYwMDgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVVJMLmgKQEAgLTM2LDkgKzM2LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQmxvYjsKLWNsYXNzIE1lZGlhU291cmNlOwotY2xhc3MgTWVkaWFTdHJlYW07CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgVVJMUmVnaXN0cmFibGU7CiAKIGNsYXNz
IERPTVVSTCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVVSTD4gewogCkBAIC01MCwxMiArNDksOCBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgQmxvYiopOwogICAgIHN0YXRpYyB2b2lkIHJldm9rZU9iamVjdFVSTChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJik7Ci0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSAgICBzdGF0aWMgU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgTWVkaWFTb3VyY2UqKTsKLSNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0gICAgc3RhdGljIFN0cmluZyBjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIE1lZGlhU3RyZWFtKik7Ci0jZW5kaWYKKworICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRl
UHVibGljVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBVUkxSZWdpc3RyYWJsZSopOwogI2Vu
ZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwKaW5kZXggZDEzMjFhMGFjNzEyYTBiMTM0ZTZi
MTc1MGY4ZTAzOGIwZTk0N2U1My4uNDZkNDc0ODY5MzNiMWRlNzdiZGUwOWJhN2UzMzQ0OWUxYzVk
NmNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmlkbApAQCAtMzQsMTIgKzM0LDYgQEAKICAgICBJbnRl
cmZhY2VOYW1lPVVSTCwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFj
ZSBET01VUkwgewotI2lmIGRlZmluZWQoRU5BQkxFX01FRElBX1NPVVJDRSkgJiYgRU5BQkxFX01F
RElBX1NPVVJDRQotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3RhdGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwo
TWVkaWFTb3VyY2U/IHNvdXJjZSk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9T
VFJFQU0pICYmIEVOQUJMRV9NRURJQV9TVFJFQU0KLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01TdHJp
bmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlhU3RyZWFtPyBzdHJlYW0pOwotI2VuZGlmCiAgICAgW0Nh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1O
dWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChCbG9iPyBibG9iKTsKICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIHZvaWQgcmV2b2tlT2JqZWN0
VVJMKERPTVN0cmluZyB1cmwpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IDNhOWE2ZDkzMmM2ZjYwMjdiM2JiMjRiNDA1ZWQ4NGI1ZmVkYWFhZjYuLmE4
Y2QyZGM0NjM0YzZhNTBkNTk0Mzc5NmU4ZjVjNGJlODUyMDM4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTE5LDggKzExOSw3IEBACiAjZW5kaWYKIAog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2UuaCIKLSNpbmNs
dWRlICJNZWRpYVNvdXJjZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhU291cmNlLmgi
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCkBAIC0zNzgsNyArMzc3LDcgQEAg
SFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQoKQogICAgICAgICBtX21lZGlhQ29u
dHJvbGxlci0+cmVtb3ZlTWVkaWFFbGVtZW50KHRoaXMpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICBzZXRTb3VyY2VTdGF0ZShNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKTsK
KyAgICBjbG9zZU1lZGlhU291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUFfVjIpCkBAIC04MTEsNyArODEwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVw
YXJlRm9yTG9hZCgpCiAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLmFib3J0RXZl
bnQpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBzZXRTb3VyY2VTdGF0ZShNZWRp
YVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKTsKKyAgICBjbG9zZU1lZGlhU291cmNlKCk7CiAjZW5k
aWYKIAogI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKQEAgLTEwOTgsMTEgKzEw
OTcsMTcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYg
aW5pdGlhbFVSTCwgQ29udGVudFR5cGUmIGNvbnRlbnQKICAgICBBU1NFUlQoIW1fbWVkaWFTb3Vy
Y2UpOwogCiAgICAgaWYgKHVybC5wcm90b2NvbElzKG1lZGlhU291cmNlQmxvYlByb3RvY29sKSkK
LSAgICAgICAgbV9tZWRpYVNvdXJjZSA9IE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCku
bG9va3VwTWVkaWFTb3VyY2UodXJsLnN0cmluZygpKTsKKyAgICAgICAgbV9tZWRpYVNvdXJjZSA9
IEhUTUxNZWRpYVNvdXJjZTo6bG9va3VwKHVybC5zdHJpbmcoKSk7CiAKICAgICBpZiAobV9tZWRp
YVNvdXJjZSkgewotICAgICAgICBpZiAoIW1fcGxheWVyLT5sb2FkKHVybCwgbV9tZWRpYVNvdXJj
ZSkpCisgICAgICAgIGlmIChtX21lZGlhU291cmNlLT5hdHRhY2hUb0VsZW1lbnQoKSkKKyAgICAg
ICAgICAgIG1fcGxheWVyLT5sb2FkKHVybCwgbV9tZWRpYVNvdXJjZSk7CisgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciByZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNl
LCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQorICAgICAgICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyBy
ZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgorICAgICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7
CiAgICAgICAgICAgICBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6OkZvcm1hdEVycm9y
KTsKKyAgICAgICAgfQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgaWYgKCFtX3BsYXllci0+bG9h
ZCh1cmwsIGNvbnRlbnRUeXBlLCBrZXlTeXN0ZW0pKQpAQCAtMTYwOCw3ICsxNjEzLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojpub25lU3VwcG9ydGVkKCkKICAgICBzY2hlZHVsZUV2ZW50KGV2
ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAg
c2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VN
ZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICAgICAvLyA4IC0gU2V0IHRoZSBlbGVtZW50J3MgZGVs
YXlpbmctdGhlLWxvYWQtZXZlbnQgZmxhZyB0byBmYWxzZS4gVGhpcyBzdG9wcyBkZWxheWluZyB0
aGUgbG9hZCBldmVudC4KQEAgLTE2MzksNyArMTY0NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFFbmdpbmVFcnJvcihQYXNzUmVmUHRyPE1lZGlhRXJyb3I+IGVycikKICAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKIAogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7
CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICAgICAvLyA0IC0gU2V0IHRoZSBl
bGVtZW50J3MgbmV0d29ya1N0YXRlIGF0dHJpYnV0ZSB0byB0aGUgTkVUV09SS19FTVBUWSB2YWx1
ZSBhbmQgcXVldWUgYQpAQCAtMjE5MCw3ICsyMTk1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzZWVrKGRvdWJsZSB0aW1lLCBFeGNlcHRpb25Db2RlJiBlYykKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogICAgIC8vIEFsd2F5cyBub3RpZnkgdGhlIG1lZGlhIGVuZ2luZSBvZiBhIHNlZWsg
aWYgdGhlIHNvdXJjZSBpcyBub3QgY2xvc2VkLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgc291cmNl
IGlzCiAgICAgLy8gYWx3YXlzIGluIGEgZmx1c2hlZCBzdGF0ZSB3aGVuIHRoZSAnc2Vla2luZycg
ZXZlbnQgZmlyZXMuCi0gICAgaWYgKG1fbWVkaWFTb3VyY2UgJiYgbV9tZWRpYVNvdXJjZS0+cmVh
ZHlTdGF0ZSgpICE9IE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpCisgICAgaWYgKG1fbWVk
aWFTb3VyY2UgJiYgbV9tZWRpYVNvdXJjZS0+aXNDbG9zZWQoKSkKICAgICAgICAgbm9TZWVrUmVx
dWlyZWQgPSBmYWxzZTsKICNlbmRpZgogCkBAIC0yNTU0LDE0ICsyNTU5LDEzIEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTb3VyY2VTdGF0ZShjb25zdCBTdHJpbmcm
IHN0YXRlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbG9zZU1lZGlhU291cmNlKCkKIHsKICAg
ICBpZiAoIW1fbWVkaWFTb3VyY2UpCi0gICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybjsK
IAotICAgIG1fbWVkaWFTb3VyY2UtPnNldFJlYWR5U3RhdGUoc3RhdGUpOwotICAgIGlmIChzdGF0
ZSA9PSBNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKQotICAgICAgICBtX21lZGlhU291cmNl
ID0gMDsKKyAgICBtX21lZGlhU291cmNlLT5jbG9zZSgpOworICAgIG1fbWVkaWFTb3VyY2UgPSAw
OwogfQogI2VuZGlmCiAKQEAgLTM4NzQsNiArMzg3OCwxMiBAQCBQYXNzUmVmUHRyPFRpbWVSYW5n
ZXM+IEhUTUxNZWRpYUVsZW1lbnQ6OmJ1ZmZlcmVkKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxh
eWVyKQogICAgICAgICByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisKKyNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQorICAgIGlmIChtX21lZGlhU291cmNlKQorICAgICAgICByZXR1cm4gbV9t
ZWRpYVNvdXJjZS0+YnVmZmVyZWQoKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIG1fcGxheWVyLT5i
dWZmZXJlZCgpOwogfQogCkBAIC00MDkxLDcgKzQxMDEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnVzZXJDYW5jZWxsZWRMb2FkKCkKICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5h
Ym9ydEV2ZW50KTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3Rh
dGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgp
OwogI2VuZGlmCiAKICAgICAvLyA0IC0gSWYgdGhlIG1lZGlhIGVsZW1lbnQncyByZWFkeVN0YXRl
IGF0dHJpYnV0ZSBoYXMgYSB2YWx1ZSBlcXVhbCB0byBIQVZFX05PVEhJTkcsIHNldCB0aGUgCkBA
IC00MTM2LDcgKzQxNDYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5
ZXIoaW50IGZsYWdzKQogI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKIAogI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNs
b3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICAgICBt
X3BsYXllci5jbGVhcigpOwpAQCAtNDc4NSw3ICs0Nzk1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpjcmVhdGVNZWRpYVBsYXllcigpCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAg
IGlmIChtX21lZGlhU291cmNlKQotICAgICAgICBtX21lZGlhU291cmNlLT5zZXRSZWFkeVN0YXRl
KE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgICAgICBtX21lZGlhU291cmNlLT5j
bG9zZSgpOwogI2VuZGlmCiAKICAgICBtX3BsYXllciA9IE1lZGlhUGxheWVyOjpjcmVhdGUodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDBjN2IxNGM1NDJl
MDY3MDBmNzM2MWQwYTNhNDg3NjBlZmQyZDBhZTcuLjU4Y2ExODBhMzk1ZThlMjgwMGRkZjVlZmZj
OTZhZDlkNmIyMWVjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIC8v
ICBNZWRpYSBTb3VyY2UuCi0gICAgdm9pZCBzZXRTb3VyY2VTdGF0ZShjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZiAKIAogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCkBAIC02NzQsNyArNjc0LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9wcm9j
ZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjazsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0g
ICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOworICAgIFJlZlB0cjxIVE1MTWVk
aWFTb3VyY2U+IG1fbWVkaWFTb3VyY2U7CiAjZW5kaWYKIAogICAgIG11dGFibGUgZG91YmxlIG1f
Y2FjaGVkVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU291cmNlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNWJhMTQxNDMyZmRhZTc4ZTdhZTBhZjMxY2M5YWY0OTA4MGRmMmQyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuY3BwCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhU291cmNlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVVJMUmVnaXN0cnkqIEhUTUxNZWRpYVNvdXJjZTo6
c19yZWdpc3RyeSA9IDA7CisKK3ZvaWQgSFRNTE1lZGlhU291cmNlOjpzZXRSZWdpc3RyeShVUkxS
ZWdpc3RyeSogcmVnaXN0cnkpCit7CisgICAgQVNTRVJUKCFzX3JlZ2lzdHJ5KTsKKyAgICBzX3Jl
Z2lzdHJ5ID0gcmVnaXN0cnk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk1MjNiZjViNDdmYjlmMDg2ZjQ0OTg5ODhiYTgzODI4ZGViY2JhYjgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5o
CkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxNZWRpYVNvdXJjZV9oCisjZGVmaW5lIEhUTUxN
ZWRpYVNvdXJjZV9oCisKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTb3VyY2VQcml2
YXRlOworY2xhc3MgVGltZVJhbmdlczsKKworY2xhc3MgSFRNTE1lZGlhU291cmNlIDogcHVibGlj
IFVSTFJlZ2lzdHJhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBzZXRSZWdpc3RyeShV
UkxSZWdpc3RyeSopOworICAgIHN0YXRpYyBIVE1MTWVkaWFTb3VyY2UqIGxvb2t1cChjb25zdCBT
dHJpbmcmIHVybCkgeyByZXR1cm4gc19yZWdpc3RyeSA/IHN0YXRpY19jYXN0PEhUTUxNZWRpYVNv
dXJjZSo+KHNfcmVnaXN0cnktPmxvb2t1cCh1cmwpKSA6IDA7IH0KKworICAgIHZvaWQgcmVmKCkg
eyByZWZIVE1MTWVkaWFTb3VyY2UoKTsgfQorICAgIHZvaWQgZGVyZWYoKSB7IGRlcmVmSFRNTE1l
ZGlhU291cmNlKCk7IH0KKworICAgIC8vIENhbGxlZCB3aGVuIGFuIEhUTUxNZWRpYUVsZW1lbnQg
aXMgYXR0ZW1wdGluZyB0byBhdHRhY2ggdG8gdGhpcyBvYmplY3QsCisgICAgLy8gYW5kIGhlbHBz
IGVuZm9yY2UgYXR0YWNobWVudCB0byBhdCBtb3N0IG9uZSBlbGVtZW50IGF0IGEgdGltZS4KKyAg
ICAvLyBJZiBhbHJlYWR5IGF0dGFjaGVkLCByZXR1cm5zIGZhbHNlLiBPdGhlcndpc2UsIG11c3Qg
YmUgaW4KKyAgICAvLyAnY2xvc2VkJyBzdGF0ZSwgYW5kIHJldHVybnMgdHJ1ZSB0byBpbmRpY2F0
ZSBhdHRhY2htZW50IHN1Y2Nlc3MuCisgICAgLy8gUmVhdHRhY2htZW50IGFsbG93ZWQgYnkgZmly
c3QgY2FsbGluZyBjbG9zZSgpIChldmVuIGlmIGFscmVhZHkgaW4gJ2Nsb3NlZCcpLgorICAgIHZp
cnR1YWwgYm9vbCBhdHRhY2hUb0VsZW1lbnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFBy
aXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVkaWFTb3VyY2VQcml2YXRlPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zZWQoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCByZWZIVE1MTWVkaWFTb3VyY2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmSFRNTE1lZGlhU291cmNlKCkgPSAwOworCisgICAgLy8gVVJMUmVnaXN0cmFibGUKKyAgICB2
aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICpz
X3JlZ2lzdHJ5OyB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIFVSTFJlZ2lzdHJ5KiBzX3JlZ2lz
dHJ5OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UHVibGljVVJMTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRkN2IwN2MxNWFjMzdjZTFlNDQzYmY2ODNhNzI0OGY4N2NhNWVj
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTW90b3Jv
bGEgTW9iaWxpdHkgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlB1Ymxp
Y1VSTE1hbmFnZXIuaCIKKworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJVUkxSZWdpc3Ry
eS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit2b2lkIFB1YmxpY1VSTE1hbmFnZXI6OnJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4sIGNvbnN0IEtVUkwmIHVybCwgVVJMUmVnaXN0cmFibGUqIHJlZ2lzdHJhYmxlKQor
eworICAgIFJlZ2lzdHJ5VVJMTWFwOjppdGVyYXRvciBmb3VuZCA9IG1fcmVnaXN0cnlUb1VSTC5h
ZGQoJnJlZ2lzdHJhYmxlLT5yZWdpc3RyeSgpLCBVUkxTZXQoKSkuaXRlcmF0b3I7CisgICAgZm91
bmQtPmtleS0+cmVnaXN0ZXJVUkwob3JpZ2luLCB1cmwsIHJlZ2lzdHJhYmxlKTsKKyAgICBmb3Vu
ZC0+dmFsdWUuYWRkKHVybC5zdHJpbmcoKSk7Cit9CisKK3ZvaWQgUHVibGljVVJMTWFuYWdlcjo6
cmV2b2tlKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBmb3IgKFJlZ2lzdHJ5VVJMTWFwOjppdGVy
YXRvciBpID0gbV9yZWdpc3RyeVRvVVJMLmJlZ2luKCk7IGkgIT0gbV9yZWdpc3RyeVRvVVJMLmVu
ZCgpOyArK2kpIHsKKyAgICAgICAgaWYgKGktPnZhbHVlLmNvbnRhaW5zKHVybC5zdHJpbmcoKSkp
IHsKKyAgICAgICAgICAgIGktPmtleS0+dW5yZWdpc3RlclVSTCh1cmwpOworICAgICAgICAgICAg
aS0+dmFsdWUucmVtb3ZlKHVybC5zdHJpbmcoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KK30KKwordm9pZCBQdWJsaWNVUkxNYW5hZ2VyOjpjb250ZXh0RGVzdHJveWVk
KCkKK3sKKyAgICBmb3IgKFJlZ2lzdHJ5VVJMTWFwOjppdGVyYXRvciBpID0gbV9yZWdpc3RyeVRv
VVJMLmJlZ2luKCk7IGkgIT0gbV9yZWdpc3RyeVRvVVJMLmVuZCgpOyArK2kpIHsKKyAgICAgICAg
Zm9yIChVUkxTZXQ6Oml0ZXJhdG9yIGogPSBpLT52YWx1ZS5iZWdpbigpOyBqICE9IGktPnZhbHVl
LmVuZCgpOyArK2opCisgICAgICAgICAgICBpLT5rZXktPnVucmVnaXN0ZXJVUkwoS1VSTChQYXJz
ZWRVUkxTdHJpbmcsICpqKSk7CisgICAgfQorCisgICAgbV9yZWdpc3RyeVRvVVJMLmNsZWFyKCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmgKaW5kZXggZTE3ZTQ2
YThkNmJhZjdkYjZjYTQ1ZGY3ODI1YjAxNzg1YjJiNmQ0Zi4uZjAzOGZiNWI5YTI4OTAyODlmMGRl
NzA5MDRkNmYzZjAwZGZkYzdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJs
aWNVUkxNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2Vy
LmgKQEAgLTI3LDYzICsyNywzMyBAQAogI2RlZmluZSBQdWJsaWNVUkxNYW5hZ2VyX2gKIAogI2lm
IEVOQUJMRShCTE9CKQotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNs
dWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIK
LSNpbmNsdWRlICJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgiCi0jZW5kaWYKLQotI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2UuaCIKLSNpbmNsdWRlICJNZWRpYVNv
dXJjZVJlZ2lzdHJ5LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBL
VVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
OworY2xhc3MgVVJMUmVnaXN0cnk7CitjbGFzcyBVUkxSZWdpc3RyYWJsZTsKIAogY2xhc3MgUHVi
bGljVVJMTWFuYWdlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NPd25QdHI8UHVibGljVVJMTWFuYWdlcj4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRQdHIobmV3IFB1YmxpY1VSTE1hbmFnZXIpOyB9Ci0gICAgdm9pZCBjb250ZXh0RGVzdHJv
eWVkKCkKLSAgICB7Ci0gICAgICAgIEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgYmxvYlVSTHNF
bmQgPSBtX2Jsb2JVUkxzLmVuZCgpOwotICAgICAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRl
cmF0b3IgaXRlciA9IG1fYmxvYlVSTHMuYmVnaW4oKTsgaXRlciAhPSBibG9iVVJMc0VuZDsgKytp
dGVyKQotICAgICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6dW5yZWdpc3RlckJsb2JV
UkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsICppdGVyKSk7Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotICAgICAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIHN0cmVhbVVSTHNFbmQgPSBt
X3N0cmVhbVVSTHMuZW5kKCk7Ci0gICAgICAgIGZvciAoSGFzaFNldDxTdHJpbmc+OjppdGVyYXRv
ciBpdGVyID0gbV9zdHJlYW1VUkxzLmJlZ2luKCk7IGl0ZXIgIT0gc3RyZWFtVVJMc0VuZDsgKytp
dGVyKQotICAgICAgICAgICAgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0cnkoKS51bnJlZ2lz
dGVyTWVkaWFTdHJlYW1VUkwoS1VSTChQYXJzZWRVUkxTdHJpbmcsICppdGVyKSk7Ci0jZW5kaWYK
LSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgICAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJh
dG9yIHNvdXJjZVVSTHNFbmQgPSBtX3NvdXJjZVVSTHMuZW5kKCk7Ci0gICAgICAgIGZvciAoSGFz
aFNldDxTdHJpbmc+OjppdGVyYXRvciBpdGVyID0gbV9zb3VyY2VVUkxzLmJlZ2luKCk7IGl0ZXIg
IT0gc291cmNlVVJMc0VuZDsgKytpdGVyKQotICAgICAgICAgICAgTWVkaWFTb3VyY2VSZWdpc3Ry
eTo6cmVnaXN0cnkoKS51bnJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwoS1VSTChQYXJzZWRVUkxTdHJp
bmcsICppdGVyKSk7Ci0jZW5kaWYKLSAgICB9CiAKLSAgICBIYXNoU2V0PFN0cmluZz4mIGJsb2JV
UkxzKCkgeyByZXR1cm4gbV9ibG9iVVJMczsgfQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgSGFzaFNldDxTdHJpbmc+JiBzdHJlYW1VUkxzKCkgeyByZXR1cm4gbV9zdHJlYW1VUkxzOyB9
Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIEhhc2hTZXQ8U3RyaW5nPiYg
c291cmNlVVJMcygpIHsgcmV0dXJuIG1fc291cmNlVVJMczsgfQotI2VuZGlmCisgICAgdm9pZCBy
ZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmLCBVUkxSZWdpc3RyYWJsZSop
OworICAgIHZvaWQgcmV2b2tlKGNvbnN0IEtVUkwmKTsKKyAgICB2b2lkIGNvbnRleHREZXN0cm95
ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoU2V0PFN0cmluZz4gbV9ibG9iVVJMczsKLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3N0cmVhbVVSTHM7Ci0j
ZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3Nv
dXJjZVVSTHM7Ci0jZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nPiBVUkxTZXQ7Cisg
ICAgdHlwZWRlZiBIYXNoTWFwPFVSTFJlZ2lzdHJ5KiwgVVJMU2V0ID4gUmVnaXN0cnlVUkxNYXA7
CisgICAgUmVnaXN0cnlVUkxNYXAgbV9yZWdpc3RyeVRvVVJMOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxSZWdpc3RyeS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxSZWdpc3RyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ODdjOWM5
M2Y5MmQwNWE0ZWY5ZmQxNWYzMzM1Y2MzODUzMmIwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1VSTFJlZ2lzdHJ5LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVVJM
UmVnaXN0cnlfaAorI2RlZmluZSBVUkxSZWdpc3RyeV9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLVVJMOworY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CitjbGFzcyBVUkxSZWdpc3RyeTsKKworY2xhc3MgVVJMUmVnaXN0cmFi
bGUgeworcHVibGljOgorICAgIHZpcnR1YWwgflVSTFJlZ2lzdHJhYmxlKCkgeyB9CisgICAgdmly
dHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCA9IDA7Cit9OworCitjbGFzcyBVUkxS
ZWdpc3RyeSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+VVJMUmVnaXN0cnkoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwgVVJMUmVnaXN0cmFibGUqKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYpID0gMDsKKworICAgIC8vIFRoaXMg
aXMgYW4gb3B0aW9uYWwgQVBJCisgICAgdmlydHVhbCBVUkxSZWdpc3RyYWJsZSogbG9va3VwKGNv
bnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVUkxSZWdpc3RyeV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggM2Iw
ZDYzZjdlMGRlYmQwMTMwYmVjOWQwOWQ3MTM4NGY0NjAzZmU1My4uYjQ5MTIxNmRlMWU2YmNlNzc4
MjIyNDUxMTU1NjAxOTQyN2JhOWQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtNDUsNyArNDUsNyBAQAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1lZGlhU291cmNlLmgiCisjaW5jbHVk
ZSAiSFRNTE1lZGlhU291cmNlLmgiCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQpAQCAtOTMs
NyArOTMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
KSB7IH0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pIHsgfQog
I2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSB7IH0KIApAQCAtMzk0LDcgKzM5
NCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBDb250
ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotYm9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8
TWVkaWFTb3VyY2U+IG1lZGlhU291cmNlKQorYm9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBL
VVJMJiB1cmwsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPiBtZWRpYVNvdXJjZSkKIHsKICAg
ICBtX21lZGlhU291cmNlID0gbWVkaWFTb3VyY2U7CiAgICAgbV9jb250ZW50TUlNRVR5cGUgPSAi
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmlu
ZGV4IDkyNzM0Y2FiNTBjYzMwMzRlNGFjZTJiMzA4ZDVmNzg3OWNhODVjOTguLmM2NjM1MTM0ODg5
MmIyNzUyNjM0YmJlNDg3MzQ1ZjIwNzM2M2VmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNjYsMTAgKzY2LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEdTdHJlYW1lckdXb3JsZDsKLWNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotY2xhc3MgTWVkaWFTb3VyY2U7CitjbGFzcyBI
VE1MTWVkaWFTb3VyY2U7CiAjZW5kaWYKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZTsKIGNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOwogCiAvLyBTdHJ1Y3R1cmUgdGhhdCB3
aWxsIGhvbGQgZXZlcnkgbmF0aXZlCkBAIC0yNzksNyArMjc5LDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBsb2FkKGNvbnN0IEtVUkwmLCBjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtKTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIGJvb2wgbG9hZChjb25z
dCBLVVJMJiwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4pOworICAgIGJvb2wgbG9hZChjb25zdCBL
VVJMJiwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KTsKICNlbmRpZgogICAgIHZvaWQgY2Fu
Y2VsTG9hZCgpOwogCkBAIC0yODgsNyArMjg4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVw
YXJlVG9QbGF5KCk7CiAgICAgdm9pZCBwbGF5KCk7Ci0gICAgdm9pZCBwYXVzZSgpOyAgICAKKyAg
ICB2b2lkIHBhdXNlKCk7CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIC8vIFJl
cHJlc2VudHMgc3luY2hyb25vdXMgZXhjZXB0aW9ucyB0aGF0IGNhbiBiZSB0aHJvd24gZnJvbSB0
aGUgRW5jcnlwdGVkIE1lZGlhIG1ldGhvZHMuCkBAIC0zMTUsNyArMzE1LDcgQEAgcHVibGljOgog
ICAgIGRvdWJsZSByYXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSYXRlKGRvdWJsZSk7CiAKLSAg
ICBib29sIHByZXNlcnZlc1BpdGNoKCkgY29uc3Q7ICAgIAorICAgIGJvb2wgcHJlc2VydmVzUGl0
Y2goKSBjb25zdDsKICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwogCiAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwpAQCAtMzM0LDcgKzMzNCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDbG9z
ZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwogCi0gICAgYm9v
bCBhdXRvcGxheSgpIGNvbnN0OyAgICAKKyAgICBib29sIGF1dG9wbGF5KCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRBdXRvcGxheShib29sKTsKIAogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYpOwpAQCAtNTEyLDcgKzUxMiw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgUmVmUHRyPE1lZGlhU291cmNlPiBtX21l
ZGlhU291cmNlOworICAgIFJlZlB0cjxIVE1MTWVkaWFTb3VyY2U+IG1fbWVkaWFTb3VyY2U7CiAj
ZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggY2JlODBlNmMyN2ZhN2VjZGY3MTdmOGIzMmQ5MTQ5
MWNkZjM2ZWIyZC4uNDQ4NjlmNGRhZTBlYzQzODRlYzA3YzU2MWU2MmQyY2NiNjVjOTc3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJiB1cmwpID0gMDsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAg
IHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPE1lZGlhU291
cmNlPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBQYXNz
UmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pID0gMDsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxMb2FkKCkgPSAwOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAppbmRleCAyYjEwNzRmYmNmYjJlMTRjYTY1
ZDJlNTk1ODMzYmVjNWJmNmU1MTk0Li4yZGZkNThhMjQxMmNhMzc2M2EwY2ZkZDhlYWZjMDJmMTVh
NTA1ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVNvdXJjZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVNvdXJjZVByaXZhdGUuaApAQCAtNTAsNyArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBkb3VibGUgZHVyYXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldER1cmF0aW9uKGRv
dWJsZSkgPSAwOwogICAgIGVudW0gRW5kT2ZTdHJlYW1TdGF0dXMgeyBFb3NOb0Vycm9yLCBFb3NO
ZXR3b3JrRXJyb3IsIEVvc0RlY29kZUVycm9yIH07Ci0gICAgdmlydHVhbCB2b2lkIGVuZE9mU3Ry
ZWFtKEVuZE9mU3RyZWFtU3RhdHVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG1hcmtFbmRPZlN0
cmVhbShFbmRPZlN0cmVhbVN0YXR1cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bm1hcmtFbmRP
ZlN0cmVhbSgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCBkOWQ3MTc4MDdkYzRmNDk4NzdlNDk4MjBk
ZDM4ZjFjMTU2ODViZGZiLi41MmYwM2Y4NDc3NmExMGI0YjI4ZmI2OTA0NzFiMDY2NmU1ZmZjYTQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCkBAIC0xMjksNiArMTI5LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gTWVkaWFQbGF5
ZXJQcml2YXRlUHJpdmF0ZUludGVyZmFjZSBvdmVycmlkZXMuCiAgICAgdmlydHVhbCB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJiB1cmwpOworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisgICAgdmly
dHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+
KSB7IH07CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKIAogICAg
IHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9QbGF5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5o
CmluZGV4IGYyMjZjZGE4NzZlMjNmNzFlZGY1MmYyZDcwN2I1NjViNWRjNGU1NDMuLjcyYjIyNTQw
MWMwOGQ2YzlhODBkYzY4NWM2NmQ2NDJhMTI3OTNiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5oCkBAIC05Nyw2ICs5Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzU2Nhbm5pbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgCiAgICAgdm9pZCBsb2Fk
KGNvbnN0IFN0cmluZyYgdXJsKTsKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorICAgIHZpcnR1
YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPikg
eyB9OworI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CiAgICAgdm9pZCBsb2FkSW50ZXJu
YWwoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgcmVzdW1lTG9hZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQppbmRleCBk
MjJlMmI2NjE5ODFjMDA4ODM3ZGZiYzJjOWE1MzI2MDA2YjJiNGI4Li44ODM2NjQwNTAzYzhmZDRj
MTFlYWQxNmI5ZDk0NTUwNjIxODEwZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTUlNRVR5cGVSZWdpc3RyeU1hYy5tbQpAQCAtNzMsNCArNzMsMTEgQEAgYm9vbCBN
SU1FVHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBNSU1FVHlwZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQorYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5
cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNv
dXJjZWJ1ZmZlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJlZjgyZmFkMjQzZjRlN2ZiYjc4
NTYwMThjOGQ3ODdhOTU3NGY3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisgCitQQVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkg
d2l0aCBlbXB0eSB0eXBlIAorUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBw
b3J0ZWQgdHlwZSAKK1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQg
VlA4IAorUEFTUyBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggaW4g
c2VwYXJhdGUgU291cmNlQnVmZmVycyAKK0ZBSUwgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRo
IEFBQyBhbmQgSC4yNjQgYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAx
LG1wNGEuNDAuMiIgaXMgc3VwcG9ydGVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFRl
c3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNlcGFyYXRlIFNvdXJj
ZUJ1ZmZlcnMgYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIiBpcyBz
dXBwb3J0ZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVm
ZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1hZGRzb3VyY2VidWZmZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDEzNGJlYjdiM2Q2YTRi
OTI5MWM2Mzg0MzJjZjJiNDY0YjM1NmIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVy
Lmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0
aWwuanMiPjwvc2NyaXB0PgorCisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0n
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291
cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZEFj
Y2Vzc0Vycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlh
U291cmNlLmFkZFNvdXJjZUJ1ZmZlcigiIik7IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJhZGRTb3VyY2VCdWZmZXIoKSB0aHJldyBhbiBleGNlcHRpb24gd2hlbiBwYXNzZWQgYW4gZW1w
dHkgc3RyaW5nLiIpOworICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAi
VGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIGVtcHR5IHR5cGUiKTsKKworICAgICAgICAgIG1l
ZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkK
KyAgICAgICAgICB7CisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIk5vdFN1cHBvcnRlZEVy
cm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlhU291cmNl
LmFkZFNvdXJjZUJ1ZmZlcigiaW52YWxpZFR5cGUiKTsgfSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFkZFNvdXJjZUJ1ZmZlcigpIHRocmV3IGFuIGV4Y2VwdGlvbiBmb3IgYW4gdW5zdXBw
b3J0ZWQgdHlwZS4iKTsKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwg
IlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCB1bnN1cHBvcnRlZCB0eXBlIik7CisKKworICAg
ICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRp
YVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBtaW1ldHlwZSA9ICd2aWRl
by93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVl
KE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChtaW1ldHlwZSksIG1pbWV0eXBlICsgIiBpcyBz
dXBwb3J0ZWQiKTsKKworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKG1pbWV0eXBlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUo
c291cmNlQnVmZmVyICE9IG51bGwsICJOZXcgU291cmNlQnVmZmVyIHJldHVybmVkIik7CisgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXSwgc291
cmNlQnVmZmVyLCAiU291cmNlQnVmZmVyIGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMi
KTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VC
dWZmZXJzWzBdLCBzb3VyY2VCdWZmZXIsICJTb3VyY2VCdWZmZXIgaXMgaW4gbWVkaWFTb3VyY2Uu
YWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAg
ICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZvcmJpcyBhbmQgVlA4Iik7CisK
KyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwg
bWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgdmlkZW9NaW1ldHlw
ZSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4Iic7CisgICAgICAgICAgICAgIHZhciBhdWRpb01p
bWV0eXBlID0gJ2F1ZGlvL3dlYm07Y29kZWNzPSJ2b3JiaXMiJzsKKworICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQodmlkZW9NaW1ldHlwZSksIHZp
ZGVvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoYXVkaW9NaW1ldHlwZSksIGF1ZGlvTWltZXR5
cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworCisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJB
ID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHZpZGVvTWltZXR5cGUpOworICAgICAgICAg
ICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihhdWRp
b01pbWV0eXBlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3Vy
Y2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXJBLCAic291cmNlQnVmZmVyQSBpcyBpbiBtZWRpYVNv
dXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyQSwgInNvdXJjZUJ1ZmZl
ckEgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMV0sIHNvdXJjZUJ1ZmZl
ckIsICJzb3VyY2VCdWZmZXJCIGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMiKTsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJz
WzFdLCBzb3VyY2VCdWZmZXJCLCAic291cmNlQnVmZmVyQiBpcyBpbiBtZWRpYVNvdXJjZS5hY3Rp
dmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAg
IH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggVm9yYmlzIGFuZCBWUDggaW4gc2VwYXJh
dGUgU291cmNlQnVmZmVycyIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlv
bih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgdmFyIG1pbWV0eXBlID0gJ3ZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEu
NDAuMiInOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1
cHBvcnRlZChtaW1ldHlwZSksIG1pbWV0eXBlICsgIiBpcyBzdXBwb3J0ZWQiKTsKKworICAgICAg
ICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKG1p
bWV0eXBlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyICE9IG51bGws
ICJOZXcgU291cmNlQnVmZmVyIHJldHVybmVkIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVm
ZmVyIGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZm
ZXIsICJTb3VyY2VCdWZmZXIgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIp
OworICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3Vy
Y2VCdWZmZXIoKSB3aXRoIEFBQyBhbmQgSC4yNjQiKTsKKworICAgICAgICAgIG1lZGlhc291cmNl
X3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAgIHZhciB2aWRlb01pbWV0eXBlID0gJ3ZpZGVvL21wNDtjb2RlY3M9
ImF2YzEuNEQ0MDAxIic7CisgICAgICAgICAgICAgIHZhciBhdWRpb01pbWV0eXBlID0gJ2F1ZGlv
L21wNDtjb2RlY3M9Im1wNGEuNDAuMiInOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKE1l
ZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCh2aWRlb01pbWV0eXBlKSwgdmlkZW9NaW1ldHlwZSAr
ICIgaXMgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgIGFzc2VydF90cnVlKE1lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZChhdWRpb01pbWV0eXBlKSwgYXVkaW9NaW1ldHlwZSArICIgaXMgc3Vw
cG9ydGVkIik7CisKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIodmlkZW9NaW1ldHlwZSk7CisgICAgICAgICAgICAgIHZhciBzb3Vy
Y2VCdWZmZXJCID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKGF1ZGlvTWltZXR5cGUpOwor
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMF0s
IHNvdXJjZUJ1ZmZlckEsICJzb3VyY2VCdWZmZXJBIGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1
ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVT
b3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXJBLCAic291cmNlQnVmZmVyQSBpcyBpbiBtZWRp
YVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1sxXSwgc291cmNlQnVmZmVyQiwgInNvdXJjZUJ1
ZmZlckIgaXMgaW4gbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sIHNvdXJjZUJ1
ZmZlckIsICJzb3VyY2VCdWZmZXJCIGlzIGluIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZl
cnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRk
U291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZl
cnMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
YXBwZW5kLWJ1ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hcHBlbmQtYnVmZmVyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xYjNjZWU2MmMxOTNmYzhlNDhjMjNlYWQ4MjEwZjJkMjI3ZjViYTZhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisgCitQ
QVNTIFRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcigpIGV2ZW50IGRpc3BhdGNoaW5nLiAK
K1BBU1MgVGVzdCBTb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKCkgY2FsbCBkdXJpbmcgYSBwZW5k
aW5nIGFwcGVuZEJ1ZmZlcigpLiAKK1BBU1MgVGVzdCBTb3VyY2VCdWZmZXIuYWJvcnQoKSBjYWxs
IGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVmZmVyKCkuIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZl
ci5hcHBlbmRCdWZmZXIoKSB0cmlnZ2VyaW5nIGFuICdlbmRlZCcgdG8gJ29wZW4nIHRyYW5zaXRp
b24uIAorUEFTUyBUZXN0IE1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZlcigpIGNhbGwgZHVy
aW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4gCitQQVNTIFRlc3QgYXBwZW5kaW5nIGFuIGVt
cHR5IEFycmF5QnVmZmVyVmlldy4gCitQQVNTIFRlc3QgYXBwZW5kaW5nIGFuIGVtcHR5IEFycmF5
QnVmZmVyLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE2ODViNDA3Yjc3ZDk5ZjUyNzc3NjkwM2U1ODZlNmZhMGIzMzIwNDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1hcHBlbmQtYnVmZmVyLmh0bWwKQEAgLTAsMCArMSwxOTkgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxp
bmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mn
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0ID0g
ZnVuY3Rpb24oY2FsbGJhY2ssIGRlc2NyaXB0aW9uKQorICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291
cmNlKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICB2YXIgbWVkaWFUeXBlID0g
J3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIic7CisgICAgICAgICAgICAgICAgICB2YXIg
bWVkaWFVUkwgPSAnL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LndlYm0n
OworICAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNv
dXJjZUJ1ZmZlcihtZWRpYVR5cGUpOworICAgICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGls
LmxvYWRCaW5hcnlEYXRhKHRlc3QsIG1lZGlhVVJMLCBmdW5jdGlvbihtZWRpYURhdGEpCisgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGVzdCwgbWVk
aWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgc291cmNlQnVmZmVyLCBtZWRpYURhdGEpOworCisgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgfSwgZGVzY3JpcHRpb24pOworICAgICAg
ICAgIH07CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRl
c3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQs
ICdlcnJvcicpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVy
LCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3Qu
ZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOwor
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIs
ICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZm
ZXIobWVkaWFEYXRhKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIu
dXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAg
IHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBk
YXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7CisgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgp
OworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBTb3VyY2VCdWZmZXIuYXBw
ZW5kQnVmZmVyKCkgZXZlbnQgZGlzcGF0Y2hpbmcuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJj
ZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2Us
IHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVz
dC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworCisgICAgICAgICAgICAgIHRl
c3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0
ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBk
YXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50
KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAg
ICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobWVkaWFEYXRhKTsKKworICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUg
aXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVy
cm9yIiwKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBzb3VyY2VCdWZmZXIuYXBwZW5k
QnVmZmVyKG1lZGlhRGF0YSk7IH0sCisgICAgICAgICAgICAgICAgICAiYXBwZW5kQnVmZmVyKCkg
dGhyb3dzIGFuIGV4Y2VwdGlvbiB0aGVyZSBpcyBhIHBlbmRpbmcgYXBwZW5kLiIpOworCisgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0
dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRF
dmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZh
bHNlIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgfSwgIlRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcigpIGNhbGwgZHVy
aW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4iKTsKKworICAgICAgICAgIG1lZGlhc291cmNl
X2xvYWRkYXRhX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwg
c291cmNlQnVmZmVyLCBtZWRpYURhdGEpCisgICAgICAgICAgeworICAgICAgICAgICAgICB0ZXN0
LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7CisKKyAgICAgICAgICAgICAgdGVz
dC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIsICJBcHBlbmQgc3RhcnRl
ZC4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJhYm9y
dCIsICJBcHBlbmQgYWJvcnRlZC4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChz
b3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAg
ICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlz
IHRydWUiKTsKKworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYWJvcnQoKTsKKworICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0
cmlidXRlIGlzIGZhbHNlIik7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRF
dmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZh
bHNlIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgfSwgIlRlc3QgU291cmNlQnVmZmVyLmFib3J0KCkgY2FsbCBkdXJpbmcgYSBw
ZW5kaW5nIGFwcGVuZEJ1ZmZlcigpLiIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRh
dGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VC
dWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9u
RXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVj
dEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOwor
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJB
cHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VC
dWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3Vy
Y2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7CisgICAgICAgICAgICAgIGFzc2VydF90
cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7
CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVm
ZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7CisKKyAgICAgICAg
ICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UsICJzb3VyY2VlbmRlZCIsICJN
ZWRpYVNvdXJjZSBzb3VyY2VlbmRlZCBldmVudCIpOworICAgICAgICAgICAgICAgICAgbWVkaWFT
b3VyY2UuZW5kT2ZTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVk
aWFTb3VyY2UucmVhZHlTdGF0ZSwgImVuZGVkIiwgIk1lZGlhU291cmNlIHJlYWR5U3RhdGUgaXMg
J2VuZGVkJyIpOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRG
b3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgImVuZGVkIiwgIk1l
ZGlhU291cmNlIHJlYWR5U3RhdGUgaXMgJ2VuZGVkJyIpOworCisgICAgICAgICAgICAgICAgICB0
ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAic291cmNlb3BlbiIsICJNZWRpYVNvdXJjZSBz
b3VyY2VvcGVuIGV2ZW50Iik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNv
dXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAg
ICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBwZW5k
IHN1Y2Nlc3MuIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1
ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgICAgICBz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgIm9wZW4iLCAiTWVkaWFTb3Vy
Y2UgcmVhZHlTdGF0ZSBpcyAnb3BlbiciKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVl
KHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7Cisg
ICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZl
bnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAib3BlbiIsICJNZWRpYVNvdXJjZSByZWFk
eVN0YXRlIGlzICdvcGVuJyIpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJj
ZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAg
ICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0s
ICJUZXN0IFNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoKSB0cmlnZ2VyaW5nIGFuICdlbmRlZCcg
dG8gJ29wZW4nIHRyYW5zaXRpb24uIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0
YV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1
ZmZlciwgbWVkaWFEYXRhKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25F
dmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7Cisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAiYWJvcnQiLCAiQXBw
ZW5kIGFib3J0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVm
ZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBlbmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOworCisgICAgICAgICAgICAgIGFzc2VydF90
cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7
CisKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3Vy
Y2VCdWZmZXJzLCAicmVtb3Zlc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsK
KyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJz
LCAicmVtb3Zlc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAg
bWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlcik7CisKKyAgICAgICAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJp
YnV0ZSBpcyBmYWxzZSIpOworCisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRT
dGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBzb3VyY2VCdWZmZXIu
YXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7IH0sCisgICAgICAgICAgICAgICAgICAiYXBwZW5kQnVm
ZmVyKCkgdGhyb3dzIGFuIGV4Y2VwdGlvbiBiZWNhdXNlIGl0IGlzbid0IGF0dGFjaGVkIHRvIHRo
ZSBtZWRpYVNvdXJjZSBhbnltb3JlLiIpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4
cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0
ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IE1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZl
cigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4iKTsKKworICAgICAgICAg
IG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJj
ZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNv
dXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLlZJREVPX09OTFlfVFlQRSk7CisK
KyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFy
dCIsICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChz
b3VyY2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBwZW5kIHN1Y2Nlc3MuIik7CisgICAgICAgICAgICAg
IHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBlbmRl
ZC4iKTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihuZXcgVWludDhB
cnJheSgwKSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0
aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAgICB0ZXN0
LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGlu
ZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBhcHBlbmRpbmcgYW4gZW1wdHkg
QXJyYXlCdWZmZXJWaWV3LiIpOworCisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0
aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAg
ICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1l
ZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworCisgICAgICAgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7
CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwg
IkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJj
ZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNv
dXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobmV3IEFycmF5QnVmZmVyKDApKTsKKworICAgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1
dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRz
KGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Zh
bHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIp
OworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgIH0sICJUZXN0IGFwcGVuZGluZyBhbiBlbXB0eSBBcnJheUJ1ZmZlci4iKTsKKworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1idWZmZXJlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU5YjU0MTFkZTk0
ZTljODc4NDE2ZTg3MzEzM2MzYmFiMmY1NTk2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWJ1ZmZlcmVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKyAKK1BBU1MgRGVtdXhlZCBjb250ZW50IHdpdGgg
ZGlmZmVyZW50IGxlbmd0aHMgCitQQVNTIE11eGVkIHRyYWNrcyB3aXRoIGRpZmZlcmVudCBsZW5n
dGhzIAorUEFTUyBEZW11eGVkIGNvbnRlbnQgd2l0aCBhbiBlbXB0eSBidWZmZXJlZCByYW5nZSBv
biBvbmUgU291cmNlQnVmZmVyIAorUEFTUyBNdXhlZCBjb250ZW50IGVtcHR5IGJ1ZmZlcmVkIHJh
bmdlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWJ1ZmZlcmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU3MjgzOGEwNjQ3YjE5M2JiMWQyZTRiY2E2NzdmNzg4YmNiMjNlMTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1idWZmZXJlZC5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVk
aWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+
CisgICAgICAgICAgICBmdW5jdGlvbiBtZWRpYVNvdXJjZURlbXV4ZWRUZXN0KGNhbGxiYWNrLCBk
ZXNjcmlwdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgbWFuaWZlc3RG
aWxlbmFtZUEgPSAid2VibS90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uIjsK
KyAgICAgICAgICAgICAgICB2YXIgbWFuaWZlc3RGaWxlbmFtZUIgPSAid2VibS90ZXN0LXYtMTI4
ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24iOworICAgICAgICAgICAgICAgIG1l
ZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5wYXVz
ZSgpOworICAgICAgICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwg
J2Vycm9yJyk7CisgICAgICAgICAgICAgICAgICAgIHRlc3QuZW5kT25FdmVudChtZWRpYUVsZW1l
bnQsICdlbmRlZCcpOworCisgICAgICAgICAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5mZXRj
aE1hbmlmZXN0QW5kRGF0YSh0ZXN0LCBtYW5pZmVzdEZpbGVuYW1lQSwgZnVuY3Rpb24odHlwZUEs
IGRhdGFBKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBN
ZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEodGVzdCwgbWFuaWZlc3RGaWxlbmFt
ZUIsIGZ1bmN0aW9uKHR5cGVCLCBkYXRhQikKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodHlw
ZUEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcih0eXBlQik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyht
ZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0aCwgMik7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWxsYmFjayh0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNl
LCBkYXRhQSwgZGF0YUIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0sIGRlc2NyaXB0aW9uKTsKKyAgICAgICAg
ICAgIH07CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFwcGVuZERhdGEodGVzdCwgbWVkaWFTb3Vy
Y2UsIGRhdGFBLCBkYXRhQiwgY2FsbGJhY2spCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgdmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBd
OworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJCID0gbWVkaWFTb3VyY2UuYWN0aXZl
U291cmNlQnVmZmVyc1sxXTsKKworICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291
cmNlQnVmZmVyQSwgInVwZGF0ZSIpOworICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQo
c291cmNlQnVmZmVyQSwgInVwZGF0ZWVuZCIpOworICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZl
ckEuYXBwZW5kQnVmZmVyKGRhdGFBKTsKKworICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZl
bnQoc291cmNlQnVmZmVyQiwgInVwZGF0ZSIpOworICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0
RXZlbnQoc291cmNlQnVmZmVyQiwgInVwZGF0ZWVuZCIpOworICAgICAgICAgICAgICAgIHNvdXJj
ZUJ1ZmZlckIuYXBwZW5kQnVmZmVyKGRhdGFCKTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2Fp
dEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0aW1lUmFuZ2VzVG9TdHJpbmcocmFuZ2VzKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgdmFyIHMgPSAieyI7CisgICAgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgIHMgKz0gIiBbIiArIHJhbmdlcy5zdGFydChpKS50b0ZpeGVkKDMpICsgIiwgIiArIHJh
bmdlcy5lbmQoaSkudG9GaXhlZCgzKSArICIpIjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgIHJldHVybiBzICsgIiB9IjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gYXNzZXJ0QnVmZmVyZWRFcXVhbHMob2JqLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHRpbWVSYW5nZXNUb1N0
cmluZyhvYmouYnVmZmVyZWQpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYWN0dWFs
LCBleHBlY3RlZCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBt
ZWRpYVNvdXJjZURlbXV4ZWRUZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFT
b3VyY2UsIGRhdGFBLCBkYXRhQikgeworICAgICAgICAgICAgICAgIGFwcGVuZERhdGEodGVzdCwg
bWVkaWFTb3VyY2UsIGRhdGFBLCBkYXRhQiwgZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZl
cmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IFswLjAwMCwg
Mi4wMDEpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IFswLjAw
MCwgMi4wMDEpIH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKworICAgICAgICAgICAgICAgICAgICBh
c3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAi
eyBbMC4wMDAsIDIuMDIzKSB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0i
KTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2Uu
YWN0aXZlU291cmNlQnVmZmVyc1sxXSwgInsgWzAuMDAwLCAyLjAwMSkgfSIsICJtZWRpYVNvdXJj
ZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1
ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYUVs
ZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJEZW11eGVkIGNvbnRlbnQgd2l0aCBk
aWZmZXJlbnQgbGVuZ3RocyIpOworCisgICAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0
aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBhdXNlKCk7CisgICAgICAgICAgICAgICAgdGVzdC5m
YWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICAgICAgICAgIHRlc3Qu
ZW5kT25FdmVudChtZWRpYUVsZW1lbnQsICdlbmRlZCcpOworCisgICAgICAgICAgICAgICAgTWVk
aWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3QsICJ3ZWJtL3Rlc3QtYXYtMzg0
ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24iLCBmdW5jdGlv
bih0eXBlLCBkYXRhKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcih0eXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRh
dGVlbmQiKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihk
YXRhKTsKKworICAgICAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhm
dW5jdGlvbigpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0s
ICJ7IFswLjAwMCwgMi4wMDQpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sw
XSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFF
bGVtZW50LCAieyBbMC4wMDAsIDIuMDA0KSB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIpOwor
CisgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5lbmRPZlN0cmVhbSgpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBbMC4wMDAsIDIuMDIzKSB9IiwgIm1lZGlhU291cmNl
LmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRp
YUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSwgIk11eGVkIHRyYWNrcyB3aXRoIGRpZmZlcmVudCBsZW5ndGhzIik7CisKKworICAg
ICAgICAgICAgbWVkaWFTb3VyY2VEZW11eGVkVGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1l
bnQsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmRE
YXRhKHRlc3QsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIuc3ViYXJyYXkoMCwgMzE4KSwgZnVu
Y3Rpb24oKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVm
ZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAw
LCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNv
dXJjZUJ1ZmZlcnNbMV0sICJ7IH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sx
XSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1l
bnQsICJ7IH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKworICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBb
MC4wMDAsIDIuMDIzKSB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1sxXSwgInsgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZm
ZXJzWzFdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlh
RWxlbWVudCwgInsgfSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0s
ICJEZW11eGVkIGNvbnRlbnQgd2l0aCBhbiBlbXB0eSBidWZmZXJlZCByYW5nZSBvbiBvbmUgU291
cmNlQnVmZmVyIik7CisKKyAgICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVz
dCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsKKyAgICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2
ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7CisgICAgICAgICAgICAgICAgdGVzdC5lbmRPbkV2
ZW50KG1lZGlhRWxlbWVudCwgJ2VuZGVkJyk7CisKKyAgICAgICAgICAgICAgICBNZWRpYVNvdXJj
ZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEodGVzdCwgIndlYm0vdGVzdC1hdi0zODRrLTQ0MTAw
SHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiIsIGZ1bmN0aW9uKHR5cGUs
IGRhdGEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB2YXIgc291cmNl
QnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHR5cGUpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIp
OworICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGRhdGEuc3Vi
YXJyYXkoMCwgNDA1MikpOworCisgICAgICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVj
dGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNl
QnVmZmVyc1swXSwgInsgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1l
bnQsICJ7IH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNb
MF0sICJ7IH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyB9
IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIpOworCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9LCAiTXV4ZWQgY29udGVudCBlbXB0eSBidWZmZXJlZCByYW5nZXMuIik7
CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNsb3Nl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NWNlMWJkOTM4
NzdkNTc5ZjM0MmNlNzM3MjFiY2FkYzIzZDJlZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorIAorUEFTUyBUZXN0IGF0dHJpYnV0ZSB2YWx1ZXMg
b24gYSBjbG9zZWQgTWVkaWFTb3VyY2Ugb2JqZWN0LiAKK1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZm
ZXIoKSB3aGlsZSBjbG9zZWQuIAorUEFTUyBUZXN0IHJlbW92ZVNvdXJjZUJ1ZmZlcigpIHdoaWxl
IGNsb3NlZC4gCitQQVNTIFRlc3QgZW5kT2ZTdHJlYW0oKSB3aGlsZSBjbG9zZWQuIAorUEFTUyBU
ZXN0IHNldHRpbmcgZHVyYXRpb24gd2hpbGUgY2xvc2VkLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jbG9zZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTMzMWRmZDQwNzUxYWNmMDUxNjNkOWJlNmRkNDdm
OGU2OWNlYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLmh0bWwKQEAgLTAsMCArMSw3MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyc+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgp
OworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMu
bGVuZ3RoLCAwLCAic291cmNlQnVmZmVycyBpcyBlbXB0eSIpOworICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMubGVuZ3RoLCAwLCAiYWN0
aXZlU291cmNlQnVmZmVycyBpcyBlbXB0eSIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJjbG9zZWQiLCAicmVhZHlTdGF0ZSBpcyAnY2xvc2Vk
JyIpOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShOdW1iZXIuaXNOYU4obWVkaWFTb3VyY2Uu
ZHVyYXRpb24pLCAiZHVyYXRpb24gaXMgTmFOIik7CisgICAgICAgICAgfSwgIlRlc3QgYXR0cmli
dXRlIHZhbHVlcyBvbiBhIGNsb3NlZCBNZWRpYVNvdXJjZSBvYmplY3QuIik7CisKKyAgICAgICAg
ICB0ZXN0KGZ1bmN0aW9uICgpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgbWVkaWFT
b3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygi
SW52YWxpZFN0YXRlRXJyb3IiLAorICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG1lZGlh
U291cmNlLmFkZFNvdXJjZUJ1ZmZlcigndmlkZW8vd2VibTtjb2RlY3M9InZwOCInKTsgfSwKKyAg
ICAgICAgICAgICAgICAgICJhZGRTb3VyY2VCdWZmZXIoKSB0aHJvd3MgYW4gZXhjZXB0aW9uIHdo
ZW4gY2xvc2VkLiIpOworICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdoaWxl
IGNsb3NlZC4iKTsKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwg
bWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZh
ciBWT1JCSVNfVFlQRSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idm9yYmlzIic7CisgICAgICAgICAg
ICAgIHZhciBBQUNfVFlQRSA9ICd2aWRlby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjIiJzsKKyAgICAg
ICAgICAgICAgdmFyIG1lZGlhVHlwZSA9IE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZChWT1JC
SVNfVFlQRSkgPyBWT1JCSVNfVFlQRSA6IEFBQ19UWVBFOworICAgICAgICAgICAgICB2YXIgc291
cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKG1lZGlhVHlwZSk7CisKKyAg
ICAgICAgICAgICAgLy8gU2V0dXAgYSBoYW5kbGVyIHRvIHJ1biB3aGVuIHRoZSBNZWRpYVNvdXJj
ZSBjbG9zZXMuCisgICAgICAgICAgICAgIG1lZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3Nv
dXJjZWNsb3NlJywgdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGV2ZW50KQorICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1
ZmZlcnMubGVuZ3RoLCAwLCAic291cmNlQnVmZmVycyBpcyBlbXB0eSIpOworICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0
aCwgMCwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgImNsb3NlZCIsICJyZWFkeVN0
YXRlIGlzICdjbG9zZWQnIik7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJOb3RG
b3VuZEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbWVkaWFTb3Vy
Y2UucmVtb3ZlU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlcik7IH0sCisgICAgICAgICAgICAgICAg
ICAgICAgInJlbW92ZVNvdXJjZUJ1ZmZlcigpIHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBjbG9z
ZWQuIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSkp
OworCisgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdGhlIE1lZGlhU291cmNlIHRvIGNsb3NlLgor
ICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQuc3JjID0gIiI7CisgICAgICAgICAgfSwgIlRlc3Qg
cmVtb3ZlU291cmNlQnVmZmVyKCkgd2hpbGUgY2xvc2VkLiIpOworCisgICAgICAgICAgdGVzdChm
dW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0g
bmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRT
dGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5l
bmRPZlN0cmVhbSgpOyB9LAorICAgICAgICAgICAgICAgICAgImVuZE9mU3RyZWFtKCkgdGhyb3dz
IGFuIGV4Y2VwdGlvbiB3aGVuIGNsb3NlZC4iKTsKKyAgICAgICAgICB9LCAiVGVzdCBlbmRPZlN0
cmVhbSgpIHdoaWxlIGNsb3NlZC4iKTsKKworCisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291
cmNlKCk7CisgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwK
KyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5kdXJhdGlvbiA9IDEw
OyB9LAorICAgICAgICAgICAgICAgICAgIlNldHRpbmcgZHVyYXRpb24gdGhyb3dzIGFuIGV4Y2Vw
dGlvbiB3aGVuIGNsb3NlZC4iKTsKKyAgICAgICAgICB9LCAiVGVzdCBzZXR0aW5nIGR1cmF0aW9u
IHdoaWxlIGNsb3NlZC4iKTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS1tcDQtYS1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmRlZjAz
ZGVjNmVkNzBkZjdkMmU5Y2U4NzA1YWQyOWRjMGU1Njk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS1tcDQtYS1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZB
SUwgVGVzdHMgbXA0IGF1ZGlvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTogYXVk
aW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS1tcDQtYS1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY0MGE2NDg4MjlkMDY0OWE2
ZjUyMDVhZjVkY2E4ODFjNjM3MTdlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0
LWEtYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRp
YXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgImEt
MTI4ay00NDEwMEh6LTFjaCIsICJhLTE5MmstNDQxMDBIei0xY2giLCAiVGVzdHMgbXA0IGF1ZGlv
LW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlmN2YwNjBhMzM3YWVkMjg5ZWZhY2ViZTdkNzE5YjczODY3NTJiMzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IGF1ZGlvIGJpdHJhdGUgY2hh
bmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVj
cz0iYXZjMS40RDQwMDEsbXA0YS40MC4yIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWF1ZGlvLWJpdHJhdGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWF1ZGlvLWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmQy
YjRkMGZhZjU2MGQyYjFhNDZiYWU5OGI4MzFiOTY0MmFiZmY5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS1tcDQtYXYtYXVkaW8tYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmln
Q2hhbmdlVGVzdCgibXA0IiwgImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtm
ciIsICJhdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0
IGF1ZGlvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC1hdi1mcmFtZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVz
aXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDdiNjFlMTkzOTA5MTViNDlhMjVmM2M0NmVi
YmY5MGQ0MTA2M2IzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVz
aXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IGZyYW1l
IHNpemUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiBhc3NlcnRfdHJ1ZTogdmlkZW8v
bXA0O2NvZGVjcz0iYXZjMS40RDQwMDEsbXA0YS40MC4yIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ1
ZThhZTFkNTdiMzYwNGI5NWMwZWRhMGE1YWU4NjNlNzI0ZDY0MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hh
bmdlVGVzdCgibXA0IiwgImF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmciIs
ICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IGZy
YW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1h
di12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LXZpZGVvLWJp
dHJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNjA5YmUxOTRhNzcwY2U5MGFhYzdmODYx
NDc0YzM3MTBiMGViNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRl
by1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0
IHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiBhc3NlcnRfdHJ1
ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEsbXA0YS40MC4yIiBpcyBzdXBwb3J0ZWQu
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2
LXZpZGVvLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LXZpZGVvLWJpdHJhdGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMmRmOWQwY2UyZDM5MjA0MDE2Mzc2MzMyZTEyN2JkZjUxZTg0NzVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS5odG1sCkBA
IC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Vz
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAg
ICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAg
IG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgImF2LTM4NGstNDQxMDBIei0xY2gt
NjQweDQ4MC0zMGZwcy0xMGtmciIsICJhdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMt
MTBrZnIiLCAiVGVzdHMgbXA0IHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBj
b250ZW50LiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtdi1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWY3MTRlYzBlNDk1Nzlj
YmRiZTU2ZDI2MWJhNWY5ODFmNzk2YzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1t
cDQtdi1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMg
bXA0IHZpZGVvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2Nv
ZGVjcz0iYXZjMS40RDQwMDEiIGlzIHN1cHBvcnRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjJkNzY5NjNjYTZhYjU1NDA0ZWY3Mjc1
NDcwMmJiYzBmZDQxZTkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRy
YXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNl
LXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJtcDQiLCAidi0xMjhrLTMy
MHgyNDAtMzBmcHMtMTBrZnIiLCAidi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMg
bXA0IHZpZGVvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDEwZWNiNWZlMTRiNjcwOTQ2Y2MwNzViNzEwNDFmZWY4Mjg4ZDYzZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBj
aGFuZ2VzLiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEiIGlzIHN1
cHBvcnRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5n
ZS1tcDQtdi1mcmFtZXJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2EyYTM1NWY4ZTU3ZmUyYjM0MjliNjFkNzcxZDliNTIwMTA3MzlhMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLmh0bWwKQEAgLTAsMCAr
MSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwv
c2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFT
b3VyY2VDb25maWdDaGFuZ2VUZXN0KCJtcDQiLCAidi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmciIs
ICJ2LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmciIsICJUZXN0cyBtcDQgdmlkZW8tb25seSBmcmFt
ZSByYXRlIGNoYW5nZXMuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTBk
NGVhNWZhMTY2MDQ5ZDdmZjZkMTY1NTY2OTBiYzM2OWM2MmZhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
IAorRkFJTCBUZXN0cyBtcDQgdmlkZW8tb25seSBmcmFtZSBzaXplIGNoYW5nZXMuIGFzc2VydF90
cnVlOiB2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSIgaXMgc3VwcG9ydGVkLiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lc2l6
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGJm
OTRjYjhiYWQ1MDVmNzljMmUzMDZkNWIwMDRhZDdlMGRhYmZmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5n
ZVRlc3QoIm1wNCIsICJ2LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmciIsICJ2LTEyOGstNjQweDQ4
MC0zMGZwcy0xMGtmciIsICJUZXN0cyBtcDQgdmlkZW8tb25seSBmcmFtZSBzaXplIGNoYW5nZXMu
Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJt
LWEtYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI0YmVjYTk1ZDM1OTc5MTBlOTc1
M2U5MzJhNzU1ZTM0YzFmNGZlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1h
LWJpdHJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJt
IGF1ZGlvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13
ZWJtLWEtYml0cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWEtYml0cmF0ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZmZTIzZDQ3ZDAwNTViOTU0Njc3YjBlNmE0M2U0M2QxN2RmNGIyYmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYS1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0
PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VD
b25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgImEtMTI4ay00NDEwMEh6LTFjaCIsICJhLTE5MmstNDQx
MDBIei0xY2giLCAiVGVzdHMgd2VibSBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNo
YW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJt
LWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZTY0ZDc1OGY4YjJh
M2IyNTljNzE1NDFlZDJhZDMzOWU1OTkwOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LXdlYm0tYXYtYXVkaW8tYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQ
QVNTIFRlc3RzIHdlYm0gYXVkaW8gYml0cmF0ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRl
bnQuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtYXVkaW8tYml0cmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTk4
YzcxYWJiZDk2YTZmZjAxNzNiYjBiNWRjMTVjYjcyYTRiMzcxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZp
Z0NoYW5nZVRlc3QoIndlYm0iLCAiYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEw
a2ZyIiwgImF2LTQ0OGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJUZXN0cyB3
ZWJtIGF1ZGlvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1m
cmFtZXNpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NGUwYjFjYzc1MTAwZWNkZGExMDFi
Y2I2NzgxZTQ4YWUwOTA4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYt
ZnJhbWVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2Vi
bSBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4gCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1h
di1mcmFtZXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWMzM2YxZWVhOTA1NTU0ZmE1ZDU3NjY5Mzg4
YjI0NDdiMDY1NDUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1l
c2l6ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJj
ZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgid2VibSIsICJhdi0zODRr
LTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiYXYtMzg0ay00NDEwMEh6LTFjaC02
NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIHdlYm0gZnJhbWUgc2l6ZSBjaGFuZ2VzIGluIG11
bHRpcGxleGVkIGNvbnRlbnQuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42Zjc4OTQ1ZDc1ZmIyYTYxYmM3YmNlNGVmNzRiY2UyMWY0MmRhNmQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LXZpZGVvLWJpdHJhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIHZpZGVvIGJpdHJhdGUgY2hh
bmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13
ZWJtLWF2LXZpZGVvLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRy
YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzExNzhiYzQwZmIwOGJlNTJmMjA2NGMwZmJkNWIwOTI2YmMx
YjVhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRl
Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0
aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgImF2LTM4NGstNDQx
MDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJhdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0
ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVs
dGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlLXdlYm0tdi1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmM3
MGJkZmQ2NWYwMTJmMmJjOTcyMTNjOTlhNGJjY2Y0MmY0NWE4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisg
CitQQVNTIFRlc3RzIHdlYm0gdmlkZW8tb25seSBiaXRyYXRlIGNoYW5nZXMuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLXdlYm0tdi1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1i
aXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjI3N2FiNWVkZDk3ZGNjNDViZTdlYmY3NGZjNjdhMTUy
Zjc1ZjM5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWJpdHJhdGUuaHRt
bApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAidi0xMjhrLTMyMHgyNDAt
MzBmcHMtMTBrZnIiLCAidi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2
aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVyYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDU2YWY2MWY0MjBlYmUzYjY3YjBjZGNmODc4ZmI5NjBiODJhMThhYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisgCitQQVNTIFRlc3RzIHdlYm0gdmlkZW8tb25seSBmcmFtZSByYXRlIGNo
YW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZGZmZDk2MzFk
ZjNjZDNiMDA4Y2YwMmM0ZTMyZDljNTUxNDY4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3Qo
IndlYm0iLCAidi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmciIsICJ2LTEyOGstMzIweDI0MC0zMGZw
cy0xMGtmciIsICJUZXN0cyB3ZWJtIHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiIpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLXdlYm0tdi1mcmFtZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYt
ZnJhbWVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTYwNTA0YzI3YTZmMWVmNzVmNjUz
MDZkMmQyNjFiZjk4N2FlNGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYt
ZnJhbWVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMgd2Vi
bSB2aWRlby1vbmx5IGZyYW1lIHNpemUgY2hhbmdlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2Utd2VibS12LWZyYW1lc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVzaXplLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGFlZTBkMWFkOWNhMDAxY2JlYmI2ZjkzZWI1OTVmZjlhYzk3NjhkOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1l
ZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgid2VibSIsICJ2LTEyOGstMzIweDI0MC0zMGZwcy0x
MGtmciIsICJ2LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmciIsICJUZXN0cyB3ZWJtIHZpZGVvLW9u
bHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY4MzQyNDgwYWJkYTJlNmQyMmE2ZDdkMDRlNDA1NmE2OWEwYmM3MTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcwpAQCAtMCwwICsxLDYwIEBACitmdW5jdGlvbiBh
cHBlbmRCdWZmZXIodGVzdCwgc291cmNlQnVmZmVyLCBkYXRhKQoreworICAgIHRlc3QuZXhwZWN0
RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIik7CisgICAgdGVzdC5leHBlY3RFdmVudChzb3Vy
Y2VCdWZmZXIsICJ1cGRhdGVlbmQiKTsKKyAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGRh
dGEpOworfQorCitmdW5jdGlvbiBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoZGlyZWN0b3J5
LCBpZEEsIGlkQiwgZGVzY3JpcHRpb24pCit7CisgICAgdmFyIG1hbmlmZXN0RmlsZW5hbWVBID0g
ZGlyZWN0b3J5ICsgIi90ZXN0LSIgKyBpZEEgKyAiLW1hbmlmZXN0Lmpzb24iOworICAgIHZhciBt
YW5pZmVzdEZpbGVuYW1lQiA9IGRpcmVjdG9yeSArICIvdGVzdC0iICsgaWRCICsgIi1tYW5pZmVz
dC5qc29uIjsKKyAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVu
dCwgbWVkaWFTb3VyY2UpCisgICAgeworICAgICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsKKyAg
ICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICB0
ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsKKworICAgICAgICBNZWRpYVNv
dXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEodGVzdCwgbWFuaWZlc3RGaWxlbmFtZUEsIGZ1
bmN0aW9uKHR5cGVBLCBkYXRhQSkKKyAgICAgICAgeworICAgICAgICAgICAgTWVkaWFTb3VyY2VV
dGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3QsIG1hbmlmZXN0RmlsZW5hbWVCLCBmdW5jdGlv
bih0eXBlQiwgZGF0YUIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh0eXBlQSwgdHlwZUIsICJNZWRpYSBmb3JtYXQgdHlwZXMgbWF0Y2giKTsKKworICAgICAg
ICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIo
dHlwZUEpOworCisgICAgICAgICAgICAgICAgYXBwZW5kQnVmZmVyKHRlc3QsIHNvdXJjZUJ1ZmZl
ciwgZGF0YUEpOworCisgICAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMo
ZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWRk
IHRoZSBzZWNvbmQgYnVmZmVyIHN0YXJ0aW5nIGF0IDAuNSBzZWNvbmQuCisgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZUJ1ZmZlci50aW1lc3RhbXBPZmZzZXQgPSAwLjU7CisgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIsIGRhdGFCKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRz
KGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIEFk
ZCB0aGUgZmlyc3QgYnVmZmVyIHN0YXJ0aW5nIGF0IDEgc2Vjb25kLgorICAgICAgICAgICAgICAg
ICAgICBzb3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0ID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgYXBwZW5kQnVmZmVyKHRlc3QsIHNvdXJjZUJ1ZmZlciwgZGF0YUEpOworICAgICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVu
Y3Rpb24oKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWRkIHRo
ZSBzZWNvbmQgYnVmZmVyIHN0YXJ0aW5nIGF0IDEuNSBzZWNvbmQuCisgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZUJ1ZmZlci50aW1lc3RhbXBPZmZzZXQgPSAxLjU7CisgICAgICAgICAgICAgICAg
ICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIsIGRhdGFCKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1
bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRydW5j
YXRlIHRoZSBwcmVzZW50YXRpb24gdG8gYSBkdXJhdGlvbiBvZiAyIHNlY29uZHMuCisgICAgICAg
ICAgICAgICAgICAgIG1lZGlhU291cmNlLmR1cmF0aW9uID0gMjsKKyAgICAgICAgICAgICAgICAg
ICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsKKworICAgICAgICAgICAgICAgICAgICBtZWRp
YUVsZW1lbnQucGxheSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0sIGRlc2NyaXB0aW9uLCB7IHRpbWVvdXQ6IDEwMDAwIH0gKTsKK307
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRl
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVlMGM2MDAxYjdlMGIyZDBmN2E0MzQ4MDMxYzlk
ZmYxZTE1Nzc4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWlzLXR5cGUtc3VwcG9ydGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBUZXN0IGludmFsaWQgdHlwZXMgCitQQVNTIFRlc3Qg
dmFsaWQgV2ViTSB0eXBlcyAKK0ZBSUwgVGVzdCB2YWxpZCBNUDQgdHlwZXMgYXNzZXJ0X3RydWU6
IFR5cGUgInZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFlIiIgc3VwcG9ydGVkIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWlzLXR5cGUtc3VwcG9ydGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBl
LXN1cHBvcnRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNGZjYTU2YzQxN2FjOTZhOGFlZmQwOWQyMzcy
MWIyOTk4NDA1NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBlLXN1cHBvcnRlZC5odG1sCkBAIC0w
LDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgdGVzdChm
dW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIGludmFsaWRUeXBlcyA9
IFsKKyAgICAgICAgICAgICAgICAgIC8vIEludmFsaWQgTUlNRSBmb3JtYXQuCisgICAgICAgICAg
ICAgICAgICAndmlkZW8nLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvLycsCisgICAgICAgICAg
ICAgICAgICAndmlkZW8vd2VibScsCisgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibTsnLAor
ICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzJywKKyAgICAgICAgICAgICAgICAg
ICd2aWRlby93ZWJtO2NvZGVjcz0nLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29k
ZWNzPSInLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSIiJywKKyAgICAg
ICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0iLCInLAorCisgICAgICAgICAgICAgICAg
ICAvLyBNaXNtYXRjaCBiZXR3ZWVuIG1ham9yIHR5cGUgYW5kIGNvZGVjIElECisgICAgICAgICAg
ICAgICAgICAnYXVkaW8vd2VibTtjb2RlY3M9InZwOCInLAorICAgICAgICAgICAgICAgICAgJ2F1
ZGlvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFlIicsCisKKyAgICAgICAgICAgICAgICAgIC8vIE1p
c21hdGNoIGJldHdlZW4gbWlub3IgdHlwZSBhbmQgY29kZWMgSUQuCisgICAgICAgICAgICAgICAg
ICAnYXVkaW8vbXA0O2NvZGVjcz0idm9yYmlzIicsCisgICAgICAgICAgICAgICAgICAnYXVkaW8v
d2VibTtjb2RlY3M9Im1wNGEuNDAuMiInLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtj
b2RlY3M9InZwOCInLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSJtcDRh
LjQwLjIiJywKKworICAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCBjb2RlYyBJRHMuCisgICAg
ICAgICAgICAgICAgICAnYXVkaW8vd2VibTtjb2RlY3M9Im1wNGEiJywKKyAgICAgICAgICAgICAg
ICAgICdhdWRpby93ZWJtO2NvZGVjcz0ibXA0YS40MCInLAorICAgICAgICAgICAgICAgICAgJ2F1
ZGlvL3dlYm07Y29kZWNzPSJtcDRhLjQwLiInLAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21w
NDtjb2RlY3M9Im1wNGEuNjcuMyInCisgICAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpbnZhbGlkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKGludmFsaWRU
eXBlc1tpXSksICJUeXBlIFwiIiArIGludmFsaWRUeXBlc1tpXSArICJcIiBub3Qgc3VwcG9ydGVk
Iik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAiVGVzdCBpbnZhbGlkIHR5cGVzIik7
CisKKyAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpCisgICAgICAgICAgeworICAgICAgICAgICAg
ICB2YXIgdmFsaWRUeXBlcyA9IFsKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29k
ZWNzPSJ2cDgiJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2b3Ji
aXMiJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlz
IicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0idm9yYmlzLCB2cDgi
JywKKyAgICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJ2b3JiaXMiJywKKyAg
ICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlk
VHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQodmFsaWRUeXBlc1tpXSksICJUeXBlIFwiIiArIHZhbGlkVHlw
ZXNbaV0gKyAiXCIgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAi
VGVzdCB2YWxpZCBXZWJNIHR5cGVzIik7CisKKyAgICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpCisg
ICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgdmFsaWRUeXBlcyA9IFsKKyAgICAgICAgICAg
ICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFlIicsIC8vIEguMjY0IE1haW4g
UHJvZmlsZSBsZXZlbCAzLjAKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9
ImF2YzEuNDIwMDFlIicsIC8vIEguMjY0IEJhc2VsaW5lIFByb2ZpbGUgbGV2ZWwgMy4wCisgICAg
ICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjIiJywgICAvLyBNUEVH
NCBBQUMtTEMKKyAgICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNDAu
NSInLCAgIC8vIE1QRUc0IEhFLUFBQworICAgICAgICAgICAgICAgICAgICAnYXVkaW8vbXA0O2Nv
ZGVjcz0ibXA0YS42NyInLCAgICAgLy8gTVBFRzIgQUFDLUxDCisgICAgICAgICAgICAgICAgICAg
ICd2aWRlby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjIiJywKKyAgICAgICAgICAgICAgICAgICAgJ3Zp
ZGVvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFlLG1wNGEuNDAuMiInLAorICAgICAgICAgICAgICAg
ICAgICAndmlkZW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yICwgYXZjMS40ZDAwMWUgIicsCisgICAg
ICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQwLjUi
JywKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNGQwMDFlLG1w
NGEuNDAuNSInLAorICAgICAgICAgICAgICBdOworCisgICAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdmFsaWRUeXBlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCh2YWxpZFR5cGVzW2ldKSwgIlR5cGUg
XCIiICsgdmFsaWRUeXBlc1tpXSArICJcIiBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgfQor
ICAgICAgICAgIH0sICJUZXN0IHZhbGlkIE1QNCB0eXBlcyIpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1tdWx0aXBsZS1hdHRhY2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtbXVsdGlwbGUtYXR0YWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWY3ODIyNjVlNTMx
ZTEwZDhmZDdiYmQxNGU0MTNjZjMzNGM0NjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0
YWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKyAKK1BBU1MgVGVzdCBleGFjdGx5IG9u
ZSBzdWNjZWVkcyB3aGVuIHR3byBNZWRpYUVsZW1lbnRzIGF0dGFjaCB0byBzYW1lIE1lZGlhU291
cmNlIAorUEFTUyBUZXN0IHRoYXQgTWVkaWFTb3VyY2UgY2FuIHJlYXR0YWNoIGlmIGNsb3NlZCBm
aXJzdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1tdWx0aXBsZS1hdHRhY2guaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42Y2M3YmRjNjkxNTI0MDk4NzlmYjFiODk0OWUwMDQxM2Q1ODc4NjVjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtbXVsdGlwbGUtYXR0YWNoLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5j
c3MnPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICBmdW5jdGlvbiB0d29NZWRpYUVsZW1lbnRU
ZXN0KHRlc3RGdW5jdGlvbiwgZGVzY3JpcHRpb24pCisgICAgICAgICAgeworICAgICAgICAgICAg
ICBtZWRpYV90ZXN0KGZ1bmN0aW9uKHRlc3QpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgIHZhciBmaXJzdE1lZGlhVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8n
KTsKKyAgICAgICAgICAgICAgICAgIHZhciBzZWNvbmRNZWRpYVRhZyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGZpcnN0TWVkaWFUYWcpOworICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChzZWNvbmRNZWRpYVRhZyk7CisKKyAgICAgICAgICAgICAgICAgIC8vIE92ZXJs
b2FkIGRvbmUoKSBzbyB0aGF0IGVsZW1lbnRzIGFkZGVkIHRvIHRoZSBkb2N1bWVudCBjYW4gYmUK
KyAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZWQuCisgICAgICAgICAgICAgICAgICB2YXIgcmVt
b3ZlTWVkaWFFbGVtZW50cyA9IHRydWU7CisgICAgICAgICAgICAgICAgICB2YXIgb2xkVGVzdERv
bmUgPSB0ZXN0LmRvbmUuYmluZCh0ZXN0KTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSA9
IGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICBp
ZiAocmVtb3ZlTWVkaWFFbGVtZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNlY29uZE1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmaXJzdE1lZGlhVGFnKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTWVkaWFFbGVtZW50cyA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICBvbGRUZXN0RG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgICAgdGVzdEZ1bmN0aW9uKHRl
c3QsIGZpcnN0TWVkaWFUYWcsIHNlY29uZE1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgfSwgZGVz
Y3JpcHRpb24pOworICAgICAgICAgIH0KKworICAgICAgICAgIHR3b01lZGlhRWxlbWVudFRlc3Qo
ZnVuY3Rpb24odGVzdCwgZmlyc3RNZWRpYVRhZywgc2Vjb25kTWVkaWFUYWcpCisgICAgICAgICAg
eworICAgICAgICAgICAgICAvLyBXaGVuIGF0dGFjaG1lbnQgb2YgbWVkaWFTb3VyY2UgdG8gdHdv
IE1lZGlhRWxlbWVudHMgaXMgZG9uZQorICAgICAgICAgICAgICAvLyB3aXRob3V0IGFuIGludGVy
dmVuaW5nIHN0YWJsZSBzdGF0ZSwgZXhhY3RseSBvbmUgb2YgdGhlIHR3bworICAgICAgICAgICAg
ICAvLyBNZWRpYUVsZW1lbnRzIHNob3VsZCBzdWNjZXNzZnVsbHkgYXR0YWNoLCBhbmQgdGhlIG90
aGVyIG9uZQorICAgICAgICAgICAgICAvLyBzaG91bGQgZ2V0IGVycm9yIGV2ZW50IGR1ZSB0byBt
ZWRpYVNvdXJjZSBhbHJlYWR5IGluICdvcGVuJworICAgICAgICAgICAgICAvLyByZWFkeVN0YXRl
LgorICAgICAgICAgICAgICB2YXIgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAg
ICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChtZWRp
YVNvdXJjZSk7CisgICAgICAgICAgICAgIHZhciBnb3RTb3VyY2VPcGVuID0gZmFsc2U7CisgICAg
ICAgICAgICAgIHZhciBnb3RFcnJvciA9IGZhbHNlOworICAgICAgICAgICAgICB2YXIgZG9uZUlm
RmluaXNoZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgIGlmIChnb3RTb3VyY2VPcGVuICYmIGdvdEVycm9yKQorICAgICAgICAg
ICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgdmFyIGVycm9ySGFuZGxlciA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGZpcnN0TWVkaWFUYWcucmVtb3ZlRXZlbnRMaXN0
ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIpOworICAgICAgICAgICAgICAgICAgc2Vjb25kTWVk
aWFUYWcucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIpOworCisgICAg
ICAgICAgICAgICAgICB2YXIgZXZlbnRUYXJnZXQgPSBlLnRhcmdldDsKKyAgICAgICAgICAgICAg
ICAgIHZhciBvdGhlclRhcmdldDsKKyAgICAgICAgICAgICAgICAgIGlmIChldmVudFRhcmdldCA9
PSBmaXJzdE1lZGlhVGFnKSB7CisgICAgICAgICAgICAgICAgICAgICAgb3RoZXJUYXJnZXQgPSBz
ZWNvbmRNZWRpYVRhZzsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudFRhcmdldCwgc2Vjb25kTWVkaWFUYWcsICdFcnJv
ciB0YXJnZXQgY2hlY2snKTsKKyAgICAgICAgICAgICAgICAgICAgICBvdGhlclRhcmdldCA9IGZp
cnN0TWVkaWFUYWc7CisgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgIGFz
c2VydF90cnVlKGV2ZW50VGFyZ2V0LmVycm9yICE9IG51bGwsICdFcnJvciBzdGF0ZSBvbiBvbmUg
dGFnJyk7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50VGFyZ2V0LmVycm9y
LmNvZGUsIE1lZGlhRXJyb3IuTUVESUFfRVJSX1NSQ19OT1RfU1VQUE9SVEVELCAnRXhwZWN0ZWQg
ZXJyb3IgY29kZScpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhvdGhlclRhcmdl
dC5lcnJvciwgbnVsbCwgJ05vIGVycm9yIG9uIG90aGVyIHRhZycpOworCisgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50VGFyZ2V0Lm5ldHdvcmtTdGF0ZSwgSFRNTE1lZGlhRWxl
bWVudC5ORVRXT1JLX05PX1NPVVJDRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J1RhZyB3aXRoIGVycm9yIHN0YXRlIG5ldHdvcmtTdGF0ZScpOworICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhvdGhlclRhcmdldC5uZXR3b3JrU3RhdGUsIEhUTUxNZWRpYUVsZW1lbnQu
TkVUV09SS19MT0FESU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGFnIHdp
dGhvdXQgZXJyb3Igc3RhdGUgbmV0d29ya1N0YXRlJyk7CisKKyAgICAgICAgICAgICAgICAgIGdv
dEVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgIGRvbmVJZkZpbmlzaGVkKCk7CisgICAg
ICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3Vy
Y2UsICdzb3VyY2VvcGVuJywgJ0FuIGF0dGFjaG1lbnQgc3VjY2VlZGVkJyk7CisgICAgICAgICAg
ICAgIGZpcnN0TWVkaWFUYWcuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIp
OworICAgICAgICAgICAgICBzZWNvbmRNZWRpYVRhZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcics
IGVycm9ySGFuZGxlcik7CisKKyAgICAgICAgICAgICAgZmlyc3RNZWRpYVRhZy5zcmMgPSBtZWRp
YVNvdXJjZVVSTDsKKyAgICAgICAgICAgICAgc2Vjb25kTWVkaWFUYWcuc3JjID0gbWVkaWFTb3Vy
Y2VVUkw7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rp
b24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1l
ZGlhU291cmNlLnJlYWR5U3RhdGUsICdvcGVuJywgJ1NvdXJjZSBpcyBvcGVuZWQnKTsKKyAgICAg
ICAgICAgICAgICAgIGdvdFNvdXJjZU9wZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgZG9u
ZUlmRmluaXNoZWQoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgJ1Rlc3QgZXhh
Y3RseSBvbmUgc3VjY2VlZHMgd2hlbiB0d28gTWVkaWFFbGVtZW50cyBhdHRhY2ggdG8gc2FtZSBN
ZWRpYVNvdXJjZScpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0
LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKSB7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgJ29wZW4nLCAnU291cmNlIG9wZW4nKTsKKyAgICAg
ICAgICAgICAgLy8gU2V0IHRoZSB0YWcncyBzcmMgYXR0cmlidXRlLiAgVGhpcyBzaG91bGQgY2xv
c2UgbWVkaWFTb3VyY2UsCisgICAgICAgICAgICAgIC8vIHJlYXR0YWNoIGl0IHRvIHRoZSB0YWcs
IGFuZCBpbml0aWF0ZSBzb3VyY2UgcmVvcGVuaW5nLgorICAgICAgICAgICAgICB0ZXN0LmV4cGVj
dEV2ZW50KG1lZGlhU291cmNlLCAnc291cmNlb3BlbicsICdTb3VyY2UgYXR0YWNoZWQgYWdhaW4n
KTsKKyAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwo
bWVkaWFTb3VyY2UpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJl
YWR5U3RhdGUsICdjbG9zZWQnLCAnU291cmNlIGNsb3NlZCcpOworCisgICAgICAgICAgICAgIHRl
c3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAnb3Bl
bicsICdTb3VyY2UgcmVvcGVuZWQnKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAnVGVzdCB0aGF0IE1lZGlhU291cmNlIGNh
biByZWF0dGFjaCBpZiBjbG9zZWQgZmlyc3QnKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1wbGF5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMmMyNmEwNmVhMTZkNTJhMjdjZGUwYjAxZjFiZWNhMjM1NWFjZjE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtcGxheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitQQVNT
IFRlc3Qgbm9ybWFsIHBsYXliYWNrIGNhc2Ugd2l0aCBNZWRpYVNvdXJjZSBBUEkgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLXBsYXkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLXBsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzhlNjZhOWQyZjVmMjViZjdmZTc1
NzFkM2VhM2ZmYmU2OTY1NDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS5odG1sCkBAIC0wLDAgKzEs
MzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0
KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgewor
ICAgICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7Cisg
ICAgICAgICAgICAgIHRlc3QuZW5kT25FdmVudChtZWRpYUVsZW1lbnQsICdlbmRlZCcpOworCisg
ICAgICAgICAgICAgIHZhciBtZWRpYVR5cGUgPSAndmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3Ji
aXMiJzsKKyAgICAgICAgICAgICAgdmFyIG1lZGlhVVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL3dlYm0vdGVzdC53ZWJtJzsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZl
ciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtZWRpYVR5cGUpOworCisgICAgICAgICAg
ICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmluYXJ5RGF0YSh0ZXN0LCBtZWRpYVVSTCwgZnVuY3Rp
b24oZGF0YSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVy
LmFkZEV2ZW50TGlzdGVuZXIoJ3VwZGF0ZWVuZCcsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKCkK
KyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5k
dXJhdGlvbiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZW5kT2ZTdHJl
YW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICBtZWRpYUVsZW1lbnQucGxheSgpOworICAgICAg
ICAgICAgICAgICAgfSkpOworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1
ZmZlcihkYXRhKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRlc3Qgbm9ybWFs
IHBsYXliYWNrIGNhc2Ugd2l0aCBNZWRpYVNvdXJjZSBBUEkiKTsKKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1zb3VyY2VidWZmZXJsaXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOWJkNjkxZWNh
MGUwMDJhYjc3N2FjNzExZDA3MjUwOTJiY2Q5Njc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVm
ZmVybGlzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisgCitQQVNTIFRlc3QgU291cmNl
QnVmZmVyTGlzdCBldmVudCBkaXNwYXRjaGluZy4gCitQQVNTIFRlc3QgdGhhdCBvbmx5IDEgcmVt
b3Zlc291cmNlYnVmZmVyIGV2ZW50IGZpcmVzIG9uIGVhY2ggU291cmNlQnVmZmVyTGlzdCB3aGVu
IHRoZSBNZWRpYVNvdXJjZSBjbG9zZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXJsaXN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1zb3VyY2VidWZmZXJsaXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ0ODdhMWFkOGYxNDFhYTgzM2Fh
NjMwZTA5MGQ0MWYxMmRmMjE2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QuaHRt
bApAQCAtMCwwICsxLDkzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5q
cyI+PC9zY3JpcHQ+CisKKyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAg
ICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICBm
dW5jdGlvbiB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwgZXhwZWN0ZWQpCisg
ICAgICAgICAgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJj
ZUJ1ZmZlcnMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICJzb3VyY2VCdWZmZXJzIGxlbmd0aCIp
OworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1
ZmZlcnMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICJhY3RpdmVTb3VyY2VCdWZmZXJzIGxlbmd0
aCIpOworICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VC
dWZmZXJzW2ldLCBleHBlY3RlZFtpXSwgIlZlcmlmeWluZyBtZWRpYVNvdXJjZS5zb3VyY2VCdWZm
ZXJzWyIgKyBpICsgIl0iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291
cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbaV0sIGV4cGVjdGVkW2ldLCAiVmVyaWZ5aW5nIG1lZGlh
U291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbIiArIGkgKyAiXSIpOworICAgICAgICAgICAgICB9
CisgICAgICAgICAgfQorCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0
LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
dGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVm
ZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudCht
ZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2
ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRp
YVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLlZJREVPX09OTFlfVFlQRSk7
CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJCID0gbnVsbDsKKworICAgICAgICAgICAg
ICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVm
ZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAg
ICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMsICJh
ZGRzb3VyY2VidWZmZXIiLCAiYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAg
ICAgc291cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJj
ZVV0aWwuQVVESU9fT05MWV9UWVBFKTsKKworICAgICAgICAgICAgICAgICAgdmVyaWZ5U291cmNl
QnVmZmVyTGlzdHMobWVkaWFTb3VyY2UsIFtzb3VyY2VCdWZmZXJBLCBzb3VyY2VCdWZmZXJCXSk7
CisgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVk
RXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdGVz
dC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAicmVtb3Zlc291
cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHRl
c3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1
ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5y
ZW1vdmVTb3VyY2VCdWZmZXIoc291cmNlQnVmZmVyQSk7CisKKyAgICAgICAgICAgICAgICAgIHZl
cmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNlQnVmZmVyQl0pOworCisg
ICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZl
cnMsICJhZGRzb3VyY2VidWZmZXIiLCAic291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAg
ICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRk
c291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAg
IHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VV
dGlsLlZJREVPX09OTFlfVFlQRSk7CisKKyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1
ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNlQnVmZmVyQiwgc291cmNlQnVmZmVyQV0pOwor
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2
ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHRlc3Qu
ZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBTb3VyY2VCdWZm
ZXJMaXN0IGV2ZW50IGRpc3BhdGNoaW5nLiIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVz
dChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJz
LCAiYWRkc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVz
dC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNl
YnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBl
Y3RFdmVudChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgInNv
dXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJj
ZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1
ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlckEgPSBtZWRpYVNvdXJjZS5h
ZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLlZJREVPX09OTFlfVFlQRSk7CisgICAgICAg
ICAgICAgIHZhciBzb3VyY2VCdWZmZXJCID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1l
ZGlhU291cmNlVXRpbC5BVURJT19PTkxZX1RZUEUpOworCisgICAgICAgICAgICAgIHZlcmlmeVNv
dXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNlQnVmZmVyQSwgc291cmNlQnVmZmVy
Ql0pOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9u
KCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdmVyaWZ5U291cmNlQnVmZmVy
TGlzdHMobWVkaWFTb3VyY2UsIFtzb3VyY2VCdWZmZXJBLCBzb3VyY2VCdWZmZXJCXSk7CisKKyAg
ICAgICAgICAgICAgICAgIC8vIEZvcmNlIHRoZSBtZWRpYSBlbGVtZW50IHRvIGNsb3NlIHRoZSBN
ZWRpYVNvdXJjZSBvYmplY3QuCisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1l
ZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMsICJyZW1vdmVzb3VyY2VidWZmZXIiLCAiYWN0
aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudCht
ZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAicmVtb3Zlc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1
ZmZlcnMiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Us
ICJzb3VyY2VjbG9zZSIsICJtZWRpYVNvdXJjZSBjbG9zaW5nIik7CisgICAgICAgICAgICAgICAg
ICBtZWRpYUVsZW1lbnQuc3JjID0gIiI7CisgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAg
ICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRl
LCAiY2xvc2VkIiwgIm1lZGlhU291cmNlIGlzIGNsb3NlZC4iKTsKKworICAgICAgICAgICAgICAg
ICAgdmVyaWZ5U291cmNlQnVmZmVyTGlzdHMobWVkaWFTb3VyY2UsIFtdKTsKKyAgICAgICAgICAg
ICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVz
dCB0aGF0IG9ubHkgMSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQgZmlyZXMgb24gZWFjaCBTb3Vy
Y2VCdWZmZXJMaXN0IHdoZW4gdGhlIE1lZGlhU291cmNlIGNsb3Nlcy4iKTsKKworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS11dGlsLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtdXRpbC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NTZmMDEyZjRkOTlkYzYxM2RiZGYzYWMwN2YyMjRkNTE4MDk3ZTc2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtdXRpbC5qcwpAQCAtMCwwICsxLDIyOSBAQAorKGZ1bmN0aW9uKHdpbmRvdykg
eworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdlciA9IGZ1bmN0aW9uKHRlc3QpCisgICAgewor
ICAgICAgICB0aGlzLnRlc3RfID0gdGVzdDsKKyAgICAgICAgdGhpcy5ldmVudFRhcmdldExpc3Rf
ID0gW107CisgICAgICAgIHRoaXMud2FpdENhbGxiYWNrc18gPSBbXTsKKyAgICB9OworCisgICAg
RXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5leHBlY3RFdmVudCA9IGZ1bmN0aW9u
KG9iamVjdCwgZXZlbnROYW1lLCBkZXNjcmlwdGlvbikKKyAgICB7CisgICAgICAgIHZhciBldmVu
dEluZm8gPSB7ICd0YXJnZXQnOiBvYmplY3QsICd0eXBlJzogZXZlbnROYW1lLCAnZGVzY3JpcHRp
b24nOiBkZXNjcmlwdGlvbn07CisgICAgICAgIHZhciBleHBlY3RhdGlvbnMgPSB0aGlzLmdldEV4
cGVjdGF0aW9uc18ob2JqZWN0KTsKKyAgICAgICAgZXhwZWN0YXRpb25zLnB1c2goZXZlbnRJbmZv
KTsKKworICAgICAgICB2YXIgdCA9IHRoaXM7CisgICAgICAgIHZhciB3YWl0SGFuZGxlciA9IHRo
aXMudGVzdF8uc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeyB0LmhhbmRsZVdhaXRDYWxsYmFja18oKTsg
fSk7CisgICAgICAgIHZhciBldmVudEhhbmRsZXIgPSB0aGlzLnRlc3RfLnN0ZXBfZnVuYyhmdW5j
dGlvbihldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgb2JqZWN0LnJlbW92ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lLCBldmVudEhhbmRsZXIpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVk
ID0gZXhwZWN0YXRpb25zWzBdOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC50YXJn
ZXQsIGV4cGVjdGVkLnRhcmdldCwgIkV2ZW50IHRhcmdldCBtYXRjaC4iKTsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZXZlbnQudHlwZSwgZXhwZWN0ZWQudHlwZSwgIkV2ZW50IHR5cGVzIG1h
dGNoLiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudEluZm8uZGVzY3JpcHRpb24s
IGV4cGVjdGVkLmRlc2NyaXB0aW9uLCAiRGVzY3JpcHRpb25zIG1hdGNoIGZvciAnIiArICBldmVu
dC50eXBlICsgIicuIik7CisKKyAgICAgICAgICAgIGV4cGVjdGF0aW9ucy5zaGlmdCgxKTsKKyAg
ICAgICAgICAgIGlmICh0LndhaXRDYWxsYmFja3NfLmxlbmd0aCA+IDApCisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dCh3YWl0SGFuZGxlciwgMCk7CisgICAgICAgIH0pOworICAgICAgICBvYmpl
Y3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50SGFuZGxlcik7CisgICAgfTsKKwor
ICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdlci5wcm90b3R5cGUud2FpdEZvckV4cGVjdGVkRXZl
bnRzID0gZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICB0aGlzLndhaXRDYWxsYmFj
a3NfLnB1c2goY2FsbGJhY2spOworICAgICAgICBzZXRUaW1lb3V0KHRoaXMuaGFuZGxlV2FpdENh
bGxiYWNrXy5iaW5kKHRoaXMpLCAwKTsKKyAgICB9OworCisgICAgRXZlbnRFeHBlY3RhdGlvbnNN
YW5hZ2VyLnByb3RvdHlwZS5leHBlY3RpbmdFdmVudHMgPSBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZXZlbnRUYXJnZXRMaXN0Xy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRUYXJnZXRMaXN0X1tpXS5leHBlY3RhdGlv
bnMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBFdmVu
dEV4cGVjdGF0aW9uc01hbmFnZXIucHJvdG90eXBlLmhhbmRsZVdhaXRDYWxsYmFja18gPSBmdW5j
dGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy53YWl0Q2FsbGJhY2tzXy5sZW5ndGggPT0g
MCB8fCB0aGlzLmV4cGVjdGluZ0V2ZW50cygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB2YXIgY2FsbGJhY2sgPSB0aGlzLndhaXRDYWxsYmFja3NfLnNoaWZ0KDEpOworICAgICAgICBj
YWxsYmFjaygpOworICAgIH07CisKKyAgICBFdmVudEV4cGVjdGF0aW9uc01hbmFnZXIucHJvdG90
eXBlLmdldEV4cGVjdGF0aW9uc18gPSBmdW5jdGlvbih0YXJnZXQpCisgICAgeworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZXZlbnRUYXJnZXRMaXN0Xy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgdmFyIGluZm8gPSB0aGlzLmV2ZW50VGFyZ2V0TGlzdF9baV07CisgICAgICAg
ICAgICBpZiAoaW5mby50YXJnZXQgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGluZm8uZXhwZWN0YXRpb25zOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZh
ciBleHBlY3RhdGlvbnMgPSBbXTsKKyAgICAgICAgdGhpcy5ldmVudFRhcmdldExpc3RfLnB1c2go
eyAndGFyZ2V0JzogdGFyZ2V0LCAnZXhwZWN0YXRpb25zJzogZXhwZWN0YXRpb25zIH0pOworICAg
ICAgICByZXR1cm4gZXhwZWN0YXRpb25zOworICAgIH07CisKKyAgICBmdW5jdGlvbiBsb2FkRGF0
YV8odGVzdCwgdXJsLCBjYWxsYmFjaywgaXNCaW5hcnkpCisgICAgeworICAgICAgICB2YXIgcmVx
dWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICByZXF1ZXN0Lm9wZW4oIkdFVCIs
IHVybCwgdHJ1ZSk7CisgICAgICAgIGlmIChpc0JpbmFyeSkgeworICAgICAgICAgICAgcmVxdWVz
dC5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOworICAgICAgICB9CisgICAgICAgIHJlcXVl
c3Qub25sb2FkID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyAhPSAyMDApIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIHN0YXR1cyBjb2RlIDogIiArIHJlcXVlc3Quc3Rh
dHVzKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICB2YXIgcmVzcG9uc2UgPSByZXF1ZXN0LnJlc3BvbnNlOworICAgICAgICAgICAgaWYgKGlzQmlu
YXJ5KSB7CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBuZXcgVWludDhBcnJheShyZXNwb25z
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayhyZXNwb25zZSk7CisgICAg
ICAgIH0pOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBl
Y3RlZCBlcnJvciIpOworICAgICAgICB9KTsKKyAgICAgICAgcmVxdWVzdC5zZW5kKCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gb3Blbk1lZGlhU291cmNlXyh0ZXN0LCBtZWRpYVRhZywgY2FsbGJh
Y2spCisgICAgeworICAgICAgICB2YXIgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsK
KyAgICAgICAgdmFyIG1lZGlhU291cmNlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChtZWRpYVNv
dXJjZSk7CisKKyAgICAgICAgdmFyIGV2ZW50SGFuZGxlciA9IHRlc3Quc3RlcF9mdW5jKG9uU291
cmNlT3Blbik7CisgICAgICAgIGZ1bmN0aW9uIG9uU291cmNlT3BlbihldmVudCkKKyAgICAgICAg
eworICAgICAgICAgICAgbWVkaWFTb3VyY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcignc291cmNlb3Bl
bicsIGV2ZW50SGFuZGxlcik7CisgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKG1lZGlh
U291cmNlVVJMKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKG1lZGlhU291cmNlKTsKKyAgICAgICAg
fQorCisgICAgICAgIG1lZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoJ3NvdXJjZW9wZW4nLCBl
dmVudEhhbmRsZXIpOworICAgICAgICBtZWRpYVRhZy5zcmMgPSBtZWRpYVNvdXJjZVVSTDsKKyAg
ICB9CisKKyAgICB2YXIgTWVkaWFTb3VyY2VVdGlsID0ge307CisKKyAgICBNZWRpYVNvdXJjZVV0
aWwubG9hZFRleHREYXRhID0gZnVuY3Rpb24odGVzdCwgdXJsLCBjYWxsYmFjaykKKyAgICB7Cisg
ICAgICAgIGxvYWREYXRhXyh0ZXN0LCB1cmwsIGNhbGxiYWNrLCBmYWxzZSk7CisgICAgfTsKKwor
ICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmluYXJ5RGF0YSA9IGZ1bmN0aW9uKHRlc3QsIHVybCwg
Y2FsbGJhY2spCisgICAgeworICAgICAgICBsb2FkRGF0YV8odGVzdCwgdXJsLCBjYWxsYmFjaywg
dHJ1ZSk7CisgICAgfTsKKworICAgIE1lZGlhU291cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0
YSA9IGZ1bmN0aW9uKHRlc3QsIG1hbmlmZXN0RmlsZW5hbWUsIGNhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgdmFyIGJhc2VVUkwgPSAnL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvJzsKKyAg
ICAgICAgdmFyIG1hbmlmZXN0VVJMID0gYmFzZVVSTCArIG1hbmlmZXN0RmlsZW5hbWU7CisgICAg
ICAgIE1lZGlhU291cmNlVXRpbC5sb2FkVGV4dERhdGEodGVzdCwgbWFuaWZlc3RVUkwsIGZ1bmN0
aW9uKG1hbmlmZXN0VGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0g
SlNPTi5wYXJzZShtYW5pZmVzdFRleHQpOworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRp
YVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobWFuaWZlc3QudHlwZSksIG1hbmlmZXN0LnR5cGUgKyAi
IGlzIHN1cHBvcnRlZC4iKTsKKworICAgICAgICAgICAgdmFyIG1lZGlhVVJMID0gYmFzZVVSTCAr
IG1hbmlmZXN0LnVybDsKKyAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmluYXJ5RGF0
YSh0ZXN0LCBtZWRpYVVSTCwgZnVuY3Rpb24obWVkaWFEYXRhKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKG1hbmlmZXN0LnR5cGUsIG1lZGlhRGF0YSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdldEZpcnN0U3Vw
cG9ydGVkVHlwZSh0eXBlTGlzdCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dHlwZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChNZWRpYVNvdXJjZS5pc1R5
cGVTdXBwb3J0ZWQodHlwZUxpc3RbaV0pKQorICAgICAgICAgICAgICAgIHJldHVybiB0eXBlTGlz
dFtpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIiI7CisgICAgfQorCisgICAgdmFyIGF1
ZGlvT25seVR5cGVzID0gWydhdWRpby93ZWJtO2NvZGVjcz0idm9yYmlzIicsICdhdWRpby9tcDQ7
Y29kZWNzPSJtcDRhLjQwLjIiJ107CisgICAgdmFyIHZpZGVvT25seVR5cGVzID0gWyd2aWRlby93
ZWJtO2NvZGVjcz0idnA4IicsICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSInXTsKKyAg
ICB2YXIgYXVkaW9WaWRlb1R5cGVzID0gWyd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyIn
LCAndmlkZW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIiddOworICAgIE1lZGlhU291cmNlVXRpbC5B
VURJT19PTkxZX1RZUEUgPSBnZXRGaXJzdFN1cHBvcnRlZFR5cGUoYXVkaW9Pbmx5VHlwZXMpOwor
ICAgIE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUgPSBnZXRGaXJzdFN1cHBvcnRlZFR5
cGUodmlkZW9Pbmx5VHlwZXMpOworICAgIE1lZGlhU291cmNlVXRpbC5BVURJT19WSURFT19UWVBF
ID0gZ2V0Rmlyc3RTdXBwb3J0ZWRUeXBlKGF1ZGlvVmlkZW9UeXBlcyk7CisKKyAgICBmdW5jdGlv
biBhZGRFeHRyYVRlc3RNZXRob2RzKHRlc3QpCisgICAgeworICAgICAgICB0ZXN0LmZhaWxPbkV2
ZW50ID0gZnVuY3Rpb24ob2JqZWN0LCBldmVudE5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IG9iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgdGVzdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiVW5leHBlY3RlZCBldmVudCAnIiArIGV2ZW50TmFtZSArICInIik7CisgICAgICAgICAgICB9
KSk7CisgICAgICAgIH07CisKKyAgICAgICAgdGVzdC5lbmRPbkV2ZW50ID0gZnVuY3Rpb24ob2Jq
ZWN0LCBldmVudE5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iamVjdC5hZGRFdmVudExp
c3RlbmVyKGV2ZW50TmFtZSwgdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsgdGVzdC5k
b25lKCk7IH0pKTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZXN0LmV2ZW50RXhwZWN0YXRpb25z
XyA9IG5ldyBFdmVudEV4cGVjdGF0aW9uc01hbmFnZXIodGVzdCk7CisgICAgICAgIHRlc3QuZXhw
ZWN0RXZlbnQgPSBmdW5jdGlvbihvYmplY3QsIGV2ZW50TmFtZSwgZGVzY3JpcHRpb24pCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRlc3QuZXZlbnRFeHBlY3RhdGlvbnNfLmV4cGVjdEV2ZW50KG9i
amVjdCwgZXZlbnROYW1lLCBkZXNjcmlwdGlvbik7CisgICAgICAgIH07CisKKyAgICAgICAgdGVz
dC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMgPSBmdW5jdGlvbihjYWxsYmFjaykKKyAgICAgICAgewor
ICAgICAgICAgICAgdGVzdC5ldmVudEV4cGVjdGF0aW9uc18ud2FpdEZvckV4cGVjdGVkRXZlbnRz
KGNhbGxiYWNrKTsKKyAgICAgICAgfTsKKworICAgICAgICB2YXIgb2xkVGVzdERvbmUgPSB0ZXN0
LmRvbmUuYmluZCh0ZXN0KTsKKyAgICAgICAgdGVzdC5kb25lID0gZnVuY3Rpb24oKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAodGVzdC5zdGF0dXMgPT0gdGVzdC5QQVNTKQorICAgICAgICAg
ICAgICAgIGFzc2VydF9mYWxzZSh0ZXN0LmV2ZW50RXhwZWN0YXRpb25zXy5leHBlY3RpbmdFdmVu
dHMoKSwgIk5vIHBlbmRpbmcgZXZlbnQgZXhwZWN0YXRpb25zLiIpOworICAgICAgICAgICAgb2xk
VGVzdERvbmUoKTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgd2luZG93WydNZWRpYVNvdXJj
ZVV0aWwnXSA9IE1lZGlhU291cmNlVXRpbDsKKyAgICB3aW5kb3dbJ21lZGlhX3Rlc3QnXSA9IGZ1
bmN0aW9uKHRlc3RGdW5jdGlvbiwgZGVzY3JpcHRpb24sIG9wdGlvbnMpCisgICAgeworICAgICAg
ICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKKyAgICAgICAgcmV0dXJuIGFzeW5jX3Rlc3QoZnVu
Y3Rpb24odGVzdCkKKyAgICAgICAgeworICAgICAgICAgICAgYWRkRXh0cmFUZXN0TWV0aG9kcyh0
ZXN0KTsKKyAgICAgICAgICAgIHRlc3RGdW5jdGlvbih0ZXN0KTsKKyAgICAgICAgfSwgZGVzY3Jp
cHRpb24sIG9wdGlvbnMpOworICAgIH07CisgICAgd2luZG93WydtZWRpYXNvdXJjZV90ZXN0J10g
PSBmdW5jdGlvbih0ZXN0RnVuY3Rpb24sIGRlc2NyaXB0aW9uLCBvcHRpb25zKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1lZGlhX3Rlc3QoZnVuY3Rpb24odGVzdCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdmFyIG1lZGlhVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFUYWcpOworCisgICAgICAg
ICAgICAvLyBPdmVybG9hZCBkb25lKCkgc28gdGhhdCBlbGVtZW50IGFkZGVkIHRvIHRoZSBkb2N1
bWVudCBjYW4gYmUgcmVtb3ZlZC4KKyAgICAgICAgICAgIHRlc3QucmVtb3ZlTWVkaWFFbGVtZW50
XyA9IHRydWU7CisgICAgICAgICAgICB2YXIgb2xkVGVzdERvbmUgPSB0ZXN0LmRvbmUuYmluZCh0
ZXN0KTsKKyAgICAgICAgICAgIHRlc3QuZG9uZSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBpZiAodGVzdC5yZW1vdmVNZWRpYUVsZW1lbnRfKSB7CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobWVkaWFUYWcpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0LnJlbW92ZU1lZGlhRWxlbWVudF8gPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkVGVzdERvbmUoKTsKKyAgICAgICAgICAgIH07
CisKKyAgICAgICAgICAgIG9wZW5NZWRpYVNvdXJjZV8odGVzdCwgbWVkaWFUYWcsIGZ1bmN0aW9u
KG1lZGlhU291cmNlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RGdW5jdGlv
bih0ZXN0LCBtZWRpYVRhZywgbWVkaWFTb3VyY2UpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0sIGRlc2NyaXB0aW9uLCBvcHRpb25zKTsKKworICAgIH07Cit9KSh3aW5kb3cpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVk
aWEtc291cmNlLW9iamVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLW9iamVjdHMtZXhwZWN0ZWQudHh0
CmluZGV4IGIwM2RiZTQzNGI4NWRmNDczYjNkZDYzMDJhZDM0YmMyZDc2OTBhMDkuLmRmNmNiYjg3
MWU0NjkzZTQwMTAwYzllNTA1MjljZTI1ZDhiZTkxMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3Rz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS92aWRlby1tZWRpYS1zb3VyY2Utb2JqZWN0cy1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3
IEBAIFRlc3RzIE1lZGlhU291cmNlLCBTb3VyY2VCdWZmZXIsIGFuZCBTb3VyY2VCdWZmZXJMaXN0
IG9iamVjdHMuCiAKIEVWRU5UKHdlYmtpdHNvdXJjZW9wZW4pCiBUZXN0IE1lZGlhU291cmNlIG9i
amVjdCB0eXBlCi1FWFBFQ1RFRCAobWVkaWFTb3VyY2UgPT0gJ1tvYmplY3QgTWVkaWFTb3VyY2Vd
JykgT0sKK0VYUEVDVEVEIChtZWRpYVNvdXJjZSA9PSAnW29iamVjdCBXZWJLaXRNZWRpYVNvdXJj
ZV0nKSBPSwogRVhQRUNURUQgKG1lZGlhU291cmNlIGluc3RhbmNlb2Ygd2luZG93LldlYktpdE1l
ZGlhU291cmNlID09ICd0cnVlJykgT0sKIAogQWRkIGEgU291cmNlQnVmZmVyCkBAIC0xMSw3ICsx
MSw3IEBAIFJVTihzZWdtZW50SGVscGVyLmFkZFNvdXJjZUJ1ZmZlcigpKQogRVhQRUNURUQgKG1l
ZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMubGVuZ3RoID09ICcxJykgT0sKIAogVGVzdCBTb3VyY2VC
dWZmZXJMaXN0IG9iamVjdCB0eXBlOgotRVhQRUNURUQgKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZl
cnMgPT0gJ1tvYmplY3QgU291cmNlQnVmZmVyTGlzdF0nKSBPSworRVhQRUNURUQgKG1lZGlhU291
cmNlLnNvdXJjZUJ1ZmZlcnMgPT0gJ1tvYmplY3QgV2ViS2l0U291cmNlQnVmZmVyTGlzdF0nKSBP
SwogRVhQRUNURUQgKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMgaW5zdGFuY2VvZiB3aW5kb3cu
V2ViS2l0U291cmNlQnVmZmVyTGlzdCA9PSAndHJ1ZScpIE9LCiAKIFRlc3QgU291cmNlQnVmZmVy
IG9iamVjdCB0eXBlCkBAIC0zOSw3ICszOSw3IEBAIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3Vy
Y2VCdWZmZXJzWzBdLmJ1ZmZlcmVkLmVuZCgxKSA+ICc1JykgT0sKIFJlbW92ZSBTb3VyY2VCdWZm
ZXIKIFJVTihtZWRpYVNvdXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIoc2VnbWVudEhlbHBlci5zb3Vy
Y2VCdWZmZXIpKQogRVhQRUNURUQgKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMubGVuZ3RoID09
ICcwJykgT0sKLUVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2JqZWN0
IFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKK0VYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZm
ZXJzID09ICdbb2JqZWN0IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKIAogVGVzdCB0aGF0
IGFwcGVuZCgpIHRocm93cyBhbiBlcnJvciBhZnRlciBTb3VyY2VCdWZmZXIgaGFzIGJlZW4gcmVt
b3ZlZC4KIEdvdCBleHBlY3RlZCBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBE
T00gRXhjZXB0aW9uIDExCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvZ2VuZXJhdGUtY29uZmlnLWNoYW5nZS10ZXN0cy5weSBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9nZW5l
cmF0ZS1jb25maWctY2hhbmdlLXRlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlZGI5MjViNDQ4YWYzNjA0
MWE0Y2EzZjAwZWQyOGYxMmFiNzA2OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvZ2VuZXJhdGUtY29uZmlnLWNo
YW5nZS10ZXN0cy5weQpAQCAtMCwwICsxLDIyNiBAQAorIyEvdXNyL2Jpbi9weXRob24KKyMgQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisiIiIKK1RoaXMgaXMgYSBzY3JpcHQgdGhhdCBnZW5lcmF0ZXMgdGhlIGNv
bnRlbnQgYW5kIEhUTUwgZmlsZXMgZm9yIE1lZGlhIFNvdXJjZQorY29kZWMgY29uZmlnIGNoYW5n
ZSBMYXlvdXRUZXN0cy4KKyIiIgoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworCitEVVJBVElPTiA9
IDIKK01FRElBX0ZPUk1BVFMgPSBbJ3dlYm0nLCAnbXA0J10KK0VOQ09ERV9TRVRUSU5HUyA9IFsK
KyAgICAjIyBWaWRlby1vbmx5IGZpbGVzCisgICAgIyBGcmFtZSByYXRlIGNoYW5nZXMKKyAgICB7
J2ZzJzogJzMyMHgyNDAnLCAnZnInOiAyNCwgJ2tmcic6IDgsICdjJzogJyNmZjAwMDAnLCAndmJy
JzogMTI4LCAnYWJyJzogMCwgJ2Fzcic6IDAsICdhY2gnOiAwLCAnYWZyZXEnOiAwfSwKKyAgICB7
J2ZzJzogJzMyMHgyNDAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjZmYwMDAwJywgJ3Zi
cic6IDEyOCwgJ2Ficic6IDAsICdhc3InOiAwLCAnYWNoJzogMCwgJ2FmcmVxJzogMH0sCisgICAg
IyBGcmFtZSBzaXplIGNoYW5nZQorICAgIHsnZnMnOiAnNjQweDQ4MCcsICdmcic6IDMwLCAna2Zy
JzogMTAsICdjJzogJyMwMGZmMDAnLCAndmJyJzogMTI4LCAnYWJyJzogMCwgJ2Fzcic6IDAsICdh
Y2gnOiAwLCAnYWZyZXEnOiAwfSwKKyAgICAjIEJpdHJhdGUgY2hhbmdlCisgICAgeydmcyc6ICcz
MjB4MjQwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnI2ZmMDBmZicsICd2YnInOiAyNTYs
ICdhYnInOiAwLCAnYXNyJzogMCwgJ2FjaCc6IDAsICdhZnJlcSc6IDB9LAorCisgICAgIyMgQXVk
aW8tb25seSBmaWxlcworICAgICMgQml0cmF0ZS9Db2RlYm9vayBjaGFuZ2VzCisgICAgeydmcyc6
ICcweDAnLCAnZnInOiAwLCAna2ZyJzogMCwgJ2MnOiAnIzAwMDAwMCcsICd2YnInOiAwLCAnYWJy
JzogMTI4LCAnYXNyJzogNDQxMDAsICdhY2gnOiAxLCAnYWZyZXEnOiAyMDAwfSwKKyAgICB7J2Zz
JzogJzB4MCcsICdmcic6IDAsICdrZnInOiAwLCAnYyc6ICcjMDAwMDAwJywgJ3Zicic6IDAsICdh
YnInOiAxOTIsICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDQwMDB9LAorCisgICAg
IyMgQXVkaW8tVmlkZW8gZmlsZXMKKyAgICAjIEZyYW1lIHNpemUgY2hhbmdlLgorICAgIHsnZnMn
OiAnMzIweDI0MCcsICdmcic6IDMwLCAna2ZyJzogMTAsICdjJzogJyNmZjAwMDAnLCAndmJyJzog
MjU2LCAnYWJyJzogMTI4LCAnYXNyJzogNDQxMDAsICdhY2gnOiAxLCAnYWZyZXEnOiAyMDAwfSwK
KyAgICB7J2ZzJzogJzY0MHg0ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjMDBmZjAw
JywgJ3Zicic6IDI1NiwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2FmcmVx
JzogMjAwMH0sCisgICAgIyBBdWRpbyBiaXRyYXRlIGNoYW5nZS4KKyAgICB7J2ZzJzogJzY0MHg0
ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjMDBmZjAwJywgJ3Zicic6IDI1NiwgJ2Fi
cic6IDE5MiwgJ2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogNDAwMH0sCisgICAgIyBW
aWRlbyBiaXRyYXRlIGNoYW5nZS4KKyAgICB7J2ZzJzogJzY0MHg0ODAnLCAnZnInOiAzMCwgJ2tm
cic6IDEwLCAnYyc6ICcjMDBmZmZmJywgJ3Zicic6IDUxMiwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0
MTAwLCAnYWNoJzogMSwgJ2FmcmVxJzogMjAwMH0sCitdCisKK0NPTkZJR19DSEFOR0VfVEVTVFMg
PSBbCisgICAgWyJ2LWZyYW1lcmF0ZSIsIDAsIDEsICJUZXN0cyAlcyB2aWRlby1vbmx5IGZyYW1l
IHJhdGUgY2hhbmdlcy4iXSwKKyAgICBbInYtZnJhbWVzaXplIiwgMSwgMiwgIlRlc3RzICVzIHZp
ZGVvLW9ubHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiJdLAorICAgIFsidi1iaXRyYXRlIiwgMSwgMywg
IlRlc3RzICVzIHZpZGVvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiJdLAorICAgIFsiYS1iaXRyYXRl
IiwgNCwgNSwgIlRlc3RzICVzIGF1ZGlvLW9ubHkgYml0cmF0ZSBjaGFuZ2VzLiJdLAorICAgIFsi
YXYtZnJhbWVzaXplIiwgNiwgNywgIlRlc3RzICVzIGZyYW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0
aXBsZXhlZCBjb250ZW50LiJdLAorICAgIFsiYXYtYXVkaW8tYml0cmF0ZSIsIDcsIDgsICJUZXN0
cyAlcyBhdWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iXSwKKyAg
ICBbImF2LXZpZGVvLWJpdHJhdGUiLCA3LCA5LCAiVGVzdHMgJXMgdmlkZW8gYml0cmF0ZSBjaGFu
Z2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIl0KK10KKworQ09ERUNfSU5GTyA9IHsKKyAgICAi
bXA0IjogeyJhdWRpbyI6ICJtcDRhLjQwLjIiLCAidmlkZW8iOiAiYXZjMS40RDQwMDEifSwKKyAg
ICAid2VibSI6IHsiYXVkaW8iOiAidm9yYmlzIiwgInZpZGVvIjogInZwOCJ9Cit9CisKK0hUTUxf
VEVNUExBVEUgPSAiIiI8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBt
ZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIiUobWVkaWFfZm9ybWF0KXMiLCAiJShpZEEpcyIs
ICIlKGlkQilzIiwgIiUoZGVzY3JpcHRpb24pcyIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CisiIiIKKworZGVmIHJ1bihjbWRfbGluZSk6CisgICAgb3Muc3lzdGVt
KCIgIi5qb2luKGNtZF9saW5lKSkKKworZGVmIGdlbmVyYXRlX21hbmlmZXN0KGZpbGVuYW1lLCBt
ZWRpYV9maWxlbmFtZSwgbWVkaWFfZm9ybWF0LCBoYXNfYXVkaW8sIGhhc192aWRlbyk6CisgICAg
bWFqb3JfdHlwZSA9ICJhdWRpbyIKKyAgICBpZiBoYXNfdmlkZW86CisgICAgICAgIG1ham9yX3R5
cGUgPSAidmlkZW8iCisKKyAgICBjb2RlY3MgPSBbXQorICAgIGlmIGhhc192aWRlbzoKKyAgICAg
ICAgY29kZWNzLmFwcGVuZChDT0RFQ19JTkZPW21lZGlhX2Zvcm1hdF1bInZpZGVvIl0pCisKKyAg
ICBpZiBoYXNfYXVkaW86CisgICAgICAgIGNvZGVjcy5hcHBlbmQoQ09ERUNfSU5GT1ttZWRpYV9m
b3JtYXRdWyJhdWRpbyJdKQorCisgICAgbWltZXR5cGUgPSAiJXMvJXM7Y29kZWNzPVwiJXNcIiIg
JSAobWFqb3JfdHlwZSwgbWVkaWFfZm9ybWF0LCAiLCIuam9pbihjb2RlY3MpKQorCisgICAgbWFu
aWZlc3QgPSB7ICd1cmwnOiBtZWRpYV9maWxlbmFtZSwgJ3R5cGUnOiBtaW1ldHlwZX0KKworICAg
IGYgPSBvcGVuKGZpbGVuYW1lLCAid2IiKQorICAgIGYud3JpdGUoanNvbi5kdW1wcyhtYW5pZmVz
dCwgaW5kZW50PTQsIHNlcGFyYXRvcnM9KCcsJywgJzogJykpKQorICAgIGYuY2xvc2UoKQorCitk
ZWYgZ2VuZXJhdGVfdGVzdF9odG1sKG1lZGlhX2Zvcm1hdCwgY29uZmlnX2NoYW5nZV90ZXN0cywg
ZW5jb2RpbmdfaWRzKToKKyAgICBmb3IgdGVzdF9pbmZvIGluIGNvbmZpZ19jaGFuZ2VfdGVzdHM6
CisgICAgICAgIGZpbGVuYW1lID0gIi4uLy4uL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25m
aWctY2hhbmdlLSVzLSVzLmh0bWwiICUgKG1lZGlhX2Zvcm1hdCwgdGVzdF9pbmZvWzBdKQorICAg
ICAgICBodG1sID0gSFRNTF9URU1QTEFURSAlIHsnbWVkaWFfZm9ybWF0JzogbWVkaWFfZm9ybWF0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkQSc6IGVuY29kaW5nX2lkc1t0
ZXN0X2luZm9bMV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkQic6IGVu
Y29kaW5nX2lkc1t0ZXN0X2luZm9bMl1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2Rlc2NyaXB0aW9uJzogIHRlc3RfaW5mb1szXSAlIChtZWRpYV9mb3JtYXQpfQorICAgICAg
ICBmID0gb3BlbihmaWxlbmFtZSwgIndiIikKKyAgICAgICAgZi53cml0ZShodG1sKQorICAgICAg
ICBmLmNsb3NlKCkKKworCitkZWYgbWFpbigpOgorICAgIGVuY29kaW5nX2lkcyA9IFtdCisKKyAg
ICBmb3IgbWVkaWFfZm9ybWF0IGluIE1FRElBX0ZPUk1BVFM6CisgICAgICAgIHJ1bihbIm1rZGly
ICIsIG1lZGlhX2Zvcm1hdF0pCisKKyAgICAgICAgZm9yIHNldHRpbmdzIGluIEVOQ09ERV9TRVRU
SU5HUzoKKyAgICAgICAgICAgIHZpZGVvX2JpdHJhdGUgPSBzZXR0aW5nc1sndmJyJ10KKyAgICAg
ICAgICAgIGhhc192aWRlbyA9ICh2aWRlb19iaXRyYXRlID4gMCkKKworICAgICAgICAgICAgYXVk
aW9fYml0cmF0ZSA9IHNldHRpbmdzWydhYnInXQorICAgICAgICAgICAgaGFzX2F1ZGlvID0gKGF1
ZGlvX2JpdHJhdGUgPiAwKQorICAgICAgICAgICAgYml0cmF0ZSA9IHZpZGVvX2JpdHJhdGUgKyBh
dWRpb19iaXRyYXRlCisKKyAgICAgICAgICAgIGZyYW1lX3NpemUgPSBzZXR0aW5nc1snZnMnXQor
ICAgICAgICAgICAgZnJhbWVfcmF0ZSA9IHNldHRpbmdzWydmciddCisgICAgICAgICAgICBrZXlm
cmFtZV9yYXRlID0gc2V0dGluZ3NbJ2tmciddCisgICAgICAgICAgICBjb2xvciA9IHNldHRpbmdz
WydjJ10KKworICAgICAgICAgICAgc2FtcGxlX3JhdGUgPSBzZXR0aW5nc1snYXNyJ10KKyAgICAg
ICAgICAgIGNoYW5uZWxzID0gc2V0dGluZ3NbJ2FjaCddCisgICAgICAgICAgICBmcmVxdWVuY3kg
PSBzZXR0aW5nc1snYWZyZXEnXQorCisgICAgICAgICAgICBjbWRsaW5lID0gWyJmZm1wZWciLCAi
LXkiXQorCisgICAgICAgICAgICBpZF9wcmVmaXggPSAiIgorICAgICAgICAgICAgaWRfcGFyYW1z
ID0gIiIKKyAgICAgICAgICAgIGlmIGhhc19hdWRpbzoKKyAgICAgICAgICAgICAgICBpZF9wcmVm
aXggKz0gImEiCisgICAgICAgICAgICAgICAgaWRfcGFyYW1zICs9ICItJXNIei0lc2NoIiAlIChz
YW1wbGVfcmF0ZSwgY2hhbm5lbHMpCisKKyAgICAgICAgICAgICAgICBjaGFubmVsX2xheW91dCA9
ICJGQyIKKyAgICAgICAgICAgICAgICBzaW5fZnVuYyA9ICJzaW4oJXMqMipQSSp0KSIgJSBmcmVx
dWVuY3kKKyAgICAgICAgICAgICAgICBmdW5jID0gc2luX2Z1bmMKKyAgICAgICAgICAgICAgICBp
ZiBjaGFubmVscyA9PSAyOgorICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2xheW91dCArPSAi
fEJDIgorICAgICAgICAgICAgICAgICAgICBmdW5jICs9ICJ8IiArIHNpbl9mdW5jCisKKyAgICAg
ICAgICAgICAgICBjbWRsaW5lICs9IFsiLWYiLCAibGF2ZmkiLCAiLWkiLCAiYWV2YWxzcmM9XCIl
czpzPSVzOmM9JXM6ZD0lc1wiIiAlIChmdW5jLCBzYW1wbGVfcmF0ZSwgY2hhbm5lbF9sYXlvdXQs
IERVUkFUSU9OKV0KKworICAgICAgICAgICAgaWYgaGFzX3ZpZGVvOgorICAgICAgICAgICAgICAg
IGlkX3ByZWZpeCArPSAidiIKKyAgICAgICAgICAgICAgICBpZF9wYXJhbXMgKz0gIi0lcy0lc2Zw
cy0lc2tmciIgJSAoZnJhbWVfc2l6ZSwgZnJhbWVfcmF0ZSwga2V5ZnJhbWVfcmF0ZSkKKworICAg
ICAgICAgICAgICAgIGNtZGxpbmUgKz0gWyItZiIsICJsYXZmaSIsICItaSIsICJjb2xvcj0lczpk
dXJhdGlvbj0lczpzaXplPSVzOnJhdGU9JXMiICUgKGNvbG9yLCBEVVJBVElPTiwgZnJhbWVfc2l6
ZSwgZnJhbWVfcmF0ZSldCisKKyAgICAgICAgICAgIGlmIGhhc19hdWRpbzoKKyAgICAgICAgICAg
ICAgICBjbWRsaW5lICs9IFsiLWI6YSIsICIlc2siICUgYXVkaW9fYml0cmF0ZV0KKworICAgICAg
ICAgICAgaWYgaGFzX3ZpZGVvOgorICAgICAgICAgICAgICAgIGNtZGxpbmUgKz0gWyItYjp2Iiwg
IiVzayIgJSB2aWRlb19iaXRyYXRlXQorICAgICAgICAgICAgICAgIGNtZGxpbmUgKz0gWyIta2V5
aW50X21pbiIsICIlcyIgJSBrZXlmcmFtZV9yYXRlXQorICAgICAgICAgICAgICAgIGNtZGxpbmUg
Kz0gWyItZyIsICIlcyIgJSBrZXlmcmFtZV9yYXRlXQorCisKKyAgICAgICAgICAgICAgICB0ZXh0
T3ZlcmxheUluZm8gPSAiJ2RyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6dGV4dD1U
aW1lXFxcXDpcXFxcICV7cHRzfSIKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0g
IixkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRzaXplPTMyOnk9MzI6dGV4dD1TaXplXFxcXDpc
XFxcICVzIiAlIChmcmFtZV9zaXplKQorICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyAr
PSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6eT02NDp0ZXh0PUJpdHJhdGVc
XFxcOlxcXFwgJXMiICUgKGJpdHJhdGUpCisgICAgICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZv
ICs9ICIsZHJhd3RleHQ9Zm9udGZpbGU9TW9ubzpmb250c2l6ZT0zMjp5PTk2OnRleHQ9RnJhbWVS
YXRlXFxcXDpcXFxcICVzIiAlIChmcmFtZV9yYXRlKQorICAgICAgICAgICAgICAgIHRleHRPdmVy
bGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6eT0xMjg6dGV4
dD1LZXlGcmFtZVJhdGVcXFxcOlxcXFwgJXMiICUgKGtleWZyYW1lX3JhdGUpCisKKyAgICAgICAg
ICAgICAgICBpZiBoYXNfYXVkaW86CisgICAgICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5m
byArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNpemU9MzI6eT0xNjA6dGV4dD1TYW1w
bGVSYXRlXFxcXDpcXFxcICVzIiAlIChzYW1wbGVfcmF0ZSkKKyAgICAgICAgICAgICAgICAgICAg
dGV4dE92ZXJsYXlJbmZvICs9ICIsZHJhd3RleHQ9Zm9udGZpbGU9TW9ubzpmb250c2l6ZT0zMjp5
PTE5Mjp0ZXh0PUNoYW5uZWxzXFxcXDpcXFxcICVzIiAlIChjaGFubmVscykKKworICAgICAgICAg
ICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiJyIKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9
IFsiLXZmIiwgdGV4dE92ZXJsYXlJbmZvXQorCisgICAgICAgICAgICBlbmNvZGluZ19pZCA9ICIl
cy0lc2slcyIgJSAoaWRfcHJlZml4LCBiaXRyYXRlLCBpZF9wYXJhbXMpCisKKyAgICAgICAgICAg
IGlmIGxlbihlbmNvZGluZ19pZHMpIDwgbGVuKEVOQ09ERV9TRVRUSU5HUyk6CisgICAgICAgICAg
ICAgICAgZW5jb2RpbmdfaWRzLmFwcGVuZChlbmNvZGluZ19pZCkKKworICAgICAgICAgICAgZmls
ZW5hbWVfYmFzZSA9ICIlcy90ZXN0LSVzIiAlIChtZWRpYV9mb3JtYXQsIGVuY29kaW5nX2lkKQor
ICAgICAgICAgICAgbWVkaWFfZmlsZW5hbWUgPSBmaWxlbmFtZV9iYXNlICsgIi4iICsgbWVkaWFf
Zm9ybWF0CisgICAgICAgICAgICBtYW5pZmVzdF9maWxlbmFtZSA9IGZpbGVuYW1lX2Jhc2UgKyAi
LW1hbmlmZXN0Lmpzb24iCisKKyAgICAgICAgICAgIGNtZGxpbmUuYXBwZW5kKG1lZGlhX2ZpbGVu
YW1lKQorICAgICAgICAgICAgcnVuKGNtZGxpbmUpCisKKyAgICAgICAgICAgICMgUmVtdXggZmls
ZSBzbyBpdCBjb25mb3JtcyB0byBNU0UgYnl0ZXN0cmVhbSByZXF1aXJlbWVudHMuCisgICAgICAg
ICAgICBpZiBtZWRpYV9mb3JtYXQgPT0gIndlYm0iOgorICAgICAgICAgICAgICAgIHRtcF9maWxl
bmFtZSA9IG1lZGlhX2ZpbGVuYW1lICsgIi50bXAiCisgICAgICAgICAgICAgICAgcnVuKFsibXNl
X3dlYm1fcmVtdXhlciIsIG1lZGlhX2ZpbGVuYW1lLCB0bXBfZmlsZW5hbWVdKQorICAgICAgICAg
ICAgICAgIHJ1bihbIm12IiwgdG1wX2ZpbGVuYW1lLCBtZWRpYV9maWxlbmFtZV0pCisgICAgICAg
ICAgICBlbGlmIG1lZGlhX2Zvcm1hdCA9PSAibXA0IjoKKyAgICAgICAgICAgICAgICBydW4oWyJN
UDRCb3giLCAiLWRhc2giLCAiMjUwIiwgIi1yYXAiLCBtZWRpYV9maWxlbmFtZV0pCisgICAgICAg
ICAgICAgICAgcnVuKFsibXYiLCBmaWxlbmFtZV9iYXNlICsgIl9kYXNoLm1wNCIsIG1lZGlhX2Zp
bGVuYW1lXSkKKyAgICAgICAgICAgICAgICBydW4oWyJybSIsIGZpbGVuYW1lX2Jhc2UgKyAiX2Rh
c2gubXBkIl0pCisKKyAgICAgICAgICAgIGdlbmVyYXRlX21hbmlmZXN0KG1hbmlmZXN0X2ZpbGVu
YW1lLCBtZWRpYV9maWxlbmFtZSwgbWVkaWFfZm9ybWF0LCBoYXNfYXVkaW8sIGhhc192aWRlbykK
KyAgICAgICAgZ2VuZXJhdGVfdGVzdF9odG1sKG1lZGlhX2Zvcm1hdCwgQ09ORklHX0NIQU5HRV9U
RVNUUywgZW5jb2RpbmdfaWRzKQorCitpZiAnX19tYWluX18nID09IF9fbmFtZV9fOgorICAgIG1h
aW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90
ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzY2FhNDYw
ZTlmMDc4Mjc4NjgwYzZjZGI5ZTFjZTkxNGE4YzU5YWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qt
YS0xMjhrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAg
InVybCI6ICJtcDQvdGVzdC1hLTEyOGstNDQxMDBIei0xY2gubXA0IiwKKyAgICAidHlwZSI6ICJh
dWRpby9tcDQ7Y29kZWNzPVwibXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90
ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYTZmMzM5
Yjc5MTgwYmE4ZTgxMWYxYzg5OWMwYTNjYzE0ZjQ0NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qt
YS0xOTJrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAg
InVybCI6ICJtcDQvdGVzdC1hLTE5MmstNDQxMDBIei0xY2gubXA0IiwKKyAgICAidHlwZSI6ICJh
dWRpby9tcDQ7Y29kZWNzPVwibXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0x
MGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZw
cy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3MzFlMzE3MGU1Y2E1MjM0N2VmZjNk
ZWY4ZTU0MDlmMTIxYjhhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYXYtMzg0ay00NDEwMEh6
LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7
CisgICAgInVybCI6ICJtcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMt
MTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDEs
bXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90
ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29u
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21w
NC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5q
c29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc4ZGVkNjExZjY4MmQ1MmU3ODE4NGE3Y2JjZTQ3ZjNiMTAyYWE3ZDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNl
cy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBz
LTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQv
dGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAi
dHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDEsbXA0YS40MC4yXCIiCit9Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTQ0OGstNDQxMDBI
ei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTQ0OGstNDQx
MDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJh
NDYzNDlmOTNlZDIxOGQ5NzBmM2VmYThiM2U3NDhjMDE2ZGM3MGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0
L3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpz
b24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC1hdi00NDhrLTQ0MTAw
SHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7
Y29kZWNzPVwiYXZjMS40RDQwMDEsbXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZw
cy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNv
dXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0z
MGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0ZGE5YjRjZTNmNzM4YzM0NjJi
ZTI0NGVlNjlmNDFjMmU0YzIxNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3QtYXYtNjQway00NDEw
MEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBA
Cit7CisgICAgInVybCI6ICJtcDQvdGVzdC1hdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBm
cHMtMTBrZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQw
MDEsbXA0YS40MC4yXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21w
NC90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEy
OGstMzIweDI0MC0yNGZwcy04a2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMxYjZkMDI0
NWJhNWRlOGE1OWRjZGY3OTViYTJhYjAwODY0N2VmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12
LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7
CisgICAgInVybCI6ICJtcDQvdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLm1wNCIsCisg
ICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxXCIiCit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBz
LTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFu
aWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTAyODQ0MTA1YmFhNjI5YmY0MzhlMWE2ZTljMWNjNjJl
ZDk3OGI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2Zy
LW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC12
LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci5tcDQiLAorICAgICJ0eXBlIjogInZpZGVvL21wNDtj
b2RlY3M9XCJhdmMxLjRENDAwMVwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNv
dXJjZS9tcDQvdGVzdC12LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90
ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTBjNGY0YmNiZGZjY2FlOGU1YTM4NjgzMWU5MTI4Njc5MTdjYzA0YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9t
cDQvdGVzdC12LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAg
KzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBr
ZnIubXA0IiwKKyAgICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDFcIiIK
K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0yNTZrLTMy
MHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTI1NmstMzIweDI0MC0zMGZw
cy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyZDNlMWU1MjRlYzdmOTFmZDI0Y2Zl
MDhkMTlmZTU4MDk1MzU2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0yNTZrLTMyMHgyNDAt
MzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjog
Im1wNC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAi
dmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hLTEyOGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNv
biBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93
ZWJtL3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI0
ZGE4MTQ5ZmU2ZDM2Yzg5MTUwMWQwNTlmODU2MjFmMDZjZGUzNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJt
L3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7
CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNoLndlYm0iLAorICAgICJ0
eXBlIjogImF1ZGlvL3dlYm07Y29kZWNzPVwidm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNv
dXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hLTE5MmstNDQxMDBIei0xY2gtbWFuaWZlc3Qu
anNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJj
ZS93ZWJtL3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2YyZmExZThjMzM1ZGYxNmYxNmM0OTEwOTA4OGI5YTkxNDhjNTMzNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93
ZWJtL3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBA
Cit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNoLndlYm0iLAorICAg
ICJ0eXBlIjogImF1ZGlvL3dlYm07Y29kZWNzPVwidm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTMyMHgy
NDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0z
MjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY5ZjA3YWYxNWRi
OGFjYjA4ZmVjNjk2N2E2YzkyZWZiNjJiZTU3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYt
Mzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAs
MCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0z
MjB4MjQwLTMwZnBzLTEwa2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNz
PVwidnA4LHZvcmJpc1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93
ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3Vy
Y2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5p
ZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZWM4NmIzZGI5Mjc3ODc4NzA1ZmQxNzA4ZWM3YWViYTcx
ZDA4ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4
MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwi
OiAid2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci53ZWJt
IiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOCx2b3JiaXNcIiIKK30KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTQ0OGstNDQxMDBI
ei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi00NDhrLTQ0
MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
NmE1OWRiNTg2ZWQ1OWJiYjMwOGNmNDk2OGM5ZGU5OTA3MTkzYTczCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dl
Ym0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC1hdi00NDhrLTQ0
MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8v
d2VibTtjb2RlY3M9XCJ2cDgsdm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVk
aWEtc291cmNlL3dlYm0vdGVzdC1hdi02NDBrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBr
ZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2Vz
L21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBz
LTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY3MjNiMzRhODE5Y2Y3ZDNhNDY5YWJj
YTJhZDYwZWExNWE5YmYzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNjQway00NDEwMEh6
LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7
CisgICAgInVybCI6ICJ3ZWJtL3Rlc3QtYXYtNjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBz
LTEwa2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4LHZvcmJp
c1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0x
MjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTEyOGstMzIweDI0
MC0yNGZwcy04a2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBlMTAzYWNhOWI2NmQ4YzZl
MTRhOGVlYjBmZDc4ODgzMDIwNjlmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTMy
MHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1
cmwiOiAid2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnIud2VibSIsCisgICAgInR5
cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDhcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNl
cy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlm
ZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1z
b3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmRlZWI0MDFkOTY5MTE1ZTVkM2ZlMTc4ZTM5ZDA5MGM3Yzc2NjQ5NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21l
ZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC12LTEyOGstMzIw
eDI0MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1c
InZwOFwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qt
di0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTY0
MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTMwNDYwNjY3ODE2
MGZmODc1YTQxZjk5NzkwYmU4Y2JhOGU3NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTEy
OGstNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAorewor
ICAgICJ1cmwiOiAid2VibS90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLndlYm0iLAor
ICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4XCIiCit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9y
ZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVz
dC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM0NzA2NzRiZmY1ZDc1ZGFhOTcyZTQ3MmZiMjIxOTI4NzQwODE4
M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1h
bmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6ICJ3ZWJtL3Rlc3Qtdi0y
NTZrLTMyMHgyNDAtMzBmcHMtMTBrZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8vd2VibTtj
b2RlY3M9XCJ2cDhcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208137</attachid>
            <date>2013-08-05 11:11:52 -0700</date>
            <delta_ts>2013-08-06 12:59:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118752-20130805111152.patch</filename>
            <type>text/plain</type>
            <size>314993</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThlZDBhMWM0ZWE4NGU3
OTY1OTI2ZjNiN2U5MDA1ZDczNzI0Zjg2NS4uNzYzNTJiNDg5YTljNmFjZjk5ZTlmMDVhNGQ3MDNi
YzFmNWU2NjQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTA3LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIGJsaW5rIE1lZGlh
U291cmNlIGNoYW5nZXMgc2luY2UgZm9yay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODc1MgorCisgICAgICAgIEFkZCBmaWxlcyB0byBwcm9qZWN0
LiBGaXggY29tcGlsZSBlcnJvcnMgZXhwb3NlZCBieSBlbmFibGluZy4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2VSZWdpc3RyeTo6bG9va3VwTWVkaWFTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bG9hZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bG9hZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUpOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisKKyAgICAgICAgTWVyZ2UKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvYzM4ZTI5NTVkYjk4YTMwMGE1MzViNjkyODY5ZmVh
MGU0MTUwMTQ5NworICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hy
b21pdW0vYmxpbmsvKy84NTY4MDE1ZTliZWUxZGU3ZmNjZWUyODE2M2Y5ZTRhNGI1MWY5YmFmCisg
ICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8r
LzE0NDE3ZThmYTYyOTRmNGU3ZGJjMWUwZmFjNTQ5Mzk4NTIyYjJmOTcKKyAgICAgICAgaHR0cHM6
Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZjQzYTU0OTZmMjMz
MTAyZjg4NjFhMDY3YTljZjgwNTNjMDEwZDQwMQorICAgICAgICBodHRwczovL2Nocm9taXVtLmdv
b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy81Nzc3MTQzOTgwNmY3YzZlNmEyNzJlZmIx
ZWE3MjkwMGY1ZjZhMDE1CisgICAgICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNv
bS9jaHJvbWl1bS9ibGluay8rLzhjNzdhNzkwYTlkMjI1MTk0ZGIwYTg4MzIzOTlkMGY5ZTFmYTU0
ZWMKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2Js
aW5rLysvZDMzYWUzZmE3YTg1OTJlOTQ2NTAzZWQxN2Y4NjJhMjdjNmQ5ZGRlMQorICAgICAgICBo
dHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vYmxpbmsvKy8xY2FhYTlj
NTFmMDZlMWI5MzQxZDU4Yzk5NGY3N2ZkNTlmY2QyMzZkCisgICAgICAgIGh0dHBzOi8vY2hyb21p
dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rL2U5NTcyMDM5M2IwZWJlNjdmMTlk
ZTM5YmI3N2NkZjI5MjYxNjU1MTIKKyAgICAgICAgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3Vy
Y2UuY29tL2Nocm9taXVtL2JsaW5rLysvYmFkMmMxYjRiNzBmYWVjNzMxYjJhZDNjYzhhNGNjZjI4
ZGU2Y2MzOAorICAgICAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21p
dW0vYmxpbmsvKy9hNzg3MzQzMGMzZDVjOTM3MzMzNmM2ZjM5OTNkYjNjYjQyMjhlOWNkCisgICAg
ICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9ibGluay8rLzUw
ODk2NmQ1ZTMyMzYwYjNjZWMwNThmOWZiYWUwMDE0NTQyZmJjNTIKKyAgICAgICAgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvMzcxZGZlNzJmNjFjZTZm
NzNlNmMyNDIzMjRkYTczYzQxNWQzOGJlMworCiAyMDEzLTA4LTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IGVnbHBsYXRmb3JtLmgg
dG8gYmUgZm91bmQgYnkgV2luZG93cyBXZWJHTCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNzVjZWUzNzEzZmY2ZGYxMWY2ZjhjODlkY2VmZGYyYWQ1MWUwZGY0Yy4uMDRlMjAxN2RmNjFj
NzBmYTUzYWFlMGM0MWI2ODM4MGY0ZTk0Y2MyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIw
OSw2ICsyMDksMTAgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsCisgICAg
TW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwKKyAgICBNb2R1bGVzL21lZGlh
c291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2Vi
S2l0U291cmNlQnVmZmVyLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbApAQCAtMTQ3OSw2
ICsxNDgzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvTnVtYmVySW5wdXRUeXBl
LmNwcAogICAgIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9QbHVnaW5Eb2N1
bWVudC5jcHAKKyAgICBodG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwCiAgICAgaHRtbC9SYWRpb0lu
cHV0VHlwZS5jcHAKICAgICBodG1sL1JhZGlvTm9kZUxpc3QuY3BwCiAgICAgaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCAxZDM0NmUyZTdkY2Jl
MGMzMTA1YzVkYTBmM2ZkMGViODMyNDBkNzAyLi5iOTM2MmFlZTE3YjY5NmViNDk2Y2I1MzNiMzlj
MzAxZWMyN2UwZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0yNzYsNyArMjc2
LDcgQEAKICNpbmNsdWRlICJKU01lZGlhTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5
TGlzdC5jcHAiCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSNpbmNsdWRlICJKU01lZGlhU291
cmNlLmNwcCIKKyNpbmNsdWRlICJKU1dlYktpdE1lZGlhU291cmNlLmNwcCIKICNlbmRpZgogI2lu
Y2x1ZGUgIkpTTWVzc2FnZUNoYW5uZWwuY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZUV2ZW50LmNw
cCIKQEAgLTMyMSw4ICszMjEsOCBAQAogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyLmNwcCIKICNp
bmNsdWRlICJKU1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCIKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQotI2luY2x1ZGUgIkpTU291cmNlQnVmZmVyLmNwcCIKLSNpbmNsdWRlICJKU1NvdXJj
ZUJ1ZmZlckxpc3QuY3BwIgorI2luY2x1ZGUgIkpTV2ViS2l0U291cmNlQnVmZmVyLmNwcCIKKyNp
bmNsdWRlICJKU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAi
SlNTUUxFcnJvci5jcHAiCiAjaW5jbHVkZSAiSlNTUUxFeGNlcHRpb24uY3BwIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYWFiM2U4MTdhNTNkNjM2ZWE1M2IwOWFkYWNmZGVhYzNk
ZGFjOGFmOC4uYmYxOWE0NTBlYzdlMjQ4ZmU0OTI3MWQ3Mjg1ZDc5YjhjMDcwNmM5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMTIsOSArMTEyLDEzIEBAIEJJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VF
dmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFs
U2NvcGVJbmRleGVkRGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kaWV1
aS9VSVJlcXVlc3RFdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlz
dC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJj
ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VC
dWZmZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291
cmNlQnVmZmVyTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LnByaQppbmRleCAwNjY3MGNiNzkzZDhkMTJmZDBmOTM0NTgxMmVlMjEzYzMxZDk2YWE5Li43M2U2
Y2Y5ZWNjNzAxYmU4YzgyNWMzNDJmMGU3MDgwOTAyZTY2MDdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMucHJpCkBAIC02NzQsNyArNjc0LDExIEBAIGVuYWJsZT8oTUVESUFfU09VUkNFKSB7CiAg
IElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlk
bCBcCi0gICAgJCRQV0QvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbAor
ICAgICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5pZGwgXAorICAg
ICQkUFdEL01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaWRsIFwKKyAgICAkJFBX
RC9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmlkbCBcCisgICAgJCRQV0Qv
TW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXIuaWRsIFwKKyAgICAkJFBXRC9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaWRsCiB9CiAKIHF0UHJl
cGFyZVRvb2woUU1BS0VfTU9DLCBtb2MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCAzZDRmMmNkZGEyMmE1YzQzODdhZjc1NWI3ZTY2MTkzY2IyMTdlMTdhLi5lMTEzOTQ2OWNhYjI1
YmRlM2FmY2QzNGEyYWMyMTcxOGNkMjE1MzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTUxNyw2ICs1MTcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhU291cmNlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU291
cmNlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRNZWRpYVNvdXJjZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRNZWRpYVNvdXJjZS5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW0uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTWVkaWFTdHJlYW0uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBcCkBAIC02ODMsNiArNjg1LDEwIEBAIHdlYmNvcmVf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZl
ci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyTGlzdC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0U291cmNlQnVmZmVyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NwZWVjaElucHV0RXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
SW5wdXRFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRSZXN1
bHQuY3BwIFwKQEAgLTEyNjUsNiArMTI3MSwxMCBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkk
KFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsIFwKIAkkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbCBcCiAJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsIFwKKwkkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCkBAIC0xOTc3LDEyICsxOTg3LDIy
IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmggXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZl
ci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNl
QnVmZmVyLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291
cmNlQnVmZmVyTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
V2ViS2l0U291cmNlQnVmZmVyTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAgXApAQCAtMzc0Myw2ICszNzYzLDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5w
dXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0
bWwvUHVibGljVVJMTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJM
TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0VHlwZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggZWU2MzI2OWM2
ZThiODA2NGFiNjQxM2EyMjI4NjZhN2IxNzcwMTlhNC4uMGViMDI5ZGJkN2I3MGQxZjIyMTc3ZDBj
N2Y1Mjk1MWUxZDdhMjQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM0LDExICszNCwxNSBAQAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgotI2luY2x1ZGUgIkV2ZW50Lmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiR2VuZXJp
Y0V2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVS
ZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
b3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2luY2x1ZGUg
PHd0Zi9VaW50OEFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUwLDY0ICs1NCwyNCBAQCBQYXNzUmVmUHRyPE1lZGlhU291
cmNlPiBNZWRpYVNvdXJjZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
CiB9CiAKIE1lZGlhU291cmNlOjpNZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCi0gICAgLCBtX3JlYWR5U3Rh
dGUoY2xvc2VkS2V5d29yZCgpKQotICAgICwgbV9hc3luY0V2ZW50UXVldWUoR2VuZXJpY0V2ZW50
UXVldWU6OmNyZWF0ZSh0aGlzKSkKKyAgICA6IE1lZGlhU291cmNlQmFzZShjb250ZXh0KQogewot
ICAgIG1fc291cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIG1fYXN5bmNFdmVudFF1ZXVlLmdldCgpKTsKLSAgICBtX2FjdGl2ZVNv
dXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKSk7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFT
b3VyY2U6Ok1lZGlhU291cmNlICVwIiwgdGhpcyk7CisgICAgbV9zb3VyY2VCdWZmZXJzID0gU291
cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYXN5bmNFdmVu
dFF1ZXVlKCkpOworICAgIG1fYWN0aXZlU291cmNlQnVmZmVycyA9IFNvdXJjZUJ1ZmZlckxpc3Q6
OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGFzeW5jRXZlbnRRdWV1ZSgpKTsKIH0K
IAotY29uc3QgU3RyaW5nJiBNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQoKQorTWVkaWFTb3VyY2U6
On5NZWRpYVNvdXJjZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG9wZW4sIChBU0NJSUxpdGVyYWwoIm9wZW4iKSkpOwotICAgIHJldHVybiBvcGVuOwotfQotCi1j
b25zdCBTdHJpbmcmIE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkKLXsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2xvc2VkLCAoQVNDSUlMaXRlcmFsKCJjbG9zZWQi
KSkpOwotICAgIHJldHVybiBjbG9zZWQ7Ci19Ci0KLWNvbnN0IFN0cmluZyYgTWVkaWFTb3VyY2U6
OmVuZGVkS2V5d29yZCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IGVuZGVkLCAoQVNDSUlMaXRlcmFsKCJlbmRlZCIpKSk7Ci0gICAgcmV0dXJuIGVuZGVkOwotfQot
Ci1Tb3VyY2VCdWZmZXJMaXN0KiBNZWRpYVNvdXJjZTo6c291cmNlQnVmZmVycygpCi17Ci0gICAg
cmV0dXJuIG1fc291cmNlQnVmZmVycy5nZXQoKTsKLX0KLQotU291cmNlQnVmZmVyTGlzdCogTWVk
aWFTb3VyY2U6OmFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKQotewotICAgIC8vIEZJWE1FKDkxNjQ5KTog
c3VwcG9ydCB0cmFjayBzZWxlY3Rpb24KLSAgICByZXR1cm4gbV9hY3RpdmVTb3VyY2VCdWZmZXJz
LmdldCgpOwotfQotCi1kb3VibGUgTWVkaWFTb3VyY2U6OmR1cmF0aW9uKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9yZWFkeVN0YXRlID09IGNsb3NlZEtleXdvcmQoKSA/IHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjpxdWlldF9OYU4oKSA6IG1fcHJpdmF0ZS0+ZHVyYXRpb24oKTsKLX0KLQot
dm9pZCBNZWRpYVNvdXJjZTo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uLCBFeGNlcHRpb25D
b2RlJiBlYykKLXsKLSAgICBpZiAoZHVyYXRpb24gPCAwLjAgfHwgc3RkOjppc25hbihkdXJhdGlv
bikpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBvcGVuS2V5d29yZCgpKSB7Ci0gICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9w
cml2YXRlLT5zZXREdXJhdGlvbihkdXJhdGlvbik7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFTb3Vy
Y2U6On5NZWRpYVNvdXJjZSAlcCIsIHRoaXMpOworICAgIEFTU0VSVChpc0Nsb3NlZCgpKTsKIH0K
IAogU291cmNlQnVmZmVyKiBNZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmlu
ZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gMy4xIGh0dHA6Ly9kdmNzLncz
Lm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
Lmh0bWwjZG9tLWFkZHNvdXJjZWJ1ZmZlcgorICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlOjph
ZGRTb3VyY2VCdWZmZXIoJXMpICVwIiwgdHlwZS5hc2NpaSgpLmRhdGEoKSwgdGhpcyk7CisKKyAg
ICAvLyAyLjIgaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1
bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVkaWFTb3VyY2UtYWRkU291
cmNlQnVmZmVyLVNvdXJjZUJ1ZmZlci1ET01TdHJpbmctdHlwZQogICAgIC8vIDEuIElmIHR5cGUg
aXMgbnVsbCBvciBhbiBlbXB0eSB0aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNl
cHRpb24gYW5kCiAgICAgLy8gYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgaWYgKHR5cGUuaXNOdWxs
KCkgfHwgdHlwZS5pc0VtcHR5KCkpIHsKQEAgLTEyNCw3ICs4OCw3IEBAIFNvdXJjZUJ1ZmZlciog
TWVkaWFTb3VyY2U6OmFkZFNvdXJjZUJ1ZmZlcihjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlv
bkNvZGUmIGVjCiAKICAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaXMgbm90
IGluIHRoZSAib3BlbiIgc3RhdGUgdGhlbiB0aHJvdyBhbgogICAgIC8vIElOVkFMSURfU1RBVEVf
RVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFtX3ByaXZhdGUg
fHwgbV9yZWFkeVN0YXRlICE9IG9wZW5LZXl3b3JkKCkpIHsKKyAgICBpZiAoIWlzT3BlbigpKSB7
CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KQEAgLTEzMiwzOCArOTYsMjkgQEAgU291cmNlQnVmZmVyKiBNZWRpYVNvdXJjZTo6YWRkU291
cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICAvLyA1
LiBDcmVhdGUgYSBuZXcgU291cmNlQnVmZmVyIG9iamVjdCBhbmQgYXNzb2NpYXRlZCByZXNvdXJj
ZXMuCiAgICAgQ29udGVudFR5cGUgY29udGVudFR5cGUodHlwZSk7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gY29kZWNzID0gY29udGVudFR5cGUuY29kZWNzKCk7Ci0gICAgT3duUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGU7Ci0gICAgc3dpdGNoIChtX3ByaXZhdGUtPmFk
ZFNvdXJjZUJ1ZmZlcihjb250ZW50VHlwZS50eXBlKCksIGNvZGVjcywgJnNvdXJjZUJ1ZmZlclBy
aXZhdGUpKSB7Ci0gICAgY2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6Ok9rOiB7Ci0gICAgICAgIEFT
U0VSVChzb3VyY2VCdWZmZXJQcml2YXRlKTsKLSAgICAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlcj4g
YnVmZmVyID0gU291cmNlQnVmZmVyOjpjcmVhdGUoc291cmNlQnVmZmVyUHJpdmF0ZS5yZWxlYXNl
KCksIHRoaXMpOwotCi0gICAgICAgIC8vIDYuIEFkZCB0aGUgbmV3IG9iamVjdCB0byBzb3VyY2VC
dWZmZXJzIGFuZCBmaXJlIGEgYWRkc291cmNlYnVmZmVyIG9uIHRoYXQgb2JqZWN0LgotICAgICAg
ICBtX3NvdXJjZUJ1ZmZlcnMtPmFkZChidWZmZXIpOwotICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1
ZmZlcnMtPmFkZChidWZmZXIpOwotICAgICAgICAvLyA3LiBSZXR1cm4gdGhlIG5ldyBvYmplY3Qg
dG8gdGhlIGNhbGxlci4KLSAgICAgICAgcmV0dXJuIGJ1ZmZlci5nZXQoKTsKLSAgICB9Ci0gICAg
Y2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6Ok5vdFN1cHBvcnRlZDoKLSAgICAgICAgLy8gMiAoY29u
dCkuIElmIHR5cGUgY29udGFpbnMgYSBNSU1FIHR5cGUgLi4uIHRoYXQgaXMgbm90IHN1cHBvcnRl
ZCB3aXRoIHRoZSB0eXBlcyAKLSAgICAgICAgLy8gc3BlY2lmaWVkIGZvciB0aGUgb3RoZXIgU291
cmNlQnVmZmVyIG9iamVjdHMgaW4gc291cmNlQnVmZmVycywgdGhlbiB0aHJvdwotICAgICAgICAv
LyBhIE5PVF9TVVBQT1JURURfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0g
ICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Ci0gICAgICAgIHJldHVybiAwOwotICAgIGNh
c2UgTWVkaWFTb3VyY2VQcml2YXRlOjpSZWFjaGVkSWRMaW1pdDoKLSAgICAgICAgLy8gMyAoY29u
dCkuIElmIHRoZSB1c2VyIGFnZW50IGNhbid0IGhhbmRsZSBhbnkgbW9yZSBTb3VyY2VCdWZmZXIg
b2JqZWN0cyB0aGVuIHRocm93IAotICAgICAgICAvLyBhIFFVT1RBX0VYQ0VFREVEX0VSUiBleGNl
cHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBlYyA9IFFVT1RBX0VYQ0VFREVE
X0VSUjsKKyAgICBPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0
ZSA9IGNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUoY29udGVudFR5cGUudHlwZSgpLCBjb2RlY3Ms
IGVjKTsKKworICAgIGlmICghc291cmNlQnVmZmVyUHJpdmF0ZSkgeworICAgICAgICBBU1NFUlQo
ZWMgPT0gTk9UX1NVUFBPUlRFRF9FUlIgfHwgZWMgPT0gUVVPVEFfRVhDRUVERURfRVJSKTsKKyAg
ICAgICAgLy8gMi4gSWYgdHlwZSBjb250YWlucyBhIE1JTUUgdHlwZSB0aGF0IGlzIG5vdCBzdXBw
b3J0ZWQgLi4uLCB0aGVuIHRocm93IGEgTk9UX1NVUFBPUlRFRF9FUlIgZXhjZXB0aW9uIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgLy8gMy4gSWYgdGhlIHVzZXIgYWdlbnQgY2FuJ3Qg
aGFuZGxlIGFueSBtb3JlIFNvdXJjZUJ1ZmZlciBvYmplY3RzIHRoZW4gdGhyb3cgYSBRVU9UQV9F
WENFRURFRF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsK
KyAgICBSZWZQdHI8U291cmNlQnVmZmVyPiBidWZmZXIgPSBTb3VyY2VCdWZmZXI6OmNyZWF0ZShz
b3VyY2VCdWZmZXJQcml2YXRlLnJlbGVhc2UoKSwgdGhpcywgYXN5bmNFdmVudFF1ZXVlKCkpOwor
ICAgIC8vIDYuIEFkZCB0aGUgbmV3IG9iamVjdCB0byBzb3VyY2VCdWZmZXJzIGFuZCBmaXJlIGEg
YWRkc291cmNlYnVmZmVyIG9uIHRoYXQgb2JqZWN0LgorICAgIG1fc291cmNlQnVmZmVycy0+YWRk
KGJ1ZmZlcik7CisgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5hZGQoYnVmZmVyKTsKKyAgICAv
LyA3LiBSZXR1cm4gdGhlIG5ldyBvYmplY3QgdG8gdGhlIGNhbGxlci4KKyAgICByZXR1cm4gYnVm
ZmVyLmdldCgpOwogfQogCiB2b2lkIE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291
cmNlQnVmZmVyKiBidWZmZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIC8vIDMuMSBodHRw
Oi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS5odG1sI2RvbS1yZW1vdmVzb3VyY2VidWZmZXIKKyAgICBMT0coTWVkaWEsICJN
ZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKCkgJXAiLCB0aGlzKTsKKyAgICBSZWZQdHI8
U291cmNlQnVmZmVyPiBwcm90ZWN0KGJ1ZmZlcik7CisKKyAgICAvLyAyLjIgaHR0cHM6Ly9kdmNz
LnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS5odG1sI3dpZGwtTWVkaWFTb3VyY2UtcmVtb3ZlU291cmNlQnVmZmVyLXZvaWQtU291
cmNlQnVmZmVyLXNvdXJjZUJ1ZmZlcgogICAgIC8vIDEuIElmIHNvdXJjZUJ1ZmZlciBpcyBudWxs
IHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQKICAgICAvLyBh
Ym9ydCB0aGVzZSBzdGVwcy4KICAgICBpZiAoIWJ1ZmZlcikgewpAQCAtMTcxLDk4ICsxMjYsNjgg
QEAgdm9pZCBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciogYnVm
ZmVyLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8v
IDIuIElmIHNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHkgdGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRF
X0VSUiBleGNlcHRpb24gYW5kCi0gICAgLy8gYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFt
X3ByaXZhdGUgfHwgIW1fc291cmNlQnVmZmVycy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIDMuIElm
IHNvdXJjZUJ1ZmZlciBzcGVjaWZpZXMgYW4gb2JqZWN0IHRoYXQgaXMgbm90IGluIHNvdXJjZUJ1
ZmZlcnMgdGhlbgorICAgIC8vIDIuIElmIHNvdXJjZUJ1ZmZlciBzcGVjaWZpZXMgYW4gb2JqZWN0
IHRoYXQgaXMgbm90IGluIHNvdXJjZUJ1ZmZlcnMgdGhlbgogICAgIC8vIHRocm93IGEgTk9UX0ZP
VU5EX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIC8vIDYuIFJlbW92
ZSBzb3VyY2VCdWZmZXIgZnJvbSBzb3VyY2VCdWZmZXJzIGFuZCBmaXJlIGEgcmVtb3Zlc291cmNl
YnVmZmVyIGV2ZW50Ci0gICAgLy8gb24gdGhhdCBvYmplY3QuCi0gICAgaWYgKCFtX3NvdXJjZUJ1
ZmZlcnMtPnJlbW92ZShidWZmZXIpKSB7CisgICAgaWYgKCFtX3NvdXJjZUJ1ZmZlcnMtPmxlbmd0
aCgpIHx8ICFtX3NvdXJjZUJ1ZmZlcnMtPmNvbnRhaW5zKGJ1ZmZlcikpIHsKICAgICAgICAgZWMg
PSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gNy4gRGVz
dHJveSBhbGwgcmVzb3VyY2VzIGZvciBzb3VyY2VCdWZmZXIuCi0gICAgbV9hY3RpdmVTb3VyY2VC
dWZmZXJzLT5yZW1vdmUoYnVmZmVyKTsKKyAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyLnVw
ZGF0aW5nIGF0dHJpYnV0ZSBlcXVhbHMgdHJ1ZSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVw
czogLi4uCisgICAgYnVmZmVyLT5hYm9ydElmVXBkYXRpbmcoKTsKIAotICAgIC8vIDQuIFJlbW92
ZSB0cmFjayBpbmZvcm1hdGlvbiBmcm9tIGF1ZGlvVHJhY2tzLCB2aWRlb1RyYWNrcywgYW5kIHRl
eHRUcmFja3MgZm9yIGFsbCB0cmFja3MgCi0gICAgLy8gYXNzb2NpYXRlZCB3aXRoIHNvdXJjZUJ1
ZmZlciBhbmQgZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2Ugb24gdGhlIG1vZGlmaWVk
IGxpc3RzLgorICAgIC8vIFN0ZXBzIDQtOSBhcmUgcmVsYXRlZCB0byB1cGRhdGluZyBhdWRpb1Ry
YWNrcywgdmlkZW9UcmFja3MsIGFuZCB0ZXh0VHJhY2tzIHdoaWNoIGFyZW4ndCBpbXBsbWVudGVk
IHlldC4KICAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCiAKLSAg
ICAvLyA1LiBJZiBzb3VyY2VCdWZmZXIgaXMgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhlbiBy
ZW1vdmUgaXQgZnJvbSB0aGF0IGxpc3QgYW5kIGZpcmUgYQotICAgIC8vIHJlbW92ZXNvdXJjZWJ1
ZmZlciBldmVudCBvbiB0aGF0IG9iamVjdC4KLSAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQg
dHJhY2sgc2VsZWN0aW9uCi19CisgICAgLy8gMTAuIElmIHNvdXJjZUJ1ZmZlciBpcyBpbiBhY3Rp
dmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJlbW92ZSBzb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3Vy
Y2VCdWZmZXJzIC4uLgorICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+cmVtb3ZlKGJ1ZmZlcik7
CiAKLWNvbnN0IFN0cmluZyYgTWVkaWFTb3VyY2U6OnJlYWR5U3RhdGUoKSBjb25zdAotewotICAg
IHJldHVybiBtX3JlYWR5U3RhdGU7CisgICAgLy8gMTEuIFJlbW92ZSBzb3VyY2VCdWZmZXIgZnJv
bSBzb3VyY2VCdWZmZXJzIGFuZCBmaXJlIGEgcmVtb3Zlc291cmNlYnVmZmVyIGV2ZW50CisgICAg
Ly8gb24gdGhhdCBvYmplY3QuCisgICAgbV9zb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKTsK
KworICAgIC8vIDEyLiBEZXN0cm95IGFsbCByZXNvdXJjZXMgZm9yIHNvdXJjZUJ1ZmZlci4KKyAg
ICBidWZmZXItPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKIH0KIAotdm9pZCBNZWRpYVNvdXJj
ZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQordm9pZCBNZWRpYVNvdXJjZTo6
b25SZWFkeVN0YXRlQ2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYgb2xkU3RhdGUsIGNvbnN0IEF0
b21pY1N0cmluZyYgbmV3U3RhdGUpCiB7Ci0gICAgQVNTRVJUKHN0YXRlID09IG9wZW5LZXl3b3Jk
KCkgfHwgc3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpIHx8IHN0YXRlID09IGVuZGVkS2V5d29yZCgp
KTsKLSAgICBpZiAobV9yZWFkeVN0YXRlID09IHN0YXRlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBTdHJpbmcgb2xkU3RhdGUgPSBtX3JlYWR5U3RhdGU7Ci0gICAgbV9yZWFkeVN0YXRlID0gc3Rh
dGU7Ci0KLSAgICBpZiAobV9yZWFkeVN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgewotICAgICAg
ICBtX3NvdXJjZUJ1ZmZlcnMtPmNsZWFyKCk7Ci0gICAgICAgIG1fYWN0aXZlU291cmNlQnVmZmVy
cy0+Y2xlYXIoKTsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7Ci0gICAgICAgIHNjaGVkdWxl
RXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJjZWNsb3NlRXZlbnQpOworICAgIGlmIChpc09w
ZW4oKSkgeworICAgICAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5zb3VyY2VvcGVuRXZl
bnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG9sZFN0YXRlID09IG9wZW5L
ZXl3b3JkKCkgJiYgbV9yZWFkeVN0YXRlID09IGVuZGVkS2V5d29yZCgpKSB7Ci0gICAgICAgIHNj
aGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHNvdXJjZWVuZGVkRXZlbnQpOworICAgIGlm
IChvbGRTdGF0ZSA9PSBvcGVuS2V5d29yZCgpICYmIG5ld1N0YXRlID09IGVuZGVkS2V5d29yZCgp
KSB7CisgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnNvdXJjZWVuZGVkRXZlbnQp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBvcGVu
S2V5d29yZCgpKSB7Ci0gICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdHNv
dXJjZW9wZW5FdmVudCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19CisgICAgQVNTRVJUKGlz
Q2xvc2VkKCkpOwogCi12b2lkIE1lZGlhU291cmNlOjplbmRPZlN0cmVhbShjb25zdCBTdHJpbmcm
IGVycm9yLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyAzLjEgaHR0cDovL2R2Y3MudzMu
b3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Uu
aHRtbCNkb20tZW5kb2ZzdHJlYW0KLSAgICAvLyAxLiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1
dGUgaXMgbm90IGluIHRoZSAib3BlbiIgc3RhdGUgdGhlbiB0aHJvdyBhbgotICAgIC8vIElOVkFM
SURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKCFt
X3ByaXZhdGUgfHwgbV9yZWFkeVN0YXRlICE9IG9wZW5LZXl3b3JkKCkpIHsKLSAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnMtPmNsZWFyKCk7CiAKLSAgICBNZWRpYVNvdXJjZVByaXZhdGU6OkVuZE9m
U3RyZWFtU3RhdHVzIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9zTm9FcnJvcjsK
KyAgICAvLyBDbGVhciBTb3VyY2VCdWZmZXIgcmVmZXJlbmNlcyB0byB0aGlzIG9iamVjdC4KKyAg
ICBmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgPCBtX3NvdXJjZUJ1ZmZlcnMtPmxlbmd0aCgp
OyArK2kpCisgICAgICAgIG1fc291cmNlQnVmZmVycy0+aXRlbShpKS0+cmVtb3ZlZEZyb21NZWRp
YVNvdXJjZSgpOworICAgIG1fc291cmNlQnVmZmVycy0+Y2xlYXIoKTsKIAotICAgIGlmIChlcnJv
ci5pc051bGwoKSB8fCBlcnJvci5pc0VtcHR5KCkpCi0gICAgICAgIGVvc1N0YXR1cyA9IE1lZGlh
U291cmNlUHJpdmF0ZTo6RW9zTm9FcnJvcjsKLSAgICBlbHNlIGlmIChlcnJvciA9PSAibmV0d29y
ayIpCi0gICAgICAgIGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9zTmV0d29ya0Vy
cm9yOwotICAgIGVsc2UgaWYgKGVycm9yID09ICJkZWNvZGUiKQotICAgICAgICBlb3NTdGF0dXMg
PSBNZWRpYVNvdXJjZVByaXZhdGU6OkVvc0RlY29kZUVycm9yOwotICAgIGVsc2UgewotICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBz
Y2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS5zb3VyY2VjbG9zZUV2ZW50KTsKK30KIAotICAgIC8v
IDIuIENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdmFsdWUgdG8gImVuZGVkIi4KLSAg
ICBzZXRSZWFkeVN0YXRlKGVuZGVkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUtPmVuZE9mU3Ry
ZWFtKGVvc1N0YXR1cyk7CitWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gTWVkaWFTb3VyY2U6
OmFjdGl2ZVJhbmdlcygpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+
IGFjdGl2ZVJhbmdlcyhtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmxlbmd0aCgpKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlU291cmNlQnVmZmVycy0+bGVuZ3RoKCk7ICsraSkK
KyAgICAgICAgYWN0aXZlUmFuZ2VzW2ldID0gbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5pdGVtKGkp
LT5idWZmZXJlZChBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworICAgIHJldHVybiBhY3RpdmVSYW5n
ZXM7CiB9CiAKIGJvb2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcm
IHR5cGUpCiB7Ci0gICAgLy8gU2VjdGlvbiAyLjEgaXNUeXBlU3VwcG9ydGVkKCkgbWV0aG9kIHN0
ZXBzLgorICAgIExPRyhNZWRpYSwgIk1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoJXMpIiwg
dHlwZS5hc2NpaSgpLmRhdGEoKSk7CisKKyAgICAvLyBTZWN0aW9uIDIuMiBpc1R5cGVTdXBwb3J0
ZWQoKSBtZXRob2Qgc3RlcHMuCiAgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1l
ZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1NZWRp
YVNvdXJjZS1pc1R5cGVTdXBwb3J0ZWQtYm9vbGVhbi1ET01TdHJpbmctdHlwZQogICAgIC8vIDEu
IElmIHR5cGUgaXMgYW4gZW1wdHkgc3RyaW5nLCB0aGVuIHJldHVybiBmYWxzZS4KICAgICBpZiAo
dHlwZS5pc051bGwoKSB8fCB0eXBlLmlzRW1wdHkoKSkKQEAgLTI4Miw1NiArMjA3LDExIEBAIGJv
b2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAg
cmV0dXJuIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkTWVkaWFTb3VyY2VNSU1FVHlwZShj
b250ZW50VHlwZS50eXBlKCksIGNvZGVjcyk7CiB9CiAKLXZvaWQgTWVkaWFTb3VyY2U6OnNldFBy
aXZhdGVBbmRPcGVuKFBhc3NPd25QdHI8TWVkaWFTb3VyY2VQcml2YXRlPiBtZWRpYVNvdXJjZVBy
aXZhdGUpCi17Ci0gICAgQVNTRVJUKG1lZGlhU291cmNlUHJpdmF0ZSk7Ci0gICAgQVNTRVJUKCFt
X3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZSA9IG1lZGlhU291cmNlUHJpdmF0ZTsKLSAgICBzZXRS
ZWFkeVN0YXRlKG9wZW5LZXl3b3JkKCkpOwotfQotCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
U291cmNlOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gZXZlbnROYW1lcygp
LmludGVyZmFjZUZvck1lZGlhU291cmNlOwogfQogCi1TY3JpcHRFeGVjdXRpb25Db250ZXh0KiBN
ZWRpYVNvdXJjZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotfQotCi1ib29sIE1l
ZGlhU291cmNlOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAotewotICAgIHJldHVybiBtX3By
aXZhdGUgfHwgbV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKQotICAgICAgICB8
fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOwotfQotCi12b2lkIE1lZGlh
U291cmNlOjpzdG9wKCkKLXsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKLSAgICBtX2FzeW5jRXZl
bnRRdWV1ZS0+Y2FuY2VsQWxsRXZlbnRzKCk7Ci19Ci0KLUV2ZW50VGFyZ2V0RGF0YSogTWVkaWFT
b3VyY2U6OmV2ZW50VGFyZ2V0RGF0YSgpCi17Ci0gICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0
YTsKLX0KLQotRXZlbnRUYXJnZXREYXRhKiBNZWRpYVNvdXJjZTo6ZW5zdXJlRXZlbnRUYXJnZXRE
YXRhKCkKLXsKLSAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwotfQotCi12b2lkIE1lZGlh
U291cmNlOjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQotewot
ICAgIEFTU0VSVChtX2FzeW5jRXZlbnRRdWV1ZSk7Ci0KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50
ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCBmYWxzZSk7Ci0gICAgZXZlbnQtPnNl
dFRhcmdldCh0aGlzKTsKLQotICAgIG1fYXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZl
bnQucmVsZWFzZSgpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAppbmRl
eCBiY2Y5MzVjNmYxN2EwNTE1ZWMyYWZkYzZiZTdlNWUyYjMxMDE1Nzc0Li5kZTU4Y2U4Yjg2ZjA5
MjFlNGUzYzM3ZmRjMmM4ZjcyMThhMmZiYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw3MyArMzMsNDUgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCiAKLSNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNs
dWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgotI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIk1lZGlhU291cmNlQmFzZS5oIgorI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJs
ZS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlckxp
c3QuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIE1lZGlhU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2U+LCBw
dWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgTWVkaWFT
b3VyY2UgOiBwdWJsaWMgTWVkaWFTb3VyY2VCYXNlLCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBvcGVuS2V5d29yZCgpOwotICAgIHN0
YXRpYyBjb25zdCBTdHJpbmcmIGNsb3NlZEtleXdvcmQoKTsKLSAgICBzdGF0aWMgY29uc3QgU3Ry
aW5nJiBlbmRlZEtleXdvcmQoKTsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU291cmNl
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotICAgIHZpcnR1YWwgfk1lZGlhU291
cmNlKCkgeyB9CisgICAgdmlydHVhbCB+TWVkaWFTb3VyY2UoKTsKIAogICAgIC8vIE1lZGlhU291
cmNlLmlkbCBtZXRob2RzCi0gICAgU291cmNlQnVmZmVyTGlzdCogc291cmNlQnVmZmVycygpOwot
ICAgIFNvdXJjZUJ1ZmZlckxpc3QqIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMoKTsKLSAgICBkb3VibGUg
ZHVyYXRpb24oKSBjb25zdDsKLSAgICB2b2lkIHNldER1cmF0aW9uKGRvdWJsZSwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFNvdXJjZUJ1ZmZlckxpc3QqIHNvdXJjZUJ1ZmZlcnMoKSB7IHJldHVybiBt
X3NvdXJjZUJ1ZmZlcnMuZ2V0KCk7IH0KKyAgICBTb3VyY2VCdWZmZXJMaXN0KiBhY3RpdmVTb3Vy
Y2VCdWZmZXJzKCkgeyByZXR1cm4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzLmdldCgpOyB9CiAgICAg
U291cmNlQnVmZmVyKiBhZGRTb3VyY2VCdWZmZXIoY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyKiwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIGNvbnN0IFN0cmluZyYgcmVhZHlTdGF0ZSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0UmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGVuZE9mU3RyZWFt
KGNvbnN0IFN0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgYm9vbCBp
c1R5cGVTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiB0eXBlKTsKIAotICAgIHZvaWQgc2V0UHJpdmF0
ZUFuZE9wZW4oUGFzc093blB0cjxNZWRpYVNvdXJjZVByaXZhdGU+KTsKLQogICAgIC8vIEV2ZW50
VGFyZ2V0IGludGVyZmFjZQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZh
Y2VOYW1lKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICAvLyBB
Y3RpdmVET01PYmplY3QgaW50ZXJmYWNlCi0gICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJj
ZT46OnJlZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlPjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZUJhc2U+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291
bnRlZDxNZWRpYVNvdXJjZUJhc2U+OjpkZXJlZjsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBN
ZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICAvLyBBY3RpdmVET01P
YmplY3QgaW50ZXJmYWNlCi0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKLQotICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJ
REU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigp
OyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVm
KCk7IH0KLQotICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
TmFtZSk7Ci0KLSAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7Ci0KLSAgICBT
dHJpbmcgbV9yZWFkeVN0YXRlOwotICAgIE93blB0cjxNZWRpYVNvdXJjZVByaXZhdGU+IG1fcHJp
dmF0ZTsKKyAgICAvLyBNZWRpYVNvdXJjZUJhc2UgaW50ZXJmYWNlCisgICAgdmlydHVhbCB2b2lk
IG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJp
bmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQdHI8VGltZVJhbmdlcz4gPiBh
Y3RpdmVSYW5nZXMoKSBjb25zdCBPVkVSUklERTsKIAogICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJM
aXN0PiBtX3NvdXJjZUJ1ZmZlcnM7CiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlckxpc3Q+IG1fYWN0
aXZlU291cmNlQnVmZmVyczsKLSAgICBPd25QdHI8R2VuZXJpY0V2ZW50UXVldWU+IG1fYXN5bmNF
dmVudFF1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKKwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuaWRsCmluZGV4IDdiMDQzNDcwOGUyNWQxZWFhZTVlZTMzMmU0ZDViNzRkNWMxOTk1YWUuLmQw
ZDRkZDRmNzkyMmUzOTEzYTU2ZWYwZDEwNDVkMWMyZTA4OWJkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMiwxMCArMzIs
MTAgQEAKICAgICBDb25kaXRpb25hbD1NRURJQV9TT1VSQ0UsCiAgICAgQWN0aXZlRE9NT2JqZWN0
LAogICAgIEV2ZW50VGFyZ2V0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICBD
b25zdHJ1Y3RvciwKLSAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsCi0gICAgSW50ZXJmYWNlTmFtZT1XZWJLaXRNZWRpYVNvdXJjZQotXSBpbnRlcmZhY2UgTWVk
aWFTb3VyY2UgeworICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dAorXSBpbnRlcmZhY2UgTWVkaWFTb3VyY2UgOiBFdmVudFRhcmdldCB7CiAgICAgLy8gQWxsIHRo
ZSBzb3VyY2UgYnVmZmVycyBjcmVhdGVkIGJ5IHRoaXMgb2JqZWN0LgogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTb3VyY2VCdWZmZXJMaXN0IHNvdXJjZUJ1ZmZlcnM7CiAKQEAgLTUyLDE0ICs1Miw0
IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBlbmRPZlN0cmVhbShbRGVmYXVsdD1OdWxs
U3RyaW5nXSBvcHRpb25hbCBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgc3RhdGljIGJvb2xlYW4g
aXNUeXBlU3VwcG9ydGVkIChET01TdHJpbmcgdHlwZSk7Ci0KLSAgICAvLyBFdmVudFRhcmdldCBp
bnRlcmZhY2UKLSAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9pZCBy
ZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwotICAgIFtSYWlzZXNFeGNlcHRpb25d
IGJvb2xlYW4gZGlzcGF0Y2hFdmVudChFdmVudCBldmVudCk7CiB9OwotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlQmFzZS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWNjZTVjODI2MjFhZDVmYjRmODczYzFlY2FmNGU5ZmIzOGIwMzc2YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2VCYXNlLmNwcApAQCAtMCwwICsxLDMxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVNvdXJjZUJhc2UuaCIKKworI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNs
dWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVNvdXJjZVJlZ2lzdHJ5LmgiCisj
aW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNZWRpYVNvdXJjZUJhc2U6Ok1lZGlhU291cmNlQmFzZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCisgICAgLCBt
X3JlYWR5U3RhdGUoY2xvc2VkS2V5d29yZCgpKQorICAgICwgbV9hc3luY0V2ZW50UXVldWUoR2Vu
ZXJpY0V2ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fYXR0YWNoZWQoZmFsc2UpCit7
Cit9CisKK01lZGlhU291cmNlQmFzZTo6fk1lZGlhU291cmNlQmFzZSgpCit7Cit9CisKK2NvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2VCYXNlOjpvcGVuS2V5d29yZCgpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9wZW4sICgib3BlbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICByZXR1cm4gb3BlbjsKK30KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZUJhc2U6OmNsb3NlZEtleXdvcmQoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjbG9zZWQsICgiY2xv
c2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIHJldHVybiBj
bG9zZWQ7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3VyY2VCYXNlOjplbmRlZEtl
eXdvcmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBl
bmRlZCwgKCJlbmRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICByZXR1cm4gZW5kZWQ7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpzZXRQcml2YXRlQW5k
T3BlbihQYXNzT3duUHRyPE1lZGlhU291cmNlUHJpdmF0ZT4gbWVkaWFTb3VyY2VQcml2YXRlKQor
eworICAgIEFTU0VSVChtZWRpYVNvdXJjZVByaXZhdGUpOworICAgIEFTU0VSVCghbV9wcml2YXRl
KTsKKyAgICBBU1NFUlQobV9hdHRhY2hlZCk7CisgICAgbV9wcml2YXRlID0gbWVkaWFTb3VyY2VQ
cml2YXRlOworICAgIHNldFJlYWR5U3RhdGUob3BlbktleXdvcmQoKSk7Cit9CisKK3ZvaWQgTWVk
aWFTb3VyY2VCYXNlOjphZGRlZFRvUmVnaXN0cnkoKQoreworICAgIHNldFBlbmRpbmdBY3Rpdml0
eSh0aGlzKTsKK30KKwordm9pZCBNZWRpYVNvdXJjZUJhc2U6OnJlbW92ZWRGcm9tUmVnaXN0cnko
KQoreworICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOworfQorCitkb3VibGUgTWVkaWFT
b3VyY2VCYXNlOjpkdXJhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2xvc2VkKCkgPyBz
dGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCkgOiBtX3ByaXZhdGUtPmR1cmF0
aW9uKCk7Cit9CisKK1Bhc3NSZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFTb3VyY2VCYXNlOjpidWZm
ZXJlZCgpIGNvbnN0Cit7CisgICAgLy8gSW1wbGVtZW50cyBNZWRpYVNvdXJjZSBhbGdvcml0aG0g
Zm9yIEhUTUxNZWRpYUVsZW1lbnQuYnVmZmVyZWQuCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS5odG1sI2h0bWxtZWRpYWVsZW1lbnQtZXh0ZW5zaW9ucworICAgIFZlY3RvcjxSZWZQdHI8VGlt
ZVJhbmdlcz4gPiByYW5nZXMgPSBhY3RpdmVSYW5nZXMoKTsKKworICAgIC8vIDEuIElmIGFjdGl2
ZVNvdXJjZUJ1ZmZlcnMubGVuZ3RoIGVxdWFscyAwIHRoZW4gcmV0dXJuIGFuIGVtcHR5IFRpbWVS
YW5nZXMgb2JqZWN0IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAocmFuZ2VzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworCisgICAgLy8gMi4g
TGV0IGFjdGl2ZSByYW5nZXMgYmUgdGhlIHJhbmdlcyByZXR1cm5lZCBieSBidWZmZXJlZCBmb3Ig
ZWFjaCBTb3VyY2VCdWZmZXIgb2JqZWN0IGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCisgICAgLy8g
My4gTGV0IGhpZ2hlc3QgZW5kIHRpbWUgYmUgdGhlIGxhcmdlc3QgcmFuZ2UgZW5kIHRpbWUgaW4g
dGhlIGFjdGl2ZSByYW5nZXMuCisgICAgZG91YmxlIGhpZ2hlc3RFbmRUaW1lID0gLTE7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCByYW5nZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgdW5z
aWduZWQgbGVuZ3RoID0gcmFuZ2VzW2ldLT5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGxlbmd0aCkK
KyAgICAgICAgICAgIGhpZ2hlc3RFbmRUaW1lID0gc3RkOjptYXgoaGlnaGVzdEVuZFRpbWUsIHJh
bmdlc1tpXS0+ZW5kKGxlbmd0aCAtIDEsIEFTU0VSVF9OT19FWENFUFRJT04pKTsKKyAgICB9CisK
KyAgICAvLyBSZXR1cm4gYW4gZW1wdHkgcmFuZ2UgaWYgYWxsIHJhbmdlcyBhcmUgZW1wdHkuCisg
ICAgaWYgKGhpZ2hlc3RFbmRUaW1lIDwgMCkKKyAgICAgICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNy
ZWF0ZSgpOworCisgICAgLy8gNC4gTGV0IGludGVyc2VjdGlvbiByYW5nZXMgZXF1YWwgYSBUaW1l
UmFuZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgYSBzaW5nbGUgcmFuZ2UgZnJvbSAwIHRvIGhpZ2hlc3Qg
ZW5kIHRpbWUuCisgICAgUmVmUHRyPFRpbWVSYW5nZXM+IGludGVyc2VjdGlvblJhbmdlcyA9IFRp
bWVSYW5nZXM6OmNyZWF0ZSgwLCBoaWdoZXN0RW5kVGltZSk7CisKKyAgICAvLyA1LiBGb3IgZWFj
aCBTb3VyY2VCdWZmZXIgb2JqZWN0IGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMgcnVuIHRoZSBmb2xs
b3dpbmcgc3RlcHM6CisgICAgYm9vbCBlbmRlZCA9IHJlYWR5U3RhdGUoKSA9PSBlbmRlZEtleXdv
cmQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJhbmdlcy5zaXplKCk7ICsraSkgewor
ICAgICAgICAvLyA1LjEgTGV0IHNvdXJjZSByYW5nZXMgZXF1YWwgdGhlIHJhbmdlcyByZXR1cm5l
ZCBieSB0aGUgYnVmZmVyZWQgYXR0cmlidXRlIG9uIHRoZSBjdXJyZW50IFNvdXJjZUJ1ZmZlci4K
KyAgICAgICAgVGltZVJhbmdlcyogc291cmNlUmFuZ2VzID0gcmFuZ2VzW2ldLmdldCgpOworCisg
ICAgICAgIC8vIDUuMiBJZiByZWFkeVN0YXRlIGlzICJlbmRlZCIsIHRoZW4gc2V0IHRoZSBlbmQg
dGltZSBvbiB0aGUgbGFzdCByYW5nZSBpbiBzb3VyY2UgcmFuZ2VzIHRvIGhpZ2hlc3QgZW5kIHRp
bWUuCisgICAgICAgIGlmIChlbmRlZCAmJiBzb3VyY2VSYW5nZXMtPmxlbmd0aCgpKQorICAgICAg
ICAgICAgc291cmNlUmFuZ2VzLT5hZGQoc291cmNlUmFuZ2VzLT5zdGFydChzb3VyY2VSYW5nZXMt
Pmxlbmd0aCgpIC0gMSwgQVNTRVJUX05PX0VYQ0VQVElPTiksIGhpZ2hlc3RFbmRUaW1lKTsKKwor
ICAgICAgICAvLyA1LjMgTGV0IG5ldyBpbnRlcnNlY3Rpb24gcmFuZ2VzIGVxdWFsIHRoZSB0aGUg
aW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlIGludGVyc2VjdGlvbiByYW5nZXMgYW5kIHRoZSBzb3Vy
Y2UgcmFuZ2VzLgorICAgICAgICAvLyA1LjQgUmVwbGFjZSB0aGUgcmFuZ2VzIGluIGludGVyc2Vj
dGlvbiByYW5nZXMgd2l0aCB0aGUgbmV3IGludGVyc2VjdGlvbiByYW5nZXMuCisgICAgICAgIGlu
dGVyc2VjdGlvblJhbmdlcy0+aW50ZXJzZWN0V2l0aChzb3VyY2VSYW5nZXMpOworICAgIH0KKwor
ICAgIHJldHVybiBpbnRlcnNlY3Rpb25SYW5nZXMucmVsZWFzZSgpOworfQorCit2b2lkIE1lZGlh
U291cmNlQmFzZTo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoZHVyYXRpb24gPCAwLjAgfHwgc3RkOjppc25hbihkdXJhdGlvbikpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKCFpc09wZW4oKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcHJpdmF0ZS0+c2V0RHVyYXRpb24oZHVyYXRp
b24pOworfQorCisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjpzZXRSZWFkeVN0YXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgc3RhdGUpCit7CisgICAgQVNTRVJUKHN0YXRlID09IG9wZW5LZXl3b3JkKCkg
fHwgc3RhdGUgPT0gY2xvc2VkS2V5d29yZCgpIHx8IHN0YXRlID09IGVuZGVkS2V5d29yZCgpKTsK
KworICAgIEF0b21pY1N0cmluZyBvbGRTdGF0ZSA9IHJlYWR5U3RhdGUoKTsKKyAgICBMT0coTWVk
aWEsICJNZWRpYVNvdXJjZUJhc2U6OnNldFJlYWR5U3RhdGUoKSAlcCA6ICVzIC0+ICVzIiwgdGhp
cywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lp
KCkuZGF0YSgpKTsKKworICAgIGlmIChzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkpIHsKKyAgICAg
ICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAgIG1fYXR0YWNoZWQgPSBmYWxzZTsKKyAgICB9
CisKKyAgICBpZiAob2xkU3RhdGUgPT0gc3RhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cmVhZHlTdGF0ZSA9IHN0YXRlOworCisgICAgb25SZWFkeVN0YXRlQ2hhbmdlKG9sZFN0YXRlLCBz
dGF0ZSk7Cit9CisKK3ZvaWQgTWVkaWFTb3VyY2VCYXNlOjplbmRPZlN0cmVhbShjb25zdCBBdG9t
aWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbmV0d29yaywgKCJuZXR3b3JrIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBkZWNvZGUsICgiZGVjb2RlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworCisgICAgLy8gMy4xIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9odG1s
LW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLWVu
ZG9mc3RyZWFtCisgICAgLy8gMS4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIG5vdCBp
biB0aGUgIm9wZW4iIHN0YXRlIHRoZW4gdGhyb3cgYW4KKyAgICAvLyBJTlZBTElEX1NUQVRFX0VS
UiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghaXNPcGVuKCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIE1lZGlhU291cmNlUHJpdmF0ZTo6RW5kT2ZTdHJlYW1TdGF0dXMgZW9zU3RhdHVzID0g
TWVkaWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yOworCisgICAgaWYgKGVycm9yLmlzTnVsbCgp
IHx8IGVycm9yLmlzRW1wdHkoKSkKKyAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQcml2
YXRlOjpFb3NOb0Vycm9yOworICAgIGVsc2UgaWYgKGVycm9yID09IG5ldHdvcmspCisgICAgICAg
IGVvc1N0YXR1cyA9IE1lZGlhU291cmNlUHJpdmF0ZTo6RW9zTmV0d29ya0Vycm9yOworICAgIGVs
c2UgaWYgKGVycm9yID09IGRlY29kZSkKKyAgICAgICAgZW9zU3RhdHVzID0gTWVkaWFTb3VyY2VQ
cml2YXRlOjpFb3NEZWNvZGVFcnJvcjsKKyAgICBlbHNlIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyAyLiBDaGFuZ2Ug
dGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIHZhbHVlIHRvICJlbmRlZCIuCisgICAgc2V0UmVhZHlT
dGF0ZShlbmRlZEtleXdvcmQoKSk7CisgICAgbV9wcml2YXRlLT5tYXJrRW5kT2ZTdHJlYW0oZW9z
U3RhdHVzKTsKK30KKworYm9vbCBNZWRpYVNvdXJjZUJhc2U6OmlzT3BlbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHJlYWR5U3RhdGUoKSA9PSBvcGVuS2V5d29yZCgpOworfQorCitib29sIE1lZGlh
U291cmNlQmFzZTo6aXNDbG9zZWQoKSBjb25zdAoreworICAgIHJldHVybiByZWFkeVN0YXRlKCkg
PT0gY2xvc2VkS2V5d29yZCgpOworfQorCit2b2lkIE1lZGlhU291cmNlQmFzZTo6Y2xvc2UoKQor
eworICAgIHNldFJlYWR5U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKK30KKworYm9vbCBNZWRpYVNv
dXJjZUJhc2U6OmF0dGFjaFRvRWxlbWVudCgpCit7CisgICAgaWYgKG1fYXR0YWNoZWQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VSVChpc0Nsb3NlZCgpKTsKKworICAgIG1fYXR0
YWNoZWQgPSB0cnVlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlhU291cmNlQmFz
ZTo6b3BlbklmSW5FbmRlZFN0YXRlKCkKK3sKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IGVuZGVk
S2V5d29yZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRSZWFkeVN0YXRlKG9wZW5LZXl3
b3JkKCkpOworICAgIG1fcHJpdmF0ZS0+dW5tYXJrRW5kT2ZTdHJlYW0oKTsKK30KKworYm9vbCBN
ZWRpYVNvdXJjZUJhc2U6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZSB8fCBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGluZ0V2ZW50cygpCisgICAg
ICAgIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7Cit9CisKK3ZvaWQg
TWVkaWFTb3VyY2VCYXNlOjpzdG9wKCkKK3sKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS0+Y2xvc2Uo
KTsKKyAgICBpZiAoIWlzQ2xvc2VkKCkpCisgICAgICAgIHNldFJlYWR5U3RhdGUoY2xvc2VkS2V5
d29yZCgpKTsKKyAgICBtX3ByaXZhdGUuY2xlYXIoKTsKK30KKworUGFzc093blB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlPiBNZWRpYVNvdXJjZUJhc2U6OmNyZWF0ZVNvdXJjZUJ1ZmZlclByaXZhdGUo
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGU6OkNvZGVjc0FycmF5
JiBjb2RlY3MsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIE93blB0cjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlOworICAgIHN3aXRjaCAobV9wcml2YXRlLT5hZGRT
b3VyY2VCdWZmZXIodHlwZSwgY29kZWNzLCAmc291cmNlQnVmZmVyUHJpdmF0ZSkpIHsKKyAgICBj
YXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6T2s6IHsKKyAgICAgICAgcmV0dXJuIHNvdXJjZUJ1ZmZl
clByaXZhdGUucmVsZWFzZSgpOworICAgIH0KKyAgICBjYXNlIE1lZGlhU291cmNlUHJpdmF0ZTo6
Tm90U3VwcG9ydGVkOgorICAgICAgICAvLyAyLjIgaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1s
LW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dp
ZGwtTWVkaWFTb3VyY2UtYWRkU291cmNlQnVmZmVyLVNvdXJjZUJ1ZmZlci1ET01TdHJpbmctdHlw
ZQorICAgICAgICAvLyBTdGVwIDI6IElmIHR5cGUgY29udGFpbnMgYSBNSU1FIHR5cGUgLi4uIHRo
YXQgaXMgbm90IHN1cHBvcnRlZCB3aXRoIHRoZSB0eXBlcworICAgICAgICAvLyBzcGVjaWZpZWQg
Zm9yIHRoZSBvdGhlciBTb3VyY2VCdWZmZXIgb2JqZWN0cyBpbiBzb3VyY2VCdWZmZXJzLCB0aGVu
IHRocm93CisgICAgICAgIC8vIGEgTk9UX1NVUFBPUlRFRF9FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KKyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgY2FzZSBNZWRpYVNvdXJjZVByaXZhdGU6OlJlYWNoZWRJZExp
bWl0OgorICAgICAgICAvLyAyLjIgaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jh
dy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVkaWFT
b3VyY2UtYWRkU291cmNlQnVmZmVyLVNvdXJjZUJ1ZmZlci1ET01TdHJpbmctdHlwZQorICAgICAg
ICAvLyBTdGVwIDM6IElmIHRoZSB1c2VyIGFnZW50IGNhbid0IGhhbmRsZSBhbnkgbW9yZSBTb3Vy
Y2VCdWZmZXIgb2JqZWN0cyB0aGVuIHRocm93CisgICAgICAgIC8vIGEgUVVPVEFfRVhDRUVERURf
RVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGVjID0gUVVPVEFf
RVhDRUVERURfRVJSOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBNZWRpYVNv
dXJjZUJhc2U6OnNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCit7
CisgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsKKworICAgIFJlZlB0cjxFdmVudD4gZXZl
bnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNlKTsKKyAgICBldmVudC0+
c2V0VGFyZ2V0KHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUtPmVucXVldWVFdmVudChl
dmVudC5yZWxlYXNlKCkpOworfQorCitTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBNZWRpYVNvdXJj
ZUJhc2U6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKK30KKworRXZlbnRUYXJnZXRE
YXRhKiBNZWRpYVNvdXJjZUJhc2U6OmV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZt
X2V2ZW50VGFyZ2V0RGF0YTsKK30KKworRXZlbnRUYXJnZXREYXRhKiBNZWRpYVNvdXJjZUJhc2U6
OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCit7CisgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0
YTsKK30KKworVVJMUmVnaXN0cnkmIE1lZGlhU291cmNlQmFzZTo6cmVnaXN0cnkoKSBjb25zdAor
eworICAgIHJldHVybiBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2VCYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ2MTZiMTlhNzJkODc3ZDkzMDIyYWJkOWI0Yzkw
MTc4NmM4MmFkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2VCYXNlLmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlh
U291cmNlQmFzZV9oCisjZGVmaW5lIE1lZGlhU291cmNlQmFzZV9oCisKKyNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZl
bnRUYXJnZXQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJNZWRp
YVNvdXJjZVByaXZhdGUuaCIKKyNpbmNsdWRlICJVUkxSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR2VuZXJpY0V2ZW50
UXVldWU7CisKK2NsYXNzIE1lZGlhU291cmNlQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
U291cmNlQmFzZT4sIHB1YmxpYyBIVE1MTWVkaWFTb3VyY2UsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgb3BlbktleXdvcmQoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBj
bG9zZWRLZXl3b3JkKCk7CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZW5kZWRLZXl3
b3JkKCk7CisKKyAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZUJhc2UoKTsKKworICAgIHZvaWQgYWRk
ZWRUb1JlZ2lzdHJ5KCk7CisgICAgdm9pZCByZW1vdmVkRnJvbVJlZ2lzdHJ5KCk7CisgICAgdm9p
ZCBvcGVuSWZJbkVuZGVkU3RhdGUoKTsKKyAgICBib29sIGlzT3BlbigpIGNvbnN0OworCisgICAg
Ly8gSFRNTE1lZGlhU291cmNlCisgICAgdmlydHVhbCBib29sIGF0dGFjaFRvRWxlbWVudCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRlQW5kT3BlbihQYXNzT3duUHRyPE1l
ZGlhU291cmNlUHJpdmF0ZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHJlZkhUTUxNZWRpYVNvdXJjZSgpIE9WRVJSSURFIHsgcmVmKCk7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGVyZWZIVE1MTWVkaWFTb3VyY2UoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0K
KworICAgIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlLCBFeGNlcHRpb25Db2RlJik7CisgICAgY29u
c3QgQXRvbWljU3RyaW5nJiByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRl
OyB9CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIHZv
aWQgZW5kT2ZTdHJlYW0oY29uc3QgQXRvbWljU3RyaW5nJiBlcnJvciwgRXhjZXB0aW9uQ29kZSYp
OworCisKKyAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCisgICAgdmlydHVhbCBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
dG9wKCkgT1ZFUlJJREU7CisKKyAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAgICB2aXJ0
dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRh
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFy
Z2V0RGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9W
RVJSSURFIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9W
RVJSSURFIHsgZGVyZWYoKTsgfQorCisgICAgLy8gVVJMUmVnaXN0cmFibGUgaW50ZXJmYWNlCisg
ICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCBPVkVSUklERTsKKworICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2VCYXNlPjo6cmVmOworICAgIHVzaW5nIFJlZkNv
dW50ZWQ8TWVkaWFTb3VyY2VCYXNlPjo6ZGVyZWY7CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNp
dCBNZWRpYVNvdXJjZUJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAgdmlydHVh
bCB2b2lkIG9uUmVhZHlTdGF0ZUNoYW5nZShjb25zdCBBdG9taWNTdHJpbmcmIG9sZFN0YXRlLCBj
b25zdCBBdG9taWNTdHJpbmcmIG5ld1N0YXRlKSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8UmVm
UHRyPFRpbWVSYW5nZXM+ID4gYWN0aXZlUmFuZ2VzKCkgY29uc3QgPSAwOworCisgICAgUGFzc093
blB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBjcmVhdGVTb3VyY2VCdWZmZXJQcml2YXRlKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgTWVkaWFTb3VyY2VQcml2YXRlOjpDb2RlY3NBcnJheSYsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudE5hbWUpOworICAgIEdlbmVyaWNFdmVudFF1ZXVlKiBhc3luY0V2ZW50UXVldWUoKSBj
b25zdCB7IHJldHVybiBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IE93blB0cjxNZWRpYVNvdXJjZVByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBFdmVudFRhcmdldERh
dGEgbV9ldmVudFRhcmdldERhdGE7CisgICAgQXRvbWljU3RyaW5nIG1fcmVhZHlTdGF0ZTsKKyAg
ICBPd25QdHI8R2VuZXJpY0V2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1ZXVlOworICAgIGJvb2wg
bV9hdHRhY2hlZDsKK307CisKK30KKworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5j
cHAKaW5kZXggMWM2MjY3NDY3ZjQ1ZGU4NzU0Y2U1MzZhMzYwODI1M2JjNmYyYTRiMS4uZGI0NzUx
ZTAwNWJjNWUyMGE0ODQzZmYwYjRjNzYxYzljOTFmM2M4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3Bw
CkBAIC0zNCw3ICszNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUg
IktVUkwuaCIKLSNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNl
QmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ2LDMzICs0NiwzNyBAQCBNZWRpYVNvdXJjZVJlZ2lzdHJ5JiBNZWRpYVNvdXJjZVJl
Z2lzdHJ5OjpyZWdpc3RyeSgpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi12b2lkIE1lZGlh
U291cmNlUmVnaXN0cnk6OnJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwoY29uc3QgS1VSTCYgdXJsLCBQ
YXNzUmVmUHRyPE1lZGlhU291cmNlPiBzb3VyY2UpCit2b2lkIE1lZGlhU291cmNlUmVnaXN0cnk6
OnJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYgdXJsLCBVUkxSZWdpc3Ry
YWJsZSogcmVnaXN0cmFibGUpCiB7CisgICAgQVNTRVJUKCZyZWdpc3RyYWJsZS0+cmVnaXN0cnko
KSA9PSB0aGlzKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgc291cmNlLT5z
ZXRQZW5kaW5nQWN0aXZpdHkoc291cmNlLmdldCgpKTsKLQorICAgIE1lZGlhU291cmNlQmFzZSog
c291cmNlID0gc3RhdGljX2Nhc3Q8TWVkaWFTb3VyY2VCYXNlKj4ocmVnaXN0cmFibGUpOworICAg
IHNvdXJjZS0+YWRkZWRUb1JlZ2lzdHJ5KCk7CiAgICAgbV9tZWRpYVNvdXJjZXMuc2V0KHVybC5z
dHJpbmcoKSwgc291cmNlKTsKIH0KIAotdm9pZCBNZWRpYVNvdXJjZVJlZ2lzdHJ5Ojp1bnJlZ2lz
dGVyTWVkaWFTb3VyY2VVUkwoY29uc3QgS1VSTCYgdXJsKQordm9pZCBNZWRpYVNvdXJjZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTb3VyY2U+ID46Oml0
ZXJhdG9yIGl0ZXIgPSBtX21lZGlhU291cmNlcy5maW5kKHVybC5zdHJpbmcoKSk7CisgICAgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVNvdXJjZUJhc2U+ID46Oml0ZXJhdG9yIGl0ZXIgPSBt
X21lZGlhU291cmNlcy5maW5kKHVybC5zdHJpbmcoKSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9tZWRp
YVNvdXJjZXMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxNZWRpYVNvdXJj
ZT4gc291cmNlID0gaXRlci0+dmFsdWU7CisgICAgUmVmUHRyPE1lZGlhU291cmNlQmFzZT4gc291
cmNlID0gaXRlci0+dmFsdWU7CiAgICAgbV9tZWRpYVNvdXJjZXMucmVtb3ZlKGl0ZXIpOwotCi0g
ICAgLy8gUmVtb3ZlIHRoZSBwZW5kaW5nIGFjdGl2aXR5IGFkZGVkIGluIHJlZ2lzdGVyTWVkaWFT
b3VyY2VVUkwoKS4KLSAgICBzb3VyY2UtPnVuc2V0UGVuZGluZ0FjdGl2aXR5KHNvdXJjZS5nZXQo
KSk7CisgICAgc291cmNlLT5yZW1vdmVkRnJvbVJlZ2lzdHJ5KCk7CiB9CiAKLU1lZGlhU291cmNl
KiBNZWRpYVNvdXJjZVJlZ2lzdHJ5Ojpsb29rdXBNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIHVy
bCkKK1VSTFJlZ2lzdHJhYmxlKiBNZWRpYVNvdXJjZVJlZ2lzdHJ5Ojpsb29rdXAoY29uc3QgU3Ry
aW5nJiB1cmwpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICByZXR1cm4gbV9t
ZWRpYVNvdXJjZXMuZ2V0KHVybCkuZ2V0KCk7CisgICAgcmV0dXJuIG1fbWVkaWFTb3VyY2VzLmdl
dCh1cmwpOworfQorCitNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpNZWRpYVNvdXJjZVJlZ2lzdHJ5KCkK
K3sKKyAgICBIVE1MTWVkaWFTb3VyY2U6OnNldFJlZ2lzdHJ5KHRoaXMpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oCmluZGV4IDk2ZGE2YjM0N2M3MGM1MTFjYjQ2
OGZlZDIxNzI3Mjk3MTY2NzUzNzQuLjQ2YzI0ZDRlMDMwNWY2ZGRkZTkxY2Y0ZTg0NDFmNDc3Yzk2
NDhhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2VSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgpAQCAtNDAsMjEgKzQxLDIxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEtVUkw7Ci1jbGFzcyBNZWRpYVNvdXJjZTsKK2NsYXNzIE1lZGlhU291cmNlQmFz
ZTsKIAotY2xhc3MgTWVkaWFTb3VyY2VSZWdpc3RyeSB7CitjbGFzcyBNZWRpYVNvdXJjZVJlZ2lz
dHJ5IDogcHVibGljIFVSTFJlZ2lzdHJ5IHsKIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIGEgc2lu
Z2xlIGluc3RhbmNlIG9mIE1lZGlhU291cmNlUmVnaXN0cnkuCiAgICAgc3RhdGljIE1lZGlhU291
cmNlUmVnaXN0cnkmIHJlZ2lzdHJ5KCk7CiAKICAgICAvLyBSZWdpc3RlcnMgYSBibG9iIFVSTCBy
ZWZlcnJpbmcgdG8gdGhlIHNwZWNpZmllZCBtZWRpYSBzb3VyY2UuCi0gICAgdm9pZCByZWdpc3Rl
ck1lZGlhU291cmNlVVJMKGNvbnN0IEtVUkwmLCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPik7Ci0g
ICAgdm9pZCB1bnJlZ2lzdGVyTWVkaWFTb3VyY2VVUkwoY29uc3QgS1VSTCYpOwotCi0gICAgTWVk
aWFTb3VyY2UqIGxvb2t1cE1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwgVVJMUmVn
aXN0cmFibGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclVSTChjb25z
dCBLVVJMJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBVUkxSZWdpc3RyYWJsZSogbG9va3VwKGNv
bnN0IFN0cmluZyYpIE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIEhhc2hNYXA8U3RyaW5nLCBS
ZWZQdHI8TWVkaWFTb3VyY2U+ID4gbV9tZWRpYVNvdXJjZXM7CisgICAgTWVkaWFTb3VyY2VSZWdp
c3RyeSgpOworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTb3VyY2VCYXNlPiA+IG1f
bWVkaWFTb3VyY2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IGZm
ODBkZjU0NzQ0YTRhMzEzNDg5YzI1NjcwYTcyZDY1MTQ5M2VlMjEuLmFmNzY3ZWY0MDQyMjUxYmIz
YjhiOTJkMmM3N2RjOWFhZmJkOTM0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDIyICszMywzMiBAQAogCiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2Vu
ZXJpY0V2ZW50UXVldWUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFT
b3VyY2UuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGlt
ZVJhbmdlcy5oIgotI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0Fy
cmF5QnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8U291cmNlQnVmZmVyPiBTb3VyY2VCdWZmZXI6OmNy
ZWF0ZShQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUs
IFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+IHNvdXJjZSkKK1Bhc3NSZWZQdHI8U291cmNlQnVmZmVy
PiBTb3VyY2VCdWZmZXI6OmNyZWF0ZShQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNv
dXJjZUJ1ZmZlclByaXZhdGUsIE1lZGlhU291cmNlKiBzb3VyY2UsIEdlbmVyaWNFdmVudFF1ZXVl
KiBhc3luY0V2ZW50UXVldWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3VyY2VCdWZm
ZXIoc291cmNlQnVmZmVyUHJpdmF0ZSwgc291cmNlKSk7CisgICAgUmVmUHRyPFNvdXJjZUJ1ZmZl
cj4gc291cmNlQnVmZmVyKGFkb3B0UmVmKG5ldyBTb3VyY2VCdWZmZXIoc291cmNlQnVmZmVyUHJp
dmF0ZSwgc291cmNlLCBhc3luY0V2ZW50UXVldWUpKSk7CisgICAgc291cmNlQnVmZmVyLT5zdXNw
ZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gc291cmNlQnVmZmVyLnJlbGVhc2UoKTsKIH0KIAot
U291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRl
PiBzb3VyY2VCdWZmZXJQcml2YXRlLCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPiBzb3VyY2UpCi0g
ICAgOiBtX3ByaXZhdGUoc291cmNlQnVmZmVyUHJpdmF0ZSkKK1NvdXJjZUJ1ZmZlcjo6U291cmNl
QnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4gc291cmNlQnVmZmVyUHJpdmF0
ZSwgTWVkaWFTb3VyY2UqIHNvdXJjZSwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1
ZSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChzb3VyY2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKKyAgICAsIG1fcHJpdmF0ZShzb3VyY2VCdWZmZXJQcml2YXRlKQogICAgICwgbV9zb3VyY2Uo
c291cmNlKQorICAgICwgbV9hc3luY0V2ZW50UXVldWUoYXN5bmNFdmVudFF1ZXVlKQorICAgICwg
bV91cGRhdGluZyhmYWxzZSkKICAgICAsIG1fdGltZXN0YW1wT2Zmc2V0KDApCisgICAgLCBtX2Fw
cGVuZEJ1ZmZlclRpbWVyKHRoaXMsICZTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmly
ZWQpCiB7CiAgICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgQVNTRVJUKG1fc291cmNlKTsKQEAg
LTU2LDYgKzY2LDcgQEAgU291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLAogCiBTb3VyY2VCdWZmZXI6On5T
b3VyY2VCdWZmZXIoKQogeworICAgIEFTU0VSVChpc1JlbW92ZWQoKSk7CiB9CiAKIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gU291cmNlQnVmZmVyOjpidWZmZXJlZChFeGNlcHRpb25Db2RlJiBlYykg
Y29uc3QKQEAgLTg4LDExICs5OSw5IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZXRUaW1lc3RhbXBP
ZmZzZXQoZG91YmxlIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgLy8g
NC4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNl
IGlzIGluIHRoZSAiZW5kZWQiIHN0YXRlIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0g
ICAgaWYgKGlzRW5kZWQoKSkgewotICAgICAgICAvLyA0LjEgU2V0IHRoZSByZWFkeVN0YXRlIGF0
dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSB0byAib3BlbiIKLSAgICAgICAgLy8g
NC4yIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHNvdXJjZW9wZW4g
YXQgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UuCi0gICAgICAgIG1fc291cmNlLT5zZXRSZWFkeVN0
YXRlKE1lZGlhU291cmNlOjpvcGVuS2V5d29yZCgpKTsKLSAgICB9CisgICAgLy8gNC4xIFNldCB0
aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdG8gIm9w
ZW4iCisgICAgLy8gNC4yIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVk
IHNvdXJjZW9wZW4gYXQgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UuCisgICAgbV9zb3VyY2UtPm9w
ZW5JZkluRW5kZWRTdGF0ZSgpOwogCiAgICAgLy8gNS4gSWYgdGhpcyBvYmplY3QgaXMgd2FpdGlu
ZyBmb3IgdGhlIGVuZCBvZiBhIG1lZGlhIHNlZ21lbnQgdG8gYmUgYXBwZW5kZWQsIHRoZW4gdGhy
b3cgYW4gSU5WQUxJRF9TVEFURV9FUlIKICAgICAvLyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCkBA
IC0xMDUsNDkgKzExNCw3NSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0
KGRvdWJsZSBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG1fdGltZXN0YW1wT2Zmc2V0
ID0gb2Zmc2V0OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kKFBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBw
ZW5kQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIC8vIFNvdXJjZUJ1ZmZlci5hcHBlbmQoKSBzdGVwcyBmcm9tIE9jdG9iZXIgMXN0
IHZlcnNpb24gb2YgdGhlIE1lZGlhIFNvdXJjZSBFeHRlbnNpb25zIHNwZWMuCi0gICAgLy8gaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlLzdiYWI2NjM2OGYyYy9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjZG9tLWFwcGVuZAotCi0gICAgLy8gMi4gSWYgZGF0
YSBpcyBudWxsIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIGV4Y2VwdGlvbiBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gU2VjdGlvbiAzLjIgYXBwZW5kQnVmZmVyKCkKKyAg
ICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvZGVmYXVsdC9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwjd2lkbC1Tb3VyY2VCdWZmZXItYXBwZW5kQnVm
ZmVyLXZvaWQtQXJyYXlCdWZmZXJWaWV3LWRhdGEKKyAgICAvLyAxLiBJZiBkYXRhIGlzIG51bGwg
dGhlbiB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KICAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyAzLiBJZiB0aGlzIG9iamVjdCBo
YXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mIG1lZGlh
IHNvdXJjZSB0aGVuIHRocm93Ci0gICAgLy8gICAgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0
aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoaXNSZW1vdmVkKCkpIHsKLSAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBh
cHBlbmRCdWZmZXJJbnRlcm5hbChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YS0+ZGF0
YSgpKSwgZGF0YS0+Ynl0ZUxlbmd0aCgpLCBlYyk7Cit9CiAKLSAgICAvLyA1LiBJZiB0aGUgcmVh
ZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0YXRl
IHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKGlzRW5kZWQoKSkgewotICAg
ICAgICAvLyA1LjEuIFNldCB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNl
IHRvICJvcGVuIgotICAgICAgICAvLyA1LjIuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxl
IGV2ZW50IG5hbWVkIHNvdXJjZW9wZW4gYXQgbWVkaWEgc291cmNlLgotICAgICAgICBtX3NvdXJj
ZS0+c2V0UmVhZHlTdGF0ZShNZWRpYVNvdXJjZTo6b3BlbktleXdvcmQoKSk7Cit2b2lkIFNvdXJj
ZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBkYXRhLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBTZWN0aW9uIDMuMiBhcHBlbmRCdWZmZXIoKQor
ICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZlci1hcHBlbmRC
dWZmZXItdm9pZC1BcnJheUJ1ZmZlclZpZXctZGF0YQorICAgIC8vIDEuIElmIGRhdGEgaXMgbnVs
bCB0aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRo
ZXNlIHN0ZXBzLgorICAgIGlmICghZGF0YSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFN0ZXBzIDYgJiBiZXlvbmQg
YXJlIGhhbmRsZWQgYnkgdGhlIHByaXZhdGUgaW1wbGVtZW50YXRpb24uCi0gICAgbV9wcml2YXRl
LT5hcHBlbmQoZGF0YS0+ZGF0YSgpLCBkYXRhLT5sZW5ndGgoKSk7CisgICAgYXBwZW5kQnVmZmVy
SW50ZXJuYWwoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KGRhdGEtPmJhc2VBZGRyZXNzKCkp
LCBkYXRhLT5ieXRlTGVuZ3RoKCksIGVjKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0
KEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIFNlY3Rpb24gMy4yIGFib3J0KCkgbWV0aG9k
IHN0ZXBzLgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmls
ZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRsLVNvdXJjZUJ1ZmZl
ci1hYm9ydC12b2lkCiAgICAgLy8gMS4gSWYgdGhpcyBvYmplY3QgaGFzIGJlZW4gcmVtb3ZlZCBm
cm9tIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJj
ZQogICAgIC8vICAgIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICAvLyAyLiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1
dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgbm90IGluIHRoZSAib3BlbiIgc3RhdGUK
ICAgICAvLyAgICB0aGVuIHRocm93IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgaWYgKGlzUmVtb3ZlZCgpIHx8ICFpc09wZW4oKSkgewor
ICAgIGlmIChpc1JlbW92ZWQoKSB8fCAhbV9zb3VyY2UtPmlzT3BlbigpKSB7CiAgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyAz
LiBJZiB0aGUgc291cmNlQnVmZmVyLnVwZGF0aW5nIGF0dHJpYnV0ZSBlcXVhbHMgdHJ1ZSwgdGhl
biBydW4gdGhlIGZvbGxvd2luZyBzdGVwczogLi4uCisgICAgYWJvcnRJZlVwZGF0aW5nKCk7CisK
ICAgICAvLyA0LiBSdW4gdGhlIHJlc2V0IHBhcnNlciBzdGF0ZSBhbGdvcml0aG0uCiAgICAgbV9w
cml2YXRlLT5hYm9ydCgpOworCisgICAgLy8gRklYTUUoMjI5NDA4KSBBZGQgc3RlcHMgNS02IHVw
ZGF0ZSBhcHBlbmRXaW5kb3dTdGFydCAmIGFwcGVuZFdpbmRvd0VuZC4KK30KKworCit2b2lkIFNv
dXJjZUJ1ZmZlcjo6YWJvcnRJZlVwZGF0aW5nKCkKK3sKKyAgICAvLyBTZWN0aW9uIDMuMiBhYm9y
dCgpIG1ldGhvZCBzdGVwIDMgc3Vic3RlcHMuCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5o
dG1sI3dpZGwtU291cmNlQnVmZmVyLWFib3J0LXZvaWQKKworICAgIGlmICghbV91cGRhdGluZykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gMy4xLiBBYm9ydCB0aGUgYnVmZmVyIGFwcGVuZCBh
bmQgc3RyZWFtIGFwcGVuZCBsb29wIGFsZ29yaXRobXMgaWYgdGhleSBhcmUgcnVubmluZy4KKyAg
ICBtX2FwcGVuZEJ1ZmZlclRpbWVyLnN0b3AoKTsKKyAgICBtX3BlbmRpbmdBcHBlbmREYXRhLmNs
ZWFyKCk7CisKKyAgICAvLyAzLjIuIFNldCB0aGUgdXBkYXRpbmcgYXR0cmlidXRlIHRvIGZhbHNl
LgorICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKKworICAgIC8vIDMuMy4gUXVldWUgYSB0YXNrIHRv
IGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgYWJvcnQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2Jq
ZWN0LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOworCisgICAg
Ly8gMy40LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRhdGVl
bmQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnRO
YW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXI6OnJlbW92ZWRG
cm9tTWVkaWFTb3VyY2UoKQpAQCAtMTU2LDcgKzE5MSwzOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0
ZS0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOwotICAgIG1fc291cmNlLmNsZWFyKCk7CisgICAg
bV9zb3VyY2UgPSAwOworICAgIG1fYXN5bmNFdmVudFF1ZXVlID0gMDsKK30KKworYm9vbCBTb3Vy
Y2VCdWZmZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc291
cmNlOworfQorCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c3RvcCgpCit7CisgICAgbV9hcHBlbmRCdWZm
ZXJUaW1lci5zdG9wKCk7Cit9CisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNvdXJjZUJ1ZmZl
cjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjdGl2ZURP
TU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworfQorCitjb25zdCBBdG9taWNTdHJp
bmcmIFNvdXJjZUJ1ZmZlcjo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGV2
ZW50TmFtZXMoKS5pbnRlcmZhY2VGb3JTb3VyY2VCdWZmZXI7Cit9CisKK0V2ZW50VGFyZ2V0RGF0
YSogU291cmNlQnVmZmVyOjpldmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVu
dFRhcmdldERhdGE7Cit9CisKK0V2ZW50VGFyZ2V0RGF0YSogU291cmNlQnVmZmVyOjplbnN1cmVF
dmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7CiB9CiAK
IGJvb2wgU291cmNlQnVmZmVyOjppc1JlbW92ZWQoKSBjb25zdApAQCAtMTY0LDE2ICsyMzAsNzQg
QEAgYm9vbCBTb3VyY2VCdWZmZXI6OmlzUmVtb3ZlZCgpIGNvbnN0CiAgICAgcmV0dXJuICFtX3Nv
dXJjZTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXI6OmlzT3BlbigpIGNvbnN0Cit2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkKIHsK
LSAgICBBU1NFUlQobV9zb3VyY2UpOwotICAgIHJldHVybiBtX3NvdXJjZS0+cmVhZHlTdGF0ZSgp
ID09IE1lZGlhU291cmNlOjpvcGVuS2V5d29yZCgpOworICAgIEFTU0VSVChtX2FzeW5jRXZlbnRR
dWV1ZSk7CisKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWUsIGZhbHNlLCBmYWxzZSk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKKworICAgIG1f
YXN5bmNFdmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAotYm9v
bCBTb3VyY2VCdWZmZXI6OmlzRW5kZWQoKSBjb25zdAordm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVu
ZEJ1ZmZlckludGVybmFsKHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIEFTU0VSVChtX3NvdXJjZSk7Ci0gICAgcmV0dXJuIG1fc291
cmNlLT5yZWFkeVN0YXRlKCkgPT0gTWVkaWFTb3VyY2U6OmVuZGVkS2V5d29yZCgpOworICAgIC8v
IFNlY3Rpb24gMy4yIGFwcGVuZEJ1ZmZlcigpCisgICAgLy8gaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5o
dG1sI3dpZGwtU291cmNlQnVmZmVyLWFwcGVuZEJ1ZmZlci12b2lkLUFycmF5QnVmZmVyVmlldy1k
YXRhCisKKyAgICAvLyBTdGVwIDEgaXMgZW5mb3JjZWQgYnkgdGhlIGNhbGxlci4KKyAgICAvLyAy
LiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMg
YXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAzLiBJ
ZiB0aGUgdXBkYXRpbmcgYXR0cmlidXRlIGVxdWFscyB0cnVlLCB0aGVuIHRocm93IGFuIElOVkFM
SURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKGlz
UmVtb3ZlZCgpIHx8IG1fdXBkYXRpbmcpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDQuIElmIHRoZSByZWFkeVN0YXRl
IGF0dHJpYnV0ZSBvZiB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSBpcyBpbiB0aGUgImVuZGVkIiBz
dGF0ZSB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOiAuLi4KKyAgICBtX3NvdXJjZS0+b3Bl
bklmSW5FbmRlZFN0YXRlKCk7CisKKyAgICAvLyBTdGVwcyA1LTYKKworICAgIC8vIDcuIEFkZCBk
YXRhIHRvIHRoZSBlbmQgb2YgdGhlIGlucHV0IGJ1ZmZlci4KKyAgICBtX3BlbmRpbmdBcHBlbmRE
YXRhLmFwcGVuZChkYXRhLCBzaXplKTsKKworICAgIC8vIDguIFNldCB0aGUgdXBkYXRpbmcgYXR0
cmlidXRlIHRvIHRydWUuCisgICAgbV91cGRhdGluZyA9IHRydWU7CisKKyAgICAvLyA5LiBRdWV1
ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRhdGVzdGFydCBhdCB0aGlz
IFNvdXJjZUJ1ZmZlciBvYmplY3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBk
YXRlc3RhcnRFdmVudCk7CisKKyAgICAvLyAxMC4gQXN5bmNocm9ub3VzbHkgcnVuIHRoZSBidWZm
ZXIgYXBwZW5kIGFsZ29yaXRobS4KKyAgICBtX2FwcGVuZEJ1ZmZlclRpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKK30KKwordm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoVGlt
ZXI8U291cmNlQnVmZmVyPiopCit7CisgICAgQVNTRVJUKG1fdXBkYXRpbmcpOworCisgICAgLy8g
U2VjdGlvbiAzLjUuNCBCdWZmZXIgQXBwZW5kIEFsZ29yaXRobQorICAgIC8vIGh0dHBzOi8vZHZj
cy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UuaHRtbCNzb3VyY2VidWZmZXItYnVmZmVyLWFwcGVuZAorCisgICAgLy8gMS4gUnVu
IHRoZSBzZWdtZW50IHBhcnNlciBsb29wIGFsZ29yaXRobS4KKyAgICAvLyBTdGVwIDIgZG9lc24n
dCBhcHBseSBzaW5jZSB3ZSBydW4gU3RlcCAxIHN5bmNocm9ub3VzbHkgaGVyZS4KKyAgICBzaXpl
X3QgYXBwZW5kU2l6ZSA9IG1fcGVuZGluZ0FwcGVuZERhdGEuc2l6ZSgpOworICAgIGlmICghYXBw
ZW5kU2l6ZSkgeworICAgICAgICAvLyBSZXNpemUgYnVmZmVyIGZvciAwIGJ5dGUgYXBwZW5kcyBz
byB3ZSBhbHdheXMgaGF2ZSBhIHZhbGlkIHBvaW50ZXIuCisgICAgICAgIC8vIFdlIG5lZWQgdG8g
Y29udmV5IGFsbCBhcHBlbmRzLCBldmVuIDAgYnl0ZSBvbmVzIHRvIHxtX3ByaXZhdGV8IHNvCisg
ICAgICAgIC8vIHRoYXQgaXQgY2FuIGNsZWFyIGl0cyBlbmQgb2Ygc3RyZWFtIHN0YXRlIGlmIG5l
Y2Vzc2FyeS4KKyAgICAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5yZXNpemUoMSk7CisgICAgfQor
ICAgIG1fcHJpdmF0ZS0+YXBwZW5kKG1fcGVuZGluZ0FwcGVuZERhdGEuZGF0YSgpLCBhcHBlbmRT
aXplKTsKKworICAgIC8vIDMuIFNldCB0aGUgdXBkYXRpbmcgYXR0cmlidXRlIHRvIGZhbHNlLgor
ICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKKyAgICBtX3BlbmRpbmdBcHBlbmREYXRhLmNsZWFyKCk7
CisKKyAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1
cGRhdGUgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgorICAgIHNjaGVkdWxlRXZlbnQoZXZl
bnROYW1lcygpLnVwZGF0ZUV2ZW50KTsKKworICAgIC8vIDUuIFF1ZXVlIGEgdGFzayB0byBmaXJl
IGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZWVuZCBhdCB0aGlzIFNvdXJjZUJ1ZmZlciBvYmpl
Y3QuCisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkudXBkYXRlZW5kRXZlbnQpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBhMzVlMzI1Y2ExMzg5N2EwZWQ4MmVjMTJm
N2EwNDMyNmM3Y2IzN2IwLi4xNmUyYWQ1NmE0YzU5Zjc2YTM1N2IyNDAzMmJlZmNjN2Y2MmIxNDU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTMzLDQ1ICszMyw4MCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZTsKIGNsYXNzIE1lZGlhU291
cmNlOwogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZTsKIGNsYXNzIFRpbWVSYW5nZXM7CiAKLWNs
YXNzIFNvdXJjZUJ1ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlcj4geworY2xh
c3MgU291cmNlQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyPiwgcHVibGlj
IEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2NyaXB0V3JhcHBh
YmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+IGNyZWF0
ZShQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+LCBQYXNzUmVmUHRyPE1lZGlhU291cmNl
Pik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U291cmNlQnVmZmVyPiBjcmVhdGUoUGFzc093blB0
cjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgTWVkaWFTb3VyY2UqLCBHZW5lcmljRXZlbnRRdWV1ZSop
OwogCiAgICAgdmlydHVhbCB+U291cmNlQnVmZmVyKCk7CiAKICAgICAvLyBTb3VyY2VCdWZmZXIu
aWRsIG1ldGhvZHMKKyAgICBib29sIHVwZGF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV91cGRhdGlu
ZzsgfQogICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogICAgIGRvdWJsZSB0aW1lc3RhbXBPZmZzZXQoKSBjb25zdDsKICAgICB2b2lkIHNl
dFRpbWVzdGFtcE9mZnNldChkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIGFwcGVu
ZChQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IGFwcGVuZEJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBkYXRhLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBhcHBlbmRCdWZmZXIoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGRh
dGEsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbkNvZGUmKTsKIAor
ICAgIHZvaWQgYWJvcnRJZlVwZGF0aW5nKCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291
cmNlKCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCisgICAgdmlydHVhbCBi
b29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgT1ZFUlJJREU7CisKKyAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKKyAgICB2
aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNl
TmFtZSgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdXNpbmcgUmVmQ291bnRlZDxTb3VyY2VCdWZm
ZXI+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXI+OjpkZXJlZjsKKwor
cHJvdGVjdGVkOgorICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CisKIHByaXZh
dGU6Ci0gICAgU291cmNlQnVmZmVyKFBhc3NPd25QdHI8U291cmNlQnVmZmVyUHJpdmF0ZT4sIFBh
c3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsKKyAgICBTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3Vy
Y2VCdWZmZXJQcml2YXRlPiwgTWVkaWFTb3VyY2UqLCBHZW5lcmljRXZlbnRRdWV1ZSopOwogCiAg
ICAgYm9vbCBpc1JlbW92ZWQoKSBjb25zdDsKLSAgICBib29sIGlzT3BlbigpIGNvbnN0OwotICAg
IGJvb2wgaXNFbmRlZCgpIGNvbnN0OworICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50TmFtZSk7CisKKyAgICB2b2lkIGFwcGVuZEJ1ZmZlckludGVybmFsKHVu
c2lnbmVkIGNoYXIqLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgYXBwZW5k
QnVmZmVyVGltZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+Kik7CiAKICAgICBPd25QdHI8U291
cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwotICAgIFJlZlB0cjxNZWRpYVNvdXJjZT4gbV9z
b3VyY2U7CisgICAgTWVkaWFTb3VyY2UqIG1fc291cmNlOworICAgIEdlbmVyaWNFdmVudFF1ZXVl
KiBtX2FzeW5jRXZlbnRRdWV1ZTsKKyAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERh
dGE7CiAKKyAgICBib29sIG1fdXBkYXRpbmc7CiAgICAgZG91YmxlIG1fdGltZXN0YW1wT2Zmc2V0
OworCisgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fcGVuZGluZ0FwcGVuZERhdGE7CisgICAg
VGltZXI8U291cmNlQnVmZmVyPiBtX2FwcGVuZEJ1ZmZlclRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwKaW5kZXggNzFmMmI2YjY4NDQ2
MGQxNWMzYTdlZmIyNDY0ZmU2N2Q4OTJmMDQzYy4uYzE5MGIxYzI3YzA1YTE5NTQ2ZGRlZWY5YTFi
OGU3ODg5ZWM2ZGQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsOSArMzAsMTQgQEAKICAKIFsKICAgICBDb25kaXRp
b25hbD1NRURJQV9TT1VSQ0UsCi0gICAgSW50ZXJmYWNlTmFtZT1XZWJLaXRTb3VyY2VCdWZmZXIK
LV0gaW50ZXJmYWNlIFNvdXJjZUJ1ZmZlciB7CisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAg
QWN0aXZlRE9NT2JqZWN0LAorICAgIEV2ZW50VGFyZ2V0LAorICAgIEpTR2VuZXJhdGVUb05hdGl2
ZU9iamVjdAorXSBpbnRlcmZhY2UgU291cmNlQnVmZmVyIDogRXZlbnRUYXJnZXQgewogCisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdXBkYXRpbmc7CisgIAogICAgIC8vIFJldHVybnMg
dGhlIHRpbWUgcmFuZ2VzIGJ1ZmZlcmVkLgogICAgIFtHZXR0ZXJSYWlzZXNFeGNlcHRpb25dIHJl
YWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFuZ2VzIGJ1ZmZlcmVkOwogCkBAIC00MCw3ICs0NSw4IEBA
CiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSB0aW1lc3RhbXBP
ZmZzZXQ7CiAKICAgICAvLyBBcHBlbmQgc2VnbWVudCBkYXRhLgotICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgYXBwZW5kKFVpbnQ4QXJyYXkgZGF0YSk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBhcHBlbmRCdWZmZXIoQXJyYXlCdWZmZXIgZGF0YSk7CisgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBhcHBlbmRCdWZmZXIoQXJyYXlCdWZmZXJWaWV3IGRhdGEpOwogCiAgICAgLy8gQWJv
cnQgdGhlIGN1cnJlbnQgc2VnbWVudCBhcHBlbmQgc2VxdWVuY2UuCiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gdm9pZCBhYm9ydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKaW5kZXggMTFkZDkxYzI3MGFmZjZmNmFh
Y2NhMDdhZGIxYjZjYjYzNDg0YTgwOS4uMjY0YWU0ZWI2MmUyMmNmNDVlMzY4YjgzZmIwMmFlMDUw
Mjk5ZjcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw1MiArMzksMzkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Tb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdlbmVyaWNFdmVudFF1ZXVlKiBhc3luY0V2ZW50UXVldWUpCitTb3VyY2VCdWZmZXJMaXN0OjpT
b3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEdlbmVyaWNF
dmVudFF1ZXVlKiBhc3luY0V2ZW50UXVldWUpCiAgICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoY29udGV4dCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKGFzeW5jRXZlbnRRdWV1ZSkKIHsK
IH0KIAotdW5zaWduZWQgbG9uZyBTb3VyY2VCdWZmZXJMaXN0OjpsZW5ndGgoKSBjb25zdAorU291
cmNlQnVmZmVyTGlzdDo6flNvdXJjZUJ1ZmZlckxpc3QoKQogewotICAgIHJldHVybiBtX2xpc3Qu
c2l6ZSgpOwotfQotCi1Tb3VyY2VCdWZmZXIqIFNvdXJjZUJ1ZmZlckxpc3Q6Oml0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Ci17Ci0gICAgaWYgKGluZGV4ID49IG1fbGlzdC5zaXplKCkpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLmdldCgpOworICAgIEFTU0VS
VChtX2xpc3QuaXNFbXB0eSgpKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJMaXN0OjphZGQoUGFz
c1JlZlB0cjxTb3VyY2VCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBtX2xpc3QuYXBwZW5kKGJ1ZmZl
cik7Ci0gICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRhZGRzb3VyY2Vi
dWZmZXJFdmVudCk7CisgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuYWRkc291cmNlYnVm
ZmVyRXZlbnQpOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlckxpc3Q6OnJlbW92ZShTb3VyY2VCdWZm
ZXIqIGJ1ZmZlcikKK3ZvaWQgU291cmNlQnVmZmVyTGlzdDo6cmVtb3ZlKFNvdXJjZUJ1ZmZlciog
YnVmZmVyKQogewogICAgIHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGJ1ZmZlcik7CiAgICAg
aWYgKGluZGV4ID09IG5vdEZvdW5kKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBidWZm
ZXItPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIG1fbGlz
dC5yZW1vdmUoaW5kZXgpOwotICAgIGNyZWF0ZUFuZEZpcmVFdmVudChldmVudE5hbWVzKCkud2Vi
a2l0cmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOwotICAgIHJldHVybiB0cnVlOworICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLnJlbW92ZXNvdXJjZWJ1ZmZlckV2ZW50KTsKIH0KIAogdm9p
ZCBTb3VyY2VCdWZmZXJMaXN0OjpjbGVhcigpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2xpc3Quc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGlzdFtpXS0+cmVtb3ZlZEZyb21NZWRp
YVNvdXJjZSgpOwogICAgIG1fbGlzdC5jbGVhcigpOwotICAgIGNyZWF0ZUFuZEZpcmVFdmVudChl
dmVudE5hbWVzKCkud2Via2l0cmVtb3Zlc291cmNlYnVmZmVyRXZlbnQpOworICAgIHNjaGVkdWxl
RXZlbnQoZXZlbnROYW1lcygpLnJlbW92ZXNvdXJjZWJ1ZmZlckV2ZW50KTsKIH0KIAotdm9pZCBT
b3VyY2VCdWZmZXJMaXN0OjpjcmVhdGVBbmRGaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudE5hbWUpCit2b2lkIFNvdXJjZUJ1ZmZlckxpc3Q6OnNjaGVkdWxlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlckxpc3QuaAppbmRleCAwZDQ3NjRlMTNkMTFhMTQwZTg5MTkxYTU3OWE3ZmNkMDRlYjE5NGVl
Li44ZWQzNDdmMjYxOWMwNTFjMGNhZjgxNjNjYWE0OTExNjJkZTkyNDkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MzQsNiArMzQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgorI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC00MiwxOSArNDMsMjAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU291cmNlQnVmZmVyOwogY2xhc3MgR2VuZXJp
Y0V2ZW50UXVldWU7CiAKLWNsYXNzIFNvdXJjZUJ1ZmZlckxpc3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTb3VyY2VCdWZmZXJMaXN0PiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK2NsYXNzIFNvdXJjZUJ1
ZmZlckxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXJMaXN0PiwgcHVibGljIFNj
cmlwdFdyYXBwYWJsZSwgcHVibGljIEV2ZW50VGFyZ2V0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlQnVmZmVyTGlzdChjb250ZXh0LCBhc3lu
Y0V2ZW50UXVldWUpKTsKICAgICB9Ci0gICAgdmlydHVhbCB+U291cmNlQnVmZmVyTGlzdCgpIHsg
fQorICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlckxpc3QoKTsKIAotICAgIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoKCkgY29uc3Q7Ci0gICAgU291cmNlQnVmZmVyKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdDsKKyAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5z
aXplKCk7IH0KKyAgICBTb3VyY2VCdWZmZXIqIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCkgY29u
c3QgeyByZXR1cm4gKGluZGV4IDwgbV9saXN0LnNpemUoKSkgPyBtX2xpc3RbaW5kZXhdLmdldCgp
IDogMDsgfQogCiAgICAgdm9pZCBhZGQoUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXI+KTsKLSAgICBi
b29sIHJlbW92ZShTb3VyY2VCdWZmZXIqKTsKKyAgICB2b2lkIHJlbW92ZShTb3VyY2VCdWZmZXIq
KTsKKyAgICBib29sIGNvbnRhaW5zKFNvdXJjZUJ1ZmZlciogYnVmZmVyKSB7IHJldHVybiBtX2xp
c3QuZmluZChidWZmZXIpICE9IG5vdEZvdW5kOyB9CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAg
Ly8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCkBAIC03MSw3ICs3Myw3IEBAIHByb3RlY3RlZDoKIHBy
aXZhdGU6CiAgICAgU291cmNlQnVmZmVyTGlzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgR2Vu
ZXJpY0V2ZW50UXVldWUqKTsKIAotICAgIHZvaWQgY3JlYXRlQW5kRmlyZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYpOworICAgIHZvaWQgc2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
KTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYo
KTsgfQpAQCAtODYsNCArODgsNSBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbAppbmRleCA1YjE0YWQ4ZDBkNmVhOTllNzY0
NDYzYWZkNjgxYTlmOTYzMjAxNzJiLi5iODZmNmFhZjZmZjBhM2FlYTE3YjE0OWI3MjgzNzFlMTAz
NTU5OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlckxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyTGlzdC5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDE5ICszMCwxMiBAQAogIAogWwogICAgIENvbmRp
dGlvbmFsPU1FRElBX1NPVVJDRSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBFdmVudFRh
cmdldCwKLSAgICBJbnRlcmZhY2VOYW1lPVdlYktpdFNvdXJjZUJ1ZmZlckxpc3QKLV0gaW50ZXJm
YWNlIFNvdXJjZUJ1ZmZlckxpc3QgeworICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAg
ICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0CitdIGludGVyZmFjZSBTb3VyY2VCdWZm
ZXJMaXN0IDogRXZlbnRUYXJnZXQgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKICAgICBnZXR0ZXIgU291cmNlQnVmZmVyIGl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7Ci0KLSAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICB2b2lkIGFkZEV2ZW50
TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50
TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmlu
ZyB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNh
cHR1cmUpOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChFdmVu
dCBldmVudCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1VSTE1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvVVJMTWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MTAxZGYxNWY3M2M0OGU1Mjhk
MmY1ZGIwNzFlODRjOTU2Yjg0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1VSTE1lZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVSTE1lZGlhU291cmNlLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiRE9NVVJMLmgiCisjaW5jbHVkZSAiTWVkaWFT
b3VyY2VCYXNlLmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitTdHJpbmcgVVJMTWVkaWFTb3VyY2U6OmNyZWF0ZU9iamVjdFVSTChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNZWRpYVNvdXJjZUJhc2Uq
IHNvdXJjZSkKK3sKKyAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4gTWVkaWFT
b3VyY2Ugb2JqZWN0cywgd2Ugc2hvdWxkIGJlIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0IHx8
ICFzb3VyY2UpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gRE9NVVJMOjpj
cmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc291cmNlKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvVVJMTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjU1ZWZiNDVk
NzAzZmNkYmNlYzQyMWQ3NTQ0NzI5MTk3M2M0MWE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5oCkBAIC0wLDAgKzEs
NTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFVSTE1lZGlhU291cmNlX2gKKyNkZWZpbmUgVVJMTWVkaWFTb3VyY2VfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTb3VyY2VCYXNlOworY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgVVJMTWVkaWFTb3VyY2UgeworcHVibGljOgor
ICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBNZWRpYVNvdXJjZUJhc2UqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1VSTE1lZGlhU291cmNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTVmZTgzY2QxNDY2ZmViYWM2Zjlh
ZTU4YjUzZGY2ZTJjYTU2NmU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9VUkxNZWRpYVNvdXJjZS5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCitbCisgICAg
Q29uZGl0aW9uYWw9TUVESUFfU09VUkNFCitdCitwYXJ0aWFsIGludGVyZmFjZSBVUkwgeworICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbF0gc3RhdGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwoTWVkaWFTb3VyY2U/IHNv
dXJjZSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChXZWJL
aXRNZWRpYVNvdXJjZT8gc291cmNlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0TWVkaWFTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJj
OGMyZWMyYWZiMzZmZjY1YmZiMzdjODk4M2QxZTBlNGUwZTViMDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmNw
cApAQCAtMCwwICsxLDIwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRN
ZWRpYVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5j
bHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1lZGlhU291cmNlUmVnaXN0cnku
aCIKKyNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiVGltZVJhbmdl
cy5oIgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxXZWJLaXRNZWRpYVNvdXJjZT4gV2ViS2l0TWVkaWFTb3VyY2U6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIFJlZlB0cjxXZWJLaXRN
ZWRpYVNvdXJjZT4gbWVkaWFTb3VyY2UoYWRvcHRSZWYobmV3IFdlYktpdE1lZGlhU291cmNlKGNv
bnRleHQpKSk7CisgICAgbWVkaWFTb3VyY2UtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVy
biBtZWRpYVNvdXJjZS5yZWxlYXNlKCk7Cit9CisKK1dlYktpdE1lZGlhU291cmNlOjpXZWJLaXRN
ZWRpYVNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogTWVkaWFT
b3VyY2VCYXNlKGNvbnRleHQpCit7CisgICAgbV9zb3VyY2VCdWZmZXJzID0gV2ViS2l0U291cmNl
QnVmZmVyTGlzdDo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgYXN5bmNFdmVudFF1
ZXVlKCkpOworICAgIG1fYWN0aXZlU291cmNlQnVmZmVycyA9IFdlYktpdFNvdXJjZUJ1ZmZlckxp
c3Q6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGFzeW5jRXZlbnRRdWV1ZSgpKTsK
K30KKworV2ViS2l0U291cmNlQnVmZmVyTGlzdCogV2ViS2l0TWVkaWFTb3VyY2U6OnNvdXJjZUJ1
ZmZlcnMoKQoreworICAgIHJldHVybiBtX3NvdXJjZUJ1ZmZlcnMuZ2V0KCk7Cit9CisKK1dlYktp
dFNvdXJjZUJ1ZmZlckxpc3QqIFdlYktpdE1lZGlhU291cmNlOjphY3RpdmVTb3VyY2VCdWZmZXJz
KCkKK3sKKyAgICAvLyBGSVhNRSg5MTY0OSk6IHN1cHBvcnQgdHJhY2sgc2VsZWN0aW9uCisgICAg
cmV0dXJuIG1fYWN0aXZlU291cmNlQnVmZmVycy5nZXQoKTsKK30KKworV2ViS2l0U291cmNlQnVm
ZmVyKiBXZWJLaXRNZWRpYVNvdXJjZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlw
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gMy4xIGh0dHA6Ly9kdmNzLnczLm9yZy9o
Zy9odG1sLW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0bWwj
ZG9tLWFkZHNvdXJjZWJ1ZmZlcgorICAgIC8vIDEuIElmIHR5cGUgaXMgbnVsbCBvciBhbiBlbXB0
eSB0aGVuIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBleGNlcHRpb24gYW5kCisgICAgLy8g
YWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKHR5cGUuaXNOdWxsKCkgfHwgdHlwZS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIC8vIDIuIElmIHR5cGUgY29udGFpbnMgYSBNSU1FIHR5cGUgdGhhdCBp
cyBub3Qgc3VwcG9ydGVkIC4uLiwgdGhlbiB0aHJvdyBhCisgICAgLy8gTk9UX1NVUFBPUlRFRF9F
UlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIWlzVHlwZVN1cHBv
cnRlZCh0eXBlKSkgeworICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyA0LiBJZiB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUg
aXMgbm90IGluIHRoZSAib3BlbiIgc3RhdGUgdGhlbiB0aHJvdyBhbgorICAgIC8vIElOVkFMSURf
U1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFpc09w
ZW4oKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisKKyAgICAvLyA1LiBDcmVhdGUgYSBuZXcgU291cmNlQnVmZmVyIG9iamVjdCBh
bmQgYXNzb2NpYXRlZCByZXNvdXJjZXMuCisgICAgQ29udGVudFR5cGUgY29udGVudFR5cGUodHlw
ZSk7CisgICAgVmVjdG9yPFN0cmluZz4gY29kZWNzID0gY29udGVudFR5cGUuY29kZWNzKCk7Cisg
ICAgT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUgPSBjcmVh
dGVTb3VyY2VCdWZmZXJQcml2YXRlKGNvbnRlbnRUeXBlLnR5cGUoKSwgY29kZWNzLCBlYyk7Cisg
ICAgaWYgKCFzb3VyY2VCdWZmZXJQcml2YXRlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJl
ZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+IGJ1ZmZlciA9IFdlYktpdFNvdXJjZUJ1ZmZlcjo6Y3Jl
YXRlKHNvdXJjZUJ1ZmZlclByaXZhdGUucmVsZWFzZSgpLCB0aGlzKTsKKyAgICAvLyA2LiBBZGQg
dGhlIG5ldyBvYmplY3QgdG8gc291cmNlQnVmZmVycyBhbmQgZmlyZSBhIGFkZHNvdXJjZWJ1ZmZl
ciBvbiB0aGF0IG9iamVjdC4KKyAgICBtX3NvdXJjZUJ1ZmZlcnMtPmFkZChidWZmZXIpOworICAg
IG1fYWN0aXZlU291cmNlQnVmZmVycy0+YWRkKGJ1ZmZlcik7CisgICAgLy8gNy4gUmV0dXJuIHRo
ZSBuZXcgb2JqZWN0IHRvIHRoZSBjYWxsZXIuCisgICAgcmV0dXJuIGJ1ZmZlci5nZXQoKTsKK30K
Kwordm9pZCBXZWJLaXRNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFdlYktpdFNvdXJj
ZUJ1ZmZlciogYnVmZmVyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyAzLjEgaHR0cDov
L2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UuaHRtbCNkb20tcmVtb3Zlc291cmNlYnVmZmVyCisgICAgLy8gMS4gSWYgc291cmNl
QnVmZmVyIGlzIG51bGwgdGhlbiB0aHJvdyBhbiBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9u
IGFuZAorICAgIC8vIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmICghYnVmZmVyKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gMi4gSWYgc291cmNlQnVmZmVycyBpcyBlbXB0eSB0aGVuIHRocm93IGFuIElOVkFMSURf
U1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQKKyAgICAvLyBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBp
ZiAoaXNDbG9zZWQoKSB8fCAhbV9zb3VyY2VCdWZmZXJzLT5sZW5ndGgoKSkgeworICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
My4gSWYgc291cmNlQnVmZmVyIHNwZWNpZmllcyBhbiBvYmplY3QgdGhhdCBpcyBub3QgaW4gc291
cmNlQnVmZmVycyB0aGVuCisgICAgLy8gdGhyb3cgYSBOT1RfRk9VTkRfRVJSIGV4Y2VwdGlvbiBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gNi4gUmVtb3ZlIHNvdXJjZUJ1ZmZlciBmcm9t
IHNvdXJjZUJ1ZmZlcnMgYW5kIGZpcmUgYSByZW1vdmVzb3VyY2VidWZmZXIgZXZlbnQKKyAgICAv
LyBvbiB0aGF0IG9iamVjdC4KKyAgICBpZiAoIW1fc291cmNlQnVmZmVycy0+cmVtb3ZlKGJ1ZmZl
cikpIHsKKyAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gNy4gRGVzdHJveSBhbGwgcmVzb3VyY2VzIGZvciBzb3VyY2VCdWZmZXIuCisg
ICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5yZW1vdmUoYnVmZmVyKTsKKworICAgIC8vIDQuIFJl
bW92ZSB0cmFjayBpbmZvcm1hdGlvbiBmcm9tIGF1ZGlvVHJhY2tzLCB2aWRlb1RyYWNrcywgYW5k
IHRleHRUcmFja3MgZm9yIGFsbCB0cmFja3MKKyAgICAvLyBhc3NvY2lhdGVkIHdpdGggc291cmNl
QnVmZmVyIGFuZCBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBvbiB0aGUgbW9kaWZp
ZWQgbGlzdHMuCisgICAgLy8gRklYTUUoOTE2NDkpOiBzdXBwb3J0IHRyYWNrIHNlbGVjdGlvbgor
CisgICAgLy8gNS4gSWYgc291cmNlQnVmZmVyIGlzIGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMsIHRo
ZW4gcmVtb3ZlIGl0IGZyb20gdGhhdCBsaXN0IGFuZCBmaXJlIGEKKyAgICAvLyByZW1vdmVzb3Vy
Y2VidWZmZXIgZXZlbnQgb24gdGhhdCBvYmplY3QuCisgICAgLy8gRklYTUUoOTE2NDkpOiBzdXBw
b3J0IHRyYWNrIHNlbGVjdGlvbgorfQorCit2b2lkIFdlYktpdE1lZGlhU291cmNlOjpvblJlYWR5
U3RhdGVDaGFuZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBvbGRTdGF0ZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBuZXdTdGF0ZSkKK3sKKyAgICBpZiAoaXNDbG9zZWQoKSkgeworICAgICAgICBtX3NvdXJj
ZUJ1ZmZlcnMtPmNsZWFyKCk7CisgICAgICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy0+Y2xlYXIo
KTsKKyAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkud2Via2l0c291cmNlY2xvc2VF
dmVudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAob2xkU3RhdGUgPT0gb3Bl
bktleXdvcmQoKSAmJiBuZXdTdGF0ZSA9PSBlbmRlZEtleXdvcmQoKSkgeworICAgICAgICBzY2hl
ZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VlbmRlZEV2ZW50KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChpc09wZW4oKSkgeworICAgICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRzb3VyY2VvcGVuRXZlbnQpOworICAgICAgICByZXR1cm47
CisgICAgfQorfQorCitWZWN0b3I8UmVmUHRyPFRpbWVSYW5nZXM+ID4gV2ViS2l0TWVkaWFTb3Vy
Y2U6OmFjdGl2ZVJhbmdlcygpIGNvbnN0Cit7CisgICAgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2Vz
PiA+IGFjdGl2ZVJhbmdlcyhtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMtPmxlbmd0aCgpKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlU291cmNlQnVmZmVycy0+bGVuZ3RoKCk7ICsr
aSkKKyAgICAgICAgYWN0aXZlUmFuZ2VzW2ldID0gbV9hY3RpdmVTb3VyY2VCdWZmZXJzLT5pdGVt
KGkpLT5idWZmZXJlZChBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworICAgIHJldHVybiBhY3RpdmVS
YW5nZXM7Cit9CisKK2Jvb2wgV2ViS2l0TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChjb25z
dCBTdHJpbmcmIHR5cGUpCit7CisgICAgLy8gU2VjdGlvbiAyLjEgaXNUeXBlU3VwcG9ydGVkKCkg
bWV0aG9kIHN0ZXBzLgorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9y
YXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtTWVkaWFTb3Vy
Y2UtaXNUeXBlU3VwcG9ydGVkLWJvb2xlYW4tRE9NU3RyaW5nLXR5cGUKKyAgICAvLyAxLiBJZiB0
eXBlIGlzIGFuIGVtcHR5IHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgaWYgKHR5cGUu
aXNOdWxsKCkgfHwgdHlwZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKHR5cGUpOworICAgIFN0cmluZyBjb2RlY3MgPSBjb250
ZW50VHlwZS5wYXJhbWV0ZXIoImNvZGVjcyIpOworCisgICAgLy8gMi4gSWYgdHlwZSBkb2VzIG5v
dCBjb250YWluIGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCisg
ICAgaWYgKGNvbnRlbnRUeXBlLnR5cGUoKS5pc0VtcHR5KCkgfHwgY29kZWNzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gMy4gSWYgdHlwZSBjb250YWlucyBhIG1l
ZGlhIHR5cGUgb3IgbWVkaWEgc3VidHlwZSB0aGF0IHRoZSBNZWRpYVNvdXJjZSBkb2VzIG5vdCBz
dXBwb3J0LCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICAvLyA0LiBJZiB0eXBlIGNvbnRhaW5zIGF0
IGEgY29kZWMgdGhhdCB0aGUgTWVkaWFTb3VyY2UgZG9lcyBub3Qgc3VwcG9ydCwgdGhlbiByZXR1
cm4gZmFsc2UuCisgICAgLy8gNS4gSWYgdGhlIE1lZGlhU291cmNlIGRvZXMgbm90IHN1cHBvcnQg
dGhlIHNwZWNpZmllZCBjb21iaW5hdGlvbiBvZiBtZWRpYSB0eXBlLCBtZWRpYSBzdWJ0eXBlLCBh
bmQgY29kZWNzIHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIC8vIDYuIFJldHVybiB0cnVlLgorICAg
IHJldHVybiBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhU291cmNlTUlNRVR5cGUo
Y29udGVudFR5cGUudHlwZSgpLCBjb2RlY3MpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFdl
YktpdE1lZGlhU291cmNlOjppbnRlcmZhY2VOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZXZl
bnROYW1lcygpLmludGVyZmFjZUZvcldlYktpdE1lZGlhU291cmNlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlNzVhZTM2MmFh
YjY4ODhlZTQyMjg1NTJhMTQxZDJmYjIwOGNmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdE1lZGlhU291cmNlLmgKQEAgLTAsMCAr
MSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViS2l0TWVkaWFTb3VyY2VfaAorI2RlZmluZSBXZWJLaXRNZWRpYVNv
dXJjZV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCisjaW5jbHVkZSAiTWVkaWFTb3Vy
Y2VCYXNlLmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiV2ViS2l0
U291cmNlQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViS2l0TWVkaWFTb3VyY2UgOiBwdWJsaWMgTWVkaWFTb3VyY2VCYXNlLCBwdWJsaWMgU2NyaXB0
V3JhcHBhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRNZWRpYVNv
dXJjZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJL
aXRNZWRpYVNvdXJjZSgpIHsgfQorCisgICAgLy8gV2ViS2l0TWVkaWFTb3VyY2UuaWRsIG1ldGhv
ZHMKKyAgICBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KiBzb3VyY2VCdWZmZXJzKCk7CisgICAgV2Vi
S2l0U291cmNlQnVmZmVyTGlzdCogYWN0aXZlU291cmNlQnVmZmVycygpOworICAgIFdlYktpdFNv
dXJjZUJ1ZmZlciogYWRkU291cmNlQnVmZmVyKGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFdlYktpdFNvdXJjZUJ1ZmZlcios
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGVTdXBwb3J0ZWQoY29uc3Qg
U3RyaW5nJiB0eXBlKTsKKworICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQorICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3QgT1ZFUlJJREU7CisK
KyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU291cmNlQmFzZT46OnJlZjsKKyAgICB1c2luZyBS
ZWZDb3VudGVkPE1lZGlhU291cmNlQmFzZT46OmRlcmVmOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IFdlYktpdE1lZGlhU291cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIC8v
IE1lZGlhU291cmNlQmFzZSBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIHZvaWQgb25SZWFkeVN0YXRl
Q2hhbmdlKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgVmVjdG9yPFJlZlB0cjxUaW1lUmFuZ2VzPiA+IGFjdGl2ZVJhbmdlcygp
IGNvbnN0IE9WRVJSSURFOworCisgICAgUmVmUHRyPFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q+IG1f
c291cmNlQnVmZmVyczsKKyAgICBSZWZQdHI8V2ViS2l0U291cmNlQnVmZmVyTGlzdD4gbV9hY3Rp
dmVTb3VyY2VCdWZmZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9X
ZWJLaXRNZWRpYVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1dlYktpdE1lZGlhU291cmNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDNlYmY3ZWViYjI5ZmRmMzgyYzlh
NjkwNTNlODBmMGFiMGI3MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRNZWRpYVNvdXJjZS5pZGwKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisgCitb
CisgICAgQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFLAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAg
ICBFdmVudFRhcmdldCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgQ29uc3Ry
dWN0b3IsCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0Citd
IGludGVyZmFjZSBXZWJLaXRNZWRpYVNvdXJjZSA6IEV2ZW50VGFyZ2V0IHsKKyAgICAvLyBBbGwg
dGhlIHNvdXJjZSBidWZmZXJzIGNyZWF0ZWQgYnkgdGhpcyBvYmplY3QuCisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Qgc291cmNlQnVmZmVyczsKKworICAgIC8v
IFN1YnNldCBvZiBzb3VyY2VCdWZmZXJzIHRoYXQgcHJvdmlkZSBkYXRhIGZvciB0aGUgc2VsZWN0
ZWQvZW5hYmxlZCB0cmFja3MuCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFdlYktpdFNvdXJjZUJ1
ZmZlckxpc3QgYWN0aXZlU291cmNlQnVmZmVyczsKKworICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRp
b25dIGF0dHJpYnV0ZSBkb3VibGUgZHVyYXRpb247CisKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBX
ZWJLaXRTb3VyY2VCdWZmZXIgYWRkU291cmNlQnVmZmVyKERPTVN0cmluZyB0eXBlKTsKKyAgICBb
UmFpc2VzRXhjZXB0aW9uXSB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihXZWJLaXRTb3VyY2VCdWZm
ZXIgYnVmZmVyKTsKKworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVhZHlTdGF0
ZTsKKyAgICAKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGVuZE9mU3RyZWFtKFtEZWZhdWx0
PU51bGxTdHJpbmddIG9wdGlvbmFsIERPTVN0cmluZyBlcnJvcik7CisKKyAgICBzdGF0aWMgYm9v
bGVhbiBpc1R5cGVTdXBwb3J0ZWQgKERPTVN0cmluZyB0eXBlKTsKK307CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNTk0YjI4ZTgzNDVmODJjMTJhZjI3ZTM1OWJkMzlmNGNmNjA3MDk2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9X
ZWJLaXRTb3VyY2VCdWZmZXIuY3BwCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYktpdFNvdXJjZUJ1ZmZlci5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKKworI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKKyNpbmNsdWRlICJUaW1l
UmFuZ2VzLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlIDx3dGYv
VWludDhBcnJheS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8V2ViS2l0
U291cmNlQnVmZmVyPiBXZWJLaXRTb3VyY2VCdWZmZXI6OmNyZWF0ZShQYXNzT3duUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUsIFBhc3NSZWZQdHI8V2ViS2l0TWVk
aWFTb3VyY2U+IHNvdXJjZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdFNvdXJj
ZUJ1ZmZlcihzb3VyY2VCdWZmZXJQcml2YXRlLCBzb3VyY2UpKTsKK30KKworV2ViS2l0U291cmNl
QnVmZmVyOjpXZWJLaXRTb3VyY2VCdWZmZXIoUGFzc093blB0cjxTb3VyY2VCdWZmZXJQcml2YXRl
PiBzb3VyY2VCdWZmZXJQcml2YXRlLCBQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPiBzb3Vy
Y2UpCisgICAgOiBtX3ByaXZhdGUoc291cmNlQnVmZmVyUHJpdmF0ZSkKKyAgICAsIG1fc291cmNl
KHNvdXJjZSkKKyAgICAsIG1fdGltZXN0YW1wT2Zmc2V0KDApCit7CisgICAgQVNTRVJUKG1fcHJp
dmF0ZSk7CisgICAgQVNTRVJUKG1fc291cmNlKTsKK30KKworV2ViS2l0U291cmNlQnVmZmVyOjp+
V2ViS2l0U291cmNlQnVmZmVyKCkKK3sKK30KKworUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBXZWJL
aXRTb3VyY2VCdWZmZXI6OmJ1ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAg
IC8vIFNlY3Rpb24gMy4xIGJ1ZmZlcmVkIGF0dHJpYnV0ZSBzdGVwcy4KKyAgICAvLyAxLiBJZiB0
aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmli
dXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cgYW4KKyAgICAvLyAgICBJ
TlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlm
IChpc1JlbW92ZWQoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyAyLiBSZXR1cm4gYSBuZXcgc3RhdGljIG5vcm1h
bGl6ZWQgVGltZVJhbmdlcyBvYmplY3QgZm9yIHRoZSBtZWRpYSBzZWdtZW50cyBidWZmZXJlZC4K
KyAgICByZXR1cm4gbV9wcml2YXRlLT5idWZmZXJlZCgpOworfQorCitkb3VibGUgV2ViS2l0U291
cmNlQnVmZmVyOjp0aW1lc3RhbXBPZmZzZXQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RpbWVz
dGFtcE9mZnNldDsKK30KKwordm9pZCBXZWJLaXRTb3VyY2VCdWZmZXI6OnNldFRpbWVzdGFtcE9m
ZnNldChkb3VibGUgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBTZWN0aW9u
IDMuMSB0aW1lc3RhbXBPZmZzZXQgYXR0cmlidXRlIHNldHRlciBzdGVwcy4KKyAgICAvLyAxLiBJ
ZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0
cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cgYW4KKyAgICAvLyAg
ICBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAg
IGlmIChpc1JlbW92ZWQoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gNC4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmli
dXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0YXRlIHRo
ZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gNC4xIFNldCB0aGUgcmVhZHlTdGF0
ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCisgICAgLy8g
NC4yIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHNvdXJjZW9wZW4g
YXQgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UuCisgICAgbV9zb3VyY2UtPm9wZW5JZkluRW5kZWRT
dGF0ZSgpOworCisgICAgLy8gNS4gSWYgdGhpcyBvYmplY3QgaXMgd2FpdGluZyBmb3IgdGhlIGVu
ZCBvZiBhIG1lZGlhIHNlZ21lbnQgdG8gYmUgYXBwZW5kZWQsIHRoZW4gdGhyb3cgYW4gSU5WQUxJ
RF9TVEFURV9FUlIKKyAgICAvLyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFtX3By
aXZhdGUtPnNldFRpbWVzdGFtcE9mZnNldChvZmZzZXQpKSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyA2LiBVcGRhdGUg
dGhlIGF0dHJpYnV0ZSB0byB0aGUgbmV3IHZhbHVlLgorICAgIG1fdGltZXN0YW1wT2Zmc2V0ID0g
b2Zmc2V0OworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlcjo6YXBwZW5kKFBhc3NSZWZQdHI8
VWludDhBcnJheT4gZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gU291cmNlQnVm
ZmVyLmFwcGVuZCgpIHN0ZXBzIGZyb20gT2N0b2JlciAxc3QgdmVyc2lvbiBvZiB0aGUgTWVkaWEg
U291cmNlIEV4dGVuc2lvbnMgc3BlYy4KKyAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0
bWwtbWVkaWEvcmF3LWZpbGUvN2JhYjY2MzY4ZjJjL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Uu
aHRtbCNkb20tYXBwZW5kCisKKyAgICAvLyAyLiBJZiBkYXRhIGlzIG51bGwgdGhlbiB0aHJvdyBh
biBJTlZBTElEX0FDQ0VTU19FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICBpZiAoIWRhdGEpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyAzLiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1v
dmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mIG1lZGlhIHNvdXJjZSB0aGVu
IHRocm93CisgICAgLy8gICAgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDUuIElmIHRo
ZSByZWFkeVN0YXRlIGF0dHJpYnV0ZSBvZiBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIg
c3RhdGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyA1LjEuIFNldCB0aGUg
cmVhZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgbWVkaWEgc291cmNlIHRvICJvcGVuIgorICAgIC8vIDUu
Mi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNlb3BlbiBh
dCBtZWRpYSBzb3VyY2UuCisgICAgbV9zb3VyY2UtPm9wZW5JZkluRW5kZWRTdGF0ZSgpOworCisg
ICAgLy8gU3RlcHMgNiAmIGJleW9uZCBhcmUgaGFuZGxlZCBieSB0aGUgcHJpdmF0ZSBpbXBsZW1l
bnRhdGlvbi4KKyAgICBtX3ByaXZhdGUtPmFwcGVuZChkYXRhLT5kYXRhKCksIGRhdGEtPmxlbmd0
aCgpKTsKK30KKwordm9pZCBXZWJLaXRTb3VyY2VCdWZmZXI6OmFib3J0KEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIC8vIFNlY3Rpb24gMy4yIGFib3J0KCkgbWV0aG9kIHN0ZXBzLgorICAgIC8v
IDEuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVy
cyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UKKyAgICAvLyAgICB0aGVuIHRo
cm93IGFuIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CisgICAgLy8gMi4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVk
aWEgc291cmNlIGlzIG5vdCBpbiB0aGUgIm9wZW4iIHN0YXRlCisgICAgLy8gICAgdGhlbiB0aHJv
dyBhbiBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgor
ICAgIGlmIChpc1JlbW92ZWQoKSB8fCAhbV9zb3VyY2UtPmlzT3BlbigpKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyA0
LiBSdW4gdGhlIHJlc2V0IHBhcnNlciBzdGF0ZSBhbGdvcml0aG0uCisgICAgbV9wcml2YXRlLT5h
Ym9ydCgpOworfQorCit2b2lkIFdlYktpdFNvdXJjZUJ1ZmZlcjo6cmVtb3ZlZEZyb21NZWRpYVNv
dXJjZSgpCit7CisgICAgaWYgKGlzUmVtb3ZlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3ByaXZhdGUtPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKKyAgICBtX3NvdXJjZS5jbGVhcigp
OworfQorCitib29sIFdlYktpdFNvdXJjZUJ1ZmZlcjo6aXNSZW1vdmVkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIW1fc291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRT
b3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0
U291cmNlQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZiOWRmYjIxODUzNjVmMGExY2ZlNzg3MWRkNmUw
MTY5MzE1YmU1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvV2ViS2l0U291cmNlQnVmZmVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2Vi
S2l0U291cmNlQnVmZmVyX2gKKyNkZWZpbmUgV2ViS2l0U291cmNlQnVmZmVyX2gKKworI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOworY2xhc3Mg
VGltZVJhbmdlczsKK2NsYXNzIFdlYktpdE1lZGlhU291cmNlOworCitjbGFzcyBXZWJLaXRTb3Vy
Y2VCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXRTb3VyY2VCdWZmZXI+LCBwdWJsaWMg
U2NyaXB0V3JhcHBhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRT
b3VyY2VCdWZmZXI+IGNyZWF0ZShQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+LCBQYXNz
UmVmUHRyPFdlYktpdE1lZGlhU291cmNlPik7CisKKyAgICB2aXJ0dWFsIH5XZWJLaXRTb3VyY2VC
dWZmZXIoKTsKKworICAgIC8vIFdlYktpdFNvdXJjZUJ1ZmZlci5pZGwgbWV0aG9kcworICAgIFBh
c3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAg
IGRvdWJsZSB0aW1lc3RhbXBPZmZzZXQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRpbWVzdGFtcE9m
ZnNldChkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGFib3J0KEV4Y2Vw
dGlvbkNvZGUmKTsKKworICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOworCitwcml2
YXRlOgorICAgIFdlYktpdFNvdXJjZUJ1ZmZlcihQYXNzT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGU+LCBQYXNzUmVmUHRyPFdlYktpdE1lZGlhU291cmNlPik7CisKKyAgICBib29sIGlzUmVtb3Zl
ZCgpIGNvbnN0OworCisgICAgT3duUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+IG1fcHJpdmF0ZTsK
KyAgICBSZWZQdHI8V2ViS2l0TWVkaWFTb3VyY2U+IG1fc291cmNlOworCisgICAgZG91YmxlIG1f
dGltZXN0YW1wT2Zmc2V0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9X
ZWJLaXRTb3VyY2VCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9XZWJLaXRTb3VyY2VCdWZmZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyOTIzYjMzNjM3MWZhZWZkZTAz
YzMzZGFjNGUzMjUwOTAzODUwOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlci5pZGwKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisg
CitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFCitdIGludGVyZmFjZSBXZWJLaXRTb3Vy
Y2VCdWZmZXIgeworCisgICAgLy8gUmV0dXJucyB0aGUgdGltZSByYW5nZXMgYnVmZmVyZWQuCisg
ICAgW0dldHRlclJhaXNlc0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFRpbWVSYW5nZXMg
YnVmZmVyZWQ7CisKKyAgICAvLyBBcHBsaWVzIGFuIG9mZnNldCB0byBtZWRpYSBzZWdtZW50IHRp
bWVzdGFtcHMuCisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSB0
aW1lc3RhbXBPZmZzZXQ7CisKKyAgICAvLyBBcHBlbmQgc2VnbWVudCBkYXRhLgorICAgIFtSYWlz
ZXNFeGNlcHRpb25dIHZvaWQgYXBwZW5kKFVpbnQ4QXJyYXkgZGF0YSk7CisKKyAgICAvLyBBYm9y
dCB0aGUgY3VycmVudCBzZWdtZW50IGFwcGVuZCBzZXF1ZW5jZS4KKyAgICBbUmFpc2VzRXhjZXB0
aW9uXSB2b2lkIGFib3J0KCk7Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNDI1MjlkZjUzYzhkNTMxNjA1YjNlMTRmYTAwYmQxOWMzNzk2ZjVkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VC
dWZmZXJMaXN0LmNwcApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgor
I2luY2x1ZGUgIldlYktpdFNvdXJjZUJ1ZmZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1dlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OldlYktpdFNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1
ZSkKKyAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgICwgbV9hc3lu
Y0V2ZW50UXVldWUoYXN5bmNFdmVudFF1ZXVlKQoreworfQorCit1bnNpZ25lZCBsb25nIFdlYktp
dFNvdXJjZUJ1ZmZlckxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGlzdC5z
aXplKCk7Cit9CisKK1dlYktpdFNvdXJjZUJ1ZmZlciogV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoaW5kZXggPj0gbV9saXN0LnNp
emUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fbGlzdFtpbmRleF0uZ2V0KCk7
Cit9CisKK3ZvaWQgV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6YWRkKFBhc3NSZWZQdHI8V2ViS2l0
U291cmNlQnVmZmVyPiBidWZmZXIpCit7CisgICAgbV9saXN0LmFwcGVuZChidWZmZXIpOworICAg
IGNyZWF0ZUFuZEZpcmVFdmVudChldmVudE5hbWVzKCkud2Via2l0YWRkc291cmNlYnVmZmVyRXZl
bnQpOworfQorCitib29sIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OnJlbW92ZShXZWJLaXRTb3Vy
Y2VCdWZmZXIqIGJ1ZmZlcikKK3sKKyAgICBzaXplX3QgaW5kZXggPSBtX2xpc3QuZmluZChidWZm
ZXIpOworICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgYnVmZmVyLT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CisgICAgbV9saXN0LnJlbW92
ZShpbmRleCk7CisgICAgY3JlYXRlQW5kRmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53ZWJraXRyZW1v
dmVzb3VyY2VidWZmZXJFdmVudCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViS2l0
U291cmNlQnVmZmVyTGlzdDo6Y2xlYXIoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9saXN0LnNpemUoKTsgKytpKQorICAgICAgICBtX2xpc3RbaV0tPnJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKTsKKyAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBjcmVhdGVBbmRGaXJlRXZlbnQoZXZl
bnROYW1lcygpLndlYmtpdHJlbW92ZXNvdXJjZWJ1ZmZlckV2ZW50KTsKK30KKwordm9pZCBXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGVBbmRGaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudE5hbWUpCit7CisgICAgQVNTRVJUKG1fYXN5bmNFdmVudFF1ZXVlKTsKKworICAgIFJl
ZlB0cjxFdmVudD4gZXZlbnQgPSBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZSwgZmFsc2UsIGZhbHNl
KTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOworCisgICAgbV9hc3luY0V2ZW50UXVldWUt
PmVucXVldWVFdmVudChldmVudC5yZWxlYXNlKCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Q6OmludGVyZmFjZU5hbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yV2ViS2l0U291cmNlQnVmZmVyTGlzdDsKK30K
KworU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKK30KKworRXZlbnRUYXJnZXREYXRhKiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Ojpl
dmVudFRhcmdldERhdGEoKQoreworICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Cit9CisK
K0V2ZW50VGFyZ2V0RGF0YSogV2ViS2l0U291cmNlQnVmZmVyTGlzdDo6ZW5zdXJlRXZlbnRUYXJn
ZXREYXRhKCkKK3sKKyAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yN2QyN2I1ZDg2YmQxZTA3NDJlMTRhZjA0MmQ5NTFhNzAxNjM3ZWExCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViS2l0U291cmNlQnVmZmVyTGlzdF9o
CisjZGVmaW5lIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3RfaAorCisjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKKworI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBh
YmxlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViS2l0U291cmNlQnVmZmVyOwor
Y2xhc3MgR2VuZXJpY0V2ZW50UXVldWU7CisKK2NsYXNzIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Qg
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0PiwgcHVibGljIFNjcmlw
dFdyYXBwYWJsZSwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgR2VuZXJpY0V2ZW50UXVldWUqIGFzeW5jRXZlbnRRdWV1ZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0U291cmNlQnVmZmVyTGlzdChjb250
ZXh0LCBhc3luY0V2ZW50UXVldWUpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViS2l0U291cmNl
QnVmZmVyTGlzdCgpIHsgfQorCisgICAgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKKyAg
ICBXZWJLaXRTb3VyY2VCdWZmZXIqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworCisgICAg
dm9pZCBhZGQoUGFzc1JlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+KTsKKyAgICBib29sIHJlbW92
ZShXZWJLaXRTb3VyY2VCdWZmZXIqKTsKKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICAvLyBFdmVu
dFRhcmdldCBpbnRlcmZhY2UKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJm
YWNlTmFtZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdXNp
bmcgUmVmQ291bnRlZDxXZWJLaXRTb3VyY2VCdWZmZXJMaXN0Pjo6cmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8V2ViS2l0U291cmNlQnVmZmVyTGlzdD46OmRlcmVmOworCitwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVS
UklERTsKKworcHJpdmF0ZToKKyAgICBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBHZW5lcmljRXZlbnRRdWV1ZSopOworCisgICAgdm9pZCBjcmVhdGVBbmRG
aXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKworICAgIEV2ZW50VGFyZ2V0RGF0YSBt
X2V2ZW50VGFyZ2V0RGF0YTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CisgICAgR2VuZXJpY0V2ZW50UXVldWUqIG1fYXN5bmNFdmVudFF1ZXVl
OworCisgICAgVmVjdG9yPFJlZlB0cjxXZWJLaXRTb3VyY2VCdWZmZXI+ID4gbV9saXN0OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9XZWJLaXRTb3VyY2VCdWZmZXJMaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvV2ViS2l0U291cmNlQnVm
ZmVyTGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYxYjlhMTVmNjE2ZWMzMWU3ZDQ3NGMwZDkzMDE5ODRh
NGExZGI3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisgCitbCisgICAg
Q29uZGl0aW9uYWw9TUVESUFfU09VUkNFLAorICAgIEV2ZW50VGFyZ2V0LAorICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdAorXSBpbnRlcmZhY2UgV2ViS2l0U291cmNlQnVmZmVyTGlzdCA6IEV2
ZW50VGFyZ2V0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7
CisgICAgZ2V0dGVyIFdlYktpdFNvdXJjZUJ1ZmZlciBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgp
OworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcAppbmRleCA1YzM4OGFiYWYzYWRlZjE3MzdjMmRhMzk5MTYyNzI0MTAwNGM0MGU3
Li4wZDg0YTFiMjNkMWNmOTRmNjQyZjhlNzU5MDJhMmZmN2ViNzVlYzZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1S
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmgiCiAjaW5jbHVkZSAiVVVJRC5oIgpAQCAtMzMwLDYgKzMzMSwx
MSBAQCB2b2lkIE1lZGlhU3RyZWFtOjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoVGltZXI8TWVk
aWFTdHJlYW0+KikKICAgICBldmVudHMuY2xlYXIoKTsKIH0KIAorVVJMUmVnaXN0cnkmIE1lZGlh
U3RyZWFtOjpyZWdpc3RyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtUmVnaXN0
cnk6OnJlZ2lzdHJ5KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggZDEzNDQyZjYyMzFhMDNjNTQ5NTA2NjZjMmI5ZGU2
ZWFkNGZjOGIzYy4uZjgxZTJjOGU4ZGI5NjdiZjdhZDhmODljMTI2ZTg4Nzk1ZWNmY2EzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaApA
QCAtMzQsMTIgKzM0LDEzIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVk
ZSAiVVJMUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVh
bSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiwgcHVibGljIE1lZGlhU3RyZWFtRGVz
Y3JpcHRvckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIgeworY2xhc3MgTWVkaWFTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YVN0cmVhbT4sIHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVibGljIE1lZGlhU3RyZWFtRGVzY3Jp
cHRvckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1l
ZGlhU3RyZWFtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW0+KTsKQEAgLTc5LDYgKzgwLDkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8TWVkaWFTdHJlYW0+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46
OmRlcmVmOwogCisgICAgLy8gVVJMUmVnaXN0cmFibGUKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5
JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFTdHJl
YW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlw
dG9yPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCmluZGV4IDg0M2VhYWI0YzdlNjhhNDkxYmViYThi
NjJjYWE2MmI0ZmM5ZmE0OGUuLmZmNWM2ZGFiODM4NGJlMTQzMzMyZjQzN2E3ZTU1NDc3NWE5OGZk
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1SZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcApAQCAtNDEsMTMgKzQxLDE0IEBAIE1lZGlhU3RyZWFt
UmVnaXN0cnkmIE1lZGlhU3RyZWFtUmVnaXN0cnk6OnJlZ2lzdHJ5KCkKICAgICByZXR1cm4gaW5z
dGFuY2U7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0ZXJNZWRpYVN0cmVh
bVVSTChjb25zdCBLVVJMJiB1cmwsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSkKK3Zv
aWQgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25z
dCBLVVJMJiB1cmwsIFVSTFJlZ2lzdHJhYmxlKiBzdHJlYW0pCiB7CisgICAgQVNTRVJUKCZzdHJl
YW0tPnJlZ2lzdHJ5KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICBtX3N0cmVhbURlc2NyaXB0b3JzLnNldCh1cmwuc3RyaW5nKCksIHN0cmVhbS0+ZGVzY3JpcHRv
cigpKTsKKyAgICBtX3N0cmVhbURlc2NyaXB0b3JzLnNldCh1cmwuc3RyaW5nKCksIHN0YXRpY19j
YXN0PE1lZGlhU3RyZWFtKj4oc3RyZWFtKS0+ZGVzY3JpcHRvcigpKTsKIH0KIAotdm9pZCBNZWRp
YVN0cmVhbVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwoY29uc3QgS1VSTCYgdXJs
KQordm9pZCBNZWRpYVN0cmVhbVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwmIHVy
bCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fc3RyZWFtRGVzY3JpcHRv
cnMucmVtb3ZlKHVybC5zdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oCmluZGV4IDFmOTI3NDUwOTVl
OTRmZTczNDIwOWFjOGNlMDM4NzI5N2IwMDhiMzAuLmU4YmU0YzFiNDkwZjkzMGIxYTEzMDRkMGIx
Y2M2YTI3M2NlYmVmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtMzcsMTQgKzM4LDE0IEBAIGNsYXNzIEtVUkw7
CiBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIAotY2xh
c3MgTWVkaWFTdHJlYW1SZWdpc3RyeSB7CitjbGFzcyBNZWRpYVN0cmVhbVJlZ2lzdHJ5IDogcHVi
bGljIFVSTFJlZ2lzdHJ5IHsKIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIGEgc2luZ2xlIGluc3Rh
bmNlIG9mIE1lZGlhU3RyZWFtUmVnaXN0cnkuCiAgICAgc3RhdGljIE1lZGlhU3RyZWFtUmVnaXN0
cnkmIHJlZ2lzdHJ5KCk7CiAKICAgICAvLyBSZWdpc3RlcnMgYSBibG9iIFVSTCByZWZlcnJpbmcg
dG8gdGhlIHNwZWNpZmllZCBzdHJlYW0gZGF0YS4KLSAgICB2b2lkIHJlZ2lzdGVyTWVkaWFTdHJl
YW1VUkwoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+KTsKLSAgICB2b2lkIHVu
cmVnaXN0ZXJNZWRpYVN0cmVhbVVSTChjb25zdCBLVVJMJik7CisgICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYsIFVSTFJlZ2lzdHJhYmxlKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJVUkwoY29uc3QgS1VSTCYpIE9W
RVJSSURFOwogCiAgICAgTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBsb29rdXBNZWRpYVN0cmVhbURl
c2NyaXB0b3IoY29uc3QgU3RyaW5nJiB1cmwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5NTlh
ZjdjZTAxZTJjYWUwOTIyZDE4ZTM2YWY3OTZjMTkzOTMzMWYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1lZGlhU3RyZWFtLmNwcApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVSTE1lZGlhU3RyZWFt
LmgiCisKKyNpbmNsdWRlICJET01VUkwuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5n
IFVSTE1lZGlhU3RyZWFtOjpjcmVhdGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWVkaWFTdHJlYW0qIHN0cmVhbSkKK3sKKyAgICAvLyBT
aW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBvYnRhaW4gU3RyZWFtIG9iamVjdHMsIHdlIHNob3VsZCBi
ZSBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAg
IGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhc3RyZWFtKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisgICAgcmV0dXJuIERPTVVSTDo6Y3JlYXRlUHVibGljVVJMKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIHN0cmVhbSk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVh
bS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZmYmFjMGJhOTdlZmUwZTU0MDg5Y2Y2MThmOWQyNmU5YmRjYTk5N2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VSTE1l
ZGlhU3RyZWFtLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVVJMTWVkaWFTdHJlYW1faAorI2Rl
ZmluZSBVUkxNZWRpYVN0cmVhbV9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgVVJMTWVkaWFTdHJlYW0geworcHVibGljOgorICAgIHN0YXRp
YyBTdHJpbmcgY3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNZWRpYVN0
cmVhbSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVkaWFTdHJlYW0uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9VUkxNZWRpYVN0cmVhbS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2I4ZWRiNWEyMTM1Zjc0OGZlMDAxOWM2NjY5NzY4YWE4OTYxYTg2YgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVVJMTWVk
aWFTdHJlYW0uaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworcGFydGlhbCBpbnRlcmZhY2UgVVJMIHsKKyAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIHN0YXRpYyBET01TdHJpbmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlhU3RyZWFtPyBzdHJl
YW0pOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDNiMDM1NTE4YTQ3ODc3MTkyYzJkMGQzNDIxMWI0N2Nk
OGY5MzQ3NTEuLjY4MjI4OGMwMGRjMzYyNGUzNjkzMTlmYWI3MmRmM2IyNjBhOTAzZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtNzAyLDYgKzcwMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvTnVtYmVy
SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAgXAogICAgIGh0
bWwvUGx1Z2luRG9jdW1lbnQuY3BwIFwKKyAgICBodG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwIFwK
ICAgICBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9SYWRpb05vZGVMaXN0LmNw
cCBcCiAgICAgaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIzNzM0YjIxZTdjOGJkNDI3
MmUyMDI0NDlmN2Q4MDRmZjE5MzRjNTAuLmM2Y2I5NjEwYWFiMTQ0OWRhOGVjOWUxN2M1MTk2MzU1
OWU1NDBmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUxOTYsMTIgKzUxOTYsMzQgQEAKIAkJQ0QyN0Y2RTUxNDU3Njg1QTAw
NzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlh
Q29udHJvbGxlci5jcHAgKi87IH07CiAJCUNEMjdGNkU3MTQ1NzcwRDMwMDc4MjA3RCAvKiBNZWRp
YUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QyN0Y2RTYxNDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5jcHAgKi87
IH07CiAJCUNEMzdCMzk4MTVDMUI5NzEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzN0Iz
NzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgKi87IH07CisJ
CUNEM0E0OTUyMTdBOUM4QzYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0OTUxMTdBOUM4QjYwMDI3
NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuaCAqLzsgfTsKKwkJQ0QzQTQ5NTQxN0E5Q0M5MDAwMjc0
RTQyIC8qIE1lZGlhU291cmNlQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1MDE3QTlDOEI2MDAyNzRFNDIgLyogTWVkaWFTb3VyY2VC
YXNlLmNwcCAqLzsgfTsKKwkJQ0QzQTQ5NUUxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0
OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi87IH07CisJCUNEM0E0OTVG
MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NTYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlh
U291cmNlLmggKi87IH07CisJCUNEM0E0OTYxMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
QTQ5NTgxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgKi87IH07CisJCUNEM0E0
OTYyMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0OTU5MTdBOUQwMUIwMDI3NEU0MiAvKiBT
b3VyY2VCdWZmZXIuaCAqLzsgfTsKKwkJQ0QzQTQ5NjQxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJj
ZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzQTQ5NUIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuY3BwICov
OyB9OworCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzQTQ5NUMxN0E5
RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCAqLzsgfTsKIAkJQ0Q0N0IzRkMxNkND
MzRGODAwQTIxRUM4IC8qIENETVByaXZhdGVBVkZvdW5kYXRpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ3QjNGQTE2Q0MzNEY4MDBBMjFFQzgg
LyogQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbSAqLzsgfTsKIAkJQ0Q0QUM1MkExNDk2QUU5QTAw
ODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgaW4gQ29weSBBdWRpbyBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENv
bXBvc2l0ZS53YXYgKi87IH07CiAJCUNENTM5M0QzMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9y
eUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgKi87IH07CiAJCUNE
NTM5M0Q0MTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAv
KiBKU01lbW9yeUluZm8uaCAqLzsgfTsKIAkJQ0Q1NERFNDcxNzQ2OEI2RjAwNUU1QjM2IC8qIEF1
ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q1NERFNDUxNzQ2OEI2RjAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1h
bmFnZXJNYWMuY3BwICovOyB9OwogCQlDRDU0REU0QjE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9T
ZXNzaW9uTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3BwICovOyB9
OworCQlDRDYxRkU2MzE3OTRBQURCMDA0MTAxRUIgLyogV2ViS2l0TWVkaWFTb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyREUxNUI1
Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFNjQx
Nzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJERjE1QjVDRTIyMDBENTI1RDEgLyog
V2ViS2l0TWVkaWFTb3VyY2UuaCAqLzsgfTsKKwkJQ0Q2MUZFNjcxNzk0QUFEQjAwNDEwMUVCIC8q
IE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjFBOTQyRTExNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVn
aXN0cnkuY3BwICovOyB9OworCQlDRDYxRkU2ODE3OTRBQURCMDA0MTAxRUIgLyogTWVkaWFTb3Vy
Y2VSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjFBOTQyRTIxNUI1Q0UyMjAwRDUyNUQxIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCAqLzsg
fTsKKwkJQ0Q2MUZFNjkxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFMzE1
QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJQ0Q2MUZF
NkExNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBOTQyRTQxNUI1Q0UyMjAwRDUyNUQx
IC8qIFdlYktpdFNvdXJjZUJ1ZmZlci5oICovOyB9OworCQlDRDYxRkU2QjE3OTRBQURCMDA0MTAx
RUIgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0
U291cmNlQnVmZmVyTGlzdC5jcHAgKi87IH07CisJCUNENjFGRTZDMTc5NEFBREIwMDQxMDFFQiAv
KiBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCMUE5NDJFNzE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5oICovOyB9OworCQlDRDYxRkU3RTE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJL
aXRNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDYxRkU3QzE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5j
cHAgKi87IH07CisJCUNENjFGRTdGMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYx
RkU3RDE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5oICovOyB9OworCQlD
RDYxRkU4NDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MUZFODAxNzk0Q0M1
OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJQ0Q2MUZFODUx
Nzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4MTE3OTRDQzU5MDA0MTAxRUIg
LyogSlNXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLzsgfTsKKwkJQ0Q2MUZFODYxNzk0Q0M1OTAwNDEw
MUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxRkU4MjE3OTRDQzU5MDA0MTAxRUIgLyogSlNX
ZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLzsgfTsKKwkJQ0Q2MUZFODcxNzk0Q0M1OTAwNDEw
MUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MUZFODMxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5oICovOyB9OwogCQlDRDdFMDUyMjE2NTFDMjgyMDBDMTIwMUYg
LyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3RTA1MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVB
VkZSZXNvdXJjZUxvYWRlci5tbSAqLzsgfTsKIAkJQ0Q4MjAzMEExMzk1QUI2QTAwRjk1NkM2IC8q
IFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzA2MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0Q4MjAzMEIxMzk1QUI2QTAwRjk1NkM2IC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDgyMDMwNzEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5tbSAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLVduby11bmRl
ZiAtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKQEAgLTUyMDksNiArNTIzMSwx
NiBAQAogCQlDRDgyMDMwRDEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuSFVE
V2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEODIwMzA5MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5I
VURXaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwogCQlDRDgyMDMxMDEzOTVBQ0U3MDBGOTU2QzYg
LyogV2ViV2luZG93QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDgyMDMwRTEzOTVBQ0U3MDBGOTU2QzYgLyogV2ViV2luZG93QW5pbWF0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0Q4MjAzMTExMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEODIwMzBGMTM5NUFDRTcw
MEY5NTZDNiAvKiBXZWJXaW5kb3dBbmltYXRpb24ubW0gKi87IH07CisJCUNEOURFMTc0MTdBQUM3
NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTcyMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlh
U291cmNlLmNwcCAqLzsgfTsKKwkJQ0Q5REUxNzUxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
OURFMTczMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggKi87IH07CisJCUNEOURF
MTdBMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3NjE3QUFDNzVCMDBFQTM4NkQg
LyogSlNTb3VyY2VCdWZmZXIuY3BwICovOyB9OworCQlDRDlERTE3QjE3QUFDNzVCMDBFQTM4NkQg
LyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEOURFMTc3MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oICov
OyB9OworCQlDRDlERTE3QzE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTc4
MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwICovOyB9OworCQlDRDlE
RTE3RDE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3OTE3QUFDNzVCMDBFQTM4
NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmggKi87IH07CisJCUNEOURFMTgxMTdBQUQ2QTQwMEVB
Mzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDlERTE3RTE3QUFENjRFMDBFQTM4NkQgLyogVVJMTWVkaWFTb3Vy
Y2UuY3BwICovOyB9OworCQlDRDlERTE4MjE3QUFENkE0MDBFQTM4NkQgLyogVVJMTWVkaWFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURF
MTdGMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5oICovOyB9OworCQlDRDlERTE4
NTE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOURFMTgzMTdBQjBDRjMwMEVBMzg2RCAv
KiBIVE1MTWVkaWFTb3VyY2UuY3BwICovOyB9OworCQlDRDlERTE4NjE3QUIwQ0YzMDBFQTM4NkQg
LyogSFRNTE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDlERTE4NDE3QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmgg
Ki87IH07CiAJCUNEQTc5ODI0MTcwQTI1ODMwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBNzk4MjMxNzBB
MjU4MzAwRDQ1QzU1IC8qIEF1ZGlvU2Vzc2lvbi5jcHAgKi87IH07CiAJCUNEQTc5ODI3MTcwQTI3
OTEwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREE3OTgyNTE3MEEyNzkwMDBENDVDNTUgLyogQXVkaW9T
ZXNzaW9uSU9TLm1tICovOyB9OwogCQlDREE3OTgyQTE3MEEzRDAwMDBENDVDNTUgLyogQXVkaW9T
ZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REE3OTgyMTE3MEEyMkRDMDBENDVDNTUgLyogQXVkaW9TZXNzaW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUyMzgsNiArNTI3MCw3IEBACiAJ
CUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyog
Q2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVs
bFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJ
Q0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAw
Qjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OworCQlDREVFMzkzNzE3OTc0MjU5
MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGlj
VVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdBQSAvKiBNZWRp
YUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREY2NUNDQTE0NUI0
NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEg
LyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UwMkYwQzQxMUU4M0FERDAwQzY2ODRBIC8qIFNjcmlw
dENvbnRyb2xsZXJCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRTAyRjBDMzExRTgzQUREMDBDNjY4NEEgLyogU2NyaXB0Q29udHJvbGxlckJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA0
NTMsMTcgKzEwNDg2LDE3IEBACiAJCUIxMEI2OTdFMTQwQzE3NDAwMEJDMUMyNiAvKiBXZWJWVFRU
b2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVlRU
VG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjEwQjY5N0YxNDBD
MTc0MDAwQkMxQzI2IC8qIFdlYlZUVFRva2VuaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJWVFRUb2tlbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQjE4Mjc0OTIxMzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FsbGJhY2tGdW5jdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkRFMTVCNUNFMjIwMEQ1MjVEMSAvKiBN
ZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkRGMTVCNUNF
MjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUE5NDJF
MDE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE1lZGlhU291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQy
REUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyREYxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1l
ZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdE1lZGlh
U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUIxQTk0MkUwMTVCNUNFMjIw
MEQ1MjVEMSAvKiBXZWJLaXRNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViS2l0TWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMUE5
NDJFMTE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjFBOTQyRTIxNUI1Q0UyMjAwRDUyNUQxIC8qIE1l
ZGlhU291cmNlUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTb3VyY2VSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUE5NDJF
MzE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU1MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZm
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIxQTk0MkU2MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VC
dWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJj
ZUJ1ZmZlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMUE5NDJFNzE1
QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUIxQTk0MkU4MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjFBOTQyRTMxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJj
ZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRT
b3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNDE1
QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYktpdFNvdXJjZUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVy
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRTb3VyY2VCdWZmZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogV2Vi
S2l0U291cmNlQnVmZmVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0U291cmNlQnVmZmVyTGlz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCMUE5NDJFODE1QjVDRTIyMDBENTI1
RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViS2l0U291cmNlQnVmZmVyTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIxQUQ0RTcxMTNBMTJBNDYwMDg0NkIyNyAvKiBUZXh0VHJhY2tMb2FkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGV4dFRyYWNrTG9hZGVyLmNwcDsgcGF0aCA9
IGxvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07
CiAJCUIxQUQ0RTcyMTNBMTJBNDYwMDg0NkIyNyAvKiBUZXh0VHJhY2tMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFRyYWNrTG9hZGVyLmg7IHBhdGggPSBsb2Fk
ZXIvVGV4dFRyYWNrTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQjFE
NUVDQjQxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE5NDAsNiArMTE5NzMsMTcgQEAKIAkJQ0QyN0Y2RTYxNDU3NzBEMzAw
NzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDM3QjM3NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5n
S2V5cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzdCMzc1MTVDMUE3RTEw
MDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEM0E0OTUwMTdBOUM4QjYwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTExN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFz
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0QzQTQ5NTUxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzQTQ5NTYxN0E5RDAxQjAwMjc0RTQyIC8qIE1l
ZGlhU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTU3MTdBOUQwMUIwMDI3NEU0
MiAvKiBNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTb3VyY2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1ODE3QTlEMDFCMDAyNzRF
NDIgLyogU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0
OTU5MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEM0E0OTVBMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNvdXJjZUJ1ZmZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEM0E0OTVCMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUJ1ZmZlckxpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIg
LyogU291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
b3VyY2VCdWZmZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEM0E0OTVE
MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBTb3VyY2VCdWZmZXJMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q0N0IzRjkxNkNDMzRGODAwQTIxRUM4IC8qIENETVByaXZhdGVBVkZvdW5kYXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5o
OyBwYXRoID0gTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlQVZGb3VuZGF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDdCM0ZBMTZDQzM0RjgwMEEyMUVDOCAv
KiBDRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbTsgcGF0aCA9IE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7
IG5hbWUgPSBDb21wb3NpdGUud2F2OyBwYXRoID0gcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzL0Nv
bXBvc2l0ZS53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTExOTUwLDYgKzEx
OTk0LDEyIEBACiAJCUNENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZW1vcnlJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRERTQ1MTc0NjhCNkYwMDVFNUIzNiAvKiBBdWRpb1Nl
c3Npb25NYW5hZ2VyTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEF1ZGlvU2Vzc2lvbk1hbmFnZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTdDMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dl
YktpdE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDYxRkU3RDE3OTRDQjI2MDA0MTAxRUIgLyogSlNXZWJLaXRNZWRpYVNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdE1lZGlhU291cmNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjFGRTgwMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktp
dFNvdXJjZUJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYktpdFNvdXJjZUJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NjFGRTgxMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdFNvdXJjZUJ1ZmZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDYxRkU4MjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViS2l0U291cmNlQnVmZmVyTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNENjFGRTgzMTc5NENDNTkwMDQxMDFFQiAvKiBKU1dlYktpdFNvdXJjZUJ1ZmZlckxp
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRTb3VyY2VCdWZm
ZXJMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEN0UwNTIwMTY1MUE4NDEw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
Q29yZUFWRlJlc291cmNlTG9hZGVyLmg7IHBhdGggPSBvYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDdFMDUyMTE2NTFBODQxMDBD
MTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tOyBwYXRoID0gb2JqYy9XZWJDb3JlQVZGUmVz
b3VyY2VMb2FkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEODIwMzA2MTM5
NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTU4LDYgKzEyMDA4LDE3IEBACiAJCUNE
ODIwMzA5MTM5NUFCNkEwMEY5NTZDNiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250
cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q4MjAzMEUxMzk1QUNFNzAwRjk1NkM2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJXaW5kb3dBbmltYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q4MjAzMEYxMzk1QUNFNzAwRjk1NkM2IC8q
IFdlYldpbmRvd0FuaW1hdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYldpbmRvd0FuaW1hdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlh
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTb3VyY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzYxN0FBQzc1QjAwRUEzODZE
IC8qIEpTU291cmNlQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU291cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5
REUxNzcxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEOURFMTc4MTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTb3VyY2VCdWZmZXJM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q5REUxNzkxN0FBQzc1QjAw
RUEzODZEIC8qIEpTU291cmNlQnVmZmVyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1NvdXJjZUJ1ZmZlckxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q5REUxN0UxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVSTE1lZGlhU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q5REUxN0YxN0FBRDY0RTAwRUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVSTE1lZGlhU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNEOURFMTgwMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVVJM
TWVkaWFTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDlERTE4MzE3
QUIwQ0YzMDBFQTM4NkQgLyogSFRNTE1lZGlhU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEOURFMTg0MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTE1lZGlhU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTc5ODIxMTcwQTIyREMwMEQ0NUM1NSAvKiBB
dWRpb1Nlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQTc5ODIyMTcwQTI0RjQwMEQ0NUM1NSAvKiBBdWRpb1Nlc3Np
b25MaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nlc3Npb25MaXN0ZW5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREE3OTgyMzE3MEEyNTgzMDBENDVDNTUgLyogQXVk
aW9TZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlv
U2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjAxNiw2ICsxMjA3
Nyw4IEBACiAJCUNERUE3NjMzMTQ2MEI0NjIwMDhCMzFGMSAvKiBDbG9jay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERUE3QzgyMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVu
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZ1bGxTY3JlZW4uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyRnVsbFNjcmVlbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
RUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREVFMzkzODE3OTc0Mjc0MDAxRDc1ODAgLyogVVJMUmVn
aXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGNjVDQzkxNDVCNDNBNzAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlcklu
dGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xs
ZXJJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQ0MxNDVC
NkFGRTAwQzRDN0FBIC8qIEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTAyRjBDMzExRTgzQUREMDBDNjY4NEEgLyog
U2NyaXB0Q29udHJvbGxlckJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0Q29udHJvbGxlckJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEz
Mjc5LDYgKzEzMzQyLDcgQEAKIAkJCQlBODNCNzkwODBDQ0FGRjJCMDAwQjA4MjUgLyogSFRNTCAq
LywKIAkJCQlBQTkzQzg1MDE3NUQ1QjIwMDBGRDNDRTMgLyogSW5kaWVVSSAqLywKIAkJCQkxQzVG
QUVDQTBEQ0ZEOEM5MDBENThGNzggLyogSW5zcGVjdG9yICovLAorCQkJCUNENjFGRTdCMTc5NENB
MDIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZSAqLywKIAkJCQkzMzUwM0M5QzEwMTc5QTlBMDAzQjQ3
RTEgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkxQUMyMjYwMjBEQjY5RUE3MDA4OUI2NjkgLyog
T2ZmbGluZSAqLywKIAkJCQlBOUQyNDdGOTBENzU3RTQxMDBGREY5NTkgLyogUGx1Z2lucyAqLywK
QEAgLTE1OTA4LDYgKzE1OTcyLDggQEAKIAkJCQlFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyog
SFRNTE1lZGlhRWxlbWVudC5jcHAgKi8sCiAJCQkJRTQ0NjEzOTMwQ0Q2MzMxMDAwRkFEQTc1IC8q
IEhUTUxNZWRpYUVsZW1lbnQuaCAqLywKIAkJCQlFNDQ2MTM5NDBDRDYzMzEwMDBGQURBNzUgLyog
SFRNTE1lZGlhRWxlbWVudC5pZGwgKi8sCisJCQkJQ0Q5REUxODMxN0FCMENGMzAwRUEzODZEIC8q
IEhUTUxNZWRpYVNvdXJjZS5jcHAgKi8sCisJCQkJQ0Q5REUxODQxN0FCMENGMzAwRUEzODZEIC8q
IEhUTUxNZWRpYVNvdXJjZS5oICovLAogCQkJCUE4RUE3OUVDMEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MTWVudUVsZW1lbnQuY3BwICovLAogCQkJCUE4RUE3OUU4MEExOTE2REYwMEE4RUY1RiAvKiBI
VE1MTWVudUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUU0MzBBMUQyNjlFMDBCNDJCMjUgLyogSFRN
TE1lbnVFbGVtZW50LmlkbCAqLywKQEAgLTE2MDcxLDYgKzE2MTM3LDcgQEAKIAkJCQlGNTVCM0Q5
NjEyNTFGMTJEMDAzRUYyNjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuaCAqLywKIAkJCQk5NzIwNUFC
OTEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJB
MTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5Eb2N1bWVudC5oICovLAorCQkJCUNERUUzOTM2MTc5
NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCAqLywKIAkJCQkxMEZCMDg0QTE0
RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oICovLAogCQkJCUY1NUIzRDk3MTI1
MUYxMkQwMDNFRjI2OSAvKiBSYWRpb0lucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTgxMjUx
RjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBlLmggKi8sCkBAIC0xNjEwNSw2ICsxNjE3Miw3
IEBACiAJCQkJQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJ
CUY1NUIzREE5MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKKwkJCQlDREVFMzkz
ODE3OTc0Mjc0MDAxRDc1ODAgLyogVVJMUmVnaXN0cnkuaCAqLywKIAkJCQlGNUExNTQyNTEyNzk1
MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLAogCQkJCUY1QTE1NDI2MTI3
OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovLAogCQkJCTE1Qzc3MDhCMTAw
RDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmNwcCAqLywKQEAgLTE3NjgyLDE3ICsxNzc1
MCwzMSBAQAogCQlCMUE5NDJERDE1QjVDRTIyMDBENTI1RDEgLyogbWVkaWFzb3VyY2UgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUIxQTk0MkRFMTVCNUNF
MjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZS5jcHAgKi8sCi0JCQkJQjFBOTQyREYxNUI1Q0UyMjAw
RDUyNUQxIC8qIE1lZGlhU291cmNlLmggKi8sCi0JCQkJQjFBOTQyRTAxNUI1Q0UyMjAwRDUyNUQx
IC8qIE1lZGlhU291cmNlLmlkbCAqLywKKwkJCQlDRDNBNDk1NTE3QTlEMDFCMDAyNzRFNDIgLyog
TWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNEM0E0OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRp
YVNvdXJjZS5oICovLAorCQkJCUNEM0E0OTU3MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJj
ZS5pZGwgKi8sCisJCQkJQ0QzQTQ5NTAxN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFz
ZS5jcHAgKi8sCisJCQkJQ0QzQTQ5NTExN0E5QzhCNjAwMjc0RTQyIC8qIE1lZGlhU291cmNlQmFz
ZS5oICovLAogCQkJCUIxQTk0MkUxMTVCNUNFMjIwMEQ1MjVEMSAvKiBNZWRpYVNvdXJjZVJlZ2lz
dHJ5LmNwcCAqLywKIAkJCQlCMUE5NDJFMjE1QjVDRTIyMDBENTI1RDEgLyogTWVkaWFTb3VyY2VS
ZWdpc3RyeS5oICovLAotCQkJCUIxQTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZm
ZXIuY3BwICovLAotCQkJCUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBTb3VyY2VCdWZmZXIu
aCAqLywKLQkJCQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyLmlkbCAq
LywKLQkJCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5jcHAg
Ki8sCi0JCQkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUyNUQxIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCAq
LywKLQkJCQlCMUE5NDJFODE1QjVDRTIyMDBENTI1RDEgLyogU291cmNlQnVmZmVyTGlzdC5pZGwg
Ki8sCisJCQkJQ0QzQTQ5NTgxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgKi8s
CisJCQkJQ0QzQTQ5NTkxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oICovLAorCQkJ
CUNEM0E0OTVBMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXIuaWRsICovLAorCQkJCUNE
M0E0OTVCMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKKwkJCQlD
RDNBNDk1QzE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oICovLAorCQkJCUNE
M0E0OTVEMTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0LmlkbCAqLywKKwkJCQlD
RDlERTE3RTE3QUFENjRFMDBFQTM4NkQgLyogVVJMTWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNE
OURFMTdGMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5oICovLAorCQkJCUNEOURF
MTgwMTdBQUQ2NEUwMEVBMzg2RCAvKiBVUkxNZWRpYVNvdXJjZS5pZGwgKi8sCisJCQkJQjFBOTQy
REUxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCAqLywKKwkJCQlCMUE5
NDJERjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaCAqLywKKwkJCQlCMUE5
NDJFMDE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0TWVkaWFTb3VyY2UuaWRsICovLAorCQkJCUIx
QTk0MkUzMTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuY3BwICovLAorCQkJ
CUIxQTk0MkU0MTVCNUNFMjIwMEQ1MjVEMSAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuaCAqLywKKwkJ
CQlCMUE5NDJFNTE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyLmlkbCAqLywK
KwkJCQlCMUE5NDJFNjE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNlQnVmZmVyTGlzdC5j
cHAgKi8sCisJCQkJQjFBOTQyRTcxNUI1Q0UyMjAwRDUyNUQxIC8qIFdlYktpdFNvdXJjZUJ1ZmZl
ckxpc3QuaCAqLywKKwkJCQlCMUE5NDJFODE1QjVDRTIyMDBENTI1RDEgLyogV2ViS2l0U291cmNl
QnVmZmVyTGlzdC5pZGwgKi8sCiAJCQkpOwogCQkJbmFtZSA9IG1lZGlhc291cmNlOwogCQkJcGF0
aCA9IE1vZHVsZXMvbWVkaWFzb3VyY2U7CkBAIC0xOTQ2NCw2ICsxOTU0NiwyNSBAQAogCQkJbmFt
ZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUNENjFGRTdCMTc5
NENBMDIwMDQxMDFFQiAvKiBNZWRpYVNvdXJjZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q5REUxNzIxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuY3BwICovLAorCQkJCUNEOURFMTczMTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291
cmNlLmggKi8sCisJCQkJQ0Q5REUxNzYxN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVy
LmNwcCAqLywKKwkJCQlDRDlERTE3NzE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIu
aCAqLywKKwkJCQlDRDlERTE3ODE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0
LmNwcCAqLywKKwkJCQlDRDlERTE3OTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXJM
aXN0LmggKi8sCisJCQkJQ0Q2MUZFODAxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNl
QnVmZmVyLmNwcCAqLywKKwkJCQlDRDYxRkU4MTE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRT
b3VyY2VCdWZmZXIuaCAqLywKKwkJCQlDRDYxRkU4MjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJL
aXRTb3VyY2VCdWZmZXJMaXN0LmNwcCAqLywKKwkJCQlDRDYxRkU4MzE3OTRDQzU5MDA0MTAxRUIg
LyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmggKi8sCisJCQkJQ0Q2MUZFN0MxNzk0Q0IyNjAw
NDEwMUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwICovLAorCQkJCUNENjFGRTdEMTc5NENC
MjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlhU291cmNlLmggKi8sCisJCQkpOworCQkJbmFtZSA9
IE1lZGlhU291cmNlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0RBOThE
QkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1lZGlhICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxMzU1LDYgKzIxNDU2LDcgQEAKIAkJCQlGRDE2
NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyogRGVub3JtYWxEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEwMEVFNzYxNTQ2RUFDMTAwQkExMUQxIC8qIERlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3QzlBQkY5MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxz
TWFya2VyQ29udHJvbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q2MUZFNjgxNzk0QUFEQjAwNDEw
MUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNDQzJCNTE0
MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUND
QzJCNTE2MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIxNDA0LDYgKzIxNTA2LDcgQEAKIAkJCQk4NUQzODlCMjBBOTkx
QTdGMDAyODIxNDUgLyogRE9NQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExOEQwQUM1
RDUzNTAwNTMyNzBGIC8qIERPTUF0dHJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5
NDZFRUYxMDdGREJBQzAwODU3MTkzIC8qIERPTUJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q2MUZFODUxNzk0Q0M1OTAwNDEwMUVCIC8qIEpTV2ViS2l0U291cmNlQnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTJEOTlFNzEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxv
Yi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUyRDk5RUExMEUyQkMzODAwNDk2MzM3IC8qIERPTUJs
b2JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwODlDRDcwQTk4QzQyODAwQTI3NUFB
IC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTU2Myw2ICsyMTY2Niw3
IEBACiAJCQkJODU5OTJFQkUwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQjgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxM
aW5rRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUVDQkVGMzBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1hcEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURF
MTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg1RTcxMUI5MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTWFwRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUxNTc5RjBDMDNCQkQzMDA4QkIwRUUgLyogRE9N
SFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUxNTZFQTBDMDNCNzQx
MDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LApAQCAtMjE1NzcsNiArMjE2ODEsNyBAQAogCQkJCTg1QkE0RDE1MEFBNjg4NjgwMDg4MDUyRCAv
KiBET01IVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFCRTBBQzVE
NTM1MDA1MzI3MEYgLyogRE9NSFRNTE9MaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUYzMkFFRTBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q5REUxODIxN0FBRDZBNDAwRUEzODZEIC8qIFVSTE1l
ZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFCRjBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTQwNzU2QjBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1NDA3NTZEMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxl
bWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTg2LDYgKzIxNjkxLDcgQEAKIAkJ
CQk4NUU3MTFDMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTFBhcmFncmFwaEVsZW1lbnRJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFQ0JFRjcwQUE3NjI2OTAwNTQ0RjBCIC8qIERP
TUhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUMyMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MUGFyYW1FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCUNENjFGRTZBMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MTgzQjQ4MEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUHJlRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQzMwQUM1RDUzNTAwNTMyNzBGIC8qIERP
TUhUTUxQcmVFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0MjI2RTk1MTE2
M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTIyNjMwLDYgKzIyNzM2LDcgQEAKIAkJCQk0MzU4RTg3RDEzNjBBMkVFMDBFNDc0OEMgLyog
SlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3OTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdGRUZsb29kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJGQTNEN0IwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVGdW5jQUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNENjFGRTdGMTc5NENCMjYwMDQxMDFFQiAvKiBKU1dlYktpdE1lZGlh
U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q3RDBBQjc1QTZGMDAwRTVBQzQgLyog
SlNTVkdGRUZ1bmNCRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEN0YwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHRkVGdW5jR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
RkEzRDgxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFRnVuY1JFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyNzYwLDYgKzIyODY3LDcgQEAKIAkJCQlCQzJDQkY0RTE0MEYxQUJEMDAzODc5
QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkUzRkFEMzkx
NDczM0Y0MDExRTQyMzA3IC8qIEpTV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkUzRkFEMzkxNDczM0Y0MDIyRTQyMzA3IC8qIEpTV2ViR0xEZWJ1Z1NoYWRlcnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTUyMTdBOUM4QzYwMDI3NEU0MiAvKiBNZWRpYVNv
dXJjZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFM0ZBRDM5MTQ3MzNGNDAwMEU0MjMwNyAv
KiBKU1dlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3Qjk5ODEwNDJE
MkQzMDAwOUQ0NDcgLyogSlNXZWJHTEZyYW1lYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyOTg5LDYgKzIzMDk3LDcgQEAKIAkJCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAw
RDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwMTQ2MjhCMTAz
Q0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkU5RTg5RkMxNkUyREMwNTAwQTkwOEY4IC8qIE9yaWdpbkxvY2suaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEOURFMTg2MTdBQjBDRjMwMEVBMzg2RCAvKiBIVE1MTWVkaWFTb3VyY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZENTgxRkFGMTUyMEY5MUYwMDNBN0E3NSAvKiBPc2NpbGxhdG9yTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1REQwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwRDU3MzcwQTVDNzdGRTAwN0VERDRDIC8qIE92
ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMyMjEsNiArMjMzMzAsNyBAQAogCQkJ
CTQzNjcwOEM5MTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdJbWFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg1NEIwMTUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lu
bGluZVRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEM0E0OTYyMTdBOUQwMUIwMDI3NEU0MiAv
KiBTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENCMTJEOUNBNEIwMDA0
NDIzNCAvKiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQURERjFB
RDcxMjU3Q0Q5QTAwMDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTIzMjcyLDYgKzIzMzgyLDcgQEAKIAkJCQk1MTRDNzY3OTBDRTkyM0ExMDA3RUYzQ0Qg
LyogUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3NjdBMENFOTIzQTEw
MDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0
Qzc2N0IwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNENjFGRTY0MTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRNZWRpYVNvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFNDE0MzQxNkE2NTk2MzAwQzYzM0M3IC8qIFJlc291
cmNlSGFuZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNGMEFEQkE1REUwMEE0
NTU0RCAvKiBSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBBM0E3MzExNDA1
QTM5ODAwRkI4RUQzIC8qIFJlc291cmNlTG9hZGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMzQwMCw2ICsyMzUxMSw3IEBACiAJCQkJNDFFMUIxRDQwRkY1OTg2OTAwNTc2QjNCIC8qIFNo
YXJlZFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTY4RTgxMDIyNkU4OTAwOUJDODI3
IC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxNjhF
QTEwMjI2RTg5MDA5QkM4MjcgLyogU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q2MUZFNkMxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdFNvdXJjZUJ1ZmZlckxp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4MzlDMTYzNzQwQTcwMDA3QjY5MiAvKiBTaGFy
ZWRXb3JrZXJTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTY4RUUxMDIyNkU4OTAw
OUJDODI3IC8qIFNoYXJlZFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RB
NjUwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmggaW4gSGVhZGVycyAqLywKQEAg
LTIzNTQ4LDcgKzIzNjYwLDkgQEAKIAkJCQkwOEQ0NkNFMzEyN0FENUZDMDA4OTY5NEIgLyogU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFGQjk2N0IxMzgzRDY0
NjAwQUM4QTRDIC8qIFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4MjNEMTU5MTI3QUQ2QUMwMDBFQkM5NSAvKiBTVkdBbmltYXRlZElu
dGVnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENjFGRTg3MTc5NENDNTkwMDQxMDFFQiAvKiBK
U1dlYktpdFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxRTYyM0QxMTUx
RjcyQTYwMDM2RTJGNCAvKiBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNEOURFMTdCMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5MDIxQTkxMjZFRjVERTAwOTJENUVBIC8qIFNWR0Fu
aW1hdGVkTGVuZ3RoLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODkwMjFBRDEyNkVGNUU5MDA5MkQ1
RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUw
NDEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4g
SGVhZGVycyAqLywKQEAgLTIzODA1LDYgKzIzOTE5LDcgQEAKIAkJCQlCQ0VGNDVFOTBFNjg3NzY3
MDAxQzEyODcgLyogVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMEZDNjhBMTA3
MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNGMTk4RjYwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURlY29kZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNEM0E0OTY1MTdBOUQwMUIwMDI3NEU0MiAvKiBTb3VyY2VCdWZmZXJMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODI0QjQ2NTBFMkVGMkVBMDA4MUE3QjcgLyogVGV4dFJ1
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNEIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRT
dHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NTlFOTQwMTRFRjFDRjgwMDI2QTJERCAvKiBU
ZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MzgsNiArMjM5NTMsNyBAQAogCQkJCTQ5
RTkxMkFFMEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNrTGlzdEJhc2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQzQwRUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zZm9y
bWF0aW9uTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjQ4NEY0RDE3MUY4MjFFMDAwNDA3
NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDRTBF
Rjg2RDQ3MDA5RDBDQUYgLyogVHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAg
LTIzOTg3LDYgKzI0MTAzLDcgQEAKIAkJCQlGNTVCM0RFMDEyNTFGMTJEMDAzRUYyNjkgLyogV2Vl
a0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNTEwQTQ0RUZDNzAwRjk5MkUw
IC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODBGNDc0MDlBMTFBQjQwMDFG
REIzNCAvKiBXaWRnZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEOURFMTc1MTdBQUM3NEMwMEVB
Mzg2RCAvKiBKU01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDExRENCMTE2NEMz
OUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5QjAyRUYw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
MjNFNTY5MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENvbnRleHQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjQ2MDUsNiArMjQ3MjIsNyBAQAogCQkJCUE4MTg3MjI1MDk3N0QzQzAwMDU4MjZE
OSAvKiBDaGlsZE5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RDgyMzhCMEFGOTJE
RjYwMDA0RjA1NyAvKiBDaHJvbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUJBRjIyMDgwQzAz
QjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNEOURFMTc0
MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yNDgyMCw2ICsyNDkzOCw3IEBACiAJCQkJODUwMzJEREMwQUE4
QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NTAzMkRERTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODUwMzJERTAwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxN0ExN0FBQzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVm
ZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1OEMzODJEMEFBOEU0MDUwMEIxODdBNCAvKiBE
T01DU1NQcmltaXRpdmVWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMyREUyMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzJERTQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0y
NDg3NCw2ICsyNDk5Myw3IEBACiAJCQkJODVERjgxOTYwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhU
TUxGcmFtZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODE5ODBBQTc3RTRCMDA0
ODZBRDcgLyogRE9NSFRNTEZyYW1lU2V0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
OTkyRUJCMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKKwkJCQlDRDNBNDk2NDE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTE4M0I0NTBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRN
TEhlYWRpbmdFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVFQ0JFRjIwQUE3NjI2OTAw
NTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTk5MkVC
RDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0yNTA2OSw2ICsyNTE4OSw3IEBACiAJCQkJODk4Nzg1NjQxMjJDQTA2NDAwM0FBQkRBIC8q
IEZpbGVTeXN0ZW1DYWxsYmFja3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2MDMwNkMwQ0M0
MzYyMzAwQzhBQzI1IC8qIEZpbGVTeXN0ZW1DRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNkMx
N0EzRjE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3RlbUlPUy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUNEM0E0OTU0MTdBOUNDOTAwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZUJhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE0QjNGNzYwQzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTYwMzAwQjBDQzQyNTEyMDBDOEFDMjUgLyogRmlsZVN5
c3RlbVBPU0lYLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2QzhEMTIyQjhBM0QwMDFGRDFG
NyAvKiBGaWxlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUzMTUsNiArMjU0MzYsNyBA
QAogCQkJCUMzQ0YxN0E2MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0
cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NkYwQjA1MzgxNDAwMkNFNjRGIC8qIElt
YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzRDI1OTc3MTNDODE2RjQwMDYwODU1OSAvKiBJ
bWFnZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDlERTE3QzE3QUFDNzVCMDBFQTM4
NkQgLyogSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTEwQjk0
MEIzODE4RDcwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZlckNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTIyOTJCMjdDMTM1NjY2OTQwMENGMTFFRiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMjc1MzU1RTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VDRy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI1NTEzLDYgKzI1NjM1LDcgQEAKIAkJCQk1MkNDQTlFMjE1RTNGNjJD
MDA1M0M3N0YgLyogSlNET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBQ0U1M0RGMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMwMDAxRkU2ODIgLyogSlNET01QYXRoLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUNENjFGRTZCMTc5NEFBREIwMDQxMDFFQiAvKiBXZWJLaXRTb3VyY2VC
dWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5RDI0N0ZFMEQ3NTdFNjkwMEZERjk1
OSAvKiBKU0RPTVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwMDBENzU3RTY5
MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2
RTY0QzBENzQ2NUU3MDA2NDQyRTkgLyogSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI1NTYzLDYgKzI1Njg2LDcgQEAKIAkJCQlGRTgwREE2MzBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwRDdBQjBF
OUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRTgwREE2NTBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDRDNBNDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODQ4MkI3NTExMTk4Q0I2QjAwQkZCMDA1IC8qIEpTSGFzaENo
YW5nZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTRFMEMyNzVDNjgwMDZCQzYx
NyAvKiBKU0hpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFN0IxOTMwRDRFODY5NjAw
NzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI1NTgyLDYg
KzI1NzA2LDcgQEAKIAkJCQk5MzkyMjYyRDEwMzIxMDdCMDA2RTdENUQgLyogSlNIVE1MQ2FudmFz
RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0NCQUQ0MDBDMThDMTQyMDBD
RTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0NCQUQz
QjBDMThCRkY4MDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRDYxRkU4NDE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEExRTcxOTAxNEUxMDFFNDAwNjI2RjlEIC8qIEpT
SFRNTENvbnRlbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1QzA0MUU2MEZGQ0E5
NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRDM1OUQ4QkUxMjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLApAQCAtMjU4OTMsNiArMjYwMTgsNyBAQAogCQkJCUIyRkEzRENBMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyRkEzRENDMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzk2
RDhEMEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQ0QzQTQ5NjExN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMkZBM0RDRTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2Vn
TGluZXRvQWJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREQwMEFCNzVBNkYwMDBFNUFD
NCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyRkEzREQyMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYxMTAsNiArMjYyMzYsNyBAQAogCQkJCUQz
NDA2MjlCMTI1M0JDOEMwMDlFNDI1OSAvKiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0
Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDY3MUE3NzE1OUJCMDcwMDAxOTc1NTkgLyog
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZF
NjcxNzk0QUFEQjAwNDEwMUVCIC8qIE1lZGlhU291cmNlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNCMTZDMTcwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTY1N0VEQTA4MTM4NUNCOTcwMDRFMDY0NSAvKiBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3RURBMEIxMzg1Q0JEODAwNEUwNjQ1
IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjYzMjgs
NiArMjY0NTUsNyBAQAogCQkJCTQzOTA0NkRCMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRo
TUxGcmFjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZERDEyREEyNUU4MDBBRjgw
QTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZERjEy
REEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0Q2MUZFNjMxNzk0QUFEQjAwNDEwMUVCIC8qIFdlYktpdE1lZGlhU291cmNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQzOTA0NkUxMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRo
TUxSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkUzMTJEQTI1RTgwMEFGODBBMiAv
KiBSZW5kZXJNYXRoTUxSb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUI3QTIwOEQyRTEyOTc5
QjRBRTE5REU2IC8qIFJlbmRlck1hdGhNTFNwYWNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY1
NzMsNiArMjY3MDEsNyBAQAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlH
ZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIy
MkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1
MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUx
ODUxN0FCMENGMzAwRUEzODZEIC8qIEhUTUxNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUUzRjlDNzBEQTA1OURDMDAyNTA5MTEgLyogU3RvcmFnZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTE2MEVFQTEwMDQ1NDNBMDBBN0NFRTIgLyogU3RvcmFnZUFyZWFJbXBsLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUM1MTAyRUQwMEZEOUVGOEMwMEZBRkYwNCAvKiBTdG9yYWdlQXJl
YVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjY5NCw2ICsyNjgyMyw3IEBACiAJCQkJQjIy
Mjc5REMwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRmxvb2RFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyMjI3OURGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNBRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlFMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVG
dW5jQkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q2MUZFN0UxNzk0Q0IyNjAwNDEw
MUVCIC8qIEpTV2ViS2l0TWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5
RTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY0dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUIyMjI3OUU4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNSRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCMjIyNzlFQjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY3NTQsNiArMjY4ODQsNyBA
QAogCQkJCTg0NzZDOUVBMTFERjZBMjkwMDU1NUIwMiAvKiBTVkdQYXRoQnVpbGRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0MTlEMkFDMTIwRDkyRkMwMDE0
MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
RDYxRkU4NjE3OTRDQzU5MDA0MTAxRUIgLyogSlNXZWJLaXRTb3VyY2VCdWZmZXJMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyMjI3QTU4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDc2QzlFRjExREY2QTU4MDA1NTVCMDIgLyog
U1ZHUGF0aFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0E4MDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjgzNyw2ICsy
Njk2OCw3IEBACiAJCQkJOTNGMTlBOUQwODI0NUU1OTAwMUU5QUJDIC8qIFRleHRSZXNvdXJjZURl
Y29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc2RENDRTExM0I0Rjk2NjAwMkVCRUZDIC8q
IFRleHRSdW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNEEwRDAwNkMxRDAwRUY2RjI2
IC8qIFRleHRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q5REUxODExN0FBRDZBNDAw
RUEzODZEIC8qIFVSTE1lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NTlFOTNG
MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc1
OUU5NDIxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzFBOUVDMjE2OEZCQzQzMDAyNjI5RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI2OTg0LDYgKzI3MTE2LDcgQEAKIAkJCQkwRkNGMzMyQzBGMkI5
QTI1MDA0QjY3OTUgLyogV2ViVGlsZWRMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTcx
NjFFMTQ5QkYyRkEwMDE2RUMxOSAvKiBXZWJUaWxlTGF5ZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlDRDgyMDMwQjEzOTVBQjZBMDBGOTU2QzYgLyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ci5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENjFGRTY5MTc5NEFBREIwMDQxMDFFQiAvKiBXZWJL
aXRTb3VyY2VCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q4MjAzMEQxMzk1QUI2QTAw
Rjk1NkM2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291
cmNlcyAqLywKIAkJCQlGMTIxNzFGNTE2QThDRUQyMDAwMDUzQ0EgLyogV2ViVlRURWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDIxQTgwMjEzRUNFNURGMDBCQjcwNjQgLyogV2ViVlRU
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjcwMDIsNiArMjcxMzUsNyBAQAogCQkJCUYz
ODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjM0NzQyRTAxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRlYnVnZ2VyQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNFMjY0MzAxNDc0ODk5MTAwNUE4NTg4IC8qIFdv
cmtlckV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RFRTM5MzcxNzk3NDI1OTAw
MUQ3NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NDgwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckdsb2JhbFNjb3BlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk3MTJBNjExMTUwMDkwQ0UwMDQ4QUYxMCAvKiBXb3JrZXJHbG9iYWxTY29wZUluZGV4
ZWREYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0Y4RTY2NTE1MUQ0QTRCMDBEMkQx
ODEgLyogV29ya2VyR2xvYmFsU2NvcGVOb3RpZmljYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggYzFkNjVjYThlZjA3YWI0MzAyMTkxYzE5OWU4NWE0
MzcyNGE1MTlkOS4uZDYyOTg2YmQwMTZlZWEyN2RhMzY2YWZhNjVmZTA0YmQ2YjMxZDU0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xNjYsNiArMTY2LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyh3ZWJraXRiZWdpbmZ1bGxzY3JlZW4pIFwKICAgICBtYWNybyh3ZWJr
aXRlbmRmdWxsc2NyZWVuKSBcCiAgICAgXAorICAgIG1hY3JvKGFkZHNvdXJjZWJ1ZmZlcikgXAor
ICAgIG1hY3JvKHJlbW92ZXNvdXJjZWJ1ZmZlcikgXAorICAgIG1hY3JvKHNvdXJjZW9wZW4pIFwK
KyAgICBtYWNybyhzb3VyY2VlbmRlZCkgXAorICAgIG1hY3JvKHNvdXJjZWNsb3NlKSBcCisgICAg
bWFjcm8odXBkYXRlKSBcCisgICAgbWFjcm8odXBkYXRlZW5kKSBcCisgICAgbWFjcm8odXBkYXRl
c3RhcnQpIFwKICAgICBtYWNybyh3ZWJraXRhZGRzb3VyY2VidWZmZXIpIFwKICAgICBtYWNybyh3
ZWJraXRyZW1vdmVzb3VyY2VidWZmZXIpIFwKICAgICBtYWNybyh3ZWJraXRzb3VyY2VvcGVuKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCmluZGV4IDZhODBhOGFjZDg1ZTgzZDlkZjIyN2Q1Mjli
YmFmZGVkMmJlYzA1YmEuLjVlMTNjOTUyYTU0NDYwMDg3MmUyZGFiZjYyY2RhYmVjYjhjZGQ5YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRQcm9jZXNzb3JOb2RlOwogICAgIGNsYXNzIExvY2Fs
TWVkaWFTdHJlYW07CiAgICAgY2xhc3MgTWVkaWFDb250cm9sbGVyOwotICAgIGNsYXNzIE1lZGlh
U291cmNlOwogICAgIGNsYXNzIE1lZGlhU3RyZWFtOwogICAgIGNsYXNzIE1lc3NhZ2VQb3J0Owog
ICAgIGNsYXNzIE5vZGU7CkBAIC02Niw3ICs2NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogICAgIGNsYXNzIFNoYXJlZFdvcmtlcjsK
ICAgICBjbGFzcyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTsKLSAgICBjbGFzcyBTb3VyY2VCdWZm
ZXJMaXN0OwogICAgIGNsYXNzIFRleHRUcmFjazsKICAgICBjbGFzcyBUZXh0VHJhY2tDdWU7CiAg
ICAgY2xhc3MgVmlkZW9UcmFja0xpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXRGYWN0b3J5LmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFj
dG9yeS5pbgppbmRleCBhZWVhOTZhNmNjMmE2MDI5ODg5NjIxYWNlY2NmOGU0ZmI3YzcwMTUxLi5k
Yjc3ZWNhMDU1NzExM2U5ZmFhNjY3NDE0ZWUyYmQ5Y2Q3YTBiZTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KQEAgLTMxLDYgKzMxLDcgQEAgUlRDRFRNRlNlbmRl
ciBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0KIFJUQ1BlZXJDb25uZWN0aW9uIGNvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTQogU2hhcmVkV29ya2VyIGNvbmRpdGlvbmFsPVNIQVJFRF9XT1JLRVJTCiBT
aGFyZWRXb3JrZXJHbG9iYWxTY29wZSBjb25kaXRpb25hbD1TSEFSRURfV09SS0VSUworU291cmNl
QnVmZmVyIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQogU291cmNlQnVmZmVyTGlzdCBjb25kaXRp
b25hbD1NRURJQV9TT1VSQ0UKIFNwZWVjaFJlY29nbml0aW9uIGNvbmRpdGlvbmFsPVNDUklQVEVE
X1NQRUVDSAogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5U
SEVTSVMKQEAgLTM5LDcgKzQwLDkgQEAgVGV4dFRyYWNrIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNL
CiBUZXh0VHJhY2tDdWUgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIFRleHRUcmFja0xpc3QgY29u
ZGl0aW9uYWw9VklERU9fVFJBQ0sKIFZpZGVvVHJhY2tMaXN0IGNvbmRpdGlvbmFsPVZJREVPX1RS
QUNLCitXZWJLaXRNZWRpYVNvdXJjZSBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UKIFdlYktpdE5h
bWVkRmxvdworV2ViS2l0U291cmNlQnVmZmVyTGlzdCBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UK
IFdlYlNvY2tldCBjb25kaXRpb25hbD1XRUJfU09DS0VUUwogV29ya2VyIGNvbmRpdGlvbmFsPVdP
UktFUlMKIFhNTEh0dHBSZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCA3NjQwZjVm
NTAzYmYyY2E5YjQ2YmQ4M2ZhODMwNGU2N2FjMmNhYTIwLi5jMDM3ODRmNDMwNmJhNmQwNmU5Mjcx
MGI3YWQzOTZhNTkyNjRmNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Js
b2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTUyLDYgKzUy
LDMzIEBAIGVudW0gU2xpY2VIaXN0b2dyYW1FbnVtIHsKIAogfSAvLyBuYW1lc3BhY2UKIAorY2xh
c3MgQmxvYlVSTFJlZ2lzdHJ5IDogcHVibGljIFVSTFJlZ2lzdHJ5IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJiwgVVJM
UmVnaXN0cmFibGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclVSTChj
b25zdCBLVVJMJikgT1ZFUlJJREU7CisKKyAgICBzdGF0aWMgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5
KCk7Cit9OworCisKK3ZvaWQgQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RlclVSTChTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCBjb25zdCBLVVJMJiBwdWJsaWNVUkwsIFVSTFJlZ2lzdHJhYmxlKiBibG9i
KQoreworICAgIEFTU0VSVCgmYmxvYi0+cmVnaXN0cnkoKSA9PSB0aGlzKTsKKyAgICBUaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwob3JpZ2luLCBwdWJsaWNVUkwsIHN0YXRp
Y19jYXN0PEJsb2IqPihibG9iKS0+dXJsKCkpOworfQorCit2b2lkIEJsb2JVUkxSZWdpc3RyeTo6
dW5yZWdpc3RlclVSTChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeTo6dW5yZWdpc3RlckJsb2JVUkwodXJsKTsKK30KKworVVJMUmVnaXN0cnkmIEJsb2JVUkxS
ZWdpc3RyeTo6cmVnaXN0cnkoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQmxvYlVSTFJl
Z2lzdHJ5LCBpbnN0YW5jZSwgKCkpOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworCiBCbG9i
OjpCbG9iKCkKICAgICA6IG1fc2l6ZSgwKQogewpAQCAtMjA2LDQgKzIzMywxMCBAQCBQYXNzUmVm
UHRyPEJsb2I+IEJsb2I6OnNsaWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29u
c3QgU3RyaW5nJiBjb250ZQogfQogI2VuZGlmCiAKK1VSTFJlZ2lzdHJ5JiBCbG9iOjpyZWdpc3Ry
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEJsb2JVUkxSZWdpc3RyeTo6cmVnaXN0cnkoKTsKK30K
KworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IGJmNGEy
ODUxZDNjNWM5MDA1ZGQ1OWIxNGQ3MmUxZjk3OTk0NTUxZTEuLjIxYjMxYjQxM2FjZjdlNDhjZjky
NWJlOTJmMWJiNTAyY2RkNjRkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBCbG9iIDogcHVibGljIFNj
cmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8QmxvYj4geworY2xhc3MgQmxvYiA6IHB1
YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVibGljIFJlZkNv
dW50ZWQ8QmxvYj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2I+IGNyZWF0
ZSgpCiAgICAgewpAQCAtNzgsNiArNzksOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNO
b3JtYWxpemVkQ29udGVudFR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgaXNO
b3JtYWxpemVkQ29udGVudFR5cGUoY29uc3QgQ1N0cmluZyYpOwogCisgICAgLy8gVVJMUmVnaXN0
cmFibGUKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0IE9WRVJSSURF
OworCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgUGFzc1JlZlB0cjxCbG9iPiBzbGljZShsb25nIGxv
bmcgc3RhcnQgPSAwLCBsb25nIGxvbmcgZW5kID0gc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGxv
bmc+OjptYXgoKSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9IFN0cmluZygpKSBjb25zdDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCmluZGV4IDM2ZTU1OWVkZjJlNDVhZDE0ODQxYTk4
NTViMmViMmMzNDc2MjNmZDguLmFlMzY5MzgyNGIzZTk1ODFmMjQxNDBiNWM4MTllMmQzZDI5N2U3
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKQEAgLTM5LDcyICszOSwyNCBAQAogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlRocmVhZGFibGVCbG9iUmVn
aXN0cnkuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCi0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSNpbmNsdWRlICJNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgIk1lZGlhU291cmNl
UmVnaXN0cnkuaCIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNsdWRl
ICJNZWRpYVN0cmVhbS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotU3Ry
aW5nIERPTVVSTDo6Y3JlYXRlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIE1lZGlhU291cmNlKiBzb3VyY2UpCi17Ci0gICAgLy8gU2luY2Ug
V2ViV29ya2VycyBjYW5ub3Qgb2J0YWluIE1lZGlhU291cmNlIG9iamVjdHMsIHdlIHNob3VsZCBi
ZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAg
IGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhc291cmNlKQotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0KLSAgICBLVVJMIHB1YmxpY1VSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VS
TChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBpZiAocHVi
bGljVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgTWVkaWFT
b3VyY2VSZWdpc3RyeTo6cmVnaXN0cnkoKS5yZWdpc3Rlck1lZGlhU291cmNlVVJMKHB1YmxpY1VS
TCwgc291cmNlKTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2Vy
KCkuc291cmNlVVJMcygpLmFkZChwdWJsaWNVUkwuc3RyaW5nKCkpOwotCi0gICAgcmV0dXJuIHB1
YmxpY1VSTC5zdHJpbmcoKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LVN0cmluZyBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBNZWRpYVN0cmVhbSogc3RyZWFtKQotewotICAgIGlmICgh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhc3RyZWFtKQotICAgICAgICByZXR1cm4gU3RyaW5n
KCk7Ci0KLSAgICBLVVJMIHB1YmxpY1VSTCA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBpZiAocHVibGljVVJM
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgLy8gU2luY2UgV2Vi
V29ya2VycyBjYW5ub3Qgb2J0YWluIFN0cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhl
IG1haW4gdGhyZWFkLgotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBNZWRpYVN0
cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnJlZ2lzdGVyTWVkaWFTdHJlYW1VUkwocHVibGljVVJM
LCBzdHJlYW0pOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIo
KS5zdHJlYW1VUkxzKCkuYWRkKHB1YmxpY1VSTC5zdHJpbmcoKSk7Ci0KLSAgICByZXR1cm4gcHVi
bGljVVJMLnN0cmluZygpOwotfQotI2VuZGlmCi0KIFN0cmluZyBET01VUkw6OmNyZWF0ZU9iamVj
dFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBCbG9i
KiBibG9iKQogewogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhYmxvYikKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBjcmVhdGVQdWJsaWNVUkwoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgYmxvYik7Cit9CiAKK1N0cmluZyBET01VUkw6OmNyZWF0ZVB1Ymxp
Y1VSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBVUkxS
ZWdpc3RyYWJsZSogcmVnaXN0cmFibGUpCit7CiAgICAgS1VSTCBwdWJsaWNVUkwgPSBCbG9iVVJM
OjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c2VjdXJpdHlPcmlnaW4o
KSk7CiAgICAgaWYgKHB1YmxpY1VSTC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIAotICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChzY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBwdWJsaWNVUkwsIGJsb2ItPnVybCgp
KTsKLSAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkuYmxvYlVS
THMoKS5hZGQocHVibGljVVJMLnN0cmluZygpKTsKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5wdWJsaWNVUkxNYW5hZ2VyKCkucmVnaXN0ZXJVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKSwgcHVibGljVVJMLCByZWdpc3RyYWJsZSk7CiAKICAgICByZXR1cm4g
cHVibGljVVJMLnN0cmluZygpOwogfQpAQCAtMTIxLDI5ICs3Myw3IEBAIHZvaWQgRE9NVVJMOjpy
ZXZva2VPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgY29uCiAjZW5kaWYKICAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAotICAgIEhhc2hTZXQ8U3RyaW5n
PiYgYmxvYlVSTHMgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCku
YmxvYlVSTHMoKTsKLSAgICBpZiAoYmxvYlVSTHMuY29udGFpbnModXJsLnN0cmluZygpKSkgewot
ICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOwot
ICAgICAgICBibG9iVVJMcy5yZW1vdmUodXJsLnN0cmluZygpKTsKLSAgICB9Ci0KLSNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQotICAgIEhhc2hTZXQ8U3RyaW5nPiYgc291cmNlVVJMcyA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5zb3VyY2VVUkxzKCk7Ci0gICAg
aWYgKHNvdXJjZVVSTHMuY29udGFpbnModXJsLnN0cmluZygpKSkgewotICAgICAgICBNZWRpYVNv
dXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLnVucmVnaXN0ZXJNZWRpYVNvdXJjZVVSTCh1cmwpOwot
ICAgICAgICBzb3VyY2VVUkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwotICAgIH0KLSNlbmRpZgot
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgSGFzaFNldDxTdHJpbmc+JiBzdHJlYW1VUkxz
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJMTWFuYWdlcigpLnN0cmVhbVVSTHMo
KTsKLSAgICBpZiAoc3RyZWFtVVJMcy5jb250YWlucyh1cmwuc3RyaW5nKCkpKSB7Ci0gICAgICAg
IC8vIEZJWE1FOiBtYWtlIHN1cmUgb2YgdGhpcyBhc3NlcnRpb24gYmVsb3cuIFJhaXNlIGEgc3Bl
YyBxdWVzdGlvbiBpZiByZXF1aXJlZC4KLSAgICAgICAgLy8gU2luY2UgV2ViV29ya2VycyBjYW5u
b3Qgb2J0YWluIFN0cmVhbSBvYmplY3RzLCB3ZSBzaG91bGQgYmUgb24gdGhlIG1haW4gdGhyZWFk
LgotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBNZWRpYVN0cmVhbVJl
Z2lzdHJ5OjpyZWdpc3RyeSgpLnVucmVnaXN0ZXJNZWRpYVN0cmVhbVVSTCh1cmwpOwotICAgICAg
ICBzdHJlYW1VUkxzLnJlbW92ZSh1cmwuc3RyaW5nKCkpOwotICAgIH0KLSNlbmRpZgorICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01VUkwuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmgKaW5kZXggODZlYTVmZjAx
MzI1ZjQyNTQxMjgyMzlhYWUwM2Q2MDAzNGY1NjA0Yi4uYjM1ODI2MzI0MDg0MjQwNmVlODU5MDhl
YzA1YTZlZWJkNDA2MDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5oCkBAIC0zNiw5ICszNiw4IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7Ci1jbGFzcyBNZWRpYVNvdXJjZTsKLWNs
YXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFVS
TFJlZ2lzdHJhYmxlOwogCiBjbGFzcyBET01VUkwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01VUkw+
IHsKIApAQCAtNTAsMTIgKzQ5LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cmluZyBjcmVh
dGVPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEJsb2IqKTsKICAgICBzdGF0aWMg
dm9pZCByZXZva2VPYmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYpOwotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc3RhdGljIFN0cmluZyBjcmVhdGVP
YmplY3RVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1lZGlhU291cmNlKik7Ci0jZW5kaWYK
LSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRlT2JqZWN0
VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNZWRpYVN0cmVhbSopOwotI2VuZGlmCisKKyAg
ICBzdGF0aWMgU3RyaW5nIGNyZWF0ZVB1YmxpY1VSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
VVJMUmVnaXN0cmFibGUqKTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01VUkwuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsCmluZGV4
IGQxMzIxYTBhYzcxMmEwYjEzNGU2YjE3NTBmOGUwMzhiMGU5NDdlNTMuLjQ2ZDQ3NDg2OTMzYjFk
ZTc3YmRlMDliYTdlMzM0NDllMWM1ZDZjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVVJMLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwKQEAgLTM0
LDEyICszNCw2IEBACiAgICAgSW50ZXJmYWNlTmFtZT1VUkwsCiAgICAgSW1wbGVtZW50YXRpb25M
YWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgRE9NVVJMIHsKLSNpZiBkZWZpbmVkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpICYmIEVOQUJMRV9NRURJQV9TT1VSQ0UKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01T
dHJpbmcgY3JlYXRlT2JqZWN0VVJMKE1lZGlhU291cmNlPyBzb3VyY2UpOwotI2VuZGlmCi0jaWYg
ZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKSAmJiBFTkFCTEVfTUVESUFfU1RSRUFNCi0gICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChNZWRpYVN0cmVhbT8gc3Ry
ZWFtKTsKLSNlbmRpZgogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LFRyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3RhdGljIERPTVN0cmluZyBjcmVhdGVPYmplY3RV
UkwoQmxvYj8gYmxvYik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0
YXRpYyB2b2lkIHJldm9rZU9iamVjdFVSTChET01TdHJpbmcgdXJsKTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzYTlhNmQ5MzJjNmY2MDI3YjNiYjI0
YjQwNWVkODRiNWZlZGFhYWY2Li5hOGNkMmRjNDYzNGM2YTUwZDU5NDM3OTZlOGY1YzRiZTg1MjAz
ODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTExOSw4
ICsxMTksNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUg
Ik1lZGlhU291cmNlLmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgorI2luY2x1
ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpAQCAtMzc4LDcgKzM3Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50
KCkKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPnJlbW92ZU1lZGlhRWxlbWVudCh0aGlzKTsK
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3Vy
Y2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xvc2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQpAQCAtODExLDcgKzgxMCw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgICAgICBzY2hlZHVsZUV2ZW50
KGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0g
ICAgc2V0U291cmNlU3RhdGUoTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSk7CisgICAgY2xv
c2VNZWRpYVNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiAhRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1Jf
VklERU8pCkBAIC0xMDk4LDExICsxMDk3LDE3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9h
ZFJlc291cmNlKGNvbnN0IEtVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50CiAg
ICAgQVNTRVJUKCFtX21lZGlhU291cmNlKTsKIAogICAgIGlmICh1cmwucHJvdG9jb2xJcyhtZWRp
YVNvdXJjZUJsb2JQcm90b2NvbCkpCi0gICAgICAgIG1fbWVkaWFTb3VyY2UgPSBNZWRpYVNvdXJj
ZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLmxvb2t1cE1lZGlhU291cmNlKHVybC5zdHJpbmcoKSk7Cisg
ICAgICAgIG1fbWVkaWFTb3VyY2UgPSBIVE1MTWVkaWFTb3VyY2U6Omxvb2t1cCh1cmwuc3RyaW5n
KCkpOwogCiAgICAgaWYgKG1fbWVkaWFTb3VyY2UpIHsKLSAgICAgICAgaWYgKCFtX3BsYXllci0+
bG9hZCh1cmwsIG1fbWVkaWFTb3VyY2UpKQorICAgICAgICBpZiAobV9tZWRpYVNvdXJjZS0+YXR0
YWNoVG9FbGVtZW50KCkpCisgICAgICAgICAgICBtX3BsYXllci0+bG9hZCh1cmwsIG1fbWVkaWFT
b3VyY2UpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZvcmdldCBvdXIgcmVmZXJl
bmNlIHRvIHRoZSBNZWRpYVNvdXJjZSwgc28gd2UgbGVhdmUgaXQgYWxvbmUKKyAgICAgICAgICAg
IC8vIHdoaWxlIHByb2Nlc3NpbmcgcmVtYWluZGVyIG9mIGxvYWQgZmFpbHVyZS4KKyAgICAgICAg
ICAgIG1fbWVkaWFTb3VyY2UgPSAwOwogICAgICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1l
ZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CisgICAgICAgIH0KICAgICB9IGVsc2UKICNlbmRpZgog
ICAgIGlmICghbV9wbGF5ZXItPmxvYWQodXJsLCBjb250ZW50VHlwZSwga2V5U3lzdGVtKSkKQEAg
LTE2MDgsNyArMTYxMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgp
CiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCk7CiAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRL
ZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAgICAgLy8gOCAt
IFNldCB0aGUgZWxlbWVudCdzIGRlbGF5aW5nLXRoZS1sb2FkLWV2ZW50IGZsYWcgdG8gZmFsc2Uu
IFRoaXMgc3RvcHMgZGVsYXlpbmcgdGhlIGxvYWQgZXZlbnQuCkBAIC0xNjM5LDcgKzE2NDQsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lRXJyb3IoUGFzc1JlZlB0cjxNZWRp
YUVycm9yPiBlcnIpCiAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCk7
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291
cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgog
CiAgICAgLy8gNCAtIFNldCB0aGUgZWxlbWVudCdzIG5ldHdvcmtTdGF0ZSBhdHRyaWJ1dGUgdG8g
dGhlIE5FVFdPUktfRU1QVFkgdmFsdWUgYW5kIHF1ZXVlIGEKQEAgLTIxOTAsNyArMjE5NSw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vlayhkb3VibGUgdGltZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICAvLyBBbHdheXMgbm90aWZ5IHRoZSBt
ZWRpYSBlbmdpbmUgb2YgYSBzZWVrIGlmIHRoZSBzb3VyY2UgaXMgbm90IGNsb3NlZC4gVGhpcyBl
bnN1cmVzIHRoYXQgdGhlIHNvdXJjZSBpcwogICAgIC8vIGFsd2F5cyBpbiBhIGZsdXNoZWQgc3Rh
dGUgd2hlbiB0aGUgJ3NlZWtpbmcnIGV2ZW50IGZpcmVzLgotICAgIGlmIChtX21lZGlhU291cmNl
ICYmIG1fbWVkaWFTb3VyY2UtPnJlYWR5U3RhdGUoKSAhPSBNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5
d29yZCgpKQorICAgIGlmIChtX21lZGlhU291cmNlICYmIG1fbWVkaWFTb3VyY2UtPmlzQ2xvc2Vk
KCkpCiAgICAgICAgIG5vU2Vla1JlcXVpcmVkID0gZmFsc2U7CiAjZW5kaWYKIApAQCAtMjU1NCwx
NCArMjU1OSwxMyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogfQog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0U291
cmNlU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xv
c2VNZWRpYVNvdXJjZSgpCiB7CiAgICAgaWYgKCFtX21lZGlhU291cmNlKQotICAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm47CiAKLSAgICBtX21lZGlhU291cmNlLT5zZXRSZWFkeVN0YXRl
KHN0YXRlKTsKLSAgICBpZiAoc3RhdGUgPT0gTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKSkK
LSAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgbV9tZWRpYVNvdXJjZS0+Y2xvc2UoKTsK
KyAgICBtX21lZGlhU291cmNlID0gMDsKIH0KICNlbmRpZgogCkBAIC0zODc0LDYgKzM4NzgsMTIg
QEAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBIVE1MTWVkaWFFbGVtZW50OjpidWZmZXJlZCgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNy
ZWF0ZSgpOworCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKyAgICBpZiAobV9tZWRpYVNvdXJj
ZSkKKyAgICAgICAgcmV0dXJuIG1fbWVkaWFTb3VyY2UtPmJ1ZmZlcmVkKCk7CisjZW5kaWYKKwog
ICAgIHJldHVybiBtX3BsYXllci0+YnVmZmVyZWQoKTsKIH0KIApAQCAtNDA5MSw3ICs0MTAxLDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2NoZWR1
bGVFdmVudChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQotICAgIHNldFNvdXJjZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOwor
ICAgIGNsb3NlTWVkaWFTb3VyY2UoKTsKICNlbmRpZgogCiAgICAgLy8gNCAtIElmIHRoZSBtZWRp
YSBlbGVtZW50J3MgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgaGFzIGEgdmFsdWUgZXF1YWwgdG8gSEFW
RV9OT1RISU5HLCBzZXQgdGhlIApAQCAtNDEzNiw3ICs0MTQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpjbGVhck1lZGlhUGxheWVyKGludCBmbGFncykKICNpZiAhRU5BQkxFKFBMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHNldFNvdXJj
ZVN0YXRlKE1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKCkpOworICAgIGNsb3NlTWVkaWFTb3Vy
Y2UoKTsKICNlbmRpZgogCiAgICAgbV9wbGF5ZXIuY2xlYXIoKTsKQEAgLTQ3ODUsNyArNDc5NSw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5ZXIoKQogCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKICAgICBpZiAobV9tZWRpYVNvdXJjZSkKLSAgICAgICAgbV9tZWRp
YVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShNZWRpYVNvdXJjZTo6Y2xvc2VkS2V5d29yZCgpKTsKKyAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+Y2xvc2UoKTsKICNlbmRpZgogCiAgICAgbV9wbGF5ZXIgPSBN
ZWRpYVBsYXllcjo6Y3JlYXRlKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCAwYzdiMTRjNTQyZTA2NzAwZjczNjFkMGEzYTQ4NzYwZWZkMmQwYWU3Li41OGNh
MTgwYTM5NWU4ZTI4MDBkZGY1ZWZmYzk2YWQ5ZDZiMjFlYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCiAvLyAgTWVkaWEgU291cmNlLgotICAgIHZvaWQgc2V0U291cmNl
U3RhdGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjbG9zZU1lZGlhU291cmNlKCk7CiAjZW5k
aWYgCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpAQCAtNjc0LDcgKzY3NCw3IEBAIHBy
aXZhdGU6CiAgICAgaW50IG1fcHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2s7CiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQotICAgIFJlZlB0cjxNZWRpYVNvdXJjZT4gbV9tZWRpYVNvdXJj
ZTsKKyAgICBSZWZQdHI8SFRNTE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOwogI2VuZGlmCiAK
ICAgICBtdXRhYmxlIGRvdWJsZSBtX2NhY2hlZFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTViYTE0MTQzMmZkYWU3OGU3YWUwYWYzMWNjOWFm
NDkwODBkZjJkMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhU291cmNlLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1VSTFJlZ2lz
dHJ5KiBIVE1MTWVkaWFTb3VyY2U6OnNfcmVnaXN0cnkgPSAwOworCit2b2lkIEhUTUxNZWRpYVNv
dXJjZTo6c2V0UmVnaXN0cnkoVVJMUmVnaXN0cnkqIHJlZ2lzdHJ5KQoreworICAgIEFTU0VSVCgh
c19yZWdpc3RyeSk7CisgICAgc19yZWdpc3RyeSA9IHJlZ2lzdHJ5OworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTIzYmY1YjQ3ZmI5ZjA4NmY0
NDk4OTg4YmE4MzgyOGRlYmNiYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFTb3VyY2UuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MTWVkaWFT
b3VyY2VfaAorI2RlZmluZSBIVE1MTWVkaWFTb3VyY2VfaAorCisjaW5jbHVkZSAiVVJMUmVnaXN0
cnkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIE1lZGlhU291cmNlUHJpdmF0ZTsKK2NsYXNzIFRpbWVSYW5nZXM7CisKK2NsYXNzIEhU
TUxNZWRpYVNvdXJjZSA6IHB1YmxpYyBVUkxSZWdpc3RyYWJsZSB7CitwdWJsaWM6CisgICAgc3Rh
dGljIHZvaWQgc2V0UmVnaXN0cnkoVVJMUmVnaXN0cnkqKTsKKyAgICBzdGF0aWMgSFRNTE1lZGlh
U291cmNlKiBsb29rdXAoY29uc3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJuIHNfcmVnaXN0cnkgPyBz
dGF0aWNfY2FzdDxIVE1MTWVkaWFTb3VyY2UqPihzX3JlZ2lzdHJ5LT5sb29rdXAodXJsKSkgOiAw
OyB9CisKKyAgICB2b2lkIHJlZigpIHsgcmVmSFRNTE1lZGlhU291cmNlKCk7IH0KKyAgICB2b2lk
IGRlcmVmKCkgeyBkZXJlZkhUTUxNZWRpYVNvdXJjZSgpOyB9CisKKyAgICAvLyBDYWxsZWQgd2hl
biBhbiBIVE1MTWVkaWFFbGVtZW50IGlzIGF0dGVtcHRpbmcgdG8gYXR0YWNoIHRvIHRoaXMgb2Jq
ZWN0LAorICAgIC8vIGFuZCBoZWxwcyBlbmZvcmNlIGF0dGFjaG1lbnQgdG8gYXQgbW9zdCBvbmUg
ZWxlbWVudCBhdCBhIHRpbWUuCisgICAgLy8gSWYgYWxyZWFkeSBhdHRhY2hlZCwgcmV0dXJucyBm
YWxzZS4gT3RoZXJ3aXNlLCBtdXN0IGJlIGluCisgICAgLy8gJ2Nsb3NlZCcgc3RhdGUsIGFuZCBy
ZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgYXR0YWNobWVudCBzdWNjZXNzLgorICAgIC8vIFJlYXR0
YWNobWVudCBhbGxvd2VkIGJ5IGZpcnN0IGNhbGxpbmcgY2xvc2UoKSAoZXZlbiBpZiBhbHJlYWR5
IGluICdjbG9zZWQnKS4KKyAgICB2aXJ0dWFsIGJvb2wgYXR0YWNoVG9FbGVtZW50KCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRlQW5kT3BlbihQYXNzT3duUHRyPE1lZGlhU291cmNl
UHJpdmF0ZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgdmlydHVh
bCBib29sIGlzQ2xvc2VkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9u
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmSFRNTE1lZGlhU291cmNlKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkZXJlZkhUTUxNZWRpYVNvdXJjZSgpID0gMDsKKworICAgIC8v
IFVSTFJlZ2lzdHJhYmxlCisgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiAqc19yZWdpc3RyeTsgfQorCitwcml2YXRlOgorICAgIHN0YXRp
YyBVUkxSZWdpc3RyeSogc19yZWdpc3RyeTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDdiMDdjMTVhYzM3Y2Ux
ZTQ0M2JmNjgzYTcyNDhmODdjYTVlYzNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9QdWJsaWNVUkxNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5IEluYy4KKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQdWJsaWNVUkxNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJLVVJMLmgi
CisjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBQdWJsaWNVUkxNYW5hZ2VyOjpyZWdp
c3RlclVSTChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBLVVJMJiB1cmwsIFVSTFJlZ2lz
dHJhYmxlKiByZWdpc3RyYWJsZSkKK3sKKyAgICBSZWdpc3RyeVVSTE1hcDo6aXRlcmF0b3IgZm91
bmQgPSBtX3JlZ2lzdHJ5VG9VUkwuYWRkKCZyZWdpc3RyYWJsZS0+cmVnaXN0cnkoKSwgVVJMU2V0
KCkpLml0ZXJhdG9yOworICAgIGZvdW5kLT5rZXktPnJlZ2lzdGVyVVJMKG9yaWdpbiwgdXJsLCBy
ZWdpc3RyYWJsZSk7CisgICAgZm91bmQtPnZhbHVlLmFkZCh1cmwuc3RyaW5nKCkpOworfQorCit2
b2lkIFB1YmxpY1VSTE1hbmFnZXI6OnJldm9rZShjb25zdCBLVVJMJiB1cmwpCit7CisgICAgZm9y
IChSZWdpc3RyeVVSTE1hcDo6aXRlcmF0b3IgaSA9IG1fcmVnaXN0cnlUb1VSTC5iZWdpbigpOyBp
ICE9IG1fcmVnaXN0cnlUb1VSTC5lbmQoKTsgKytpKSB7CisgICAgICAgIGlmIChpLT52YWx1ZS5j
b250YWlucyh1cmwuc3RyaW5nKCkpKSB7CisgICAgICAgICAgICBpLT5rZXktPnVucmVnaXN0ZXJV
UkwodXJsKTsKKyAgICAgICAgICAgIGktPnZhbHVlLnJlbW92ZSh1cmwuc3RyaW5nKCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgUHVibGljVVJMTWFu
YWdlcjo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgZm9yIChSZWdpc3RyeVVSTE1hcDo6aXRl
cmF0b3IgaSA9IG1fcmVnaXN0cnlUb1VSTC5iZWdpbigpOyBpICE9IG1fcmVnaXN0cnlUb1VSTC5l
bmQoKTsgKytpKSB7CisgICAgICAgIGZvciAoVVJMU2V0OjppdGVyYXRvciBqID0gaS0+dmFsdWUu
YmVnaW4oKTsgaiAhPSBpLT52YWx1ZS5lbmQoKTsgKytqKQorICAgICAgICAgICAgaS0+a2V5LT51
bnJlZ2lzdGVyVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAqaikpOworICAgIH0KKworICAgIG1f
cmVnaXN0cnlUb1VSTC5jbGVhcigpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1B1YmxpY1VSTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJM
TWFuYWdlci5oCmluZGV4IGUxN2U0NmE4ZDZiYWY3ZGI2Y2E0NWRmNzgyNWIwMTc4NWIyYjZkNGYu
LmYwMzhmYjViOWEyODkwMjg5ZjBkZTcwOTA0ZDZmM2YwMGRmZGM3ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUHVibGljVVJMTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUHVibGljVVJMTWFuYWdlci5oCkBAIC0yNyw2MyArMjcsMzMgQEAKICNkZWZpbmUgUHVi
bGljVVJMTWFuYWdlcl9oCiAKICNpZiBFTkFCTEUoQkxPQikKLSNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1SZWdpc3RyeS5oIgot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotI2luY2x1ZGUgIk1lZGlhU291cmNl
LmgiCi0jaW5jbHVkZSAiTWVkaWFTb3VyY2VSZWdpc3RyeS5oIgotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgS1VSTDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFVSTFJlZ2lzdHJ5OworY2xhc3MgVVJMUmVn
aXN0cmFibGU7CiAKIGNsYXNzIFB1YmxpY1VSTE1hbmFnZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFB1YmxpY1VSTE1hbmFn
ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQdWJsaWNVUkxNYW5hZ2VyKTsgfQot
ICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpCi0gICAgewotICAgICAgICBIYXNoU2V0PFN0cmlu
Zz46Oml0ZXJhdG9yIGJsb2JVUkxzRW5kID0gbV9ibG9iVVJMcy5lbmQoKTsKLSAgICAgICAgZm9y
IChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ZXIgPSBtX2Jsb2JVUkxzLmJlZ2luKCk7IGl0
ZXIgIT0gYmxvYlVSTHNFbmQ7ICsraXRlcikKLSAgICAgICAgICAgIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAqaXRlcikpOwot
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAgICAgSGFzaFNldDxTdHJpbmc+OjppdGVy
YXRvciBzdHJlYW1VUkxzRW5kID0gbV9zdHJlYW1VUkxzLmVuZCgpOwotICAgICAgICBmb3IgKEhh
c2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXRlciA9IG1fc3RyZWFtVVJMcy5iZWdpbigpOyBpdGVy
ICE9IHN0cmVhbVVSTHNFbmQ7ICsraXRlcikKLSAgICAgICAgICAgIE1lZGlhU3RyZWFtUmVnaXN0
cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU3RyZWFtVVJMKEtVUkwoUGFyc2VkVVJMU3Ry
aW5nLCAqaXRlcikpOwotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICAgICAg
SGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBzb3VyY2VVUkxzRW5kID0gbV9zb3VyY2VVUkxzLmVu
ZCgpOwotICAgICAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXRlciA9IG1fc291
cmNlVVJMcy5iZWdpbigpOyBpdGVyICE9IHNvdXJjZVVSTHNFbmQ7ICsraXRlcikKLSAgICAgICAg
ICAgIE1lZGlhU291cmNlUmVnaXN0cnk6OnJlZ2lzdHJ5KCkudW5yZWdpc3Rlck1lZGlhU291cmNl
VVJMKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAqaXRlcikpOwotI2VuZGlmCi0gICAgfQogCi0gICAg
SGFzaFNldDxTdHJpbmc+JiBibG9iVVJMcygpIHsgcmV0dXJuIG1fYmxvYlVSTHM7IH0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIEhhc2hTZXQ8U3RyaW5nPiYgc3RyZWFtVVJMcygpIHsg
cmV0dXJuIG1fc3RyZWFtVVJMczsgfQotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
LSAgICBIYXNoU2V0PFN0cmluZz4mIHNvdXJjZVVSTHMoKSB7IHJldHVybiBtX3NvdXJjZVVSTHM7
IH0KLSNlbmRpZgorICAgIHZvaWQgcmVnaXN0ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBL
VVJMJiwgVVJMUmVnaXN0cmFibGUqKTsKKyAgICB2b2lkIHJldm9rZShjb25zdCBLVVJMJik7Cisg
ICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7CiAKIHByaXZhdGU6Ci0gICAgSGFzaFNldDxTdHJp
bmc+IG1fYmxvYlVSTHM7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBIYXNoU2V0PFN0
cmluZz4gbV9zdHJlYW1VUkxzOwotI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAg
ICBIYXNoU2V0PFN0cmluZz4gbV9zb3VyY2VVUkxzOwotI2VuZGlmCisgICAgdHlwZWRlZiBIYXNo
U2V0PFN0cmluZz4gVVJMU2V0OworICAgIHR5cGVkZWYgSGFzaE1hcDxVUkxSZWdpc3RyeSosIFVS
TFNldCA+IFJlZ2lzdHJ5VVJMTWFwOworICAgIFJlZ2lzdHJ5VVJMTWFwIG1fcmVnaXN0cnlUb1VS
TDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVVJMUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMUmVnaXN0cnku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42Njg3YzljOTNmOTJkMDVhNGVmOWZkMTVmMzMzNWNjMzg1MzJiMGNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxSZWdpc3RyeS5oCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFVSTFJlZ2lzdHJ5X2gKKyNkZWZpbmUgVVJMUmVnaXN0cnlfaAor
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgS1VSTDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgVVJMUmVnaXN0cnk7
CisKK2NsYXNzIFVSTFJlZ2lzdHJhYmxlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5VUkxSZWdp
c3RyYWJsZSgpIHsgfQorICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qg
PSAwOworfTsKKworY2xhc3MgVVJMUmVnaXN0cnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHZpcnR1YWwgflVSTFJlZ2lzdHJ5KCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYsIFVSTFJlZ2lz
dHJhYmxlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IEtVUkwm
KSA9IDA7CisKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGlvbmFsIEFQSQorICAgIHZpcnR1YWwgVVJM
UmVnaXN0cmFibGUqIGxvb2t1cChjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyByZXR1cm4gMDsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
VVJMUmVnaXN0cnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IDNiMGQ2M2Y3ZTBkZWJkMDEzMGJlYzlkMDlkNzEzODRmNDYwM2Zl
NTMuLmI0OTEyMTZkZTFlNmJjZTc3ODIyMjQ1MTE1NTYwMTk0MjdiYTlkMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTQ1LDcg
KzQ1LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSNpbmNsdWRlICJN
ZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYVNvdXJjZS5oIgogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShRVCkKQEAgLTkzLDcgKzkzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAg
ICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhU291cmNl
PikgeyB9CisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxI
VE1MTWVkaWFTb3VyY2U+KSB7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxMb2Fk
KCkgeyB9CiAKQEAgLTM5NCw3ICszOTQsNyBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdAogfQog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLWJvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3Qg
S1VSTCYgdXJsLCBQYXNzUmVmUHRyPE1lZGlhU291cmNlPiBtZWRpYVNvdXJjZSkKK2Jvb2wgTWVk
aWFQbGF5ZXI6OmxvYWQoY29uc3QgS1VSTCYgdXJsLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJj
ZT4gbWVkaWFTb3VyY2UpCiB7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG1lZGlhU291cmNlOwogICAg
IG1fY29udGVudE1JTUVUeXBlID0gIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5MjczNGNhYjUwY2MzMDM0ZTRhY2UyYjMwOGQ1Zjc4
NzljYTg1Yzk4Li5jNjYzNTEzNDg4OTJiMjc1MjYzNGJiZTQ4NzM0NWYyMDczNjNlZmIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTY2
LDEwICs2NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1NvdXJjZVByb3Zp
ZGVyOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBHU3RyZWFtZXJHV29ybGQ7Ci1jbGFzcyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLWNsYXNz
IE1lZGlhU291cmNlOworY2xhc3MgSFRNTE1lZGlhU291cmNlOwogI2VuZGlmCitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsK
IAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBob2xkIGV2ZXJ5IG5hdGl2ZQpAQCAtMjc5LDcgKzI3
OSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbG9hZChjb25zdCBLVVJMJiwgY29uc3QgQ29udGVu
dFR5cGUmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKLSAgICBib29sIGxvYWQoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8TWVkaWFTb3VyY2U+KTsK
KyAgICBib29sIGxvYWQoY29uc3QgS1VSTCYsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPik7
CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIApAQCAtMjg4LDcgKzI4OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwogICAgIHZvaWQgcGxheSgpOwotICAg
IHZvaWQgcGF1c2UoKTsgICAgCisgICAgdm9pZCBwYXVzZSgpOwogCiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKICAgICAvLyBSZXByZXNlbnRzIHN5bmNocm9ub3VzIGV4Y2VwdGlvbnMgdGhh
dCBjYW4gYmUgdGhyb3duIGZyb20gdGhlIEVuY3J5cHRlZCBNZWRpYSBtZXRob2RzLgpAQCAtMzE1
LDcgKzMxNSw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgcmF0ZSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0UmF0ZShkb3VibGUpOwogCi0gICAgYm9vbCBwcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0OyAgICAK
KyAgICBib29sIHByZXNlcnZlc1BpdGNoKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQ
aXRjaChib29sKTsKIAogICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKQEAg
LTMzNCw3ICszMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNv
bnN0OwogICAgIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wgY2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKTsKIAotICAgIGJvb2wgYXV0b3BsYXkoKSBjb25zdDsgICAgCisgICAgYm9vbCBh
dXRvcGxheSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QXV0b3BsYXkoYm9vbCk7CiAKICAgICB2b2lk
IHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKQEAgLTUxMiw3ICs1MTIs
NyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIFJl
ZlB0cjxNZWRpYVNvdXJjZT4gbV9tZWRpYVNvdXJjZTsKKyAgICBSZWZQdHI8SFRNTE1lZGlhU291
cmNlPiBtX21lZGlhU291cmNlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGNiZTgwZTZj
MjdmYTdlY2RmNzE3ZjhiMzJkOTE0OTFjZGYzNmViMmQuLjQ0ODY5ZjRkYWUwZWM0Mzg0ZWMwN2M1
NjFlNjJkMmNjYjY1Yzk3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSA9IDA7CiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVy
bCwgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KSA9IDA7CiAjZW5k
aWYKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpID0gMDsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKaW5k
ZXggMmIxMDc0ZmJjZmIyZTE0Y2E2NWQyZTU5NTgzM2JlYzViZjZlNTE5NC4uMmRmZDU4YTI0MTJj
YTM3NjNhMGNmZGQ4ZWFmYzAyZjE1YTUwNTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKQEAgLTUwLDcgKzUwLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREdXJhdGlvbihkb3VibGUpID0gMDsKICAgICBlbnVtIEVuZE9mU3RyZWFtU3Rh
dHVzIHsgRW9zTm9FcnJvciwgRW9zTmV0d29ya0Vycm9yLCBFb3NEZWNvZGVFcnJvciB9OwotICAg
IHZpcnR1YWwgdm9pZCBlbmRPZlN0cmVhbShFbmRPZlN0cmVhbVN0YXR1cykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBtYXJrRW5kT2ZTdHJlYW0oRW5kT2ZTdHJlYW1TdGF0dXMpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJlYW0oKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggZDlk
NzE3ODA3ZGM0ZjQ5ODc3ZTQ5ODIwZGQzOGYxYzE1Njg1YmRmYi4uNTJmMDNmODQ3NzZhMTBiNGIy
OGZiNjkwNDcxYjA2NjZlNWZmY2E0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMTI5LDYgKzEyOSw5IEBAIHByb3RlY3Rl
ZDoKIAogICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZVByaXZhdGVJbnRlcmZhY2Ugb3ZlcnJpZGVz
LgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKTsKKyNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQorICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFBhc3NS
ZWZQdHI8SFRNTE1lZGlhU291cmNlPikgeyB9OworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbExvYWQoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvUGxheSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCBmMjI2Y2RhODc2ZTIzZjcxZWRmNTJmMmQ3MDdi
NTY1YjVkYzRlNTQzLi43MmIyMjU0MDFjMDhkNmM5YTgwZGM2ODVjNjZkNjQyYTEyNzkzYjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtOTcsNiArOTcsOSBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIAogICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCk7CisjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNzUmVm
UHRyPEhUTUxNZWRpYVNvdXJjZT4pIHsgfTsKKyNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgp
OwogICAgIHZvaWQgbG9hZEludGVybmFsKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHJl
c3VtZUxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9NSU1F
VHlwZVJlZ2lzdHJ5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBl
UmVnaXN0cnlNYWMubW0KaW5kZXggZDIyZTJiNjYxOTgxYzAwODgzN2RmYmMyYzlhNTMyNjAwNmIy
YjRiOC4uODgzNjY0MDUwM2M4ZmQ0YzExZWFkMTZiOWQ5NDU1MDYyMTgxMGQ4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL01JTUVUeXBlUmVnaXN0cnlNYWMubW0KQEAg
LTczLDQgKzczLDExIEBAIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdp
bk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK2Jvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBw
b3J0ZWRNZWRpYVNvdXJjZU1JTUVUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1
ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRiZWY4MmZhZDI0M2Y0ZTdmYmI3ODU2MDE4YzhkNzg3YTk1NzRmN2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1hZGRzb3VyY2VidWZmZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorIAorUEFTUyBU
ZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggZW1wdHkgdHlwZSAKK1BBU1MgVGVzdCBhZGRTb3Vy
Y2VCdWZmZXIoKSB3aXRoIHVuc3VwcG9ydGVkIHR5cGUgCitQQVNTIFRlc3QgYWRkU291cmNlQnVm
ZmVyKCkgd2l0aCBWb3JiaXMgYW5kIFZQOCAKK1BBU1MgVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3
aXRoIFZvcmJpcyBhbmQgVlA4IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMgCitGQUlMIFRlc3Qg
YWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0IGFzc2VydF90cnVlOiB2aWRlby9t
cDQ7Y29kZWNzPSJhdmMxLjRENDAwMSxtcDRhLjQwLjIiIGlzIHN1cHBvcnRlZCBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorRkFJTCBUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggQUFDIGFuZCBI
LjI2NCBpbiBzZXBhcmF0ZSBTb3VyY2VCdWZmZXJzIGFzc2VydF90cnVlOiB2aWRlby9tcDQ7Y29k
ZWNzPSJhdmMxLjRENDAwMSIgaXMgc3VwcG9ydGVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYWRkc291cmNlYnVmZmVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTAxMzRiZWI3YjNkNmE0YjkyOTFjNjM4NDMyY2YyYjQ2NGIzNTZiMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWFkZHNvdXJjZWJ1ZmZlci5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKworICAgICAgICA8bGluayBy
ZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwg
bWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoIkludmFsaWRBY2Nlc3NFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoIiIpOyB9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAiYWRkU291cmNlQnVmZmVyKCkgdGhyZXcgYW4gZXhjZXB0
aW9uIHdoZW4gcGFzc2VkIGFuIGVtcHR5IHN0cmluZy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBlbXB0eSB0
eXBlIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlh
RWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJOb3RTdXBwb3J0ZWRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoImludmFsaWRUeXBlIik7IH0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRTb3VyY2VCdWZmZXIoKSB0aHJldyBhbiBl
eGNlcHRpb24gZm9yIGFuIHVuc3VwcG9ydGVkIHR5cGUuIik7CisgICAgICAgICAgICAgIHRlc3Qu
ZG9uZSgpOworICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggdW5zdXBw
b3J0ZWQgdHlwZSIpOworCisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRl
c3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAg
ICB2YXIgbWltZXR5cGUgPSAndmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiJzsKKworICAg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobWltZXR5
cGUpLCBtaW1ldHlwZSArICIgaXMgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAgICAgdmFyIHNv
dXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihtaW1ldHlwZSk7CisgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlciAhPSBudWxsLCAiTmV3IFNvdXJjZUJ1
ZmZlciByZXR1cm5lZCIpOworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNl
LnNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJjZUJ1ZmZlciwgIlNvdXJjZUJ1ZmZlciBpcyBpbiBtZWRp
YVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVk
aWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVm
ZmVyIGlzIGluIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0
aCBWb3JiaXMgYW5kIFZQOCIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlv
bih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgdmFyIHZpZGVvTWltZXR5cGUgPSAndmlkZW8vd2VibTtjb2RlY3M9InZwOCInOworICAg
ICAgICAgICAgICB2YXIgYXVkaW9NaW1ldHlwZSA9ICdhdWRpby93ZWJtO2NvZGVjcz0idm9yYmlz
Iic7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9y
dGVkKHZpZGVvTWltZXR5cGUpLCB2aWRlb01pbWV0eXBlICsgIiBpcyBzdXBwb3J0ZWQiKTsKKyAg
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKGF1ZGlv
TWltZXR5cGUpLCBhdWRpb01pbWV0eXBlICsgIiBpcyBzdXBwb3J0ZWQiKTsKKworICAgICAgICAg
ICAgICB2YXIgc291cmNlQnVmZmVyQSA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcih2aWRl
b01pbWV0eXBlKTsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlckIgPSBtZWRpYVNvdXJj
ZS5hZGRTb3VyY2VCdWZmZXIoYXVkaW9NaW1ldHlwZSk7CisgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyQSwgInNvdXJj
ZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyIpOworICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sIHNvdXJj
ZUJ1ZmZlckEsICJzb3VyY2VCdWZmZXJBIGlzIGluIG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1
ZmZlcnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5zb3VyY2VC
dWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJCLCAic291cmNlQnVmZmVyQiBpcyBpbiBtZWRpYVNvdXJj
ZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3Vy
Y2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSwgc291cmNlQnVmZmVyQiwgInNvdXJjZUJ1ZmZlckIg
aXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAgICAgICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAiVGVzdCBhZGRTb3VyY2VCdWZmZXIoKSB3aXRoIFZv
cmJpcyBhbmQgVlA4IGluIHNlcGFyYXRlIFNvdXJjZUJ1ZmZlcnMiKTsKKworICAgICAgICAgIG1l
ZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkK
KyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBtaW1ldHlwZSA9ICd2aWRlby9tcDQ7Y29k
ZWNzPSJhdmMxLjRENDAwMSxtcDRhLjQwLjIiJzsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQobWltZXR5cGUpLCBtaW1ldHlwZSArICIgaXMg
c3VwcG9ydGVkIik7CisKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291
cmNlLmFkZFNvdXJjZUJ1ZmZlcihtaW1ldHlwZSk7CisgICAgICAgICAgICAgIGFzc2VydF90cnVl
KHNvdXJjZUJ1ZmZlciAhPSBudWxsLCAiTmV3IFNvdXJjZUJ1ZmZlciByZXR1cm5lZCIpOworICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMF0sIHNv
dXJjZUJ1ZmZlciwgIlNvdXJjZUJ1ZmZlciBpcyBpbiBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNl
QnVmZmVyc1swXSwgc291cmNlQnVmZmVyLCAiU291cmNlQnVmZmVyIGlzIGluIG1lZGlhU291cmNl
LmFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
ICAgICAgfSwgIlRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2l0aCBBQUMgYW5kIEguMjY0Iik7CisK
KyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwg
bWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgdmlkZW9NaW1ldHlw
ZSA9ICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRENDAwMSInOworICAgICAgICAgICAgICB2YXIg
YXVkaW9NaW1ldHlwZSA9ICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjQwLjIiJzsKKworICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQodmlkZW9NaW1l
dHlwZSksIHZpZGVvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICBh
c3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoYXVkaW9NaW1ldHlwZSksIGF1
ZGlvTWltZXR5cGUgKyAiIGlzIHN1cHBvcnRlZCIpOworCisgICAgICAgICAgICAgIHZhciBzb3Vy
Y2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKHZpZGVvTWltZXR5cGUpOwor
ICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcihhdWRpb01pbWV0eXBlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNv
dXJjZS5zb3VyY2VCdWZmZXJzWzBdLCBzb3VyY2VCdWZmZXJBLCAic291cmNlQnVmZmVyQSBpcyBp
biBtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgc291cmNlQnVmZmVyQSwgInNv
dXJjZUJ1ZmZlckEgaXMgaW4gbWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycyIpOworICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnNbMV0sIHNv
dXJjZUJ1ZmZlckIsICJzb3VyY2VCdWZmZXJCIGlzIGluIG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZl
cnMiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3Vy
Y2VCdWZmZXJzWzFdLCBzb3VyY2VCdWZmZXJCLCAic291cmNlQnVmZmVyQiBpcyBpbiBtZWRpYVNv
dXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgIH0sICJUZXN0IGFkZFNvdXJjZUJ1ZmZlcigpIHdpdGggQUFDIGFuZCBILjI2NCBp
biBzZXBhcmF0ZSBTb3VyY2VCdWZmZXJzIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1
ZmZlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzY2VlNjJjMTkzZmM4ZTQ4YzIzZWFkODIx
MGYyZDIyN2Y1YmE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIo
KSBldmVudCBkaXNwYXRjaGluZy4gCitQQVNTIFRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZl
cigpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4gCitQQVNTIFRlc3QgU291
cmNlQnVmZmVyLmFib3J0KCkgY2FsbCBkdXJpbmcgYSBwZW5kaW5nIGFwcGVuZEJ1ZmZlcigpLiAK
K1BBU1MgVGVzdCBTb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKCkgdHJpZ2dlcmluZyBhbiAnZW5k
ZWQnIHRvICdvcGVuJyB0cmFuc2l0aW9uLiAKK1BBU1MgVGVzdCBNZWRpYVNvdXJjZS5yZW1vdmVT
b3VyY2VCdWZmZXIoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVmZmVyKCkuIAorUEFT
UyBUZXN0IGFwcGVuZGluZyBhbiBlbXB0eSBBcnJheUJ1ZmZlclZpZXcuIAorUEFTUyBUZXN0IGFw
cGVuZGluZyBhbiBlbXB0eSBBcnJheUJ1ZmZlci4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFwcGVuZC1idWZmZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWFwcGVuZC1idWZmZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjg1YjQwN2I3N2Q5OWY1Mjc3NzY5
MDNlNTg2ZTZmYTBiMzMyMDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci5odG1sCkBA
IC0wLDAgKzEsMTk5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgbWVkaWFz
b3VyY2VfbG9hZGRhdGFfdGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBkZXNjcmlwdGlvbikKKyAg
ICAgICAgICB7CisgICAgICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwg
bWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgdmFyIG1lZGlhVHlwZSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInOwor
ICAgICAgICAgICAgICAgICAgdmFyIG1lZGlhVVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEt
c291cmNlL3dlYm0vdGVzdC53ZWJtJzsKKyAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZm
ZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobWVkaWFUeXBlKTsKKyAgICAgICAgICAg
ICAgICAgIE1lZGlhU291cmNlVXRpbC5sb2FkQmluYXJ5RGF0YSh0ZXN0LCBtZWRpYVVSTCwgZnVu
Y3Rpb24obWVkaWFEYXRhKQorICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZl
ciwgbWVkaWFEYXRhKTsKKworICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIH0s
IGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICB9OworCisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9h
ZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3Vy
Y2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZmFp
bE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKworICAgICAgICAgICAgICB0ZXN0LmV4
cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIp
OworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIs
ICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3Vy
Y2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIpOworICAgICAgICAgICAgICBz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlhRGF0YSk7CisKKyAgICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRy
dWUiKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlv
bigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJj
ZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAg
ICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwg
IlRlc3QgU291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcigpIGV2ZW50IGRpc3BhdGNoaW5nLiIpOwor
CisgICAgICAgICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRp
YUVsZW1lbnQsIG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3In
KTsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0
ZXN0YXJ0IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAg
ICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5k
IGVuZGVkLiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG1lZGlh
RGF0YSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5n
LCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5jdGlvbigp
IHsgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOyB9LAorICAgICAgICAgICAg
ICAgICAgImFwcGVuZEJ1ZmZlcigpIHRocm93cyBhbiBleGNlcHRpb24gdGhlcmUgaXMgYSBwZW5k
aW5nIGFwcGVuZC4iKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIu
dXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAg
IHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVw
ZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IFNvdXJjZUJ1ZmZlci5h
cHBlbmRCdWZmZXIoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVmZmVyKCkuIik7CisK
KyAgICAgICAgICBtZWRpYXNvdXJjZV9sb2FkZGF0YV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlh
RWxlbWVudCwgbWVkaWFTb3VyY2UsIHNvdXJjZUJ1ZmZlciwgbWVkaWFEYXRhKQorICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicp
OworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRl
c3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZl
bnQoc291cmNlQnVmZmVyLCAiYWJvcnQiLCAiQXBwZW5kIGFib3J0ZWQuIik7CisgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBl
bmRlZC4iKTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURh
dGEpOworCisgICAgICAgICAgICAgIGFzc2VydF90cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywg
InVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7CisKKyAgICAgICAgICAgICAgc291cmNlQnVm
ZmVyLmFib3J0KCk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51
cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworCisgICAgICAgICAgICAg
IHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVw
ZGF0aW5nIGF0dHJpYnV0ZSBpcyBmYWxzZSIpOworICAgICAgICAgICAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IFNvdXJjZUJ1ZmZlci5h
Ym9ydCgpIGNhbGwgZHVyaW5nIGEgcGVuZGluZyBhcHBlbmRCdWZmZXIoKS4iKTsKKworICAgICAg
ICAgIG1lZGlhc291cmNlX2xvYWRkYXRhX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50
LCBtZWRpYVNvdXJjZSwgc291cmNlQnVmZmVyLCBtZWRpYURhdGEpCisgICAgICAgICAgeworICAg
ICAgICAgICAgICB0ZXN0LmZhaWxPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2Vycm9yJyk7CisKKyAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIs
ICJBcHBlbmQgc3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3Vy
Y2VCdWZmZXIsICJ1cGRhdGUiLCAiQXBwZW5kIHN1Y2Nlc3MuIik7CisgICAgICAgICAgICAgIHRl
c3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIiwgIkFwcGVuZCBlbmRlZC4i
KTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOwor
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGlu
ZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVj
dGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2ZhbHNlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBp
cyBmYWxzZSIpOworCisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291
cmNlLCAic291cmNlZW5kZWQiLCAiTWVkaWFTb3VyY2Ugc291cmNlZW5kZWQgZXZlbnQiKTsKKyAg
ICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJlbmRlZCIsICJNZWRp
YVNvdXJjZSByZWFkeVN0YXRlIGlzICdlbmRlZCciKTsKKyAgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJl
YWR5U3RhdGUsICJlbmRlZCIsICJNZWRpYVNvdXJjZSByZWFkeVN0YXRlIGlzICdlbmRlZCciKTsK
KworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZSwgInNvdXJj
ZW9wZW4iLCAiTWVkaWFTb3VyY2Ugc291cmNlb3BlbiBldmVudCIpOworICAgICAgICAgICAgICAg
ICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIsICJBcHBlbmQg
c3RhcnRlZC4iKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVm
ZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNjZXNzLiIpOworICAgICAgICAgICAgICAgICAgdGVz
dC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVkLiIp
OworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEp
OworCisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3Rh
dGUsICJvcGVuIiwgIk1lZGlhU291cmNlIHJlYWR5U3RhdGUgaXMgJ29wZW4nIik7CisgICAgICAg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBh
dHRyaWJ1dGUgaXMgdHJ1ZSIpOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0
ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgIm9w
ZW4iLCAiTWVkaWFTb3VyY2UgcmVhZHlTdGF0ZSBpcyAnb3BlbiciKTsKKyAgICAgICAgICAgICAg
ICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1
dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBTb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKCkg
dHJpZ2dlcmluZyBhbiAnZW5kZWQnIHRvICdvcGVuJyB0cmFuc2l0aW9uLiIpOworCisgICAgICAg
ICAgbWVkaWFzb3VyY2VfbG9hZGRhdGFfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQs
IG1lZGlhU291cmNlLCBzb3VyY2VCdWZmZXIsIG1lZGlhRGF0YSkKKyAgICAgICAgICB7CisgICAg
ICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsKKworICAg
ICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0Iiwg
IkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJj
ZUJ1ZmZlciwgImFib3J0IiwgIkFwcGVuZCBhYm9ydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0
LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7
CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobWVkaWFEYXRhKTsKKwor
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGlu
ZyBhdHRyaWJ1dGUgaXMgdHJ1ZSIpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQo
bWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJh
Y3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVk
aWFTb3VyY2Uuc291cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZm
ZXJzIik7CisgICAgICAgICAgICAgIG1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZlcihzb3Vy
Y2VCdWZmZXIpOworCisgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBk
YXRpbmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKworICAgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5j
dGlvbigpIHsgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihtZWRpYURhdGEpOyB9LAorICAgICAg
ICAgICAgICAgICAgImFwcGVuZEJ1ZmZlcigpIHRocm93cyBhbiBleGNlcHRpb24gYmVjYXVzZSBp
dCBpc24ndCBhdHRhY2hlZCB0byB0aGUgbWVkaWFTb3VyY2UgYW55bW9yZS4iKTsKKworICAgICAg
ICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRp
bmcsICJ1cGRhdGluZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRl
c3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBNZWRpYVNv
dXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIoKSBjYWxsIGR1cmluZyBhIHBlbmRpbmcgYXBwZW5kQnVm
ZmVyKCkuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1l
ZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIg
c291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRp
bC5WSURFT19PTkxZX1RZUEUpOworCisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291
cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQiLCAiQXBwZW5kIHN0YXJ0ZWQuIik7CisgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlIiwgIkFwcGVuZCBzdWNj
ZXNzLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVw
ZGF0ZWVuZCIsICJBcHBlbmQgZW5kZWQuIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5h
cHBlbmRCdWZmZXIobmV3IFVpbnQ4QXJyYXkoMCkpOworCisgICAgICAgICAgICAgIGFzc2VydF90
cnVlKHNvdXJjZUJ1ZmZlci51cGRhdGluZywgInVwZGF0aW5nIGF0dHJpYnV0ZSBpcyB0cnVlIik7
CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQor
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2Uoc291cmNlQnVm
ZmVyLnVwZGF0aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIGZhbHNlIik7CisgICAgICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgIlRl
c3QgYXBwZW5kaW5nIGFuIGVtcHR5IEFycmF5QnVmZmVyVmlldy4iKTsKKworCisgICAgICAgICAg
bWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNl
KQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291
cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0aWwuVklERU9fT05MWV9UWVBFKTsKKwor
ICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0
IiwgIkFwcGVuZCBzdGFydGVkLiIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNv
dXJjZUJ1ZmZlciwgInVwZGF0ZSIsICJBcHBlbmQgc3VjY2Vzcy4iKTsKKyAgICAgICAgICAgICAg
dGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVlbmQiLCAiQXBwZW5kIGVuZGVk
LiIpOworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG5ldyBBcnJheUJ1
ZmZlcigwKSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0
aW5nLCAidXBkYXRpbmcgYXR0cmlidXRlIGlzIHRydWUiKTsKKworICAgICAgICAgICAgICB0ZXN0
LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIGFzc2VydF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGlu
ZyBhdHRyaWJ1dGUgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOwor
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9LCAiVGVzdCBhcHBlbmRpbmcgYW4gZW1wdHkg
QXJyYXlCdWZmZXIuIik7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtYnVmZmVyZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA1OWI1NDExZGU5NGU5Yzg3ODQxNmU4NzMxMzNjM2JhYjJmNTU5NjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1idWZmZXJlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisgCitQQVNT
IERlbXV4ZWQgY29udGVudCB3aXRoIGRpZmZlcmVudCBsZW5ndGhzIAorUEFTUyBNdXhlZCB0cmFj
a3Mgd2l0aCBkaWZmZXJlbnQgbGVuZ3RocyAKK1BBU1MgRGVtdXhlZCBjb250ZW50IHdpdGggYW4g
ZW1wdHkgYnVmZmVyZWQgcmFuZ2Ugb24gb25lIFNvdXJjZUJ1ZmZlciAKK1BBU1MgTXV4ZWQgY29u
dGVudCBlbXB0eSBidWZmZXJlZCByYW5nZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVm
ZmVyZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzI4MzhhMDY0N2IxOTNiYjFkMmU0YmNhNjc3Zjc4OGJj
YjIzZTEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYnVmZmVyZWQuaHRtbApAQCAtMCwwICsxLDE2MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gbWVkaWFTb3VyY2VE
ZW11eGVkVGVzdChjYWxsYmFjaywgZGVzY3JpcHRpb24pCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdmFyIG1hbmlmZXN0RmlsZW5hbWVBID0gIndlYm0vdGVzdC1hLTEyOGstNDQxMDBI
ei0xY2gtbWFuaWZlc3QuanNvbiI7CisgICAgICAgICAgICAgICAgdmFyIG1hbmlmZXN0RmlsZW5h
bWVCID0gIndlYm0vdGVzdC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29u
IjsKKyAgICAgICAgICAgICAgICBtZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlh
RWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICBtZWRpYUVsZW1lbnQucGF1c2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5mYWls
T25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICAgICAgICAgICAgICB0ZXN0
LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsKKworICAgICAgICAgICAgICAgICAg
ICBNZWRpYVNvdXJjZVV0aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEodGVzdCwgbWFuaWZlc3RGaWxl
bmFtZUEsIGZ1bmN0aW9uKHR5cGVBLCBkYXRhQSkKKyAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRh
KHRlc3QsIG1hbmlmZXN0RmlsZW5hbWVCLCBmdW5jdGlvbih0eXBlQiwgZGF0YUIpCisgICAgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKHR5cGVBKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIodHlwZUIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycy5sZW5n
dGgsIDIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sodGVzdCwgbWVk
aWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgZGF0YUEsIGRhdGFCKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9LCBk
ZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBmdW5jdGlvbiBhcHBl
bmREYXRhKHRlc3QsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIsIGNhbGxiYWNrKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2Uu
YWN0aXZlU291cmNlQnVmZmVyc1swXTsKKyAgICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVy
QiA9IG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV07CisKKyAgICAgICAgICAgICAg
ICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckEsICJ1cGRhdGUiKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckEsICJ1cGRhdGVlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzb3VyY2VCdWZmZXJBLmFwcGVuZEJ1ZmZlcihkYXRhQSk7CisKKyAgICAgICAg
ICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckIsICJ1cGRhdGUiKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlckIsICJ1cGRhdGVlbmQiKTsK
KyAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXJCLmFwcGVuZEJ1ZmZlcihkYXRhQik7CisKKyAg
ICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdGltZVJh
bmdlc1RvU3RyaW5nKHJhbmdlcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIHZhciBz
ID0gInsiOworICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICBzICs9ICIgWyIgKyByYW5nZXMuc3RhcnQoaSku
dG9GaXhlZCgzKSArICIsICIgKyByYW5nZXMuZW5kKGkpLnRvRml4ZWQoMykgKyAiKSI7CisgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICByZXR1cm4gcyArICIgfSI7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG9iaiwgZXhw
ZWN0ZWQsIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBh
Y3R1YWwgPSB0aW1lUmFuZ2VzVG9TdHJpbmcob2JqLmJ1ZmZlcmVkKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgbWVkaWFTb3VyY2VEZW11eGVkVGVzdChmdW5jdGlvbih0ZXN0
LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIpIHsKKyAgICAgICAgICAg
ICAgICBhcHBlbmREYXRhKHRlc3QsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIsIGZ1bmN0aW9u
KCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVk
RXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IFswLjAwMCwgMi4w
MjMpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VC
dWZmZXJzWzFdLCAieyBbMC4wMDAsIDIuMDAxKSB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJj
ZUJ1ZmZlcnNbMV0iKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMo
bWVkaWFFbGVtZW50LCAieyBbMC4wMDAsIDIuMDAxKSB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJl
ZCIpOworCisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZl
cmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IFswLjAwMCwg
Mi4wMDEpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IFswLjAw
MCwgMi4wMjMpIH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAi
RGVtdXhlZCBjb250ZW50IHdpdGggZGlmZmVyZW50IGxlbmd0aHMiKTsKKworICAgICAgICAgICAg
bWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNl
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5wYXVzZSgpOwor
ICAgICAgICAgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZXJyb3InKTsK
KyAgICAgICAgICAgICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFFbGVtZW50LCAnZW5kZWQnKTsK
KworICAgICAgICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0YSh0
ZXN0LCAid2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1t
YW5pZmVzdC5qc29uIiwgZnVuY3Rpb24odHlwZSwgZGF0YSkKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3Vy
Y2VCdWZmZXIodHlwZSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291
cmNlQnVmZmVyLCAidXBkYXRlIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZl
bnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIik7CisgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZGF0YSk7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdC53
YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyBbMC4wMDAsIDIuMDA0KSB9IiwgIm1lZGlhU291cmNl
LmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dEJ1ZmZlcmVkRXF1YWxzKG1lZGlhRWxlbWVudCwgInsgWzAuMDAwLCAyLjAwNCkgfSIsICJtZWRp
YUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFTb3Vy
Y2UuZW5kT2ZTdHJlYW0oKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVy
ZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAy
LjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IFsw
LjAwMCwgMi4wMjMpIH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZlcmVkIik7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJNdXhlZCB0cmFja3Mgd2l0aCBkaWZmZXJl
bnQgbGVuZ3RocyIpOworCisKKyAgICAgICAgICAgIG1lZGlhU291cmNlRGVtdXhlZFRlc3QoZnVu
Y3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSwgZGF0YUEsIGRhdGFCKSB7Cisg
ICAgICAgICAgICAgICAgYXBwZW5kRGF0YSh0ZXN0LCBtZWRpYVNvdXJjZSwgZGF0YUEsIGRhdGFC
LnN1YmFycmF5KDAsIDMxOCksIGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJj
ZUJ1ZmZlcnNbMF0sICJ7IFswLjAwMCwgMi4wMjMpIH0iLCAibWVkaWFTb3VyY2UuYWN0aXZlU291
cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFs
cyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzFdLCAieyB9IiwgIm1lZGlhU291cmNl
LmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0iKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVm
ZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIp
OworCisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVmZmVyZWRFcXVhbHMobWVkaWFTb3VyY2UuYWN0aXZl
U291cmNlQnVmZmVyc1swXSwgInsgWzAuMDAwLCAyLjAyMykgfSIsICJtZWRpYVNvdXJjZS5hY3Rp
dmVTb3VyY2VCdWZmZXJzWzBdIik7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVk
RXF1YWxzKG1lZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMV0sICJ7IH0iLCAibWVkaWFT
b3VyY2UuYWN0aXZlU291cmNlQnVmZmVyc1sxXSIpOworICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRCdWZmZXJlZEVxdWFscyhtZWRpYUVsZW1lbnQsICJ7IH0iLCAibWVkaWFFbGVtZW50LmJ1ZmZl
cmVkIik7CisKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9LCAiRGVtdXhlZCBjb250ZW50IHdpdGggYW4gZW1wdHkgYnVm
ZmVyZWQgcmFuZ2Ugb24gb25lIFNvdXJjZUJ1ZmZlciIpOworCisgICAgICAgICAgICBtZWRpYXNv
dXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBhdXNlKCk7CisgICAgICAg
ICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRpYUVsZW1lbnQsICdlcnJvcicpOworICAgICAg
ICAgICAgICAgIHRlc3QuZW5kT25FdmVudChtZWRpYUVsZW1lbnQsICdlbmRlZCcpOworCisgICAg
ICAgICAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3QsICJ3
ZWJtL3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24iLCBmdW5jdGlvbih0eXBlLCBkYXRhKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZl
cih0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZm
ZXIsICJ1cGRhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3Vy
Y2VCdWZmZXIsICJ1cGRhdGVlbmQiKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVy
LmFwcGVuZEJ1ZmZlcihkYXRhLnN1YmFycmF5KDAsIDQwNTIpKTsKKworICAgICAgICAgICAgICAg
ICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG1l
ZGlhU291cmNlLmFjdGl2ZVNvdXJjZUJ1ZmZlcnNbMF0sICJ7IH0iLCAibWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVyc1swXSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0QnVm
ZmVyZWRFcXVhbHMobWVkaWFFbGVtZW50LCAieyB9IiwgIm1lZGlhRWxlbWVudC5idWZmZXJlZCIp
OworCisgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5lbmRPZlN0cmVhbSgpOwor
CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRCdWZmZXJlZEVxdWFscyhtZWRpYVNvdXJj
ZS5hY3RpdmVTb3VyY2VCdWZmZXJzWzBdLCAieyB9IiwgIm1lZGlhU291cmNlLmFjdGl2ZVNvdXJj
ZUJ1ZmZlcnNbMF0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1
YWxzKG1lZGlhRWxlbWVudCwgInsgfSIsICJtZWRpYUVsZW1lbnQuYnVmZmVyZWQiKTsKKworICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgIk11eGVkIGNvbnRlbnQgZW1w
dHkgYnVmZmVyZWQgcmFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1jbG9zZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jODVjZTFiZDkzODc3ZDU3OWYzNDJjZTczNzIxYmNhZGMyM2QyZWQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY2xvc2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKyAKK1BBU1Mg
VGVzdCBhdHRyaWJ1dGUgdmFsdWVzIG9uIGEgY2xvc2VkIE1lZGlhU291cmNlIG9iamVjdC4gCitQ
QVNTIFRlc3QgYWRkU291cmNlQnVmZmVyKCkgd2hpbGUgY2xvc2VkLiAKK1BBU1MgVGVzdCByZW1v
dmVTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9zZWQuIAorUEFTUyBUZXN0IGVuZE9mU3RyZWFtKCkg
d2hpbGUgY2xvc2VkLiAKK1BBU1MgVGVzdCBzZXR0aW5nIGR1cmF0aW9uIHdoaWxlIGNsb3NlZC4g
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNsb3NlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY2xvc2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMzFkZmQ0
MDc1MWFjZjA1MTYzZDliZTZkZDQ3ZjhlNjljZWIxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNsb3NlZC5o
dG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGls
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAg
ICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICB0
ZXN0KGZ1bmN0aW9uICgpCisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgbWVkaWFTb3Vy
Y2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRp
YVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgInNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHki
KTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VC
dWZmZXJzLmxlbmd0aCwgMCwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMgaXMgZW1wdHkiKTsKKyAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAiY2xvc2VkIiwg
InJlYWR5U3RhdGUgaXMgJ2Nsb3NlZCciKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoTnVt
YmVyLmlzTmFOKG1lZGlhU291cmNlLmR1cmF0aW9uKSwgImR1cmF0aW9uIGlzIE5hTiIpOworICAg
ICAgICAgIH0sICJUZXN0IGF0dHJpYnV0ZSB2YWx1ZXMgb24gYSBjbG9zZWQgTWVkaWFTb3VyY2Ug
b2JqZWN0LiIpOworCisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoJ3ZpZGVvL3dlYm07
Y29kZWNzPSJ2cDgiJyk7IH0sCisgICAgICAgICAgICAgICAgICAiYWRkU291cmNlQnVmZmVyKCkg
dGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGNsb3NlZC4iKTsKKyAgICAgICAgICB9LCAiVGVzdCBh
ZGRTb3VyY2VCdWZmZXIoKSB3aGlsZSBjbG9zZWQuIik7CisKKyAgICAgICAgICBtZWRpYXNvdXJj
ZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2UpCisgICAgICAg
ICAgeworICAgICAgICAgICAgICB2YXIgVk9SQklTX1RZUEUgPSAndmlkZW8vd2VibTtjb2RlY3M9
InZvcmJpcyInOworICAgICAgICAgICAgICB2YXIgQUFDX1RZUEUgPSAndmlkZW8vbXA0O2NvZGVj
cz0ibXA0YS40MC4yIic7CisgICAgICAgICAgICAgIHZhciBtZWRpYVR5cGUgPSBNZWRpYVNvdXJj
ZS5pc1R5cGVTdXBwb3J0ZWQoVk9SQklTX1RZUEUpID8gVk9SQklTX1RZUEUgOiBBQUNfVFlQRTsK
KyAgICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcihtZWRpYVR5cGUpOworCisgICAgICAgICAgICAgIC8vIFNldHVwIGEgaGFuZGxlciB0byBy
dW4gd2hlbiB0aGUgTWVkaWFTb3VyY2UgY2xvc2VzLgorICAgICAgICAgICAgICBtZWRpYVNvdXJj
ZS5hZGRFdmVudExpc3RlbmVyKCdzb3VyY2VjbG9zZScsIHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9u
IChldmVudCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCwgMCwgInNvdXJjZUJ1ZmZlcnMgaXMg
ZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVycy5sZW5ndGgsIDAsICJhY3RpdmVTb3VyY2VCdWZmZXJzIGlzIGVtcHR5
Iik7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3Rh
dGUsICJjbG9zZWQiLCAicmVhZHlTdGF0ZSBpcyAnY2xvc2VkJyIpOworICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3Rocm93cygiTm90Rm91bmRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAg
ZnVuY3Rpb24oKSB7IG1lZGlhU291cmNlLnJlbW92ZVNvdXJjZUJ1ZmZlcihzb3VyY2VCdWZmZXIp
OyB9LAorICAgICAgICAgICAgICAgICAgICAgICJyZW1vdmVTb3VyY2VCdWZmZXIoKSB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHdoZW4gY2xvc2VkLiIpOworICAgICAgICAgICAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgICAgICAgICAgIH0pKTsKKworICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBN
ZWRpYVNvdXJjZSB0byBjbG9zZS4KKyAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9ICIi
OworICAgICAgICAgIH0sICJUZXN0IHJlbW92ZVNvdXJjZUJ1ZmZlcigpIHdoaWxlIGNsb3NlZC4i
KTsKKworICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAg
ICAgIHZhciBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5j
dGlvbigpIHsgbWVkaWFTb3VyY2UuZW5kT2ZTdHJlYW0oKTsgfSwKKyAgICAgICAgICAgICAgICAg
ICJlbmRPZlN0cmVhbSgpIHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBjbG9zZWQuIik7CisgICAg
ICAgICAgfSwgIlRlc3QgZW5kT2ZTdHJlYW0oKSB3aGlsZSBjbG9zZWQuIik7CisKKworICAgICAg
ICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBtZWRp
YVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJJbnZhbGlkU3RhdGVFcnJvciIsCisgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbWVk
aWFTb3VyY2UuZHVyYXRpb24gPSAxMDsgfSwKKyAgICAgICAgICAgICAgICAgICJTZXR0aW5nIGR1
cmF0aW9uIHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBjbG9zZWQuIik7CisgICAgICAgICAgfSwg
IlRlc3Qgc2V0dGluZyBkdXJhdGlvbiB3aGlsZSBjbG9zZWQuIik7CisKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYS1i
aXRyYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTJkZWYwM2RlYzZlZDcwZGY3ZDJlOWNlODcwNWFkMjlkYzBlNTY5NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCBhdWRpby1vbmx5IGJpdHJhdGUgY2hh
bmdlcy4gYXNzZXJ0X3RydWU6IGF1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiIgaXMgc3VwcG9y
dGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1w
NC1hLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWEtYml0cmF0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2NDBhNjQ4ODI5ZDA2NDlhNmY1MjA1YWY1ZGNhODgxYzYzNzE3ZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC1hLWJpdHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZp
Z0NoYW5nZVRlc3QoIm1wNCIsICJhLTEyOGstNDQxMDBIei0xY2giLCAiYS0xOTJrLTQ0MTAwSHot
MWNoIiwgIlRlc3RzIG1wNCBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1t
cDQtYXYtYXVkaW8tYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRp
by1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjdmMDYwYTMzN2FlZDI4OWVmYWNl
YmU3ZDcxOWI3Mzg2NzUyYjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYt
YXVkaW8tYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3Rz
IG1wNCBhdWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4gYXNzZXJ0
X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiIgaXMgc3VwcG9y
dGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1w
NC1hdi1hdWRpby1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1hdWRpby1iaXRyYXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGJkMmI0ZDBmYWY1NjBkMmIxYTQ2YmFlOThiODMxYjk2NDJhYmZm
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWF1ZGlvLWJpdHJhdGUuaHRt
bApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAg
ICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhdi0zODRrLTQ0MTAwSHot
MWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMw
ZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCBhdWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4
ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ3YjYx
ZTE5MzkwOTE1YjQ5YTI1ZjNjNDZlYmJmOTBkNDEwNjNiMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisg
CitGQUlMIFRlc3RzIG1wNCBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVu
dC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1wNGEuNDAuMiIg
aXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2LWZyYW1lc2l6
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY0NWU4YWUxZDU3YjM2MDRiOTVjMGVkYTBhNWFlODYzZTcyNGQ2
NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC1hdi1mcmFtZXNpemUuaHRtbApA
QCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIsICJhdi0zODRrLTQ0MTAwSHotMWNo
LTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBz
LTEwa2ZyIiwgIlRlc3RzIG1wNCBmcmFtZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29u
dGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtY29uZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWct
Y2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDYw
OWJlMTk0YTc3MGNlOTBhYWM3Zjg2MTQ3NGMzNzEwYjBlYjY1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29u
ZmlnLWNoYW5nZS1tcDQtYXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisgCitGQUlMIFRlc3RzIG1wNCB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4
ZWQgY29udGVudC4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxLG1w
NGEuNDAuMiIgaXMgc3VwcG9ydGVkLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLW1wNC1hdi12aWRlby1iaXRyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1w
NC1hdi12aWRlby1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJkZjlkMGNlMmQzOTIwNDAxNjM3
NjMzMmUxMjdiZGY1MWU4NDc1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LWF2
LXZpZGVvLWJpdHJhdGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
bWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIm1wNCIs
ICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiYXYtNjQway00NDEw
MEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCB2aWRlbyBiaXRyYXRlIGNo
YW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDFmNzE0ZWMwZTQ5NTc5Y2JkYmU1NmQyNjFiYTVmOTgxZjc5NmM0NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4gYXNz
ZXJ0X3RydWU6IHZpZGVvL21wNDtjb2RlY3M9ImF2YzEuNEQ0MDAxIiBpcyBzdXBwb3J0ZWQuIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0
cmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYy
ZDc2OTYzY2E2YWI1NTQwNGVmNzI3NTQ3MDJiYmMwZmQ0MWU5MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5j
c3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdl
VGVzdCgibXA0IiwgInYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgInYtMjU2ay0zMjB4MjQw
LTMwZnBzLTEwa2ZyIiwgIlRlc3RzIG1wNCB2aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4iKTsK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1m
cmFtZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMGVjYjVmZTE0YjY3MDk0NmNjMDc1
YjcxMDQxZmVmODI4OGQ2M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZy
YW1lcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisgCitGQUlMIFRlc3RzIG1wNCB2
aWRlby1vbmx5IGZyYW1lIHJhdGUgY2hhbmdlcy4gYXNzZXJ0X3RydWU6IHZpZGVvL21wNDtjb2Rl
Y3M9ImF2YzEuNEQ0MDAxIiBpcyBzdXBwb3J0ZWQuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LW1wNC12LWZyYW1lcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMmEzNTVmOGU1N2ZlMmIzNDI5YjYx
ZDc3MWQ5YjUyMDEwNzM5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZy
YW1lcmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNv
dXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgibXA0IiwgInYtMTI4
ay0zMjB4MjQwLTI0ZnBzLThrZnIiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVz
dHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZy
YW1lc2l6ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lc2l6ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTkwZDRlYTVmYTE2NjA0OWQ3ZmY2ZDE2NTU2NjkwYmMzNjljNjJm
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXplLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK0ZBSUwgVGVzdHMgbXA0IHZpZGVvLW9ubHkgZnJhbWUg
c2l6ZSBjaGFuZ2VzLiBhc3NlcnRfdHJ1ZTogdmlkZW8vbXA0O2NvZGVjcz0iYXZjMS40RDQwMDEi
IGlzIHN1cHBvcnRlZC4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS1tcDQtdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXpl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmRiZjk0Y2I4YmFkNTA1Zjc5YzJlMzA2ZDViMDA0YWQ3ZTBkYWJm
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVzaXplLmh0bWwKQEAg
LTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMu
anMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAg
bWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJtcDQiLCAidi0xMjhrLTMyMHgyNDAtMzBmcHMt
MTBrZnIiLCAidi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgbXA0IHZpZGVvLW9u
bHkgZnJhbWUgc2l6ZSBjaGFuZ2VzLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYS1iaXRyYXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhiNGJlY2E5NWQzNTk3OTEwZTk3NTNlOTMyYTc1NWUzNGMxZjRmZTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLXdlYm0tYS1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKyAKK1BBU1MgVGVzdHMgd2VibSBhdWRpby1vbmx5IGJpdHJhdGUgY2hhbmdlcy4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2Vi
bS1hLWJpdHJhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmUyM2Q0N2QwMDU1Yjk1NDY3N2IwZTZhNDNl
NDNkMTdkZjRiMmJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWEtYml0cmF0
ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNvdXJjZS11
dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8
Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVzdCgid2VibSIsICJhLTEyOGstNDQx
MDBIei0xY2giLCAiYS0xOTJrLTQ0MTAwSHotMWNoIiwgIlRlc3RzIHdlYm0gYXVkaW8tb25seSBi
aXRyYXRlIGNoYW5nZXMuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMGU2NGQ3NThmOGIyYTNiMjU5YzcxNTQxZWQyYWQzMzllNTk5MDhmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWF1ZGlvLWJpdHJhdGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIGF1ZGlvIGJpdHJhdGUgY2hhbmdl
cyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJt
LWF2LWF1ZGlvLWJpdHJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjE5OGM3MWFiYmQ5NmE2ZmYwMTczYmIwYjVkYzE1Y2I3MmE0YjM3
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi1hdWRpby1iaXRyYXRlLmh0
bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNo
YW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAg
ICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgImF2LTM4NGstNDQxMDBI
ei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJhdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAt
MzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSBhdWRpbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlw
bGV4ZWQgY29udGVudC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1j
b25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NzRlMGIxY2M3NTEwMGVjZGRhMTAxYmNiNjc4MWU0OGFlMDkwODRlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS13ZWJtLWF2LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisgCitQQVNTIFRlc3RzIHdlYm0gZnJhbWUgc2l6ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVk
IGNvbnRlbnQuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlLXdlYm0tYXYtZnJhbWVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjMzNm
MWVlYTkwNTU1NGZhNWQ1NzY2OTM4OGIyNDQ3YjA2NTQ1MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2Utd2VibS1hdi1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5n
ZVRlc3QoIndlYm0iLCAiYXYtMzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwg
ImF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmciIsICJUZXN0cyB3ZWJtIGZy
YW1lIHNpemUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiIpOworICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0t
YXYtdmlkZW8tYml0cmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tYXYtdmlkZW8t
Yml0cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY3ODk0NWQ3NWZiMmE2MWJjN2JjZTRl
Zjc0YmNlMjFmNDJkYTZkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12
aWRlby1iaXRyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKyAKK1BBU1MgVGVzdHMg
d2VibSB2aWRlbyBiaXRyYXRlIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS1hdi12aWRlby1iaXRyYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMTc4YmM0MGZiMDhi
ZTUyZjIwNjRjMGZiZDViMDkyNmJjMWI1YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdl
LXdlYm0tYXYtdmlkZW8tYml0cmF0ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYXNvdXJjZS11dGlsLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Im1lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2VzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3Mi
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIG1lZGlhU291cmNlQ29uZmlnQ2hhbmdlVGVz
dCgid2VibSIsICJhdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnIiLCAiYXYt
NjQway00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyIiwgIlRlc3RzIHdlYm0gdmlkZW8g
Yml0cmF0ZSBjaGFuZ2VzIGluIG11bHRpcGxleGVkIGNvbnRlbnQuIik7CisgICAgICAgIDwvc2Ny
aXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12
LWJpdHJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODJjNzBiZGZkNjVmMDEyZjJiYzk3MjEzYzk5YTRiY2NmNDJmNDVh
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2Utd2VibS12LWJpdHJhdGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIHZpZGVvLW9ubHkgYml0cmF0
ZSBjaGFuZ2VzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS13ZWJtLXYtYml0cmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNzdhYjVlZGQ5
N2RjYzQ1YmU3ZWJmNzRmYzY3YTE1MmY3NWYzOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hh
bmdlLXdlYm0tdi1iaXRyYXRlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3
ZWJtIiwgInYtMTI4ay0zMjB4MjQwLTMwZnBzLTEwa2ZyIiwgInYtMjU2ay0zMjB4MjQwLTMwZnBz
LTEwa2ZyIiwgIlRlc3RzIHdlYm0gdmlkZW8tb25seSBiaXRyYXRlIGNoYW5nZXMuIik7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2Utd2VibS12LWZyYW1lcmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFt
ZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1NmFmNjFmNDIwZWJlM2I2N2IwY2RjZjg3
OGZiOTYwYjgyYTE4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFt
ZXJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0cyB3ZWJtIHZp
ZGVvLW9ubHkgZnJhbWUgcmF0ZSBjaGFuZ2VzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13
ZWJtLXYtZnJhbWVyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXJhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40OGRmZmQ5NjMxZGYzY2QzYjAwOGNmMDJjNGUzMmQ5YzU1MTQ2OGY2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVyYXRlLmh0bWwKQEAgLTAsMCAr
MSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwv
c2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFT
b3VyY2VDb25maWdDaGFuZ2VUZXN0KCJ3ZWJtIiwgInYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnIi
LCAidi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAiVGVzdHMgd2VibSB2aWRlby1vbmx5IGZy
YW1lIHJhdGUgY2hhbmdlcy4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS13ZWJtLXYtZnJhbWVzaXplLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWE2MDUwNGMyN2E2ZjFlZjc1ZjY1MzA2ZDJkMjYxYmY5ODdhZTRkNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2Utd2VibS12LWZyYW1lc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisgCitQQVNTIFRlc3RzIHdlYm0gdmlkZW8tb25seSBmcmFtZSBzaXplIGNoYW5nZXMuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0tdi1mcmFtZXNpemUuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2Utd2VibS12LWZyYW1lc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZWUwZDFhZDljYTAwMWNiZWJi
NmY5M2ViNTk1ZmY5YWM5NzY4ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLXdlYm0t
di1mcmFtZXNpemUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVk
aWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIj4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBtZWRpYVNvdXJjZUNvbmZpZ0NoYW5nZVRlc3QoIndlYm0iLCAi
di0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIiLCAidi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIi
LCAiVGVzdHMgd2VibSB2aWRlby1vbmx5IGZyYW1lIHNpemUgY2hhbmdlcy4iKTsKKyAgICAgICAg
PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1jb25maWctY2hhbmdlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODM0MjQ4MGFiZGEyZTZkMjJhNmQ3ZDA0
ZTQwNTZhNjlhMGJjNzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZXMuanMKQEAgLTAs
MCArMSw2MCBAQAorZnVuY3Rpb24gYXBwZW5kQnVmZmVyKHRlc3QsIHNvdXJjZUJ1ZmZlciwgZGF0
YSkKK3sKKyAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZSIpOworICAg
IHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlZW5kIik7CisgICAgc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihkYXRhKTsKK30KKworZnVuY3Rpb24gbWVkaWFTb3VyY2VDb25m
aWdDaGFuZ2VUZXN0KGRpcmVjdG9yeSwgaWRBLCBpZEIsIGRlc2NyaXB0aW9uKQoreworICAgIHZh
ciBtYW5pZmVzdEZpbGVuYW1lQSA9IGRpcmVjdG9yeSArICIvdGVzdC0iICsgaWRBICsgIi1tYW5p
ZmVzdC5qc29uIjsKKyAgICB2YXIgbWFuaWZlc3RGaWxlbmFtZUIgPSBkaXJlY3RvcnkgKyAiL3Rl
c3QtIiArIGlkQiArICItbWFuaWZlc3QuanNvbiI7CisgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5j
dGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgIHsKKyAgICAgICAgbWVk
aWFFbGVtZW50LnBhdXNlKCk7CisgICAgICAgIHRlc3QuZmFpbE9uRXZlbnQobWVkaWFFbGVtZW50
LCAnZXJyb3InKTsKKyAgICAgICAgdGVzdC5lbmRPbkV2ZW50KG1lZGlhRWxlbWVudCwgJ2VuZGVk
Jyk7CisKKyAgICAgICAgTWVkaWFTb3VyY2VVdGlsLmZldGNoTWFuaWZlc3RBbmREYXRhKHRlc3Qs
IG1hbmlmZXN0RmlsZW5hbWVBLCBmdW5jdGlvbih0eXBlQSwgZGF0YUEpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIE1lZGlhU291cmNlVXRpbC5mZXRjaE1hbmlmZXN0QW5kRGF0YSh0ZXN0LCBtYW5p
ZmVzdEZpbGVuYW1lQiwgZnVuY3Rpb24odHlwZUIsIGRhdGFCKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZUEsIHR5cGVCLCAiTWVkaWEgZm9ybWF0IHR5
cGVzIG1hdGNoIik7CisKKyAgICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFT
b3VyY2UuYWRkU291cmNlQnVmZmVyKHR5cGVBKTsKKworICAgICAgICAgICAgICAgIGFwcGVuZEJ1
ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIsIGRhdGFBKTsKKworICAgICAgICAgICAgICAgIHRlc3Qu
d2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgc2Vjb25kIGJ1ZmZlciBzdGFydGluZyBhdCAwLjUg
c2Vjb25kLgorICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0
ID0gMC41OworICAgICAgICAgICAgICAgICAgICBhcHBlbmRCdWZmZXIodGVzdCwgc291cmNlQnVm
ZmVyLCBkYXRhQik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0
LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIGZpcnN0IGJ1ZmZlciBzdGFydGluZyBhdCAxIHNl
Y29uZC4KKyAgICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLnRpbWVzdGFtcE9mZnNldCA9
IDE7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEJ1ZmZlcih0ZXN0LCBzb3VyY2VCdWZmZXIs
IGRhdGFBKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHRlc3Qud2Fp
dEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEFkZCB0aGUgc2Vjb25kIGJ1ZmZlciBzdGFydGluZyBhdCAxLjUgc2Vj
b25kLgorICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIudGltZXN0YW1wT2Zmc2V0ID0g
MS41OworICAgICAgICAgICAgICAgICAgICBhcHBlbmRCdWZmZXIodGVzdCwgc291cmNlQnVmZmVy
LCBkYXRhQik7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0Lndh
aXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAvLyBUcnVuY2F0ZSB0aGUgcHJlc2VudGF0aW9uIHRvIGEgZHVyYXRpb24g
b2YgMiBzZWNvbmRzLgorICAgICAgICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5kdXJhdGlvbiA9
IDI7CisgICAgICAgICAgICAgICAgICAgIG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAg
ICAgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnBsYXkoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9LCBkZXNjcmlwdGlvbiwgeyB0
aW1lb3V0OiAxMDAwMCB9ICk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZTBjNjAw
MWI3ZTBiMmQwZjdhNDM0ODAzMWM5ZGZmMWUxNTc3OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBl
LXN1cHBvcnRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgVGVzdCBpbnZh
bGlkIHR5cGVzIAorUEFTUyBUZXN0IHZhbGlkIFdlYk0gdHlwZXMgCitGQUlMIFRlc3QgdmFsaWQg
TVA0IHR5cGVzIGFzc2VydF90cnVlOiBUeXBlICJ2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAx
ZSIiIHN1cHBvcnRlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1pcy10eXBl
LXN1cHBvcnRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWFzb3VyY2UtaXMtdHlwZS1zdXBwb3J0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzRmY2E1
NmM0MTdhYzk2YThhZWZkMDlkMjM3MjFiMjk5ODQwNTY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtaXMtdHlw
ZS1zdXBwb3J0ZWQuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9J3N0eWxl
c2hlZXQnIGhyZWY9Jy93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgIHRlc3QoZnVuY3Rpb24gKCkKKyAgICAgICAgICB7CisgICAgICAgICAg
ICAgIHZhciBpbnZhbGlkVHlwZXMgPSBbCisgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIE1J
TUUgZm9ybWF0LgorICAgICAgICAgICAgICAgICAgJ3ZpZGVvJywKKyAgICAgICAgICAgICAgICAg
ICd2aWRlby8nLAorICAgICAgICAgICAgICAgICAgJ3ZpZGVvL3dlYm0nLAorICAgICAgICAgICAg
ICAgICAgJ3ZpZGVvL3dlYm07JywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93ZWJtO2NvZGVj
cycsCisgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibTtjb2RlY3M9JywKKyAgICAgICAgICAg
ICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0iJywKKyAgICAgICAgICAgICAgICAgICd2aWRlby93
ZWJtO2NvZGVjcz0iIicsCisgICAgICAgICAgICAgICAgICAndmlkZW8vd2VibTtjb2RlY3M9Iiwi
JywKKworICAgICAgICAgICAgICAgICAgLy8gTWlzbWF0Y2ggYmV0d2VlbiBtYWpvciB0eXBlIGFu
ZCBjb2RlYyBJRAorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJ2cDgiJywK
KyAgICAgICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSInLAorCisg
ICAgICAgICAgICAgICAgICAvLyBNaXNtYXRjaCBiZXR3ZWVuIG1pbm9yIHR5cGUgYW5kIGNvZGVj
IElELgorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9InZvcmJpcyInLAorICAg
ICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJtcDRhLjQwLjIiJywKKyAgICAgICAg
ICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJ2cDgiJywKKyAgICAgICAgICAgICAgICAgICd2
aWRlby93ZWJtO2NvZGVjcz0ibXA0YS40MC4yIicsCisKKyAgICAgICAgICAgICAgICAgIC8vIElu
dmFsaWQgY29kZWMgSURzLgorICAgICAgICAgICAgICAgICAgJ2F1ZGlvL3dlYm07Y29kZWNzPSJt
cDRhIicsCisgICAgICAgICAgICAgICAgICAnYXVkaW8vd2VibTtjb2RlY3M9Im1wNGEuNDAiJywK
KyAgICAgICAgICAgICAgICAgICdhdWRpby93ZWJtO2NvZGVjcz0ibXA0YS40MC4iJywKKyAgICAg
ICAgICAgICAgICAgICdhdWRpby9tcDQ7Y29kZWNzPSJtcDRhLjY3LjMiJworICAgICAgICAgICAg
ICBdOworCisgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW52YWxpZFR5cGVzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKE1lZGlhU291cmNlLmlz
VHlwZVN1cHBvcnRlZChpbnZhbGlkVHlwZXNbaV0pLCAiVHlwZSBcIiIgKyBpbnZhbGlkVHlwZXNb
aV0gKyAiXCIgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfSwg
IlRlc3QgaW52YWxpZCB0eXBlcyIpOworCisgICAgICAgICAgdGVzdChmdW5jdGlvbiAoKQorICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHZhbGlkVHlwZXMgPSBbCisgICAgICAgICAgICAg
ICAgICAgICd2aWRlby93ZWJtO2NvZGVjcz0idnA4IicsCisgICAgICAgICAgICAgICAgICAgICd2
aWRlby93ZWJtO2NvZGVjcz0idm9yYmlzIicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby93
ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInLAorICAgICAgICAgICAgICAgICAgICAndmlkZW8vd2Vi
bTtjb2RlY3M9InZvcmJpcywgdnA4IicsCisgICAgICAgICAgICAgICAgICAgICdhdWRpby93ZWJt
O2NvZGVjcz0idm9yYmlzIicsCisgICAgICAgICAgICAgIF07CisKKyAgICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB2YWxpZFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKHZhbGlkVHlwZXNbaV0p
LCAiVHlwZSBcIiIgKyB2YWxpZFR5cGVzW2ldICsgIlwiIHN1cHBvcnRlZCIpOworICAgICAgICAg
ICAgICB9CisgICAgICAgICAgfSwgIlRlc3QgdmFsaWQgV2ViTSB0eXBlcyIpOworCisgICAgICAg
ICAgdGVzdChmdW5jdGlvbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHZhbGlk
VHlwZXMgPSBbCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRk
MDAxZSInLCAvLyBILjI2NCBNYWluIFByb2ZpbGUgbGV2ZWwgMy4wCisgICAgICAgICAgICAgICAg
ICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjQyMDAxZSInLCAvLyBILjI2NCBCYXNlbGluZSBQ
cm9maWxlIGxldmVsIDMuMAorICAgICAgICAgICAgICAgICAgICAnYXVkaW8vbXA0O2NvZGVjcz0i
bXA0YS40MC4yIicsICAgLy8gTVBFRzQgQUFDLUxDCisgICAgICAgICAgICAgICAgICAgICdhdWRp
by9tcDQ7Y29kZWNzPSJtcDRhLjQwLjUiJywgICAvLyBNUEVHNCBIRS1BQUMKKyAgICAgICAgICAg
ICAgICAgICAgJ2F1ZGlvL21wNDtjb2RlY3M9Im1wNGEuNjciJywgICAgIC8vIE1QRUcyIEFBQy1M
QworICAgICAgICAgICAgICAgICAgICAndmlkZW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIicsCisg
ICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQw
LjIiJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZpZGVvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiAs
IGF2YzEuNGQwMDFlICInLAorICAgICAgICAgICAgICAgICAgICAndmlkZW8vbXA0O2NvZGVjcz0i
YXZjMS40ZDAwMWUsbXA0YS40MC41IicsCisgICAgICAgICAgICAgICAgICAgICd2aWRlby9tcDQ7
Y29kZWNzPSJhdmMxLjRkMDAxZSxtcDRhLjQwLjUiJywKKyAgICAgICAgICAgICAgXTsKKworICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbGlkVHlwZXMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQo
dmFsaWRUeXBlc1tpXSksICJUeXBlIFwiIiArIHZhbGlkVHlwZXNbaV0gKyAiXCIgc3VwcG9ydGVk
Iik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAiVGVzdCB2YWxpZCBNUDQgdHlwZXMi
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtbXVs
dGlwbGUtYXR0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTlmNzgyMjY1ZTUzMWUxMGQ4ZmQ3YmJkMTRlNDEzY2YzMzRjNDY3MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisg
CitQQVNTIFRlc3QgZXhhY3RseSBvbmUgc3VjY2VlZHMgd2hlbiB0d28gTWVkaWFFbGVtZW50cyBh
dHRhY2ggdG8gc2FtZSBNZWRpYVNvdXJjZSAKK1BBU1MgVGVzdCB0aGF0IE1lZGlhU291cmNlIGNh
biByZWF0dGFjaCBpZiBjbG9zZWQgZmlyc3QgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtbXVsdGlwbGUtYXR0YWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNjN2JkYzY5MTUyNDA5ODc5ZmIx
Yjg5NDllMDA0MTNkNTg3ODY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLW11bHRpcGxlLWF0dGFjaC5odG1s
CkBAIC0wLDAgKzEsMTEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgZnVu
Y3Rpb24gdHdvTWVkaWFFbGVtZW50VGVzdCh0ZXN0RnVuY3Rpb24sIGRlc2NyaXB0aW9uKQorICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgbWVkaWFfdGVzdChmdW5jdGlvbih0ZXN0KQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICB2YXIgZmlyc3RNZWRpYVRhZyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgICB2YXIgc2Vjb25kTWVk
aWFUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaXJzdE1lZGlhVGFnKTsKKyAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2Vjb25kTWVkaWFUYWcpOworCisgICAg
ICAgICAgICAgICAgICAvLyBPdmVybG9hZCBkb25lKCkgc28gdGhhdCBlbGVtZW50cyBhZGRlZCB0
byB0aGUgZG9jdW1lbnQgY2FuIGJlCisgICAgICAgICAgICAgICAgICAvLyByZW1vdmVkLgorICAg
ICAgICAgICAgICAgICAgdmFyIHJlbW92ZU1lZGlhRWxlbWVudHMgPSB0cnVlOworICAgICAgICAg
ICAgICAgICAgdmFyIG9sZFRlc3REb25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7CisgICAgICAg
ICAgICAgICAgICB0ZXN0LmRvbmUgPSBmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZU1lZGlhRWxlbWVudHMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWNvbmRNZWRpYVRh
Zyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
Zmlyc3RNZWRpYVRhZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZU1lZGlhRWxl
bWVudHMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgb2xkVGVzdERvbmUoKTsKKyAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAg
ICAgICAgIHRlc3RGdW5jdGlvbih0ZXN0LCBmaXJzdE1lZGlhVGFnLCBzZWNvbmRNZWRpYVRhZyk7
CisgICAgICAgICAgICAgIH0sIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICB9CisKKyAgICAgICAg
ICB0d29NZWRpYUVsZW1lbnRUZXN0KGZ1bmN0aW9uKHRlc3QsIGZpcnN0TWVkaWFUYWcsIHNlY29u
ZE1lZGlhVGFnKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gV2hlbiBhdHRhY2htZW50
IG9mIG1lZGlhU291cmNlIHRvIHR3byBNZWRpYUVsZW1lbnRzIGlzIGRvbmUKKyAgICAgICAgICAg
ICAgLy8gd2l0aG91dCBhbiBpbnRlcnZlbmluZyBzdGFibGUgc3RhdGUsIGV4YWN0bHkgb25lIG9m
IHRoZSB0d28KKyAgICAgICAgICAgICAgLy8gTWVkaWFFbGVtZW50cyBzaG91bGQgc3VjY2Vzc2Z1
bGx5IGF0dGFjaCwgYW5kIHRoZSBvdGhlciBvbmUKKyAgICAgICAgICAgICAgLy8gc2hvdWxkIGdl
dCBlcnJvciBldmVudCBkdWUgdG8gbWVkaWFTb3VyY2UgYWxyZWFkeSBpbiAnb3BlbicKKyAgICAg
ICAgICAgICAgLy8gcmVhZHlTdGF0ZS4KKyAgICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlID0g
bmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgICAgICAgIHZhciBtZWRpYVNvdXJjZVVSTCA9IFVS
TC5jcmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UpOworICAgICAgICAgICAgICB2YXIgZ290U291
cmNlT3BlbiA9IGZhbHNlOworICAgICAgICAgICAgICB2YXIgZ290RXJyb3IgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgdmFyIGRvbmVJZkZpbmlzaGVkID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
KQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpZiAoZ290U291cmNlT3BlbiAm
JiBnb3RFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgIHZhciBlcnJvckhhbmRsZXIgPSB0ZXN0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBmaXJzdE1l
ZGlhVGFnLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKyAgICAg
ICAgICAgICAgICAgIHNlY29uZE1lZGlhVGFnLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywg
ZXJyb3JIYW5kbGVyKTsKKworICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50VGFyZ2V0ID0gZS50
YXJnZXQ7CisgICAgICAgICAgICAgICAgICB2YXIgb3RoZXJUYXJnZXQ7CisgICAgICAgICAgICAg
ICAgICBpZiAoZXZlbnRUYXJnZXQgPT0gZmlyc3RNZWRpYVRhZykgeworICAgICAgICAgICAgICAg
ICAgICAgIG90aGVyVGFyZ2V0ID0gc2Vjb25kTWVkaWFUYWc7CisgICAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnRUYXJnZXQs
IHNlY29uZE1lZGlhVGFnLCAnRXJyb3IgdGFyZ2V0IGNoZWNrJyk7CisgICAgICAgICAgICAgICAg
ICAgICAgb3RoZXJUYXJnZXQgPSBmaXJzdE1lZGlhVGFnOworICAgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShldmVudFRhcmdldC5lcnJvciAhPSBudWxs
LCAnRXJyb3Igc3RhdGUgb24gb25lIHRhZycpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhldmVudFRhcmdldC5lcnJvci5jb2RlLCBNZWRpYUVycm9yLk1FRElBX0VSUl9TUkNfTk9U
X1NVUFBPUlRFRCwgJ0V4cGVjdGVkIGVycm9yIGNvZGUnKTsKKyAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMob3RoZXJUYXJnZXQuZXJyb3IsIG51bGwsICdObyBlcnJvciBvbiBvdGhlciB0
YWcnKTsKKworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudFRhcmdldC5uZXR3
b3JrU3RhdGUsIEhUTUxNZWRpYUVsZW1lbnQuTkVUV09SS19OT19TT1VSQ0UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdUYWcgd2l0aCBlcnJvciBzdGF0ZSBuZXR3b3JrU3RhdGUn
KTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMob3RoZXJUYXJnZXQubmV0d29ya1N0
YXRlLCBIVE1MTWVkaWFFbGVtZW50Lk5FVFdPUktfTE9BRElORywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1RhZyB3aXRob3V0IGVycm9yIHN0YXRlIG5ldHdvcmtTdGF0ZScpOwor
CisgICAgICAgICAgICAgICAgICBnb3RFcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICBk
b25lSWZGaW5pc2hlZCgpOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0
LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLCAnc291cmNlb3BlbicsICdBbiBhdHRhY2htZW50IHN1
Y2NlZWRlZCcpOworICAgICAgICAgICAgICBmaXJzdE1lZGlhVGFnLmFkZEV2ZW50TGlzdGVuZXIo
J2Vycm9yJywgZXJyb3JIYW5kbGVyKTsKKyAgICAgICAgICAgICAgc2Vjb25kTWVkaWFUYWcuYWRk
RXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIpOworCisgICAgICAgICAgICAgIGZp
cnN0TWVkaWFUYWcuc3JjID0gbWVkaWFTb3VyY2VVUkw7CisgICAgICAgICAgICAgIHNlY29uZE1l
ZGlhVGFnLnNyYyA9IG1lZGlhU291cmNlVVJMOworCisgICAgICAgICAgICAgIHRlc3Qud2FpdEZv
ckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAnb3BlbicsICdTb3Vy
Y2UgaXMgb3BlbmVkJyk7CisgICAgICAgICAgICAgICAgICBnb3RTb3VyY2VPcGVuID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgIGRvbmVJZkZpbmlzaGVkKCk7CisgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgIH0sICdUZXN0IGV4YWN0bHkgb25lIHN1Y2NlZWRzIHdoZW4gdHdvIE1lZGlhRWxl
bWVudHMgYXR0YWNoIHRvIHNhbWUgTWVkaWFTb3VyY2UnKTsKKworICAgICAgICAgIG1lZGlhc291
cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkgeworICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICdvcGVuJywg
J1NvdXJjZSBvcGVuJyk7CisgICAgICAgICAgICAgIC8vIFNldCB0aGUgdGFnJ3Mgc3JjIGF0dHJp
YnV0ZS4gIFRoaXMgc2hvdWxkIGNsb3NlIG1lZGlhU291cmNlLAorICAgICAgICAgICAgICAvLyBy
ZWF0dGFjaCBpdCB0byB0aGUgdGFnLCBhbmQgaW5pdGlhdGUgc291cmNlIHJlb3BlbmluZy4KKyAg
ICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZSwgJ3NvdXJjZW9wZW4nLCAn
U291cmNlIGF0dGFjaGVkIGFnYWluJyk7CisgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zcmMg
PSBVUkwuY3JlYXRlT2JqZWN0VVJMKG1lZGlhU291cmNlKTsKKyAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhtZWRpYVNvdXJjZS5yZWFkeVN0YXRlLCAnY2xvc2VkJywgJ1NvdXJjZSBjbG9zZWQn
KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigp
CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVkaWFT
b3VyY2UucmVhZHlTdGF0ZSwgJ29wZW4nLCAnU291cmNlIHJlb3BlbmVkJyk7CisgICAgICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSwgJ1Rl
c3QgdGhhdCBNZWRpYVNvdXJjZSBjYW4gcmVhdHRhY2ggaWYgY2xvc2VkIGZpcnN0Jyk7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtcGxheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJjMjZhMDZlYTE2ZDUyYTI3Y2Rl
MGIwMWYxYmVjYTIzNTVhY2YxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorIAorUEFTUyBUZXN0IG5vcm1hbCBwbGF5YmFjayBjYXNlIHdpdGggTWVk
aWFTb3VyY2UgQVBJIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1wbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1wbGF5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDc4ZTY2YTlkMmY1ZjI1YmY3ZmU3NTcxZDNlYTNmZmJlNjk2NTQxNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LXBsYXkuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFzb3Vy
Y2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJl
Zj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlh
U291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdGVzdC5mYWlsT25FdmVudChtZWRp
YUVsZW1lbnQsICdlcnJvcicpOworICAgICAgICAgICAgICB0ZXN0LmVuZE9uRXZlbnQobWVkaWFF
bGVtZW50LCAnZW5kZWQnKTsKKworICAgICAgICAgICAgICB2YXIgbWVkaWFUeXBlID0gJ3ZpZGVv
L3dlYm07Y29kZWNzPSJ2cDgsdm9yYmlzIic7CisgICAgICAgICAgICAgIHZhciBtZWRpYVVSTCA9
ICcvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qud2VibSc7CisgICAgICAg
ICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobWVk
aWFUeXBlKTsKKworICAgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURhdGEo
dGVzdCwgbWVkaWFVUkwsIGZ1bmN0aW9uKGRhdGEpCisgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hZGRFdmVudExpc3RlbmVyKCd1cGRhdGVlbmQnLCB0ZXN0
LnN0ZXBfZnVuYyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgbWVkaWFTb3VyY2UuZHVyYXRpb24gPSAxOworICAgICAgICAgICAgICAgICAgICAg
IG1lZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgbWVkaWFF
bGVtZW50LnBsYXkoKTsKKyAgICAgICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgICAgICAgICAg
IHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZGF0YSk7CisgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgIH0sICJUZXN0IG5vcm1hbCBwbGF5YmFjayBjYXNlIHdpdGggTWVkaWFTb3VyY2UgQVBJ
Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNv
dXJjZWJ1ZmZlcmxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjliZDY5MWVjYTBlMDAyYWI3NzdhYzcxMWQwNzI1MDkyYmNkOTY3OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlcmxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorIAorUEFTUyBUZXN0IFNvdXJjZUJ1ZmZlckxpc3QgZXZlbnQgZGlzcGF0Y2hpbmcuIAorUEFT
UyBUZXN0IHRoYXQgb25seSAxIHJlbW92ZXNvdXJjZWJ1ZmZlciBldmVudCBmaXJlcyBvbiBlYWNo
IFNvdXJjZUJ1ZmZlckxpc3Qgd2hlbiB0aGUgTWVkaWFTb3VyY2UgY2xvc2VzLiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2Utc291cmNlYnVmZmVybGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVybGlzdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFkNDg3YTFhZDhmMTQxYWE4MzNhYTYzMGUwOTBkNDFmMTJkZjIxNjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1zb3VyY2VidWZmZXJsaXN0Lmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Im1lZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorCisgICAgICAgIDxsaW5rIHJlbD0n
c3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgZnVuY3Rpb24gdmVyaWZ5U291cmNlQnVmZmVyTGlzdHMobWVk
aWFTb3VyY2UsIGV4cGVjdGVkKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAi
c291cmNlQnVmZmVycyBsZW5ndGgiKTsKKyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZWRp
YVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCAiYWN0
aXZlU291cmNlQnVmZmVycyBsZW5ndGgiKTsKKyAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBleHBlY3RlZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1tpXSwgZXhwZWN0ZWRbaV0sICJWZXJpZnlpbmcg
bWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1siICsgaSArICJdIik7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzW2ldLCBleHBlY3Rl
ZFtpXSwgIlZlcmlmeWluZyBtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzWyIgKyBpICsg
Il0iKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIG1lZGlhc291
cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNl
QnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFk
ZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHZh
ciBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNl
VXRpbC5WSURFT19PTkxZX1RZUEUpOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9
IG51bGw7CisKKyAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rp
b24oKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50
KG1lZGlhU291cmNlLnNvdXJjZUJ1ZmZlcnMsICJhZGRzb3VyY2VidWZmZXIiLCAic291cmNlQnVm
ZmVycyIpOworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5h
Y3RpdmVTb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZl
cnMiKTsKKyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlckIgPSBtZWRpYVNvdXJjZS5hZGRT
b3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLkFVRElPX09OTFlfVFlQRSk7CisKKyAgICAgICAg
ICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNlQnVm
ZmVyQSwgc291cmNlQnVmZmVyQl0pOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
ICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291
cmNlQnVmZmVycywgInJlbW92ZXNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7
CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KG1lZGlhU291cmNlLnNvdXJjZUJ1
ZmZlcnMsICJyZW1vdmVzb3VyY2VidWZmZXIiLCAic291cmNlQnVmZmVycyIpOworICAgICAgICAg
ICAgICAgICAgbWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlckEpOwor
CisgICAgICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwg
W3NvdXJjZUJ1ZmZlckJdKTsKKworICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudCht
ZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLCAiYWRkc291cmNlYnVmZmVyIiwgInNvdXJjZUJ1ZmZl
cnMiKTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0
aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291
cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURFT19PTkxZX1RZUEUpOworCisgICAgICAgICAg
ICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwgW3NvdXJjZUJ1ZmZl
ckIsIHNvdXJjZUJ1ZmZlckFdKTsKKyAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAg
dGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgfSwgIlRlc3QgU291cmNlQnVmZmVyTGlzdCBldmVudCBkaXNwYXRjaGluZy4iKTsKKworICAg
ICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRp
YVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVk
aWFTb3VyY2Uuc291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJz
Iik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291
cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7Cisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywg
ImFkZHNvdXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHRlc3Qu
ZXhwZWN0RXZlbnQobWVkaWFTb3VyY2UuYWN0aXZlU291cmNlQnVmZmVycywgImFkZHNvdXJjZWJ1
ZmZlciIsICJhY3RpdmVTb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VC
dWZmZXJBID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5WSURF
T19PTkxZX1RZUEUpOworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyQiA9IG1lZGlhU291
cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0aWwuQVVESU9fT05MWV9UWVBFKTsKKwor
ICAgICAgICAgICAgICB2ZXJpZnlTb3VyY2VCdWZmZXJMaXN0cyhtZWRpYVNvdXJjZSwgW3NvdXJj
ZUJ1ZmZlckEsIHNvdXJjZUJ1ZmZlckJdKTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JF
eHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291cmNlLCBbc291cmNlQnVmZmVyQSwg
c291cmNlQnVmZmVyQl0pOworCisgICAgICAgICAgICAgICAgICAvLyBGb3JjZSB0aGUgbWVkaWEg
ZWxlbWVudCB0byBjbG9zZSB0aGUgTWVkaWFTb3VyY2Ugb2JqZWN0LgorICAgICAgICAgICAgICAg
ICAgdGVzdC5leHBlY3RFdmVudChtZWRpYVNvdXJjZS5hY3RpdmVTb3VyY2VCdWZmZXJzLCAicmVt
b3Zlc291cmNlYnVmZmVyIiwgImFjdGl2ZVNvdXJjZUJ1ZmZlcnMiKTsKKyAgICAgICAgICAgICAg
ICAgIHRlc3QuZXhwZWN0RXZlbnQobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycywgInJlbW92ZXNv
dXJjZWJ1ZmZlciIsICJzb3VyY2VCdWZmZXJzIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4
cGVjdEV2ZW50KG1lZGlhU291cmNlLCAic291cmNlY2xvc2UiLCAibWVkaWFTb3VyY2UgY2xvc2lu
ZyIpOworICAgICAgICAgICAgICAgICAgbWVkaWFFbGVtZW50LnNyYyA9ICIiOworICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5j
dGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bWVkaWFTb3VyY2UucmVhZHlTdGF0ZSwgImNsb3NlZCIsICJtZWRpYVNvdXJjZSBpcyBjbG9zZWQu
Iik7CisKKyAgICAgICAgICAgICAgICAgIHZlcmlmeVNvdXJjZUJ1ZmZlckxpc3RzKG1lZGlhU291
cmNlLCBbXSk7CisgICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgfSwgIlRlc3QgdGhhdCBvbmx5IDEgcmVtb3Zlc291cmNlYnVmZmVyIGV2
ZW50IGZpcmVzIG9uIGVhY2ggU291cmNlQnVmZmVyTGlzdCB3aGVuIHRoZSBNZWRpYVNvdXJjZSBj
bG9zZXMuIik7CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtdXRpbC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhc291cmNlLXV0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU2ZjAxMmY0ZDk5ZGM2MTNkYmRmM2Fj
MDdmMjI0ZDUxODA5N2U3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXV0aWwuanMKQEAgLTAsMCArMSwyMjkg
QEAKKyhmdW5jdGlvbih3aW5kb3cpIHsKKyAgICBFdmVudEV4cGVjdGF0aW9uc01hbmFnZXIgPSBm
dW5jdGlvbih0ZXN0KQorICAgIHsKKyAgICAgICAgdGhpcy50ZXN0XyA9IHRlc3Q7CisgICAgICAg
IHRoaXMuZXZlbnRUYXJnZXRMaXN0XyA9IFtdOworICAgICAgICB0aGlzLndhaXRDYWxsYmFja3Nf
ID0gW107CisgICAgfTsKKworICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdlci5wcm90b3R5cGUu
ZXhwZWN0RXZlbnQgPSBmdW5jdGlvbihvYmplY3QsIGV2ZW50TmFtZSwgZGVzY3JpcHRpb24pCisg
ICAgeworICAgICAgICB2YXIgZXZlbnRJbmZvID0geyAndGFyZ2V0Jzogb2JqZWN0LCAndHlwZSc6
IGV2ZW50TmFtZSwgJ2Rlc2NyaXB0aW9uJzogZGVzY3JpcHRpb259OworICAgICAgICB2YXIgZXhw
ZWN0YXRpb25zID0gdGhpcy5nZXRFeHBlY3RhdGlvbnNfKG9iamVjdCk7CisgICAgICAgIGV4cGVj
dGF0aW9ucy5wdXNoKGV2ZW50SW5mbyk7CisKKyAgICAgICAgdmFyIHQgPSB0aGlzOworICAgICAg
ICB2YXIgd2FpdEhhbmRsZXIgPSB0aGlzLnRlc3RfLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsgdC5o
YW5kbGVXYWl0Q2FsbGJhY2tfKCk7IH0pOworICAgICAgICB2YXIgZXZlbnRIYW5kbGVyID0gdGhp
cy50ZXN0Xy5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAg
IG9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRIYW5kbGVyKTsKKyAg
ICAgICAgICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGF0aW9uc1swXTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZXZlbnQudGFyZ2V0LCBleHBlY3RlZC50YXJnZXQsICJFdmVudCB0YXJnZXQg
bWF0Y2guIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnR5cGUsIGV4cGVjdGVk
LnR5cGUsICJFdmVudCB0eXBlcyBtYXRjaC4iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZXZlbnRJbmZvLmRlc2NyaXB0aW9uLCBleHBlY3RlZC5kZXNjcmlwdGlvbiwgIkRlc2NyaXB0aW9u
cyBtYXRjaCBmb3IgJyIgKyAgZXZlbnQudHlwZSArICInLiIpOworCisgICAgICAgICAgICBleHBl
Y3RhdGlvbnMuc2hpZnQoMSk7CisgICAgICAgICAgICBpZiAodC53YWl0Q2FsbGJhY2tzXy5sZW5n
dGggPiAwKQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQod2FpdEhhbmRsZXIsIDApOworICAg
ICAgICB9KTsKKyAgICAgICAgb2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVu
dEhhbmRsZXIpOworICAgIH07CisKKyAgICBFdmVudEV4cGVjdGF0aW9uc01hbmFnZXIucHJvdG90
eXBlLndhaXRGb3JFeHBlY3RlZEV2ZW50cyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgdGhpcy53YWl0Q2FsbGJhY2tzXy5wdXNoKGNhbGxiYWNrKTsKKyAgICAgICAgc2V0VGlt
ZW91dCh0aGlzLmhhbmRsZVdhaXRDYWxsYmFja18uYmluZCh0aGlzKSwgMCk7CisgICAgfTsKKwor
ICAgIEV2ZW50RXhwZWN0YXRpb25zTWFuYWdlci5wcm90b3R5cGUuZXhwZWN0aW5nRXZlbnRzID0g
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmV2ZW50
VGFyZ2V0TGlzdF8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50VGFy
Z2V0TGlzdF9baV0uZXhwZWN0YXRpb25zLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5oYW5k
bGVXYWl0Q2FsbGJhY2tfID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMud2Fp
dENhbGxiYWNrc18ubGVuZ3RoID09IDAgfHwgdGhpcy5leHBlY3RpbmdFdmVudHMoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gdGhpcy53YWl0Q2FsbGJhY2tz
Xy5zaGlmdCgxKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9OworCisgICAgRXZlbnRFeHBl
Y3RhdGlvbnNNYW5hZ2VyLnByb3RvdHlwZS5nZXRFeHBlY3RhdGlvbnNfID0gZnVuY3Rpb24odGFy
Z2V0KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmV2ZW50VGFyZ2V0
TGlzdF8ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBpbmZvID0gdGhpcy5ldmVudFRh
cmdldExpc3RfW2ldOworICAgICAgICAgICAgaWYgKGluZm8udGFyZ2V0ID09IHRhcmdldCkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBpbmZvLmV4cGVjdGF0aW9uczsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICB2YXIgZXhwZWN0YXRpb25zID0gW107CisgICAgICAgIHRoaXMu
ZXZlbnRUYXJnZXRMaXN0Xy5wdXNoKHsgJ3RhcmdldCc6IHRhcmdldCwgJ2V4cGVjdGF0aW9ucyc6
IGV4cGVjdGF0aW9ucyB9KTsKKyAgICAgICAgcmV0dXJuIGV4cGVjdGF0aW9uczsKKyAgICB9Owor
CisgICAgZnVuY3Rpb24gbG9hZERhdGFfKHRlc3QsIHVybCwgY2FsbGJhY2ssIGlzQmluYXJ5KQor
ICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAg
ICAgcmVxdWVzdC5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgICAgICBpZiAoaXNCaW5hcnkp
IHsKKyAgICAgICAgICAgIHJlcXVlc3QucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKKyAg
ICAgICAgfQorICAgICAgICByZXF1ZXN0Lm9ubG9hZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9u
KGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgIT0gMjAw
KSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBzdGF0dXMg
Y29kZSA6ICIgKyByZXF1ZXN0LnN0YXR1cyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVxdWVzdC5yZXNwb25zZTsK
KyAgICAgICAgICAgIGlmIChpc0JpbmFyeSkgeworICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g
bmV3IFVpbnQ4QXJyYXkocmVzcG9uc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2Fs
bGJhY2socmVzcG9uc2UpOworICAgICAgICB9KTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0g
dGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgICAg
IHJlcXVlc3Quc2VuZCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5NZWRpYVNvdXJjZV8o
dGVzdCwgbWVkaWFUYWcsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG1lZGlhU291cmNl
ID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgIHZhciBtZWRpYVNvdXJjZVVSTCA9IFVSTC5j
cmVhdGVPYmplY3RVUkwobWVkaWFTb3VyY2UpOworCisgICAgICAgIHZhciBldmVudEhhbmRsZXIg
PSB0ZXN0LnN0ZXBfZnVuYyhvblNvdXJjZU9wZW4pOworICAgICAgICBmdW5jdGlvbiBvblNvdXJj
ZU9wZW4oZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1lZGlhU291cmNlLnJlbW92ZUV2
ZW50TGlzdGVuZXIoJ3NvdXJjZW9wZW4nLCBldmVudEhhbmRsZXIpOworICAgICAgICAgICAgVVJM
LnJldm9rZU9iamVjdFVSTChtZWRpYVNvdXJjZVVSTCk7CisgICAgICAgICAgICBjYWxsYmFjayht
ZWRpYVNvdXJjZSk7CisgICAgICAgIH0KKworICAgICAgICBtZWRpYVNvdXJjZS5hZGRFdmVudExp
c3RlbmVyKCdzb3VyY2VvcGVuJywgZXZlbnRIYW5kbGVyKTsKKyAgICAgICAgbWVkaWFUYWcuc3Jj
ID0gbWVkaWFTb3VyY2VVUkw7CisgICAgfQorCisgICAgdmFyIE1lZGlhU291cmNlVXRpbCA9IHt9
OworCisgICAgTWVkaWFTb3VyY2VVdGlsLmxvYWRUZXh0RGF0YSA9IGZ1bmN0aW9uKHRlc3QsIHVy
bCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBsb2FkRGF0YV8odGVzdCwgdXJsLCBjYWxsYmFj
aywgZmFsc2UpOworICAgIH07CisKKyAgICBNZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURhdGEg
PSBmdW5jdGlvbih0ZXN0LCB1cmwsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgbG9hZERhdGFf
KHRlc3QsIHVybCwgY2FsbGJhY2ssIHRydWUpOworICAgIH07CisKKyAgICBNZWRpYVNvdXJjZVV0
aWwuZmV0Y2hNYW5pZmVzdEFuZERhdGEgPSBmdW5jdGlvbih0ZXN0LCBtYW5pZmVzdEZpbGVuYW1l
LCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBiYXNlVVJMID0gJy9tZWRpYS9yZXNvdXJj
ZXMvbWVkaWEtc291cmNlLyc7CisgICAgICAgIHZhciBtYW5pZmVzdFVSTCA9IGJhc2VVUkwgKyBt
YW5pZmVzdEZpbGVuYW1lOworICAgICAgICBNZWRpYVNvdXJjZVV0aWwubG9hZFRleHREYXRhKHRl
c3QsIG1hbmlmZXN0VVJMLCBmdW5jdGlvbihtYW5pZmVzdFRleHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHZhciBtYW5pZmVzdCA9IEpTT04ucGFyc2UobWFuaWZlc3RUZXh0KTsKKworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKG1hbmlmZXN0LnR5
cGUpLCBtYW5pZmVzdC50eXBlICsgIiBpcyBzdXBwb3J0ZWQuIik7CisKKyAgICAgICAgICAgIHZh
ciBtZWRpYVVSTCA9IGJhc2VVUkwgKyBtYW5pZmVzdC51cmw7CisgICAgICAgICAgICBNZWRpYVNv
dXJjZVV0aWwubG9hZEJpbmFyeURhdGEodGVzdCwgbWVkaWFVUkwsIGZ1bmN0aW9uKG1lZGlhRGF0
YSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhtYW5pZmVzdC50eXBl
LCBtZWRpYURhdGEpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH07CisKKyAg
ICBmdW5jdGlvbiBnZXRGaXJzdFN1cHBvcnRlZFR5cGUodHlwZUxpc3QpCisgICAgeworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVMaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICBpZiAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKHR5cGVMaXN0W2ldKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHlwZUxpc3RbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICIi
OworICAgIH0KKworICAgIHZhciBhdWRpb09ubHlUeXBlcyA9IFsnYXVkaW8vd2VibTtjb2RlY3M9
InZvcmJpcyInLCAnYXVkaW8vbXA0O2NvZGVjcz0ibXA0YS40MC4yIiddOworICAgIHZhciB2aWRl
b09ubHlUeXBlcyA9IFsndmlkZW8vd2VibTtjb2RlY3M9InZwOCInLCAndmlkZW8vbXA0O2NvZGVj
cz0iYXZjMS40RDQwMDEiJ107CisgICAgdmFyIGF1ZGlvVmlkZW9UeXBlcyA9IFsndmlkZW8vd2Vi
bTtjb2RlY3M9InZwOCx2b3JiaXMiJywgJ3ZpZGVvL21wNDtjb2RlY3M9Im1wNGEuNDAuMiInXTsK
KyAgICBNZWRpYVNvdXJjZVV0aWwuQVVESU9fT05MWV9UWVBFID0gZ2V0Rmlyc3RTdXBwb3J0ZWRU
eXBlKGF1ZGlvT25seVR5cGVzKTsKKyAgICBNZWRpYVNvdXJjZVV0aWwuVklERU9fT05MWV9UWVBF
ID0gZ2V0Rmlyc3RTdXBwb3J0ZWRUeXBlKHZpZGVvT25seVR5cGVzKTsKKyAgICBNZWRpYVNvdXJj
ZVV0aWwuQVVESU9fVklERU9fVFlQRSA9IGdldEZpcnN0U3VwcG9ydGVkVHlwZShhdWRpb1ZpZGVv
VHlwZXMpOworCisgICAgZnVuY3Rpb24gYWRkRXh0cmFUZXN0TWV0aG9kcyh0ZXN0KQorICAgIHsK
KyAgICAgICAgdGVzdC5mYWlsT25FdmVudCA9IGZ1bmN0aW9uKG9iamVjdCwgZXZlbnROYW1lKQor
ICAgICAgICB7CisgICAgICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUs
IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgZXZlbnQgJyIgKyBldmVudE5hbWUg
KyAiJyIpOworICAgICAgICAgICAgfSkpOworICAgICAgICB9OworCisgICAgICAgIHRlc3QuZW5k
T25FdmVudCA9IGZ1bmN0aW9uKG9iamVjdCwgZXZlbnROYW1lKQorICAgICAgICB7CisgICAgICAg
ICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7IHRlc3QuZG9uZSgpOyB9KSk7CisgICAgICAgIH07CisKKyAgICAgICAg
dGVzdC5ldmVudEV4cGVjdGF0aW9uc18gPSBuZXcgRXZlbnRFeHBlY3RhdGlvbnNNYW5hZ2VyKHRl
c3QpOworICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50ID0gZnVuY3Rpb24ob2JqZWN0LCBldmVudE5h
bWUsIGRlc2NyaXB0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICB0ZXN0LmV2ZW50RXhwZWN0
YXRpb25zXy5leHBlY3RFdmVudChvYmplY3QsIGV2ZW50TmFtZSwgZGVzY3JpcHRpb24pOworICAg
ICAgICB9OworCisgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzID0gZnVuY3Rpb24o
Y2FsbGJhY2spCisgICAgICAgIHsKKyAgICAgICAgICAgIHRlc3QuZXZlbnRFeHBlY3RhdGlvbnNf
LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhjYWxsYmFjayk7CisgICAgICAgIH07CisKKyAgICAgICAg
dmFyIG9sZFRlc3REb25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7CisgICAgICAgIHRlc3QuZG9u
ZSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRlc3Quc3RhdHVzID09
IHRlc3QuUEFTUykKKyAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UodGVzdC5ldmVudEV4cGVj
dGF0aW9uc18uZXhwZWN0aW5nRXZlbnRzKCksICJObyBwZW5kaW5nIGV2ZW50IGV4cGVjdGF0aW9u
cy4iKTsKKyAgICAgICAgICAgIG9sZFRlc3REb25lKCk7CisgICAgICAgIH07CisgICAgfTsKKwor
ICAgIHdpbmRvd1snTWVkaWFTb3VyY2VVdGlsJ10gPSBNZWRpYVNvdXJjZVV0aWw7CisgICAgd2lu
ZG93WydtZWRpYV90ZXN0J10gPSBmdW5jdGlvbih0ZXN0RnVuY3Rpb24sIGRlc2NyaXB0aW9uLCBv
cHRpb25zKQorICAgIHsKKyAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICAg
IHJldHVybiBhc3luY190ZXN0KGZ1bmN0aW9uKHRlc3QpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGFkZEV4dHJhVGVzdE1ldGhvZHModGVzdCk7CisgICAgICAgICAgICB0ZXN0RnVuY3Rpb24odGVz
dCk7CisgICAgICAgIH0sIGRlc2NyaXB0aW9uLCBvcHRpb25zKTsKKyAgICB9OworICAgIHdpbmRv
d1snbWVkaWFzb3VyY2VfdGVzdCddID0gZnVuY3Rpb24odGVzdEZ1bmN0aW9uLCBkZXNjcmlwdGlv
biwgb3B0aW9ucykKKyAgICB7CisgICAgICAgIHJldHVybiBtZWRpYV90ZXN0KGZ1bmN0aW9uKHRl
c3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBtZWRpYVRhZyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInZpZGVvIik7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KG1lZGlhVGFnKTsKKworICAgICAgICAgICAgLy8gT3ZlcmxvYWQgZG9uZSgpIHNvIHRoYXQgZWxl
bWVudCBhZGRlZCB0byB0aGUgZG9jdW1lbnQgY2FuIGJlIHJlbW92ZWQuCisgICAgICAgICAgICB0
ZXN0LnJlbW92ZU1lZGlhRWxlbWVudF8gPSB0cnVlOworICAgICAgICAgICAgdmFyIG9sZFRlc3RE
b25lID0gdGVzdC5kb25lLmJpbmQodGVzdCk7CisgICAgICAgICAgICB0ZXN0LmRvbmUgPSBmdW5j
dGlvbigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3QucmVtb3ZlTWVk
aWFFbGVtZW50XykgeworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKG1lZGlhVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdC5yZW1vdmVNZWRpYUVsZW1l
bnRfID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZFRlc3RE
b25lKCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBvcGVuTWVkaWFTb3VyY2VfKHRl
c3QsIG1lZGlhVGFnLCBmdW5jdGlvbihtZWRpYVNvdXJjZSkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0RnVuY3Rpb24odGVzdCwgbWVkaWFUYWcsIG1lZGlhU291cmNlKTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9LCBkZXNjcmlwdGlvbiwgb3B0aW9ucyk7CisKKyAgICB9
OworfSkod2luZG93KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJjZS1vYmplY3RzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvLW1lZGlhLXNvdXJj
ZS1vYmplY3RzLWV4cGVjdGVkLnR4dAppbmRleCBiMDNkYmU0MzRiODVkZjQ3M2IzZGQ2MzAyYWQz
NGJjMmQ3NjkwYTA5Li5kZjZjYmI4NzFlNDY5M2U0MDEwMGM5ZTUwNTI5Y2UyNWQ4YmU5MTMyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS92aWRl
by1tZWRpYS1zb3VyY2Utb2JqZWN0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW8tbWVkaWEtc291cmNlLW9iamVjdHMtZXhw
ZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQCBUZXN0cyBNZWRpYVNvdXJjZSwgU291cmNlQnVmZmVy
LCBhbmQgU291cmNlQnVmZmVyTGlzdCBvYmplY3RzLgogCiBFVkVOVCh3ZWJraXRzb3VyY2VvcGVu
KQogVGVzdCBNZWRpYVNvdXJjZSBvYmplY3QgdHlwZQotRVhQRUNURUQgKG1lZGlhU291cmNlID09
ICdbb2JqZWN0IE1lZGlhU291cmNlXScpIE9LCitFWFBFQ1RFRCAobWVkaWFTb3VyY2UgPT0gJ1tv
YmplY3QgV2ViS2l0TWVkaWFTb3VyY2VdJykgT0sKIEVYUEVDVEVEIChtZWRpYVNvdXJjZSBpbnN0
YW5jZW9mIHdpbmRvdy5XZWJLaXRNZWRpYVNvdXJjZSA9PSAndHJ1ZScpIE9LCiAKIEFkZCBhIFNv
dXJjZUJ1ZmZlcgpAQCAtMTEsNyArMTEsNyBAQCBSVU4oc2VnbWVudEhlbHBlci5hZGRTb3VyY2VC
dWZmZXIoKSkKIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzLmxlbmd0aCA9PSAn
MScpIE9LCiAKIFRlc3QgU291cmNlQnVmZmVyTGlzdCBvYmplY3QgdHlwZToKLUVYUEVDVEVEICht
ZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2JqZWN0IFNvdXJjZUJ1ZmZlckxpc3RdJykg
T0sKK0VYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZmZXJzID09ICdbb2JqZWN0IFdlYktp
dFNvdXJjZUJ1ZmZlckxpc3RdJykgT0sKIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5zb3VyY2VCdWZm
ZXJzIGluc3RhbmNlb2Ygd2luZG93LldlYktpdFNvdXJjZUJ1ZmZlckxpc3QgPT0gJ3RydWUnKSBP
SwogCiBUZXN0IFNvdXJjZUJ1ZmZlciBvYmplY3QgdHlwZQpAQCAtMzksNyArMzksNyBAQCBFWFBF
Q1RFRCAobWVkaWFTb3VyY2Uuc291cmNlQnVmZmVyc1swXS5idWZmZXJlZC5lbmQoMSkgPiAnNScp
IE9LCiBSZW1vdmUgU291cmNlQnVmZmVyCiBSVU4obWVkaWFTb3VyY2UucmVtb3ZlU291cmNlQnVm
ZmVyKHNlZ21lbnRIZWxwZXIuc291cmNlQnVmZmVyKSkKIEVYUEVDVEVEIChtZWRpYVNvdXJjZS5z
b3VyY2VCdWZmZXJzLmxlbmd0aCA9PSAnMCcpIE9LCi1FWFBFQ1RFRCAobWVkaWFTb3VyY2Uuc291
cmNlQnVmZmVycyA9PSAnW29iamVjdCBTb3VyY2VCdWZmZXJMaXN0XScpIE9LCitFWFBFQ1RFRCAo
bWVkaWFTb3VyY2Uuc291cmNlQnVmZmVycyA9PSAnW29iamVjdCBXZWJLaXRTb3VyY2VCdWZmZXJM
aXN0XScpIE9LCiAKIFRlc3QgdGhhdCBhcHBlbmQoKSB0aHJvd3MgYW4gZXJyb3IgYWZ0ZXIgU291
cmNlQnVmZmVyIGhhcyBiZWVuIHJlbW92ZWQuCiBHb3QgZXhwZWN0ZWQgZXhjZXB0aW9uIEVycm9y
OiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL2dlbmVyYXRlLWNv
bmZpZy1jaGFuZ2UtdGVzdHMucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2UvZ2VuZXJhdGUtY29uZmlnLWNoYW5nZS10ZXN0cy5weQpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZWRiOTI1YjQ0OGFmMzYwNDFhNGNhM2YwMGVkMjhmMTJhYjcwNjhjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291
cmNlL2dlbmVyYXRlLWNvbmZpZy1jaGFuZ2UtdGVzdHMucHkKQEAgLTAsMCArMSwyMjYgQEAKKyMh
L3Vzci9iaW4vcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIiIiCitUaGlzIGlzIGEgc2NyaXB0
IHRoYXQgZ2VuZXJhdGVzIHRoZSBjb250ZW50IGFuZCBIVE1MIGZpbGVzIGZvciBNZWRpYSBTb3Vy
Y2UKK2NvZGVjIGNvbmZpZyBjaGFuZ2UgTGF5b3V0VGVzdHMuCisiIiIKK2ltcG9ydCBqc29uCitp
bXBvcnQgb3MKKworRFVSQVRJT04gPSAyCitNRURJQV9GT1JNQVRTID0gWyd3ZWJtJywgJ21wNCdd
CitFTkNPREVfU0VUVElOR1MgPSBbCisgICAgIyMgVmlkZW8tb25seSBmaWxlcworICAgICMgRnJh
bWUgcmF0ZSBjaGFuZ2VzCisgICAgeydmcyc6ICczMjB4MjQwJywgJ2ZyJzogMjQsICdrZnInOiA4
LCAnYyc6ICcjZmYwMDAwJywgJ3Zicic6IDEyOCwgJ2Ficic6IDAsICdhc3InOiAwLCAnYWNoJzog
MCwgJ2FmcmVxJzogMH0sCisgICAgeydmcyc6ICczMjB4MjQwJywgJ2ZyJzogMzAsICdrZnInOiAx
MCwgJ2MnOiAnI2ZmMDAwMCcsICd2YnInOiAxMjgsICdhYnInOiAwLCAnYXNyJzogMCwgJ2FjaCc6
IDAsICdhZnJlcSc6IDB9LAorICAgICMgRnJhbWUgc2l6ZSBjaGFuZ2UKKyAgICB7J2ZzJzogJzY0
MHg0ODAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAnYyc6ICcjMDBmZjAwJywgJ3Zicic6IDEyOCwg
J2Ficic6IDAsICdhc3InOiAwLCAnYWNoJzogMCwgJ2FmcmVxJzogMH0sCisgICAgIyBCaXRyYXRl
IGNoYW5nZQorICAgIHsnZnMnOiAnMzIweDI0MCcsICdmcic6IDMwLCAna2ZyJzogMTAsICdjJzog
JyNmZjAwZmYnLCAndmJyJzogMjU2LCAnYWJyJzogMCwgJ2Fzcic6IDAsICdhY2gnOiAwLCAnYWZy
ZXEnOiAwfSwKKworICAgICMjIEF1ZGlvLW9ubHkgZmlsZXMKKyAgICAjIEJpdHJhdGUvQ29kZWJv
b2sgY2hhbmdlcworICAgIHsnZnMnOiAnMHgwJywgJ2ZyJzogMCwgJ2tmcic6IDAsICdjJzogJyMw
MDAwMDAnLCAndmJyJzogMCwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0MTAwLCAnYWNoJzogMSwgJ2Fm
cmVxJzogMjAwMH0sCisgICAgeydmcyc6ICcweDAnLCAnZnInOiAwLCAna2ZyJzogMCwgJ2MnOiAn
IzAwMDAwMCcsICd2YnInOiAwLCAnYWJyJzogMTkyLCAnYXNyJzogNDQxMDAsICdhY2gnOiAxLCAn
YWZyZXEnOiA0MDAwfSwKKworICAgICMjIEF1ZGlvLVZpZGVvIGZpbGVzCisgICAgIyBGcmFtZSBz
aXplIGNoYW5nZS4KKyAgICB7J2ZzJzogJzMyMHgyNDAnLCAnZnInOiAzMCwgJ2tmcic6IDEwLCAn
Yyc6ICcjZmYwMDAwJywgJ3Zicic6IDI1NiwgJ2Ficic6IDEyOCwgJ2Fzcic6IDQ0MTAwLCAnYWNo
JzogMSwgJ2FmcmVxJzogMjAwMH0sCisgICAgeydmcyc6ICc2NDB4NDgwJywgJ2ZyJzogMzAsICdr
ZnInOiAxMCwgJ2MnOiAnIzAwZmYwMCcsICd2YnInOiAyNTYsICdhYnInOiAxMjgsICdhc3InOiA0
NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDIwMDB9LAorICAgICMgQXVkaW8gYml0cmF0ZSBjaGFu
Z2UuCisgICAgeydmcyc6ICc2NDB4NDgwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnIzAw
ZmYwMCcsICd2YnInOiAyNTYsICdhYnInOiAxOTIsICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdh
ZnJlcSc6IDQwMDB9LAorICAgICMgVmlkZW8gYml0cmF0ZSBjaGFuZ2UuCisgICAgeydmcyc6ICc2
NDB4NDgwJywgJ2ZyJzogMzAsICdrZnInOiAxMCwgJ2MnOiAnIzAwZmZmZicsICd2YnInOiA1MTIs
ICdhYnInOiAxMjgsICdhc3InOiA0NDEwMCwgJ2FjaCc6IDEsICdhZnJlcSc6IDIwMDB9LAorXQor
CitDT05GSUdfQ0hBTkdFX1RFU1RTID0gWworICAgIFsidi1mcmFtZXJhdGUiLCAwLCAxLCAiVGVz
dHMgJXMgdmlkZW8tb25seSBmcmFtZSByYXRlIGNoYW5nZXMuIl0sCisgICAgWyJ2LWZyYW1lc2l6
ZSIsIDEsIDIsICJUZXN0cyAlcyB2aWRlby1vbmx5IGZyYW1lIHNpemUgY2hhbmdlcy4iXSwKKyAg
ICBbInYtYml0cmF0ZSIsIDEsIDMsICJUZXN0cyAlcyB2aWRlby1vbmx5IGJpdHJhdGUgY2hhbmdl
cy4iXSwKKyAgICBbImEtYml0cmF0ZSIsIDQsIDUsICJUZXN0cyAlcyBhdWRpby1vbmx5IGJpdHJh
dGUgY2hhbmdlcy4iXSwKKyAgICBbImF2LWZyYW1lc2l6ZSIsIDYsIDcsICJUZXN0cyAlcyBmcmFt
ZSBzaXplIGNoYW5nZXMgaW4gbXVsdGlwbGV4ZWQgY29udGVudC4iXSwKKyAgICBbImF2LWF1ZGlv
LWJpdHJhdGUiLCA3LCA4LCAiVGVzdHMgJXMgYXVkaW8gYml0cmF0ZSBjaGFuZ2VzIGluIG11bHRp
cGxleGVkIGNvbnRlbnQuIl0sCisgICAgWyJhdi12aWRlby1iaXRyYXRlIiwgNywgOSwgIlRlc3Rz
ICVzIHZpZGVvIGJpdHJhdGUgY2hhbmdlcyBpbiBtdWx0aXBsZXhlZCBjb250ZW50LiJdCitdCisK
K0NPREVDX0lORk8gPSB7CisgICAgIm1wNCI6IHsiYXVkaW8iOiAibXA0YS40MC4yIiwgInZpZGVv
IjogImF2YzEuNEQ0MDAxIn0sCisgICAgIndlYm0iOiB7ImF1ZGlvIjogInZvcmJpcyIsICJ2aWRl
byI6ICJ2cDgifQorfQorCitIVE1MX1RFTVBMQVRFID0gIiIiPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Im1l
ZGlhc291cmNlLXV0aWwuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ibWVkaWFz
b3VyY2UtY29uZmlnLWNoYW5nZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyI+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgbWVkaWFTb3VyY2VDb25maWdDaGFuZ2VUZXN0KCIlKG1lZGlh
X2Zvcm1hdClzIiwgIiUoaWRBKXMiLCAiJShpZEIpcyIsICIlKGRlc2NyaXB0aW9uKXMiKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgorIiIiCisKK2RlZiBydW4oY21k
X2xpbmUpOgorICAgIG9zLnN5c3RlbSgiICIuam9pbihjbWRfbGluZSkpCisKK2RlZiBnZW5lcmF0
ZV9tYW5pZmVzdChmaWxlbmFtZSwgbWVkaWFfZmlsZW5hbWUsIG1lZGlhX2Zvcm1hdCwgaGFzX2F1
ZGlvLCBoYXNfdmlkZW8pOgorICAgIG1ham9yX3R5cGUgPSAiYXVkaW8iCisgICAgaWYgaGFzX3Zp
ZGVvOgorICAgICAgICBtYWpvcl90eXBlID0gInZpZGVvIgorCisgICAgY29kZWNzID0gW10KKyAg
ICBpZiBoYXNfdmlkZW86CisgICAgICAgIGNvZGVjcy5hcHBlbmQoQ09ERUNfSU5GT1ttZWRpYV9m
b3JtYXRdWyJ2aWRlbyJdKQorCisgICAgaWYgaGFzX2F1ZGlvOgorICAgICAgICBjb2RlY3MuYXBw
ZW5kKENPREVDX0lORk9bbWVkaWFfZm9ybWF0XVsiYXVkaW8iXSkKKworICAgIG1pbWV0eXBlID0g
IiVzLyVzO2NvZGVjcz1cIiVzXCIiICUgKG1ham9yX3R5cGUsIG1lZGlhX2Zvcm1hdCwgIiwiLmpv
aW4oY29kZWNzKSkKKworICAgIG1hbmlmZXN0ID0geyAndXJsJzogbWVkaWFfZmlsZW5hbWUsICd0
eXBlJzogbWltZXR5cGV9CisKKyAgICBmID0gb3BlbihmaWxlbmFtZSwgIndiIikKKyAgICBmLndy
aXRlKGpzb24uZHVtcHMobWFuaWZlc3QsIGluZGVudD00LCBzZXBhcmF0b3JzPSgnLCcsICc6ICcp
KSkKKyAgICBmLmNsb3NlKCkKKworZGVmIGdlbmVyYXRlX3Rlc3RfaHRtbChtZWRpYV9mb3JtYXQs
IGNvbmZpZ19jaGFuZ2VfdGVzdHMsIGVuY29kaW5nX2lkcyk6CisgICAgZm9yIHRlc3RfaW5mbyBp
biBjb25maWdfY2hhbmdlX3Rlc3RzOgorICAgICAgICBmaWxlbmFtZSA9ICIuLi8uLi9tZWRpYS1z
b3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS0lcy0lcy5odG1sIiAlIChtZWRpYV9mb3Jt
YXQsIHRlc3RfaW5mb1swXSkKKyAgICAgICAgaHRtbCA9IEhUTUxfVEVNUExBVEUgJSB7J21lZGlh
X2Zvcm1hdCc6IG1lZGlhX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdpZEEnOiBlbmNvZGluZ19pZHNbdGVzdF9pbmZvWzFdXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdpZEInOiBlbmNvZGluZ19pZHNbdGVzdF9pbmZvWzJdXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICB0ZXN0X2luZm9bM10gJSAo
bWVkaWFfZm9ybWF0KX0KKyAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICJ3YiIpCisgICAgICAg
IGYud3JpdGUoaHRtbCkKKyAgICAgICAgZi5jbG9zZSgpCisKKworZGVmIG1haW4oKToKKyAgICBl
bmNvZGluZ19pZHMgPSBbXQorCisgICAgZm9yIG1lZGlhX2Zvcm1hdCBpbiBNRURJQV9GT1JNQVRT
OgorICAgICAgICBydW4oWyJta2RpciAiLCBtZWRpYV9mb3JtYXRdKQorCisgICAgICAgIGZvciBz
ZXR0aW5ncyBpbiBFTkNPREVfU0VUVElOR1M6CisgICAgICAgICAgICB2aWRlb19iaXRyYXRlID0g
c2V0dGluZ3NbJ3ZiciddCisgICAgICAgICAgICBoYXNfdmlkZW8gPSAodmlkZW9fYml0cmF0ZSA+
IDApCisKKyAgICAgICAgICAgIGF1ZGlvX2JpdHJhdGUgPSBzZXR0aW5nc1snYWJyJ10KKyAgICAg
ICAgICAgIGhhc19hdWRpbyA9IChhdWRpb19iaXRyYXRlID4gMCkKKyAgICAgICAgICAgIGJpdHJh
dGUgPSB2aWRlb19iaXRyYXRlICsgYXVkaW9fYml0cmF0ZQorCisgICAgICAgICAgICBmcmFtZV9z
aXplID0gc2V0dGluZ3NbJ2ZzJ10KKyAgICAgICAgICAgIGZyYW1lX3JhdGUgPSBzZXR0aW5nc1sn
ZnInXQorICAgICAgICAgICAga2V5ZnJhbWVfcmF0ZSA9IHNldHRpbmdzWydrZnInXQorICAgICAg
ICAgICAgY29sb3IgPSBzZXR0aW5nc1snYyddCisKKyAgICAgICAgICAgIHNhbXBsZV9yYXRlID0g
c2V0dGluZ3NbJ2FzciddCisgICAgICAgICAgICBjaGFubmVscyA9IHNldHRpbmdzWydhY2gnXQor
ICAgICAgICAgICAgZnJlcXVlbmN5ID0gc2V0dGluZ3NbJ2FmcmVxJ10KKworICAgICAgICAgICAg
Y21kbGluZSA9IFsiZmZtcGVnIiwgIi15Il0KKworICAgICAgICAgICAgaWRfcHJlZml4ID0gIiIK
KyAgICAgICAgICAgIGlkX3BhcmFtcyA9ICIiCisgICAgICAgICAgICBpZiBoYXNfYXVkaW86Cisg
ICAgICAgICAgICAgICAgaWRfcHJlZml4ICs9ICJhIgorICAgICAgICAgICAgICAgIGlkX3BhcmFt
cyArPSAiLSVzSHotJXNjaCIgJSAoc2FtcGxlX3JhdGUsIGNoYW5uZWxzKQorCisgICAgICAgICAg
ICAgICAgY2hhbm5lbF9sYXlvdXQgPSAiRkMiCisgICAgICAgICAgICAgICAgc2luX2Z1bmMgPSAi
c2luKCVzKjIqUEkqdCkiICUgZnJlcXVlbmN5CisgICAgICAgICAgICAgICAgZnVuYyA9IHNpbl9m
dW5jCisgICAgICAgICAgICAgICAgaWYgY2hhbm5lbHMgPT0gMjoKKyAgICAgICAgICAgICAgICAg
ICAgY2hhbm5lbF9sYXlvdXQgKz0gInxCQyIKKyAgICAgICAgICAgICAgICAgICAgZnVuYyArPSAi
fCIgKyBzaW5fZnVuYworCisgICAgICAgICAgICAgICAgY21kbGluZSArPSBbIi1mIiwgImxhdmZp
IiwgIi1pIiwgImFldmFsc3JjPVwiJXM6cz0lczpjPSVzOmQ9JXNcIiIgJSAoZnVuYywgc2FtcGxl
X3JhdGUsIGNoYW5uZWxfbGF5b3V0LCBEVVJBVElPTildCisKKyAgICAgICAgICAgIGlmIGhhc192
aWRlbzoKKyAgICAgICAgICAgICAgICBpZF9wcmVmaXggKz0gInYiCisgICAgICAgICAgICAgICAg
aWRfcGFyYW1zICs9ICItJXMtJXNmcHMtJXNrZnIiICUgKGZyYW1lX3NpemUsIGZyYW1lX3JhdGUs
IGtleWZyYW1lX3JhdGUpCisKKyAgICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWYiLCAibGF2
ZmkiLCAiLWkiLCAiY29sb3I9JXM6ZHVyYXRpb249JXM6c2l6ZT0lczpyYXRlPSVzIiAlIChjb2xv
ciwgRFVSQVRJT04sIGZyYW1lX3NpemUsIGZyYW1lX3JhdGUpXQorCisgICAgICAgICAgICBpZiBo
YXNfYXVkaW86CisgICAgICAgICAgICAgICAgY21kbGluZSArPSBbIi1iOmEiLCAiJXNrIiAlIGF1
ZGlvX2JpdHJhdGVdCisKKyAgICAgICAgICAgIGlmIGhhc192aWRlbzoKKyAgICAgICAgICAgICAg
ICBjbWRsaW5lICs9IFsiLWI6diIsICIlc2siICUgdmlkZW9fYml0cmF0ZV0KKyAgICAgICAgICAg
ICAgICBjbWRsaW5lICs9IFsiLWtleWludF9taW4iLCAiJXMiICUga2V5ZnJhbWVfcmF0ZV0KKyAg
ICAgICAgICAgICAgICBjbWRsaW5lICs9IFsiLWciLCAiJXMiICUga2V5ZnJhbWVfcmF0ZV0KKwor
CisgICAgICAgICAgICAgICAgdGV4dE92ZXJsYXlJbmZvID0gIidkcmF3dGV4dD1mb250ZmlsZT1N
b25vOmZvbnRzaXplPTMyOnRleHQ9VGltZVxcXFw6XFxcXCAle3B0c30iCisgICAgICAgICAgICAg
ICAgdGV4dE92ZXJsYXlJbmZvICs9ICIsZHJhd3RleHQ9Zm9udGZpbGU9TW9ubzpmb250c2l6ZT0z
Mjp5PTMyOnRleHQ9U2l6ZVxcXFw6XFxcXCAlcyIgJSAoZnJhbWVfc2l6ZSkKKyAgICAgICAgICAg
ICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRzaXpl
PTMyOnk9NjQ6dGV4dD1CaXRyYXRlXFxcXDpcXFxcICVzIiAlIChiaXRyYXRlKQorICAgICAgICAg
ICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRmaWxlPU1vbm86Zm9udHNp
emU9MzI6eT05Njp0ZXh0PUZyYW1lUmF0ZVxcXFw6XFxcXCAlcyIgJSAoZnJhbWVfcmF0ZSkKKyAg
ICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1Nb25v
OmZvbnRzaXplPTMyOnk9MTI4OnRleHQ9S2V5RnJhbWVSYXRlXFxcXDpcXFxcICVzIiAlIChrZXlm
cmFtZV9yYXRlKQorCisgICAgICAgICAgICAgICAgaWYgaGFzX2F1ZGlvOgorICAgICAgICAgICAg
ICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIixkcmF3dGV4dD1mb250ZmlsZT1Nb25vOmZvbnRz
aXplPTMyOnk9MTYwOnRleHQ9U2FtcGxlUmF0ZVxcXFw6XFxcXCAlcyIgJSAoc2FtcGxlX3JhdGUp
CisgICAgICAgICAgICAgICAgICAgIHRleHRPdmVybGF5SW5mbyArPSAiLGRyYXd0ZXh0PWZvbnRm
aWxlPU1vbm86Zm9udHNpemU9MzI6eT0xOTI6dGV4dD1DaGFubmVsc1xcXFw6XFxcXCAlcyIgJSAo
Y2hhbm5lbHMpCisKKyAgICAgICAgICAgICAgICB0ZXh0T3ZlcmxheUluZm8gKz0gIiciCisgICAg
ICAgICAgICAgICAgY21kbGluZSArPSBbIi12ZiIsIHRleHRPdmVybGF5SW5mb10KKworICAgICAg
ICAgICAgZW5jb2RpbmdfaWQgPSAiJXMtJXNrJXMiICUgKGlkX3ByZWZpeCwgYml0cmF0ZSwgaWRf
cGFyYW1zKQorCisgICAgICAgICAgICBpZiBsZW4oZW5jb2RpbmdfaWRzKSA8IGxlbihFTkNPREVf
U0VUVElOR1MpOgorICAgICAgICAgICAgICAgIGVuY29kaW5nX2lkcy5hcHBlbmQoZW5jb2Rpbmdf
aWQpCisKKyAgICAgICAgICAgIGZpbGVuYW1lX2Jhc2UgPSAiJXMvdGVzdC0lcyIgJSAobWVkaWFf
Zm9ybWF0LCBlbmNvZGluZ19pZCkKKyAgICAgICAgICAgIG1lZGlhX2ZpbGVuYW1lID0gZmlsZW5h
bWVfYmFzZSArICIuIiArIG1lZGlhX2Zvcm1hdAorICAgICAgICAgICAgbWFuaWZlc3RfZmlsZW5h
bWUgPSBmaWxlbmFtZV9iYXNlICsgIi1tYW5pZmVzdC5qc29uIgorCisgICAgICAgICAgICBjbWRs
aW5lLmFwcGVuZChtZWRpYV9maWxlbmFtZSkKKyAgICAgICAgICAgIHJ1bihjbWRsaW5lKQorCisg
ICAgICAgICAgICAjIFJlbXV4IGZpbGUgc28gaXQgY29uZm9ybXMgdG8gTVNFIGJ5dGVzdHJlYW0g
cmVxdWlyZW1lbnRzLgorICAgICAgICAgICAgaWYgbWVkaWFfZm9ybWF0ID09ICJ3ZWJtIjoKKyAg
ICAgICAgICAgICAgICB0bXBfZmlsZW5hbWUgPSBtZWRpYV9maWxlbmFtZSArICIudG1wIgorICAg
ICAgICAgICAgICAgIHJ1bihbIm1zZV93ZWJtX3JlbXV4ZXIiLCBtZWRpYV9maWxlbmFtZSwgdG1w
X2ZpbGVuYW1lXSkKKyAgICAgICAgICAgICAgICBydW4oWyJtdiIsIHRtcF9maWxlbmFtZSwgbWVk
aWFfZmlsZW5hbWVdKQorICAgICAgICAgICAgZWxpZiBtZWRpYV9mb3JtYXQgPT0gIm1wNCI6Cisg
ICAgICAgICAgICAgICAgcnVuKFsiTVA0Qm94IiwgIi1kYXNoIiwgIjI1MCIsICItcmFwIiwgbWVk
aWFfZmlsZW5hbWVdKQorICAgICAgICAgICAgICAgIHJ1bihbIm12IiwgZmlsZW5hbWVfYmFzZSAr
ICJfZGFzaC5tcDQiLCBtZWRpYV9maWxlbmFtZV0pCisgICAgICAgICAgICAgICAgcnVuKFsicm0i
LCBmaWxlbmFtZV9iYXNlICsgIl9kYXNoLm1wZCJdKQorCisgICAgICAgICAgICBnZW5lcmF0ZV9t
YW5pZmVzdChtYW5pZmVzdF9maWxlbmFtZSwgbWVkaWFfZmlsZW5hbWUsIG1lZGlhX2Zvcm1hdCwg
aGFzX2F1ZGlvLCBoYXNfdmlkZW8pCisgICAgICAgIGdlbmVyYXRlX3Rlc3RfaHRtbChtZWRpYV9m
b3JtYXQsIENPTkZJR19DSEFOR0VfVEVTVFMsIGVuY29kaW5nX2lkcykKKworaWYgJ19fbWFpbl9f
JyA9PSBfX25hbWVfXzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTEyOGstNDQxMDBI
ei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTEyOGstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNv
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mM2NhYTQ2MGU5ZjA3ODI3ODY4MGM2Y2RiOWUxY2U5MTRhOGM1OWFlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCkBA
IC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYS0xMjhrLTQ0MTAwSHotMWNo
Lm1wNCIsCisgICAgInR5cGUiOiAiYXVkaW8vbXA0O2NvZGVjcz1cIm1wNGEuNDAuMlwiIgorfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTE5MmstNDQxMDBI
ei0xY2gtbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hLTE5MmstNDQxMDBIei0xY2gtbWFuaWZlc3QuanNv
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MWE2ZjMzOWI3OTE4MGJhOGU4MTFmMWM4OTljMGEzY2MxNGY0NDUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMv
bWVkaWEtc291cmNlL21wNC90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVzdC5qc29uCkBA
IC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYS0xOTJrLTQ0MTAwSHotMWNo
Lm1wNCIsCisgICAgInR5cGUiOiAiYXVkaW8vbXA0O2NvZGVjcz1cIm1wNGEuNDAuMlwiIgorfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAw
SHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0
MTAwSHotMWNoLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NzMxZTMxNzBlNWNhNTIzNDdlZmYzZGVmOGU1NDA5ZjEyMWI4YWNlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21w
NC90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5q
c29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYtMzg0ay00NDEw
MEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0
O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBm
cHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVz
b3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAt
MzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGRlZDYxMWY2ODJkNTJlNzgx
ODRhN2NiY2U0N2YzYjEwMmFhN2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTM4NGstNDQx
MDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBA
QAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYtMzg0ay00NDEwMEh6LTFjaC02NDB4NDgwLTMw
ZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0
MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9t
cDQvdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJj
ZS9tcDQvdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZl
c3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYTQ2MzQ5ZjkzZWQyMThkOTcwZjNlZmE4YjNlNzQ4YzAxNmRj
NzBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNv
dXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LWF2LTQ0OGstNDQxMDBIei0xY2gtNjQweDQ4MC0z
MGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAi
bXA0L3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisg
ICAgInR5cGUiOiAidmlkZW8vbXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgor
fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi02NDBrLTQ0
MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC1hdi02NDBr
LTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNGRhOWI0Y2UzZjczOGMzNDYyYmUyNDRlZTY5ZjQxYzJlNGMyMTc1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNl
L21wNC90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVz
dC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3QtYXYtNjQway00
NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8v
bXA0O2NvZGVjcz1cImF2YzEuNEQ0MDAxLG1wNGEuNDAuMlwiIgorfQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVz
b3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstMzIweDI0MC0yNGZwcy04a2ZyLW1h
bmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRp
YS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29u
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmEzMWI2ZDAyNDViYTVkZThhNTlkY2RmNzk1YmEyYWIwMDg2NDdlZjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9t
ZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5q
c29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAibXA0L3Rlc3Qtdi0xMjhrLTMyMHgy
NDAtMjRmcHMtOGtmci5tcDQiLAorICAgICJ0eXBlIjogInZpZGVvL21wNDtjb2RlY3M9XCJhdmMx
LjRENDAwMVwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVz
dC12LTEyOGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21wNC90ZXN0LXYtMTI4ay0z
MjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwMjg0NDEwNWJh
YTYyOWJmNDM4ZTFhNmU5YzFjYzYyZWQ5NzhiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEy
OGstMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAorewor
ICAgICJ1cmwiOiAibXA0L3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIubXA0IiwKKyAg
ICAidHlwZSI6ICJ2aWRlby9tcDQ7Y29kZWNzPVwiYXZjMS40RDQwMDFcIiIKK30KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMt
MTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3Vy
Y2VzL21lZGlhLXNvdXJjZS9tcDQvdGVzdC12LTEyOGstNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5p
ZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzRmNGJjYmRmY2NhZThlNWEzODY4MzFlOTEyODY3OTE3
Y2MwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnIt
bWFuaWZlc3QuanNvbgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIm1wNC90ZXN0LXYt
MTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLm1wNCIsCisgICAgInR5cGUiOiAidmlkZW8vbXA0O2Nv
ZGVjcz1cImF2YzEuNEQ0MDAxXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291
cmNlL21wNC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2UvbXA0L3Rl
c3Qtdi0yNTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MmQzZTFlNTI0ZWM3ZjkxZmQyNGNmZTA4ZDE5ZmU1ODA5NTM1NmFjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL21w
NC90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCAr
MSw0IEBACit7CisgICAgInVybCI6ICJtcDQvdGVzdC12LTI1NmstMzIweDI0MC0zMGZwcy0xMGtm
ci5tcDQiLAorICAgICJ0eXBlIjogInZpZGVvL21wNDtjb2RlY3M9XCJhdmMxLjRENDAwMVwiIgor
fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xMjhrLTQ0
MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVz
dC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUyNGRhODE0OWZlNmQzNmM4OTE1MDFkMDU5Zjg1NjIxZjA2Y2Rl
MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291
cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTI4ay00NDEwMEh6LTFjaC1tYW5pZmVzdC5q
c29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWEtMTI4ay00NDEw
MEh6LTFjaC53ZWJtIiwKKyAgICAidHlwZSI6ICJhdWRpby93ZWJtO2NvZGVjcz1cInZvcmJpc1wi
IgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYS0xOTJr
LTQ0MTAwSHotMWNoLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5p
ZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMmZhMWU4YzMzNWRmMTZmMTZjNDkxMDkwODhiOWE5MTQ4
YzUzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWEtMTkyay00NDEwMEh6LTFjaC1tYW5pZmVz
dC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWEtMTkyay00
NDEwMEh6LTFjaC53ZWJtIiwKKyAgICAidHlwZSI6ICJhdWRpby93ZWJtO2NvZGVjcz1cInZvcmJp
c1wiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYt
Mzg0ay00NDEwMEh6LTFjaC0zMjB4MjQwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0
LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmOWYwN2FmMTVkYjhhY2IwOGZlYzY5NjdhNmM5MmVmYjYyYmU1N2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRp
YS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtm
ci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0
LWF2LTM4NGstNDQxMDBIei0xY2gtMzIweDI0MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlw
ZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZwOCx2b3JiaXNcIiIKK30KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTM4NGstNDQxMDBIei0xY2gtNjQweDQ4
MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0
MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2VjODZiM2RiOTI3
Nzg3ODcwNWZkMTcwOGVjN2FlYmE3MWQwODg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC1hdi0z
ODRrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpAQCAtMCww
ICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC1hdi0zODRrLTQ0MTAwSHotMWNoLTY0
MHg0ODAtMzBmcHMtMTBrZnIud2VibSIsCisgICAgInR5cGUiOiAidmlkZW8vd2VibTtjb2RlY3M9
XCJ2cDgsdm9yYmlzXCIiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dl
Ym0vdGVzdC1hdi00NDhrLTQ0MTAwSHotMWNoLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3Qu
anNvbiBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJj
ZS93ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlm
ZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZhNTlkYjU4NmVkNTliYmIzMDhjZjQ5NjhjOWRlOTkwNzE5
M2E3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVz
b3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgw
LTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6
ICJ3ZWJtL3Rlc3QtYXYtNDQ4ay00NDEwMEh6LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLndlYm0i
LAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4LHZvcmJpc1wiIgorfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3QtYXYtNjQway00NDEwMEh6
LTFjaC02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LWF2LTY0MGstNDQx
MDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2
NzIzYjM0YTgxOWNmN2QzYTQ2OWFiY2EyYWQ2MGVhMTVhOWJmMzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2Vi
bS90ZXN0LWF2LTY0MGstNDQxMDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5q
c29uCkBAIC0wLDAgKzEsNCBAQAoreworICAgICJ1cmwiOiAid2VibS90ZXN0LWF2LTY0MGstNDQx
MDBIei0xY2gtNjQweDQ4MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93
ZWJtO2NvZGVjcz1cInZwOCx2b3JiaXNcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRp
YS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnItbWFuaWZlc3QuanNv
biBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93
ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMjRmcHMtOGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAwZTEwM2FjYTliNjZkOGM2ZTE0YThlZWIwZmQ3ODg4MzAyMDY5ZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3Vy
Y2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQwLTI0ZnBzLThrZnItbWFuaWZlc3QuanNvbgpAQCAt
MCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC12LTEyOGstMzIweDI0MC0yNGZw
cy04a2ZyLndlYm0iLAorICAgICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4XCIiCit9
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTEyOGstMzIw
eDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTEyOGstMzIweDI0MC0zMGZw
cy0xMGtmci1tYW5pZmVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkZWViNDAxZDk2OTExNWU1ZDNmZTE3
OGUzOWQwOTBjN2M3NjY0OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay0zMjB4MjQw
LTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KQEAgLTAsMCArMSw0IEBACit7CisgICAgInVybCI6
ICJ3ZWJtL3Rlc3Qtdi0xMjhrLTMyMHgyNDAtMzBmcHMtMTBrZnIud2VibSIsCisgICAgInR5cGUi
OiAidmlkZW8vd2VibTtjb2RlY3M9XCJ2cDhcIiIKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9t
ZWRpYS1zb3VyY2Uvd2VibS90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0
Lmpzb24gYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9tZWRpYS1zb3Vy
Y2Uvd2VibS90ZXN0LXYtMTI4ay02NDB4NDgwLTMwZnBzLTEwa2ZyLW1hbmlmZXN0Lmpzb24KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGUzMDQ2MDY2NzgxNjBmZjg3NWE0MWY5OTc5MGJlOGNiYThlNzUyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlh
LXNvdXJjZS93ZWJtL3Rlc3Qtdi0xMjhrLTY0MHg0ODAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNv
bgpAQCAtMCwwICsxLDQgQEAKK3sKKyAgICAidXJsIjogIndlYm0vdGVzdC12LTEyOGstNjQweDQ4
MC0zMGZwcy0xMGtmci53ZWJtIiwKKyAgICAidHlwZSI6ICJ2aWRlby93ZWJtO2NvZGVjcz1cInZw
OFwiIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0y
NTZrLTMyMHgyNDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbiBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvcmVzb3VyY2VzL21lZGlhLXNvdXJjZS93ZWJtL3Rlc3Qtdi0yNTZrLTMyMHgy
NDAtMzBmcHMtMTBrZnItbWFuaWZlc3QuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDcwNjc0YmZmNWQ3NWRh
YTk3MmU0NzJmYjIyMTkyODc0MDgxODNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC12LTI1Nmst
MzIweDI0MC0zMGZwcy0xMGtmci1tYW5pZmVzdC5qc29uCkBAIC0wLDAgKzEsNCBAQAoreworICAg
ICJ1cmwiOiAid2VibS90ZXN0LXYtMjU2ay0zMjB4MjQwLTMwZnBzLTEwa2ZyLndlYm0iLAorICAg
ICJ0eXBlIjogInZpZGVvL3dlYm07Y29kZWNzPVwidnA4XCIiCit9ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="230017"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>