<?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>208804</bug_id>
          
          <creation_ts>2020-03-09 05:00:35 -0700</creation_ts>
          <short_desc>Remove SampleBufferDisplayLayer sync IPC</short_desc>
          <delta_ts>2020-03-10 07:43:20 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1627715</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 05:00:35 -0700</bug_when>
    <thetext>Remove SampleBufferDisplayLayer sync IPC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627716</commentid>
    <comment_count>1</comment_count>
      <attachid>393022</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-09 05:16:13 -0700</bug_when>
    <thetext>Created attachment 393022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627721</commentid>
    <comment_count>2</comment_count>
      <attachid>393022</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-09 06:13:25 -0700</bug_when>
    <thetext>Comment on attachment 393022
Patch

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

r=me if the bots are happy

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:385
&gt; +        [m_boundsChangeListener begin: m_sampleBufferDisplayLayer-&gt;rootLayer()];

Nit: don&apos;t need a space after the &apos;:&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628209</commentid>
    <comment_count>3</comment_count>
      <attachid>393140</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 06:08:33 -0700</bug_when>
    <thetext>Created attachment 393140
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628225</commentid>
    <comment_count>4</comment_count>
      <attachid>393140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 07:00:00 -0700</bug_when>
    <thetext>Comment on attachment 393140
Patch for landing

Rejecting attachment 393140 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 393140, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13337675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628226</commentid>
    <comment_count>5</comment_count>
      <attachid>393145</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 07:03:28 -0700</bug_when>
    <thetext>Created attachment 393145
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628238</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 07:42:14 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 393145:

fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628240</commentid>
    <comment_count>7</comment_count>
      <attachid>393145</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 07:42:52 -0700</bug_when>
    <thetext>Comment on attachment 393145
Patch for landing

Clearing flags on attachment: 393145

Committed r258208: &lt;https://trac.webkit.org/changeset/258208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628241</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 07:42:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628244</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-10 07:43:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/60272200&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393022</attachid>
            <date>2020-03-09 05:16:13 -0700</date>
            <delta_ts>2020-03-10 06:08:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208804-20200309131611.patch</filename>
            <type>text/plain</type>
            <size>35932</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2EyYzZiNzJmYjY5NThm
ZTk5MThhYjdhNjQ0NWI0ODE1MGYzNmYxOC4uZGM1Njc1ZDI2YWMxODQzODc1YTBmMzY0ZmFhNWNi
MWU4MDBkMjBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTA5ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIHN5bmMgSVBDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYW4gaW5pdGlhbGl6ZSBtZXRob2QgdG8gaW5pdGlhbGl6ZSB0
aGUgc2FtcGxlIGJ1ZmZlciBkaXNwbGF5IGxheWVyLgorICAgICAgICBJdCB0YWtlcyBhIGNvbXBs
ZXRpb24gaGFuZGxlciBzbyB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBjYW4gYmUgYXN5bmNocm9u
b3VzLgorICAgICAgICBVcGRhdGUgdGhlIHBsYXllciB0bywgb24gaW5pdGlhbGl6YXRpb24gY2Fs
bGJhY2ssIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IG9ic2VydmVycyBhbmQgaG9vayB0aGUgZnVsbHNj
cmVlbiBtYW5hZ2VyLgorCisgICAgICAgIFVwZGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgdG8gbm8gbG9uZ2VyIGV4cG9zZSByb290TGF5ZXIgYW5kIHJvb3RMYXllckJv
dW5kc0RpZENoYW5nZS4KKyAgICAgICAgVGhpcyB3YXMgdXNlZCBieSB0aGUgcm9vdCBsYXllciBv
YnNlcnZlci4KKyAgICAgICAgSW5zdGVhZCwgcGFzcyB0aGUgcm9vdCBsYXllciB0byB0aGUgb2Jz
ZXJ2ZXIgd2hlbiBzdGFydGluZyB0aGUgb2JzZXJ2ZXIgYW5kIHBhc3MgYSBjYWxsYmFjayB0byB0
aGUgb2JzZXJ2ZXIuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgICgt
W1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBpbml0V2l0aENhbGxiYWNr
Ol0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIg
aW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdl
TGlzdGVuZXIgYmVnaW46XSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHND
aGFuZ2VMaXN0ZW5lciBzdG9wXSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3Vu
ZHNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVM
YXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp1cGRhdGVEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVm
ZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgaW5pdFdpdGhQYXJlbnQ6XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBiZWdpbl0pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpyb290TGF5ZXIgY29uc3QpOiBEZWxldGVkLgorCiAyMDIwLTAzLTA3ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBCZWdpbiBtb3Zpbmcgb2ZmIG9mIGxp
dmUgcmFuZ2VzIGZvciBXZWJLaXQgaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2YzRkMzZjM2M1ZWEw
NTg1OThiYmZlN2NjMjE0ODA4NjVlMjY0NDIuLjk5NmIwMThiZWVjZTVhZWE5MzAxNGRhMTYyNzk2
OWY5NWRiMDMwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDMtMDkgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgc3luYyBJUEMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODgwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgaW5pdGlhbGl6ZSBtZXRob2QgYXMgYW4gYXN5
bmMgSVBDLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0
Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpjcmVhdGVMYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQ
cmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5oOgorCiAyMDIwLTAzLTA3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBCZWdpbiBtb3Zpbmcgb2ZmIG9mIGxpdmUgcmFuZ2VzIGZvciBXZWJLaXQgaW50ZXJu
YWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCmlu
ZGV4IDk0ZTYwYjYzNzBiYTlkZDAxMmZiNmMxZjFiZDQ2YWIxZjIyYmZhZGIuLjUxZmU0ODBiZTc4
NDA3NjM0N2JkZDA2YjRlZjY1NDBkNjk2MWNlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgdm9pZCBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3IoTGF5ZXJDcmVhdG9yIGNyZWF0b3IpCiAg
ICAgbV9sYXllckNyZWF0b3IgPSBjcmVhdG9yOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShDbGll
bnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCitzdGQ6OnVuaXF1
ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmNyZWF0ZShDbGllbnQmIGNsaWVudCkKIHsKICAgICBpZiAobV9sYXllckNyZWF0b3IpCi0gICAg
ICAgIHJldHVybiBtX2xheWVyQ3JlYXRvcihjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOwor
ICAgICAgICByZXR1cm4gbV9sYXllckNyZWF0b3IoY2xpZW50KTsKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgcmV0dXJuIExvY2FsU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAg
ICByZXR1cm4gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShjbGllbnQpOwog
I2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IGM5NzUwYTZlOTI4ZmNiZDliMjM4OWFmZmFj
Njk2YWZmZWQ1NTRkNTcuLjliN2Q4MGI5MzVlMmZmMTVlYzVlYmQ2ZjRmZmI3YjhmM2E5M2IzYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1MYXllci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNDYsMTIgKzQ3LDEzIEBAIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCBXVEY6Ok1lZGlhVGltZSBzdHJlYW1UaW1lKCkgY29uc3Qg
PSAwOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKENsaWVudCYsIGJvb2wgaGlkZVJvb3RM
YXllciwgSW50U2l6ZSk7Ci0gICAgdXNpbmcgTGF5ZXJDcmVhdG9yID0gc3RkOjp1bmlxdWVfcHRy
PFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gKCopKENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXll
ciwgSW50U2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShDbGllbnQmKTsKKyAgICB1c2luZyBMYXll
ckNyZWF0b3IgPSBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiAoKiko
Q2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q3JlYXRvcihMYXll
ckNyZWF0b3IpOwogCiAgICAgdmlydHVhbCB+U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCkgPSBk
ZWZhdWx0OwogCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVy
LCBJbnRTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZGlkU3VjY2VlZCk+JiYpID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgZGlkRmFpbCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJv
b3RMYXllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmgKaW5kZXggOWQ5Y2FlYzA1NjllMzhjMjllMGVhNjU4YTE5
NmNmMzU3Y2I0YmEzOC4uYmUwOTczNGY2ZGRmY2RkZTUwMGJlODFhMjBlY2E1MDAwZDM3ZDM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oCkBAIC00MCw5ICs0MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZpbmFsIDogcHVi
bGljIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciwgcHVibGljIENhbk1ha2VXZWFrUHRyPExvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4gY3JlYXRlKENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSk7
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4gY3JlYXRlKENsaWVudCYpOwogCi0gICAgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIo
UmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiYmLCBDbGllbnQmLCBib29sIGhp
ZGVSb290TGF5ZXIsIEludFNpemUpOworICAgIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4mJiwgQ2xpZW50Jik7CiAgICAg
fkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCk7CiAKICAgICAvLyBBUEkgdXNlZCBieSBX
ZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyCkBAIC01OSw2ICs1OSw3IEBAIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFNob3VsZFVwZGF0ZVJvb3RMYXllciB7IE5vLCBZZXMgfTsK
ICAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckJvdW5kc0FuZFBvc2l0aW9uKENHUmVjdCwgTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb24sIFNob3VsZFVwZGF0ZVJvb3RMYXllcik7CiAKKyAgICB2b2lk
IGluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wgZGlkU3VjY2VlZCk+JiYpIGZpbmFsOwogICAgIGJvb2wgZGlkRmFpbCgpIGNv
bnN0IGZpbmFsOwogCiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5
TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCmluZGV4IGJkZGU1
OWVmZWJlMzM3ZWZkNTAwMDRlYTMxODQ0MjNhYzc4ZGNmYTMuLjUwYTAzZmE0MjMzZjgxODVlZjdk
ZGJjZmFkNzg3ZDZiNjNjNTgzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tCkBAIC0xNDUsMTkgKzE0NSwyMyBA
QCBzdGF0aWMgdm9pZCBydW5XaXRob3V0QW5pbWF0aW9ucyhjb25zdCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mIGZ1bmN0aW9uKQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKLXN0ZDo6
dW5pcXVlX3B0cjxMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVy
LCBJbnRTaXplIHNpemUpCitzdGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoQ2xpZW50JiBjbGll
bnQpCiB7CiAgICAgYXV0byBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBhZG9wdE5TKFtQQUw6
OmFsbG9jQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICBp
ZiAoIXNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICByZXR1cm4gbWFrZVVuaXF1ZTxMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4oV1RG
TW92ZShzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpLCBjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNp
emUpOworICAgIHJldHVybiBtYWtlVW5pcXVlPExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
PihXVEZNb3ZlKHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciksIGNsaWVudCk7CiB9CiAKLUxvY2Fs
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihS
ZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+JiYgc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLCBDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUp
CitMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIoUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiYmIHNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllciwgQ2xpZW50JiBjbGllbnQpCiAgICAgOiBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIoY2xpZW50KQogICAgICwgbV9zdGF0dXNDaGFuZ2VMaXN0ZW5lcihhZG9wdE5TKFtbV2Vi
QVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6
dGhpc10pKQogICAgICwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoV1RGTW92ZShzYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIpKQoreworfQorCit2b2lkIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjppbml0aWFsaXplKGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgZGlkU3VjY2VlZCk+JiYgY2FsbGJhY2spCiB7CiAgICAg
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkuYmFja2dyb3VuZENvbG9yID0gY2FjaGVk
Q0dDb2xvcihDb2xvcjo6YmxhY2spOwogICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdl
dCgpLmFuY2hvclBvaW50ID0geyAuNSwgLjUgfTsKQEAgLTE4MCw2ICsxODQsNyBAQCBMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoUmV0
YWluUHRyPEFWU2FtcGxlQgogICAgIFttX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBzZXROYW1l
OkAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIiXTsKICAgICBbbV9yb290TGF5ZXIgc2V0TmFtZTpAIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHBhcmVudCJdOwogI2VuZGlmCisgICAg
Y2FsbGJhY2sodHJ1ZSk7CiB9CiAKIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+TG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRl
eCAzZmM5NDhjMjdkYzEzMDEyMDBmNTM5ZmJmMWNjZDEzY2JiNTljMDU1Li5iOWVhNjY4YmYxYmFi
ODVlMWY3MTE0ZTk1ZWIyODFiYzBiMzQwMGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApA
QCAtNzgsMTAgKzc4LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4obV9s
b2dJZGVudGlmaWVyKTsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBm
aW5hbDsKIAorcHJpdmF0ZToKICAgICBQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIoKSBjb25zdDsK
ICAgICB2b2lkIHJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwogCi1wcml2YXRlOgogICAgIC8v
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQogCiAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1w
bGVtZW50IG5lY2Vzc2FyeSBjb25mb3JtYXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVs
ZW1lbnQgZm9yIE1lZGlhU3RyZWFtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMDQ5
ZjdhNTRmNTQ1YmI0N2I1YjBmM2NlNTYwYmI3ZjRhNmE0ZjZjYy4uNzI2ZDk4NTA0MjIxMDIyNDc4
M2E4NzE0NWMwZDRlMjRlYTFkOWUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAt
NDksMjMgKzQ5LDI0IEBACiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KIAogQGludGVyZmFjZSBXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIg
OiBOU09iamVjdCB7Ci0gICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM+IF9wYXJlbnQ7CisgICAgRnVuY3Rpb248dm9pZCgpPiBfY2FsbGJhY2s7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9yb290TGF5ZXI7CiB9CiAKLS0gKGlkKWluaXRXaXRo
UGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqKWNh
bGxiYWNrOworLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooRnVuY3Rpb248dm9pZCgpPiYmKSBjYWxs
YmFjazsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKLS0gKHZvaWQpYmVnaW47CistICh2b2lkKWJlZ2lu
OihDQUxheWVyKikgbGF5ZXI7CiAtICh2b2lkKXN0b3A7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlv
biBXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIKIAotLSAoaWQpaW5pdFdp
dGhQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyop
cGFyZW50CistIChpZClpbml0V2l0aENhbGxiYWNrOihGdW5jdGlvbjx2b2lkKCk+JiYpIGNhbGxi
YWNrCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBfcGFyZW50ID0gbWFrZVdlYWtQdHIocGFyZW50KTsKKyAgICBfY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtNzksNTMgKzgw
LDQ0IEBACiAtICh2b2lkKWludmFsaWRhdGUKIHsKICAgICBbc2VsZiBzdG9wXTsKLSAgICBfcGFy
ZW50ID0gbnVsbHB0cjsKKyAgICBfY2FsbGJhY2sgPSBudWxscHRyOwogfQogCi0tICh2b2lkKWJl
Z2luCistICh2b2lkKWJlZ2luOihDQUxheWVyKikgbGF5ZXIKIHsKLSAgICBBU1NFUlQoX3BhcmVu
dCk7Ci0gICAgQVNTRVJUKF9wYXJlbnQtPnJvb3RMYXllcigpKTsKLQotICAgIFtfcGFyZW50LT5y
b290TGF5ZXIoKSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiIG9wdGlvbnM6
TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om5pbF07CisgICAgQVNTRVJUKF9j
YWxsYmFjayk7CisgICAgX3Jvb3RMYXllciA9IGxheWVyOworICAgIFtfcm9vdExheWVyIGFkZE9i
c2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2
aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKIH0KIAogLSAodm9pZClzdG9wCiB7Ci0gICAgaWYg
KCFfcGFyZW50KQorICAgIGlmICghX3Jvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKF9wYXJlbnQtPnJvb3RMYXllcigpKQotICAgICAgICBbX3BhcmVudC0+cm9vdExheWVyKCkg
cmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIl07CisgICAgW19yb290TGF5
ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIl07CisgICAgX3Jvb3RM
YXllciA9IG51bGxwdHI7CiB9CiAKIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNT
dHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkg
KiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKIHsKICAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7CiAgICAgVU5VU0VEX1BBUkFNKGtleVBhdGgpOwotICAgIEFTU0VSVChfcGFyZW50KTsK
LQotICAgIGlmICghX3BhcmVudCkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFtbY2hhbmdl
IHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29s
VmFsdWVdKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoKENBTGF5ZXIgKilvYmplY3QgPT0g
X3BhcmVudC0+cm9vdExheWVyKCkpIHsKKyAgICBpZiAoKENBTGF5ZXIgKilvYmplY3QgPT0gX3Jv
b3RMYXllci5nZXQoKSkgewogICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAi
Ym91bmRzIl0pIHsKLSAgICAgICAgICAgIGlmICghX3BhcmVudCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KICAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICAgICAg
ICAgIF9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOworICAgICAgICAgICAgICAg
IGlmIChfY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgIF9jYWxsYmFjaygpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJSb290U2FtcGxlQnVmZmVyQm91
bmRzQ2hhbmdlTGlzdGVuZXI+KHNlbGYpXSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5yb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2Uo
KTsKKyAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNrKQorICAgICAg
ICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2soKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTQ3LDkgKzEzOSwxMyBAQCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QyhNZWRpYQogICAgICwgbV9sb2dnZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQogICAg
ICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCiAg
ICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXllck1hbmFnZXJPYmpD
PihtX2xvZ2dlciwgbV9sb2dJZGVudGlmaWVyKSkKLSAgICAsIG1fYm91bmRzQ2hhbmdlTGlzdGVu
ZXIoYWRvcHROUyhbW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBhbGxv
Y10gaW5pdFdpdGhQYXJlbnQ6dGhpc10pKQogewogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIp
OworICAgIG1fYm91bmRzQ2hhbmdlTGlzdGVuZXIgPSBhZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1
ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOlt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwor
ICAgIH1dKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCkKQEAgLTM2OSwyMCArMzY1LDI1IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMo
KQogICAgIGlmICghbV9tZWRpYVN0cmVhbVByaXZhdGUgfHwgIW1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmVWaWRlb1RyYWNrKCkgfHwgIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5hY3RpdmVWaWRl
b1RyYWNrKCktPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBzaXplID0g
c25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsK
LSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Y3JlYXRlKCp0aGlzLCBoaWRlUm9vdExheWVyKCksIHNpemUpOwotCi0gICAgaWYgKCFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcikgewotICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgIkNyZWF0aW5nIHRoZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZmFpbGVkLiIpOworICAg
IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpj
cmVhdGUoKnRoaXMpOworICAgIEVSUk9SX0xPR19JRighbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIsIExPR0lERU5USUZJRVIsICJDcmVhdGluZyB0aGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
IGZhaWxlZC4iKTsKKyAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAg
ICByZXR1cm47Ci0gICAgfQogCi0gICAgdXBkYXRlUmVuZGVyaW5nTW9kZSgpOwotICAgIHVwZGF0
ZURpc3BsYXlMYXllcigpOworICAgIGF1dG8gc2l6ZSA9IHNuYXBwZWRJbnRSZWN0KG1fcGxheWVy
LT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpKS5zaXplKCk7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXItPmluaXRpYWxpemUoaGlkZVJvb3RMYXllcigpLCBzaXplLCBbdGhpcywgd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2l6ZV0oYXV0byBkaWRTdWNjZWVkKSB7CisgICAgICAg
IGlmICghZGlkU3VjY2VlZCkgeworICAgICAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIs
ICJJbml0aWFsaXppbmcgdGhlIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBmYWlsZWQuIik7Cisg
ICAgICAgICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IG51bGxwdHI7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdXBkYXRlUmVuZGVyaW5nTW9kZSgpOwor
ICAgICAgICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIAotICAgIG1fdmlkZW9MYXllck1hbmFnZXIt
PnNldFZpZGVvTGF5ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLCBz
aXplKTsKKyAgICAgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCksIHNpemUpOwogCi0gICAgW21fYm91bmRz
Q2hhbmdlTGlzdGVuZXIgYmVnaW5dOworICAgICAgICBbbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBi
ZWdpbjogbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpXTsKKyAgICB9KTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRlc3Ryb3lM
YXllcnMoKQpAQCAtNDUzLDExICs0NTQsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSgpCiAgICAgSU5GT19MT0coTE9HSURFTlRJRklF
Uik7CiB9CiAKLVBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cm9vdExheWVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIgPyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCkgOiBudWxs
cHRyOwotfQotCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIGlmICghbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSB8
fCBtX2Rpc3BsYXlNb2RlID09IE5vbmUpCkBAIC0xMDQ2LDcgKzEwNDIsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKCkKICAg
ICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlQm91bmRzQW5kUG9zaXRpb24ocm9v
dExheWVyKCkuYm91bmRzLCBtX3ZpZGVvUm90YXRpb24pOworICAgIG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLT51cGRhdGVCb3VuZHNBbmRQb3NpdGlvbihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+cm9vdExheWVyKCkuYm91bmRzLCBtX3ZpZGVvUm90YXRpb24pOwogfQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyQm91bmRzRGlkQ2hh
bmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCBiZDdkMDdmMGQzNTY5YzlmMDNhZWVlYTU2NjYyOTI4ZjI2
YjAwNjllLi5iODNjMDE2MDYzZDMzYTM5NGViMDg4ZDJkNjNlZmM4M2MyNGMwNTBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC00MzYsMTIgKzQzNiw2IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAgICAg
ICAgIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2VG
cm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURF
T19UUkFDSykKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewotICAgICAgICBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotI2VuZGlmCiAjZW5kaWYK
ICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCA1
MGM3NzYxY2UxNTZlYjI1NTFhYWMyMmE1MzJmZDMzZDUzZTAwY2JkLi5kNjkxMzA0ZDJjMzhjOTQ5
ZDYxYjNlZTFjY2FjOWZjYzBjMGQ3MDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuY3BwCkBAIC0zNywzMiArMzcsMzMgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3N0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewotICAg
IGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyPihuZXcgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKGlkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbiksIGhpZGVSb290TGF5ZXIsIHNpemUpKTsKKyAgICBhdXRvIGxheWVyID0g
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24p
KSk7CiAgICAgcmV0dXJuIGxheWVyLT5tX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA/IFdURk1v
dmUobGF5ZXIpIDogbnVsbHB0cjsKIH0KIAotUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQorUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQotICAgICwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIoTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RM
YXllciwgc2l6ZSkpCisgICAgLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihMb2NhbFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlzKSkKIHsKICAgICBBU1NFUlQobV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIpOwotICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVy
SG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKLSAgICBt
X2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci0+cm9vdExheWVyKCkpOwogfQogCi1SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
On5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKQordm9pZCBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNp
emUsIExheWVySW5pdGlhbGl6YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogeworICAgIG1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLT5pbml0aWFsaXplKGhpZGVSb290TGF5ZXIsIHNpemUsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGRpZFN1Y2NlZWQpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICFkaWRTdWNjZWVkKQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHsgfSk7CisgICAg
ICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZv
ckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKKyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRSb290TGF5ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpKTsK
KyAgICAgICAgY2FsbGJhY2sobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSk7Cisg
ICAgfSk7CiB9CiAKLU9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4gUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0SUQoKQorUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCkKIHsKLSAgICByZXR1cm4g
bV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKTsKIH0KIAogQ0dSZWN0IFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Ym91bmRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oCmluZGV4IDcyMDExNjA2NDVkMGUxMzliOWNjZTk4OTk3NzYyNDA5NzA5Y2Vh
MGEuLmIzYzUwZDI5NWU2ODI2Nzk4NjA0YzlhNGFiNTZkNzU2ZDNjNWE0NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtNDUsMTcgKzQ1LDE5IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIDogcHVibGljIFdlYkNv
cmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2Vi
Q29yZTo6SW50U2l6ZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKICAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKCk7CiAKKyAgICB1c2luZyBMYXllckluaXRpYWxpemF0aW9uQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4pPjsK
KyAgICB2b2lkIGluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXpl
LCBMYXllckluaXRpYWxpemF0aW9uQ2FsbGJhY2smJik7CisKICAgICAvLyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CiAKLSAgICBPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+
IGNvbnRleHRJRCgpOwogICAgIENHUmVjdCBib3VuZHMoKSBjb25zdDsKICAgICAKIHByaXZhdGU6
Ci0gICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXll
ciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYpOwogCiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIs
IGJvb2wgaGlkZVJvb3RMYXllcik7CiAgICAgdm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dB
ZmZpbmVUcmFuc2Zvcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5jcHAKaW5kZXggOTIwNjI2ODNkMzEzYTgwNjMzYzVhM2Y0ODRjZjBkODQxZmE2MWI2ZC4u
ZGFjYmE3YjIwOGNmYTQ4YzFiOGVlYjE0NzY4NzQ1Yzg3YzE5OTk4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCkBAIC00NywxNSArNDcsMTEgQEAg
dm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5
ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGkKICAgICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi0vLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9y
IGNvZGUgdG8gdXNlIGFuIGFzeW5jaHJvbm91cyBJUEMuCi12b2lkIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRT
aXplIHNpemUsIE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
OjpDcmVhdGVMYXllckRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50
U2l6ZSBzaXplLCBMYXllckNyZWF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBBU1NF
UlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBhdXRvIGxheWVyID0gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoaWRlbnRpZmllciwgbV9jb25uZWN0
aW9uLmNvcHlSZWYoKSwgaGlkZVJvb3RMYXllciwgc2l6ZSk7Ci0gICAgaWYgKCFsYXllcikKLSAg
ICAgICAgcmV0dXJuIHJlcGx5KHsgfSk7Ci0KLSAgICByZXBseShsYXllci0+Y29udGV4dElEKCkp
OworICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0
ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpKTsKKyAgICBsYXllci0+aW5pdGlh
bGl6ZShoaWRlUm9vdExheWVyLCBzaXplLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9sYXll
cnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUobGF5ZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAppbmRleCA4ZTA3MzBhNWY3NWExN2YxNzk2OWVm
YzRmNzQ4YzdmZjY3ZWFhMjViLi5hY2U2ZDVhM2ZmNjlhYmVhYmRhMWQ4MjZlYTQ5OTQ1MDE3MTRj
OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAt
NTMsMTQgKzUzLDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
IH0KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpFbmNvZGVyPiYgZW5jb2RlcikgeyBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7IH0KIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVySWRlbnRpZmllciwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplLCBNZXNz
YWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXJE
ZWxheWVkUmVwbHkmJik7CisgICAgdXNpbmcgTGF5ZXJDcmVhdGlvbkNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+KT4mJjsKKyAg
ICB2b2lkIGNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIGJv
b2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSwgTGF5ZXJDcmVhdGlvbkNhbGxiYWNr
KTsKICAgICB2b2lkIHJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpp
bmRleCA3OTM0NjgyNzg5MDQ3MTY5OGM4MThiMmJiZGZkODRhZGM0OWEwNGJmLi5iZWU0ZTg5YmZi
YmY3MGM4ZGUzMmZkNmNhYzdjNTYxY2EyN2IwNDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3
IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBSZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIENy
ZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCwg
Ym9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpIC0+IChPcHRpb25hbDxX
ZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElEKSBTeW5jaHJvbm91cworICAg
IENyZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBp
ZCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUpIC0+IChPcHRpb25h
bDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJRD4gY29udGV4dElEKSBBc3luYwogICAgIFJl
bGVhc2VMYXllcihXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQp
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA4NzY1MjFkOGMwNjFkMWY0
MmQ1NjYwNDEzOWMwZDg2NGMyNjA5MGM2Li5hNjBiOWNlYjg0OTE1YmYxZWYxMGYzMWFjYzNlYWM5
YmRjOTE0NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0yNjcsOCArMjY3
LDggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKGNv
bnN0IFNldHRpbmdzJiBzZXR0aW5ncykKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKHNldHRpbmdzLnVz
ZUdQVVByb2Nlc3NGb3JNZWRpYSgpKSB7Ci0gICAgICAgIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6c2V0Q3JlYXRvcihbXShhdXRvJiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXll
ciwgYXV0byBzaXplKSB7Ci0gICAgICAgICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyKCkuY3JlYXRlTGF5ZXIoY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICAg
ICAgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXRDcmVhdG9yKFtdKGF1dG8m
IGNsaWVudCkgeworICAgICAgICAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cigpLmNyZWF0ZUxheWVyKGNsaWVudCk7CiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKaW5kZXggYTg3MDUwMTkwNWQwNDBkYWIzMDg3MGVh
YjY4OTA2YjNkNDUxYjM0Ny4uNjViOTBhY2MzNzZlMWU0ODhiMjRjNTYwMWVkNWFiMzg3ZWRkY2Y3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC00MSwyOCArNDEsMjkgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5p
cXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFnZXIsIENsaWVu
dCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVl
X3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFnZXIsIENsaWVudCYg
Y2xpZW50KQogewotICAgIGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyPihuZXcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKG1hbmFnZXIsIGNsaWVu
dCwgaGlkZVJvb3RMYXllciwgc2l6ZSkpOwotICAgIHJldHVybiBsYXllci0+cm9vdExheWVyKCkg
PyBXVEZNb3ZlKGxheWVyKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+KG5ldyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIobWFu
YWdlciwgY2xpZW50KSk7CiB9CiAKLVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFnZXIs
IENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK1NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFnZXIsIENsaWVudCYgY2xpZW50KQogICAgIDogV2Vi
Q29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKGNsaWVudCkKICAgICAsIG1fbWFuYWdlciht
YWtlV2Vha1B0cihtYW5hZ2VyKSkKICAgICAsIG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAs
IG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQogewogICAgIG1hbmFnZXIuYWRkTGF5ZXIoKnRoaXMpOworfQogCi0gICAgT3B0aW9uYWw8
TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SWQ7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24t
PnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
OjpDcmVhdGVMYXllciB7IG1faWRlbnRpZmllciwgaGlkZVJvb3RMYXllciwgc2l6ZSB9LCBNZXNz
YWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXI6
OlJlcGx5IHsgY29udGV4dElkIH0sIDApKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWNv
bnRleHRJZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0
aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCpjb250ZXh0
SWQpOwordm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUoYm9vbCBoaWRl
Um9vdExheWVyLCBJbnRTaXplIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y2FsbGJhY2spCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVyIHsg
bV9pZGVudGlmaWVyLCBoaWRlUm9vdExheWVyLCBzaXplIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvIGNvbnRl
eHRJZCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1
cm4gY2FsbGJhY2soZmFsc2UpOworICAgICAgICBpZiAoY29udGV4dElkKQorICAgICAgICAgICAg
bV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZv
ckhvc3RpbmdDb250ZXh0KCpjb250ZXh0SWQpOworICAgICAgICBjYWxsYmFjayghIW1fdmlkZW9M
YXllcik7CisgICAgfSk7CiB9CiAKIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDRiODY3
Mjc2YjllOWFmNmJhM2IyN2UwMWI0NTI2OGEwZWQ4YTE2MmYuLmVkMGM1OGFlZDhlZWVkZTU5MDg1
NjE0NDYyNjU3ZTk3YzE2ZTVjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC0z
OCw3ICszOCw3IEBAIGNsYXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAKIGNs
YXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gewogcHVibGljOgotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUo
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RM
YXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyJiwgQ2xpZW50Jik7CiAgICAgflNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwogCiAgICAg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC00Niw5ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKIAogcHJpdmF0ZToKLSAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29y
ZTo6SW50U2l6ZSk7CisgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXImLCBDbGllbnQmKTsKIAogICAgIC8vIFdlYkNvcmU6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcgorICAgIHZvaWQgaW5pdGlhbGl6ZShib29sIGhpZGVSb290TGF5ZXIs
IFdlYkNvcmU6OkludFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OwogICAgIGJvb2wgZGlkRmFpbCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgdXBkYXRlRGlzcGxh
eU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpIGZpbmFsOwog
ICAgIHZvaWQgdXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtKSBmaW5hbDsK
QEAgLTU4LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVucXVldWVTYW1wbGUoV2ViQ29y
ZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkg
ZmluYWw7CiAgICAgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgZmluYWw7Ci0gICAgCisKICAg
ICB2b2lkIHNldERpZEZhaWwoYm9vbCk7CiAKICAgICBXZWFrUHRyPFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI+IG1fbWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5jcHAKaW5kZXggZjQ4NjMzMTFjZDE3NWE2MDBmYjZhNzQ5MjRhN2ZjM2ZjZGM2
N2E3Ny4uZGNiNjZhYWFhZTVmYWI1NzBlZjE4MDQ3ZWNlN2MyOTdmMGM4Y2JjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKQEAgLTQwLDkgKzQwLDkgQEAg
dm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY28KICAgICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpj
cmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCYgY2xpZW50LCBib29s
IGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50JiBj
bGllbnQpCiB7Ci0gICAgYXV0byBsYXllciA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3Jl
YXRlKCp0aGlzLCBjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUpOworICAgIGF1dG8gbGF5ZXIg
PSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgY2xpZW50KTsKICAgICBp
ZiAoIWxheWVyKQogICAgICAgICByZXR1cm4geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmgKaW5kZXggZWNjM2FmNzBkODVmODdjY2ZiM2RlMjYxNGQzZjg1OTNj
OGQ0MzRmMi4uZDgyODc2NTJkNGViODE5YTQ3ZDBiZWY3NzA4ZWJiOTg4YzlmYTU4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAtNDIsNyArNDIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZW1vdmVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKTsK
IAogICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCYs
IGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlTGF5ZXIoU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmKTsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwPFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFdlYWtQdHI8U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPj4gbV9sYXllcnM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393140</attachid>
            <date>2020-03-10 06:08:33 -0700</date>
            <delta_ts>2020-03-10 07:03:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208804-20200310140831.patch</filename>
            <type>text/plain</type>
            <size>36023</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYyOGNiM2RjOWFmMjVi
NGQ3ZTQ3NTRjNmViYzZlOTNkMTJmZmFhNC4uOWI1ZTA1MzQ5YjdhYTViNWNiNDZhNjAyZjdjMGU1
MmQ4ZjYxOTE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTEwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIHN5bmMgSVBDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYW4gaW5pdGlhbGl6ZSBtZXRob2QgdG8gaW5pdGlhbGl6ZSB0
aGUgc2FtcGxlIGJ1ZmZlciBkaXNwbGF5IGxheWVyLgorICAgICAgICBJdCB0YWtlcyBhIGNvbXBs
ZXRpb24gaGFuZGxlciBzbyB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBjYW4gYmUgYXN5bmNocm9u
b3VzLgorICAgICAgICBVcGRhdGUgdGhlIHBsYXllciB0bywgb24gaW5pdGlhbGl6YXRpb24gY2Fs
bGJhY2ssIGNyZWF0ZSB0aGUgbmVjZXNzYXJ5IG9ic2VydmVycyBhbmQgaG9vayB0aGUgZnVsbHNj
cmVlbiBtYW5hZ2VyLgorCisgICAgICAgIFVwZGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMgdG8gbm8gbG9uZ2VyIGV4cG9zZSByb290TGF5ZXIgYW5kIHJvb3RMYXllckJv
dW5kc0RpZENoYW5nZS4KKyAgICAgICAgVGhpcyB3YXMgdXNlZCBieSB0aGUgcm9vdCBsYXllciBv
YnNlcnZlci4KKyAgICAgICAgSW5zdGVhZCwgcGFzcyB0aGUgcm9vdCBsYXllciB0byB0aGUgb2Jz
ZXJ2ZXIgd2hlbiBzdGFydGluZyB0aGUgb2JzZXJ2ZXIgYW5kIHBhc3MgYSBjYWxsYmFjayB0byB0
aGUgb2JzZXJ2ZXIuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjppbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgICgt
W1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBpbml0V2l0aENhbGxiYWNr
Ol0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIg
aW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdl
TGlzdGVuZXIgYmVnaW46XSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHND
aGFuZ2VMaXN0ZW5lciBzdG9wXSk6CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3Vu
ZHNDaGFuZ2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVM
YXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp1cGRhdGVEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVm
ZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgaW5pdFdpdGhQYXJlbnQ6XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBiZWdpbl0pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpyb290TGF5ZXIgY29uc3QpOiBEZWxldGVkLgorCiAyMDIwLTAzLTEwICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3luYyBJUEMgd2hl
biBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJlIHNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNjNkMWQyMDY5
M2Y4OTJlZjIzMzAwNzUzMzc5YTFjM2Y1MjY4N2RlLi4wY2MxYTc5NzhiYzA3M2FjYmIxNGU5OTYw
NDc4MjA2OGEyNTZkZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTEwICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyIHN5bmMgSVBDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGluaXRpYWxpemUgbWV0aG9kIGFzIGFu
IGFzeW5jIElQQy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
c3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBk
YXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaDoKKwogMjAyMC0wMy0xMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIHN5bmMgSVBDIHdoZW4gY3JlYXRpbmcgYSByZW1vdGUgY2Fw
dHVyZSBzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHAKaW5kZXggOTRlNjBiNjM3MGJhOWRkMDEyZmI2YzFmMWJkNDZhYjFmMjJiZmFkYi4uNTFm
ZTQ4MGJlNzg0MDc2MzQ3YmRkMDZiNGVmNjU0MGQ2OTYxY2VlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTM3LDEzICszNywxMyBAQCB2
b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihMYXllckNyZWF0b3IgY3Jl
YXRvcikKICAgICBtX2xheWVyQ3JlYXRvciA9IGNyZWF0b3I7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0
cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3Jl
YXRlKENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3N0
ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50KQogewogICAgIGlmIChtX2xheWVyQ3JlYXRv
cikKLSAgICAgICAgcmV0dXJuIG1fbGF5ZXJDcmVhdG9yKGNsaWVudCwgaGlkZVJvb3RMYXllciwg
c2l6ZSk7CisgICAgICAgIHJldHVybiBtX2xheWVyQ3JlYXRvcihjbGllbnQpOwogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICByZXR1cm4gTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNp
emUpOworICAgIHJldHVybiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKGNs
aWVudCk7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKaW5kZXggYzk3NTBhNmU5MjhmY2JkOWIy
Mzg5YWZmYWM2OTZhZmZlZDU1NGQ1Ny4uOWI3ZDgwYjkzNWUyZmYxNWVjNWViZDZmNGZmYjdiOGYz
YTkzYjNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC00NiwxMiArNDcs
MTMgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIFdURjo6TWVkaWFUaW1lIHN0cmVhbVRpbWUo
KSBjb25zdCA9IDA7CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoQ2xpZW50JiwgYm9vbCBo
aWRlUm9vdExheWVyLCBJbnRTaXplKTsKLSAgICB1c2luZyBMYXllckNyZWF0b3IgPSBzdGQ6OnVu
aXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiAoKikoQ2xpZW50JiwgYm9vbCBoaWRl
Um9vdExheWVyLCBJbnRTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKENsaWVudCYpOworICAgIHVz
aW5nIExheWVyQ3JlYXRvciA9IHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI+ICgqKShDbGllbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRDcmVh
dG9yKExheWVyQ3JlYXRvcik7CiAKICAgICB2aXJ0dWFsIH5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIoKSA9IGRlZmF1bHQ7CiAKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShib29sIGhpZGVS
b290TGF5ZXIsIEludFNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBkaWRTdWNjZWVk
KT4mJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRGYWlsKCkgY29uc3QgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlMYXllciwgYm9v
bCBoaWRlUm9vdExheWVyKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAppbmRleCA5ZDljYWVjMDU2OWUzOGMyOWUw
ZWE2NThhMTk2Y2YzNTdjYjRiYTM4Li5iZTA5NzM0ZjZkZGZjZGRlNTAwYmU4MWEyMGVjYTUwMDBk
MzdkMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmgKQEAgLTQwLDkgKzQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZmlu
YWwgOiBwdWJsaWMgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPExvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoQ2xpZW50JiwgYm9vbCBoaWRlUm9vdExheWVyLCBJ
bnRTaXplKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPExvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBjcmVhdGUoQ2xpZW50Jik7CiAKLSAgICBMb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcihSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+JiYsIENsaWVudCYs
IGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSk7CisgICAgTG9jYWxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIoUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiYmLCBDbGllbnQm
KTsKICAgICB+TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKTsKIAogICAgIC8vIEFQSSB1
c2VkIGJ5IFdlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIKQEAgLTU5LDYgKzU5
LDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgU2hvdWxkVXBkYXRlUm9vdExheWVyIHsgTm8s
IFllcyB9OwogICAgIHZvaWQgdXBkYXRlUm9vdExheWVyQm91bmRzQW5kUG9zaXRpb24oQ0dSZWN0
LCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiwgU2hvdWxkVXBkYXRlUm9vdExheWVyKTsKIAor
ICAgIHZvaWQgaW5pdGlhbGl6ZShib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBkaWRTdWNjZWVkKT4mJikgZmluYWw7CiAgICAgYm9vbCBkaWRG
YWlsKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlk
ZURpc3BsYXlMYXllciwgYm9vbCBoaWRlUm9vdExheWVyKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KaW5k
ZXggYmRkZTU5ZWZlYmUzMzdlZmQ1MDAwNGVhMzE4NDQyM2FjNzhkY2ZhMy4uNTBhMDNmYTQyMzNm
ODE4NWVmN2RkYmNmYWQ3ODdkNmI2M2M1ODMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KQEAgLTE0NSwxOSAr
MTQ1LDIzIEBAIHN0YXRpYyB2b2lkIHJ1bldpdGhvdXRBbmltYXRpb25zKGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0K
IAotc3RkOjp1bmlxdWVfcHRyPExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBMb2NhbFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBib29sIGhpZGVS
b290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4gTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShDbGll
bnQmIGNsaWVudCkKIHsKICAgICBhdXRvIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckluc3RhbmNlKCkgaW5pdF0p
OwogICAgIGlmICghc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyPihXVEZNb3ZlKHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciksIGNsaWVudCwgaGlkZVJvb3RM
YXllciwgc2l6ZSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TG9jYWxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI+KFdURk1vdmUoc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKSwgY2xpZW50KTsKIH0K
IAotTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyKFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4mJiBzYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIsIENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIEludFNp
emUgc2l6ZSkKK0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpMb2NhbFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcihSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+JiYgc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLCBDbGllbnQmIGNsaWVudCkKICAgICA6IFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcihjbGllbnQpCiAgICAgLCBtX3N0YXR1c0NoYW5nZUxpc3RlbmVyKGFkb3B0
TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlclN0YXR1c0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0
aFBhcmVudDp0aGlzXSkpCiAgICAgLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihXVEZNb3Zl
KHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikpCit7Cit9CisKK3ZvaWQgTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNp
emUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBkaWRTdWNjZWVkKT4mJiBjYWxsYmFjaykK
IHsKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKS5iYWNrZ3JvdW5kQ29sb3Ig
PSBjYWNoZWRDR0NvbG9yKENvbG9yOjpibGFjayk7CiAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuZ2V0KCkuYW5jaG9yUG9pbnQgPSB7IC41LCAuNSB9OwpAQCAtMTgwLDYgKzE4NCw3IEBA
IExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcihSZXRhaW5QdHI8QVZTYW1wbGVCCiAgICAgW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
IHNldE5hbWU6QCJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBBVlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciJdOwogICAgIFttX3Jvb3RMYXllciBzZXROYW1lOkAiTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgcGFyZW50Il07CiAjZW5k
aWYKKyAgICBjYWxsYmFjayh0cnVlKTsKIH0KIAogTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6On5Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qy5oCmluZGV4IDNmYzk0OGMyN2RjMTMwMTIwMGY1MzlmYmYxY2NkMTNjYmI1OWMwNTUuLmI5ZWE2
NjhiZjFiYWI4NWUxZjcxMTRlOTVlYjI4MWJjMGIzNDAwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCkBAIC03OCwxMCArNzgsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IHZvaWQqIGxvZ0lk
ZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZv
aWQqPihtX2xvZ0lkZW50aWZpZXIpOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0IGZpbmFsOwogCitwcml2YXRlOgogICAgIFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXllcigp
IGNvbnN0OwogICAgIHZvaWQgcm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CiAKLXByaXZhdGU6
CiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAKICAgICAvLyBGSVhNRSgxNDY4
NTMpOiBJbXBsZW1lbnQgbmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRhcmQgaW4gSFRN
TE1lZGlhRWxlbWVudCBmb3IgTWVkaWFTdHJlYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpp
bmRleCAwNDlmN2E1NGY1NDViYjQ3YjViMGYzY2U1NjBiYjdmNGE2YTRmNmNjLi5hM2Q2M2ZjNzk5
NGFlY2E4ZWM1NTEyYWJiZGU1MmQ1ODgxOTc5MzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCkBAIC00OSwyMyArNDksMjQgQEAKICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oPgogCiBAaW50ZXJmYWNlIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VM
aXN0ZW5lciA6IE5TT2JqZWN0IHsKLSAgICBXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQz4gX3BhcmVudDsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IF9j
YWxsYmFjazsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gX3Jvb3RMYXllcjsKIH0KIAotLSAoaWQp
aW5pdFdpdGhQYXJlbnQ6KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyopY2FsbGJhY2s7CistIChpZClpbml0V2l0aENhbGxiYWNrOihGdW5jdGlvbjx2b2lkKCk+
JiYpIGNhbGxiYWNrOwogLSAodm9pZClpbnZhbGlkYXRlOwotLSAodm9pZCliZWdpbjsKKy0gKHZv
aWQpYmVnaW46KENBTGF5ZXIqKSBsYXllcjsKIC0gKHZvaWQpc3RvcDsKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFdlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcgogCi0tIChp
ZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDKilwYXJlbnQKKy0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6KEZ1bmN0aW9uPHZvaWQoKT4m
JikgY2FsbGJhY2sKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAg
cmV0dXJuIG5pbDsKIAotICAgIF9wYXJlbnQgPSBtYWtlV2Vha1B0cihwYXJlbnQpOworICAgIF9j
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC03
OSw1MyArODAsNDQgQEAKIC0gKHZvaWQpaW52YWxpZGF0ZQogewogICAgIFtzZWxmIHN0b3BdOwot
ICAgIF9wYXJlbnQgPSBudWxscHRyOworICAgIF9jYWxsYmFjayA9IG51bGxwdHI7CiB9CiAKLS0g
KHZvaWQpYmVnaW4KKy0gKHZvaWQpYmVnaW46KENBTGF5ZXIqKSBsYXllcgogewotICAgIEFTU0VS
VChfcGFyZW50KTsKLSAgICBBU1NFUlQoX3BhcmVudC0+cm9vdExheWVyKCkpOwotCi0gICAgW19w
YXJlbnQtPnJvb3RMYXllcigpIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyIg
b3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKKyAgICBB
U1NFUlQoX2NhbGxiYWNrKTsKKyAgICBfcm9vdExheWVyID0gbGF5ZXI7CisgICAgW19yb290TGF5
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRpb25zOk5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOwogfQogCiAtICh2b2lkKXN0b3AKIHsK
LSAgICBpZiAoIV9wYXJlbnQpCisgICAgaWYgKCFfcm9vdExheWVyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoX3BhcmVudC0+cm9vdExheWVyKCkpCi0gICAgICAgIFtfcGFyZW50LT5yb290
TGF5ZXIoKSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiXTsKKyAgICBb
X3Jvb3RMYXllciByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiXTsKKyAg
ICBfcm9vdExheWVyID0gbnVsbHB0cjsKIH0KIAogLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGlj
dGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAogewogICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0KTsKICAgICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7Ci0gICAgQVNTRVJUKF9w
YXJlbnQpOwotCi0gICAgaWYgKCFfcGFyZW50KQotICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
W1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbklzUHJpb3JL
ZXldIGJvb2xWYWx1ZV0pCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICgoQ0FMYXllciAqKW9i
amVjdCA9PSBfcGFyZW50LT5yb290TGF5ZXIoKSkgeworICAgIGlmICgoQ0FMYXllciAqKW9iamVj
dCA9PSBfcm9vdExheWVyLmdldCgpKSB7CiAgICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9T
dHJpbmc6QCJib3VuZHMiXSkgewotICAgICAgICAgICAgaWYgKCFfcGFyZW50KQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQogICAgICAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgICAgICAgICAgX3BhcmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hhbmdlKCk7CisgICAgICAg
ICAgICAgICAgaWYgKF9jYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgX2NhbGxiYWNrKCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYlJvb3RTYW1wbGVC
dWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lcj4oc2VsZildIHsKLSAgICAgICAgICAgICAgICBpZiAo
IXByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPnJvb3RMYXllckJvdW5kc0Rp
ZENoYW5nZSgpOworICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2sp
CisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9jYWxsYmFjaygpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNDcsOSArMTM5LDEzIEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDKE1lZGlhCiAgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2Vy
KCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSkKICAgICAsIG1fdmlkZW9MYXllck1hbmFnZXIobWFrZVVuaXF1ZTxWaWRlb0xheWVyTWFu
YWdlck9iakM+KG1fbG9nZ2VyLCBtX2xvZ0lkZW50aWZpZXIpKQotICAgICwgbV9ib3VuZHNDaGFu
Z2VMaXN0ZW5lcihhZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiB7CiAgICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7CisgICAgbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciA9IGFkb3B0TlMoW1tXZWJSb290
U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcm9vdExheWVyQm91bmRzRGlkQ2hh
bmdlKCk7CisgICAgfV0pOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoKQpAQCAtMzY5LDIwICsz
NjUsMjUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3Vy
ZUxheWVycygpCiAgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAhbV9tZWRpYVN0cmVh
bVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKSB8fCAhbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFj
dGl2ZVZpZGVvVHJhY2soKS0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRv
IHNpemUgPSBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSku
c2l6ZSgpOwotICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhpZGVSb290TGF5ZXIoKSwgc2l6ZSk7Ci0KLSAgICBp
ZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKSB7Ci0gICAgICAgIEVSUk9SX0xPRyhMT0dJ
REVOVElGSUVSLCAiQ3JlYXRpbmcgdGhlIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBmYWlsZWQu
Iik7CisgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OmNyZWF0ZSgqdGhpcyk7CisgICAgRVJST1JfTE9HX0lGKCFtX3NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciwgTE9HSURFTlRJRklFUiwgIkNyZWF0aW5nIHRoZSBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIgZmFpbGVkLiIpOworICAgIGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKLSAgICB1cGRhdGVSZW5kZXJpbmdNb2RlKCk7Ci0g
ICAgdXBkYXRlRGlzcGxheUxheWVyKCk7CisgICAgYXV0byBzaXplID0gc25hcHBlZEludFJlY3Qo
bV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsKKyAgICBtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci0+aW5pdGlhbGl6ZShoaWRlUm9vdExheWVyKCksIHNpemUsIFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzaXplXShhdXRvIGRpZFN1Y2NlZWQpIHsK
KyAgICAgICAgaWYgKCFkaWRTdWNjZWVkKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9HSURF
TlRJRklFUiwgIkluaXRpYWxpemluZyB0aGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZhaWxl
ZC4iKTsKKyAgICAgICAgICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gbnVsbHB0cjsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVSZW5kZXJpbmdN
b2RlKCk7CisgICAgICAgIHVwZGF0ZURpc3BsYXlMYXllcigpOwogCi0gICAgbV92aWRlb0xheWVy
TWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExh
eWVyKCksIHNpemUpOworICAgICAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVy
KG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSwgc2l6ZSk7CiAKLSAgICBb
bV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBiZWdpbl07CisgICAgICAgIFttX2JvdW5kc0NoYW5nZUxp
c3RlbmVyIGJlZ2luOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKV07Cisg
ICAgfSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpk
ZXN0cm95TGF5ZXJzKCkKQEAgLTQ1MywxMSArNDU0LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBhcmVUb1BsYXkoKQogICAgIElORk9fTE9HKExPR0lE
RU5USUZJRVIpOwogfQogCi1QbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnJvb3RMYXllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyID8gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigp
IDogbnVsbHB0cjsKLX0KLQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExh
eWVyKCkgfHwgbV9kaXNwbGF5TW9kZSA9PSBOb25lKQpAQCAtMTA0Niw3ICsxMDQyLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZURpc3BsYXlMYXll
cigpCiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnVwZGF0ZUJvdW5kc0FuZFBvc2l0
aW9uKHJvb3RMYXllcigpLmJvdW5kcywgbV92aWRlb1JvdGF0aW9uKTsKKyAgICBtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlQm91bmRzQW5kUG9zaXRpb24obV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLmJvdW5kcywgbV92aWRlb1JvdGF0aW9uKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJvb3RMYXllckJvdW5k
c0RpZENoYW5nZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzEwOGRlYTU1OTVkMDk1ZTljNzg0NGEzYmNk
NDcxMTM1MWE0OGYyYy4uZmJhYTM5ZmUyZWZiNGQzMjA5MzFkYzhjYzljNDVkMGVlY2JkY2JmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtNDMxLDEyICs0MzEsNiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LAogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVTeW5j
UGxheWVyTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShWSURF
T19UUkFDSykKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewotICAgICAgICBzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotI2VuZGlmCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlJlbW90ZUNETUZhY3RvcnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CiAgICAgICAgIGNkbUZhY3RvcnlQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZUZy
b21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKaW5kZXggNTBjNzc2MWNlMTU2ZWIyNTUxYWFjMjJh
NTMyZmQzM2Q1M2UwMGNiZC4uZDY5MTMwNGQyYzM4Yzk0OWQ2MWIzZWUxY2NhYzlmY2MwYzBkNzAy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMzcsMzIgKzM3LDMz
IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgYm9vbCBo
aWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0
ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICBhdXRvIGxheWVyID0gc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcihpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pLCBoaWRlUm9v
dExheWVyLCBzaXplKSk7CisgICAgYXV0byBsYXllciA9IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+KG5ldyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIoaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIHJldHVybiBsYXllci0+
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPyBXVEZNb3ZlKGxheWVyKSA6IG51bGxwdHI7CiB9
CiAKLVJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGhpZGVSb290TGF5ZXIsIElu
dFNpemUgc2l6ZSkKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRl
bnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9u
KSkKLSAgICAsIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKExvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpjcmVhdGUoKnRoaXMsIGhpZGVSb290TGF5ZXIsIHNpemUpKQorICAgICwgbV9z
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNy
ZWF0ZSgqdGhpcykpCiB7CiAgICAgQVNTRVJUKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKTsK
LSAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVG
b3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7Ci0gICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5z
ZXRSb290TGF5ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpKTsKIH0K
IAotUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKCkKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjppbml0aWFs
aXplKGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplLCBMYXllckluaXRpYWxpemF0aW9u
Q2FsbGJhY2smJiBjYWxsYmFjaykKIHsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+
aW5pdGlhbGl6ZShoaWRlUm9vdExheWVyLCBzaXplLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBkaWRTdWNjZWVk
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhZGlkU3VjY2VlZCkKKyAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayh7IH0pOworICAgICAgICBtX2xheWVySG9zdGluZ0NvbnRl
eHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNz
KCk7CisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSk7CisgICAgICAgIGNhbGxiYWNrKG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCkpOworICAgIH0pOwogfQogCi1PcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y29u
dGV4dElEKCkKK1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6flJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcigpCiB7Ci0gICAgcmV0dXJuIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+
Y29udGV4dElEKCk7CiB9CiAKIENHUmVjdCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmJvdW5kcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAppbmRleCA3MjAx
MTYwNjQ1ZDBlMTM5YjljY2U5ODk5Nzc2MjQwOTcwOWNlYTBhLi5iM2M1MGQyOTVlNjgyNjc5ODYw
NGM5YTRhYjU2ZDc1NmQzYzVhNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgK
QEAgLTQ1LDE3ICs0NSwxOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciA6IHB1YmxpYyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OkNsaWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6
TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+
IGNyZWF0ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVh
dGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJik7CiAgICAgflJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwogCisgICAgdXNp
bmcgTGF5ZXJJbml0aWFsaXphdGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+KT47CisgICAgdm9pZCBpbml0aWFsaXplKGJv
b2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSwgTGF5ZXJJbml0aWFsaXphdGlvbkNh
bGxiYWNrJiYpOworCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCi0g
ICAgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250ZXh0SUQoKTsKICAgICBDR1Jl
Y3QgYm91bmRzKCkgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBD
OjpDb25uZWN0aW9uPiYmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOwor
ICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKIAogICAgIHZvaWQgdXBkYXRl
RGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpOwog
ICAgIHZvaWQgdXBkYXRlQWZmaW5lVHJhbnNmb3JtKENHQWZmaW5lVHJhbnNmb3JtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCmluZGV4IDkyMDYyNjgz
ZDMxM2E4MDYzM2M1YTNmNDg0Y2YwZDg0MWZhNjFiNmQuLmRhY2JhN2IyMDhjZmE0OGMxYjhlZWIx
NDc2ODc0NWM4N2MxOTk5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmNwcApAQCAtNDcsMTUgKzQ3LDExIEBAIHZvaWQgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rp
CiAgICAgICAgIGxheWVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
IH0KIAotLy8gRklYTUU6IFdlIHNob3VsZCByZWZhY3RvciBjb2RlIHRvIHVzZSBhbiBhc3luY2hy
b25vdXMgSVBDLgotdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpj
cmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBNZXNzYWdlczo6UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXJEZWxheWVkUmVw
bHkmJiByZXBseSkKK3ZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6
Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgTGF5ZXJDcmVhdGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKCFtX2xheWVycy5jb250YWlucyhp
ZGVudGlmaWVyKSk7Ci0gICAgYXV0byBsYXllciA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKGlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCksIGhpZGVSb290
TGF5ZXIsIHNpemUpOwotICAgIGlmICghbGF5ZXIpCi0gICAgICAgIHJldHVybiByZXBseSh7IH0p
OwotCi0gICAgcmVwbHkobGF5ZXItPmNvbnRleHRJRCgpKTsKKyAgICBhdXRvIGxheWVyID0gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoaWRlbnRpZmllciwgbV9jb25uZWN0
aW9uLmNvcHlSZWYoKSk7CisgICAgbGF5ZXItPmluaXRpYWxpemUoaGlkZVJvb3RMYXllciwgc2l6
ZSwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIG1fbGF5ZXJzLmFkZChpZGVudGlmaWVyLCBXVEZN
b3ZlKGxheWVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgKaW5kZXggOGUwNzMwYTVmNzVhMTdmMTc5NjllZmM0Zjc0OGM3ZmY2N2VhYTI1Yi4uYWNl
NmQ1YTNmZjY5YWJlYWJkYTFkODI2ZWE0OTk0NTAxNzE0Yzk3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKQEAgLTUzLDE0ICs1MywxMyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVMYXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIGVuY29k
ZXIpIHsgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIGVuY29kZXIp
OyB9CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lk
IGNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIGJvb2wgaGlk
ZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSwgTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVyRGVsYXllZFJlcGx5JiYpOworICAgIHVz
aW5nIExheWVyQ3JlYXRpb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPik+JiY7CisgICAgdm9pZCBjcmVhdGVMYXllcihTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNv
cmU6OkludFNpemUsIExheWVyQ3JlYXRpb25DYWxsYmFjayk7CiAgICAgdm9pZCByZWxlYXNlTGF5
ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllcik7CiAKICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNzkzNDY4Mjc4OTA0NzE2OThj
ODE4YjJiYmRmZDg0YWRjNDlhMDRiZi4uYmVlNGU4OWJmYmJmNzBjOGRlMzJmZDZjYWM3YzU2MWNh
MjdiMDQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVhdGVMYXllcihXZWJLaXQ6OlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQsIGJvb2wgaGlkZVJvb3RMYXllciwgV2Vi
Q29yZTo6SW50U2l6ZSBzaXplKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdDb250
ZXh0SUQ+IGNvbnRleHRJRCkgU3luY2hyb25vdXMKKyAgICBDcmVhdGVMYXllcihXZWJLaXQ6OlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQsIGJvb2wgaGlkZVJvb3RMYXllciwg
V2ViQ29yZTo6SW50U2l6ZSBzaXplKSAtPiAoT3B0aW9uYWw8V2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQ+IGNvbnRleHRJRCkgQXN5bmMKICAgICBSZWxlYXNlTGF5ZXIoV2ViS2l0OjpTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkKQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKaW5kZXggODc2NTIxZDhjMDYxZDFmNDJkNTY2MDQxMzljMGQ4NjRjMjYwOTBj
Ni4uYTYwYjljZWI4NDkxNWJmMWVmMTBmMzFhY2MzZWFjOWJkYzkxNDRlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMjY3LDggKzI2Nyw4IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3Mp
CiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIGlmIChzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkg
ewotICAgICAgICBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldENyZWF0b3Io
W10oYXV0byYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIGF1dG8gc2l6ZSkgewotICAgICAg
ICAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmNyZWF0ZUxheWVyKGNs
aWVudCwgaGlkZVJvb3RMYXllciwgc2l6ZSk7CisgICAgICAgIFdlYkNvcmU6OlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihbXShhdXRvJiBjbGllbnQpIHsKKyAgICAgICAgICAg
IHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5jcmVhdGVMYXllcihjbGllbnQp
OwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Y3BwCmluZGV4IGE4NzA1MDE5MDVkMDQwZGFiMzA4NzBlYWI2ODkwNmIzZDQ1MWIzNDcuLjY1Yjkw
YWNjMzc2ZTFlNDg4YjI0YzU2MDFlZDVhYjM4N2VkZGNmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmNwcApAQCAtNDEsMjggKzQxLDI5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9v
dExheWVyLCBJbnRTaXplIHNpemUpCitzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBDbGllbnQmIGNsaWVudCkKIHsKLSAgICBhdXRvIGxh
eWVyID0gc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcihtYW5hZ2VyLCBjbGllbnQsIGhpZGVSb290TGF5ZXIsIHNpemUp
KTsKLSAgICByZXR1cm4gbGF5ZXItPnJvb3RMYXllcigpID8gV1RGTW92ZShsYXllcikgOiBudWxs
cHRyOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
PihuZXcgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKG1hbmFnZXIsIGNsaWVudCkpOwogfQogCi1T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBDbGllbnQmIGNsaWVudCwgYm9vbCBo
aWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUpCitTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBt
YW5hZ2VyLCBDbGllbnQmIGNsaWVudCkKICAgICA6IFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcihjbGllbnQpCiAgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCiAg
ICAgLCBtX2Nvbm5lY3Rpb24oV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpCiAgICAgLCBtX2lkZW50aWZpZXIoU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKIHsKICAgICBtYW5hZ2VyLmFk
ZExheWVyKCp0aGlzKTsKK30KIAotICAgIE9wdGlvbmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4g
Y29udGV4dElkOwotICAgIGlmICghbV9jb25uZWN0aW9uLT5zZW5kU3luYyhNZXNzYWdlczo6UmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXIgeyBtX2lkZW50
aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUgfSwgTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVyOjpSZXBseSB7IGNvbnRleHRJZCB9LCAw
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFjb250ZXh0SWQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fdmlkZW9MYXllciA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRm
b3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgqY29udGV4dElkKTsKK3ZvaWQgU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjppbml0aWFsaXplKGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXpl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIG1fY29u
bmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllciB7IG1faWRlbnRpZmllciwgaGlkZVJvb3RM
YXllciwgc2l6ZSB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byBjb250ZXh0SWQpIG11dGFibGUgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGZhbHNlKTsKKyAg
ICAgICAgaWYgKGNvbnRleHRJZCkKKyAgICAgICAgICAgIG1fdmlkZW9MYXllciA9IExheWVySG9z
dGluZ0NvbnRleHQ6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJGb3JIb3N0aW5nQ29udGV4dCgqY29udGV4
dElkKTsKKyAgICAgICAgY2FsbGJhY2soISFtX3ZpZGVvTGF5ZXIpOworICAgIH0pOwogfQogCiBT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6On5TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAppbmRleCA0Yjg2NzI3NmI5ZTlhZjZiYTNiMjdlMDFiNDUy
NjhhMGVkOGExNjJmLi5lZDBjNThhZWQ4ZWVlZGU1OTA4NTYxNDQ2MjY1N2U5N2MxNmU1Y2NlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogCiBjbGFzcyBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLCBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXImLCBDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBj
cmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYsIENsaWVudCYpOwogICAgIH5T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoKTsKIAogICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpA
QCAtNDYsOSArNDYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImLCBD
bGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUpOworICAgIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiwgQ2xp
ZW50Jik7CiAKICAgICAvLyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIKKyAgICB2
b2lkIGluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICBib29sIGRpZEZhaWwoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZURpc3BsYXlNb2RlKGJvb2wgaGlkZURpc3BsYXlM
YXllciwgYm9vbCBoaWRlUm9vdExheWVyKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZUFmZmluZVRy
YW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybSkgZmluYWw7CkBAIC01OCw3ICs1OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJikgZmluYWw7
CiAgICAgdm9pZCBjbGVhckVucXVldWVkU2FtcGxlcygpIGZpbmFsOwogICAgIFBsYXRmb3JtTGF5
ZXIqIHJvb3RMYXllcigpIGZpbmFsOwotICAgIAorCiAgICAgdm9pZCBzZXREaWRGYWlsKGJvb2wp
OwogCiAgICAgV2Vha1B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX21hbmFn
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCmluZGV4IGY0
ODYzMzExY2QxNzVhNjAwZmI2YTc0OTI0YTdmYzNmY2RjNjdhNzcuLmRjYjY2YWFhYWU1ZmFiNTcw
ZWYxODA0N2VjZTdjMjk3ZjBjOGNiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuY3BwCkBAIC00MCw5ICs0MCw5IEBAIHZvaWQgU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNv
CiAgICAgICAgIGxheWVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4g
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpDbGllbnQmIGNsaWVudCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3Jl
OjpJbnRTaXplIHNpemUpCitzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcihT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCYgY2xpZW50KQogewotICAgIGF1dG8gbGF5
ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZSgqdGhpcywgY2xpZW50LCBoaWRl
Um9vdExheWVyLCBzaXplKTsKKyAgICBhdXRvIGxheWVyID0gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpjcmVhdGUoKnRoaXMsIGNsaWVudCk7CiAgICAgaWYgKCFsYXllcikKICAgICAgICAgcmV0
dXJuIHsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCmluZGV4
IGVjYzNhZjcwZDg1Zjg3Y2NmYjNkZTI2MTRkM2Y4NTkzYzhkNDM0ZjIuLmQ4Mjg3NjUyZDRlYjgx
OWE0N2QwYmVmNzcwOGViYjk4OGM5ZmE1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3Zl
TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVM
YXllck1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3JlYXRlTGF5ZXIo
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIFdl
YkNvcmU6OkludFNpemUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xp
ZW50Jik7CiAKIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJ
ZGVudGlmaWVyLCBXZWFrUHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4+IG1fbGF5ZXJzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393145</attachid>
            <date>2020-03-10 07:03:28 -0700</date>
            <delta_ts>2020-03-10 07:42:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208804-20200310150325.patch</filename>
            <type>text/plain</type>
            <size>36019</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYyOGNiM2RjOWFmMjVi
NGQ3ZTQ3NTRjNmViYzZlOTNkMTJmZmFhNC4uZmQ2MDEwNmFiMDA3ZWU1MGRlODUxYjJiM2Q5MWI3
ZTgyZTFlZmY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAzLTEwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIHN5bmMgSVBDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg4MDQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgQWRkIGFuIGluaXRpYWxpemUgbWV0aG9kIHRvIGluaXRpYWxpemUgdGhl
IHNhbXBsZSBidWZmZXIgZGlzcGxheSBsYXllci4KKyAgICAgICAgSXQgdGFrZXMgYSBjb21wbGV0
aW9uIGhhbmRsZXIgc28gdGhhdCB0aGUgaW5pdGlhbGl6YXRpb24gY2FuIGJlIGFzeW5jaHJvbm91
cy4KKyAgICAgICAgVXBkYXRlIHRoZSBwbGF5ZXIgdG8sIG9uIGluaXRpYWxpemF0aW9uIGNhbGxi
YWNrLCBjcmVhdGUgdGhlIG5lY2Vzc2FyeSBvYnNlcnZlcnMgYW5kIGhvb2sgdGhlIGZ1bGxzY3Jl
ZW4gbWFuYWdlci4KKworICAgICAgICBVcGRhdGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIHRvIG5vIGxvbmdlciBleHBvc2Ugcm9vdExheWVyIGFuZCByb290TGF5ZXJCb3Vu
ZHNEaWRDaGFuZ2UuCisgICAgICAgIFRoaXMgd2FzIHVzZWQgYnkgdGhlIHJvb3QgbGF5ZXIgb2Jz
ZXJ2ZXIuCisgICAgICAgIEluc3RlYWQsIHBhc3MgdGhlIHJvb3QgbGF5ZXIgdG8gdGhlIG9ic2Vy
dmVyIHdoZW4gc3RhcnRpbmcgdGhlIG9ic2VydmVyIGFuZCBwYXNzIGEgY2FsbGJhY2sgdG8gdGhl
IG9ic2VydmVyLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoLVtX
ZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgaW5pdFdpdGhDYWxsYmFjazpd
KToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGlu
dmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxp
c3RlbmVyIGJlZ2luOl0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hh
bmdlTGlzdGVuZXIgc3RvcF0pOgorICAgICAgICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRz
Q2hhbmdlTGlzdGVuZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKToKKyAgICAgICAgKC1bV2ViUm9vdFNhbXBsZUJ1ZmZl
ckJvdW5kc0NoYW5nZUxpc3RlbmVyIGluaXRXaXRoUGFyZW50Ol0pOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIgYmVnaW5dKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cm9vdExheWVyIGNvbnN0KTogRGVsZXRlZC4KKwogMjAyMC0wMy0xMCAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN5bmMgSVBDIHdoZW4g
Y3JlYXRpbmcgYSByZW1vdGUgY2FwdHVyZSBzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzYzZDFkMjA2OTNm
ODkyZWYyMzMwMDc1MzM3OWExYzNmNTI2ODdkZS4uOWFhYTk4Y2U1YzEzZDQ2NDJjNDZiMTRjOTVh
YjUyM2E4MTE1NjAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wMy0xMCAgeW91
ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllciBzeW5jIElQQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgaW5pdGlhbGl6ZSBtZXRob2QgYXMgYW4gYXN5
bmMgSVBDLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0
Y2hTeW5jTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyOjpjcmVhdGVMYXllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQ
cmVmZXJlbmNlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlci5oOgorCiAyMDIwLTAzLTEwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgc3luYyBJUEMgd2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0dXJl
IHNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cAppbmRleCA5NGU2MGI2MzcwYmE5ZGQwMTJmYjZjMWYxYmQ0NmFiMWYyMmJmYWRiLi41MWZlNDgw
YmU3ODQwNzYzNDdiZGQwNmI0ZWY2NTQwZDY5NjFjZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcApAQCAtMzcsMTMgKzM3LDEzIEBAIHZvaWQg
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpzZXRDcmVhdG9yKExheWVyQ3JlYXRvciBjcmVhdG9y
KQogICAgIG1fbGF5ZXJDcmVhdG9yID0gY3JlYXRvcjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUo
Q2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplKQorc3RkOjp1
bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgaWYgKG1fbGF5ZXJDcmVhdG9yKQot
ICAgICAgICByZXR1cm4gbV9sYXllckNyZWF0b3IoY2xpZW50LCBoaWRlUm9vdExheWVyLCBzaXpl
KTsKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJDcmVhdG9yKGNsaWVudCk7CiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHJldHVybiBMb2NhbFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKGNsaWVudCwgaGlkZVJvb3RMYXllciwgc2l6ZSk7
CisgICAgcmV0dXJuIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoY2xpZW50
KTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaAppbmRleCBjOTc1MGE2ZTkyOGZjYmQ5YjIzODlh
ZmZhYzY5NmFmZmVkNTU0ZDU3Li45YjdkODBiOTM1ZTJmZjE1ZWM1ZWJkNmY0ZmZiN2I4ZjNhOTNi
M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQ2LDEyICs0NywxMyBA
QCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgV1RGOjpNZWRpYVRpbWUgc3RyZWFtVGltZSgpIGNv
bnN0ID0gMDsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShDbGllbnQmLCBib29sIGhpZGVS
b290TGF5ZXIsIEludFNpemUpOwotICAgIHVzaW5nIExheWVyQ3JlYXRvciA9IHN0ZDo6dW5pcXVl
X3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+ICgqKShDbGllbnQmLCBib29sIGhpZGVSb290
TGF5ZXIsIEludFNpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoQ2xpZW50Jik7CisgICAgdXNpbmcg
TGF5ZXJDcmVhdG9yID0gc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4g
KCopKENsaWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldENyZWF0b3Io
TGF5ZXJDcmVhdG9yKTsKIAogICAgIHZpcnR1YWwgflNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigp
ID0gZGVmYXVsdDsKIAorICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKGJvb2wgaGlkZVJvb3RM
YXllciwgSW50U2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGRpZFN1Y2NlZWQpPiYm
KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZEZhaWwoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVyLCBib29sIGhp
ZGVSb290TGF5ZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2Nh
bFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDlkOWNhZWMwNTY5ZTM4YzI5ZTBlYTY1
OGExOTZjZjM1N2NiNGJhMzguLmJlMDk3MzRmNmRkZmNkZGU1MDBiZTgxYTIwZWNhNTAwMGQzN2Qz
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaApAQCAtNDAsOSArNDAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBmaW5hbCA6
IHB1YmxpYyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxM
b2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShDbGllbnQmLCBib29sIGhpZGVSb290TGF5ZXIsIEludFNp
emUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IGNyZWF0ZShDbGllbnQmKTsKIAotICAgIExvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4mJiwgQ2xpZW50JiwgYm9v
bCBoaWRlUm9vdExheWVyLCBJbnRTaXplKTsKKyAgICBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcihSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+JiYsIENsaWVudCYpOwog
ICAgIH5Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpOwogCiAgICAgLy8gQVBJIHVzZWQg
YnkgV2ViQVZTYW1wbGVCdWZmZXJTdGF0dXNDaGFuZ2VMaXN0ZW5lcgpAQCAtNTksNiArNTksNyBA
QCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBTaG91bGRVcGRhdGVSb290TGF5ZXIgeyBObywgWWVz
IH07CiAgICAgdm9pZCB1cGRhdGVSb290TGF5ZXJCb3VuZHNBbmRQb3NpdGlvbihDR1JlY3QsIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uLCBTaG91bGRVcGRhdGVSb290TGF5ZXIpOwogCisgICAg
dm9pZCBpbml0aWFsaXplKGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sIGRpZFN1Y2NlZWQpPiYmKSBmaW5hbDsKICAgICBib29sIGRpZEZhaWwo
KSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlz
cGxheUxheWVyLCBib29sIGhpZGVSb290TGF5ZXIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQppbmRleCBi
ZGRlNTllZmViZTMzN2VmZDUwMDA0ZWEzMTg0NDIzYWM3OGRjZmEzLi41MGEwM2ZhNDIzM2Y4MTg1
ZWY3ZGRiY2ZhZDc4N2Q2YjYzYzU4MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQpAQCAtMTQ1LDE5ICsxNDUs
MjMgQEAgc3RhdGljIHZvaWQgcnVuV2l0aG91dEFuaW1hdGlvbnMoY29uc3QgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbikKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi1z
dGQ6OnVuaXF1ZV9wdHI8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IExvY2FsU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RM
YXllciwgSW50U2l6ZSBzaXplKQorc3RkOjp1bmlxdWVfcHRyPExvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKENsaWVudCYg
Y2xpZW50KQogewogICAgIGF1dG8gc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gYWRvcHROUyhb
UEFMOjphbGxvY0FWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySW5zdGFuY2UoKSBpbml0XSk7CiAg
ICAgaWYgKCFzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+
KFdURk1vdmUoc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKSwgY2xpZW50LCBoaWRlUm9vdExheWVy
LCBzaXplKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllcj4oV1RGTW92ZShzYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpLCBjbGllbnQpOwogfQogCi1M
b2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6TG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIoUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiYmIHNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciwgQ2xpZW50JiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBz
aXplKQorTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4mJiBzYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIsIENsaWVudCYgY2xpZW50KQogICAgIDogU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKGNsaWVudCkKICAgICAsIG1fc3RhdHVzQ2hhbmdlTGlzdGVuZXIoYWRvcHROUyhb
W1dlYkFWU2FtcGxlQnVmZmVyU3RhdHVzQ2hhbmdlTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFy
ZW50OnRoaXNdKSkKICAgICAsIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFdURk1vdmUoc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyKSkKK3sKK30KKwordm9pZCBMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6aW5pdGlhbGl6ZShib29sIGhpZGVSb290TGF5ZXIsIEludFNpemUgc2l6ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGRpZFN1Y2NlZWQpPiYmIGNhbGxiYWNrKQogewog
ICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLmJhY2tncm91bmRDb2xvciA9IGNh
Y2hlZENHQ29sb3IoQ29sb3I6OmJsYWNrKTsKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci5nZXQoKS5hbmNob3JQb2ludCA9IHsgLjUsIC41IH07CkBAIC0xODAsNiArMTg0LDcgQEAgTG9j
YWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KFJldGFpblB0cjxBVlNhbXBsZUIKICAgICBbbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgc2V0
TmFtZTpAIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyIl07CiAgICAgW21fcm9vdExheWVyIHNldE5hbWU6QCJMb2NhbFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllciBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBwYXJlbnQiXTsKICNlbmRpZgor
ICAgIGNhbGxiYWNrKHRydWUpOwogfQogCiBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
fkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
aW5kZXggM2ZjOTQ4YzI3ZGMxMzAxMjAwZjUzOWZiZjFjY2QxM2NiYjU5YzA1NS4uYjllYTY2OGJm
MWJhYjg1ZTFmNzExNGU5NWViMjgxYmMwYjM0MDBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKQEAgLTc4LDEwICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+
KG1fbG9nSWRlbnRpZmllcik7IH0KICAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29u
c3QgZmluYWw7CiAKK3ByaXZhdGU6CiAgICAgUGxhdGZvcm1MYXllciogcm9vdExheWVyKCkgY29u
c3Q7CiAgICAgdm9pZCByb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKIAotcHJpdmF0ZToKICAg
ICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKIAogICAgIC8vIEZJWE1FKDE0Njg1Myk6
IEltcGxlbWVudCBuZWNlc3NhcnkgY29uZm9ybWF0aW9ucyB0byBzdGFuZGFyZCBpbiBIVE1MTWVk
aWFFbGVtZW50IGZvciBNZWRpYVN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4
IDA0OWY3YTU0ZjU0NWJiNDdiNWIwZjNjZTU2MGJiN2Y0YTZhNGY2Y2MuLmEzZDYzZmM3OTk0YWVj
YThlYzU1MTJhYmJkZTUyZDU4ODE5NzkzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0K
QEAgLTQ5LDIzICs0OSwyNCBAQAogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLmg+CiAKIEBpbnRlcmZhY2UgV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3Rl
bmVyIDogTlNPYmplY3QgewotICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDPiBfcGFyZW50OworICAgIEZ1bmN0aW9uPHZvaWQoKT4gX2NhbGxi
YWNrOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfcm9vdExheWVyOwogfQogCi0tIChpZClpbml0
V2l0aFBhcmVudDooV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
KiljYWxsYmFjazsKKy0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6KEZ1bmN0aW9uPHZvaWQoKT4mJikg
Y2FsbGJhY2s7CiAtICh2b2lkKWludmFsaWRhdGU7Ci0tICh2b2lkKWJlZ2luOworLSAodm9pZCli
ZWdpbjooQ0FMYXllciopIGxheWVyOwogLSAodm9pZClzdG9wOwogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyCiAKLS0gKGlkKWlu
aXRXaXRoUGFyZW50OihXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMqKXBhcmVudAorLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooRnVuY3Rpb248dm9pZCgpPiYmKSBj
YWxsYmFjawogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgX3BhcmVudCA9IG1ha2VXZWFrUHRyKHBhcmVudCk7CisgICAgX2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTc5LDUz
ICs4MCw0NCBAQAogLSAodm9pZClpbnZhbGlkYXRlCiB7CiAgICAgW3NlbGYgc3RvcF07Ci0gICAg
X3BhcmVudCA9IG51bGxwdHI7CisgICAgX2NhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAotLSAodm9p
ZCliZWdpbgorLSAodm9pZCliZWdpbjooQ0FMYXllciopIGxheWVyCiB7Ci0gICAgQVNTRVJUKF9w
YXJlbnQpOwotICAgIEFTU0VSVChfcGFyZW50LT5yb290TGF5ZXIoKSk7Ci0KLSAgICBbX3BhcmVu
dC0+cm9vdExheWVyKCkgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiYm91bmRzIiBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOworICAgIEFTU0VS
VChfY2FsbGJhY2spOworICAgIF9yb290TGF5ZXIgPSBsYXllcjsKKyAgICBbX3Jvb3RMYXllciBh
ZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJib3VuZHMiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om5pbF07CiB9CiAKIC0gKHZvaWQpc3RvcAogewotICAg
IGlmICghX3BhcmVudCkKKyAgICBpZiAoIV9yb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChfcGFyZW50LT5yb290TGF5ZXIoKSkKLSAgICAgICAgW19wYXJlbnQtPnJvb3RMYXll
cigpIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyJdOworICAgIFtfcm9v
dExheWVyIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImJvdW5kcyJdOworICAgIF9y
b290TGF5ZXIgPSBudWxscHRyOwogfQogCiAtICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6
KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9u
YXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0CiB7CiAgICAgVU5VU0VEX1BBUkFN
KGNvbnRleHQpOwogICAgIFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKLSAgICBBU1NFUlQoX3BhcmVu
dCk7Ci0KLSAgICBpZiAoIV9wYXJlbnQpCi0gICAgICAgIHJldHVybjsKIAogICAgIGlmIChbW2No
YW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktleV0g
Ym9vbFZhbHVlXSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKChDQUxheWVyICopb2JqZWN0
ID09IF9wYXJlbnQtPnJvb3RMYXllcigpKSB7CisgICAgaWYgKChDQUxheWVyICopb2JqZWN0ID09
IF9yb290TGF5ZXIuZ2V0KCkpIHsKICAgICAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmlu
ZzpAImJvdW5kcyJdKSB7Ci0gICAgICAgICAgICBpZiAoIV9wYXJlbnQpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotCiAgICAgICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAg
ICAgICAgICBfcGFyZW50LT5yb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAg
ICAgICBpZiAoX2NhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICBfY2FsbGJhY2soKTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8V2ViUm9vdFNhbXBsZUJ1ZmZl
ckJvdW5kc0NoYW5nZUxpc3RlbmVyPihzZWxmKV0gewotICAgICAgICAgICAgICAgIGlmICghcHJv
dGVjdGVkU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3BhcmVudC0+cm9vdExheWVyQm91bmRzRGlkQ2hh
bmdlKCk7CisgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFNlbGYtPl9jYWxsYmFjaykKKyAg
ICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNrKCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQogICAgIH0KQEAgLTE0Nyw5ICsxMzksMTMgQEAgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMoTWVkaWEKICAgICAsIG1fbG9nZ2VyKHBsYXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkK
ICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigp
KQogICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQz4obV9sb2dnZXIsIG1fbG9nSWRlbnRpZmllcikpCi0gICAgLCBtX2JvdW5kc0NoYW5nZUxp
c3RlbmVyKGFkb3B0TlMoW1tXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdlTGlzdGVuZXIg
YWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKIHsKICAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSKTsKKyAgICBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyID0gYWRvcHROUyhbW1dlYlJvb3RTYW1w
bGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazpbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByb290TGF5ZXJCb3VuZHNEaWRDaGFuZ2Uo
KTsKKyAgICB9XSk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQygpCkBAIC0zNjksMjAgKzM2NSwy
NSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5
ZXJzKCkKICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlIHx8ICFtX21lZGlhU3RyZWFtUHJp
dmF0ZS0+YWN0aXZlVmlkZW9UcmFjaygpIHx8ICFtX21lZGlhU3RyZWFtUHJpdmF0ZS0+YWN0aXZl
VmlkZW9UcmFjaygpLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gc2l6
ZSA9IHNuYXBwZWRJbnRSZWN0KG1fcGxheWVyLT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpKS5zaXpl
KCk7Ci0gICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXllcigpLCBzaXplKTsKLQotICAgIGlmICgh
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpIHsKLSAgICAgICAgRVJST1JfTE9HKExPR0lERU5U
SUZJRVIsICJDcmVhdGluZyB0aGUgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGZhaWxlZC4iKTsK
KyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciA9IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBFUlJPUl9MT0dfSUYoIW1fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLCBMT0dJREVOVElGSUVSLCAiQ3JlYXRpbmcgdGhlIFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciBmYWlsZWQuIik7CisgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKICAg
ICAgICAgcmV0dXJuOwotICAgIH0KIAotICAgIHVwZGF0ZVJlbmRlcmluZ01vZGUoKTsKLSAgICB1
cGRhdGVEaXNwbGF5TGF5ZXIoKTsKKyAgICBhdXRvIHNpemUgPSBzbmFwcGVkSW50UmVjdChtX3Bs
YXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6ZSgpOworICAgIG1fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLT5pbml0aWFsaXplKGhpZGVSb290TGF5ZXIoKSwgc2l6ZSwgW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNpemVdKGF1dG8gZGlkU3VjY2VlZCkgeworICAg
ICAgICBpZiAoIWRpZFN1Y2NlZWQpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElG
SUVSLCAiSW5pdGlhbGl6aW5nIHRoZSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgZmFpbGVkLiIp
OworICAgICAgICAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgPSBudWxscHRyOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHVwZGF0ZVJlbmRlcmluZ01vZGUo
KTsKKyAgICAgICAgdXBkYXRlRGlzcGxheUxheWVyKCk7CiAKLSAgICBtX3ZpZGVvTGF5ZXJNYW5h
Z2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIo
KSwgc2l6ZSk7CisgICAgICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIobV9z
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLCBzaXplKTsKIAotICAgIFttX2Jv
dW5kc0NoYW5nZUxpc3RlbmVyIGJlZ2luXTsKKyAgICAgICAgW21fYm91bmRzQ2hhbmdlTGlzdGVu
ZXIgYmVnaW46bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpXTsKKyAgICB9
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRlc3Ry
b3lMYXllcnMoKQpAQCAtNDUzLDExICs0NTQsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSgpCiAgICAgSU5GT19MT0coTE9HSURFTlRJ
RklFUik7CiB9CiAKLVBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cm9vdExheWVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIgPyBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCkgOiBu
dWxscHRyOwotfQotCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIGlmICghbV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIo
KSB8fCBtX2Rpc3BsYXlNb2RlID09IE5vbmUpCkBAIC0xMDQ2LDcgKzEwNDIsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlRGlzcGxheUxheWVyKCkK
ICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+dXBkYXRlQm91bmRzQW5kUG9zaXRpb24o
cm9vdExheWVyKCkuYm91bmRzLCBtX3ZpZGVvUm90YXRpb24pOworICAgIG1fc2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyLT51cGRhdGVCb3VuZHNBbmRQb3NpdGlvbihtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+cm9vdExheWVyKCkuYm91bmRzLCBtX3ZpZGVvUm90YXRpb24pOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cm9vdExheWVyQm91bmRzRGlk
Q2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBjMTA4ZGVhNTU5NWQwOTVlOWM3ODQ0YTNiY2Q0NzEx
MzUxYTQ4ZjJjLi5mYmFhMzlmZTJlZmI0ZDMyMDkzMWRjOGNjOWM0NWQwZWVjYmRjYmZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC00MzEsMTIgKzQzMSw2IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAg
ICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkuZGlkUmVjZWl2ZVN5bmNQbGF5
ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFZJREVPX1RS
QUNLKQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7Ci0gICAgICAgIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKS5kaWRSZWNl
aXZlU3luY01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0jZW5kaWYKICNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6UmVtb3RlQ0RNRmFjdG9yeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKICAgICAgICAgY2RtRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlRnJvbVdl
YlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCA1MGM3NzYxY2UxNTZlYjI1NTFhYWMyMmE1MzJm
ZDMzZDUzZTAwY2JkLi5kNjkxMzA0ZDJjMzhjOTQ5ZDYxYjNlZTFjY2FjOWZjYzBjMGQ3MDIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0zNywzMiArMzcsMzMgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IFJlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIg
aWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBib29sIGhpZGVS
b290TGF5ZXIsIEludFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI+IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewotICAgIGF1dG8gbGF5ZXIgPSBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPihuZXcgUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbiksIGhpZGVSb290TGF5
ZXIsIHNpemUpKTsKKyAgICBhdXRvIGxheWVyID0gc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcj4obmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcihp
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiAgICAgcmV0dXJuIGxheWVyLT5tX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciA/IFdURk1vdmUobGF5ZXIpIDogbnVsbHB0cjsKIH0KIAot
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6
ZSBzaXplKQorUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQot
ICAgICwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OmNyZWF0ZSgqdGhpcywgaGlkZVJvb3RMYXllciwgc2l6ZSkpCisgICAgLCBtX3NhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcihMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRl
KCp0aGlzKSkKIHsKICAgICBBU1NFUlQobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpOwotICAg
IGlmICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4
dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKLSAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJv
b3RMYXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCkpOwogfQogCi1S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6On5SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIoKQordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUo
Ym9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIExheWVySW5pdGlhbGl6YXRpb25DYWxs
YmFjayYmIGNhbGxiYWNrKQogeworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5pbml0
aWFsaXplKGhpZGVSb290TGF5ZXIsIHNpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGRpZFN1Y2NlZWQpIG11
dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFkaWRTdWNjZWVkKQorICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKHsgfSk7CisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9
IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsK
KyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpKTsKKyAgICAgICAgY2FsbGJhY2sobV9sYXllckhv
c3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKSk7CisgICAgfSk7CiB9CiAKLU9wdGlvbmFsPExheWVy
SG9zdGluZ0NvbnRleHRJRD4gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpjb250ZXh0
SUQoKQorUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjp+UmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKCkKIHsKLSAgICByZXR1cm4gbV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250
ZXh0SUQoKTsKIH0KIAogQ0dSZWN0IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Ym91
bmRzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDcyMDExNjA2
NDVkMGUxMzliOWNjZTk4OTk3NzYyNDA5NzA5Y2VhMGEuLmIzYzUwZDI5NWU2ODI2Nzk4NjA0Yzlh
NGFiNTZkNzU2ZDNjNWE0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaApAQCAt
NDUsMTcgKzQ1LDE5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyIDogcHVibGljIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNz
YWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gY3Jl
YXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0ZShT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
KTsKICAgICB+UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKCk7CiAKKyAgICB1c2luZyBM
YXllckluaXRpYWxpemF0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPExheWVySG9zdGluZ0NvbnRleHRJRD4pPjsKKyAgICB2b2lkIGluaXRpYWxpemUoYm9vbCBo
aWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplLCBMYXllckluaXRpYWxpemF0aW9uQ2FsbGJh
Y2smJik7CisKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKLSAgICBP
cHRpb25hbDxMYXllckhvc3RpbmdDb250ZXh0SUQ+IGNvbnRleHRJRCgpOwogICAgIENHUmVjdCBi
b3VuZHMoKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAg
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklk
ZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOwogCiAgICAgdm9pZCB1cGRhdGVEaXNw
bGF5TW9kZShib29sIGhpZGVEaXNwbGF5TGF5ZXIsIGJvb2wgaGlkZVJvb3RMYXllcik7CiAgICAg
dm9pZCB1cGRhdGVBZmZpbmVUcmFuc2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggOTIwNjI2ODNkMzEz
YTgwNjMzYzVhM2Y0ODRjZjBkODQxZmE2MWI2ZC4uZGFjYmE3YjIwOGNmYTQ4YzFiOGVlYjE0NzY4
NzQ1Yzg3YzE5OTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIuY3BwCkBAIC00NywxNSArNDcsMTEgQEAgdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGkKICAg
ICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQog
Ci0vLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmFjdG9yIGNvZGUgdG8gdXNlIGFuIGFzeW5jaHJvbm91
cyBJUEMuCi12b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0
ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgYm9v
bCBoaWRlUm9vdExheWVyLCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIE1lc3NhZ2VzOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllckRlbGF5ZWRSZXBseSYm
IHJlcGx5KQordm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVh
dGVMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJv
b2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBMYXllckNyZWF0aW9uQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoIW1fbGF5ZXJzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKLSAgICBhdXRvIGxheWVyID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpjcmVhdGUoaWRlbnRpZmllciwgbV9jb25uZWN0aW9uLmNvcHlSZWYoKSwgaGlkZVJvb3RMYXll
ciwgc2l6ZSk7Ci0gICAgaWYgKCFsYXllcikKLSAgICAgICAgcmV0dXJuIHJlcGx5KHsgfSk7Ci0K
LSAgICByZXBseShsYXllci0+Y29udGV4dElEKCkpOworICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24u
Y29weVJlZigpKTsKKyAgICBsYXllci0+aW5pdGlhbGl6ZShoaWRlUm9vdExheWVyLCBzaXplLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9sYXllcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
bGF5ZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
aAppbmRleCA4ZTA3MzBhNWY3NWExN2YxNzk2OWVmYzRmNzQ4YzdmZjY3ZWFhMjViLi5hY2U2ZDVh
M2ZmNjlhYmVhYmRhMWQ4MjZlYTQ5OTQ1MDE3MTRjOTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAtNTMsMTQgKzUzLDEzIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZUZyb21XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgZW5jb2Rlcikg
eyBkaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgZW5jb2Rlcik7IH0K
IAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3Jl
YXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciwgYm9vbCBoaWRlUm9v
dExheWVyLCBXZWJDb3JlOjpJbnRTaXplLCBNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXJEZWxheWVkUmVwbHkmJik7CisgICAgdXNpbmcg
TGF5ZXJDcmVhdGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxM
YXllckhvc3RpbmdDb250ZXh0SUQ+KT4mJjsKKyAgICB2b2lkIGNyZWF0ZUxheWVyKFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6
SW50U2l6ZSwgTGF5ZXJDcmVhdGlvbkNhbGxiYWNrKTsKICAgICB2b2lkIHJlbGVhc2VMYXllcihT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyKTsKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA3OTM0NjgyNzg5MDQ3MTY5OGM4MThi
MmJiZGZkODRhZGM0OWEwNGJmLi5iZWU0ZTg5YmZiYmY3MGM4ZGUzMmZkNmNhYzdjNTYxY2EyN2Iw
NDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyIE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJDb3Jl
OjpJbnRTaXplIHNpemUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJ
RD4gY29udGV4dElEKSBTeW5jaHJvbm91cworICAgIENyZWF0ZUxheWVyKFdlYktpdDo6U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmllciBpZCwgYm9vbCBoaWRlUm9vdExheWVyLCBXZWJD
b3JlOjpJbnRTaXplIHNpemUpIC0+IChPcHRpb25hbDxXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRl
eHRJRD4gY29udGV4dElEKSBBc3luYwogICAgIFJlbGVhc2VMYXllcihXZWJLaXQ6OlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcklkZW50aWZpZXIgaWQpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcAppbmRleCA4NzY1MjFkOGMwNjFkMWY0MmQ1NjYwNDEzOWMwZDg2NGMyNjA5MGM2Li5h
NjBiOWNlYjg0OTE1YmYxZWYxMGYzMWFjYzNlYWM5YmRjOTE0NGVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwCkBAIC0yNjcsOCArMjY3LDggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKIAog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgaWYgKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKSB7Ci0g
ICAgICAgIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0Q3JlYXRvcihbXShh
dXRvJiBjbGllbnQsIGJvb2wgaGlkZVJvb3RMYXllciwgYXV0byBzaXplKSB7Ci0gICAgICAgICAg
ICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCkuY3JlYXRlTGF5ZXIoY2xpZW50
LCBoaWRlUm9vdExheWVyLCBzaXplKTsKKyAgICAgICAgV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOjpzZXRDcmVhdG9yKFtdKGF1dG8mIGNsaWVudCkgeworICAgICAgICAgICAgcmV0
dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcigpLmNyZWF0ZUxheWVyKGNsaWVudCk7CiAg
ICAgICAgIH0pOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAK
aW5kZXggYTg3MDUwMTkwNWQwNDBkYWIzMDg3MGVhYjY4OTA2YjNkNDUxYjM0Ny4uNjViOTBhY2Mz
NzZlMWU0ODhiMjRjNTYwMWVkNWFiMzg3ZWRkY2Y3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuY3BwCkBAIC00MSwyOCArNDEsMjkgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXImIG1hbmFnZXIsIENsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5
ZXIsIEludFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKFNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXImIG1hbmFnZXIsIENsaWVudCYgY2xpZW50KQogewotICAgIGF1dG8gbGF5ZXIg
PSBzdGQ6OnVuaXF1ZV9wdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPihuZXcgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKG1hbmFnZXIsIGNsaWVudCwgaGlkZVJvb3RMYXllciwgc2l6ZSkpOwot
ICAgIHJldHVybiBsYXllci0+cm9vdExheWVyKCkgPyBXVEZNb3ZlKGxheWVyKSA6IG51bGxwdHI7
CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+KG5l
dyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIobWFuYWdlciwgY2xpZW50KSk7CiB9CiAKLVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFnZXIsIENsaWVudCYgY2xpZW50LCBib29sIGhpZGVS
b290TGF5ZXIsIEludFNpemUgc2l6ZSkKK1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6U2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIG1hbmFn
ZXIsIENsaWVudCYgY2xpZW50KQogICAgIDogV2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyKGNsaWVudCkKICAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKICAgICAs
IG1fY29ubmVjdGlvbihXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSkKICAgICAsIG1faWRlbnRpZmllcihTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIG1hbmFnZXIuYWRkTGF5
ZXIoKnRoaXMpOworfQogCi0gICAgT3B0aW9uYWw8TGF5ZXJIb3N0aW5nQ29udGV4dElEPiBjb250
ZXh0SWQ7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpDcmVhdGVMYXllciB7IG1faWRlbnRpZmll
ciwgaGlkZVJvb3RMYXllciwgc2l6ZSB9LCBNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjo6Q3JlYXRlTGF5ZXI6OlJlcGx5IHsgY29udGV4dElkIH0sIDApKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWNvbnRleHRJZCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlUGxhdGZvcm1M
YXllckZvckhvc3RpbmdDb250ZXh0KCpjb250ZXh0SWQpOwordm9pZCBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6OkNyZWF0ZUxheWVyIHsgbV9pZGVudGlmaWVyLCBoaWRlUm9vdExheWVy
LCBzaXplIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZmFsc2UpOworICAgICAg
ICBpZiAoY29udGV4dElkKQorICAgICAgICAgICAgbV92aWRlb0xheWVyID0gTGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlUGxhdGZvcm1MYXllckZvckhvc3RpbmdDb250ZXh0KCpjb250ZXh0SWQp
OworICAgICAgICBjYWxsYmFjayghIW1fdmlkZW9MYXllcik7CisgICAgfSk7CiB9CiAKIFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6flNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5oCmluZGV4IDRiODY3Mjc2YjllOWFmNmJhM2IyN2UwMWI0NTI2OGEw
ZWQ4YTE2MmYuLmVkMGM1OGFlZDhlZWVkZTU5MDg1NjE0NDYyNjU3ZTk3YzE2ZTVjY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiAKIGNsYXNzIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllcj4gewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8U2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGUoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFu
YWdlciYsIENsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IGNyZWF0
ZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiwgQ2xpZW50Jik7CiAgICAgflNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcigpOwogCiAgICAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC00
Niw5ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYsIENsaWVu
dCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29yZTo6SW50U2l6ZSk7CisgICAgU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImLCBDbGllbnQm
KTsKIAogICAgIC8vIFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgorICAgIHZvaWQg
aW5pdGlhbGl6ZShib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIGJvb2wgZGlkRmFpbCgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgdXBkYXRlRGlzcGxheU1vZGUoYm9vbCBoaWRlRGlzcGxheUxheWVy
LCBib29sIGhpZGVSb290TGF5ZXIpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlQWZmaW5lVHJhbnNm
b3JtKENHQWZmaW5lVHJhbnNmb3JtKSBmaW5hbDsKQEAgLTU4LDcgKzU5LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGVucXVldWVTYW1wbGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmKSBmaW5hbDsKICAg
ICB2b2lkIGNsZWFyRW5xdWV1ZWRTYW1wbGVzKCkgZmluYWw7CiAgICAgUGxhdGZvcm1MYXllciog
cm9vdExheWVyKCkgZmluYWw7Ci0gICAgCisKICAgICB2b2lkIHNldERpZEZhaWwoYm9vbCk7CiAK
ICAgICBXZWFrUHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fbWFuYWdlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKaW5kZXggZjQ4NjMz
MTFjZDE3NWE2MDBmYjZhNzQ5MjRhN2ZjM2ZjZGM2N2E3Ny4uZGNiNjZhYWFhZTVmYWI1NzBlZjE4
MDQ3ZWNlN2MyOTdmMGM4Y2JjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5jcHAKQEAgLTQwLDkgKzQwLDkgQEAgdm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY28KICAg
ICAgICAgbGF5ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVhdGVMYXllcihTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OkNsaWVudCYgY2xpZW50LCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6Oklu
dFNpemUgc2l6ZSkKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI+IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcjo6Q2xpZW50JiBjbGllbnQpCiB7Ci0gICAgYXV0byBsYXllciA9
IFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Y3JlYXRlKCp0aGlzLCBjbGllbnQsIGhpZGVSb290
TGF5ZXIsIHNpemUpOworICAgIGF1dG8gbGF5ZXIgPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
OmNyZWF0ZSgqdGhpcywgY2xpZW50KTsKICAgICBpZiAoIWxheWVyKQogICAgICAgICByZXR1cm4g
eyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKaW5kZXggZWNj
M2FmNzBkODVmODdjY2ZiM2RlMjYxNGQzZjg1OTNjOGQ0MzRmMi4uZDgyODc2NTJkNGViODE5YTQ3
ZDBiZWY3NzA4ZWJiOTg4YzlmYTU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXIuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVMYXll
cihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVy
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBjcmVhdGVMYXllcihTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OkNsaWVudCYsIGJvb2wgaGlkZVJvb3RMYXllciwgV2ViQ29y
ZTo6SW50U2l6ZSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcj4gY3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQm
KTsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcklkZW50
aWZpZXIsIFdlYWtQdHI8U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4gbV9sYXllcnM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>