<?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>232750</bug_id>
          
          <creation_ts>2021-11-05 03:25:31 -0700</creation_ts>
          <short_desc>Remove separate classes for CSS wide keywords (initial/inherit/unset/revert)</short_desc>
          <delta_ts>2021-11-06 12:22: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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>224816</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>ntim</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812095</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-05 03:25:31 -0700</bug_when>
    <thetext>They can all be handled by CSSPrimitiveValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812098</commentid>
    <comment_count>1</comment_count>
      <attachid>443385</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-05 03:27:45 -0700</bug_when>
    <thetext>Created attachment 443385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812133</commentid>
    <comment_count>2</comment_count>
      <attachid>443399</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-05 09:07:37 -0700</bug_when>
    <thetext>Created attachment 443399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812138</commentid>
    <comment_count>3</comment_count>
      <attachid>443400</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-05 09:12:39 -0700</bug_when>
    <thetext>Created attachment 443400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812176</commentid>
    <comment_count>4</comment_count>
      <attachid>443415</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-05 10:32:56 -0700</bug_when>
    <thetext>Created attachment 443415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812179</commentid>
    <comment_count>5</comment_count>
      <attachid>443416</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-05 10:37:26 -0700</bug_when>
    <thetext>Created attachment 443416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812378</commentid>
    <comment_count>6</comment_count>
      <attachid>443483</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-06 05:36:51 -0700</bug_when>
    <thetext>Created attachment 443483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812388</commentid>
    <comment_count>7</comment_count>
      <attachid>443484</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-06 07:04:50 -0700</bug_when>
    <thetext>Created attachment 443484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812389</commentid>
    <comment_count>8</comment_count>
      <attachid>443485</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-06 07:22:51 -0700</bug_when>
    <thetext>Created attachment 443485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812393</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-11-06 09:08:31 -0700</bug_when>
    <thetext>*** Bug 224815 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812397</commentid>
    <comment_count>10</comment_count>
      <attachid>443485</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-11-06 09:44:53 -0700</bug_when>
    <thetext>Comment on attachment 443485
Patch

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

&gt; Source/WebCore/bindings/js/JSDeprecatedCSSOMValueCustom.cpp:54
&gt; +    if (value-&gt;isPrimitiveValue() &amp;&amp; !downcast&lt;DeprecatedCSSOMPrimitiveValue&gt;(value.get()).isCSSWideKeyword())

This could use a comment and/or a dedicated predicate that states that the value should be exposed as something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812403</commentid>
    <comment_count>11</comment_count>
      <attachid>443489</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-06 11:39:15 -0700</bug_when>
    <thetext>Created attachment 443489
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812405</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-06 12:21:06 -0700</bug_when>
    <thetext>Committed r285373 (243930@main): &lt;https://commits.webkit.org/243930@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443489.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812407</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-06 12:22:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/85103336&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443385</attachid>
            <date>2021-11-05 03:27:45 -0700</date>
            <delta_ts>2021-11-05 09:07:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211105122743.patch</filename>
            <type>text/plain</type>
            <size>62559</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzMzQzMTliMTBhMTFm
NGExMjBkNDgzZGQzMjg5YWY4ZGUyOGY4ZS4uYzNkZjk5ZTkyMTI2MjE2YmVjMDNkZTY2NjkzOWFm
NTFmY2U0ZjI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDIxLTExLTA1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc2VwYXJhdGUg
Y2xhc3NlcyBmb3IgQ1NTIHdpZGUga2V5d29yZHMgKGluaXRpYWwvaW5oZXJpdC91bnNldC9yZXZl
cnQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI3
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5
IGNhbiBhbGwgYmUgaGFuZGxlZCBieSBDU1NQcmltaXRpdmVWYWx1ZS4KKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGNzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyVGV4
dERlY29yYXRpb25TdHlsZUZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblNraXBUb0NTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTSW5oZXJp
dGVkVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NJbmhlcml0ZWRWYWx1ZS5o
OiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NJbml0aWFsVmFsdWUuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGNzcy9DU1NJbml0aWFsVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVOYW1lKToKKyAg
ICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTUmV2ZXJ0
VmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjc3MvQ1NTVW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVmFsdWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFs
dWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lk
ZUtleXdvcmQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVk
VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5p
dGlhbFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpp
c1Vuc2V0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmlzR2xvYmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVlUG9vbCk6CisgICAg
ICAgICogY3NzL0NTU1ZhbHVlUG9vbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29s
OjpjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVVbnNldFZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlUmV2ZXJ0VmFsdWUpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmlzQ1NTV2lkZUtl
eXdvcmQgY29uc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAg
ICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjpib3JkZXJSYWRpdXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVByb3BlcnRpZXM6OnBhZ2VCcmVha1Byb3BlcnR5VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNl
S2V5d29yZFZhbHVlKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbHVlQWxsb3dlZEluTW9kZSk6CisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ1NTV2lkZUtl
eXdvcmQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bWF5YmVDb25zdW1lQ1NTV2lkZUtleXdvcmQpOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6aXNDU1NXaWRlS2V5d29yZCk6IERlbGV0ZWQuCisg
ICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENv
bnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAoSFRNTENvbnZl
cnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29u
dmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVD
b2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBzdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6
YWRkTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cmVz
b2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OnJlc29sdmVWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKwogMjAyMS0xMS0wNCAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQg
ZGlkRHJhdyAvIGRpZERyYXdFbnRpcmVDYW52YXMgY2FsbHMgaW4gY2FudmFzIGRyYXdpbmcgZnVu
Y3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDhkYTI0Yjc4ZGE1N2RjM2JkMmNlZDExODRjMmVkZGZm
MGI4ZGUyNDYuLjZlOGRhYjc2NTJmNWIzNGJmYWFmZTgzYmZkNzcyM2FjZjAwZGM4MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC02OTAsOCArNjkwLDYgQEAgY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwCiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKIGNzcy9DU1NJbWFnZVZhbHVlLmNwcAogY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwCi1jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCi1jc3MvQ1NTSW5p
dGlhbFZhbHVlLmNwcAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNzcy9DU1NLZXlmcmFtZXNS
dWxlLmNwcAogY3NzL0NTU0xheWVyUnVsZS5jcHAKQEAgLTcwNyw3ICs3MDUsNiBAQCBjc3MvQ1NT
UHJvcGVydHkuY3BwCiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAogY3NzL0NTU1JlZmxl
Y3RWYWx1ZS5jcHAKIGNzcy9DU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3BwCi1jc3MvQ1NT
UmV2ZXJ0VmFsdWUuY3BwCiBjc3MvQ1NTUnVsZS5jcHAKIGNzcy9DU1NSdWxlTGlzdC5jcHAKIGNz
cy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTcyMyw3ICs3MjAsNiBAQCBjc3MvQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKIGNzcy9DU1NUb1N0eWxlTWFwLmNwcAogY3NzL0NTU1Vu
aWNvZGVSYW5nZVZhbHVlLmNwcAogY3NzL0NTU1VuaXRzLmNwcAotY3NzL0NTU1Vuc2V0VmFsdWUu
Y3BwCiBjc3MvQ1NTVmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWVMaXN0LmNwcAogY3NzL0NTU1ZhbHVl
UGFpci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlOTk2MzcyMzhhYWY0NmE3OTk3YzJjOGRlNDE2YjRjYWNkNDY1OTExLi4w
MTdhNzk0MTVjZDI0ODYyODJjOGM3NjBlOGFmMWE0MDA2YjZjM2QyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTMxLDEwICsz
NTMxLDggQEAKIAkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDMw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0ZGMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDAwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBODBF
NkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q3MEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwMzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFNkNEOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDQw
QTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTgwRTZE
MDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaXRpYWxWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwQzBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMEQwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZERkMwQTE5
OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxl
UHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC00MTU0LDggKzQxNTIsNiBAQAogCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyog
Q1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250
YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzlFMTMx
QkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3OUUxNzFCQjIyN0NBMDBD
QUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzc5RTE1MUJCMjI2QTIwMENBQThCRiAvKiBTdHls
ZUN1c3RvbVByb3BlcnR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdEOEZF
RTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovOyB9OwotCQlCQzdEOEZGNDFC
RDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NS
ZXZlcnRWYWx1ZS5oICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyMTBEMUYwQ0JEMDBE
QjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RkE2
MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTEzMTk2LDcgKzEzMTkyLDYgQEAKIAkJQTgwRTZD
QzMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4MEU2Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDQzYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aGVyaXRlZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NJbmhlcml0ZWRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2
Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQ0EwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1NoYWRv
d1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NTaGFk
b3dWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIxMSwxMyArMTMy
MDYsMTAgQEAKIAkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltYWdlVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNENTBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1By
b3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q2MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUGFnZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDRDcw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NJbml0aWFsVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEOTBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NNZWRpYVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREEwQTE5
ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREIwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aXRpYWxWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSW5pdGlh
bFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RGMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTkzLDEwICsxNDU4NSw2IEBACiAJCUJDNzc5RTEzMUJCMjE1QkIwMENBQThC
RiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQ3VzdG9tUHJvcGVydHlE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1MDgyNDEwMEE4
MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1NDAgLyog
Q1NTVW5zZXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NVbnNldFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3RDhGRUUx
QkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmV2ZXJ0VmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2
ZXJ0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUmV2ZXJ0VmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlE
MDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RkE2MUUw
RDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMaXZlTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdmVOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTg2MTEsMTEgKzE4NTk5LDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJC
NjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjICovLAogCQkJCTU5
OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJCQkxQTcxRDU3OTBGMzM4
MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJMUE3MUQ1N0EwRjMzODE5
MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKIAkJCQk1OUI1OTc3MTExMDg2NTU2MDA3
MTU5RTggLyoganNjICovLAotCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjICov
LAogCQkJCTFBNTY5Q0VGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmNwcCAqLywK
IAkJCQkxQTU2OUNGMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5oICovLAogCQkJ
CTFBNTY5Q0YxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5jcHAgKi8sCkBAIC0y
OTkwMCwxMCArMjk4ODgsNiBAQAogCQkJCUE4MEU2Q0MxMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJ
bXBvcnRSdWxlLmNwcCAqLywKIAkJCQlBODBFNkNDQzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1w
b3J0UnVsZS5oICovLAogCQkJCTg1QzU2Q0E5MEFBODlFNjYwMEQ5NTc1NSAvKiBDU1NJbXBvcnRS
dWxlLmlkbCAqLywKLQkJCQlBODBFNkNDNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVk
VmFsdWUuY3BwICovLAotCQkJCUE4MEU2Q0Q3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0
ZWRWYWx1ZS5oICovLAotCQkJCUE4MEU2Q0Q4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFs
VmFsdWUuY3BwICovLAotCQkJCUE4MEU2Q0RFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFs
VmFsdWUuaCAqLywKIAkJCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVS
dWxlLmNwcCAqLywKIAkJCQkzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVS
dWxlLmggKi8sCiAJCQkJMzE2RkUwOTEwRTZDQ0Q3RjAwQkY2MDg4IC8qIENTU0tleWZyYW1lUnVs
ZS5pZGwgKi8sCkBAIC0yOTk0Nyw4ICsyOTkzMSw2IEBACiAJCQkJQkM1QTEyREUwREMwNDE0ODAw
QzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1ZS5oICovLAogCQkJCTRCMTcwNjY0MjE2MkI0MkYwMEU1
NzhCQiAvKiBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3BwICovLAogCQkJCTRCREEzRkZC
MjE1MUI2RjQwMEZENjYwNCAvKiBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuaCAqLywKLQkJ
CQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuY3BwICovLAotCQkJ
CUJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5oICovLAogCQkJCUE4
MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCAqLywKIAkJCQlBODBFNkNFMzBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5oICovLAogCQkJCTE0Q0Y3QTcwMDlGNUNGOUEwMEVC
MzY2NSAvKiBDU1NSdWxlLmlkbCAqLywKQEAgLTI5OTg3LDggKzI5OTY5LDYgQEAKIAkJCQkwRjZC
NzA3NzIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuaCAqLywKIAkJCQlBODBFNkNDRTBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTVW5rbm93blJ1bGUuaCAqLywKIAkJCQk4NUM1NkNBRDBBQTg5RkUw
MDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUuaWRsICovLAotCQkJCUJDN0Q4RkVEMUJEMDNCNjQw
MEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmNwcCAqLywKLQkJCQlCQzdEOEZFRTFCRDAzQjY0MDBG
RkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovLAogCQkJCUFEMDNBQUY4MTQ2ODQ1MzkwMEEzOUI1
QiAvKiBDU1NWYWx1ZS5jcHAgKi8sCiAJCQkJQTgwRTZDQzQwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1ZhbHVlLmggKi8sCiAJCQkJQkNFQTQ3OEMwOTdDQUFDODAwOTRDOUU0IC8qIENTU1ZhbHVlS2V5
d29yZHMuaW4gKi8sCkBAIC0zMjI2Myw4ICszMjI0Myw2IEBACiAJCQkJOTM5M0U2MDAxNTFBOTlG
MjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2
Q0ZBMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODBFNkNGNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1wb3J0UnVsZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQTgwRTZEMDEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkQwODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlh
bFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTI4OEU3MzBFMzAwNUQ2MDAzNjE5QUUgLyog
Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTI4OEU3NTBFMzAwNUQ2MDAz
NjE5QUUgLyogQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE0MTA3QTQy
NkNCNjZGODAwM0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MjMxOSw3ICszMjI5Nyw2IEBACiAJCQkJODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1By
b3BlcnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTEyRTAwREMwNDE0ODAw
QzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJEQTQwMDEy
MTUxQjZGNTAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkM3RDhGRjQxQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyQTUzOEEyODI2RjAxMDNDMDA5NjVGQzggLyogQ1NTUm90YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1
bGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMzUzLDcgKzMyMzMwLDYgQEAKIAkJCQk0QkFG
RDBFMTIxOTI0MkEwMDBDMEFCNjQgLyogQ1NTVW5pdFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRCQUZEMEQ5MjE5MjFFQTAwMEMwQUI2NCAvKiBDU1NVbnBhcnNlZFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQzdEOEZGMDFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRUUwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyog
Q1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MTUxMDlEMTMwNDMwMDBFNjFE
NyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENTU09NVmFsdWVDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5j
cHAKaW5kZXggYTdlMTM0ZmVhZGUyYzhiNGEwY2UxNTU5NTA0NzNmNjMwNjk3NzViZC4uNmRjZjhh
NDM3NjI4ZGVlY2Q2MmQ1ZGMyOTY4ZTVhOTA3YTMxNmRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPEQKIHsKICAgICBpZiAo
dmFsdWUtPmlzVmFsdWVMaXN0KCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJl
Y2F0ZWRDU1NPTVZhbHVlTGlzdD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7Ci0gICAg
aWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkgJiYgIWRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPih2YWx1
ZS5nZXQoKSkuaXNDU1NXaWRlS2V5d29yZCgpKQogICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBl
cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZh
bHVlKSk7CiAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWU+KGds
b2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAyZjJlMDg5YmFiMTQ2NTc0
NmNmNzMzZjY2ZDkxYjU1MTBhYjZkMWZjLi4yMTk1MjNlMTMwNjMyZGYzY2Q3YzYzOGQ4NTExNjU3
ZGE3M2NmYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcApAQCAtMTYyOCw3ICsxNjI4LDcgQEAgc3RhdGljIFJlZjxDU1NWYWx1
ZT4gcmVuZGVyVGV4dERlY29yYXRpb25TdHlsZUZsYWdzVG9DU1NWYWx1ZShUZXh0RGVjb3JhdGlv
blN0eWwKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gQ1NT
VmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOworICAg
IHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZUluaXRpYWwpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiByZW5kZXJUZXh0
RGVjb3JhdGlvblNraXBUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9uU2tpcEluayB0ZXh0RGVjb3Jh
dGlvblNraXBJbmspCkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVl
PiByZW5kZXJUZXh0RGVjb3JhdGlvblNraXBUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9uU2tpcElu
awogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAgcmV0
dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlSW5pdGlhbCk7CiB9CiAKIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHRleHRVbmRlcmxpbmVPZmZz
ZXRUb0NTU1ZhbHVlKGNvbnN0IFRleHRVbmRlcmxpbmVPZmZzZXQmIHRleHRVbmRlcmxpbmVPZmZz
ZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZWQyNDg5ODFiMWFkMjQ0YmVjZDczNDgxMzMyYjdhODdhYWNlODk3
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzMg
KzAsMCBAQAotLyoqCi0gKiAoQykgMTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTSW5oZXJp
dGVkVmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NJbmhlcml0ZWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuICJpbmhlcml0Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiNTJiOTE1NGFhMjI4ZDUxMDllYmI0MDBmMmU5OWRkZGVlZmRkNDQ0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAs
MCBAQAotLyoKLSAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NJbmhlcml0ZWRWYWx1ZSBmaW5hbCA6IHB1Ymxp
YyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsK
LQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0luaGVyaXRlZFZhbHVlJikgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NT
SW5oZXJpdGVkVmFsdWU+OwotICAgIENTU0luaGVyaXRlZFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFn
KQotICAgICAgICA6IENTU1ZhbHVlKEluaGVyaXRlZENsYXNzKQotICAgIHsKLSAgICAgICAgbWFr
ZVN0YXRpYygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTSW5oZXJpdGVkVmFsdWUsIGlzSW5oZXJpdGVk
VmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZkMTQzNmU3ZjFlY2E2NDZmODY4ZDk4OGY3NjYyNDZlZjc2MTMz
MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr
MCwwIEBACi0vKioKLSAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
LSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDU1NJbml0aWFs
VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NJbml0aWFsVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25z
dAotewotICAgIHJldHVybiAiaW5pdGlhbCJfczsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NGZiNzZmMjUxZjI0NGYxNTFjYTcyODEyMmJjMTJhNDRhOWJhN2EyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbml0aWFsVmFsdWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0g
KiAoQykgMTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgQ1NTSW5pdGlhbFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsK
LXB1YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBp
c0ltcGxpY2l0KCkgY29uc3QgeyByZXR1cm4gbV9pc0ltcGxpY2l0OyB9Ci0KLSAgICBib29sIGVx
dWFscyhjb25zdCBDU1NJbml0aWFsVmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbml0aWFsVmFsdWU+Owot
ICAgIENTU0luaXRpYWxWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgYm9vbCBpbXBsaWNpdCkKLSAg
ICAgICAgOiBDU1NWYWx1ZShJbml0aWFsQ2xhc3MpCi0gICAgICAgICwgbV9pc0ltcGxpY2l0KGlt
cGxpY2l0KQotICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwotICAgIH0KLQotcHJpdmF0ZToK
LSAgICBib29sIG1faXNJbXBsaWNpdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTSW5pdGlhbFZhbHVlLCBpc0luaXRp
YWxWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXgg
YTlkMDIyNmY5Y2RkNTA1NzJhMmRiYzhhNTk5MDg2OTcxNzE2ODRiYy4uMDNkYjI0MWVlNDQxMTU2
MjI0NDA4NzAzM2UwNDM2MTQ4NjYzMDE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwCkBAIC0yNjMsNiArMjYzLDkgQEAgc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlTmFtZShDU1NWYWx1ZUlEIHZhbHVlSUQpCiB7CiAgICAgQVNTRVJUX0FSRyh2YWx1ZUlE
LCAodmFsdWVJRCA+PSBmaXJzdENTU1ZhbHVlS2V5d29yZCAmJiB2YWx1ZUlEIDw9IGxhc3RDU1NW
YWx1ZUtleXdvcmQpKTsKIAorICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW50ZXJuYWxJbXBs
aWNpdEluaXRpYWwpCisgICAgICAgIHZhbHVlSUQgPSBDU1NWYWx1ZUluaXRpYWw7CisKICAgICBy
ZXR1cm4gZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyh2YWx1ZUlEKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBiNzQ3OWM3YmY3ZDk1NDc1MDg3OTI5NDk2ZjRk
NGIxYTllZDU4ODYxLi5kNjkyOGE5YmVlMmM0Yjc3MDRlM2M5Zjc0ODI3OTMzZjBlNmIwMjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTE1LDYgKzExNSwxMiBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBl
KCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0b21JZGVudCgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkN1c3RvbUlk
ZW50OyB9CiAKKyAgICBib29sIGlzSW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsdWVJRCgp
ICYmICh2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbml0aWFsIHx8IHZhbHVlSUQoKSA9PSBDU1NWYWx1
ZUludGVybmFsSW1wbGljaXRJbml0aWFsKTsgfQorICAgIGJvb2wgaXNJbXBsaWNpdEluaXRpYWwo
KSBjb25zdCB7IHJldHVybiBpc1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbnRl
cm5hbEltcGxpY2l0SW5pdGlhbDsgfQorICAgIGJvb2wgaXNJbmhlcml0KCkgY29uc3QgeyByZXR1
cm4gaXNWYWx1ZUlEKCkgJiYgdmFsdWVJRCgpID09IENTU1ZhbHVlSW5oZXJpdDsgfQorICAgIGJv
b2wgaXNVbnNldCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBD
U1NWYWx1ZVVuc2V0OyB9CisgICAgYm9vbCBpc1JldmVydCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFs
dWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJldmVydDsgfQorCiAgICAgc3RhdGljIFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZhbHVlSUQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWVJRCkpOyB9CiAg
ICAgc3RhdGljIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFs
dWUocHJvcGVydHlJRCkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
ZXZlcnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGM0MGQzN2VmMDU2NTM1MjQ3NDQ1NjE2OWU1
NGVmMmQ0MzA4YTM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgiCi0K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1TdHJpbmcgQ1NTUmV2ZXJ0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJl
dHVybiAicmV2ZXJ0Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NSZXZlcnRWYWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzViMjRk
NzIzN2Q3ZWZhNmUzMzUyYWY2YzM1ODQ3NTM2M2YxYzA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFs
dWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NSZXZlcnRWYWx1ZSBmaW5h
bCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQo
KSBjb25zdDsKLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1JldmVydFZhbHVlJikgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95
ZWQ8Q1NTUmV2ZXJ0VmFsdWU+OwotICAgIENTU1JldmVydFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFn
KQotICAgICAgICA6IENTU1ZhbHVlKFJldmVydENsYXNzKQotICAgIHsKLSAgICAgICAgbWFrZVN0
YXRpYygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTUmV2ZXJ0VmFsdWUsIGlzUmV2ZXJ0VmFsdWUoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzI2YjBiM2JjNzU0MzM2NzY1MzY0NzRhNDA3ZTdkMDdkZDc1ZWI3ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVW5zZXRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NVbnNldFZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gInVuc2V0Il9zOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5z
ZXRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjY1MjVjOGRhMjBkNTk5ZWMyZDQzNGU0N2VkNDg5ZDZjMzky
ZDZkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBDU1NVbnNldFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoK
LSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMoY29u
c3QgQ1NTVW5zZXRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAg
ICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+OwotICAgIENTU1Vuc2V0
VmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NTVmFsdWUoVW5zZXRDbGFzcykK
LSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1Vuc2V0VmFs
dWUsIGlzVW5zZXRWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNjFhYzcxMWE3
MzUxZmRkZGRkN2YyNmY2OTAyODBkM2Q4MWE2MWYxMi4uZTViNmI0NGM0MWU4Yjk1OTkyMDMxZDFm
ZGFhMTAxNDI2N2M1N2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC00OSw4ICs0OSw2
IEBACiAjaW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlU2V0
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5oZXJp
dGVkVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NM
aW5lQm94Q29udGFpblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTmFtZWRJbWFnZVZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTUGFpbnRJbWFnZVZhbHVlLmgiCkBAIC02MSw3ICs1OSw2IEBACiAjaW5jbHVk
ZSAiQ1NTU2hhZG93VmFsdWUuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NVbnNldFZh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQYWly
LmgiCiAjaW5jbHVkZSAiQ1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oIgpAQCAtODMsMTYgKzgw
LDExIEBAIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTVmFsdWUgewogCiBDT01QSUxFX0FTU0VSVChzaXpl
b2YoQ1NTVmFsdWUpID09IHNpemVvZihTYW1lU2l6ZUFzQ1NTVmFsdWUpLCBDU1NfdmFsdWVfc2hv
dWxkX3N0YXlfc21hbGwpOwogCi1ib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYmIGRv
d25jYXN0PENTU0luaXRpYWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKLX0KLQogREVGSU5F
X0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihDU1NWYWx1ZSk7CiAKIENTU1ZhbHVlOjpU
eXBlIENTU1ZhbHVlOjpjc3NWYWx1ZVR5cGUoKSBjb25zdAogewotICAgIGlmIChpc0luaGVyaXRl
ZFZhbHVlKCkpCisgICAgaWYgKGlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgIHJldHVybiBDU1Nf
SU5IRVJJVDsKICAgICBpZiAoaXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gQ1NT
X1BSSU1JVElWRV9WQUxVRTsKQEAgLTE4NCwxNCArMTc2LDYgQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1
YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAgICAgIHJldHVybiBjb21w
YXJlQ1NTVmFsdWVzPENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAgICBj
YXNlIEltYWdlQ2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJ
bWFnZVZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIEluaGVyaXRlZENsYXNzOgot
ICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5oZXJpdGVkVmFsdWU+KCp0
aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICAgICAgcmV0
dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAg
ICAgICBjYXNlIFVuc2V0Q2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVl
czxDU1NVbnNldFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFJldmVydENsYXNz
OgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTUmV2ZXJ0VmFsdWU+KCp0
aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAg
ICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0aGlz
LCBvdGhlcik7CiAgICAgICAgIGNhc2UgR3JpZEludGVnZXJSZXBlYXRDbGFzczoKQEAgLTI4Niwx
NCArMjcwLDYgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwog
ICAgIGNhc2UgSW1hZ2VDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlVmFs
dWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPigqdGhpcykuY3VzdG9tQ1NT
VGV4dCgpOwotICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTSW5pdGlhbFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNhc2UgVW5zZXRD
bGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KCp0aGlzKS5jdXN0
b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25j
YXN0PENTU1JldmVydFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgR3Jp
ZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRBdXRvUmVw
ZWF0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkSW50ZWdlclJl
cGVhdENsYXNzOgpAQCAtNDEwLDE4ICszODYsNiBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkK
ICAgICBjYXNlIEltYWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbWFnZVZh
bHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0g
ICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbmhlcml0ZWRWYWx1ZT4odGhpcyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0
PENTU0luaXRpYWxWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFVuc2V0
Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NVbnNldFZhbHVlPih0aGlzKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3du
Y2FzdDxDU1NSZXZlcnRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIEdy
aWRBdXRvUmVwZWF0Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NHcmlkQXV0b1Jl
cGVhdFZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEzLDEyICs0NzcsMzggQEAg
UmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBDU1NWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09N
V3JhcHBlcihDU1NTdHlsZURlY2xhcmEKIAogYm9vbCBDU1NWYWx1ZTo6dHJlYXRBc0luaGVyaXRl
ZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xh
c3NUeXBlKCkgPT0gSW5oZXJpdGVkQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3Mg
JiYgQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworICAgIHJl
dHVybiBpc0luaGVyaXRWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiBDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6OnRy
ZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAg
IHJldHVybiBjbGFzc1R5cGUoKSA9PSBJbml0aWFsQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVu
c2V0Q2xhc3MgJiYgIUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQp
KTsKKyAgICByZXR1cm4gaXNJbml0aWFsVmFsdWUoKSB8fCAoaXNVbnNldFZhbHVlKCkgJiYgIUNT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKworYm9vbCBD
U1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmlt
aXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcyku
aXNJbml0aWFsKCk7CiB9CiAKK2Jvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUo
KSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRv
d25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbXBsaWNpdEluaXRpYWwoKTsKK30K
KworYm9vbCBDU1NWYWx1ZTo6aXNJbmhlcml0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBp
czxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
PigqdGhpcykuaXNJbmhlcml0KCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzVW5zZXRWYWx1ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc1Vuc2V0KCk7Cit9CisKK2Jvb2wgQ1NT
VmFsdWU6OmlzUmV2ZXJ0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRp
dmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNS
ZXZlcnQoKTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGFlNTA2ZWY3Yzk5NzI3
MTI4YTFkODEzYzVkMjI2NGI1MGM3ZjMxNDEuLjZhOGQ2MGRhODdiMjk1NmFhOWRiM2M4NjAwMDcy
N2NiYWEzZGVkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0ltYWdlU2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNz
VHlwZSA9PSBJbWFnZVNldENsYXNzOyB9CiAgICAgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbWFnZUNsYXNzOyB9CiAgICAgYm9vbCBpc0ltcGxpY2l0
SW5pdGlhbFZhbHVlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0luaGVyaXRlZFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5oZXJpdGVkQ2xhc3M7IH0KLSAgICBib29sIGlzSW5p
dGlhbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzOyB9
Ci0gICAgYm9vbCBpc1Vuc2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBV
bnNldENsYXNzOyB9Ci0gICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gUmV2ZXJ0Q2xhc3M7IH0KLSAgICBib29sIGlzR2xvYmFsS2V5d29yZCgpIGNv
bnN0IHsgcmV0dXJuIGlzSW5oZXJpdGVkVmFsdWUoKSB8fCBpc0luaXRpYWxWYWx1ZSgpIHx8IGlz
VW5zZXRWYWx1ZSgpIHx8IGlzUmV2ZXJ0VmFsdWUoKTsgfQorICAgIGJvb2wgaXNJbmhlcml0VmFs
dWUoKSBjb25zdDsKKyAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBp
c1Vuc2V0VmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdDsKKyAg
ICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdCB7IHJldHVybiBpc0luaGVyaXRWYWx1ZSgp
IHx8IGlzSW5pdGlhbFZhbHVlKCkgfHwgaXNVbnNldFZhbHVlKCkgfHwgaXNSZXZlcnRWYWx1ZSgp
OyB9CiAgICAgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0Owog
ICAgIGJvb2wgdHJlYXRBc0luaGVyaXRlZFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAg
IGJvb2wgaXNMaW5lYXJHcmFkaWVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUg
PT0gTGluZWFyR3JhZGllbnRDbGFzczsgfQpAQCAtMTkxLDExICsxOTEsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIEZvbnRQYWxldHRlVmFsdWVzT3ZlcnJpZGVDb2xvcnNDbGFzcywKICAgICAgICAg
RnVuY3Rpb25DbGFzcywKIAotICAgICAgICBJbmhlcml0ZWRDbGFzcywKLSAgICAgICAgSW5pdGlh
bENsYXNzLAotICAgICAgICBVbnNldENsYXNzLAotICAgICAgICBSZXZlcnRDbGFzcywKLQogICAg
ICAgICBSZWZsZWN0Q2xhc3MsCiAgICAgICAgIFNoYWRvd0NsYXNzLAogICAgICAgICBVbmljb2Rl
UmFuZ2VDbGFzcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggMTJh
YTc1YWU1NDZiMjBkNjQwNWYxMmEwNmU5NmFmMDVhNDFhNzZjMy4uNGE5YzA5OTUyODM2MGRjNTM2
MjhkYTlkNjE3NjgyNmNmZTFlMTkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KQEAgLTMsNiArMyw3IEBACiAvLwogaW5oZXJpdAogaW5pdGlhbAorLWludGVybmFsLWlt
cGxpY2l0LWluaXRpYWwKIHVuc2V0CiByZXZlcnQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29s
LmNwcAppbmRleCA1MDE4MzVjYzQ0ZWRmNTlhZjI0ODZjNWFlNDg2OWZjZTY2YTcyOGZkLi5mMmQ3
ODhiZjIzNTQyNzNmZDRhMjBmOTc4MGIxMjU4OGRiNDFjNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVQb29sLmNwcApAQCAtMzgsMTIgKzM4LDYgQEAgTGF6eU5ldmVyRGVzdHJveWVkPFN0YXRp
Y0NTU1ZhbHVlUG9vbD4gc3RhdGljQ1NTVmFsdWVQb29sOwogCiBTdGF0aWNDU1NWYWx1ZVBvb2w6
OlN0YXRpY0NTU1ZhbHVlUG9vbCgpCiB7Ci0gICAgbV9pbmhlcml0ZWRWYWx1ZS5jb25zdHJ1Y3Qo
Q1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsKLSAgICBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlLmNv
bnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIHRydWUpOwotICAgIG1fZXhwbGljaXRJ
bml0aWFsVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgZmFsc2UpOwot
ICAgIG1fdW5zZXRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsKLSAg
ICBtX3JldmVydFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOwotCiAg
ICAgbV90cmFuc3BhcmVudENvbG9yLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUs
IENvbG9yOjp0cmFuc3BhcmVudEJsYWNrKTsKICAgICBtX3doaXRlQ29sb3IuY29uc3RydWN0KENT
U1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OndoaXRlKTsKICAgICBtX2JsYWNrQ29sb3Iu
Y29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OmJsYWNrKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZVBvb2wuaAppbmRleCAxZmIyMzE2ZWZjMDMxMGEzYmZjYTM4NGYxMGM3ZGUw
NzFmNDFlOWVkLi4wN2IwMzA3ZWFhODg3NGU0YzRlNGVmMzE1ZDc1NmI2MDJkMzg2Njc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCkBAIC0yNSwxMiArMjUsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5pdGlh
bFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCi0jaW5jbHVkZSAiQ1NTUmV2ZXJ0VmFsdWUuaCIKLSNpbmNsdWRlICJD
U1NVbnNldFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUg
IkNvbG9ySGFzaC5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CkBAIC01NSwxMiArNTEsNiBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFN0YXRpY0NTU1ZhbHVlUG9vbCgpOwogCi0gICAgTGF6eU5ldmVy
RGVzdHJveWVkPENTU0luaGVyaXRlZFZhbHVlPiBtX2luaGVyaXRlZFZhbHVlOwotICAgIExhenlO
ZXZlckRlc3Ryb3llZDxDU1NJbml0aWFsVmFsdWU+IG1faW1wbGljaXRJbml0aWFsVmFsdWU7Ci0g
ICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT4gbV9leHBsaWNpdEluaXRpYWxW
YWx1ZTsKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTVW5zZXRWYWx1ZT4gbV91bnNldFZhbHVl
OwotICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NSZXZlcnRWYWx1ZT4gbV9yZXZlcnRWYWx1ZTsK
LQogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV90cmFuc3BhcmVu
dENvbG9yOwogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV93aGl0
ZUNvbG9yOwogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9ibGFj
a0NvbG9yOwpAQCAtODUsMTEgKzc1LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPENTU1ZhbHVl
TGlzdD4gY3JlYXRlRm9udEZhY2VWYWx1ZShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVGb250RmFtaWx5VmFsdWUoY29uc3QgU3RyaW5nJiwgRnJv
bVN5c3RlbUZvbnRJRCA9IEZyb21TeXN0ZW1Gb250SUQ6Ok5vKTsKLSAgICBSZWY8Q1NTSW5oZXJp
dGVkVmFsdWU+IGNyZWF0ZUluaGVyaXRlZFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQ
b29sLT5tX2luaGVyaXRlZFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1ZT4g
Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wt
Pm1faW1wbGljaXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTSW5pdGlhbFZhbHVl
PiBjcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9v
bC0+bV9leHBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NVbnNldFZhbHVl
PiBjcmVhdGVVbnNldFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3Vuc2V0
VmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZhbHVl
KCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3JldmVydFZhbHVlLmdldCgpOyB9Cisg
ICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIHsg
cmV0dXJuIGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUludGVybmFsSW1wbGljaXRJbml0
aWFsKTsgfQogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlSUQgaWRlbnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJRCBpZGVudGlmaWVyKTsKICAgICBSZWY8Q1NT
UHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUNvbG9yVmFsdWUoY29uc3QgQ29sb3ImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKaW5kZXgg
N2E4ZjFkYTMwMmRiYWQzNjQ0NGJlMTNjNGEyYmM2MzY2NjUyMWFmMS4uNjE5ZGJlYzNlZTk3M2M0
ODJlMWE3ODU1NTU3ZGFhNDA0MWFlNGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBz
aG9ydCwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25B
bGxvd2VkRXJyb3IgfTsgfQogCiAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZS0+c3RyaW5nVmFsdWUoKTsgfQorICAgIGJvb2wgaXNDU1NXaWRlS2V5d29yZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQoKTsgfQogCiBwcml2YXRl
OgogICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZh
bHVlJiB2YWx1ZSwgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgb3duZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGM4M2FkOGRhMzJmZDkzYTYwOThmN2JjNDgzZDNiZDkz
NDMxMzA1YmMuLmFmODk3Y2QxN2M3MDhhYmE4NTA0YzRlNTVhNWU4NjBjNjVkYTI1ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlclRlc3RGdW5j
dGlvbnMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVTY29wZS5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRl
cmF0b3IuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlNTA5
ZWU2N2Y5MDdmYTA2ZTQ5OTY4NDM2YzYyM2Y0MWI0ZDVhNDQ3Li4wNjNlZjM1OGFmZjcxMGMzNmY0
MGU5YjgwZDE5ZGFlNGI4NzIyM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJh
ZGl1c1ZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuCiAgICAgaWYg
KHRvcExlZnQuaXNJbXBvcnRhbnQoKSAhPSB0b3BSaWdodC5pc0ltcG9ydGFudCgpIHx8IHRvcFJp
Z2h0LmlzSW1wb3J0YW50KCkgIT0gYm90dG9tUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCBib3R0b21S
aWdodC5pc0ltcG9ydGFudCgpICE9IGJvdHRvbUxlZnQuaXNJbXBvcnRhbnQoKSkKICAgICAgICAg
cmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1
ZSgpICYmIHRvcFJpZ2h0VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiBib3R0b21SaWdodFZh
bHVlLT5pc0luaGVyaXRlZFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRlZFZh
bHVlKCkpCisgICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSAmJiB0b3BSaWdo
dFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpICYmIGJvdHRvbVJpZ2h0VmFsdWUtPmlzSW5oZXJpdFZh
bHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1
cm4gZ2V0VmFsdWVOYW1lKENTU1ZhbHVlSW5oZXJpdCk7CiAKICAgICBpZiAodG9wTGVmdFZhbHVl
LT5pc0luaXRpYWxWYWx1ZSgpIHx8IHRvcFJpZ2h0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwg
Ym90dG9tUmlnaHRWYWx1ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCBib3R0b21MZWZ0VmFsdWUtPmlz
SW5pdGlhbFZhbHVlKCkpIHsKQEAgLTg1Miw4ICs4NTIsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0
aWVzOjpwYWdlQnJlYWtQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQm
IHNobwogICAgIGF1dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHNob3J0aGFuZC5wcm9w
ZXJ0aWVzKClbMF0pOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
LSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaXNHbG9iYWxLZXl3b3JkIGNoZWNrIGFmdGVyIHdl
IGRvIHRoaXMgY29uc2lzdGVudGx5IGZvciBhbGwgc2hvcnRoYW5kcyBpbiBnZXRQcm9wZXJ0eVZh
bHVlLgotICAgIGlmICh2YWx1ZS0+aXNHbG9iYWxLZXl3b3JkKCkpCisgICAgLy8gRklYTUU6IFJl
bW92ZSB0aGlzIGlzQ1NTV2lkZUtleXdvcmQgY2hlY2sgYWZ0ZXIgd2UgZG8gdGhpcyBjb25zaXN0
ZW50bHkgZm9yIGFsbCBzaG9ydGhhbmRzIGluIGdldFByb3BlcnR5VmFsdWUuCisgICAgaWYgKHZh
bHVlLT5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dCgp
OwogICAgIAogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzdh
MTE1MWFkYTJlOTc1YjRjYzQ3ZDdiNmU0Nzk2ODNkMWMxNjNmZi4uYWEzZWEyOTI1NDU0NWZmMjY5
ZTJiNWZmMWZlY2UwZmI5NWY5NjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtMTExNSwxOSArMTExNSwxMSBAQCBzdGF0aWMg
UmVmUHRyPENTU1ZhbHVlPiBwYXJzZUtleXdvcmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SWQsIFN0cmluZ1ZpZXcgcwogICAgIGlmICghdmFsdWVJRCkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBpZiAoIXBhcnNpbmdEZXNjcmlwdG9yKSB7Ci0gICAgICAgIGlmICh2YWx1ZUlE
ID09IENTU1ZhbHVlSW5oZXJpdCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNp
bmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09
IENTU1ZhbHVlSW5pdGlhbCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlE
ID09IENTU1ZhbHVlVW5zZXQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVVbnNldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1Zh
bHVlUmV2ZXJ0KQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCku
Y3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICB9Ci0gICAgCisgICAgaWYgKCFwYXJzaW5nRGVzY3Jp
cHRvciAmJiBpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKQorICAgICAgICByZXR1cm4gQ1NTVmFs
dWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKKwogICAgIGlmIChDU1NQ
YXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShwcm9wZXJ0eUlk
LCB2YWx1ZUlELCBjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGVJZGVudGlmaWVyKHZhbHVlSUQpOworICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuY3BwCmluZGV4
IDY1NDRmMjZmNTFhOTIzZWU2MzBlNzkxOGRiOTMzODZmY2E1ZTU3ZDEuLmQ4YWFhODZmMTljMWMx
MDZmZGZmZTE3MjQzNWY1YWE4ODkwM2E0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlcklkaW9tcy5jcHAKQEAgLTQwLDYgKzQwLDggQEAgYm9vbCBpc1ZhbHVlQWxs
b3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCBpZCwgQ1NTUGFyc2VyTW9kZSBtb2RlKQogICAgICAg
ICByZXR1cm4gaXNVQVNoZWV0QmVoYXZpb3IobW9kZSk7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtp
dEZvY3VzUmluZ0NvbG9yOgogICAgICAgICByZXR1cm4gaXNVQVNoZWV0QmVoYXZpb3IobW9kZSkg
fHwgaXNRdWlya3NNb2RlQmVoYXZpb3IobW9kZSk7CisgICAgY2FzZSBDU1NWYWx1ZUludGVybmFs
SW1wbGljaXRJbml0aWFsOgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VySWRpb21zLmgKaW5kZXggODE3NGM3MzJlNjgxZGQ3ZDNlNDAxMDQxNGQwY2IwMWEzZTNj
NGNhMy4uOTU2MDFlOTA1YjMxOGVkODlmNGQ4MDFhMzVlOWUzZWNkNWNhZDQ5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCkBAIC01OSw0ICs1OSw5IEBA
IGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVlQWxs
b3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKK3N0YXRpYyBpbmxp
bmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgaWQpCit7CisgICAgcmV0dXJuIGlk
ID09IENTU1ZhbHVlSW5pdGlhbCB8fCBpZCA9PSBDU1NWYWx1ZUluaGVyaXQgfHwgaWQgPT0gQ1NT
VmFsdWVVbnNldCB8fCBpZCA9PSBDU1NWYWx1ZVJldmVydDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAppbmRleCBmZDFkMDZlZmY3YjliNTJkZjNkY2E3NjViNGQ5ODU0ZmZkOTMxZGJmLi5iMDlj
MTRlYmE3YmZlOWYxMjg4NTZhZDYxM2Y5NmEyYTQxZjdmMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjU4LDIwICsyNTgsMTEg
QEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gbWF5YmVDb25zdW1lQ1NTV2lkZUtleXdvcmQoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgaWYgKCFyYW5nZUNvcHkuYXRFbmQoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlOwotICAg
IGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCkKLSAgICAgICAgdmFsdWUgPSBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7Ci0gICAgZWxzZSBpZiAo
dmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwpCi0gICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOwotICAgIGVsc2UgaWYg
KHZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldCkKLSAgICAgICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpLmNyZWF0ZVVuc2V0VmFsdWUoKTsKLSAgICBlbHNlIGlmICh2YWx1ZUlEID09
IENTU1ZhbHVlUmV2ZXJ0KQotICAgICAgICB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICBlbHNlCisgICAgaWYgKCFpc0NTU1dpZGVLZXl3
b3JkKHZhbHVlSUQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJhbmdlID0gcmFu
Z2VDb3B5OwotICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKIH0KIAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQ
cm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBj
b25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYg
Y29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAzZDRmZjk0MGU0Y2Q1NGUxNmUwYjUxZDcxODYyMjNm
NzkwNGU2M2NmLi5lYjYzYjRhZWRiMzI4MmEwOTlhOWNlN2I5ZDdkZDc3M2NjYjhiMThmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnMuY3BwCkBAIC01OSwxMSArNTksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVz
cGFjZSBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMgewogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXND
U1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIGlkKQotewotICAgIHJldHVybiBpZCA9PSBDU1NWYWx1
ZUluaXRpYWwgfHwgaWQgPT0gQ1NTVmFsdWVJbmhlcml0IHx8IGlkID09IENTU1ZhbHVlVW5zZXQg
fHwgaWQgPT0gQ1NTVmFsdWVSZXZlcnQgfHwgaWQgPT0gQ1NTVmFsdWVEZWZhdWx0OwotfQotCiBi
b29sIGNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiB7CiAgICAgQ1NTUGFyc2VyVG9rZW4gdmFsdWUgPSByYW5nZS5wZWVrKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggZDk0NGQ5
ODRkYzNmOGUxOTM5ZjFmYzc0M2Y4YTk0MGExNzdhMWUyZS4uMTY0NzY2ZGMzMjUzNzVlN2ViMWY4
YTc1ZGJhY2Q0MjIyMTMwZmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
SFRNTENvbnZlcnRlci5tbQpAQCAtNTg3LDcgKzU4Nyw3IEBAIFN0cmluZyBIVE1MQ29udmVydGVy
Q2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHBy
b3BlCiAKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVy
dHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIFN0cmluZyByZXN1
bHQ7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAo
dmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAg
ICAgICAgZWxzZSBpZiAoc3RyaW5nRnJvbUNTU1ZhbHVlKCp2YWx1ZSwgcmVzdWx0KSkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03MzUsNyArNzM1LDcgQEAgYm9vbCBIVE1MQ29udmVy
dGVyQ2FjaGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3Bl
cnR5SUQgcHIKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJv
cGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxD
U1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBmbG9hdFZhbHVlRnJvbVByaW1pdGl2ZVZhbHVl
KGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLCByZXN1bHQpKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQor
ICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0
ID0gdHJ1ZTsKICAgICB9CiAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBDb2xvciBIVE1MQ29udmVydGVy
Q2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5
SUQgcAogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5bGVQcm9wZXJ0
eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAgICAgICAgaWYgKGlzPENTU1By
aW1pdGl2ZVZhbHVlPigqdmFsdWUpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFs
dWUpLmlzUkdCQ29sb3IoKSkKICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkQ29sb3IoZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuY29sb3IoKSwgaWdub3JlRGVmYXVsdENv
bG9yLCBlbGVtZW50KTsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCisg
ICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAgIGluaGVyaXQg
PSB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAK
aW5kZXggYzZjMzZhZTY3ZjUwMzk3MTM2ZDcwZmMxZjFiZTMwMGE0YjJjZjYzOC4uOWI4OGVkNmE3
NDllMGU5MTY1NmMxM2Y1ZWI5ZGYxMDJhNzdmOTMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00ODQsMjQgKzQ4NCwyNCBAQCBSZWY8U3R5bGVQcm9wZXJ0
aWVzPiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUoKSBjb25zdAogICAg
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJSaWdodFdpZHRoLCBDU1NW
YWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJM
ZWZ0U3R5bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlCb3JkZXJSaWdodFN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKLSAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJ
bmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyQ29sb3IsIENTU1ZhbHVlSW5oZXJpdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U29saWRCb3JkZXJzUm93c09ubHk6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJvcmRlclRvcFdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAgICAg
ICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIENTU1ZhbHVl
U29saWQpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0
b21TdHlsZSwgQ1NTVmFsdWVTb2xpZCk7Ci0gICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7
CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBDU1NW
YWx1ZUluaGVyaXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNvbGlkQm9yZGVyczoKICAg
ICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZSgxLCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7Ci0gICAgICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBjc3NWYWx1ZVBvb2wuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlU29saWQpKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRW
YWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyU3R5
bGUsIENTU1ZhbHVlU29saWQpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlCb3JkZXJDb2xvciwgQ1NTVmFsdWVJbmhlcml0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJbnNldEJvcmRlcnM6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlcldpZHRoLCBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoMSwgQ1NTVW5pdFR5cGU6OkNTU19Q
WCkpOwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwg
Y3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluc2V0KSk7Ci0gICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBDU1NWYWx1ZUluc2V0KTsKKyAgICAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIENTU1ZhbHVlSW5oZXJpdCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTm9Cb3JkZXJzOgogICAgICAgICAvLyBJZiAncnVsZXM9bm9u
ZScgdGhlbiBhbGxvdyBhbnkgYm9yZGVycyBzZXQgYXQgY2VsbCBsZXZlbCB0byB0YWtlIGVmZmVj
dC4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5k
ZXggODFiYWI5M2E0MWJiNmM0YTg5M2Q1YjhiM2FlYTZlMThhZWMxNDc1ZC4uYmViODk2N2ZkYmNk
ZTQzMjg1NGQxNTNiYTljZTI2YzY3NzNlMzBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNjAyLDcgKzYwMiw3IEBAIHZvaWQgRWxlbWVu
dFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKE1hdGNoZWRQcm9wZXJ0aWVzJiYg
bWF0Y2hlZFByb3BlCiAgICAgICAgICAgICAvLyBhcyB0aGV5IG1pZ2h0IG92ZXJyaWRlIHRoZSB2
YWx1ZSBpbmhlcml0ZWQgaGVyZS4gRm9yIHRoaXMgcmVhc29uIHdlIGRvbid0IGFsbG93IGRlY2xh
cmF0aW9ucyB3aXRoCiAgICAgICAgICAgICAvLyBleHBsaWNpdGx5IGluaGVyaXRlZCBwcm9wZXJ0
aWVzIHRvIGJlIGNhY2hlZC4KICAgICAgICAgICAgIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSA9ICpj
dXJyZW50LnZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAodmFsdWUuaXNJbmhlcml0ZWRWYWx1ZSgp
KQorICAgICAgICAgICAgaWYgKHZhbHVlLmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBUaGUgdmFsdWUgY3VycmVudENvbG9y
IGhhcyBpbXBsaWNpdGVseSB0aGUgc2FtZSBzaWRlIGVmZmVjdC4gSXQgZGVwZW5kcyBvbiB0aGUg
dmFsdWUgb2YgY29sb3IsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcApp
bmRleCA3ZGY3YTc1YWFkMDA4ZTk1OWEwOTQ3NTNiZmNkZTNmNjMxNDY2NmVjLi5lMjkzYmE2OTNi
MDQ1NGY3MGEwYzVmN2Q2YTA5M2IwYTZjZTMyNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1By
b3BlcnR5Q2FzY2FkZS5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBib29sIFByb3BlcnR5Q2FzY2Fk
ZTo6YWRkTWF0Y2goY29uc3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNoZWRQcm9wZXJ0aWVzLCBD
YXNjYQogICAgICAgICBpZiAobV9pbmNsdWRlZFByb3BlcnRpZXMgPT0gSW5jbHVkZWRQcm9wZXJ0
aWVzOjpJbmhlcml0ZWRPbmx5ICYmICFjdXJyZW50LmlzSW5oZXJpdGVkKCkpIHsKICAgICAgICAg
ICAgIC8vIEluaGVyaXRlZCBvbmx5IG1vZGUgaXMgdXNlZCBhZnRlciBtYXRjaGVkIHByb3BlcnRp
ZXMgY2FjaGUgaGl0LgogICAgICAgICAgICAgLy8gQSBtYXRjaCB3aXRoIGEgdmFsdWUgdGhhdCBp
cyBleHBsaWNpdGx5IGluaGVyaXRlZCBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVuIGNhY2hlZC4KLSAg
ICAgICAgICAgIEFTU0VSVCghY3VycmVudC52YWx1ZSgpLT5pc0luaGVyaXRlZFZhbHVlKCkpOwor
ICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LnZhbHVlKCktPmlzSW5oZXJpdFZhbHVlKCkpOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlEID0gY3VycmVudC5pZCgpOwpAQCAtMzA4LDcgKzMwOCw3IEBAIFByb3BlcnR5Q2Fz
Y2FkZTo6RGlyZWN0aW9uIFByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZURpcmVjdGlvbkFuZFdyaXRp
bmdNb2RlKERpcmVjCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgbWF0Y2hlZFByb3BlcnRpZXMg
OiBkZWNsYXJhdGlvbnNGb3JDYXNjYWRlTGV2ZWwobV9tYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVs
KSkgewogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSBtYXRjaGVkUHJv
cGVydGllcy5wcm9wZXJ0aWVzLT5wcm9wZXJ0eUNvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IG1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRp
ZXMtPnByb3BlcnR5QXQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS52YWx1ZSgp
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS52YWx1
ZSgpLT5pc1ByaW1pdGl2ZVZhbHVlKCkgfHwgcHJvcGVydHkudmFsdWUoKS0+aXNDU1NXaWRlS2V5
d29yZCgpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBz
d2l0Y2ggKHByb3BlcnR5LmlkKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V3JpdGluZ01vZGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCAzYmEy
ZDk2ZWQ3MzQyYTA1NDk5YzcwNzJiYTU3MzZiNjNiMmZiMTUzLi45ZDZjNmI0Mzk5MGE4YTliZTEw
YjYyMjczZDA3OTJiOThiZTU4YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5j
cHAKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIEJ1aWxkZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBpZCwgQ1NTVmFsdWUmIHZhbHVlLCBTZWxlY3RvckNoZWNrZXI6OgogICAgICAgICBj
dXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgPSBtX3N0YXRlLmRvY3VtZW50KCkuZ2V0Q1NTUmVnaXN0
ZXJlZEN1c3RvbVByb3BlcnR5U2V0KCkuZ2V0KG5hbWUpOwogICAgIH0KIAotICAgIGJvb2wgaXNJ
bmhlcml0ID0gdmFsdWVUb0FwcGx5LT5pc0luaGVyaXRlZFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVy
dHlWYWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdDsKKyAgICBib29sIGlzSW5oZXJpdCA9IHZhbHVl
VG9BcHBseS0+aXNJbmhlcml0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NT
VmFsdWVJbmhlcml0OwogICAgIGJvb2wgaXNJbml0aWFsID0gdmFsdWVUb0FwcGx5LT5pc0luaXRp
YWxWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWw7CiAK
ICAgICBib29sIGlzVW5zZXQgPSB2YWx1ZVRvQXBwbHktPmlzVW5zZXRWYWx1ZSgpIHx8IGN1c3Rv
bVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0OwpAQCAtMzYxLDggKzM2MSw4IEBAIFJl
ZjxDU1NWYWx1ZT4gQnVpbGRlcjo6cmVzb2x2ZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCwgQ1NTVmFsdWUmIHZhbHVlKQogICAgIC8vIElmIHRoZSBjYXNjYWRlIGhhcyBhbHJlYWR5IGFw
cGxpZWQgdGhpcyBpZCwgdGhlbiB3ZSBkZXRlY3RlZCBhIGN5Y2xlLCBhbmQgdGhpcyB2YWx1ZSBz
aG91bGQgYmUgdW5zZXQuCiAgICAgaWYgKCF2YXJpYWJsZVZhbHVlIHx8IG1fc3RhdGUubV9hcHBs
aWVkUHJvcGVydGllcy5nZXQocHJvcGVydHlJRCkpIHsKICAgICAgICAgaWYgKENTU1Byb3BlcnR5
Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKQotICAgICAgICAgICAgcmV0dXJuIENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsKLSAgICAgICAg
cmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFs
dWUoKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZVZhbHVlKENTU1ZhbHVlSW5oZXJpdCk7CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNp
bmdsZXRvbigpLmNyZWF0ZVZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7CiAgICAgfQogCiAgICAgcmV0
dXJuICp2YXJpYWJsZVZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50
LmNwcAppbmRleCA1YmMyNjVhNjM3ZDQyNTUzNDM4NWEwYzljNTIxODQ2ODE5MDlkMDJhLi40MjJh
M2I5NTFmMGJmMGEwMzU5OWM2ZDBhMzQyZDQwMTY3ZWM3YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIFNWR0ZvbnRG
YWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cgogICAgICAgICAgICAgLy8gUmF0aGVyIHRoYW4gaW52YXNpdmVseSBtb2RpZnlp
bmcgdGhlIHBhcnNlciBmb3IgdGhlIHByb3BlcnRpZXMgdG8gaGF2ZSBhIHNwZWNpYWwgbW9kZSwg
d2UgY2FuIHNpbXBseSBkZXRlY3QgdGhlIGVycm9yIGNvbmRpdGlvbiBhZnRlci10aGUtZmFjdCBh
bmQKICAgICAgICAgICAgIC8vIGF2b2lkIGl0IGV4cGxpY2l0bHkuCiAgICAgICAgICAgICBpZiAo
YXV0byBwYXJzZWRWYWx1ZSA9IHByb3BlcnRpZXMuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0
eUlkKSkgewotICAgICAgICAgICAgICAgIGlmIChwYXJzZWRWYWx1ZS0+aXNHbG9iYWxLZXl3b3Jk
KCkpCisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlLT5pc0NTU1dpZGVLZXl3b3JkKCkp
CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucmVtb3ZlUHJvcGVydHkocHJvcGVydHlJ
ZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443399</attachid>
            <date>2021-11-05 09:07:37 -0700</date>
            <delta_ts>2021-11-05 09:12:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211105180735.patch</filename>
            <type>text/plain</type>
            <size>231911</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzMzQzMTliMTBhMTFm
NGExMjBkNDgzZGQzMjg5YWY4ZGUyOGY4ZS4uNWU2M2UzMzliZjJjNTYxYjYzMWRjOTFhODk3OTI2
YmI3MTY4MjU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxNiBAQAorMjAyMS0xMS0wNSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
eSBjYW4gYWxsIGJlIGhhbmRsZWQgYnkgQ1NTUHJpbWl0aXZlVmFsdWUuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6
CisKKyAgICAgICAgQXZvaWQgY2hhbmdpbmcgdGhlIGNsYXNzIHR5cGUgdmlzaWJsZSBpbiBDU1NP
TS4KKworICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaGVyaXRlZFZh
bHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppbml0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpzdHJpbmdWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzIGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKworICAgICAgICBGb3Ig
ImluaXRpYWwiIHdlIG5lZWQgYW4gZXh0cmEgYml0IHRvIGluZGljYXRlIGlmIGl0IHdhcyBpbXBs
aWNpdCB2YWx1ZS4gVGhlcmUgaXMKKyAgICAgICAgYSBidW5jaCBvZiBtZWNoYW5pY2FsIGNoYW5n
ZXMgaW4gQ1NTUHJpbWl0aXZlVmFsdWUgdG8gbWFrZSB0aGF0IGhhcHBlbi4KKworICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZmxlY3Rpb25EaXJlY3Rpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtbkZpbGwgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVt
blNwYW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFByaW50Q29sb3JBZGp1c3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEJvcmRlclN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Q29udHJvbFBhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEJhY2tmYWNlVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbEF0dGFjaG1lbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxCb3ggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxSZXBlYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJv
eFBhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveEFsaWdubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJyZWFrIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hTaXppbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveERpcmVjdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94
TGluZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveE9yaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQ2FwdGlvblNpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENsZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBEaXNwbGF5
VHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRW1wdHlDZWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGbGV4RGlyZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGlnbkNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZsZXhXcmFwIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGbG9hdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PEhh
bmdpbmdQdW5jdHVhdGlvbj4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGlzdFN0eWxlUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpc3RTdHlsZVR5cGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcmdp
bkNvbGxhcHNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBNYXJxdWVlQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcnF1ZWVEaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE5CU1BNb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNj
cm9sbEJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCcmVha0JldHdlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrSW5zaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBQb3NpdGlvblR5cGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlc2l6ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGFibGVMYXlv
dXRUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0QWxpZ25Nb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0SnVzdGlmeSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PFRleHREZWNv
cmF0aW9uPiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0U2VjdXJpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHREZWNvcmF0aW9uU2tpcEluayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRpIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVXNlck1vZGlm
eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VXNlclNlbGVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVmVydGljYWxBbGlnbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2hpdGVTcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV29yZEJyZWFrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvd1dy
YXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0Q29tYmluZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUnVieVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3cg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc0ZpbGwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRhdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUG9pbnRlckV2ZW50cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgS2Vy
bmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgT2JqZWN0Rml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2FwcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5
cGhlbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIExpbmVTbmFwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBMaW5lQWxpZ24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8U3BlYWtBcz4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgSXNvbGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQ2FwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBMaW5lSm9pbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgV2luZFJ1bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEFsaWdubWVudEJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3JkZXJDb2xsYXBzZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJ
bWFnZVJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgSW5wdXRTZWN1cml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtU3R5bGUzRCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtQm94IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5B
eGlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDb2x1bW5Qcm9ncmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQnVmZmVyZWRSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9ySW50ZXJwb2xhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JS
ZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIERvbWluYW50QmFzZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNoYXBlUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QW5jaG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBWZWN0b3JFZmZlY3Qg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1h
c2tUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBJdGVtUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93QWxpZ25tZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb250ZW50UG9zaXRpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnREaXN0
cmlidXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRab29tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RyaWN0bmVzcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU2Ny
b2xsU25hcEF4aXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RvcCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhaWxpbmdXb3Jk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBB
cHBsZVBheUJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJpYW50UG9zaXRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRW
YXJpYW50Q2FwcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250T3B0aWNhbFNpemluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udExvYWRpbmdC
ZWhhdmlvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTWF0aFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUmV2ZXJ0VmFsdWUuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVkVmFsdWUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5pdGlhbFZhbHVl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFs
dWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0
VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzR2xv
YmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVl
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUltcGxpY2l0SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVQb29sLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVFeHBsaWNpdElu
aXRpYWxWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNy
ZWF0ZVVuc2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29s
OjpjcmVhdGVSZXZlcnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZTo6aXNDU1NXaWRlS2V5d29yZCBjb25zdCk6CisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1ZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6cGFnZUJyZWFrUHJvcGVydHlW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjph
ZGRQYXJzZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VLZXl3b3JkVmFsdWUpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmg6CisgICAgICAgIChXZWJDb3JlOjppc0NTU1dp
ZGVLZXl3b3JkKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjphZGRQcm9wZXJ0eSk6CisgICAg
ICAgIChXZWJDb3JlOjptYXliZUNvbnN1bWVDU1NXaWRlS2V5d29yZCk6CisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjppc0NTU1dpZGVLZXl3b3JkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29u
dmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVy
dGVyQ2FjaGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKEhUTUxDb252
ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAqIGh0bWwv
SFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50
OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNv
bGxlY3Rvcjo6YWRkTWF0Y2hlZFByb3BlcnRpZXMpOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjph
ZGRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpyZXNv
bHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6cmVzb2x2ZVZhbHVlKToK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorCisyMDIxLTExLTA1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc2VwYXJhdGUg
Y2xhc3NlcyBmb3IgQ1NTIHdpZGUga2V5d29yZHMgKGluaXRpYWwvaW5oZXJpdC91bnNldC9yZXZl
cnQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI3
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGV5
IGNhbiBhbGwgYmUgaGFuZGxlZCBieSBDU1NQcmltaXRpdmVWYWx1ZS4KKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGNzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyVGV4
dERlY29yYXRpb25TdHlsZUZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblNraXBUb0NTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTSW5oZXJp
dGVkVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NJbmhlcml0ZWRWYWx1ZS5o
OiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NJbml0aWFsVmFsdWUuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGNzcy9DU1NJbml0aWFsVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVOYW1lKToKKyAg
ICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTUmV2ZXJ0
VmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjc3MvQ1NTVW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVmFsdWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFs
dWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lk
ZUtleXdvcmQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVk
VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5p
dGlhbFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpp
c1Vuc2V0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmlzR2xvYmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVlUG9vbCk6CisgICAg
ICAgICogY3NzL0NTU1ZhbHVlUG9vbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29s
OjpjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVVbnNldFZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlUmV2ZXJ0VmFsdWUpOiBEZWxl
dGVkLgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmlzQ1NTV2lkZUtl
eXdvcmQgY29uc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAg
ICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjpib3JkZXJSYWRpdXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVByb3BlcnRpZXM6OnBhZ2VCcmVha1Byb3BlcnR5VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNl
S2V5d29yZFZhbHVlKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1ZhbHVlQWxsb3dlZEluTW9kZSk6CisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ1NTV2lkZUtl
eXdvcmQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bWF5YmVDb25zdW1lQ1NTV2lkZUtleXdvcmQpOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6aXNDU1NXaWRlS2V5d29yZCk6IERlbGV0ZWQuCisg
ICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENv
bnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAoSFRNTENvbnZl
cnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29u
dmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVD
b2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBzdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6
YWRkTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cmVz
b2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OnJlc29sdmVWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKwogMjAyMS0xMS0wNCAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQg
ZGlkRHJhdyAvIGRpZERyYXdFbnRpcmVDYW52YXMgY2FsbHMgaW4gY2FudmFzIGRyYXdpbmcgZnVu
Y3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDhkYTI0Yjc4ZGE1N2RjM2JkMmNlZDExODRjMmVkZGZm
MGI4ZGUyNDYuLjZlOGRhYjc2NTJmNWIzNGJmYWFmZTgzYmZkNzcyM2FjZjAwZGM4MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC02OTAsOCArNjkwLDYgQEAgY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwCiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKIGNzcy9DU1NJbWFnZVZhbHVlLmNwcAogY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwCi1jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCi1jc3MvQ1NTSW5p
dGlhbFZhbHVlLmNwcAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNzcy9DU1NLZXlmcmFtZXNS
dWxlLmNwcAogY3NzL0NTU0xheWVyUnVsZS5jcHAKQEAgLTcwNyw3ICs3MDUsNiBAQCBjc3MvQ1NT
UHJvcGVydHkuY3BwCiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAogY3NzL0NTU1JlZmxl
Y3RWYWx1ZS5jcHAKIGNzcy9DU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3BwCi1jc3MvQ1NT
UmV2ZXJ0VmFsdWUuY3BwCiBjc3MvQ1NTUnVsZS5jcHAKIGNzcy9DU1NSdWxlTGlzdC5jcHAKIGNz
cy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTcyMyw3ICs3MjAsNiBAQCBjc3MvQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKIGNzcy9DU1NUb1N0eWxlTWFwLmNwcAogY3NzL0NTU1Vu
aWNvZGVSYW5nZVZhbHVlLmNwcAogY3NzL0NTU1VuaXRzLmNwcAotY3NzL0NTU1Vuc2V0VmFsdWUu
Y3BwCiBjc3MvQ1NTVmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWVMaXN0LmNwcAogY3NzL0NTU1ZhbHVl
UGFpci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlOTk2MzcyMzhhYWY0NmE3OTk3YzJjOGRlNDE2YjRjYWNkNDY1OTExLi42
YjIyYjQ0MDJhMjkxMmNiODgxNjVlOTg0ZjQ1ZTliNGQ3M2E5MTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTMxLDEwICsz
NTMxLDggQEAKIAkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDMw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0ZGMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDAwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBODBF
NkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q3MEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwMzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFNkNEOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDQw
QTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTgwRTZE
MDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaXRpYWxWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwQzBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMEQwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZERkMwQTE5
OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxl
UHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC00MTU0LDggKzQxNTIsNiBAQAogCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyog
Q1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250
YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzlFMTMx
QkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3OUUxNzFCQjIyN0NBMDBD
QUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzc5RTE1MUJCMjI2QTIwMENBQThCRiAvKiBTdHls
ZUN1c3RvbVByb3BlcnR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdEOEZF
RTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovOyB9OwotCQlCQzdEOEZGNDFC
RDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NS
ZXZlcnRWYWx1ZS5oICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyMTBEMUYwQ0JEMDBE
QjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RkE2
MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTEzMTk2LDcgKzEzMTkyLDYgQEAKIAkJQTgwRTZD
QzMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4MEU2Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDQzYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aGVyaXRlZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NJbmhlcml0ZWRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2
Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQ0EwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1NoYWRv
d1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NTaGFk
b3dWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIxMSwxMyArMTMy
MDYsMTAgQEAKIAkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltYWdlVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNENTBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1By
b3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q2MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUGFnZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDRDcw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NJbml0aWFsVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEOTBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NNZWRpYVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREEwQTE5
ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREIwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aXRpYWxWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSW5pdGlh
bFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RGMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTkzLDEwICsxNDU4NSw2IEBACiAJCUJDNzc5RTEzMUJCMjE1QkIwMENBQThC
RiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQ3VzdG9tUHJvcGVydHlE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1MDgyNDEwMEE4
MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1NDAgLyog
Q1NTVW5zZXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NVbnNldFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3RDhGRUUx
QkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmV2ZXJ0VmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2
ZXJ0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUmV2ZXJ0VmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlE
MDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RkE2MUUw
RDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMaXZlTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdmVOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTg2MTEsMTEgKzE4NTk5LDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJC
NjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCisJCQkJMUE1
NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAw
RDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJ
ZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRl
bnRpZmllclJlcC5oICovLAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8s
Ci0JCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJMUE1NjlDRUYw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3
RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI5OTAwLDEwICsyOTg4OCw2
IEBACiAJCQkJQTgwRTZDQzEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuY3BwICov
LAogCQkJCUE4MEU2Q0NDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggKi8sCiAJ
CQkJODVDNTZDQTkwQUE4OUU2NjAwRDk1NzU1IC8qIENTU0ltcG9ydFJ1bGUuaWRsICovLAotCQkJ
CUE4MEU2Q0M2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5jcHAgKi8sCi0J
CQkJQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8sCi0J
CQkJQTgwRTZDRDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5jcHAgKi8sCi0J
CQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovLAogCQkJ
CTMxMjg4RTZFMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuY3BwICovLAogCQkJ
CTMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCAqLywKIAkJCQkz
MTZGRTA5MTBFNkNDRDdGMDBCRjYwODggLyogQ1NTS2V5ZnJhbWVSdWxlLmlkbCAqLywKQEAgLTI5
OTQ3LDggKzI5OTMxLDYgQEAKIAkJCQlCQzVBMTJERTBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVm
bGVjdFZhbHVlLmggKi8sCiAJCQkJNEIxNzA2NjQyMTYyQjQyRjAwRTU3OEJCIC8qIENTU1JlZ2lz
dGVyZWRDdXN0b21Qcm9wZXJ0eS5jcHAgKi8sCiAJCQkJNEJEQTNGRkIyMTUxQjZGNDAwRkQ2NjA0
IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oICovLAotCQkJCUJDN0Q4RkYxMUJEMUE0
NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5jcHAgKi8sCi0JCQkJQkM3RDhGRjIxQkQxQTQ3
OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggKi8sCiAJCQkJQTgwRTZDREMwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU1J1bGUuY3BwICovLAogCQkJCUE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NSdWxlLmggKi8sCiAJCQkJMTRDRjdBNzAwOUY1Q0Y5QTAwRUIzNjY1IC8qIENTU1J1bGUu
aWRsICovLApAQCAtMjk5ODcsOCArMjk5NjksNiBAQAogCQkJCTBGNkI3MDc3MjM3QkMxMkYwMDUy
Q0E0NyAvKiBDU1NVbml0cy5oICovLAogCQkJCUE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NVbmtub3duUnVsZS5oICovLAogCQkJCTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NV
bmtub3duUnVsZS5pZGwgKi8sCi0JCQkJQkM3RDhGRUQxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vu
c2V0VmFsdWUuY3BwICovLAotCQkJCUJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNl
dFZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVCIC8qIENTU1ZhbHVlLmNw
cCAqLywKIAkJCQlBODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCAqLywKIAkJ
CQlCQ0VBNDc4QzA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKQEAg
LTMyMjYzLDggKzMyMjQzLDYgQEAKIAkJCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NT
SW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkEwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0Y2MEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkQw
MTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4MEU2RDA4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlm
cmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTQxMDdBNDI2Q0I2NkY4MDAzQkY3OTcg
LyogQ1NTS2V5d29yZFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMzE5LDcgKzMyMjk3LDYg
QEAKIAkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVBMTJFMDBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVm
bGVjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQg
LyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzdE
OEZGNDFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJBNTM4QTI4MjZGMDEwM0MwMDk2NUZDOCAvKiBDU1NSb3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MEU2RDBEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkNGMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzIzNTMsNyArMzIzMzAsNiBAQAogCQkJCTRCQUZEMEUxMjE5MjQyQTAwMEMw
QUI2NCAvKiBDU1NVbml0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NG
OTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJBRkQw
RDkyMTkyMUVBMDAwQzBBQjY0IC8qIENTU1VucGFyc2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAot
CQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUzQkJDMjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5
d29yZHMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAppbmRleCBhN2UxMzRm
ZWFkZTJjOGI0YTBjZTE1NTk1MDQ3M2Y2MzA2OTc3NWJkLi42ZGNmOGE0Mzc2MjhkZWVjZDYyZDVk
YzI5NjhlNWE5MDdhMzE2ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcApAQCAtNTEsNyArNTEs
NyBAQCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8RAogewogICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxp
c3QoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKLSAgICBpZiAodmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkKKyAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiAhZG93
bmNhc3Q8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KHZhbHVlLmdldCgpKS5pc0NTU1dp
ZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKICAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHZhbHVlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDJmMmUwODliYWIxNDY1NzQ2Y2Y3MzNmNjZkOTFiNTUx
MGFiNmQxZmMuLjIxOTUyM2UxMzA2MzJkZjNjZDdjNjM4ZDg1MTE2NTdkYTczY2ZiZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC0xNjI4LDcgKzE2MjgsNyBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVj
b3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9uU3R5bAogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAgcmV0dXJuIENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7
CiB9CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRv
Q1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rIHRleHREZWNvcmF0aW9uU2tpcEluaykKQEAg
LTE2NDMsNyArMTY0Myw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNv
cmF0aW9uU2tpcFRvQ1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rCiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKIH0K
IAogc3RhdGljIFJlZjxDU1NWYWx1ZT4gdGV4dFVuZGVybGluZU9mZnNldFRvQ1NTVmFsdWUoY29u
c3QgVGV4dFVuZGVybGluZU9mZnNldCYgdGV4dFVuZGVybGluZU9mZnNldCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZDI0ODk4MWIxYWQyNDRiZWNkNzM0ODEzMzJiN2E4N2FhY2U4OTdmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKioKLSAq
IChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDU1NJbmhlcml0ZWRWYWx1ZS5oIgotCi0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
U3RyaW5nIENTU0luaGVyaXRlZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gImluaGVyaXQiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI1MmI5MTU0YWEyMjhkNTEwOWViYjQwMGYyZTk5ZGRkZWVmZGQ0NDQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lu
aGVyaXRlZFZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogKEMp
IDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENTU0luaGVyaXRlZFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1
YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVh
bHMoY29uc3QgQ1NTSW5oZXJpdGVkVmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbmhlcml0ZWRWYWx1ZT47
Ci0gICAgQ1NTSW5oZXJpdGVkVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NT
VmFsdWUoSW5oZXJpdGVkQ2xhc3MpCi0gICAgewotICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAg
fQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0NTU19WQUxVRShDU1NJbmhlcml0ZWRWYWx1ZSwgaXNJbmhlcml0ZWRWYWx1ZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmQxNDM2ZTdmMWVjYTY0NmY4NjhkOTg4Zjc2NjI0NmVmNzYxMzMwYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW5pdGlhbFZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICog
KEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0luaXRpYWxWYWx1ZS5oIgotCi0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3Ry
aW5nIENTU0luaXRpYWxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
ICJpbml0aWFsIl9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW5pdGlhbFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZmI3NmYy
NTFmMjQ0ZjE1MWNhNzI4MTIyYmMxMmE0NGE5YmE3YTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIChDKSAxOTk5LTIwMDMg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
U1NJbml0aWFsVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0
cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGlzSW1wbGljaXQoKSBjb25z
dCB7IHJldHVybiBtX2lzSW1wbGljaXQ7IH0KLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0lu
aXRpYWxWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmll
bmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT47Ci0gICAgQ1NTSW5pdGlhbFZh
bHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBib29sIGltcGxpY2l0KQotICAgICAgICA6IENTU1ZhbHVl
KEluaXRpYWxDbGFzcykKLSAgICAgICAgLCBtX2lzSW1wbGljaXQoaW1wbGljaXQpCi0gICAgewot
ICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGJvb2wgbV9pc0lt
cGxpY2l0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NTU19WQUxVRShDU1NJbml0aWFsVmFsdWUsIGlzSW5pdGlhbFZhbHVlKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBhOWQwMjI2ZjljZGQ1MDU3
MmEyZGJjOGE1OTkwODY5NzE3MTY4NGJjLi5kYTUyZjg3N2MwNjFmMGY0OTA3MzhjMDRkNjc1ZjIw
M2RhMmZlMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAg
LTI2Miw3ICsyNjIsNiBAQCBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZU5h
bWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewogICAgIEFTU0VSVF9BUkcodmFsdWVJRCwgKHZhbHVl
SUQgPj0gZmlyc3RDU1NWYWx1ZUtleXdvcmQgJiYgdmFsdWVJRCA8PSBsYXN0Q1NTVmFsdWVLZXl3
b3JkKSk7Ci0KICAgICByZXR1cm4gZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyh2YWx1ZUlEKTsKIH0K
IApAQCAtMjcwLDcgKzI2OSwxNCBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0g
ICAgbV92YWx1ZS52YWx1ZUlEID0gdmFsdWVJRDsKKyAgICBzZXRWYWx1ZUlESW50ZXJuYWwodmFs
dWVJRCk7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJbXBsaWNp
dEluaXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQoreworICAg
IHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOworICAgIHNl
dEltcGxpY2l0SW5pdGlhbEludGVybmFsKCk7CiB9CiAKIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCkBAIC0zNTAsNiArMzU2LDEy
IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRh
ZywgQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIG1ha2VTdGF0aWMoKTsKIH0KIAorQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBJbXBsaWNpdElu
aXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKEltcGxpY2l0SW5pdGlhbFZh
bHVlKQoreworICAgIG1ha2VTdGF0aWMoKTsKK30KKwogQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAg
OiBDU1NQcmltaXRpdmVWYWx1ZShjb2xvcikKIHsKQEAgLTM2Nyw3ICszNzksNyBAQCB2b2lkIENT
U1ByaW1pdGl2ZVZhbHVlOjppbml0KGNvbnN0IExlbmd0aCYgbGVuZ3RoKQogICAgIHN3aXRjaCAo
bGVuZ3RoLnR5cGUoKSkgewogICAgIGNhc2UgTGVuZ3RoVHlwZTo6QXV0bzoKICAgICAgICAgc2V0
UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6OkZp
eGVkOgogICAgICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1BYKTsK
QEAgLTM3NSwyNyArMzg3LDI3IEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmluaXQoY29uc3Qg
TGVuZ3RoJiBsZW5ndGgpCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6Oklu
dHJpbnNpYzoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50cmluc2ljOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnRyaW5zaWMpOwogICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpNaW5JbnRyaW5zaWM6CiAgICAgICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pbkludHJpbnNpYzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTWluSW50cmluc2ljKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
TGVuZ3RoVHlwZTo6TWluQ29udGVudDoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTWluQ29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWluQ29u
dGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6Ok1heENvbnRlbnQ6
CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1heENvbnRlbnQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1heENvbnRlbnQpOwogICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpGaWxsQXZhaWxhYmxlOgogICAgICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgTGVuZ3RoVHlwZTo6Rml0Q29udGVudDoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRml0Q29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlRml0Q29udGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6OlBl
cmNlbnQ6CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfUEVS
Q0VOVEFHRSk7CkBAIC0xMDMxLDcgKzEwNDMsNyBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6
OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRk9OVF9GQU1J
TFk6CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLmZvbnRGYW1pbHktPmZhbWlseU5hbWU7CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEOgotICAgICAgICByZXR1cm4gdmFsdWVOYW1l
KG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgIHJldHVybiB2YWx1ZU5hbWUodmFsdWVJRCgpKTsK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFJPUEVSVFlfSUQ6CiAgICAgICAgIHJldHVybiBw
cm9wZXJ0eU5hbWUobV92YWx1ZS5wcm9wZXJ0eUlEKTsKICAgICBkZWZhdWx0OgpAQCAtMTIwNSw3
ICsxMjE3LDcgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1h
dE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19VUkk6CiAgICAgICAgIHJldHVybiBzZXJpYWxpemVVUkwobV92YWx1ZS5zdHJpbmcpOwogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoKLSAgICAgICAgcmV0dXJuIHZhbHVlTmFt
ZShtX3ZhbHVlLnZhbHVlSUQpOworICAgICAgICByZXR1cm4gdmFsdWVOYW1lKHZhbHVlSUQoKSk7
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BST1BFUlRZX0lEOgogICAgICAgICByZXR1cm4g
cHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0FUVFI6CkBAIC0xMzU4LDcgKzEzNzAsNyBAQCBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjpl
cXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19QUk9QRVJUWV9JRDoKICAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZSht
X3ZhbHVlLnByb3BlcnR5SUQpID09IHByb3BlcnR5TmFtZShvdGhlci5tX3ZhbHVlLnByb3BlcnR5
SUQpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoKLSAgICAgICAgcmV0dXJu
IHZhbHVlTmFtZShtX3ZhbHVlLnZhbHVlSUQpID09IHZhbHVlTmFtZShvdGhlci5tX3ZhbHVlLnZh
bHVlSUQpOworICAgICAgICByZXR1cm4gdmFsdWVOYW1lKHZhbHVlSUQoKSkgPT0gdmFsdWVOYW1l
KG90aGVyLnZhbHVlSUQoKSk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NUUklORzoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDdXN0b21JZGVudDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVVJJOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBiNzQ3OWM3
YmY3ZDk1NDc1MDg3OTI5NDk2ZjRkNGIxYTllZDU4ODYxLi5mMGI5N2VjZjEzODY4Y2FmNDhmODQx
YzU5ZDRjZDAxZWIxMzBhZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aApAQCAtMTE1LDYgKzExNSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJv
b2wgaXNDdXN0b21JZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0g
Q1NTVW5pdFR5cGU6OkN1c3RvbUlkZW50OyB9CiAKKyAgICBib29sIGlzSW5pdGlhbCgpIGNvbnN0
IHsgcmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZUluaXRpYWw7IH0K
KyAgICBib29sIGlzSW1wbGljaXRJbml0aWFsKCkgY29uc3QgeyByZXR1cm4gaXNJbml0aWFsKCkg
JiYgaXNJbXBsaWNpdEludGVybmFsKCk7IH0KKyAgICBib29sIGlzSW5oZXJpdCgpIGNvbnN0IHsg
cmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZUluaGVyaXQ7IH0KKyAg
ICBib29sIGlzVW5zZXQoKSBjb25zdCB7IHJldHVybiBpc1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkg
PT0gQ1NTVmFsdWVVbnNldDsgfQorICAgIGJvb2wgaXNSZXZlcnQoKSBjb25zdCB7IHJldHVybiBp
c1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKwogICAgIHN0YXRp
YyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1
ZUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlSUQpKTsg
fQogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2
ZVZhbHVlKHByb3BlcnR5SUQpKTsgfQogCkBAIC0xNzUsNyArMTgxLDcgQEAgcHVibGljOgogICAg
IFF1YWQqIHF1YWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgIT0g
Q1NTVW5pdFR5cGU6OkNTU19RVUFEID8gbnVsbHB0ciA6IG1fdmFsdWUucXVhZDsgfQogICAgIFJl
Y3QqIHJlY3RWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgIT0gQ1NT
VW5pdFR5cGU6OkNTU19SRUNUID8gbnVsbHB0ciA6IG1fdmFsdWUucmVjdDsgfQogICAgIENTU0Jh
c2ljU2hhcGUqIHNoYXBlVmFsdWUoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgp
ICE9IENTU1VuaXRUeXBlOjpDU1NfU0hBUEUgPyBudWxscHRyIDogbV92YWx1ZS5zaGFwZTsgfQot
ICAgIENTU1ZhbHVlSUQgdmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBl
KCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCA/IG1fdmFsdWUudmFsdWVJRCA6IENTU1Zh
bHVlSW52YWxpZDsgfQorICAgIENTU1ZhbHVlSUQgdmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHBy
aW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCA/IHZhbHVlSURJ
bnRlcm5hbCgpIDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBpbmxpbmUgb3BlcmF0b3IgVCgpIGNvbnN0OyAvLyBEZWZpbmVkIGluIENTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaAogCkBAIC0xOTgsOSArMjA0LDEzIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgQ1NTVmFsdWVQb29sOworICAgIGZyaWVuZCBjbGFzcyBTdGF0aWND
U1NWYWx1ZVBvb2w7CiAgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVW
YWx1ZT47CiAKKyAgICBlbnVtIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnIHsgSW1wbGljaXRJbml0
aWFsVmFsdWUgfTsKKwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKENTU1ZhbHVlSUQpOworICAgIENT
U1ByaW1pdGl2ZVZhbHVlKEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKTsKICAgICBDU1NQcmltaXRp
dmVWYWx1ZShDU1NQcm9wZXJ0eUlEKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBDb2xv
ciYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IExlbmd0aCYpOwpAQCAtMjEwLDYgKzIy
MCw3IEBAIHByaXZhdGU6CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoZG91YmxlLCBDU1NVbml0VHlw
ZSk7CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgQ1NTVmFsdWVJ
RCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIEltcGxpY2l0SW5p
dGlhbFZhbHVlVGFnKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywg
Y29uc3QgQ29sb3ImKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywg
ZG91YmxlLCBDU1NVbml0VHlwZSk7CiAKQEAgLTI0NCw5ICsyNTUsMzMgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNSZXNvbHV0aW9uKENTU1VuaXRUeXBlKTsKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoQ1NTVW5pdFR5
cGUpOwogCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBpbXBsaWNpdEJpdE1hc2sgPSAw
eDEwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgdmFsdWRJRE1hc2sgPSAweGZm
ZmY7CisKKyAgICB2b2lkIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlEIHZhbHVlSUQpCisg
ICAgeworICAgICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SURBbmRJbXBsaWNpdEJpdCA9IHZhbHVlSUQ7CisgICAgfQorICAgIHZvaWQgc2V0SW1wbGljaXRJ
bml0aWFsSW50ZXJuYWwoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEQW5kSW1wbGljaXRCaXQgPSBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oQ1NTVmFsdWVJbml0aWFsKSB8IGltcGxpY2l0Qml0TWFzazsKKyAgICB9CisgICAgQ1NTVmFs
dWVJRCB2YWx1ZUlESW50ZXJuYWwoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KG1fdmFsdWUu
dmFsdWVJREFuZEltcGxpY2l0Qml0ICYgdmFsdWRJRE1hc2spOworICAgIH0KKyAgICBib29sIGlz
SW1wbGljaXRJbnRlcm5hbCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNWYWx1ZUlE
KCkpOworICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUlEQW5kSW1wbGljaXRCaXQgJiBpbXBs
aWNpdEJpdE1hc2s7CisgICAgfQorICAgIAogICAgIHVuaW9uIHsKICAgICAgICAgQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlEOwotICAgICAgICBDU1NWYWx1ZUlEIHZhbHVlSUQ7CisgICAgICAgIHVp
bnQzMl90IHZhbHVlSURBbmRJbXBsaWNpdEJpdDsKICAgICAgICAgZG91YmxlIG51bTsKICAgICAg
ICAgU3RyaW5nSW1wbCogc3RyaW5nOwogICAgICAgICBDb3VudGVyKiBjb3VudGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggZjY0YmIx
NjRiOTYzZWMxODI4ZDA0ZTk3NjI5YzUzZTI0YzA3YzA5OS4uODQ2YjAwZjgzYjgxNzYyMjljN2E3
NWE5ZDQyYTEzMjMwNGE5MTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0xNDIsMTYgKzE0MiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUmVmbGVjdGlvbkRpcmVjdGlv
biBkaXJlYwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBSZWZsZWN0aW9uRGlyZWN0
aW9uOjpBYm92ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBYm92ZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWJvdmUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFJlZmxlY3Rpb25EaXJlY3Rpb246OkJlbG93OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJlbG93OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVCZWxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVmbGVjdGlvbkRpcmVjdGlvbjo6
TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBSZWZsZWN0aW9uRGlyZWN0aW9uOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQp
OwogICAgIH0KIH0KIApAQCAtMTU5LDcgKzE1OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFib3Zl
OgogICAgICAgICByZXR1cm4gUmVmbGVjdGlvbkRpcmVjdGlvbjo6QWJvdmU7CiAgICAgY2FzZSBD
U1NWYWx1ZUJlbG93OgpAQCAtMTgyLDEwICsxODIsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkZpbGwgY29sdW1uRmlsbCkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGNvbHVtbkZpbGwpIHsKICAgICBjYXNlIENvbHVtbkZpbGw6OkF1dG86Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29sdW1uRmls
bDo6QmFsYW5jZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYWxhbmNlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYWxhbmNlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMTkzLDkgKzE5Myw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5GaWxsIGNvbHVtbkZpbGwpCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uRmlsbCgp
IGNvbnN0CiB7CiAgICAgaWYgKHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCkgewotICAgICAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQmFs
YW5jZSkKKyAgICAgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlQmFsYW5jZSkK
ICAgICAgICAgICAgIHJldHVybiBDb2x1bW5GaWxsOjpCYWxhbmNlOwotICAgICAgICBpZiAobV92
YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKKyAgICAgICAgaWYgKHZhbHVlSURJbnRlcm5h
bCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHJldHVybiBDb2x1bW5GaWxsOjpBdXRv
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIwOCwxMCArMjA4LDEwIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShD
b2x1bW5TcGFuIGNvbHVtblNwYW4pCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjb2x1bW5TcGFuKSB7CiAgICAgY2FzZSBD
b2x1bW5TcGFuOjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbHVtblNwYW46Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIyNCw3ICsyMjQsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uU3BhbigpIGNvbnN0CiAKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFsbDoK
ICAgICAgICAgcmV0dXJuIENvbHVtblNwYW46OkFsbDsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToK
QEAgLTI0NCwxMCArMjQ0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShQcmludENvbG9yQWRqdXN0IHZhbHVlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAodmFs
dWUpIHsKICAgICBjYXNlIFByaW50Q29sb3JBZGp1c3Q6OkV4YWN0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUV4YWN0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVFeGFjdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJpbnRDb2xvckFkanVzdDo6
RWNvbm9teToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFY29ub215OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFY29ub215KTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBQcmludENvbG9yQWRqdXN0KCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUVjb25vbXk6CiAg
ICAgICAgIHJldHVybiBQcmludENvbG9yQWRqdXN0OjpFY29ub215OwogICAgIGNhc2UgQ1NTVmFs
dWVFeGFjdDoKQEAgLTI3NiwzNCArMjc2LDM0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3JkZXJTdHlsZSBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQm9yZGVyU3R5bGU6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkhpZGRlbjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUhpZGRlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5
bGU6Okluc2V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2V0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnNldCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQm9yZGVyU3R5bGU6Okdyb292ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVHcm9vdmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdyb292
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OlJpZGdlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZGdlOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSaWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5
bGU6Ok91dHNldDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdXRzZXQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU91dHNldCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRvdHRlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEb3R0ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURv
dHRlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRhc2hlZDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEYXNoZWQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZURhc2hlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9y
ZGVyU3R5bGU6OlNvbGlkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvbGlk
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb2xpZCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRvdWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVEb3VibGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZURvdWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMxMiwxNiArMzEyLDE2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3JkZXJTdHls
ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVl
LnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKSAvLyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUK
KyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvKSAvLyBWYWxpZCBmb3Ig
Q1NTIG91dGxpbmUtc3R5bGUKICAgICAgICAgcmV0dXJuIEJvcmRlclN0eWxlOjpEb3R0ZWQ7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEJvcmRlclN0eWxlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NW
YWx1ZU5vbmUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxCb3JkZXJTdHlsZT4odmFsdWVJRElu
dGVybmFsKCkgLSBDU1NWYWx1ZU5vbmUpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3V0bGluZUlzQXV0bygpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRv
KQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJl
dHVybiBPdXRsaW5lSXNBdXRvOjpPbjsKICAgICByZXR1cm4gT3V0bGluZUlzQXV0bzo6T2ZmOwog
fQpAQCAtMzMyLDQzICszMzIsNDMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbXBvc2l0ZU9wZXJhdG9yIGUpCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXI6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQ2xlYXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNsZWFyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q29w
eToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb3B5OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb3B5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTb3VyY2VPdmVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
b3VyY2VPdmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6
U291cmNlSW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU291cmNlSW47Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvdXJjZUluKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZU91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlU291cmNlT3V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3Np
dGVPcGVyYXRvcjo6U291cmNlQXRvcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTb3VyY2VBdG9wOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb3VyY2VB
dG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGlu
YXRpb25PdmVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9u
T3ZlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVzdGluYXRpb25PdmVy
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRp
b25JbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkluOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZXN0aW5hdGlvbkluKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRpb25PdXQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlc3RpbmF0aW9uT3V0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVzdGluYXRpb25BdG9wKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVhvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlWG9y
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0Rhcmtl
cjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbHVzRGFya2VyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbHVzRGFya2VyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXI6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21w
b3NpdGVPcGVyYXRvcjo6RGlmZmVyZW5jZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0zODAsNyArMzgwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgogICAgICAgICByZXR1
cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkNsZWFyOwogICAgIGNhc2UgQ1NTVmFsdWVDb3B5OgpAQCAt
NDIxLDIwNiArNDIxLDIwNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IE5vQ29udHJvbFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQXV0b1BhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNoZWNrYm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
aGVja2JveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmFkaW9QYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJhZGlvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVSYWRpbyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHVzaEJ1dHRvblBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHVzaEJ1dHRvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHVzaEJ1dHRvbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTcXVhcmVCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVNxdWFyZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnV0dG9uUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0b247CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnV0
dG9uQmV2ZWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJ1dHRvbkJl
dmVsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCdXR0b25CZXZlbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlRGVmYXVsdEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SW5uZXJTcGluQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJ
bm5lclNwaW5CdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubmVy
U3BpbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGlzdGJveFBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGlzdGJveDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTGlzdGJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGlz
dEl0ZW1QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3RpdGVtOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0aXRlbSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25QYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFFeGl0RnVsbHNjcmVl
bkJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFFeGl0RnVs
bHNjcmVlbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFQbGF5QnV0dG9u
UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVBsYXlCdXR0b247
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhUGxheUJ1dHRvbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFPdmVybGF5UGxheUJ1dHRvblBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFPdmVybGF5UGxheUJ1dHRvbjsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFPdmVybGF5UGxheUJ1dHRvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhTXV0ZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTWVkaWFSZXdpbmRCdXR0b25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1lZGlhUmV3aW5kQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVNZWRpYVJld2luZEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZU1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhU2xpZGVyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVNsaWRlcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b247CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYjsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dyb3VuZCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3Jv
dW5kUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xz
RnVsbHNjcmVlbkJhY2tncm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZvbHVtZVNsaWRlcik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQ
YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZv
bHVtZVNsaWRlclRodW1iOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRp
YUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWVkaWFDdXJyZW50VGltZVBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TWVkaWFDdXJyZW50VGltZURpc3BsYXk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
ZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmRQYXJ0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmQ7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tn
cm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhQ29udHJvbHNEYXJrQmFyQmFj
a2dyb3VuZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFDb250
cm9sc0RhcmtCYXJCYWNrZ3JvdW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVNZWRpYUNvbnRyb2xzRGFya0JhckJhY2tncm91bmQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE1lbnVsaXN0UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51
bGlzdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVudWxpc3QpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0QnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTWVudWxpc3RCdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE1lbnVsaXN0VGV4dFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVu
dWxpc3RUZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZW51bGlzdFRl
eHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0VGV4dEZpZWxkUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdFRleHRmaWVsZDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVudWxpc3RUZXh0ZmllbGQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1ldGVyUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNZXRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWV0ZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlbGV2YW5jeUxldmVsSW5kaWNhdG9yUGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxldmFuY3lMZXZlbEluZGljYXRv
cjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVsZXZhbmN5TGV2ZWxJbmRp
Y2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRpbnVvdXNDYXBhY2l0eUxldmVs
SW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250aW51
b3VzQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9yOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJ
bmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJhdGluZ0xldmVsSW5kaWNhdG9y
UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSYXRpbmdMZXZlbEluZGlj
YXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmF0aW5nTGV2ZWxJbmRp
Y2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm9ncmVzc0JhcjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUHJvZ3Jlc3NCYXIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVByb2dyZXNzQmFyVmFsdWU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVByb2dyZXNzQmFyVmFsdWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlckhvcml6
b250YWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlckhvcml6
b250YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlckhvcml6b250
YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJWZXJ0aWNhbDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2xpZGVyVmVydGljYWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU2xpZGVydGh1bWJIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVTbGlkZXJ0aHVtYkhvcml6b250YWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNsaWRlclRodW1iVmVydGljYWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWwpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENhcmV0UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXJldDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2FyZXQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNlYXJjaEZpZWxkUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTZWFyY2hmaWVsZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U2VhcmNoZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkRGVjb3Jh
dGlvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGRE
ZWNvcmF0aW9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZWFyY2hmaWVs
ZERlY29yYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0
c0RlY29yYXRpb25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlYXJj
aGZpZWxkUmVzdWx0c0RlY29yYXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0RlY29yYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNCdXR0b24pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZWFyY2hmaWVsZENhbmNlbEJ1dHRvbjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b24pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRGaWVsZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlVGV4dGZpZWxkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVUZXh0ZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBcmVhUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0YXJlYTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlVGV4dGFyZWEpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHNMb2NrSW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDYXBzTG9ja0luZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVRUQUNITUVO
VF9FTEVNRU5UKQogICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXR0YWNobWVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQXR0YWNobWVudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVybGVzc0F0
dGFjaG1lbnRQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlcmxl
c3NBdHRhY2htZW50OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3JkZXJs
ZXNzQXR0YWNobWVudCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBcHBsZVBheUJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXBwbGVQYXlCdXR0b24pOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGNhc2UgQ29sb3JXZWxsUGFydDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xvcldlbGw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNvbG9yV2VsbCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgY2FzZSBMaXN0QnV0dG9uUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaXN0QnV0dG9uOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0QnV0dG9uKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYK
ICAgICB9CkBAIC02MzAsMTMgKzYzMCwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKKyAg
ICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICByZXR1cm4g
Tm9Db250cm9sUGFydDsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRv
KQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJl
dHVybiBBdXRvUGFydDsKIAotICAgIHJldHVybiBDb250cm9sUGFydChtX3ZhbHVlLnZhbHVlSUQg
LSBDU1NWYWx1ZUNoZWNrYm94ICsgQ2hlY2tib3hQYXJ0KTsKKyAgICByZXR1cm4gQ29udHJvbFBh
cnQodmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZUNoZWNrYm94ICsgQ2hlY2tib3hQYXJ0KTsK
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEJhY2tmYWNlVmlzaWJpbGl0eSBlKQpAQCAtNjQ1LDEwICs2NDUsMTAgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tmYWNlVmlz
aWJpbGl0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5OjpW
aXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJhY2tmYWNlVmlzaWJpbGl0eTo6SGlkZGVuOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSGlkZGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNjU3LDcgKzY1Nyw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZmFjZVZp
c2liaWxpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJp
bGl0eTo6VmlzaWJsZTsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgpAQCAtNjc3LDEzICs2Nzcs
MTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZpbGxBdHRhY2htZW50IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGaWxsQXR0YWNo
bWVudDo6U2Nyb2xsQmFja2dyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTY3JvbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNjcm9sbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbEF0dGFjaG1lbnQ6OkxvY2FsQmFja2dyb3VuZDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb2NhbDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTG9jYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZp
bGxBdHRhY2htZW50OjpGaXhlZEJhY2tncm91bmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRml4ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpeGVk
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNjkyLDcgKzY5Miw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGaWxsQXR0YWNobWVudCgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVTY3JvbGw6CiAgICAgICAgIHJldHVybiBGaWxsQXR0YWNobWVudDo6U2Nyb2xsQmFja2dy
b3VuZDsKICAgICBjYXNlIENTU1ZhbHVlTG9jYWw6CkBAIC03MTMsMTYgKzcxMywxNiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmlsbEJv
eCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRmlsbEJveDo6Qm9yZGVyOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQm9yZGVyQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWxs
Qm94OjpQYWRkaW5nOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBhZGRpbmdC
b3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBhZGRpbmdCb3gpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZpbGxCb3g6OkNvbnRlbnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29udGVudEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ29udGVudEJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbEJveDo6
VGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNzMxLDcgKzczMSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGaWxsQm94KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKICAgICBjYXNlIENTU1ZhbHVlQm9y
ZGVyQm94OgogICAgICAgICByZXR1cm4gRmlsbEJveDo6Qm9yZGVyOwpAQCAtNzU4LDE2ICs3NTgs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZpbGxSZXBlYXQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZpbGxSZXBlYXQ6OlJl
cGVhdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXBlYXQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlcGVhdCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRmlsbFJlcGVhdDo6Tm9SZXBlYXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9SZXBlYXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vUmVw
ZWF0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWxsUmVwZWF0OjpSb3VuZDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlUm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZpbGxSZXBl
YXQ6OlNwYWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KQEAgLTc3Niw3ICs3NzYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRmlsbFJlcGVhdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVSZXBlYXQ6CiAgICAgICAgIHJl
dHVybiBGaWxsUmVwZWF0OjpSZXBlYXQ7CiAgICAgY2FzZSBDU1NWYWx1ZU5vUmVwZWF0OgpAQCAt
Nzk5LDE2ICs3OTksMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEJveFBhY2sgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveFBh
Y2s6OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQm94UGFjazo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hQYWNrOjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJveFBhY2s6Okp1c3RpZnk6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTgxNyw3ICs4MTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgQm94UGFjaygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKICAgICAgICAgcmV0dXJuIEJveFBhY2s6OlN0
YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CkBAIC04NDAsMTkgKzg0MCwxOSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94QWxpZ25t
ZW50IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OlN0cmV0Y2g6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU3RyZXRjaCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Qm94QWxpZ25tZW50OjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
dGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJveEFsaWdubWVudDo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OkVu
ZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94
QWxpZ25tZW50OjpCYXNlbGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
YXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmFzZWxpbmUpOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveEFsaWdubWVudCgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVT
dHJldGNoOgogICAgICAgICByZXR1cm4gQm94QWxpZ25tZW50OjpTdHJldGNoOwogICAgIGNhc2Ug
Q1NTVmFsdWVTdGFydDoKQEAgLTg4NywxMCArODg3LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hEZWNvcmF0aW9uQnJlYWsgZSkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveERlY29yYXRpb25CcmVhazo6U2xpY2U6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpY2U7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVNsaWNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hEZWNv
cmF0aW9uQnJlYWs6OkNsb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNs
b25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDbG9uZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KQEAgLTg5OSw3ICs4OTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJyZWFrKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNs
aWNlOgogICAgICAgICByZXR1cm4gQm94RGVjb3JhdGlvbkJyZWFrOjpTbGljZTsKICAgICBjYXNl
IENTU1ZhbHVlQ2xvbmU6CkBAIC05MTksMTYgKzkxOSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRWRnZSBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgRWRnZTo6VG9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVG9wKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBFZGdlOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVkZ2U6OkJvdHRvbToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3R0b207CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUJvdHRvbSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRWRnZTo6TGVmdDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtOTM3
LDcgKzkzNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFZGdlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJuIEVkZ2U6OlRvcDsKICAgICBjYXNl
IENTU1ZhbHVlUmlnaHQ6CkBAIC05NjAsMTAgKzk2MCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94U2l6aW5nIGUpCiAgICAgc2V0
UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNo
IChlKSB7CiAgICAgY2FzZSBCb3hTaXppbmc6OkJvcmRlckJveDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94U2l6aW5nOjpD
b250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRlbnRCb3g7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CkBAIC05NzIsNyArOTcyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveFNpemluZygpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAg
c3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCb3JkZXJCb3g6
CiAgICAgICAgIHJldHVybiBCb3hTaXppbmc6OkJvcmRlckJveDsKICAgICBjYXNlIENTU1ZhbHVl
Q29udGVudEJveDoKQEAgLTk5MSwxMCArOTkxLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hEaXJlY3Rpb24gZSkKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGUpIHsKICAgICBjYXNlIEJveERpcmVjdGlvbjo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hEaXJlY3Rpb246OlJldmVy
c2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmV2ZXJzZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmV2ZXJzZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTEwMDMsNyArMTAwMyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBCb3hEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICBy
ZXR1cm4gQm94RGlyZWN0aW9uOjpOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CkBA
IC0xMDIyLDEwICsxMDIyLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShCb3hMaW5lcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
Qm94TGluZXM6OlNpbmdsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTaW5n
bGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNpbmdsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQm94TGluZXM6Ok11bHRpcGxlOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU11bHRpcGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVNdWx0aXBsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEwMzQsNyArMTAz
NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hM
aW5lcygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVTaW5nbGU6CiAgICAgICAgIHJldHVybiBCb3hMaW5lczo6U2luZ2xlOwog
ICAgIGNhc2UgQ1NTVmFsdWVNdWx0aXBsZToKQEAgLTEwNTMsMTAgKzEwNTMsMTAgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJveE9yaWVu
dCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm94T3JpZW50OjpIb3Jpem9udGFsOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUhvcml6b250YWwpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJveE9yaWVudDo6VmVydGljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVmVydGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2Fs
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTA2NSw3ICsxMDY1LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveE9yaWVudCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVIb3Jpem9udGFsOgogICAgIGNhc2UgQ1NTVmFsdWVJbmxpbmVBeGlzOgogICAgICAgICByZXR1
cm4gQm94T3JpZW50OjpIb3Jpem9udGFsOwpAQCAtMTA4NiwxNiArMTA4NiwxNiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ2FwdGlvblNp
ZGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIENhcHRpb25TaWRlOjpMZWZ0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUxlZnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHRpb25TaWRl
OjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENhcHRpb25TaWRlOjpUb3A6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVG9wOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUb3ApOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENhcHRpb25TaWRlOjpCb3R0b206Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xMTA0LDcgKzExMDQs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ2FwdGlv
blNpZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTGVmdDoKICAgICAgICAgcmV0dXJuIENhcHRpb25TaWRlOjpMZWZ0Owog
ICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKQEAgLTExMjcsMjIgKzExMjcsMjIgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENsZWFyIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBDbGVhcjo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVO
b25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6TGVmdDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6UmlnaHQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVh
cjo6SW5saW5lU3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5l
U3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubGluZVN0YXJ0KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6SW5saW5lRW5kOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlSW5saW5lRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6
Qm90aDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3RoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtMTE1MSw3ICsxMTUxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIENsZWFyKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBDbGVhcjo6
Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKQEAgLTExNzgsMTEyICsxMTc4LDExMiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vy
c29yVHlwZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQ3Vyc29yVHlwZTo6QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JU
eXBlOjpEZWZhdWx0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlZmF1bHQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9u
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q29udGV4dE1lbnU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGV4dE1lbnU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRleHRNZW51KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpIZWxwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUhlbHA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhlbHApOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlBvaW50ZXI6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUG9pbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlUG9pbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6
UHJvZ3Jlc3M6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3M7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVByb2dyZXNzKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpXYWl0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVdhaXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdhaXQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkNlbGw6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ2VsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q3Jv
c3NoYWlyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNyb3NzaGFpcjsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ3Jvc3NoYWlyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpUZXh0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlZlcnRpY2FsVGV4dDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbFRleHQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2FsVGV4dCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxpYXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQWxpYXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsaWFzKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpDb3B5OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvcHk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUNvcHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok1vdmU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTW92ZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTW92ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vy
c29yVHlwZTo6Tm9Ecm9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vRHJv
cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9Ecm9wKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOb3RBbGxvd2VkOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vdEFsbG93ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vdEFsbG93ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5
cGU6OkdyYWI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3JhYjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlR3JhYik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ3Vyc29yVHlwZTo6R3JhYmJpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlR3JhYmJpbmc7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdyYWJi
aW5nKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpFUmVzaXplOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVSZXNpemU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUVSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1
cnNvclR5cGU6Ok5SZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTlJl
c2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTlJlc2l6ZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TkVSZXNpemU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTmVSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5lUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBl
OjpOV1Jlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd1Jlc2l6ZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTndSZXNpemUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlNSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6U0VSZXNp
emU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VSZXNpemU7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpTV1Jlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTd1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3dS
ZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OldSZXNpemU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlV1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q3Vyc29yVHlwZTo6RVdSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RXdSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUV3UmVzaXplKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOU1Jlc2l6ZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOc1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTnNSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNv
clR5cGU6Ok5FU1dSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVz
d1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTmVzd1Jlc2l6ZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TldTRVJlc2l6ZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd3NlUmVzaXplOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOd3NlUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDdXJzb3JUeXBlOjpDb2x1bW5SZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ29sUmVzaXplOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xS
ZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlJvd1Jlc2l6ZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3dSZXNpemU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJvd1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ3Vyc29yVHlwZTo6QWxsU2Nyb2xsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUFsbFNjcm9sbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxs
U2Nyb2xsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpab29tSW46Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWm9vbUluOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVab29tSW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1
cnNvclR5cGU6Olpvb21PdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWm9v
bU91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlWm9vbU91dCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEyOTEsNyArMTI5MSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDdXJzb3JUeXBlIGUpCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVHlwZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlQ29weToKICAgICAgICAgcmV0dXJuIEN1cnNvclR5cGU6OkNvcHk7CiAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdEdyYWI6CkBAIC0xMzA1LDcgKzEzMDUsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVHlwZSgpIGNvbnN0CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBDdXJzb3JUeXBlOjpOb25lOwogICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDdXJzb3JUeXBlPihtX3ZhbHVlLnZh
bHVlSUQgLSBDU1NWYWx1ZUF1dG8pOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q3Vyc29y
VHlwZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZUF1dG8pOwogICAgIH0KIH0KIApAQCAt
MTMxNiwxMCArMTMxNiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vyc29yVmlzaWJpbGl0eSBlKQogICAgIHNldFByaW1pdGl2ZVVu
aXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAg
IGNhc2UgQ3Vyc29yVmlzaWJpbGl0eTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JWaXNpYmlsaXR5OjpBdXRvSGlkZToKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvSGlkZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQXV0b0hpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CkBAIC0xMzI4LDkgKzEzMjgsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQ3Vyc29yVmlzaWJpbGl0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKQorICAg
IGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJldHVybiBD
dXJzb3JWaXNpYmlsaXR5OjpBdXRvOwotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvSGlkZSkKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvSGlk
ZSkKICAgICAgICAgcmV0dXJuIEN1cnNvclZpc2liaWxpdHk6OkF1dG9IaWRlOwogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzQ0LDczICsxMzQ0LDczIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShEaXNwbGF5VHlwZSBlKQog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoZSkgewogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUlubGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6
OkJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2NrOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9jayk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRGlzcGxheVR5cGU6Okxpc3RJdGVtOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUxpc3RJdGVtOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0
SXRlbSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUJsb2Nr
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUJsb2NrOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmVCbG9jayk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRhYmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJs
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZVRhYmxlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZVRhYmxlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmVUYWJsZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93R3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVGFibGVSb3dHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlVGFibGVSb3dHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxh
eVR5cGU6OlRhYmxlSGVhZGVyR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVGFibGVIZWFkZXJHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
VGFibGVIZWFkZXJHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6
OlRhYmxlRm9vdGVyR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFi
bGVGb290ZXJHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGFibGVG
b290ZXJHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxl
Um93OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJsZVJvdyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRhYmxlQ29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVU
YWJsZUNvbHVtbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxl
Q2VsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNlbGw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRhYmxlQ2VsbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNhcHRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRhYmxlQ2FwdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxh
eVR5cGU6OkJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRCb3g7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtpdEJveCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUJveDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJbmxpbmVCb3g7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVdlYmtpdElubGluZUJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGlzcGxheVR5cGU6OkZsZXg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RmxleDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxleCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUZsZXg6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lRmxleDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlSW5saW5lRmxleCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxh
eVR5cGU6OkdyaWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3JpZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlR3JpZCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUdyaWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlSW5saW5lR3JpZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSW5saW5lR3JpZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6Ok5v
bmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RGlzcGxheVR5cGU6OkNvbnRlbnRzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvbnRlbnRzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250ZW50cyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OkZsb3dSb290OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsb3dSb290OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVGbG93Um9vdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTE0MTksMTAgKzE0MTksMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIERpc3BsYXlUeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYgKHZh
bHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIERpc3BsYXlU
eXBlOjpOb25lOwogCi0gICAgRGlzcGxheVR5cGUgZGlzcGxheSA9IHN0YXRpY19jYXN0PERpc3Bs
YXlUeXBlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUlubGluZSk7CisgICAgRGlzcGxheVR5
cGUgZGlzcGxheSA9IHN0YXRpY19jYXN0PERpc3BsYXlUeXBlPih2YWx1ZUlESW50ZXJuYWwoKSAt
IENTU1ZhbHVlSW5saW5lKTsKICAgICBBU1NFUlQoZGlzcGxheSA+PSBEaXNwbGF5VHlwZTo6SW5s
aW5lICYmIGRpc3BsYXkgPD0gRGlzcGxheVR5cGU6Ok5vbmUpOwogICAgIHJldHVybiBkaXNwbGF5
OwogfQpAQCAtMTQzMywxMCArMTQzMywxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRW1wdHlDZWxsIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBFbXB0eUNlbGw6OlNob3c6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU2hvdzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2hvdyk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRW1wdHlDZWxsOjpIaWRlOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUhpZGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUhpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNDQ1LDcgKzE0NDUsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRW1wdHlDZWxsKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVNob3c6CiAgICAgICAgIHJldHVybiBFbXB0eUNlbGw6OlNob3c7CiAgICAgY2FzZSBD
U1NWYWx1ZUhpZGU6CkBAIC0xNDY0LDE2ICsxNDY0LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGbGV4RGlyZWN0aW9uIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpSb3c6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUm93OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVSb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhEaXJlY3Rpb246OlJvd1JldmVy
c2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93UmV2ZXJzZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUm93UmV2ZXJzZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRmxleERpcmVjdGlvbjo6Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sdW1uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpDb2x1bW5S
ZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbHVtblJldmVyc2U7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbHVtblJldmVyc2UpOwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNDgyLDcgKzE0ODIsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmxleERpcmVjdGlvbigpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVS
b3c6CiAgICAgICAgIHJldHVybiBGbGV4RGlyZWN0aW9uOjpSb3c7CiAgICAgY2FzZSBDU1NWYWx1
ZVJvd1JldmVyc2U6CkBAIC0xNTA1LDIyICsxNTA1LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBbGlnbkNvbnRlbnQgZSkKICAgICBz
ZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0
Y2ggKGUpIHsKICAgICBjYXNlIEFsaWduQ29udGVudDo6RmxleFN0YXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRmxleFN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNv
bnRlbnQ6OkZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVu
ZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxleEVuZCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50OjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVDZW50ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVudDo6U3Bh
Y2VCZXR3ZWVuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQmV0d2Vl
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2VCZXR3ZWVuKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnQ6OlNwYWNlQXJvdW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQXJvdW5kOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZUFyb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQWxpZ25Db250ZW50OjpTdHJldGNoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN0cmV0Y2g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0cmV0Y2gp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNTI5LDcgKzE1MjksNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQWxpZ25Db250ZW50KCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUZsZXhTdGFydDoKICAgICAgICAgcmV0dXJuIEFsaWduQ29udGVudDo6RmxleFN0YXJ0Owog
ICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTU1NiwxMyArMTU1NiwxMyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmxleFdyYXAg
ZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZsZXhXcmFwOjpOb1dyYXA6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm93cmFwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVOb3dyYXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhXcmFwOjpX
cmFwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdyYXA7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdyYXApOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEZsZXhXcmFwOjpSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdy
YXBSZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXcmFwUmV2ZXJz
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE1NzEsNyArMTU3MSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGbGV4V3JhcCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVOb3dyYXA6CiAgICAgICAgIHJldHVybiBGbGV4V3JhcDo6Tm9XcmFwOwogICAgIGNhc2UgQ1NT
VmFsdWVXcmFwOgpAQCAtMTU5MiwxOSArMTU5MiwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmxvYXQgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIEZsb2F0OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpMZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxlZnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpSaWdodDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpJbmxpbmVTdGFy
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVTdGFydDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lU3RhcnQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZsb2F0OjpJbmxpbmVFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSW5saW5lRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJ
bmxpbmVFbmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNjEzLDcgKzE2MTMsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmxvYXQoKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlTGVmdDoKICAgICAgICAgcmV0dXJuIEZsb2F0OjpMZWZ0OwogICAgIGNhc2UgQ1NTVmFs
dWVSaWdodDoKQEAgLTE2MzksMjIgKzE2MzksMjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVCcmVhayBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgTGluZUJyZWFrOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVhazo6TG9vc2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTG9vc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUxvb3NlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWs6Ok5vcm1h
bDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTGluZUJyZWFrOjpTdHJpY3Q6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U3RyaWN0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJpY3QpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVhazo6QWZ0ZXJXaGl0ZVNwYWNlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmdGVyV2hpdGVTcGFjZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBMaW5lQnJlYWs6OkFueXdoZXJlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUFueXdoZXJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVB
bnl3aGVyZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE2NjMsNyArMTY2Myw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8
SGFuZ2luZ1B1bmN0dWF0aW9uPigpIGNvCiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKICAg
ICAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIE9wdGlv
blNldDxIYW5naW5nUHVuY3R1YXRpb24+IHsgfTsKICAgICBjYXNlIENTU1ZhbHVlRmlyc3Q6CkBA
IC0xNjg2LDcgKzE2ODYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgTGluZUJyZWFrKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBMaW5lQnJl
YWs6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUxvb3NlOgpAQCAtMTcxMywxMCArMTcxMywxMCBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
TGlzdFN0eWxlUG9zaXRpb24gZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIExpc3RTdHlsZVBv
c2l0aW9uOjpPdXRzaWRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU91dHNp
ZGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU91dHNpZGUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIExpc3RTdHlsZVBvc2l0aW9uOjpJbnNpZGU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5zaWRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVJbnNpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNzI1LDcg
KzE3MjUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
TGlzdFN0eWxlUG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlT3V0c2lkZToKICAgICAgICAgcmV0dXJuIExpc3RT
dHlsZVBvc2l0aW9uOjpPdXRzaWRlOwogICAgIGNhc2UgQ1NTVmFsdWVJbnNpZGU6CkBAIC0xNzU1
LDE4ICsxNzU1LDE4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShMaXN0U3R5bGVUeXBlIHN0eWxlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0gdG9DU1NWYWx1ZUlEKHN0eWxlKTsKKyAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwodG9DU1NWYWx1ZUlEKHN0eWxlKSk7CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaXN0U3R5bGVUeXBlKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaXN0U3R5bGVUeXBlOjpOb25lOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxMaXN0U3R5bGVUeXBlPihtX3ZhbHVlLnZh
bHVlSUQgLSBDU1NWYWx1ZURpc2MpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TGlzdFN0
eWxlVHlwZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZURpc2MpOwogICAgIH0KIH0KIApA
QCAtMTc3NiwxMyArMTc3NiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTWFyZ2luQ29sbGFwc2UgZSkKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAg
ICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sbGFwc2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpTZXBh
cmF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VwYXJhdGUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpEaXNjYXJkOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZURpc2NhcmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZURpc2NhcmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNzkxLDcgKzE3OTEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWFyZ2luQ29s
bGFwc2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6CiAgICAgICAgIHJldHVybiBNYXJnaW5Db2xsYXBzZTo6
Q29sbGFwc2U7CiAgICAgY2FzZSBDU1NWYWx1ZVNlcGFyYXRlOgpAQCAtMTgxMiwxNiArMTgxMiwx
NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoTWFycXVlZUJlaGF2aW9yIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBNYXJxdWVlQmVo
YXZpb3I6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWFycXVlZUJlaGF2aW9yOjpTY3JvbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
Y3JvbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVCZWhhdmlvcjo6U2xpZGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpZGU7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
YXJxdWVlQmVoYXZpb3I6OkFsdGVybmF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBbHRlcm5hdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsdGVy
bmF0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE4MzAsNyArMTgzMCw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBNYXJxdWVlQmVoYXZp
b3IoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIE1hcnF1ZWVCZWhhdmlvcjo6Tm9uZTsK
ICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgpAQCAtMTg1MywyNSArMTg1MywyNSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTWFycXVlZURp
cmVjdGlvbiBkaXJlY3RpbwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBNYXJxdWVl
RGlyZWN0aW9uOjpGb3J3YXJkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZv
cndhcmRzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGb3J3YXJkcyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6QmFja3dhcmQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFja3dhcmRzOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYWNrd2FyZHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE1hcnF1ZWVEaXJlY3Rpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6VXA6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVVwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpEb3du
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvd247CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZURvd24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1h
cnF1ZWVEaXJlY3Rpb246OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6UmlnaHQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTg4MCw3ICsxODgw
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcnF1
ZWVEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlRm9yd2FyZHM6CiAgICAgICAgIHJldHVybiBNYXJxdWVlRGly
ZWN0aW9uOjpGb3J3YXJkOwogICAgIGNhc2UgQ1NTVmFsdWVCYWNrd2FyZHM6CkBAIC0xOTExLDEw
ICsxOTExLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShOQlNQTW9kZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTkJTUE1vZGU6
Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTkJTUE1vZGU6OlNwYWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNwYWNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE5MjMsNyArMTkyMyw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBOQlNQTW9kZSgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTcGFj
ZToKICAgICAgICAgcmV0dXJuIE5CU1BNb2RlOjpTcGFjZTsKICAgICBjYXNlIENTU1ZhbHVlTm9y
bWFsOgpAQCAtMTk0MiwyNSArMTk0MiwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcmZsb3cgZSkKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAg
ICBjYXNlIE92ZXJmbG93OjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVZpc2libGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpIaWRkZW46Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVIaWRkZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpT
Y3JvbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTY3JvbGwpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE92ZXJmbG93OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpQYWdlZFg6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlV2Via2l0UGFnZWRYOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVXZWJraXRQYWdlZFgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93
OjpQYWdlZFk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UGFnZWRZ
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRQYWdlZFkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpDbGlwOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNsaXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNsaXApOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xOTY5LDcgKzE5NjksNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogICAgIGNh
c2UgQ1NTVmFsdWVIaWRkZW46CkBAIC0xOTk5LDEzICsxOTk5LDEzIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyc2Nyb2xsQmVoYXZp
b3IgYmVoYXZpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewogICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2
aW9yOjpDb250YWluOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRhaW4pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6
OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTIwMTQsNyArMjAxNCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKICAgICAg
ICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKICAgICBjYXNlIENTU1ZhbHVl
Tm9uZToKQEAgLTIwMzUsMzQgKzIwMzUsMzQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6QXZvaWQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUF2b2lkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdl
ZW46OkF2b2lkQ29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lk
Q29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZENvbHVtbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpBdm9pZFBhZ2U6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWRQYWdlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZFBhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29sdW1uKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdlZW46OlBhZ2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUGFnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUGFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpMZWZ0
UGFnZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCcmVha0JldHdlZW46OlJpZ2h0UGFnZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6UmVjdG9QYWdlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlY3RvOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSZWN0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3
ZWVuOjpWZXJzb1BhZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVyc287
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnNvKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMjA3MSw3ICsyMDcxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrQmV0d2VlbigpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAg
c3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAg
ICAgICByZXR1cm4gQnJlYWtCZXR3ZWVuOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoK
QEAgLTIxMDYsMTYgKzIxMDYsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrSW5zaWRlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBCcmVha0luc2lkZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUF2b2lkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRD
b2x1bW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWRDb2x1bW47Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF2b2lkQ29sdW1uKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRQYWdlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lkUGFnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXZvaWRQYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjEyNCw3
ICsyMTI0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEJyZWFrSW5zaWRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogICAgIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQnJlYWtJbnNp
ZGU6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUF2b2lkOgpAQCAtMjE0NywxOSArMjE0NywxOSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
UG9zaXRpb25UeXBlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBQb3NpdGlvblR5cGU6OlN0
YXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXRpYyk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUG9zaXRpb25UeXBlOjpSZWxhdGl2ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVSZWxhdGl2ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVs
YXRpdmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvc2l0aW9uVHlwZTo6QWJzb2x1dGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWJzb2x1dGU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFic29sdXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQb3NpdGlvblR5cGU6OkZpeGVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGaXhlZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9zaXRpb25UeXBlOjpTdGlja3k6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RpY2t5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTdGlja3kpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMTY4LDcg
KzIxNjgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
UG9zaXRpb25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXRpYzoKICAgICAgICAgcmV0dXJuIFBvc2l0aW9uVHlw
ZTo6U3RhdGljOwogICAgIGNhc2UgQ1NTVmFsdWVSZWxhdGl2ZToKQEAgLTIxOTQsMTYgKzIxOTQs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFJlc2l6ZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgUmVzaXplOjpCb3RoOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdGg7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUJvdGgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlc2l6ZTo6
SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFs
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBSZXNpemU6OlZlcnRpY2FsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVWZXJ0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVzaXplOjpOb25lOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0y
MjEyLDcgKzIyMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgUmVzaXplKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CiAgICAgICAgIHJldHVybiBSZXNpemU6OkJvdGg7
CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWw6CkBAIC0yMjM4LDEwICsyMjM4LDEwIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUYWJs
ZUxheW91dFR5cGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRhYmxlTGF5b3V0VHlwZTo6
QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUYWJsZUxheW91dFR5cGU6OkZpeGVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGaXhlZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIyNTAsNyArMjI1MCw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUYWJsZUxheW91dFR5cGUoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlRml4ZWQ6CiAgICAgICAgIHJldHVybiBUYWJsZUxheW91dFR5cGU6OkZpeGVkOwogICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgpAQCAtMjI2OSwzMSArMjI2OSwzMSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEFsaWduTW9kZSBlKQog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6U3RhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2Rl
OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHRBbGlnbk1vZGU6OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpDZW50
ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFRleHRBbGlnbk1vZGU6Okp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSnVzdGlm
eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0TGVmdDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRMZWZ0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJLaXRSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVXZWJraXRSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlV2Via2l0UmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbk1v
ZGU6OldlYktpdENlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJr
aXRDZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtpdENlbnRl
cik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIzMDIsMTQgKzIzMDIsMTQgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbk1vZGUo
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNl
IENTU1ZhbHVlV2Via2l0QXV0bzogLy8gTGVnYWN5IC13ZWJraXQtYXV0by4gRXFpdXZhbGVudCB0
byBzdGFydC4KICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBUZXh0QWxp
Z25Nb2RlOjpTdGFydDsKICAgICBjYXNlIENTU1ZhbHVlRW5kOgogICAgICAgICByZXR1cm4gVGV4
dEFsaWduTW9kZTo6RW5kOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUZXh0QWxpZ25Nb2RlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUxlZnQpOworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEFsaWduTW9kZT4odmFsdWVJREludGVybmFsKCkgLSBD
U1NWYWx1ZUxlZnQpOwogICAgIH0KIH0KIApAQCAtMjMyMCwyNSArMjMyMCwyNSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEFsaWdu
TGFzdCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6U3RhcnQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0
QWxpZ25MYXN0OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6UmlnaHQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25M
YXN0OjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6Okp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6QXV0
bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjM0Nyw3ICsyMzQ3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFRleHRBbGlnbkxhc3QoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRl
eHRBbGlnbkxhc3Q6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXJ0OgpAQCAtMjM3NiwxNiAr
MjM3NiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoVGV4dEp1c3RpZnkgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRKdXN0
aWZ5OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFRleHRKdXN0aWZ5OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHRKdXN0aWZ5OjpJbnRlcldvcmQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50ZXJXb3JkOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVJbnRlcldvcmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRK
dXN0aWZ5OjpEaXN0cmlidXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURp
c3RyaWJ1dGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURpc3RyaWJ1dGUp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMzk0LDcgKzIzOTQsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1c3RpZnkoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRleHRKdXN0aWZ5OjpBdXRvOwogICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgpAQCAtMjQxNiw3ICsyNDE2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9wdGlvblNldDxUZXh0RGVjb3JhdGlvbj4oKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
Tm9uZToKICAgICAgICAgcmV0dXJuIE9wdGlvblNldDxUZXh0RGVjb3JhdGlvbj4geyB9OwogICAg
IGNhc2UgQ1NTVmFsdWVVbmRlcmxpbmU6CkBAIC0yNDM5LDcgKzI0MzksNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVTb2xpZDoKICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGU6OlNvbGlk
OwogICAgIGNhc2UgQ1NTVmFsdWVEb3VibGU6CkBAIC0yNDY0LDEzICsyNDY0LDEzIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VW5k
ZXJsaW5lUG9zaXRpb24gcG9zCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgVGV4dFVu
ZGVybGluZVBvc2l0aW9uOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXI6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVW5kZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVVuZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0VW5kZXJs
aW5lUG9zaXRpb246OkZyb21Gb250OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUZyb21Gb250OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGcm9tRm9udCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMjQ4MSw3ICsyNDgxLDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRVbmRlcmxpbmVQb3NpdGlv
bigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpB
dXRvOwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcjoKQEAgLTI1MDMsMTYgKzI1MDMsMTYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRT
ZWN1cml0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpOb25lOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRT
ZWN1cml0eTo6RGlzYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaXNjOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaXNjKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkNpcmNsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDaXJjbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNp
cmNsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpTcXVhcmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcXVhcmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC0yNTIxLDcgKzI1MjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVGV4dFNlY3VyaXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBUZXh0
U2VjdXJpdHk6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURpc2M6CkBAIC0yNTQ0LDEzICsyNTQ0
LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShUZXh0RGVjb3JhdGlvblNraXBJbmsgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRl
eHREZWNvcmF0aW9uU2tpcEluazo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RGVjb3JhdGlvblNraXBJbms6OkF1dG86Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dERlY29y
YXRpb25Ta2lwSW5rOjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxs
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC0yNTU5LDcgKzI1NTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25Ta2lwSW5rKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5v
bmU6CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBJbms6Ok5vbmU7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CkBAIC0yNTgwLDE2ICsyNTgwLDE2IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VHJhbnNmb3JtIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpDYXBpdGFsaXplOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNhcGl0YWxpemU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNhcGl0YWxpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHRUcmFuc2Zvcm06OlVwcGVyY2FzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVVcHBlcmNhc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVwcGVy
Y2FzZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFRyYW5zZm9ybTo6TG93ZXJjYXNl
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyY2FzZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG93ZXJjYXNlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yNTk4LDcgKzI1OTgsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRyYW5zZm9ybSgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVDYXBpdGFsaXplOgogICAgICAgICByZXR1cm4gVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6ZTsK
ICAgICBjYXNlIENTU1ZhbHVlVXBwZXJjYXNlOgpAQCAtMjYyMSwyMiArMjYyMSwyMiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVVuaWNv
ZGVCaWRpIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBVQk5vcm1hbDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRW1iZWQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW1iZWQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUVtYmVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVycmlk
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJpZGlPdmVycmlkZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSXNvbGF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVJc29sYXRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJc29sYXRlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJc29sYXRlT3ZlcnJpZGU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlSXNvbGF0ZU92ZXJyaWRlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVJc29sYXRlT3ZlcnJpZGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBsYWludGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbnRl
eHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsYWludGV4dCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI2NDUsNyArMjY0NSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9y
bWFsOgogICAgICAgICByZXR1cm4gVUJOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZUVtYmVkOgpA
QCAtMjY3NSwxMyArMjY3NSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVXNlckRyYWcgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IFVzZXJEcmFnOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVzZXJEcmFnOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJEcmFnOjpFbGVtZW50OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsZW1lbnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUVsZW1lbnQpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBicmVhazsKQEAgLTI2OTIsNyArMjY5Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1
cm4gVXNlckRyYWc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC0yNzEzLDEzICsy
NzEzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShVc2VyTW9kaWZ5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBVc2VyTW9kaWZ5
OjpSZWFkT25seToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWFkT25seTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVhZE9ubHkpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0ZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVSZWFkV3JpdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJlYWRXcml0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXNlck1vZGlmeTo6
UmVhZFdyaXRlUGxhaW50ZXh0T25seToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjcyOCw3ICsyNzI4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFVzZXJNb2RpZnkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlUmVhZE9ubHk6CiAgICAgICAgIHJldHVybiBV
c2VyTW9kaWZ5OjpSZWFkT25seTsKICAgICBjYXNlIENTU1ZhbHVlUmVhZFdyaXRlOgpAQCAtMjc0
OSwxMyArMjc0OSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoVXNlclNlbGVjdCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVXNl
clNlbGVjdDo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBVc2VyU2VsZWN0OjpUZXh0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJTZWxlY3Q6OkFsbDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUFsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI3NjQsNyArMjc2NCw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyU2VsZWN0
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBVc2VyU2VsZWN0OjpUZXh0OwogICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgpAQCAtMjc4NywzNCArMjc4NywzNCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVmVydGljYWxBbGlnbiBhKQog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoYSkgewogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6VG9wOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlVG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCb3R0
b206Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFZlcnRpY2FsQWxpZ246Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFzZWxpbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBW
ZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVRleHRCb3R0b207CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRC
b3R0b20pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRleHRUb3A6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dFRvcDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGV4dFRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6U3ViOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVN1YjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3ViKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpTdXBlcjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTdXBlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU3VwZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJhc2Vs
aW5lTWlkZGxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEJhc2Vs
aW5lTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRCYXNl
bGluZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6TGVu
Z3RoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUludmFsaWQpOwogICAgIH0KIH0KIApAQCAtMjgy
Miw3ICsyODIyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFZlcnRpY2FsQWxpZ24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICByZXR1cm4gVmVydGljYWxB
bGlnbjo6VG9wOwogICAgIGNhc2UgQ1NTVmFsdWVCb3R0b206CkBAIC0yODU1LDEzICsyODU1LDEz
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShWaXNpYmlsaXR5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBWaXNpYmlsaXR5OjpWaXNp
YmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIaWRkZW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhpZGRlbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29sbGFwc2U6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNvbGxhcHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
Mjg3MCw3ICsyODcwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFZpc2liaWxpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgogICAgICAgICByZXR1cm4gVmlzaWJp
bGl0eTo6SGlkZGVuOwogICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgpAQCAtMjg5MSwyNSArMjg5
MSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoV2hpdGVTcGFjZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgV2hpdGVTcGFjZTo6
Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXaGl0ZVNwYWNlOjpQcmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUHJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcmUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdoaXRlU3BhY2U6OlByZVdyYXA6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUHJlV3JhcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUHJlV3JhcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2hpdGVTcGFjZTo6UHJl
TGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcmVMaW5lOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcmVMaW5lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXaGl0ZVNwYWNlOjpOb1dyYXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm93cmFwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3dyYXAp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoaXRlU3BhY2U6OktIVE1MTm9XcmFwOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdE5vd3JhcDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlV2Via2l0Tm93cmFwKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXaGl0ZVNwYWNlOjpCcmVha1NwYWNlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVCcmVha1NwYWNlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQnJlYWtTcGFjZXMpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yOTE4LDcgKzI5
MTgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2hp
dGVTcGFjZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVXZWJraXROb3dyYXA6CiAgICAgICAgIHJldHVybiBXaGl0ZVNwYWNl
OjpLSFRNTE5vV3JhcDsKICAgICBjYXNlIENTU1ZhbHVlTm93cmFwOgpAQCAtMjk0NywxNiArMjk0
NywxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoV29yZEJyZWFrIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBXb3JkQnJlYWs6Ok5v
cm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV29yZEJyZWFrOjpCcmVha0FsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVCcmVha0FsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnJlYWtB
bGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdvcmRCcmVhazo6S2VlcEFsbDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVLZWVwQWxsOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVLZWVwQWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXb3Jk
QnJlYWs6OkJyZWFrV29yZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVh
a1dvcmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJyZWFrV29yZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI5NjUsNyArMjk2NSw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXb3JkQnJlYWsoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQnJl
YWtBbGw6CiAgICAgICAgIHJldHVybiBXb3JkQnJlYWs6OkJyZWFrQWxsOwogICAgIGNhc2UgQ1NT
VmFsdWVLZWVwQWxsOgpAQCAtMjk4OCwxMyArMjk4OCwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcmZsb3dXcmFwIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBPdmVyZmxvd1dyYXA6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT3ZlcmZsb3dXcmFwOjpB
bnl3aGVyZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbnl3aGVyZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQW55d2hlcmUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE92ZXJmbG93V3JhcDo6QnJlYWtXb3JkOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJyZWFrV29yZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQnJlYWtXb3JkKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzAwMyw3ICsz
MDAzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92
ZXJmbG93V3JhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6CiAgICAgICAgIHJldHVybiBPdmVyZmxvd1dy
YXA6OkJyZWFrV29yZDsKICAgICBjYXNlIENTU1ZhbHVlQW55d2hlcmU6CkBAIC0zMDI0LDEwICsz
MDI0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUZXh0RGlyZWN0aW9uIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0RGly
ZWN0aW9uOjpMVFI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHRyOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMdHIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFRleHREaXJlY3Rpb246OlJUTDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSdGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJ0bCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMwMzYsNyArMzAzNiw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0aW9uKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUx0
cjoKICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb246OkxUUjsKICAgICBjYXNlIENTU1ZhbHVl
UnRsOgpAQCAtMzA1NSwxNiArMzA1NSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoV3JpdGluZ01vZGUgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsVGI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUhvcml6b250YWxUYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV3JpdGluZ01v
ZGU6OlJpZ2h0VG9MZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRp
Y2FsUmw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2FsUmwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbExyOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJ0aWNhbExyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3A6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlSG9yaXpvbnRhbEJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVI
b3Jpem9udGFsQnQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zMDczLDcgKzMwNzMs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGlu
Z01vZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbFRiOgogICAgIGNhc2UgQ1NTVmFsdWVMcjoKICAgICBj
YXNlIENTU1ZhbHVlTHJUYjoKQEAgLTMxMDIsMTAgKzMxMDIsMTAgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRDb21iaW5lIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0Q29tYmluZTo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0Q29tYmluZTo6SG9yaXpv
bnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMzExNCw3ICszMTE0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAg
ICAgIHJldHVybiBUZXh0Q29tYmluZTo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRh
bDoKQEAgLTMxMzMsMTMgKzMxMzMsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KHBvc2l0aW9uKSB7CiAgICAgY2FzZSBSdWJ5UG9zaXRpb246OkJlZm9yZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZWZvcmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUJlZm9yZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUnVieVBvc2l0aW9u
OjpBZnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlcjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWZ0ZXIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJ1YnlQb3NpdGlvbjo6SW50ZXJDaGFyYWN0ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW50ZXJDaGFyYWN0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUludGVyQ2hhcmFjdGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
MzE0OCw3ICszMTQ4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFJ1YnlQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
IAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCZWZvcmU6CiAgICAgICAgIHJldHVybiBSdWJ5
UG9zaXRpb246OkJlZm9yZTsKICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXI6CkBAIC0zMTY5LDEwICsz
MTY5LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUZXh0T3ZlcmZsb3cgb3ZlcmZsb3cpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChvdmVyZmxvdykgewogICAg
IGNhc2UgVGV4dE92ZXJmbG93OjpDbGlwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNsaXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNsaXApOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHRPdmVyZmxvdzo6RWxsaXBzaXM6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWxsaXBzaXM7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUVsbGlwc2lzKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzE4
MSw3ICszMTgxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRPdmVyZmxvdygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVDbGlwOgogICAgICAgICByZXR1cm4gVGV4dE92ZXJm
bG93OjpDbGlwOwogICAgIGNhc2UgQ1NTVmFsdWVFbGxpcHNpczoKQEAgLTMyMDAsMTAgKzMyMDAs
MTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRleHRFbXBoYXNpc0ZpbGwgZmlsbCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGZpbGwpIHsKICAgICBjYXNlIFRl
eHRFbXBoYXNpc0ZpbGw6OkZpbGxlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGaWxsZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpbGxlZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzRmlsbDo6T3BlbjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcGVuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVPcGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzIxMiw3ICsz
MjEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc0ZpbGwoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRmlsbGVkOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhh
c2lzRmlsbDo6RmlsbGVkOwogICAgIGNhc2UgQ1NTVmFsdWVPcGVuOgpAQCAtMzIzMSwyNSArMzIz
MSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoVGV4dEVtcGhhc2lzTWFyayBtYXJrKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAobWFyaykgewogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFyazo6RG90OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZURvdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRG90KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDaXJjbGU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVDaXJjbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01h
cms6OkRvdWJsZUNpcmNsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3Vi
bGVDaXJjbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURvdWJsZUNpcmNs
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVHJpYW5nbGU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRyaWFuZ2xlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0RW1waGFzaXNNYXJrOjpTZXNhbWU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlU2VzYW1lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZXNh
bWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6Ok5vbmU6CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpBdXRvOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFy
azo6Q3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzI1OCw3ICszMjU4LDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBo
YXNpc01hcmsoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcms6
Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURvdDoKQEAgLTMyODUsMTMgKzMyODUsMTMgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRP
cmllbnRhdGlvbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uOjpT
aWRld2F5czoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTaWRld2F5czsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2lkZXdheXMpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFRleHRPcmllbnRhdGlvbjo6TWl4ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWl4ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1peGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3JpZW50YXRpb246OlVwcmln
aHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXByaWdodDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVXByaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTMzMDAsNyArMzMwMCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3JpZW50YXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU2lkZXdheXM6CiAgICAg
ICAgIHJldHVybiBUZXh0T3JpZW50YXRpb246OlNpZGV3YXlzOwogICAgIGNhc2UgQ1NTVmFsdWVT
aWRld2F5c1JpZ2h0OgpAQCAtMzMyNSwzNyArMzMyNSwzNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUG9pbnRlckV2ZW50cyBlKQogICAg
IHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpTdHJv
a2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Ryb2tlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJva2UpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBvaW50ZXJFdmVudHM6OkZpbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRmlsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmlsbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6UGFpbnRlZDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWludGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVQYWludGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZl
bnRzOjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlZpc2libGVTdHJva2U6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZVN0cm9rZTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlVmlzaWJsZVN0cm9rZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUG9pbnRlckV2ZW50czo6VmlzaWJsZUZpbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVmlzaWJsZUZpbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVZpc2libGVGaWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpW
aXNpYmxlUGFpbnRlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxl
UGFpbnRlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVmlzaWJsZVBhaW50
ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OkJvdW5kaW5nQm94
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdW5kaW5nQm94OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3VuZGluZ0JveCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRv
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpBbGw6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zMzY0LDcgKzMz
NjQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUG9p
bnRlckV2ZW50cygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVBbGw6CiAgICAgICAgIHJldHVybiBQb2ludGVyRXZlbnRzOjpB
bGw7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC0zNDAxLDI1ICszNDAxLDI1IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShLZXJuaW5n
IGtlcm5pbmcpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChrZXJuaW5nKSB7CiAgICAgY2FzZSBLZXJuaW5nOjpBdXRvOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBLZXJu
aW5nOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBLZXJuaW5nOjpOb1NoaWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUF1dG8pOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgS2VybmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
IAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gS2Vybmlu
Zzo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpAQCAtMzQ0MCwxOSArMzQ0MCwxOSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
T2JqZWN0Rml0IGZpdCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGZpdCkgewogICAgIGNhc2UgT2JqZWN0Rml0OjpGaWxs
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGw7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9i
amVjdEZpdDo6Q29udGFpbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250
YWluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250YWluKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBPYmplY3RGaXQ6OkNvdmVyOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvdmVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVDb3Zlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2JqZWN0Rml0OjpOb25lOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9iamVjdEZp
dDo6U2NhbGVEb3duOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjYWxlRG93
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2NhbGVEb3duKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzQ2MSw3ICszNDYxLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9iamVjdEZpdCgpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVGaWxsOgog
ICAgICAgICByZXR1cm4gT2JqZWN0Rml0OjpGaWxsOwogICAgIGNhc2UgQ1NTVmFsdWVDb250YWlu
OgpAQCAtMzQ4NCwyOCArMzQ4NCwyOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFNtb290aGluZ01vZGUgc21vb3RoaQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoc21vb3RoaW5nKSB7CiAgICAgY2FzZSBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290aGlu
ZzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
Rm9udFNtb290aGluZ01vZGU6Ok5vU21vb3RoaW5nOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUp
OwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250U21vb3RoaW5nTW9kZTo6QW50aWFsaWFz
ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQW50aWFsaWFzZWQ7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFudGlhbGlhc2VkKTsKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6OlN1YnBpeGVsQW50aWFsaWFzZWQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxpYXNlZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxpYXNlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQXV0byk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBGb250U21vb3RoaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJ
RCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1
ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4g
Rm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmc7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CkBAIC0zNTI4LDIyICszNTI4LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250U21hbGxDYXBzIHNtYWxsQ2FwcykKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KHNtYWxsQ2FwcykgewogICAgIGNhc2UgRm9udFNtYWxsQ2Fwczo6T2ZmOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFNtYWxsQ2Fw
czo6T246Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU21hbGxDYXBzOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbWFsbENhcHMpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9y
bWFsKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEZvbnRTbWFsbENhcHMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU21hbGxDYXBzOgogICAgICAgICByZXR1cm4gRm9udFNt
YWxsQ2Fwczo6T247CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKQEAgLTM1NjEsMTYgKzM1NjEs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRleHRSZW5kZXJpbmdNb2RlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0UmVu
ZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGltaXplU3Bl
ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGltaXplTGVnaWJpbGl0eToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZUxlZ2liaWxpdHk7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGltaXplTGVnaWJpbGl0eSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Okdlb21ldHJpY1ByZWNp
c2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNp
b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdlb21ldHJpY1ByZWNpc2lv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM1NzksNyArMzU3OSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0UmVuZGVyaW5nTW9k
ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9U
ZXh0UmVuZGVyaW5nOwogICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOgpAQCAtMzYwMiwx
MyArMzYwMiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoSHlwaGVucyBoeXBoZW5zKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaHlwaGVucykgewogICAgIGNh
c2UgSHlwaGVuczo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25l
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBIeXBoZW5zOjpNYW51YWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWFudWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNYW51
YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEh5cGhlbnM6OkF1dG86Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM2MTcsNyArMzYx
Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBIeXBo
ZW5zKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBIeXBoZW5zOjpOb25lOwogICAgIGNh
c2UgQ1NTVmFsdWVNYW51YWw6CkBAIC0zNjM4LDEzICszNjM4LDEzIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lU25hcCBncmlkU25h
cCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGdyaWRTbmFwKSB7CiAgICAgY2FzZSBMaW5lU25hcDo6Tm9uZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lU25hcDo6
QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBMaW5lU25hcDo6Q29udGFpbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb250YWluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
b250YWluKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzY1Myw3ICszNjUzLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVTbmFwKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaW5lU25hcDo6Tm9uZTsKICAgICBjYXNlIENT
U1ZhbHVlQmFzZWxpbmU6CkBAIC0zNjc0LDEwICszNjc0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lQWxpZ24gbGluZUFsaWdu
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAobGluZUFsaWduKSB7CiAgICAgY2FzZSBMaW5lQWxpZ246Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUFsaWdu
OjpFZGdlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFZGdlczsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRWRnZXMpOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC0zNjg2LDcgKzM2ODYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgTGluZUFsaWduKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVy
biBMaW5lQWxpZ246Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUVkZ2VzOgpAQCAtMzcwNSwxOSAr
MzcwNSwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoU3BlYWtBcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU3BlYWtBczo6Tm9y
bWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTcGVha0FzOjpTcGVsbE91dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTcGVsbE91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BlbGxPdXQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNwZWFrQXM6OkRpZ2l0czoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaWdpdHM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZURpZ2l0cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtBczo6TGl0
ZXJhbFB1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpdGVy
YWxQdW5jdHVhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGl0ZXJh
bFB1bmN0dWF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTcGVha0FzOjpOb1B1bmN0
dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vUHVuY3R1YXRpb247
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vUHVuY3R1YXRpb24pOwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zNzI2LDcgKzM3MjYsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3JkZXIoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTG9naWNhbDoK
ICAgICAgICAgcmV0dXJuIE9yZGVyOjpMb2dpY2FsOwogICAgIGNhc2UgQ1NTVmFsdWVWaXN1YWw6
CkBAIC0zNzQ1LDEwICszNzQ1LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPcmRlciBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
T3JkZXI6OkxvZ2ljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG9naWNh
bDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG9naWNhbCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgT3JkZXI6OlZpc3VhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVWaXN1YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZp
c3VhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM3NTcsNyArMzc1Nyw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8U3Bl
YWtBcz4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gT3B0aW9uU2V0PFNwZWFrQXM+
IHsgfTsKICAgICBjYXNlIENTU1ZhbHVlU3BlbGxPdXQ6CkBAIC0zNzgyLDU4ICszNzgyLDU4IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShC
bGVuZE1vZGUgYmxlbmRNb2RlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmxlbmRNb2RlKSB7CiAgICAgY2FzZSBCbGVu
ZE1vZGU6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpNdWx0aXBseToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTXVsdGlwbHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6U2NyZWVu
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjcmVlbjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2NyZWVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCbGVuZE1vZGU6Ok92ZXJsYXk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
T3ZlcmxheTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3ZlcmxheSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpEYXJrZW46Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRGFya2VuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVEYXJrZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6TGln
aHRlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaWdodGVuOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaWdodGVuKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBCbGVuZE1vZGU6OkNvbG9yRG9kZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQ29sb3JEb2RnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sb3JEb2RnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpDb2xvckJ1
cm46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3JCdXJuOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xvckJ1cm4pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJsZW5kTW9kZTo6SGFyZExpZ2h0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUhhcmRMaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
SGFyZExpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6OlNvZnRMaWdo
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb2Z0TGlnaHQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvZnRMaWdodCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQmxlbmRNb2RlOjpEaWZmZXJlbmNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZURpZmZlcmVuY2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZURpZmZlcmVuY2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6RXhjbHVz
aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV4Y2x1c2lvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRXhjbHVzaW9uKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGVuZE1vZGU6Okh1ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIdWU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUh1ZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpTYXR1cmF0aW9uOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNhdHVyYXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNhdHVyYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5k
TW9kZTo6Q29sb3I6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3I7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbG9yKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGVuZE1vZGU6Okx1bWlub3NpdHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTHVtaW5vc2l0eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTHVtaW5vc2l0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpQbHVz
RGFya2VyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNEYXJrZXI7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsdXNEYXJrZXIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6UGx1c0xpZ2h0ZXI6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzg0
Miw3ICszODQyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJsZW5kTW9kZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBCbGVuZE1vZGU6
Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbHk6CkBAIC0zODkzLDEwICszODkzLDEw
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShJc29sYXRpb24gaXNvbGF0aW9uKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaXNvbGF0aW9uKSB7CiAgICAgY2FzZSBJ
c29sYXRpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSXNvbGF0aW9uOjpJc29sYXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUlzb2xhdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlz
b2xhdGUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTM5MDYsNyArMzkwNiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJc29sYXRpb24gaXNvbGF0aW9uKQogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIElzb2xhdGlvbigpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIElzb2xhdGlvbjo6QXV0bzsKICAgICBjYXNlIENTU1Zh
bHVlSXNvbGF0ZToKQEAgLTM5MjUsMTMgKzM5MjUsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVDYXAgZSkKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIExpbmVDYXA6OkJ1dHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQnV0dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnV0dCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUNhcDo6Um91bmQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJvdW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQ2FwOjpTcXVhcmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcXVhcmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC0zOTQwLDcgKzM5NDAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgTGluZUNhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCdXR0OgogICAgICAgICByZXR1cm4gTGluZUNhcDo6
QnV0dDsKICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6CkBAIC0zOTYxLDEzICszOTYxLDEzIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5l
Sm9pbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTGluZUpvaW46Ok1pdGVyOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pdGVyOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVNaXRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUpvaW46
OlJvdW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUpvaW46OkJldmVsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUJldmVsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCZXZlbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM5NzYsNyArMzk3Niw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lSm9pbigpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVNaXRlcjoK
ICAgICAgICAgcmV0dXJuIExpbmVKb2luOjpNaXRlcjsKICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6
CkBAIC0zOTk3LDEwICszOTk3LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXaW5kUnVsZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgV2luZFJ1bGU6Ok5vblplcm86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9uemVybzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uemVybyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2luZFJ1bGU6OkV2ZW5PZGQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRXZlbm9kZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlRXZlbm9kZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQwMDksNyAr
NDAwOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBX
aW5kUnVsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJvOgogICAgICAgICByZXR1cm4gV2luZFJ1bGU6Ok5vblpl
cm87CiAgICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6CkBAIC00MDI5LDQwICs0MDI5LDQwIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBbGln
bm1lbnRCYXNlbGluZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6
OkJlZm9yZUVkZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVmb3JlRWRn
ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmVmb3JlRWRnZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OlRleHRCZWZvcmVFZGdlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OkNlbnRyYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudHJhbDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudHJhbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkFmdGVyRWRnZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlckVkZ2U7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUFmdGVyRWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25t
ZW50QmFzZWxpbmU6OlRleHRBZnRlckVkZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVGV4dEFmdGVyRWRnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
VGV4dEFmdGVyRWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OklkZW9ncmFwaGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlkZW9n
cmFwaGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJZGVvZ3JhcGhpYyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkFscGhhYmV0aWM6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxwaGFiZXRpYyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Okhhbmdpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSGFuZ2luZzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSGFuZ2luZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6
Ok1hdGhlbWF0aWNhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXRoZW1h
dGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1hdGhlbWF0aWNhbCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQwNzEsNyArNDA3MSw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGlnbm1lbnRCYXNlbGluZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQWxpZ25tZW50QmFzZWxpbmU6OkF1dG87CiAg
ICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgpAQCAtNDExMCwxMCArNDExMCwxMCBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm9yZGVyQ29s
bGFwc2UgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJvcmRlckNvbGxhcHNlOjpTZXBhcmF0
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VwYXJhdGUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJvcmRlckNvbGxhcHNlOjpDb2xsYXBzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sbGFwc2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MTIyLDcgKzQxMjIsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyQ29s
bGFwc2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6CiAgICAgICAgIHJldHVybiBCb3JkZXJDb2xsYXBzZTo6
U2VwYXJhdGU7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbGxhcHNlOgpAQCAtNDE0MSwxMCArNDE0MSwx
MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQm9yZGVyRml0IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3JkZXJGaXQ6OkJvcmRl
cjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXI7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQm9yZGVyRml0OjpMaW5lczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
aW5lczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGluZXMpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CkBAIC00MTUzLDcgKzQxNTMsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0KCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoK
ICAgICAgICAgcmV0dXJuIEJvcmRlckZpdDo6Qm9yZGVyOwogICAgIGNhc2UgQ1NTVmFsdWVMaW5l
czoKQEAgLTQxNzIsMTkgKzQxNzIsMTkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGUKICAgICBz
ZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0
Y2ggKGltYWdlUmVuZGVyaW5nKSB7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJl
bmRlcmluZzo6Q3Jpc3BFZGdlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
cmlzcEVkZ2VzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDcmlzcEVkZ2Vz
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6UGl4ZWxhdGVkOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBpeGVsYXRlZDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGl4ZWxhdGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVPcHRpbWl6ZVNwZWVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJl
bmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU9wdGltaXplUXVhbGl0eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
T3B0aW1pemVRdWFsaXR5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDE5Myw3ICs0
MTkzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIElt
YWdlUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmlu
Zzo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFzdDoKQEAgLTQy
MjAsMTAgKzQyMjAsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKElucHV0U2VjdXJpdHkgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IElucHV0U2VjdXJpdHk6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgSW5wdXRTZWN1cml0eTo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDIzMiw3ICs0MjMyLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIElucHV0U2VjdXJp
dHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIElucHV0U2VjdXJpdHk6OkF1dG87CiAg
ICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC00MjUxLDE0ICs0MjUxLDE0IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFuc2Zvcm1TdHls
ZTNEIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1TdHlsZTNEOjpGbGF0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsYXQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUZsYXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5z
Zm9ybVN0eWxlM0Q6OlByZXNlcnZlM0Q6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUHJlc2VydmUzZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHJlc2Vy
dmUzZCk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfVFJBTlNGT1JNX1NUWUxFX09Q
VElNSVpFRF8zRCkKICAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0Q6Ok9wdGltaXplZDNEOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplZDNkOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRpbWl6ZWQzZCk7CiAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAgICAgfQpAQCAtNDI2OCw3ICs0MjY4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYW5zZm9ybVN0eWxlM0QoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRmxhdDoKICAg
ICAgICAgcmV0dXJuIFRyYW5zZm9ybVN0eWxlM0Q6OkZsYXQ7CiAgICAgY2FzZSBDU1NWYWx1ZVBy
ZXNlcnZlM2Q6CkBAIC00MjkxLDE5ICs0MjkxLDE5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFuc2Zvcm1Cb3ggYm94KQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoYm94KSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OlN0cm9rZUJveDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJva2VCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVN0cm9rZUJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNm
b3JtQm94OjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNv
bnRlbnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Qm9yZGVyQm94OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQm9yZGVyQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUcmFuc2Zvcm1Cb3g6OkZpbGxCb3g6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRmlsbEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmlsbEJveCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtQm94OjpWaWV3Qm94OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVZpZXdCb3gpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00
MzEyLDcgKzQzMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVHJhbnNmb3JtQm94KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0cm9rZUJveDoKICAgICAgICAgcmV0dXJuIFRy
YW5zZm9ybUJveDo6U3Ryb2tlQm94OwogICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50Qm94OgpAQCAt
NDMzNywxMyArNDMzNywxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29sdW1uQXhpcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
Q29sdW1uQXhpczo6SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9u
dGFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5BeGlzOjpWZXJ0aWNhbDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlVmVydGljYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbHVtbkF4aXM6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTQzNTIsNyArNDM1Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWw6
CiAgICAgICAgIHJldHVybiBDb2x1bW5BeGlzOjpIb3Jpem9udGFsOwogICAgIGNhc2UgQ1NTVmFs
dWVWZXJ0aWNhbDoKQEAgLTQzNzMsMTAgKzQzNzMsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtblByb2dyZXNzaW9uIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBDb2x1bW5Qcm9ncmVzc2lvbjo6Tm9ybWFsOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5Q
cm9ncmVzc2lvbjo6UmV2ZXJzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
ZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZXZlcnNlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDM4NSw3ICs0Mzg1LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNzaW9uKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIENvbHVtblByb2dyZXNzaW9uOjpOb3JtYWw7CiAg
ICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CkBAIC00NDQ2LDEzICs0NDQ2LDEzIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCdWZmZXJlZFJl
bmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OkF1
dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QnVmZmVyZWRSZW5kZXJpbmc6OkR5bmFtaWM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRHluYW1pYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRHluYW1p
Yyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OlN0YXRpYzoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXRpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTQ0NjEsNyArNDQ2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCdWZmZXJlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1
cm4gQnVmZmVyZWRSZW5kZXJpbmc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUR5bmFtaWM6CkBA
IC00NDgyLDEzICs0NDgyLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShDb2xvckludGVycG9sYXRpb24gZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIENvbG9ySW50ZXJwb2xhdGlvbjo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVB
dXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvckludGVycG9sYXRpb246OlNSR0I6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU1JHQjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU1JHQik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29s
b3JJbnRlcnBvbGF0aW9uOjpMaW5lYXJSR0I6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTGluZWFyUkdCOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaW5l
YXJSR0IpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NDk3LDcgKzQ0OTcsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JJbnRlcnBv
bGF0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZVNSR0I6CiAgICAgICAgIHJldHVybiBDb2xvckludGVycG9sYXRpb246
OlNSR0I7CiAgICAgY2FzZSBDU1NWYWx1ZUxpbmVhclJHQjoKQEAgLTQ1MTgsMTMgKzQ1MTgsMTMg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KENvbG9yUmVuZGVyaW5nIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBDb2xvclJlbmRlcmlu
Zzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb2xvclJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVPcHRpbWl6ZVNwZWVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclJl
bmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU9wdGltaXplUXVhbGl0eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
T3B0aW1pemVRdWFsaXR5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDUzMyw3ICs0
NTMzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENv
bG9yUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ6CiAgICAgICAgIHJldHVybiBDb2xv
clJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDsKICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVRdWFs
aXR5OgpAQCAtNDU1NCw0MCArNDU1NCw0MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRG9taW5hbnRCYXNlbGluZSBlKQogICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpVc2VT
Y3JpcHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXNlU2NyaXB0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVVc2VTY3JpcHQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Ok5vQ2hhbmdlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vQ2hhbmdlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVOb0NoYW5nZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNl
bGluZTo6UmVzZXRTaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlc2V0
U2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVzZXRTaXplKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpDZW50cmFsOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRyYWw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNlbnRyYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERvbWlu
YW50QmFzZWxpbmU6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVN
aWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6VGV4dEJlZm9yZUVkZ2U6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2U7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRCZWZvcmVFZGdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpUZXh0QWZ0ZXJFZGdlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVRleHRBZnRlckVkZ2UpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIERvbWluYW50QmFzZWxpbmU6OklkZW9ncmFwaGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUlkZW9ncmFwaGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVJZGVvZ3JhcGhpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNl
bGluZTo6QWxwaGFiZXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHBo
YWJldGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbHBoYWJldGljKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpIYW5naW5nOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhbmdpbmc7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUhhbmdpbmcpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERv
bWluYW50QmFzZWxpbmU6Ok1hdGhlbWF0aWNhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNYXRoZW1hdGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1hdGhlbWF0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ1OTYsNyArNDU5
Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBEb21p
bmFudEJhc2VsaW5lKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBEb21pbmFudEJhc2Vs
aW5lOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVVc2VTY3JpcHQ6CkBAIC00NjM1LDE2ICs0NjM1
LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShTaGFwZVJlbmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU2hhcGVSZW5k
ZXJpbmc6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU2hhcGVSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2hh
cGVSZW5kZXJpbmc6OkNyaXNwRWRnZXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ3Jpc3BlZGdlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ3Jpc3Bl
ZGdlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2hhcGVSZW5kZXJpbmc6Okdlb21ldHJp
Y1ByZWNpc2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNQ
cmVjaXNpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdlb21ldHJpY1By
ZWNpc2lvbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ2NTMsNyArNDY1Myw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTaGFwZVJlbmRl
cmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gU2hhcGVSZW5kZXJpbmc6OkF1dG87
CiAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ6CkBAIC00Njc2LDEzICs0Njc2LDEzIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShU
ZXh0QW5jaG9yIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0QW5jaG9yOjpTdGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRl
eHRBbmNob3I6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRk
bGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEFuY2hvcjo6RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRW5k
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDY5MSw3ICs0NjkxLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbmNob3IoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBUZXh0QW5jaG9yOjpTdGFydDsKICAgICBjYXNlIENT
U1ZhbHVlTWlkZGxlOgpAQCAtNDcyNiwxMCArNDcyNiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVmVjdG9yRWZmZWN0IGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBWZWN0b3JFZmZlY3Q6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVjdG9yRWZmZWN0OjpOb25TY2Fs
aW5nU3Ryb2tlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vblNjYWxpbmdT
dHJva2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vblNjYWxpbmdTdHJv
a2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NzM4LDcgKzQ3MzgsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVmVjdG9yRWZmZWN0KCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBWZWN0b3JFZmZlY3Q6Ok5vbmU7CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vblNjYWxpbmdTdHJva2U6CkBAIC00NzU3LDEwICs0NzU3LDEwIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShNYXNrVHlw
ZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTWFza1R5cGU6Okx1bWluYW5jZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbmFuY2U7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUx1bWluYW5jZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWFza1R5cGU6OkFscGhhOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhh
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbHBoYSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTQ3NjksNyArNDc2OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBNYXNrVHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dp
dGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVMdW1pbmFuY2U6CiAg
ICAgICAgIHJldHVybiBNYXNrVHlwZTo6THVtaW5hbmNlOwogICAgIGNhc2UgQ1NTVmFsdWVBbHBo
YToKQEAgLTQ3ODgsMjkgKzQ3ODgsMjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU0JveFR5cGUgY3NzQm94KQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY3Nz
Qm94KSB7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpNYXJnaW5Cb3g6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTWFyZ2luQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVNYXJnaW5Cb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6
OkJvcmRlckJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTQm94VHlwZTo6UGFkZGluZ0JveDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWRkaW5nQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVQYWRkaW5nQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NCb3hU
eXBlOjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRl
bnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6OkZpbGxCb3g6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmlsbEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRmlsbEJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTQm94VHlw
ZTo6U3Ryb2tlQm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cm9rZUJv
eDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Ryb2tlQm94KTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpWaWV3Qm94OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVZpZXdCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6OkJv
eE1pc3Npbmc6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00ODQ2LDU2ICs0ODQ2LDU2
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShJdGVtUG9zaXRpb24gaXRlbVBvc2l0aW9uCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChpdGVtUG9zaXRpb24pIHsKICAg
ICBjYXNlIEl0ZW1Qb3NpdGlvbjo6TGVnYWN5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUxlZ2FjeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVnYWN5
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OkF1dG86Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9u
OjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6U3RyZXRjaDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
dHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OkJhc2VsaW5l
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSXRlbVBvc2l0aW9uOjpMYXN0QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTGFzdEJhc2VsaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVMYXN0QmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlv
bjo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFy
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpFbmQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6
U2VsZlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlbGZTdGFydDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VsZlN0YXJ0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlNlbGZFbmQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2VsZkVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlU2VsZkVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpG
bGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleFN0YXJ0Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGV4U3RhcnQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6RmxleEVuZDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVGbGV4RW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246Okxl
ZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SXRlbVBvc2l0aW9uOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
aWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBJdGVtUG9zaXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVMZWdhY3k6CiAgICAgICAgIHJldHVybiBJdGVtUG9zaXRpb246OkxlZ2FjeTsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKQEAgLTQ5NDEsMjAgKzQ5NDEsMjAgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJmbG93QWxpZ25tZW50
IG92ZXJmbG8KICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKG92ZXJmbG93QWxpZ25tZW50KSB7CiAgICAgY2FzZSBPdmVyZmxv
d0FsaWdubWVudDo6RGVmYXVsdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
ZWZhdWx0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZWZhdWx0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvd0FsaWdubWVudDo6VW5zYWZlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVuc2FmZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVW5zYWZlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxv
d0FsaWdubWVudDo6U2FmZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTYWZl
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTYWZlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgT3ZlcmZsb3dBbGlnbm1lbnQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVVbnNhZmU6CiAgICAgICAgIHJldHVybiBPdmVyZmxvd0FsaWdubWVudDo6VW5zYWZlOwog
ICAgIGNhc2UgQ1NTVmFsdWVTYWZlOgpAQCAtNDk3Miw0MSArNDk3Miw0MSBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udGVudFBvc2l0
aW9uIGNvbnRlbnRQbwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY29udGVudFBvc2l0aW9uKSB7CiAgICAgY2FzZSBDb250
ZW50UG9zaXRpb246Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpCYXNlbGluZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRl
bnRQb3NpdGlvbjo6TGFzdEJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUxhc3RCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGFz
dEJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OkNl
bnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6RW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRp
b246OkZsZXhTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3Rh
cnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsZXhTdGFydCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpGbGV4RW5kOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUZsZXhFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQ
b3NpdGlvbjo6TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OlJpZ2h0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVS
aWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnRQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIENvbnRlbnRQb3Np
dGlvbjo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGluZToKQEAgLTUwNDIsMjYgKzUw
NDIsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKENvbnRlbnREaXN0cmlidXRpb24gY29udGUKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGNvbnRlbnREaXN0cmli
dXRpb24pIHsKICAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OkRlZmF1bHQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlRGVmYXVsdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVu
dERpc3RyaWJ1dGlvbjo6U3BhY2VCZXR3ZWVuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U3BhY2VCZXR3ZWVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50RGlzdHJpYnV0
aW9uOjpTcGFjZUFyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFj
ZUFyb3VuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2VBcm91bmQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OlNwYWNlRXZl
bmx5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlRXZlbmx5OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZUV2ZW5seSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRjaDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTdHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udGVudERpc3RyaWJ1dGlv
bigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2gg
KHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjoKICAg
ICAgICAgcmV0dXJuIENvbnRlbnREaXN0cmlidXRpb246OlNwYWNlQmV0d2VlbjsKICAgICBjYXNl
IENTU1ZhbHVlU3BhY2VBcm91bmQ6CkBAIC01MDgxLDcgKzUwODEsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFpvb20oKSBjb25zdAogewogICAg
IEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewor
ICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFs
OgogICAgICAgICByZXR1cm4gVGV4dFpvb206Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlUmVz
ZXQ6CkBAIC01MTAwLDE1ICs1MTAwLDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0Wm9vbSB0ZXh0Wm9vbSkKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHRl
eHRab29tKSB7CiAgICAgY2FzZSBUZXh0Wm9vbTo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9ybWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVGV4dFpvb206OlJlc2V0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlc2V0OworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZXNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
cm1hbDsKKyAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVG91Y2hB
Y3Rpb24gdG91Y2hBY3Rpb24pCkBAIC01MTE3LDIyICs1MTE3LDIyIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUb3VjaEFjdGlvbiB0b3Vj
aEFjdGlvbikKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKHRvdWNoQWN0aW9uKSB7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6
QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1hbmlwdWxhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TWFuaXB1bGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6Tm9u
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
b3VjaEFjdGlvbjo6UGFuWDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYW5Y
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYW5YKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6UGFuWToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVQYW5ZOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYW5Z
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6UGluY2hab29tOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBpbmNoWm9vbTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUGluY2hab29tKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNTE0MCw3ICs1MTQwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRvdWNoQWN0aW9uIHRvdWNoQWN0aW9uKQogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUb3VjaEFjdGlvbjo6QXV0bzsKICAgICBj
YXNlIENTU1ZhbHVlTWFuaXB1bGF0aW9uOgpAQCAtNTE2NiwxMyArNTE2NiwxMyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25h
cFN0cmljdG5lc3Mgc3RyaQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoc3RyaWN0bmVzcykgewogICAgIGNhc2UgU2Nyb2xs
U25hcFN0cmljdG5lc3M6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6OlByb3hpbWl0eToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm94aW1pdHk7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVByb3hpbWl0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U2Nyb2xsU25hcFN0cmljdG5lc3M6Ok1hbmRhdG9yeToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNYW5kYXRvcnk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1hbmRhdG9yeSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTUxODAsNyArNTE4MCw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShTY3JvbGxTbmFwU3RyaWN0bmVzcyBzdHJpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgU2Nyb2xsU25hcFN0cmljdG5lc3MoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAg
ICAgIHJldHVybiBTY3JvbGxTbmFwU3RyaWN0bmVzczo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVl
UHJveGltaXR5OgpAQCAtNTE5OSwxOSArNTE5OSwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcEF4aXMgYXhpcykKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGF4aXMpIHsKICAgICBjYXNlIFNjcm9sbFNuYXBBeGlzOjpYQXhpczoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVYOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVYKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxTbmFwQXhpczo6WUF4
aXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlWSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xs
U25hcEF4aXM6OkJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2Nr
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9jayk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OklubGluZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUlubGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OkJv
dGg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90aDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm90aCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTUyMTksNyArNTIxOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwQXhpcyBheGlzKQogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVYOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsU25hcEF4aXM6OlhBeGlzOwogICAgIGNhc2UgQ1NTVmFsdWVZ
OgpAQCAtNTI0MiwxNiArNTI0MiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgdAogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAodHlwZSkgewogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25h
cEF4aXNBbGlnblR5cGU6OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6OkNlbnRlcjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Ny
b2xsU25hcEF4aXNBbGlnblR5cGU6OkVuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVuZCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTUyNTksNyArNTI1OSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwQXhpc0Fs
aWduVHlwZSB0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
U2Nyb2xsU25hcEF4aXNBbGlnblR5cGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBTY3Jv
bGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CkBAIC01
MjgwLDEwICs1MjgwLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwU3RvcCBzbmFwU3RvcCkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHNuYXBT
dG9wKSB7CiAgICAgY2FzZSBTY3JvbGxTbmFwU3RvcDo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxTbmFwU3RvcDo6
QWx3YXlzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsd2F5czsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWx3YXlzKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtNTI5MSw3ICs1MjkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFNjcm9sbFNuYXBTdG9wIHNuYXBTdG9wKQogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNjcm9sbFNuYXBTdG9w
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBTY3JvbGxTbmFwU3RvcDo6Tm9ybWFsOwog
ICAgIGNhc2UgQ1NTVmFsdWVBbHdheXM6CkBAIC01MzA5LDEwICs1MzA5LDEwIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFpbGluZ1dv
cmQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRyYWlsaW5nV29yZDo6QXV0bzoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUcmFpbGluZ1dv
cmQ6OlBhcnRpYWxseUJhbGFuY2VkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVdlYmtpdFBhcnRpYWxseUJhbGFuY2VkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVXZWJraXRQYXJ0aWFsbHlCYWxhbmNlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTMyMyw3ICs1MzIzLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRy
YWlsaW5nV29yZCBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRyYWlsaW5nV29y
ZDo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGFydGlhbGx5QmFsYW5jZWQ6CkBAIC01
MzQzLDEzICs1MzQzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShBcHBsZVBheUJ1dHRvblN0eWxlIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVXaGl0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
V2hpdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6Oldo
aXRlT3V0bGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxp
bmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdoaXRlT3V0bGluZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUJsYWNrKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MzYwLDcgKzUzNjAsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlC
dXR0b25TdHlsZSBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEFwcGxlUGF5QnV0dG9uU3R5bGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdoaXRlOgogICAgICAgICByZXR1cm4gQXBw
bGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CiAgICAgY2FzZSBDU1NWYWx1ZVdoaXRlT3V0bGluZToK
QEAgLTUzODAsNTAgKzUzODAsNTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEFwcGxlUGF5QnV0dG9uVHlwZSBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlUGxhaW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6
QnV5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJ1eTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnV5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBB
cHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNldFVwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZXRVcCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpEb25hdGU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG9uYXRlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVEb25hdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxl
UGF5QnV0dG9uVHlwZTo6Q2hlY2tPdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2hlY2tPdXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNoZWNrT3V0
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkJvb2s6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm9vazsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlQm9vayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQ
YXlCdXR0b25UeXBlOjpTdWJzY3JpYmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU3Vic2NyaWJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdWJzY3Jp
YmUpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX05FV19CVVRUT05fVFlQ
RVMpCiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlJlbG9hZDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxvYWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJlbG9hZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25U
eXBlOjpBZGRNb25leToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZGRNb25l
eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWRkTW9uZXkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6VG9wVXA6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wVXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRvcFVwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6Ok9yZGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9yZGVyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcmRlcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpSZW50OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVJlbnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVJlbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6U3Vw
cG9ydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdXBwb3J0OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdXBwb3J0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkNvbnRyaWJ1dGU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29udHJpYnV0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ29udHJpYnV0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlC
dXR0b25UeXBlOjpUaXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGlwOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUaXApOwogICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC01NDM1LDcgKzU0MzUsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25U
eXBlIGUpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBw
bGVQYXlCdXR0b25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVQbGFpbjoKICAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0
dG9uVHlwZTo6UGxhaW47CiAgICAgY2FzZSBDU1NWYWx1ZUJ1eToKQEAgLTU0ODIsMTMgKzU0ODIs
MTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZvbnRWYXJpYW50UG9zaXRpb24gcG9zaXQKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAg
Y2FzZSBGb250VmFyaWFudFBvc2l0aW9uOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVO
b3JtYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50UG9zaXRpb246OlN1
YnNjcmlwdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdWI7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN1Yik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRm9udFZhcmlhbnRQb3NpdGlvbjo6U3VwZXJzY3JpcHQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU3VwZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVN1cGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC01NDk5LDcgKzU0OTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFZhcmlhbnRQb3NpdGlvbiBwb3Np
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJp
YW50UG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZvbnRWYXJpYW50UG9z
aXRpb246Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlU3ViOgpAQCAtNTUxOSwyNSArNTUxOSwy
NSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRm9udFZhcmlhbnRDYXBzIGNhcHMpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjYXBzKSB7CiAgICAgY2FzZSBGb250
VmFyaWFudENhcHM6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpTbWFsbDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbWFsbENhcHM7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNtYWxsQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZh
cmlhbnRDYXBzOjpBbGxTbWFsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
bGxTbWFsbENhcHM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsbFNtYWxs
Q2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpQZXRpdGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGV0aXRlQ2FwczsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGV0aXRlQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpBbGxQZXRpdGU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQWxsUGV0aXRlQ2FwczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQWxsUGV0aXRlQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZh
cmlhbnRDYXBzOjpVbmljYXNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVu
aWNhc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVuaWNhc2UpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6VGl0bGluZzoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaXRsaW5nQ2FwczsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlVGl0bGluZ0NhcHMpOwogICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1NDgsNyArNTU0OCw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShG
b250VmFyaWFudENhcHMgY2FwcykKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250VmFyaWFudENhcHMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVl
SURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJu
IEZvbnRWYXJpYW50Q2Fwczo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHM6CkBA
IC01NTc2LDEwICs1NTc2LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShGb250VmFyaWFudEFsdGVybmF0ZXMgYWx0CiAgICAgc2V0UHJp
bWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChh
bHRlcm5hdGVzKSB7CiAgICAgY2FzZSBGb250VmFyaWFudEFsdGVybmF0ZXM6Ok5vcm1hbDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9u
dFZhcmlhbnRBbHRlcm5hdGVzOjpIaXN0b3JpY2FsRm9ybXM6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSGlzdG9yaWNhbEZvcm1zOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVIaXN0b3JpY2FsRm9ybXMpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1OTAsNyArNTU5MCw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250
VmFyaWFudEFsdGVybmF0ZXMgYWx0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAg
IHJldHVybiBGb250VmFyaWFudEFsdGVybmF0ZXM6Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVl
SGlzdG9yaWNhbEZvcm1zOgpAQCAtNTYwOCwxMCArNTYwOCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udE9wdGljYWxTaXppbmcg
c2l6aW5nKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoc2l6aW5nKSB7CiAgICAgY2FzZSBGb250T3B0aWNhbFNpemluZzo6
RW5hYmxlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBGb250T3B0aWNhbFNpemluZzo6RGlzYWJsZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9u
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtNTYyMiw3ICs1NjIyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRPcHRpY2FsU2l6aW5nIHNpemluZykKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250T3B0aWNhbFNp
emluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEZvbnRPcHRpY2FsU2l6aW5nOjpFbmFi
bGVkOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtNTY0MCwxOSArNTY0MCwxOSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udExv
YWRpbmdCZWhhdmlvciBiZWhhdgogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKICAgICBjYXNlIEZvbnRM
b2FkaW5nQmVoYXZpb3I6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRm9udExvYWRpbmdCZWhhdmlvcjo6QmxvY2s6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxvY2s7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUJsb2NrKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb250TG9hZGluZ0Jl
aGF2aW9yOjpTd2FwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN3YXA7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN3YXApOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEZvbnRMb2FkaW5nQmVoYXZpb3I6OkZhbGxiYWNrOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUZhbGxiYWNrOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVGYWxsYmFjayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udExvYWRpbmdC
ZWhhdmlvcjo6T3B0aW9uYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0
aW9uYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGlvbmFsKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC01NjYzLDcgKzU2NjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udExvYWRpbmdCZWhhdmlvciBiZWhhdgogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRMb2FkaW5nQmVoYXZpb3Io
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOwog
ICAgIGNhc2UgQ1NTVmFsdWVCbG9jazoKQEAgLTU2ODcsMTAgKzU2ODcsMTAgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE1hdGhTdHlsZSBt
YXRoU3R5bGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChtYXRoU3R5bGUpIHsKICAgICBjYXNlIE1hdGhTdHlsZTo6Tm9y
bWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBNYXRoU3R5bGU6OkNvbXBhY3Q6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ29tcGFjdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29tcGFjdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtNTcwMSw3ICs1NzAxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE1hdGhTdHlsZSBtYXRoU3R5bGUpCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWF0aFN0eWxlKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3Jt
YWw6CiAgICAgICAgIHJldHVybiBNYXRoU3R5bGU6Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVl
Q29tcGFjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZGM0MGQzN2VmMDU2NTM1MjQ3NDQ1NjE2OWU1NGVmMmQ0MzA4YTM3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NT
UmV2ZXJ0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAicmV2ZXJ0
Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRW
YWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzViMjRkNzIzN2Q3ZWZhNmUz
MzUyYWY2YzM1ODQ3NTM2M2YxYzA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NSZXZlcnRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBD
U1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKLQot
ICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1JldmVydFZhbHVlJikgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUmV2ZXJ0
VmFsdWU+OwotICAgIENTU1JldmVydFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnKQotICAgICAgICA6
IENTU1ZhbHVlKFJldmVydENsYXNzKQotICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwotICAg
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DU1NfVkFMVUUoQ1NTUmV2ZXJ0VmFsdWUsIGlzUmV2ZXJ0VmFsdWUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NVbnNldFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI2YjBi
M2JjNzU0MzM2NzY1MzY0NzRhNDA3ZTdkMDdkZDc1ZWI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkNTU1Vuc2V0VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NVbnNldFZhbHVlOjpjdXN0b21DU1NUZXh0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gInVuc2V0Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjY1MjVjOGRhMjBkNTk5ZWMyZDQzNGU0N2VkNDg5ZDZjMzkyZDZkNC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVW5zZXRWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NV
bnNldFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJpbmcg
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTVW5zZXRW
YWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTGF6
eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+OwotICAgIENTU1Vuc2V0VmFsdWUoU3RhdGlj
Q1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NTVmFsdWUoVW5zZXRDbGFzcykKLSAgICB7Ci0gICAg
ICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1Vuc2V0VmFsdWUsIGlzVW5zZXRW
YWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNjFhYzcxMWE3MzUxZmRkZGRkN2Yy
NmY2OTAyODBkM2Q4MWE2MWYxMi4uZTViNmI0NGM0MWU4Yjk1OTkyMDMxZDFmZGFhMTAxNDI2N2M1
N2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC00OSw4ICs0OSw2IEBACiAjaW5jbHVk
ZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlU2V0VmFsdWUuaCIKICNp
bmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUuaCIK
LSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NMaW5lQm94Q29udGFp
blZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTmFtZWRJbWFnZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
UGFpbnRJbWFnZVZhbHVlLmgiCkBAIC02MSw3ICs1OSw2IEBACiAjaW5jbHVkZSAiQ1NTU2hhZG93
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTVW5pY29kZVJhbmdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NVbnNldFZhbHVlLmgiCiAjaW5j
bHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQYWlyLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oIgpAQCAtODMsMTYgKzgwLDExIEBAIHN0cnVj
dCBTYW1lU2l6ZUFzQ1NTVmFsdWUgewogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoQ1NTVmFsdWUp
ID09IHNpemVvZihTYW1lU2l6ZUFzQ1NTVmFsdWUpLCBDU1NfdmFsdWVfc2hvdWxkX3N0YXlfc21h
bGwpOwogCi1ib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYmIGRvd25jYXN0PENTU0lu
aXRpYWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKLX0KLQogREVGSU5FX0FMTE9DQVRPUl9X
SVRIX0hFQVBfSURFTlRJRklFUihDU1NWYWx1ZSk7CiAKIENTU1ZhbHVlOjpUeXBlIENTU1ZhbHVl
Ojpjc3NWYWx1ZVR5cGUoKSBjb25zdAogewotICAgIGlmIChpc0luaGVyaXRlZFZhbHVlKCkpCisg
ICAgaWYgKGlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgIHJldHVybiBDU1NfSU5IRVJJVDsKICAg
ICBpZiAoaXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gQ1NTX1BSSU1JVElWRV9W
QUxVRTsKQEAgLTE4NCwxNCArMTc2LDYgQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVz
PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAgICBjYXNlIEltYWdlQ2xh
c3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbWFnZVZhbHVlPigq
dGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIEluaGVyaXRlZENsYXNzOgotICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5oZXJpdGVkVmFsdWU+KCp0aGlzLCBvdGhlcik7
Ci0gICAgICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVD
U1NWYWx1ZXM8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFVu
c2V0Q2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NVbnNldFZh
bHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFJldmVydENsYXNzOgotICAgICAgICAg
ICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTUmV2ZXJ0VmFsdWU+KCp0aGlzLCBvdGhlcik7
CiAgICAgICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAgICAgIHJldHVybiBj
b21wYXJlQ1NTVmFsdWVzPENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0aGlzLCBvdGhlcik7CiAg
ICAgICAgIGNhc2UgR3JpZEludGVnZXJSZXBlYXRDbGFzczoKQEAgLTI4NiwxNCArMjcwLDYgQEAg
U3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgSW1h
Z2VDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KCp0aGlzKS5j
dXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAg
IGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW5pdGlhbFZh
bHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNhc2UgVW5zZXRDbGFzczoKLSAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7
Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1JldmVy
dFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRD
bGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0
aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkSW50ZWdlclJlcGVhdENsYXNzOgpA
QCAtNDEwLDE4ICszODYsNiBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKICAgICBjYXNlIElt
YWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih0aGlzKTsK
ICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0gICAgICAgIGRlbGV0
ZSBkb3duY2FzdDxDU1NJbmhlcml0ZWRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0luaXRpYWxW
YWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFVuc2V0Q2xhc3M6Ci0gICAg
ICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NVbnNldFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NSZXZl
cnRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIEdyaWRBdXRvUmVwZWF0
Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPih0
aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEzLDEyICs0NzcsMzggQEAgUmVmPERlcHJlY2F0
ZWRDU1NPTVZhbHVlPiBDU1NWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcihDU1NT
dHlsZURlY2xhcmEKIAogYm9vbCBDU1NWYWx1ZTo6dHJlYXRBc0luaGVyaXRlZFZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xhc3NUeXBlKCkgPT0g
SW5oZXJpdGVkQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3MgJiYgQ1NTUHJvcGVy
dHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworICAgIHJldHVybiBpc0luaGVy
aXRWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQ
cm9wZXJ0eShwcm9wZXJ0eUlEKSk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbml0aWFs
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIHJldHVybiBjbGFz
c1R5cGUoKSA9PSBJbml0aWFsQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3MgJiYg
IUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKKyAgICByZXR1
cm4gaXNJbml0aWFsVmFsdWUoKSB8fCAoaXNVbnNldFZhbHVlKCkgJiYgIUNTU1Byb3BlcnR5Ojpp
c0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6aXNJ
bml0aWFsVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4o
KnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbml0aWFsKCk7
CiB9CiAKK2Jvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSBjb25zdAorewor
ICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbXBsaWNpdEluaXRpYWwoKTsKK30KKworYm9vbCBDU1NW
YWx1ZTo6aXNJbmhlcml0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRp
dmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJ
bmhlcml0KCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzVW5zZXRWYWx1ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KCp0aGlzKS5pc1Vuc2V0KCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzUmV2
ZXJ0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRo
aXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNSZXZlcnQoKTsKK30K
KworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGFlNTA2ZWY3Yzk5NzI3MTI4YTFkODEzYzVk
MjI2NGI1MGM3ZjMxNDEuLjZhOGQ2MGRhODdiMjk1NmFhOWRiM2M4NjAwMDcyN2NiYWEzZGVkYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0ltYWdlU2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbWFn
ZVNldENsYXNzOyB9CiAgICAgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBJbWFnZUNsYXNzOyB9CiAgICAgYm9vbCBpc0ltcGxpY2l0SW5pdGlhbFZhbHVl
KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0luaGVyaXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gSW5oZXJpdGVkQ2xhc3M7IH0KLSAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzOyB9Ci0gICAgYm9vbCBp
c1Vuc2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBVbnNldENsYXNzOyB9
Ci0gICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0g
UmV2ZXJ0Q2xhc3M7IH0KLSAgICBib29sIGlzR2xvYmFsS2V5d29yZCgpIGNvbnN0IHsgcmV0dXJu
IGlzSW5oZXJpdGVkVmFsdWUoKSB8fCBpc0luaXRpYWxWYWx1ZSgpIHx8IGlzVW5zZXRWYWx1ZSgp
IHx8IGlzUmV2ZXJ0VmFsdWUoKTsgfQorICAgIGJvb2wgaXNJbmhlcml0VmFsdWUoKSBjb25zdDsK
KyAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1Vuc2V0VmFsdWUo
KSBjb25zdDsKKyAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzQ1NT
V2lkZUtleXdvcmQoKSBjb25zdCB7IHJldHVybiBpc0luaGVyaXRWYWx1ZSgpIHx8IGlzSW5pdGlh
bFZhbHVlKCkgfHwgaXNVbnNldFZhbHVlKCkgfHwgaXNSZXZlcnRWYWx1ZSgpOyB9CiAgICAgYm9v
bCB0cmVhdEFzSW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgdHJl
YXRBc0luaGVyaXRlZFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgaXNMaW5l
YXJHcmFkaWVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gTGluZWFyR3Jh
ZGllbnRDbGFzczsgfQpAQCAtMTkxLDExICsxOTEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEZv
bnRQYWxldHRlVmFsdWVzT3ZlcnJpZGVDb2xvcnNDbGFzcywKICAgICAgICAgRnVuY3Rpb25DbGFz
cywKIAotICAgICAgICBJbmhlcml0ZWRDbGFzcywKLSAgICAgICAgSW5pdGlhbENsYXNzLAotICAg
ICAgICBVbnNldENsYXNzLAotICAgICAgICBSZXZlcnRDbGFzcywKLQogICAgICAgICBSZWZsZWN0
Q2xhc3MsCiAgICAgICAgIFNoYWRvd0NsYXNzLAogICAgICAgICBVbmljb2RlUmFuZ2VDbGFzcywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5kZXggNTAxODM1Y2M0NGVkZjU5YWYyNDg2
YzVhZTQ4NjlmY2U2NmE3MjhmZC4uZDhkNWI4MDMzN2QwNGUyNDZiNjA2OGE5MzAxODc1M2E1MGVj
ZWI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKQEAgLTM4LDEyICszOCw4IEBA
IExhenlOZXZlckRlc3Ryb3llZDxTdGF0aWNDU1NWYWx1ZVBvb2w+IHN0YXRpY0NTU1ZhbHVlUG9v
bDsKIAogU3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0aWNDU1NWYWx1ZVBvb2woKQogewotICAgIG1f
aW5oZXJpdGVkVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAg
bV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVl
LCB0cnVlKTsKLSAgICBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6
U3RhdGljQ1NTVmFsdWUsIGZhbHNlKTsKLSAgICBtX3Vuc2V0VmFsdWUuY29uc3RydWN0KENTU1Zh
bHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAgbV9yZXZlcnRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFs
dWU6OlN0YXRpY0NTU1ZhbHVlKTsKLQorICAgIG1faW1wbGljaXRJbml0aWFsLmNvbnN0cnVjdChD
U1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpJbXBsaWNpdEluaXRp
YWxWYWx1ZSk7CisgICAgCiAgICAgbV90cmFuc3BhcmVudENvbG9yLmNvbnN0cnVjdChDU1NWYWx1
ZTo6U3RhdGljQ1NTVmFsdWUsIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrKTsKICAgICBtX3doaXRl
Q29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OndoaXRlKTsK
ICAgICBtX2JsYWNrQ29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29s
b3I6OmJsYWNrKTsKQEAgLTg4LDYgKzg0LDExIEBAIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NT
VmFsdWVQb29sOjpjcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJRCBpZGVudCkKICAg
ICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoaWRlbnQpOwogfQog
CitSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0
aWFsVmFsdWUoKQoreworICAgIHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faW1wbGljaXRJ
bml0aWFsLmdldCgpOworfQorCiBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ZhbHVlUG9vbDo6
Y3JlYXRlQ29sb3JWYWx1ZShjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgLy8gVGhlc2UgYXJl
IHRoZSBlbXB0eSBhbmQgZGVsZXRlZCB2YWx1ZXMgb2YgdGhlIGhhc2ggdGFibGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVQb29sLmgKaW5kZXggMWZiMjMxNmVmYzAzMTBhM2JmY2EzODRmMTBjN2RlMDcx
ZjQxZTllZC4uZmFlZTE2M2RlYWYzMTY2N2UzODllMjgyNDY1YTEzZWU4YmViZmYwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaApAQCAtMjUsMTIgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJDU1NJbmhlcml0ZWRWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0luaXRpYWxW
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NT
VW5zZXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJD
b2xvckhhc2guaCIKICNpbmNsdWRlIDx1dGlsaXR5PgpAQCAtNTUsMTEgKzUxLDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBTdGF0aWNDU1NWYWx1ZVBvb2woKTsKIAotICAgIExhenlOZXZlckRl
c3Ryb3llZDxDU1NJbmhlcml0ZWRWYWx1ZT4gbV9pbmhlcml0ZWRWYWx1ZTsKLSAgICBMYXp5TmV2
ZXJEZXN0cm95ZWQ8Q1NTSW5pdGlhbFZhbHVlPiBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlOwotICAg
IExhenlOZXZlckRlc3Ryb3llZDxDU1NJbml0aWFsVmFsdWU+IG1fZXhwbGljaXRJbml0aWFsVmFs
dWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+IG1fdW5zZXRWYWx1ZTsK
LSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUmV2ZXJ0VmFsdWU+IG1fcmV2ZXJ0VmFsdWU7Cisg
ICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2ltcGxpY2l0SW5pdGlh
bDsKIAogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV90cmFuc3Bh
cmVudENvbG9yOwogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV93
aGl0ZUNvbG9yOwpAQCAtODUsMTEgKzc3LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gY3JlYXRlRm9udEZhY2VWYWx1ZShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgUmVm
PENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVGb250RmFtaWx5VmFsdWUoY29uc3QgU3RyaW5nJiwg
RnJvbVN5c3RlbUZvbnRJRCA9IEZyb21TeXN0ZW1Gb250SUQ6Ok5vKTsKLSAgICBSZWY8Q1NTSW5o
ZXJpdGVkVmFsdWU+IGNyZWF0ZUluaGVyaXRlZFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFs
dWVQb29sLT5tX2luaGVyaXRlZFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1
ZT4gY3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBv
b2wtPm1faW1wbGljaXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTSW5pdGlhbFZh
bHVlPiBjcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVl
UG9vbC0+bV9leHBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NVbnNldFZh
bHVlPiBjcmVhdGVVbnNldFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3Vu
c2V0VmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZh
bHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3JldmVydFZhbHVlLmdldCgpOyB9
CisgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgp
OwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlSUQgaWRlbnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJRCBpZGVudGlmaWVyKTsKICAgICBSZWY8Q1NTUHJpbWl0
aXZlVmFsdWU+IGNyZWF0ZUNvbG9yVmFsdWUoY29uc3QgQ29sb3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKaW5kZXggN2E4ZjFk
YTMwMmRiYWQzNjQ0NGJlMTNjNGEyYmM2MzY2NjUyMWFmMS4uNjE5ZGJlYzNlZTk3M2M0ODJlMWE3
ODU1NTU3ZGFhNDA0MWFlNGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCwg
Y29uc3QgU3RyaW5nJikgeyByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsgfQogCiAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZS0+c3RyaW5nVmFsdWUoKTsgfQorICAgIGJvb2wgaXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQoKTsgfQogCiBwcml2YXRlOgogICAg
IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiB2
YWx1ZSwgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgb3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCmluZGV4IGM4M2FkOGRhMzJmZDkzYTYwOThmN2JjNDgzZDNiZDkzNDMxMzA1
YmMuLmFmODk3Y2QxN2M3MDhhYmE4NTA0YzRlNTVhNWU4NjBjNjVkYTI1ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3Iu
aCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlNTA5ZWU2N2Y5
MDdmYTA2ZTQ5OTY4NDM2YzYyM2Y0MWI0ZDVhNDQ3Li4wNjNlZjM1OGFmZjcxMGMzNmY0MGU5Yjgw
ZDE5ZGFlNGI4NzIyM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApA
QCAtNDAwLDcgKzQwMCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1Zh
bHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuCiAgICAgaWYgKHRvcExl
ZnQuaXNJbXBvcnRhbnQoKSAhPSB0b3BSaWdodC5pc0ltcG9ydGFudCgpIHx8IHRvcFJpZ2h0Lmlz
SW1wb3J0YW50KCkgIT0gYm90dG9tUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCBib3R0b21SaWdodC5p
c0ltcG9ydGFudCgpICE9IGJvdHRvbUxlZnQuaXNJbXBvcnRhbnQoKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogCi0gICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpICYm
IHRvcFJpZ2h0VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiBib3R0b21SaWdodFZhbHVlLT5p
c0luaGVyaXRlZFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkp
CisgICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSAmJiB0b3BSaWdodFZhbHVl
LT5pc0luaGVyaXRWYWx1ZSgpICYmIGJvdHRvbVJpZ2h0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkg
JiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZ2V0
VmFsdWVOYW1lKENTU1ZhbHVlSW5oZXJpdCk7CiAKICAgICBpZiAodG9wTGVmdFZhbHVlLT5pc0lu
aXRpYWxWYWx1ZSgpIHx8IHRvcFJpZ2h0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwgYm90dG9t
UmlnaHRWYWx1ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCBib3R0b21MZWZ0VmFsdWUtPmlzSW5pdGlh
bFZhbHVlKCkpIHsKQEAgLTg1Miw4ICs4NTIsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpw
YWdlQnJlYWtQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNobwog
ICAgIGF1dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHNob3J0aGFuZC5wcm9wZXJ0aWVz
KClbMF0pOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgaXNHbG9iYWxLZXl3b3JkIGNoZWNrIGFmdGVyIHdlIGRvIHRo
aXMgY29uc2lzdGVudGx5IGZvciBhbGwgc2hvcnRoYW5kcyBpbiBnZXRQcm9wZXJ0eVZhbHVlLgot
ICAgIGlmICh2YWx1ZS0+aXNHbG9iYWxLZXl3b3JkKCkpCisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGlzQ1NTV2lkZUtleXdvcmQgY2hlY2sgYWZ0ZXIgd2UgZG8gdGhpcyBjb25zaXN0ZW50bHkg
Zm9yIGFsbCBzaG9ydGhhbmRzIGluIGdldFByb3BlcnR5VmFsdWUuCisgICAgaWYgKHZhbHVlLT5p
c0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dCgpOwogICAg
IAogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzdhMTE1MWFk
YTJlOTc1YjRjYzQ3ZDdiNmU0Nzk2ODNkMWMxNjNmZi4uYWEzZWEyOTI1NDU0NWZmMjY5ZTJiNWZm
MWZlY2UwZmI5NWY5NjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtMTExNSwxOSArMTExNSwxMSBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZUtleXdvcmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIFN0
cmluZ1ZpZXcgcwogICAgIGlmICghdmFsdWVJRCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBpZiAoIXBhcnNpbmdEZXNjcmlwdG9yKSB7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlSW5oZXJpdCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRv
bigpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1Zh
bHVlSW5pdGlhbCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigp
LmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlVW5zZXQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVVbnNldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2
ZXJ0KQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
UmV2ZXJ0VmFsdWUoKTsKLSAgICB9Ci0gICAgCisgICAgaWYgKCFwYXJzaW5nRGVzY3JpcHRvciAm
JiBpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKQorICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKKwogICAgIGlmIChDU1NQYXJzZXJG
YXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShwcm9wZXJ0eUlkLCB2YWx1
ZUlELCBjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJ
ZGVudGlmaWVyKHZhbHVlSUQpOworICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKaW5kZXggODE3NGM3MzJl
NjgxZGQ3ZDNlNDAxMDQxNGQwY2IwMWEzZTNjNGNhMy4uOTU2MDFlOTA1YjMxOGVkODlmNGQ4MDFh
MzVlOWUzZWNkNWNhZDQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJJZGlvbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
cklkaW9tcy5oCkBAIC01OSw0ICs1OSw5IEBAIGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3Rl
clR5cGUgYykKIAogYm9vbCBpc1ZhbHVlQWxsb3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NT
UGFyc2VyTW9kZSk7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1Zh
bHVlSUQgaWQpCit7CisgICAgcmV0dXJuIGlkID09IENTU1ZhbHVlSW5pdGlhbCB8fCBpZCA9PSBD
U1NWYWx1ZUluaGVyaXQgfHwgaWQgPT0gQ1NTVmFsdWVVbnNldCB8fCBpZCA9PSBDU1NWYWx1ZVJl
dmVydDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBmZDFkMDZlZmY3YjliNTJkZjNk
Y2E3NjViNGQ5ODU0ZmZkOTMxZGJmLi5iZDg2ZjdkNjc2ZDExNGU2NjhlY2Q0N2VkMWZmYWRmZDdk
ZDdhZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmNwcApAQCAtMjU4LDIwICsyNTgsMTMgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gbWF5
YmVDb25zdW1lQ1NTV2lkZUtleXdvcmQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAg
aWYgKCFyYW5nZUNvcHkuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBS
ZWZQdHI8Q1NTVmFsdWU+IHZhbHVlOwotICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJp
dCkKLSAgICAgICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVy
aXRlZFZhbHVlKCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwpCi0g
ICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdElu
aXRpYWxWYWx1ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldCkKLSAg
ICAgICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVVuc2V0VmFsdWUo
KTsKLSAgICBlbHNlIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0KQotICAgICAgICB2YWx1
ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICBl
bHNlCisgICAgaWYgKCFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKSB7CisgICAgICAgIEFTU0VS
VCh2YWx1ZUlEICE9IENTU1ZhbHVlSW5oZXJpdCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KIAogICAgIHJhbmdlID0gcmFuZ2VDb3B5OwotICAgIHJldHVybiB2YWx1ZTsKKyAgICBy
ZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKIH0K
IAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Y29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAzZDRmZjk0
MGU0Y2Q1NGUxNmUwYjUxZDcxODYyMjNmNzkwNGU2M2NmLi5lYjYzYjRhZWRiMzI4MmEwOTlhOWNl
N2I5ZDdkZDc3M2NjYjhiMThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC01OSwxMSArNTksNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMgewog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgaXNDU1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIGlkKQotewot
ICAgIHJldHVybiBpZCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgaWQgPT0gQ1NTVmFsdWVJbmhlcml0
IHx8IGlkID09IENTU1ZhbHVlVW5zZXQgfHwgaWQgPT0gQ1NTVmFsdWVSZXZlcnQgfHwgaWQgPT0g
Q1NTVmFsdWVEZWZhdWx0OwotfQotCiBib29sIGNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3Bh
Y2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgQ1NTUGFyc2VyVG9rZW4gdmFs
dWUgPSByYW5nZS5wZWVrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW0KaW5kZXggZDk0NGQ5ODRkYzNmOGUxOTM5ZjFmYzc0M2Y4YTk0MGExNzdhMWUy
ZS4uMTY0NzY2ZGMzMjUzNzVlN2ViMWY4YTc1ZGJhY2Q0MjIyMTMwZmQ3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtNTg3LDcgKzU4Nyw3
IEBAIFN0cmluZyBIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2Rl
JiBub2RlLCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2
YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQp
KSB7CiAgICAgICAgIFN0cmluZyByZXN1bHQ7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0
ZWRWYWx1ZSgpKQorICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAg
ICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoc3RyaW5nRnJvbUNTU1ZhbHVl
KCp2YWx1ZSwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03MzUsNyAr
NzM1LDcgQEAgYm9vbCBIVE1MQ29udmVydGVyQ2FjaGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JO
b2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcHIKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVl
PiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5
SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBmbG9h
dFZhbHVlRnJvbVByaW1pdGl2ZVZhbHVlKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFs
dWUpLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICh2YWx1
ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVl
KCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICB9CiAKQEAgLTg3Nyw3ICs4Nzcs
NyBAQCBDb2xvciBIVE1MQ29udmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2Rl
KE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcAogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZh
bHVlID0gaW5saW5lU3R5bGVQcm9wZXJ0eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkp
IHsKICAgICAgICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpICYmIGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmlzUkdCQ29sb3IoKSkKICAgICAgICAgICAgIHJl
dHVybiBub3JtYWxpemVkQ29sb3IoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSku
Y29sb3IoKSwgaWdub3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKLSAgICAgICAgaWYgKHZhbHVl
LT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUo
KSkKICAgICAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggYzZjMzZhZTY3ZjUwMzk3MTM2ZDcwZmMxZjFi
ZTMwMGE0YjJjZjYzOC4uODlkYjg1YjM1ZmQ3YzEyM2MxNGU0YTQyY2FlZTZmMGFkODFkMzI1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00ODQsMjQgKzQ4
NCwyNCBAQCBSZWY8U3R5bGVQcm9wZXJ0aWVzPiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVTaGFy
ZWRDZWxsU3R5bGUoKSBjb25zdAogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlCb3JkZXJSaWdodFdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlLCBDU1NWYWx1
ZVNvbGlkKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29s
b3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU29saWRCb3JkZXJzUm93c09ubHk6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJvcmRlclRvcFdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAg
ICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIENTU1Zh
bHVlU29saWQpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJC
b3R0b21TdHlsZSwgQ1NTVmFsdWVTb2xpZCk7Ci0gICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUo
KSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBj
c3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5oZXJpdCkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNvbGlkQm9yZGVyczoKICAgICAgICAgc3R5bGUtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSgx
LCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJvcmRlclN0eWxlLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1ZhbHVlU29saWQpKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9y
ZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAg
c3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5j
cmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgSW5zZXRCb3JkZXJzOgogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlCb3JkZXJXaWR0aCwgY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKDEsIENTU1VuaXRUeXBl
OjpDU1NfUFgpKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVy
U3R5bGUsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbnNldCkp
OwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3Nz
VmFsdWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb0Jv
cmRlcnM6CiAgICAgICAgIC8vIElmICdydWxlcz1ub25lJyB0aGVuIGFsbG93IGFueSBib3JkZXJz
IHNldCBhdCBjZWxsIGxldmVsIHRvIHRha2UgZWZmZWN0LiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA4MWJhYjkzYTQxYmI2YzRhODkzZDVi
OGIzYWVhNmUxOGFlYzE0NzVkLi5iZWI4OTY3ZmRiY2RlNDMyODU0ZDE1M2JhOWNlMjZjNjc3M2Uz
MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3Bw
CkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hl
ZFByb3BlcnRpZXMoTWF0Y2hlZFByb3BlcnRpZXMmJiBtYXRjaGVkUHJvcGUKICAgICAgICAgICAg
IC8vIGFzIHRoZXkgbWlnaHQgb3ZlcnJpZGUgdGhlIHZhbHVlIGluaGVyaXRlZCBoZXJlLiBGb3Ig
dGhpcyByZWFzb24gd2UgZG9uJ3QgYWxsb3cgZGVjbGFyYXRpb25zIHdpdGgKICAgICAgICAgICAg
IC8vIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHByb3BlcnRpZXMgdG8gYmUgY2FjaGVkLgogICAgICAg
ICAgICAgY29uc3QgQ1NTVmFsdWUmIHZhbHVlID0gKmN1cnJlbnQudmFsdWUoKTsKLSAgICAgICAg
ICAgIGlmICh2YWx1ZS5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgICAgICAgICBpZiAodmFsdWUu
aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgICAgIC8vIFRoZSB2YWx1ZSBjdXJyZW50Q29sb3IgaGFzIGltcGxpY2l0ZWx5IHRoZSBzYW1l
IHNpZGUgZWZmZWN0LiBJdCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiBjb2xvciwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCmluZGV4IDdkZjdhNzVhYWQwMDhlOTU5YTA5
NDc1M2JmY2RlM2Y2MzE0NjY2ZWMuLmUyOTNiYTY5M2IwNDU0ZjcwYTBjNWY3ZDZhMDkzYjBhNmNl
MzI2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcApAQCAtMTg1
LDcgKzE4NSw3IEBAIGJvb2wgUHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVk
UHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRpZXMsIENhc2NhCiAgICAgICAgIGlmIChtX2luY2x1
ZGVkUHJvcGVydGllcyA9PSBJbmNsdWRlZFByb3BlcnRpZXM6OkluaGVyaXRlZE9ubHkgJiYgIWN1
cnJlbnQuaXNJbmhlcml0ZWQoKSkgewogICAgICAgICAgICAgLy8gSW5oZXJpdGVkIG9ubHkgbW9k
ZSBpcyB1c2VkIGFmdGVyIG1hdGNoZWQgcHJvcGVydGllcyBjYWNoZSBoaXQuCiAgICAgICAgICAg
ICAvLyBBIG1hdGNoIHdpdGggYSB2YWx1ZSB0aGF0IGlzIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHNo
b3VsZCBuZXZlciBoYXZlIGJlZW4gY2FjaGVkLgotICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50
LnZhbHVlKCktPmlzSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWN1cnJl
bnQudmFsdWUoKS0+aXNJbmhlcml0VmFsdWUoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogICAgICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjdXJyZW50LmlkKCk7
CkBAIC0zMDgsNyArMzA4LDcgQEAgUHJvcGVydHlDYXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVydHlD
YXNjYWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUoRGlyZWMKICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBtYXRjaGVkUHJvcGVydGllcyA6IGRlY2xhcmF0aW9uc0ZvckNhc2NhZGVM
ZXZlbChtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWwpKSB7CiAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwLCBjb3VudCA9IG1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMtPnByb3Bl
cnR5Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgICAgICAgICBhdXRvIHByb3Bl
cnR5ID0gbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy0+cHJvcGVydHlBdChpKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXByb3BlcnR5LnZhbHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAg
ICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LnZhbHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSB8
fCBwcm9wZXJ0eS52YWx1ZSgpLT5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIHN3aXRjaCAocHJvcGVydHkuaWQoKSkgewog
ICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXcml0aW5nTW9kZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDNiYTJkOTZlZDczNDJhMDU0OTljNzA3MmJhNTcz
NmI2M2IyZmIxNTMuLjlkNmM2YjQzOTkwYThhOWJlMTBiNjIyNzNkMDc5MmI5OGJlNThhOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZv
aWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgdmFs
dWUsIFNlbGVjdG9yQ2hlY2tlcjo6CiAgICAgICAgIGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCA9
IG1fc3RhdGUuZG9jdW1lbnQoKS5nZXRDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5n
ZXQobmFtZSk7CiAgICAgfQogCi0gICAgYm9vbCBpc0luaGVyaXQgPSB2YWx1ZVRvQXBwbHktPmlz
SW5oZXJpdGVkVmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhl
cml0OworICAgIGJvb2wgaXNJbmhlcml0ID0gdmFsdWVUb0FwcGx5LT5pc0luaGVyaXRWYWx1ZSgp
IHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQ7CiAgICAgYm9vbCBp
c0luaXRpYWwgPSB2YWx1ZVRvQXBwbHktPmlzSW5pdGlhbFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVy
dHlWYWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbDsKIAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVl
VG9BcHBseS0+aXNVbnNldFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1Zh
bHVlVW5zZXQ7CkBAIC0zNjEsOCArMzYxLDggQEAgUmVmPENTU1ZhbHVlPiBCdWlsZGVyOjpyZXNv
bHZlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZSYgdmFsdWUpCiAgICAg
Ly8gSWYgdGhlIGNhc2NhZGUgaGFzIGFscmVhZHkgYXBwbGllZCB0aGlzIGlkLCB0aGVuIHdlIGRl
dGVjdGVkIGEgY3ljbGUsIGFuZCB0aGlzIHZhbHVlIHNob3VsZCBiZSB1bnNldC4KICAgICBpZiAo
IXZhcmlhYmxlVmFsdWUgfHwgbV9zdGF0ZS5tX2FwcGxpZWRQcm9wZXJ0aWVzLmdldChwcm9wZXJ0
eUlEKSkgewogICAgICAgICBpZiAoQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJv
cGVydHlJRCkpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5j
cmVhdGVJbmhlcml0ZWRWYWx1ZSgpOwotICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJu
IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVJbmhlcml0KTsK
KyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoQ1NT
VmFsdWVJbml0aWFsKTsKICAgICB9CiAKICAgICByZXR1cm4gKnZhcmlhYmxlVmFsdWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCmluZGV4IDViYzI2NWE2MzdkNDI1
NTM0Mzg1YTBjOWM1MjE4NDY4MTkwOWQwMmEuLjQyMmEzYjk1MWYwYmYwYTAzNTk5YzZkMGEzNDJk
NDAxNjdlYzdhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3Bw
CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgICAgICAv
LyBSYXRoZXIgdGhhbiBpbnZhc2l2ZWx5IG1vZGlmeWluZyB0aGUgcGFyc2VyIGZvciB0aGUgcHJv
cGVydGllcyB0byBoYXZlIGEgc3BlY2lhbCBtb2RlLCB3ZSBjYW4gc2ltcGx5IGRldGVjdCB0aGUg
ZXJyb3IgY29uZGl0aW9uIGFmdGVyLXRoZS1mYWN0IGFuZAogICAgICAgICAgICAgLy8gYXZvaWQg
aXQgZXhwbGljaXRseS4KICAgICAgICAgICAgIGlmIChhdXRvIHBhcnNlZFZhbHVlID0gcHJvcGVy
dGllcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SWQpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKHBhcnNlZFZhbHVlLT5pc0dsb2JhbEtleXdvcmQoKSkKKyAgICAgICAgICAgICAgICBpZiAo
cGFyc2VkVmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQoKSkKICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydGllcy5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlkKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdGFibGUtcnVsZXMtYXR0cmli
dXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy90YWJsZS1ydWxlcy1hdHRyaWJ1dGUuaHRt
bAppbmRleCAyMDI0MmQzYmMxOTg1ZWE4YmVjNjI4YjhlNzFhNzQxMWNhZmU4ODk4Li4wZDExMjE3
NTMxMTIzYTBlMzFkZDU3NjNiOGM5YjMyZjQyYWQ4MGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy90YWJsZS1ydWxlcy1hdHRyaWJ1dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy90YWJsZS1ydWxlcy1hdHRyaWJ1dGUuaHRtbApAQCAtODYsNCArODYsNCBAQAogICAg
ICAgICAgICAgPC90cj4KICAgICAgICAgPC90YWJsZT4KICAgICA8L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443400</attachid>
            <date>2021-11-05 09:12:39 -0700</date>
            <delta_ts>2021-11-05 10:32:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211105181237.patch</filename>
            <type>text/plain</type>
            <size>227342</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzMzQzMTliMTBhMTFm
NGExMjBkNDgzZGQzMjg5YWY4ZGUyOGY4ZS4uNmVmYmZlY2JkNTQ5N2Y3ZWZjNTBiZDJjNzVmMzg4
YWM2YmIxODNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyOCBAQAorMjAyMS0xMS0wNSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
eSBjYW4gYWxsIGJlIGhhbmRsZWQgYnkgQ1NTUHJpbWl0aXZlVmFsdWUuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6
CisKKyAgICAgICAgQXZvaWQgY2hhbmdpbmcgdGhlIGNsYXNzIHR5cGUgdmlzaWJsZSBpbiBDU1NP
TS4KKworICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaGVyaXRlZFZh
bHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppbml0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpzdHJpbmdWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzIGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKworICAgICAgICBGb3Ig
ImluaXRpYWwiIHdlIG5lZWQgYW4gZXh0cmEgYml0IHRvIGluZGljYXRlIGlmIGl0IHdhcyBpbXBs
aWNpdCB2YWx1ZS4gVGhlcmUgaXMKKyAgICAgICAgYSBidW5jaCBvZiBtZWNoYW5pY2FsIGNoYW5n
ZXMgaW4gQ1NTUHJpbWl0aXZlVmFsdWUgdG8gbWFrZSB0aGF0IGhhcHBlbi4KKworICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZmxlY3Rpb25EaXJlY3Rpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtbkZpbGwgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVt
blNwYW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFByaW50Q29sb3JBZGp1c3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEJvcmRlclN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Q29udHJvbFBhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEJhY2tmYWNlVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbEF0dGFjaG1lbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxCb3ggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxSZXBlYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJv
eFBhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveEFsaWdubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJyZWFrIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hTaXppbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveERpcmVjdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94
TGluZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveE9yaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQ2FwdGlvblNpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENsZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBEaXNwbGF5
VHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRW1wdHlDZWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGbGV4RGlyZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGlnbkNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZsZXhXcmFwIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGbG9hdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PEhh
bmdpbmdQdW5jdHVhdGlvbj4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGlzdFN0eWxlUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpc3RTdHlsZVR5cGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcmdp
bkNvbGxhcHNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBNYXJxdWVlQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcnF1ZWVEaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE5CU1BNb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNj
cm9sbEJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCcmVha0JldHdlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrSW5zaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBQb3NpdGlvblR5cGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlc2l6ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGFibGVMYXlv
dXRUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0QWxpZ25Nb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0SnVzdGlmeSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PFRleHREZWNv
cmF0aW9uPiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0U2VjdXJpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHREZWNvcmF0aW9uU2tpcEluayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRpIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVXNlck1vZGlm
eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VXNlclNlbGVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVmVydGljYWxBbGlnbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2hpdGVTcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV29yZEJyZWFrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvd1dy
YXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0Q29tYmluZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUnVieVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3cg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc0ZpbGwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRhdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUG9pbnRlckV2ZW50cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgS2Vy
bmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgT2JqZWN0Rml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2FwcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5
cGhlbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIExpbmVTbmFwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBMaW5lQWxpZ24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8U3BlYWtBcz4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgSXNvbGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQ2FwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBMaW5lSm9pbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgV2luZFJ1bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEFsaWdubWVudEJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3JkZXJDb2xsYXBzZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJ
bWFnZVJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgSW5wdXRTZWN1cml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtU3R5bGUzRCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtQm94IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5B
eGlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDb2x1bW5Qcm9ncmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQnVmZmVyZWRSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9ySW50ZXJwb2xhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JS
ZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIERvbWluYW50QmFzZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNoYXBlUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QW5jaG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBWZWN0b3JFZmZlY3Qg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1h
c2tUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBJdGVtUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93QWxpZ25tZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb250ZW50UG9zaXRpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnREaXN0
cmlidXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRab29tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RyaWN0bmVzcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU2Ny
b2xsU25hcEF4aXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RvcCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhaWxpbmdXb3Jk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBB
cHBsZVBheUJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJpYW50UG9zaXRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRW
YXJpYW50Q2FwcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250T3B0aWNhbFNpemluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udExvYWRpbmdC
ZWhhdmlvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTWF0aFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUmV2ZXJ0VmFsdWUuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVkVmFsdWUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5pdGlhbFZhbHVl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFs
dWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0
VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzR2xv
YmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVl
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUltcGxpY2l0SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVQb29sLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVFeHBsaWNpdElu
aXRpYWxWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNy
ZWF0ZVVuc2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29s
OjpjcmVhdGVSZXZlcnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZTo6aXNDU1NXaWRlS2V5d29yZCBjb25zdCk6CisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1ZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6cGFnZUJyZWFrUHJvcGVydHlW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjph
ZGRQYXJzZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VLZXl3b3JkVmFsdWUpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmg6CisgICAgICAgIChXZWJDb3JlOjppc0NTU1dp
ZGVLZXl3b3JkKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjphZGRQcm9wZXJ0eSk6CisgICAg
ICAgIChXZWJDb3JlOjptYXliZUNvbnN1bWVDU1NXaWRlS2V5d29yZCk6CisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjppc0NTU1dpZGVLZXl3b3JkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29u
dmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVy
dGVyQ2FjaGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKEhUTUxDb252
ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAqIGh0bWwv
SFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50
OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNv
bGxlY3Rvcjo6YWRkTWF0Y2hlZFByb3BlcnRpZXMpOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5
Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjph
ZGRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpyZXNv
bHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlcjo6cmVzb2x2ZVZhbHVlKToK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorCiAyMDIxLTExLTA0ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRmFjdG9yIG91dCBk
aWREcmF3IC8gZGlkRHJhd0VudGlyZUNhbnZhcyBjYWxscyBpbiBjYW52YXMgZHJhd2luZyBmdW5j
dGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggOGRhMjRiNzhkYTU3ZGMzYmQyY2VkMTE4NGMyZWRkZmYw
YjhkZTI0Ni4uNmU4ZGFiNzY1MmY1YjM0YmZhYWZlODNiZmQ3NzIzYWNmMDBkYzgxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTY5MCw4ICs2OTAsNiBAQCBjc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5j
cHAKIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAogY3NzL0NTU0ltYWdlVmFsdWUuY3BwCiBjc3Mv
Q1NTSW1wb3J0UnVsZS5jcHAKLWNzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAKLWNzcy9DU1NJbml0
aWFsVmFsdWUuY3BwCiBjc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcAogY3NzL0NTU0tleWZyYW1lc1J1
bGUuY3BwCiBjc3MvQ1NTTGF5ZXJSdWxlLmNwcApAQCAtNzA3LDcgKzcwNSw2IEBAIGNzcy9DU1NQ
cm9wZXJ0eS5jcHAKIGNzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwCiBjc3MvQ1NTUmVmbGVj
dFZhbHVlLmNwcAogY3NzL0NTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5jcHAKLWNzcy9DU1NS
ZXZlcnRWYWx1ZS5jcHAKIGNzcy9DU1NSdWxlLmNwcAogY3NzL0NTU1J1bGVMaXN0LmNwcAogY3Nz
L0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcApAQCAtNzIzLDcgKzcyMCw2IEBAIGNzcy9DU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmNwcAogY3NzL0NTU1RvU3R5bGVNYXAuY3BwCiBjc3MvQ1NTVW5p
Y29kZVJhbmdlVmFsdWUuY3BwCiBjc3MvQ1NTVW5pdHMuY3BwCi1jc3MvQ1NTVW5zZXRWYWx1ZS5j
cHAKIGNzcy9DU1NWYWx1ZS5jcHAKIGNzcy9DU1NWYWx1ZUxpc3QuY3BwCiBjc3MvQ1NTVmFsdWVQ
YWlyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGU5OTYzNzIzOGFhZjQ2YTc5OTdjMmM4ZGU0MTZiNGNhY2Q0NjU5MTEuLjAx
N2E3OTQxNWNkMjQ4NjI4MmM4Yzc2MGU4YWYxYTQwMDZiNmMzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MzEsMTAgKzM1
MzEsOCBAQAogCQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNEMzBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZDRkYwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODBFNkNENTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODBFNkQwMDBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE4MEU2
RDAxMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi87IH07CiAJCUE4MEU2RDAzMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NNZWRpYVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MEU2Q0Q5MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NNZWRpYVJ1bGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODBFNkQwNDBB
MTk4OUNBMDA3RkI4QzUgLyogQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREEwQTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBODBFNkQw
ODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNERTBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTSW5pdGlhbFZhbHVlLmggKi87IH07CiAJCUE4MEU2RDBDMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MEU2Q0UyMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NTdHlsZVJ1bGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODBFNkQwRDBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODBFNkRGQzBBMTk5
MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkRGQTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQ
cm9wZXJ0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTQxNTQsOCArNDE1Miw2IEBACiAJCUJDNzcyRTEzMTMzMTYyMEMwMDFFQzlDRSAvKiBD
U1NMaW5lQm94Q29udGFpblZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzc3MkUxMjEzMzE2MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRh
aW5WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDNzc5RTE0MUJCMjE1QkIwMENBQThCRiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3OUUxMzFC
QjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzc5RTE3MUJCMjI3Q0EwMENB
QThCRiAvKiBTdHlsZUN1c3RvbVByb3BlcnR5RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxl
Q3VzdG9tUHJvcGVydHlEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQkM3RDhGRjAxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkVF
MUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggKi87IH07Ci0JCUJDN0Q4RkY0MUJE
MUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3RDhGRjIxQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1Jl
dmVydFZhbHVlLmggKi87IH07CiAJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9i
c2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDN0ZBNjIxMEQxRjBDQkQwMERC
MjJBOSAvKiBMaXZlTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDN0ZBNjFGMEQxRjBDQkQwMERCMjJBOSAvKiBMaXZlTm9kZUxpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYy
RDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBT
dGF0aWNOb2RlTGlzdC5oICovOyB9OwpAQCAtMTMxOTYsNyArMTMxOTIsNiBAQAogCQlBODBFNkND
MzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NGb250VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgwRTZDQzQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODBFNkNDNTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NTdHlsZVJ1bGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBODBFNkNDNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5o
ZXJpdGVkVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENT
U0luaGVyaXRlZFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZD
QzcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTRm9udFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgwRTZDQzgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGVMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NSdWxlTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNDQTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU2hhZG93
VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1NoYWRv
d1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjExLDEzICsxMzIw
NiwxMCBAQAogCQlBODBFNkNENDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTSW1hZ2VWYWx1ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUHJv
cGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDRDYwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODBFNkNENzBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENTU0luaGVyaXRlZFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4MEU2Q0Q4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0luaXRpYWxWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q5MEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NNZWRpYVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEQTBBMTk4
OUNBMDA3RkI4QzUgLyogQ291bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEQjBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENTU1ByaW1pdGl2ZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1J1bGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBODBFNkNERTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5p
dGlhbFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NJbml0aWFs
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREYwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU1J1bGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NSdWxlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MEU2Q0UyMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NTdHlsZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU1N0eWxlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBODBFNkNFMzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQ1OTMsMTAgKzE0NTg1LDYgQEAKIAkJQkM3NzlFMTMxQkIyMTVCQjAwQ0FBOEJG
IC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzc3OUUxNTFCQjIyNkEyMDBDQUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVDdXN0b21Qcm9wZXJ0eURh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3QjJBRjgwNDUwODI0MTAwQTgw
MDBGIC8qIFNjcm9sbGJhci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxiYXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUJDN0Q4RkVEMUJEMDNCNjQwMEZGRTU0MCAvKiBD
U1NVbnNldFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENT
U1Vuc2V0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZFRTFC
RDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDU1NVbnNldFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUJDN0Q4RkYxMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSZXZlcnRWYWx1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZl
cnRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NSZXZlcnRWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQw
ODEgLyogSW1hZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW1hZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzdGQTYxRTBE
MUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExpdmVOb2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDN0ZBNjFGMEQxRjBDQkQwMERCMjJBOSAvKiBMaXZlTm9kZUxpc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGl2ZU5vZGVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODYxMSwxMSArMTg1OTksMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2
MDAwN0MzOTgzIC8qIGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5
RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgx
OTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkw
MDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAogCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcx
NTlFOCAvKiBqc2MgKi8sCi0JCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8s
CiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAog
CQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJ
MUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI5
OTAwLDEwICsyOTg4OCw2IEBACiAJCQkJQTgwRTZDQzEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lt
cG9ydFJ1bGUuY3BwICovLAogCQkJCUE4MEU2Q0NDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBv
cnRSdWxlLmggKi8sCiAJCQkJODVDNTZDQTkwQUE4OUU2NjAwRDk1NzU1IC8qIENTU0ltcG9ydFJ1
bGUuaWRsICovLAotCQkJCUE4MEU2Q0M2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRW
YWx1ZS5jcHAgKi8sCi0JCQkJQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRl
ZFZhbHVlLmggKi8sCi0JCQkJQTgwRTZDRDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxW
YWx1ZS5jcHAgKi8sCi0JCQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxW
YWx1ZS5oICovLAogCQkJCTMxMjg4RTZFMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1
bGUuY3BwICovLAogCQkJCTMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1
bGUuaCAqLywKIAkJCQkzMTZGRTA5MTBFNkNDRDdGMDBCRjYwODggLyogQ1NTS2V5ZnJhbWVSdWxl
LmlkbCAqLywKQEAgLTI5OTQ3LDggKzI5OTMxLDYgQEAKIAkJCQlCQzVBMTJERTBEQzA0MTQ4MDBD
OUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmggKi8sCiAJCQkJNEIxNzA2NjQyMTYyQjQyRjAwRTU3
OEJCIC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5jcHAgKi8sCiAJCQkJNEJEQTNGRkIy
MTUxQjZGNDAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oICovLAotCQkJ
CUJDN0Q4RkYxMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5jcHAgKi8sCi0JCQkJ
QkM3RDhGRjIxQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggKi8sCiAJCQkJQTgw
RTZDREMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuY3BwICovLAogCQkJCUE4MEU2Q0UzMEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi8sCiAJCQkJMTRDRjdBNzAwOUY1Q0Y5QTAwRUIz
NjY1IC8qIENTU1J1bGUuaWRsICovLApAQCAtMjk5ODcsOCArMjk5NjksNiBAQAogCQkJCTBGNkI3
MDc3MjM3QkMxMkYwMDUyQ0E0NyAvKiBDU1NVbml0cy5oICovLAogCQkJCUE4MEU2Q0NFMEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NVbmtub3duUnVsZS5oICovLAogCQkJCTg1QzU2Q0FEMEFBODlGRTAw
MEQ5NTc1NSAvKiBDU1NVbmtub3duUnVsZS5pZGwgKi8sCi0JCQkJQkM3RDhGRUQxQkQwM0I2NDAw
RkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuY3BwICovLAotCQkJCUJDN0Q4RkVFMUJEMDNCNjQwMEZG
RTU0MCAvKiBDU1NVbnNldFZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVC
IC8qIENTU1ZhbHVlLmNwcCAqLywKIAkJCQlBODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
VmFsdWUuaCAqLywKIAkJCQlCQ0VBNDc4QzA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTVmFsdWVLZXl3
b3Jkcy5pbiAqLywKQEAgLTMyMjYzLDggKzMyMjQzLDYgQEAKIAkJCQk5MzkzRTYwMDE1MUE5OUYy
MDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZD
RkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MEU2Q0Y2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAq
LywKLQkJCQlBODBFNkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBp
biBIZWFkZXJzICovLAotCQkJCUE4MEU2RDA4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFs
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBD
U1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2
MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTQxMDdBNDI2
Q0I2NkY4MDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTMy
MzE5LDcgKzMyMjk3LDYgQEAKIAkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJv
cGVydHlTb3VyY2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVBMTJFMDBEQzA0MTQ4MDBD
OUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBNDAwMTIx
NTFCNkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQzdEOEZGNDFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJBNTM4QTI4MjZGMDEwM0MwMDk2NUZDOCAvKiBDU1NSb3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDBEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVs
ZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzIzNTMsNyArMzIzMzAsNiBAQAogCQkJCTRCQUZE
MEUxMjE5MjQyQTAwMEMwQUI2NCAvKiBDU1NVbml0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEJBRkQwRDkyMTkyMUVBMDAwQzBBQjY0IC8qIENTU1VucGFyc2VkVmFsdWUuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQkJDMjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBD
U1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEwOUQxMzA0MzAwMEU2MUQ3
IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNw
cAppbmRleCBhN2UxMzRmZWFkZTJjOGI0YTBjZTE1NTk1MDQ3M2Y2MzA2OTc3NWJkLi42ZGNmOGE0
Mzc2MjhkZWVjZDYyZDVkYzI5NjhlNWE5MDdhMzE2ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNw
cApAQCAtNTEsNyArNTEsNyBAQCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNHbG9iYWxPYmpl
Y3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8RAogewogICAgIGlmICh2
YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKLSAgICBp
ZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZl
VmFsdWUoKSAmJiAhZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KHZhbHVl
LmdldCgpKS5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFs
dWUpKTsKICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDJmMmUwODliYWIxNDY1NzQ2
Y2Y3MzNmNjZkOTFiNTUxMGFiNmQxZmMuLjIxOTUyM2UxMzA2MzJkZjNjZDdjNjM4ZDg1MTE2NTdk
YTczY2ZiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0xNjI4LDcgKzE2MjgsNyBAQCBzdGF0aWMgUmVmPENTU1ZhbHVl
PiByZW5kZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9u
U3R5bAogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAg
cmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1ZhbHVlSW5pdGlhbCk7CiB9CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHRE
ZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rIHRleHREZWNvcmF0
aW9uU2tpcEluaykKQEAgLTE2NDMsNyArMTY0Myw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+
IHJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5r
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICByZXR1
cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFs
dWVJbml0aWFsKTsKIH0KIAogc3RhdGljIFJlZjxDU1NWYWx1ZT4gdGV4dFVuZGVybGluZU9mZnNl
dFRvQ1NTVmFsdWUoY29uc3QgVGV4dFVuZGVybGluZU9mZnNldCYgdGV4dFVuZGVybGluZU9mZnNl
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZDI0ODk4MWIxYWQyNDRiZWNkNzM0ODEzMzJiN2E4N2FhY2U4OTdm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr
MCwwIEBACi0vKioKLSAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
LSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDU1NJbmhlcml0
ZWRWYWx1ZS5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotU3RyaW5nIENTU0luaGVyaXRlZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gImluaGVyaXQiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI1MmI5MTU0YWEyMjhkNTEwOWViYjQwMGYyZTk5ZGRkZWVmZGQ0NDQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCww
IEBACi0vKgotICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU0luaGVyaXRlZFZhbHVlIGZpbmFsIDogcHVibGlj
IENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0Owot
Ci0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTSW5oZXJpdGVkVmFsdWUmKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NJ
bmhlcml0ZWRWYWx1ZT47Ci0gICAgQ1NTSW5oZXJpdGVkVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcp
Ci0gICAgICAgIDogQ1NTVmFsdWUoSW5oZXJpdGVkQ2xhc3MpCi0gICAgewotICAgICAgICBtYWtl
U3RhdGljKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShDU1NJbmhlcml0ZWRWYWx1ZSwgaXNJbmhlcml0ZWRW
YWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmQxNDM2ZTdmMWVjYTY0NmY4NjhkOTg4Zjc2NjI0NmVmNzYxMzMw
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMzICsw
LDAgQEAKLS8qKgotICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0luaXRpYWxW
YWx1ZS5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotU3RyaW5nIENTU0luaXRpYWxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuICJpbml0aWFsIl9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDk0ZmI3NmYyNTFmMjQ0ZjE1MWNhNzI4MTIyYmMxMmE0NGE5YmE3YTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0luaXRpYWxWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAq
IChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBDU1NJbml0aWFsVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewot
cHVibGljOgotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGlz
SW1wbGljaXQoKSBjb25zdCB7IHJldHVybiBtX2lzSW1wbGljaXQ7IH0KLQotICAgIGJvb2wgZXF1
YWxzKGNvbnN0IENTU0luaXRpYWxWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJp
dmF0ZToKLSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT47Ci0g
ICAgQ1NTSW5pdGlhbFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBib29sIGltcGxpY2l0KQotICAg
ICAgICA6IENTU1ZhbHVlKEluaXRpYWxDbGFzcykKLSAgICAgICAgLCBtX2lzSW1wbGljaXQoaW1w
bGljaXQpCi0gICAgewotICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAgfQotCi1wcml2YXRlOgot
ICAgIGJvb2wgbV9pc0ltcGxpY2l0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1T
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShDU1NJbml0aWFsVmFsdWUsIGlzSW5pdGlh
bFZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBh
OWQwMjI2ZjljZGQ1MDU3MmEyZGJjOGE1OTkwODY5NzE3MTY4NGJjLi5kYTUyZjg3N2MwNjFmMGY0
OTA3MzhjMDRkNjc1ZjIwM2RhMmZlMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5jcHAKQEAgLTI2Miw3ICsyNjIsNiBAQCBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
cHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKIHN0YXRpYyBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZU5hbWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewogICAgIEFTU0VSVF9BUkco
dmFsdWVJRCwgKHZhbHVlSUQgPj0gZmlyc3RDU1NWYWx1ZUtleXdvcmQgJiYgdmFsdWVJRCA8PSBs
YXN0Q1NTVmFsdWVLZXl3b3JkKSk7Ci0KICAgICByZXR1cm4gZ2V0VmFsdWVOYW1lQXRvbVN0cmlu
Zyh2YWx1ZUlEKTsKIH0KIApAQCAtMjcwLDcgKzI2OSwxNCBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0gdmFsdWVJRDsKKyAgICBzZXRWYWx1
ZUlESW50ZXJuYWwodmFsdWVJRCk7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShJbXBsaWNpdEluaXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2
ZUNsYXNzKQoreworICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOworICAgIHNldEltcGxpY2l0SW5pdGlhbEludGVybmFsKCk7CiB9CiAKIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCkBA
IC0zNTAsNiArMzU2LDEyIEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShT
dGF0aWNDU1NWYWx1ZVRhZywgQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIG1ha2VTdGF0aWMoKTsK
IH0KIAorQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVl
VGFnLCBJbXBsaWNpdEluaXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKElt
cGxpY2l0SW5pdGlhbFZhbHVlKQoreworICAgIG1ha2VTdGF0aWMoKTsKK30KKwogQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBjb25zdCBDb2xv
ciYgY29sb3IpCiAgICAgOiBDU1NQcmltaXRpdmVWYWx1ZShjb2xvcikKIHsKQEAgLTM2Nyw3ICsz
NzksNyBAQCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KGNvbnN0IExlbmd0aCYgbGVuZ3Ro
KQogICAgIHN3aXRjaCAobGVuZ3RoLnR5cGUoKSkgewogICAgIGNhc2UgTGVuZ3RoVHlwZTo6QXV0
bzoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IExlbmd0aFR5cGU6OkZpeGVkOgogICAgICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1BYKTsKQEAgLTM3NSwyNyArMzg3LDI3IEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFs
dWU6OmluaXQoY29uc3QgTGVuZ3RoJiBsZW5ndGgpCiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IExlbmd0aFR5cGU6OkludHJpbnNpYzoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlSW50cmluc2ljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnRyaW5z
aWMpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpNaW5JbnRyaW5zaWM6
CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pbkludHJpbnNpYzsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWluSW50cmluc2ljKTsKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgTGVuZ3RoVHlwZTo6TWluQ29udGVudDoKICAgICAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTWluQ29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTWluQ29udGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5
cGU6Ok1heENvbnRlbnQ6CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1heENv
bnRlbnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1heENvbnRlbnQpOwog
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpGaWxsQXZhaWxhYmxlOgogICAg
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGVuZ3RoVHlwZTo6Rml0Q29udGVudDoKICAgICAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRml0Q29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlRml0Q29udGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IExlbmd0aFR5cGU6OlBlcmNlbnQ6CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfUEVSQ0VOVEFHRSk7CkBAIC0xMDMxLDcgKzEwNDMsNyBAQCBTdHJpbmcgQ1NT
UHJpbWl0aXZlVmFsdWU6OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRk9OVF9GQU1JTFk6CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLmZvbnRGYW1pbHktPmZh
bWlseU5hbWU7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEOgotICAgICAgICBy
ZXR1cm4gdmFsdWVOYW1lKG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgIHJldHVybiB2YWx1ZU5h
bWUodmFsdWVJRCgpKTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFJPUEVSVFlfSUQ6CiAg
ICAgICAgIHJldHVybiBwcm9wZXJ0eU5hbWUobV92YWx1ZS5wcm9wZXJ0eUlEKTsKICAgICBkZWZh
dWx0OgpAQCAtMTIwNSw3ICsxMjE3LDcgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0
aXZlVmFsdWU6OmZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19VUkk6CiAgICAgICAgIHJldHVybiBzZXJpYWxpemVVUkwobV92YWx1
ZS5zdHJpbmcpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoKLSAgICAgICAg
cmV0dXJuIHZhbHVlTmFtZShtX3ZhbHVlLnZhbHVlSUQpOworICAgICAgICByZXR1cm4gdmFsdWVO
YW1lKHZhbHVlSUQoKSk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BST1BFUlRZX0lEOgog
ICAgICAgICByZXR1cm4gcHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0FUVFI6CkBAIC0xMzU4LDcgKzEzNzAsNyBAQCBib29sIENTU1By
aW1pdGl2ZVZhbHVlOjplcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25z
dAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QUk9QRVJUWV9JRDoKICAgICAgICAgcmV0dXJu
IHByb3BlcnR5TmFtZShtX3ZhbHVlLnByb3BlcnR5SUQpID09IHByb3BlcnR5TmFtZShvdGhlci5t
X3ZhbHVlLnByb3BlcnR5SUQpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoK
LSAgICAgICAgcmV0dXJuIHZhbHVlTmFtZShtX3ZhbHVlLnZhbHVlSUQpID09IHZhbHVlTmFtZShv
dGhlci5tX3ZhbHVlLnZhbHVlSUQpOworICAgICAgICByZXR1cm4gdmFsdWVOYW1lKHZhbHVlSUQo
KSkgPT0gdmFsdWVOYW1lKG90aGVyLnZhbHVlSUQoKSk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NUUklORzoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDdXN0b21JZGVudDoKICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVVJJOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aAppbmRleCBiNzQ3OWM3YmY3ZDk1NDc1MDg3OTI5NDk2ZjRkNGIxYTllZDU4ODYxLi5mMGI5N2Vj
ZjEzODY4Y2FmNDhmODQxYzU5ZDRjZDAxZWIxMzBhZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaApAQCAtMTE1LDYgKzExNSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0ZsZXgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNT
U19GUjsgfQogICAgIGJvb2wgaXNDdXN0b21JZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2
ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkN1c3RvbUlkZW50OyB9CiAKKyAgICBib29sIGlz
SW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NW
YWx1ZUluaXRpYWw7IH0KKyAgICBib29sIGlzSW1wbGljaXRJbml0aWFsKCkgY29uc3QgeyByZXR1
cm4gaXNJbml0aWFsKCkgJiYgaXNJbXBsaWNpdEludGVybmFsKCk7IH0KKyAgICBib29sIGlzSW5o
ZXJpdCgpIGNvbnN0IHsgcmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NWYWx1
ZUluaGVyaXQ7IH0KKyAgICBib29sIGlzVW5zZXQoKSBjb25zdCB7IHJldHVybiBpc1ZhbHVlSUQo
KSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVVbnNldDsgfQorICAgIGJvb2wgaXNSZXZlcnQoKSBj
b25zdCB7IHJldHVybiBpc1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7
IH0KKwogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIo
Q1NTVmFsdWVJRCB2YWx1ZUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZh
bHVlKHZhbHVlSUQpKTsgfQogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0
ZUlkZW50aWZpZXIoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKHByb3BlcnR5SUQpKTsgfQogCkBAIC0xNzUsNyArMTgxLDcg
QEAgcHVibGljOgogICAgIFF1YWQqIHF1YWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2
ZVVuaXRUeXBlKCkgIT0gQ1NTVW5pdFR5cGU6OkNTU19RVUFEID8gbnVsbHB0ciA6IG1fdmFsdWUu
cXVhZDsgfQogICAgIFJlY3QqIHJlY3RWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVu
aXRUeXBlKCkgIT0gQ1NTVW5pdFR5cGU6OkNTU19SRUNUID8gbnVsbHB0ciA6IG1fdmFsdWUucmVj
dDsgfQogICAgIENTU0Jhc2ljU2hhcGUqIHNoYXBlVmFsdWUoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVVbml0VHlwZSgpICE9IENTU1VuaXRUeXBlOjpDU1NfU0hBUEUgPyBudWxscHRyIDogbV92
YWx1ZS5zaGFwZTsgfQotICAgIENTU1ZhbHVlSUQgdmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHBy
aW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCA/IG1fdmFsdWUu
dmFsdWVJRCA6IENTU1ZhbHVlSW52YWxpZDsgfQorICAgIENTU1ZhbHVlSUQgdmFsdWVJRCgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCA/IHZhbHVlSURJbnRlcm5hbCgpIDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgb3BlcmF0b3IgVCgpIGNvbnN0OyAvLyBEZWZpbmVkIGlu
IENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAogCkBAIC0xOTgsOSArMjA0LDEzIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQ1NTVmFsdWVQb29sOworICAgIGZyaWVu
ZCBjbGFzcyBTdGF0aWNDU1NWYWx1ZVBvb2w7CiAgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3ll
ZDxDU1NQcmltaXRpdmVWYWx1ZT47CiAKKyAgICBlbnVtIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFn
IHsgSW1wbGljaXRJbml0aWFsVmFsdWUgfTsKKwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKENTU1Zh
bHVlSUQpOworICAgIENTU1ByaW1pdGl2ZVZhbHVlKEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKTsK
ICAgICBDU1NQcmltaXRpdmVWYWx1ZShDU1NQcm9wZXJ0eUlEKTsKICAgICBDU1NQcmltaXRpdmVW
YWx1ZShjb25zdCBDb2xvciYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IExlbmd0aCYp
OwpAQCAtMjEwLDYgKzIyMCw3IEBAIHByaXZhdGU6CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoZG91
YmxlLCBDU1NVbml0VHlwZSk7CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1
ZVRhZywgQ1NTVmFsdWVJRCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVU
YWcsIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0
aWNDU1NWYWx1ZVRhZywgY29uc3QgQ29sb3ImKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0
aWNDU1NWYWx1ZVRhZywgZG91YmxlLCBDU1NVbml0VHlwZSk7CiAKQEAgLTI0NCw5ICsyNTUsMzMg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNSZXNvbHV0aW9uKENTU1Vu
aXRUeXBlKTsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VM
ZW5ndGgoQ1NTVW5pdFR5cGUpOwogCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBpbXBs
aWNpdEJpdE1hc2sgPSAweDEwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgdmFs
dWRJRE1hc2sgPSAweGZmZmY7CisKKyAgICB2b2lkIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUlEIHZhbHVlSUQpCisgICAgeworICAgICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworICAgICAg
ICBtX3ZhbHVlLnZhbHVlSURBbmRJbXBsaWNpdEJpdCA9IHZhbHVlSUQ7CisgICAgfQorICAgIHZv
aWQgc2V0SW1wbGljaXRJbml0aWFsSW50ZXJuYWwoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEQW5kSW1wbGljaXRCaXQgPSBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oQ1NTVmFsdWVJbml0aWFsKSB8IGltcGxpY2l0Qml0TWFzazsKKyAg
ICB9CisgICAgQ1NTVmFsdWVJRCB2YWx1ZUlESW50ZXJuYWwoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1Zh
bHVlSUQ+KG1fdmFsdWUudmFsdWVJREFuZEltcGxpY2l0Qml0ICYgdmFsdWRJRE1hc2spOworICAg
IH0KKyAgICBib29sIGlzSW1wbGljaXRJbnRlcm5hbCgpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXNWYWx1ZUlEKCkpOworICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUlEQW5kSW1w
bGljaXRCaXQgJiBpbXBsaWNpdEJpdE1hc2s7CisgICAgfQorICAgIAogICAgIHVuaW9uIHsKICAg
ICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEOwotICAgICAgICBDU1NWYWx1ZUlEIHZhbHVl
SUQ7CisgICAgICAgIHVpbnQzMl90IHZhbHVlSURBbmRJbXBsaWNpdEJpdDsKICAgICAgICAgZG91
YmxlIG51bTsKICAgICAgICAgU3RyaW5nSW1wbCogc3RyaW5nOwogICAgICAgICBDb3VudGVyKiBj
b3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdz
LmgKaW5kZXggZjY0YmIxNjRiOTYzZWMxODI4ZDA0ZTk3NjI5YzUzZTI0YzA3YzA5OS4uODQ2YjAw
ZjgzYjgxNzYyMjljN2E3NWE5ZDQyYTEzMjMwNGE5MTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0xNDIsMTYgKzE0MiwxNiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUmVm
bGVjdGlvbkRpcmVjdGlvbiBkaXJlYwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBS
ZWZsZWN0aW9uRGlyZWN0aW9uOjpBYm92ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBYm92ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWJvdmUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFJlZmxlY3Rpb25EaXJlY3Rpb246OkJlbG93OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJlbG93OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVCZWxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVmbGVj
dGlvbkRpcmVjdGlvbjo6TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
ZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBSZWZsZWN0aW9uRGlyZWN0aW9uOjpSaWdodDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlUmlnaHQpOwogICAgIH0KIH0KIApAQCAtMTU5LDcgKzE1OSw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWZsZWN0aW9uRGlyZWN0aW9u
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUFib3ZlOgogICAgICAgICByZXR1cm4gUmVmbGVjdGlvbkRpcmVjdGlvbjo6QWJv
dmU7CiAgICAgY2FzZSBDU1NWYWx1ZUJlbG93OgpAQCAtMTgyLDEwICsxODIsMTAgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkZp
bGwgY29sdW1uRmlsbCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGNvbHVtbkZpbGwpIHsKICAgICBjYXNlIENvbHVtbkZp
bGw6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29sdW1uRmlsbDo6QmFsYW5jZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVCYWxhbmNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYWxhbmNl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTkzLDkgKzE5Myw5IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5GaWxs
IGNvbHVtbkZpbGwpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgQ29sdW1uRmlsbCgpIGNvbnN0CiB7CiAgICAgaWYgKHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0g
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCkgewotICAgICAgICBpZiAobV92YWx1ZS52YWx1ZUlE
ID09IENTU1ZhbHVlQmFsYW5jZSkKKyAgICAgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENT
U1ZhbHVlQmFsYW5jZSkKICAgICAgICAgICAgIHJldHVybiBDb2x1bW5GaWxsOjpCYWxhbmNlOwot
ICAgICAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKKyAgICAgICAgaWYg
KHZhbHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHJldHVybiBD
b2x1bW5GaWxsOjpBdXRvOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIw
OCwxMCArMjA4LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShDb2x1bW5TcGFuIGNvbHVtblNwYW4pCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjb2x1bW5TcGFu
KSB7CiAgICAgY2FzZSBDb2x1bW5TcGFuOjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQWxsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENvbHVtblNwYW46Ok5vbmU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIyNCw3ICsyMjQsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uU3Bh
bigpIGNvbnN0CiAKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUFsbDoKICAgICAgICAgcmV0dXJuIENvbHVtblNwYW46OkFsbDsKICAgICBjYXNl
IENTU1ZhbHVlTm9uZToKQEAgLTI0NCwxMCArMjQ0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShQcmludENvbG9yQWRqdXN0IHZhbHVl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAodmFsdWUpIHsKICAgICBjYXNlIFByaW50Q29sb3JBZGp1c3Q6OkV4YWN0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV4YWN0OworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVFeGFjdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJp
bnRDb2xvckFkanVzdDo6RWNvbm9teToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVFY29ub215OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFY29ub215KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBQcmludENvbG9yQWRqdXN0KCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUVjb25vbXk6CiAgICAgICAgIHJldHVybiBQcmludENvbG9yQWRqdXN0OjpFY29ub215Owog
ICAgIGNhc2UgQ1NTVmFsdWVFeGFjdDoKQEAgLTI3NiwzNCArMjc2LDM0IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3JkZXJTdHlsZSBl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm9yZGVyU3R5bGU6Ok5vbmU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6Okhp
ZGRlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhpZGRlbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQm9yZGVyU3R5bGU6Okluc2V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUluc2V0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnNldCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6Okdyb292ZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHcm9vdmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUdyb292ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6
OlJpZGdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZGdlOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSaWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQm9yZGVyU3R5bGU6Ok91dHNldDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVPdXRzZXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU91dHNldCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRvdHRlZDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3R0ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZURvdHRlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5
bGU6OkRhc2hlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEYXNoZWQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURhc2hlZCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OlNvbGlkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNvbGlkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb2xp
ZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRvdWJsZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3VibGU7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZURvdWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMx
MiwxNiArMzEyLDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBCb3JkZXJTdHlsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKSAvLyBWYWxpZCBmb3IgQ1NT
IG91dGxpbmUtc3R5bGUKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRv
KSAvLyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUKICAgICAgICAgcmV0dXJuIEJvcmRlclN0
eWxlOjpEb3R0ZWQ7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEJvcmRlclN0eWxlPihtX3ZhbHVl
LnZhbHVlSUQgLSBDU1NWYWx1ZU5vbmUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxCb3JkZXJT
dHlsZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZU5vbmUpOwogfQogCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3V0bGluZUlzQXV0bygpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQg
PT0gQ1NTVmFsdWVBdXRvKQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1
dG8pCiAgICAgICAgIHJldHVybiBPdXRsaW5lSXNBdXRvOjpPbjsKICAgICByZXR1cm4gT3V0bGlu
ZUlzQXV0bzo6T2ZmOwogfQpAQCAtMzMyLDQzICszMzIsNDMgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbXBvc2l0ZU9wZXJhdG9yIGUp
CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAg
ICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXI6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2xlYXI7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNsZWFyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3Np
dGVPcGVyYXRvcjo6Q29weToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb3B5
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb3B5KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdmVyOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVTb3VyY2VPdmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21w
b3NpdGVPcGVyYXRvcjo6U291cmNlSW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU291cmNlSW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvdXJjZUlu
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZU91dDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU291cmNlT3V0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlQXRvcDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VBdG9wOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVTb3VyY2VBdG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVP
cGVyYXRvcjo6RGVzdGluYXRpb25PdmVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZURlc3RpbmF0aW9uT3ZlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
RGVzdGluYXRpb25PdmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVy
YXRvcjo6RGVzdGluYXRpb25JbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
ZXN0aW5hdGlvbkluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZXN0aW5h
dGlvbkluKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVz
dGluYXRpb25PdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRp
b25PdXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlc3RpbmF0aW9uT3V0
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRp
b25BdG9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRv
cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVzdGluYXRpb25BdG9wKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVhvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlWG9yKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVy
YXRvcjo6UGx1c0RhcmtlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbHVz
RGFya2VyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbHVzRGFya2VyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXI6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGlmZmVyZW5jZToKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0zODAsNyArMzgwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUNsZWFy
OgogICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkNsZWFyOwogICAgIGNhc2UgQ1NT
VmFsdWVDb3B5OgpAQCAtNDIxLDIwNiArNDIxLDIwNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGUpIHsKICAgICBjYXNlIE5vQ29udHJvbFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b1BhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
QXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNoZWNrYm94OworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVDaGVja2JveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmFkaW9Q
YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJhZGlvOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSYWRpbyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUHVzaEJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHVz
aEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHVzaEJ1dHRvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcXVhcmVCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVNxdWFyZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0b247Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJ1dHRvbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQnV0dG9uQmV2ZWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUJ1dHRvbkJldmVsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVC
dXR0b25CZXZlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEJ1dHRvblBhcnQ6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdEJ1dHRvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVmYXVsdEJ1dHRvbik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSW5uZXJTcGluQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVJbm5lclNwaW5CdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUlubmVyU3BpbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGlz
dGJveFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGlzdGJveDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGlzdGJveCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTGlzdEl0ZW1QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUxpc3RpdGVtOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0aXRl
bSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25Q
YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRW50ZXJGdWxsc2Ny
ZWVuQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUVudGVy
RnVsbHNjcmVlbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFFeGl0RnVs
bHNjcmVlbkJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVk
aWFFeGl0RnVsbHNjcmVlbkJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWVkaWFQbGF5QnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVN
ZWRpYVBsYXlCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlh
UGxheUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFPdmVybGF5UGxheUJ1
dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFPdmVybGF5
UGxheUJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFPdmVy
bGF5UGxheUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9u
UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhTXV0ZUJ1dHRvbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbjsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFSZXdpbmRCdXR0b25QYXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhUmV3aW5kQnV0dG9uOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVJld2luZEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b247CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
blBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVk
aWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWVkaWFTbGlkZXJQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlh
U2xpZGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVNsaWRlcik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlcik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFydDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b247Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1
dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0
aHVtYjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlk
ZXJ0aHVtYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFDb250cm9sc0JhY2tncm91
bmRQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNC
YWNrZ3JvdW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUNvbnRy
b2xzQmFja2dyb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1
bGxzY3JlZW5CYWNrZ3JvdW5kUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVNZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tncm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZv
bHVtZVNsaWRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9s
dW1lU2xpZGVyVGh1bWJQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1l
ZGlhRnVsbHNjcmVlblZvbHVtZVNsaWRlclRodW1iOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTWVkaWFDdXJyZW50VGltZVBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWVkaWFDdXJyZW50VGltZURpc3BsYXk7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmRQYXJ0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNMaWdodEJhckJh
Y2tncm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhQ29udHJv
bHNMaWdodEJhckJhY2tncm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhQ29u
dHJvbHNEYXJrQmFyQmFja2dyb3VuZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVkaWFDb250cm9sc0RhcmtCYXJCYWNrZ3JvdW5kOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUNvbnRyb2xzRGFya0JhckJhY2tncm91bmQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZW51bGlzdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TWVudWxpc3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0QnV0dG9uUGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdEJ1dHRvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVudWxpc3RCdXR0b24pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1lbnVsaXN0VGV4dFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVNZW51bGlzdFRleHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0VGV4
dEZpZWxkUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdFRl
eHRmaWVsZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVudWxpc3RUZXh0
ZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1ldGVyUGFydDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZXRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTWV0ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlbGV2YW5jeUxldmVs
SW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxldmFu
Y3lMZXZlbEluZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVs
ZXZhbmN5TGV2ZWxJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRpbnVv
dXNDYXBhY2l0eUxldmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVDb250aW51b3VzQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3IpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzY3JldGVDYXBhY2l0eUxl
dmVsSW5kaWNhdG9yOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaXNjcmV0
ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJhdGlu
Z0xldmVsSW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
YXRpbmdMZXZlbEluZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
UmF0aW5nTGV2ZWxJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByb2dyZXNz
QmFyUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm9ncmVzc0JhcjsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHJvZ3Jlc3NCYXIpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVByb2dyZXNzQmFyVmFsdWU7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVByb2dyZXNzQmFyVmFsdWUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNsaWRlckhvcml6b250YWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNsaWRlckhvcml6b250YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVNsaWRlckhvcml6b250YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlclZlcnRp
Y2FsUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJWZXJ0aWNh
bDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2xpZGVyVmVydGljYWwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpZGVydGh1bWJIb3Jpem9udGFsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbGlkZXJ0aHVtYkhvcml6b250YWwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlclRodW1iVmVydGljYWxQYXJ0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWw7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWwpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENhcmV0UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVDYXJldDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2FyZXQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkUGFydDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZWFyY2hmaWVsZDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlU2VhcmNoZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNl
YXJjaEZpZWxkRGVjb3JhdGlvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU2VhcmNoZmllbGREZWNvcmF0aW9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVTZWFyY2hmaWVsZERlY29yYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNl
YXJjaEZpZWxkUmVzdWx0c0RlY29yYXRpb25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0RlY29yYXRpb247CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0RlY29yYXRpb24pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzQnV0dG9uOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNCdXR0b24p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uUGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZWFyY2hmaWVsZENhbmNlbEJ1dHRv
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxC
dXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRGaWVsZFBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dGZpZWxkOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVUZXh0ZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRl
eHRBcmVhUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0YXJlYTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGV4dGFyZWEpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENhcHNMb2NrSW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVDYXBzTG9ja0luZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQ2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXR0YWNobWVudDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQXR0YWNobWVudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQm9yZGVybGVzc0F0dGFjaG1lbnRQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUJvcmRlcmxlc3NBdHRhY2htZW50OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVCb3JkZXJsZXNzQXR0YWNobWVudCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAj
aWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBcHBsZVBheUJ1dHRvbjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXBwbGVQYXlCdXR0b24pOwogICAgICAgICBicmVhazsK
ICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGNhc2UgQ29sb3JXZWxs
UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xvcldlbGw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbG9yV2VsbCk7CiAgICAgICAgIGJyZWFr
OwogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgY2FzZSBMaXN0QnV0
dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaXN0QnV0dG9uOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0QnV0dG9uKTsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICB9CkBAIC02MzAsMTMgKzYzMCwxMyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENT
U1ZhbHVlTm9uZSkKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVOb25lKQog
ICAgICAgICByZXR1cm4gTm9Db250cm9sUGFydDsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQg
PT0gQ1NTVmFsdWVBdXRvKQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1
dG8pCiAgICAgICAgIHJldHVybiBBdXRvUGFydDsKIAotICAgIHJldHVybiBDb250cm9sUGFydCht
X3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUNoZWNrYm94ICsgQ2hlY2tib3hQYXJ0KTsKKyAgICBy
ZXR1cm4gQ29udHJvbFBhcnQodmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZUNoZWNrYm94ICsg
Q2hlY2tib3hQYXJ0KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tmYWNlVmlzaWJpbGl0eSBlKQpAQCAtNjQ1LDEwICs2NDUs
MTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEJhY2tmYWNlVmlzaWJpbGl0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQmFja2Zh
Y2VWaXNpYmlsaXR5OjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVZpc2libGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJhY2tmYWNlVmlzaWJpbGl0eTo6SGlkZGVuOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlSGlkZGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
NjU3LDcgKzY1Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBCYWNrZmFjZVZpc2liaWxpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJu
IEJhY2tmYWNlVmlzaWJpbGl0eTo6VmlzaWJsZTsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgpA
QCAtNjc3LDEzICs2NzcsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEZpbGxBdHRhY2htZW50IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBGaWxsQXR0YWNobWVudDo6U2Nyb2xsQmFja2dyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTY3JvbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVNjcm9sbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbEF0dGFjaG1lbnQ6Okxv
Y2FsQmFja2dyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb2NhbDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG9jYWwpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZpbGxBdHRhY2htZW50OjpGaXhlZEJhY2tncm91bmQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRml4ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUZpeGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNjkyLDcgKzY5
Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGaWxs
QXR0YWNobWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVTY3JvbGw6CiAgICAgICAgIHJldHVybiBGaWxsQXR0YWNobWVu
dDo6U2Nyb2xsQmFja2dyb3VuZDsKICAgICBjYXNlIENTU1ZhbHVlTG9jYWw6CkBAIC03MTMsMTYg
KzcxMywxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRmlsbEJveCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRmlsbEJveDo6Qm9y
ZGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm9yZGVyQm94KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBGaWxsQm94OjpQYWRkaW5nOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVBhZGRpbmdCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBh
ZGRpbmdCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZpbGxCb3g6OkNvbnRlbnQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGVudEJveDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29udGVudEJveCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRmlsbEJveDo6VGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVU
ZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQpAQCAtNzMxLDcgKzczMSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGaWxsQm94KCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0
Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKICAgICBj
YXNlIENTU1ZhbHVlQm9yZGVyQm94OgogICAgICAgICByZXR1cm4gRmlsbEJveDo6Qm9yZGVyOwpA
QCAtNzU4LDE2ICs3NTgsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEZpbGxSZXBlYXQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IEZpbGxSZXBlYXQ6OlJlcGVhdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
ZXBlYXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlcGVhdCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbFJlcGVhdDo6Tm9SZXBlYXQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm9SZXBlYXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vUmVwZWF0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWxsUmVwZWF0
OjpSb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUm91bmQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEZpbGxSZXBlYXQ6OlNwYWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNwYWNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTc3Niw3ICs3NzYsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbFJlcGVhdCgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVSZXBl
YXQ6CiAgICAgICAgIHJldHVybiBGaWxsUmVwZWF0OjpSZXBlYXQ7CiAgICAgY2FzZSBDU1NWYWx1
ZU5vUmVwZWF0OgpAQCAtNzk5LDE2ICs3OTksMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJveFBhY2sgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIEJveFBhY2s6OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94UGFjazo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hQYWNrOjpFbmQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJveFBhY2s6
Okp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KQEAgLTgxNyw3ICs4MTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94UGFjaygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKICAgICAgICAgcmV0
dXJuIEJveFBhY2s6OlN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CkBAIC04NDAsMTkgKzg0
MCwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQm94QWxpZ25tZW50IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3hBbGlnbm1l
bnQ6OlN0cmV0Y2g6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RyZXRjaCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQm94QWxpZ25tZW50OjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U3RhcnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJveEFsaWdubWVudDo6Q2VudGVyOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBC
b3hBbGlnbm1lbnQ6OkVuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVuZCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQm94QWxpZ25tZW50OjpCYXNlbGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC04NjEsNyArODYxLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveEFsaWdu
bWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVTdHJldGNoOgogICAgICAgICByZXR1cm4gQm94QWxpZ25tZW50OjpTdHJl
dGNoOwogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKQEAgLTg4NywxMCArODg3LDEwIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hEZWNv
cmF0aW9uQnJlYWsgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveERlY29yYXRpb25CcmVh
azo6U2xpY2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpY2U7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWNlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBCb3hEZWNvcmF0aW9uQnJlYWs6OkNsb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNsb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
bG9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTg5OSw3ICs4OTksNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJy
ZWFrKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZVNsaWNlOgogICAgICAgICByZXR1cm4gQm94RGVjb3JhdGlvbkJyZWFrOjpT
bGljZTsKICAgICBjYXNlIENTU1ZhbHVlQ2xvbmU6CkBAIC05MTksMTYgKzkxOSwxNiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRWRnZSBl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRWRnZTo6VG9wOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
VG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFZGdlOjpSaWdodDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVkZ2U6OkJvdHRvbToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3R0b207CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvdHRvbSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RWRnZTo6TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtOTM3LDcgKzkzNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBFZGdlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJuIEVkZ2U6
OlRvcDsKICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6CkBAIC05NjAsMTAgKzk2MCwxMCBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94U2l6
aW5nIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3hTaXppbmc6OkJvcmRlckJveDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQm94U2l6aW5nOjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNvbnRlbnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRl
bnRCb3gpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC05NzIsNyArOTcyLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveFNpemluZygpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVCb3JkZXJCb3g6CiAgICAgICAgIHJldHVybiBCb3hTaXppbmc6OkJvcmRlckJveDsKICAg
ICBjYXNlIENTU1ZhbHVlQ29udGVudEJveDoKQEAgLTk5MSwxMCArOTkxLDEwIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hEaXJlY3Rp
b24gZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveERpcmVjdGlvbjo6Tm9ybWFsOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hE
aXJlY3Rpb246OlJldmVyc2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmV2
ZXJzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmV2ZXJzZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEwMDMsNyArMTAwMyw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hEaXJlY3Rpb24oKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9y
bWFsOgogICAgICAgICByZXR1cm4gQm94RGlyZWN0aW9uOjpOb3JtYWw7CiAgICAgY2FzZSBDU1NW
YWx1ZVJldmVyc2U6CkBAIC0xMDIyLDEwICsxMDIyLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hMaW5lcyBlKQogICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgQm94TGluZXM6OlNpbmdsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTaW5nbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNp
bmdsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94TGluZXM6Ok11bHRpcGxlOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU11bHRpcGxlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVNdWx0aXBsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTEwMzQsNyArMTAzNCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCb3hMaW5lcygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
IAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTaW5nbGU6CiAgICAgICAgIHJldHVybiBCb3hM
aW5lczo6U2luZ2xlOwogICAgIGNhc2UgQ1NTVmFsdWVNdWx0aXBsZToKQEAgLTEwNTMsMTAgKzEw
NTMsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEJveE9yaWVudCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm94T3JpZW50OjpI
b3Jpem9udGFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhvcml6b250YWwpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJveE9yaWVudDo6VmVydGljYWw6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVZlcnRpY2FsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTA2NSw3ICsx
MDY1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJv
eE9yaWVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsOgogICAgIGNhc2UgQ1NTVmFsdWVJbmxpbmVBeGlz
OgogICAgICAgICByZXR1cm4gQm94T3JpZW50OjpIb3Jpem9udGFsOwpAQCAtMTA4NiwxNiArMTA4
NiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQ2FwdGlvblNpZGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIENhcHRpb25TaWRl
OjpMZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxlZnQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENhcHRpb25TaWRlOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENhcHRpb25TaWRlOjpUb3A6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVG9wOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVUb3ApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHRpb25TaWRlOjpCb3R0b206Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC0xMTA0LDcgKzExMDQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQ2FwdGlvblNpZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKICAgICAgICAgcmV0dXJuIENhcHRp
b25TaWRlOjpMZWZ0OwogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKQEAgLTExMjcsMjIgKzExMjcs
MjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKENsZWFyIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBDbGVhcjo6Tm9uZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6TGVm
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
bGVhcjo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDbGVhcjo6SW5saW5lU3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSW5saW5lU3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUlubGluZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6SW5saW5lRW5k
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUVuZDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lRW5kKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDbGVhcjo6Qm90aDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
b3RoOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3RoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQpAQCAtMTE1MSw3ICsxMTUxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENsZWFyKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0
Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAg
IHJldHVybiBDbGVhcjo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKQEAgLTExNzgsMTEy
ICsxMTc4LDExMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoQ3Vyc29yVHlwZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQ3Vyc29y
VHlwZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpEZWZhdWx0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlZmF1
bHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok5vbmU6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6
Q29udGV4dE1lbnU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGV4dE1l
bnU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRleHRNZW51KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpIZWxwOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUhlbHA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUhlbHApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlBvaW50ZXI6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUG9pbnRlcjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlUG9pbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ3Vyc29yVHlwZTo6UHJvZ3Jlc3M6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUHJvZ3Jlc3M7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVByb2dyZXNz
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpXYWl0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdhaXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVdhaXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkNl
bGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VsbDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q3Vyc29yVHlwZTo6Q3Jvc3NoYWlyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNyb3NzaGFpcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ3Jvc3NoYWly
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpUZXh0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRleHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlZl
cnRpY2FsVGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbFRl
eHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2FsVGV4dCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxpYXM6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQWxpYXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUFsaWFzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpDb3B5
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvcHk7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvcHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1
cnNvclR5cGU6Ok1vdmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTW92ZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTW92ZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Tm9Ecm9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vRHJvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9E
cm9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOb3RBbGxvd2VkOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vdEFsbG93ZWQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vdEFsbG93ZWQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEN1cnNvclR5cGU6OkdyYWI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlR3JhYjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlR3JhYik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6R3JhYmJpbmc6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlR3JhYmJpbmc7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUdyYWJiaW5nKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBl
OjpFUmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVSZXNpemU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVSZXNpemUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok5SZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTlJlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TlJlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TkVSZXNpemU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVSZXNpemU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5lUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDdXJzb3JUeXBlOjpOV1Jlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOd1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTndSZXNp
emUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlNSZXNpemU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlU1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vy
c29yVHlwZTo6U0VSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VS
ZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlUmVzaXplKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpTV1Jlc2l6ZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTd1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlU3dSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5
cGU6OldSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV1Jlc2l6ZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlV1Jlc2l6ZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6RVdSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlRXdSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUV3UmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOU1Jl
c2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOc1Jlc2l6ZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTnNSZXNpemUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEN1cnNvclR5cGU6Ok5FU1dSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTmVzd1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTmVzd1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TldT
RVJlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd3NlUmVzaXplOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOd3NlUmVzaXplKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpDb2x1bW5SZXNpemU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sUmVzaXplOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVDb2xSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5
cGU6OlJvd1Jlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3dSZXNp
emU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJvd1Jlc2l6ZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxsU2Nyb2xsOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsbFNjcm9sbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQWxsU2Nyb2xsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JU
eXBlOjpab29tSW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWm9vbUluOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVab29tSW4pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEN1cnNvclR5cGU6Olpvb21PdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlWm9vbU91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Wm9vbU91dCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEyOTEsNyArMTI5MSw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShD
dXJzb3JUeXBlIGUpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgQ3Vyc29yVHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlQ29weToKICAgICAgICAgcmV0dXJuIEN1cnNvclR5cGU6OkNv
cHk7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEdyYWI6CkBAIC0xMzA1LDcgKzEzMDUsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVHlwZSgp
IGNvbnN0CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBDdXJzb3JUeXBl
OjpOb25lOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDdXJzb3JU
eXBlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUF1dG8pOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q3Vyc29yVHlwZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZUF1dG8pOwog
ICAgIH0KIH0KIApAQCAtMTMxNiwxMCArMTMxNiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vyc29yVmlzaWJpbGl0eSBlKQogICAg
IHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgQ3Vyc29yVmlzaWJpbGl0eTo6QXV0bzoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JWaXNpYmlsaXR5
OjpBdXRvSGlkZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvSGlkZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0b0hpZGUpOwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CkBAIC0xMzI4LDkgKzEzMjgsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVmlzaWJpbGl0eSgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NT
VmFsdWVBdXRvKQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAg
ICAgICAgIHJldHVybiBDdXJzb3JWaXNpYmlsaXR5OjpBdXRvOwotICAgIGlmIChtX3ZhbHVlLnZh
bHVlSUQgPT0gQ1NTVmFsdWVBdXRvSGlkZSkKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0g
Q1NTVmFsdWVBdXRvSGlkZSkKICAgICAgICAgcmV0dXJuIEN1cnNvclZpc2liaWxpdHk6OkF1dG9I
aWRlOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzQ0LDczICsxMzQ0LDczIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShE
aXNwbGF5VHlwZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGlu
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGlzcGxheVR5cGU6OkJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUJsb2NrOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9jayk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6Okxpc3RJdGVtOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3RJdGVtOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVMaXN0SXRlbSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5
cGU6OklubGluZUJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGlu
ZUJsb2NrOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmVCbG9jayk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVUYWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6
OklubGluZVRhYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZVRh
YmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmVUYWJsZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93R3JvdXA6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFibGVSb3dHcm91cDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGFibGVSb3dHcm91cCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlSGVhZGVyR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVGFibGVIZWFkZXJHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVGFibGVIZWFkZXJHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGlzcGxheVR5cGU6OlRhYmxlRm9vdGVyR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlVGFibGVGb290ZXJHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlVGFibGVGb290ZXJHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlz
cGxheVR5cGU6OlRhYmxlUm93OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRh
YmxlUm93OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJsZVJvdyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uR3JvdXA6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlQ29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVUYWJsZUNvbHVtbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlz
cGxheVR5cGU6OlRhYmxlQ2VsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVU
YWJsZUNlbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRhYmxlQ2VsbCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNhcHRpb247CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRhYmxlQ2FwdGlvbik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OkJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVXZWJraXRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtp
dEJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUJveDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJbmxpbmVCb3g7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtpdElubGluZUJveCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OkZsZXg6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlRmxleDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
RmxleCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUZsZXg6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lRmxleDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lRmxleCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OkdyaWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlR3JpZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlR3JpZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUdyaWQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lR3JpZDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlSW5saW5lR3JpZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RGlzcGxheVR5cGU6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9u
ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OkNvbnRlbnRzOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvbnRlbnRzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVDb250ZW50cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OkZs
b3dSb290OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsb3dSb290OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbG93Um9vdCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KQEAgLTE0MTksMTAgKzE0MTksMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIERpc3BsYXlUeXBlKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUpCisgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAg
cmV0dXJuIERpc3BsYXlUeXBlOjpOb25lOwogCi0gICAgRGlzcGxheVR5cGUgZGlzcGxheSA9IHN0
YXRpY19jYXN0PERpc3BsYXlUeXBlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUlubGluZSk7
CisgICAgRGlzcGxheVR5cGUgZGlzcGxheSA9IHN0YXRpY19jYXN0PERpc3BsYXlUeXBlPih2YWx1
ZUlESW50ZXJuYWwoKSAtIENTU1ZhbHVlSW5saW5lKTsKICAgICBBU1NFUlQoZGlzcGxheSA+PSBE
aXNwbGF5VHlwZTo6SW5saW5lICYmIGRpc3BsYXkgPD0gRGlzcGxheVR5cGU6Ok5vbmUpOwogICAg
IHJldHVybiBkaXNwbGF5OwogfQpAQCAtMTQzMywxMCArMTQzMywxMCBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRW1wdHlDZWxsIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBFbXB0eUNlbGw6OlNob3c6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2hvdzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU2hvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRW1wdHlDZWxsOjpIaWRlOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGU7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUhpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNDQ1
LDcgKzE0NDUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRW1wdHlDZWxsKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNob3c6CiAgICAgICAgIHJldHVybiBFbXB0eUNlbGw6OlNo
b3c7CiAgICAgY2FzZSBDU1NWYWx1ZUhpZGU6CkBAIC0xNDY0LDE2ICsxNDY0LDE2IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGbGV4RGly
ZWN0aW9uIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpSb3c6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVSb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhEaXJl
Y3Rpb246OlJvd1JldmVyc2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93
UmV2ZXJzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUm93UmV2ZXJzZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxleERpcmVjdGlvbjo6Q29sdW1uOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQ29sdW1uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbGV4RGly
ZWN0aW9uOjpDb2x1bW5SZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvbHVtblJldmVyc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbHVt
blJldmVyc2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNDgyLDcgKzE0ODIsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmxleERpcmVj
dGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVSb3c6CiAgICAgICAgIHJldHVybiBGbGV4RGlyZWN0aW9uOjpSb3c7CiAg
ICAgY2FzZSBDU1NWYWx1ZVJvd1JldmVyc2U6CkBAIC0xNTA1LDIyICsxNTA1LDIyIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBbGlnbkNv
bnRlbnQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEFsaWduQ29udGVudDo6RmxleFN0YXJ0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxleFN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBBbGlnbkNvbnRlbnQ6OkZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRmxleEVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxl
eEVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50OjpDZW50ZXI6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFs
aWduQ29udGVudDo6U3BhY2VCZXR3ZWVuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Bh
Y2VCZXR3ZWVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnQ6OlNwYWNl
QXJvdW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQXJvdW5kOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZUFyb3VuZCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50OjpTdHJldGNoOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVN0cmV0Y2g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVN0cmV0Y2gpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNTI5LDcgKzE1
MjksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQWxp
Z25Db250ZW50KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZUZsZXhTdGFydDoKICAgICAgICAgcmV0dXJuIEFsaWduQ29udGVu
dDo6RmxleFN0YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTU1NiwxMyArMTU1
NiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRmxleFdyYXAgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZsZXhXcmFwOjpOb1dy
YXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm93cmFwOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3dyYXApOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEZsZXhXcmFwOjpXcmFwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdy
YXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdyYXApOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEZsZXhXcmFwOjpSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVdyYXBSZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVXcmFwUmV2ZXJzZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE1NzEsNyAr
MTU3MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBG
bGV4V3JhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb3dyYXA6CiAgICAgICAgIHJldHVybiBGbGV4V3JhcDo6Tm9XcmFw
OwogICAgIGNhc2UgQ1NTVmFsdWVXcmFwOgpAQCAtMTU5MiwxOSArMTU5MiwxOSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmxvYXQgZSkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZsb2F0OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpMZWZ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUxlZnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpSaWdodDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZs
b2F0OjpJbmxpbmVTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxp
bmVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lU3RhcnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpJbmxpbmVFbmQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVJbmxpbmVFbmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0x
NjEzLDcgKzE2MTMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRmxvYXQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKICAgICAgICAgcmV0dXJuIEZsb2F0OjpMZWZ0Owog
ICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKQEAgLTE2MzksMjIgKzE2MzksMjIgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVCcmVhayBl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTGluZUJyZWFrOjpBdXRvOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVhazo6TG9vc2U6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG9vc2U7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUxvb3NlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBM
aW5lQnJlYWs6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3Jt
YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTGluZUJyZWFrOjpTdHJpY3Q6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU3RyaWN0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVTdHJpY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVhazo6QWZ0ZXJXaGl0
ZVNwYWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmdGVyV2hpdGVTcGFj
ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWs6OkFueXdoZXJlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFueXdoZXJlOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVBbnl3aGVyZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE2
NjMsNyArMTY2Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBPcHRpb25TZXQ8SGFuZ2luZ1B1bmN0dWF0aW9uPigpIGNvCiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKICAgICAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3
aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAg
ICAgcmV0dXJuIE9wdGlvblNldDxIYW5naW5nUHVuY3R1YXRpb24+IHsgfTsKICAgICBjYXNlIENT
U1ZhbHVlRmlyc3Q6CkBAIC0xNjg2LDcgKzE2ODYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUJyZWFrKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0
Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAg
IHJldHVybiBMaW5lQnJlYWs6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUxvb3NlOgpAQCAtMTcx
MywxMCArMTcxMywxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoTGlzdFN0eWxlUG9zaXRpb24gZSkKICAgICBzZXRQcmltaXRpdmVVbml0
VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBj
YXNlIExpc3RTdHlsZVBvc2l0aW9uOjpPdXRzaWRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU91dHNpZGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU91
dHNpZGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpc3RTdHlsZVBvc2l0aW9uOjpJbnNp
ZGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5zaWRlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnNpZGUpOwogICAgICAgICBicmVhazsKICAgICB9
CiB9CkBAIC0xNzI1LDcgKzE3MjUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgTGlzdFN0eWxlUG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlT3V0c2lkZToKICAgICAg
ICAgcmV0dXJuIExpc3RTdHlsZVBvc2l0aW9uOjpPdXRzaWRlOwogICAgIGNhc2UgQ1NTVmFsdWVJ
bnNpZGU6CkBAIC0xNzU1LDE4ICsxNzU1LDE4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaXN0U3R5bGVUeXBlIHN0eWxlKQogICAgIDog
Q1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0gdG9DU1NWYWx1
ZUlEKHN0eWxlKTsKKyAgICBzZXRWYWx1ZUlESW50ZXJuYWwodG9DU1NWYWx1ZUlEKHN0eWxlKSk7
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaXN0
U3R5bGVUeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaXN0U3R5bGVUeXBlOjpO
b25lOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxMaXN0U3R5bGVU
eXBlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZURpc2MpOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8TGlzdFN0eWxlVHlwZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZURpc2Mp
OwogICAgIH0KIH0KIApAQCAtMTc3NiwxMyArMTc3NiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTWFyZ2luQ29sbGFwc2UgZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQ29sbGFwc2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcmdp
bkNvbGxhcHNlOjpTZXBhcmF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
ZXBhcmF0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VwYXJhdGUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpEaXNjYXJkOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURpc2NhcmQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZURpc2NhcmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0x
NzkxLDcgKzE3OTEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTWFyZ2luQ29sbGFwc2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6CiAgICAgICAgIHJldHVybiBN
YXJnaW5Db2xsYXBzZTo6Q29sbGFwc2U7CiAgICAgY2FzZSBDU1NWYWx1ZVNlcGFyYXRlOgpAQCAt
MTgxMiwxNiArMTgxMiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoTWFycXVlZUJlaGF2aW9yIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBNYXJxdWVlQmVoYXZpb3I6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZUJlaGF2aW9yOjpTY3JvbGw6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVTY3JvbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVC
ZWhhdmlvcjo6U2xpZGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpZGU7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBNYXJxdWVlQmVoYXZpb3I6OkFsdGVybmF0ZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHRlcm5hdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUFsdGVybmF0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE4MzAs
NyArMTgzMCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBNYXJxdWVlQmVoYXZpb3IoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIE1hcnF1ZWVC
ZWhhdmlvcjo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgpAQCAtMTg1MywyNSArMTg1
MywyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoTWFycXVlZURpcmVjdGlvbiBkaXJlY3RpbwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAg
ICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpGb3J3YXJkOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUZvcndhcmRzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVGb3J3YXJkcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6
QmFja3dhcmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFja3dhcmRzOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYWNrd2FyZHMpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6VXA6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXA7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVVwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXJxdWVl
RGlyZWN0aW9uOjpEb3duOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvd247
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURvd24pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6UmlnaHQ6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMTg4MCw3ICsxODgwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIE1hcnF1ZWVEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFs
dWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRm9yd2FyZHM6CiAgICAgICAgIHJl
dHVybiBNYXJxdWVlRGlyZWN0aW9uOjpGb3J3YXJkOwogICAgIGNhc2UgQ1NTVmFsdWVCYWNrd2Fy
ZHM6CkBAIC0xOTExLDEwICsxOTExLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShOQlNQTW9kZSBlKQogICAgIHNldFByaW1pdGl2ZVVu
aXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAg
IGNhc2UgTkJTUE1vZGU6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTkJTUE1vZGU6OlNwYWNlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVTcGFjZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE5MjMsNyArMTkyMyw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBOQlNQTW9k
ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVTcGFjZToKICAgICAgICAgcmV0dXJuIE5CU1BNb2RlOjpTcGFjZTsKICAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgpAQCAtMTk0MiwyNSArMTk0MiwyNSBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcmZsb3cgZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIE92ZXJmbG93OjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVZpc2libGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpIaWRk
ZW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIaWRkZW4pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE92ZXJmbG93OjpTY3JvbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U2Nyb2xsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTY3JvbGwpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpQYWdlZFg6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UGFnZWRYOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRQYWdlZFgpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE92ZXJmbG93OjpQYWdlZFk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlV2Via2l0UGFnZWRZOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJr
aXRQYWdlZFkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpDbGlwOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNsaXA7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNsaXApOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xOTY5
LDcgKzE5NjksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgT3ZlcmZsb3coKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJuIE92ZXJmbG93OjpW
aXNpYmxlOwogICAgIGNhc2UgQ1NTVmFsdWVIaWRkZW46CkBAIC0xOTk5LDEzICsxOTk5LDEzIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShP
dmVyc2Nyb2xsQmVoYXZpb3IgYmVoYXZpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewogICAgIGNhc2Ug
T3ZlcnNjcm9sbEJlaGF2aW9yOjpDb250YWluOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUNvbnRhaW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRh
aW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVy
c2Nyb2xsQmVoYXZpb3I6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KQEAgLTIwMTQsNyArMjAxNCw3IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
Q29udGFpbjoKICAgICAgICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKICAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKQEAgLTIwMzUsMzQgKzIwMzUsMzQgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpBdXRvOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6
QXZvaWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF2b2lkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBCcmVha0JldHdlZW46OkF2b2lkQ29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF2b2lkQ29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBdm9pZENvbHVtbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpB
dm9pZFBhZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWRQYWdlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZFBhZ2UpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQ29sdW1uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdlZW46OlBhZ2U6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGFnZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUGFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJl
YWtCZXR3ZWVuOjpMZWZ0UGFnZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
ZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdlZW46OlJpZ2h0UGFnZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6UmVj
dG9QYWdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlY3RvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZWN0byk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQnJlYWtCZXR3ZWVuOjpWZXJzb1BhZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVmVyc287CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnNv
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjA3MSw3ICsyMDcxLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrQmV0d2VlbigpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQnJlYWtCZXR3ZWVuOjpBdXRvOwogICAgIGNhc2Ug
Q1NTVmFsdWVBdm9pZDoKQEAgLTIxMDYsMTYgKzIxMDYsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrSW5zaWRlIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUF2b2lkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVh
a0luc2lkZTo6QXZvaWRDb2x1bW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXZvaWRDb2x1bW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF2b2lkQ29s
dW1uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRQYWdlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lkUGFnZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXZvaWRQYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQpAQCAtMjEyNCw3ICsyMTI0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEJyZWFrSW5zaWRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogICAgIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICBy
ZXR1cm4gQnJlYWtJbnNpZGU6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUF2b2lkOgpAQCAtMjE0
NywxOSArMjE0NywxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoUG9zaXRpb25UeXBlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBQ
b3NpdGlvblR5cGU6OlN0YXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
dGF0aWM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXRpYyk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUG9zaXRpb25UeXBlOjpSZWxhdGl2ZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxhdGl2ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlUmVsYXRpdmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvc2l0aW9u
VHlwZTo6QWJzb2x1dGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWJzb2x1
dGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFic29sdXRlKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBQb3NpdGlvblR5cGU6OkZpeGVkOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVGaXhlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9zaXRpb25UeXBlOjpTdGlj
a3k6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RpY2t5OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGlja3kpOwogICAgICAgICBicmVhazsKICAgICB9
CiB9CkBAIC0yMTY4LDcgKzIxNjgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgUG9zaXRpb25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXRpYzoKICAgICAgICAgcmV0
dXJuIFBvc2l0aW9uVHlwZTo6U3RhdGljOwogICAgIGNhc2UgQ1NTVmFsdWVSZWxhdGl2ZToKQEAg
LTIxOTQsMTYgKzIxOTQsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKFJlc2l6ZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgUmVz
aXplOjpCb3RoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdGg7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvdGgpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJlc2l6ZTo6SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jp
em9udGFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZXNpemU6OlZlcnRpY2FsOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJ0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UmVzaXplOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CkBAIC0yMjEyLDcgKzIyMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgUmVzaXplKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CiAgICAgICAgIHJldHVy
biBSZXNpemU6OkJvdGg7CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWw6CkBAIC0yMjM4LDEw
ICsyMjM4LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShUYWJsZUxheW91dFR5cGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRh
YmxlTGF5b3V0VHlwZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
dXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUYWJsZUxheW91dFR5cGU6OkZpeGVkOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVGaXhlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIyNTAsNyArMjI1MCw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUYWJsZUxh
eW91dFR5cGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6CiAgICAgICAgIHJldHVybiBUYWJsZUxheW91dFR5cGU6
OkZpeGVkOwogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgpAQCAtMjI2OSwzMSArMjI2OSwzMSBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4
dEFsaWduTW9kZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6U3Rh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUZXh0QWxpZ25Nb2RlOjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRleHRBbGlnbk1vZGU6OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6UmlnaHQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0
QWxpZ25Nb2RlOjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2Vu
dGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbk1vZGU6Okp1c3RpZnk6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9k
ZTo6V2ViS2l0TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRM
ZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRMZWZ0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJLaXRSaWdodDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRSaWdodDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlV2Via2l0UmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFRleHRBbGlnbk1vZGU6OldlYktpdENlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVXZWJraXRDZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVdlYmtpdENlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIzMDIsMTQg
KzIzMDIsMTQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHRBbGlnbk1vZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0QXV0bzogLy8gTGVnYWN5IC13ZWJraXQtYXV0
by4gRXFpdXZhbGVudCB0byBzdGFydC4KICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAgICAg
IHJldHVybiBUZXh0QWxpZ25Nb2RlOjpTdGFydDsKICAgICBjYXNlIENTU1ZhbHVlRW5kOgogICAg
ICAgICByZXR1cm4gVGV4dEFsaWduTW9kZTo6RW5kOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxUZXh0QWxpZ25Nb2RlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1
ZUxlZnQpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEFsaWduTW9kZT4odmFsdWVJ
REludGVybmFsKCkgLSBDU1NWYWx1ZUxlZnQpOwogICAgIH0KIH0KIApAQCAtMjMyMCwyNSArMjMy
MCwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoVGV4dEFsaWduTGFzdCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWdu
TGFzdDo6U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6OkxlZnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6
UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0QWxpZ25MYXN0OjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ2VudGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6Okp1c3RpZnk6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4
dEFsaWduTGFzdDo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRv
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMjM0Nyw3ICsyMzQ3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbkxhc3QoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAg
ICAgICAgcmV0dXJuIFRleHRBbGlnbkxhc3Q6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXJ0
OgpAQCAtMjM3NiwxNiArMjM3NiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEp1c3RpZnkgZSkKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAg
ICBjYXNlIFRleHRKdXN0aWZ5OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHRKdXN0aWZ5OjpOb25lOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRKdXN0aWZ5OjpJbnRlcldv
cmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50ZXJXb3JkOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnRlcldvcmQpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRKdXN0aWZ5OjpEaXN0cmlidXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZURpc3RyaWJ1dGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZURpc3RyaWJ1dGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMzk0LDcgKzIz
OTQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4
dEp1c3RpZnkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRleHRKdXN0aWZ5OjpBdXRv
OwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtMjQxNiw3ICsyNDE2LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9wdGlvblNldDxUZXh0RGVjb3Jh
dGlvbj4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIE9wdGlvblNldDxUZXh0RGVjb3Jh
dGlvbj4geyB9OwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcmxpbmU6CkBAIC0yNDM5LDcgKzI0Mzks
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERl
Y29yYXRpb25TdHlsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVTb2xpZDoKICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0
aW9uU3R5bGU6OlNvbGlkOwogICAgIGNhc2UgQ1NTVmFsdWVEb3VibGU6CkBAIC0yNDY0LDEzICsy
NDY0LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUZXh0VW5kZXJsaW5lUG9zaXRpb24gcG9zCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5
cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChwb3NpdGlvbikgewog
ICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6
VW5kZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVW5kZXI7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVuZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkZyb21Gb250OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUZyb21Gb250OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVGcm9tRm9udCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMjQ4MSw3ICsyNDgx
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRV
bmRlcmxpbmVQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFVuZGVy
bGluZVBvc2l0aW9uOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcjoKQEAgLTI1MDMsMTYg
KzI1MDMsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKFRleHRTZWN1cml0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dFNl
Y3VyaXR5OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRTZWN1cml0eTo6RGlzYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVEaXNjOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaXNjKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkNpcmNsZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDaXJjbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUNpcmNsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFNlY3Vy
aXR5OjpTcXVhcmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcXVhcmUpOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC0yNTIxLDcgKzI1MjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFNlY3VyaXR5KCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAg
ICAgIHJldHVybiBUZXh0U2VjdXJpdHk6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURpc2M6CkBA
IC0yNTQ0LDEzICsyNTQ0LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0RGVjb3JhdGlvblNraXBJbmsgZSkKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcEluazo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RGVjb3JhdGlvblNraXBJ
bms6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgVGV4dERlY29yYXRpb25Ta2lwSW5rOjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQWxsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yNTU5LDcgKzI1NTksNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25Ta2lw
SW5rKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBJbms6
Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC0yNTgwLDE2ICsyNTgwLDE2IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0
VHJhbnNmb3JtIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpDYXBp
dGFsaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNhcGl0YWxpemU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNhcGl0YWxpemUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFRleHRUcmFuc2Zvcm06OlVwcGVyY2FzZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVVcHBlcmNhc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVVwcGVyY2FzZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFRyYW5z
Zm9ybTo6TG93ZXJjYXNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2Vy
Y2FzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG93ZXJjYXNlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpOb25lOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yNTk4LDcgKzI1OTgs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRy
YW5zZm9ybSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVDYXBpdGFsaXplOgogICAgICAgICByZXR1cm4gVGV4dFRyYW5zZm9y
bTo6Q2FwaXRhbGl6ZTsKICAgICBjYXNlIENTU1ZhbHVlVXBwZXJjYXNlOgpAQCAtMjYyMSwyMiAr
MjYyMSwyMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRVVuaWNvZGVCaWRpIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBVQk5vcm1h
bDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRW1iZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW1iZWQ7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVtYmVkKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBPdmVycmlkZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCaWRp
T3ZlcnJpZGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJpZGlPdmVycmlk
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXNvbGF0ZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVJc29sYXRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVJc29sYXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJc29sYXRlT3ZlcnJpZGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSXNvbGF0ZU92ZXJyaWRlOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJc29sYXRlT3ZlcnJpZGUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBsYWludGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVQbGFpbnRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBs
YWludGV4dCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI2NDUsNyArMjY0NSw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJp
ZGkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gVUJOb3JtYWw7CiAgICAgY2FzZSBD
U1NWYWx1ZUVtYmVkOgpAQCAtMjY3NSwxMyArMjY3NSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVXNlckRyYWcgZSkKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGUpIHsKICAgICBjYXNlIFVzZXJEcmFnOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJEcmFnOjpOb25lOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJEcmFnOjpFbGVtZW50
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsZW1lbnQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVsZW1lbnQpOwogICAgICAgICBicmVhazsKICAgICBk
ZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTI2OTIsNyArMjY5Miw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZygpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRv
OgogICAgICAgICByZXR1cm4gVXNlckRyYWc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CkBAIC0yNzEzLDEzICsyNzEzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShVc2VyTW9kaWZ5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBVc2VyTW9kaWZ5OjpSZWFkT25seToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSZWFkT25seTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVhZE9u
bHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0ZToKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWFkV3JpdGU7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlYWRXcml0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVXNlck1vZGlmeTo6UmVhZFdyaXRlUGxhaW50ZXh0T25seToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMjcyOCw3ICsyNzI4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFVzZXJNb2RpZnkoKSBjb25zdAogewogICAgIEFTU0VS
VChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3
aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlUmVhZE9ubHk6CiAg
ICAgICAgIHJldHVybiBVc2VyTW9kaWZ5OjpSZWFkT25seTsKICAgICBjYXNlIENTU1ZhbHVlUmVh
ZFdyaXRlOgpAQCAtMjc0OSwxMyArMjc0OSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVXNlclNlbGVjdCBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgVXNlclNlbGVjdDo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVc2VyU2VsZWN0OjpUZXh0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVRleHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJTZWxlY3Q6OkFsbDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGw7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUFsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI3
NjQsNyArMjc2NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBVc2VyU2VsZWN0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBVc2VyU2VsZWN0
OjpUZXh0OwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtMjc4NywzNCArMjc4NywzNCBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVmVy
dGljYWxBbGlnbiBhKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYSkgewogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6VG9w
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlVG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWZXJ0
aWNhbEFsaWduOjpCb3R0b206Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90
dG9tOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3R0b20pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246Ok1pZGRsZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6
QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCb3R0b207CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRleHRCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2Fs
QWxpZ246OlRleHRUb3A6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dFRv
cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGV4dFRvcCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6U3ViOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVN1YjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U3ViKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpTdXBlcjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdXBlcjsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlU3VwZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRp
Y2FsQWxpZ246OkJhc2VsaW5lTWlkZGxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVdlYmtpdEJhc2VsaW5lTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVXZWJraXRCYXNlbGluZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVy
dGljYWxBbGlnbjo6TGVuZ3RoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlu
dmFsaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUludmFsaWQpOwogICAg
IH0KIH0KIApAQCAtMjgyMiw3ICsyODIyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFZlcnRpY2FsQWxpZ24oKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICBy
ZXR1cm4gVmVydGljYWxBbGlnbjo6VG9wOwogICAgIGNhc2UgQ1NTVmFsdWVCb3R0b206CkBAIC0y
ODU1LDEzICsyODU1LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShWaXNpYmlsaXR5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBW
aXNpYmlsaXR5OjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZp
c2libGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUhpZGRlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29s
bGFwc2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbGxhcHNlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQpAQCAtMjg3MCw3ICsyODcwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFZpc2liaWxpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgogICAgICAg
ICByZXR1cm4gVmlzaWJpbGl0eTo6SGlkZGVuOwogICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgpA
QCAtMjg5MSwyNSArMjg5MSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoV2hpdGVTcGFjZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgV2hpdGVTcGFjZTo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGl0ZVNwYWNlOjpQcmU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUHJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVQcmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoaXRlU3BhY2U6OlByZVdyYXA6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJlV3JhcDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUHJlV3JhcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
V2hpdGVTcGFjZTo6UHJlTGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQ
cmVMaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcmVMaW5lKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGl0ZVNwYWNlOjpOb1dyYXA6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTm93cmFwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVOb3dyYXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoaXRlU3BhY2U6OktI
VE1MTm9XcmFwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdE5vd3Jh
cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlV2Via2l0Tm93cmFwKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGl0ZVNwYWNlOjpCcmVha1NwYWNlczoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVha1NwYWNlczsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlQnJlYWtTcGFjZXMpOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CkBAIC0yOTE4LDcgKzI5MTgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgV2hpdGVTcGFjZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXROb3dyYXA6CiAgICAgICAgIHJl
dHVybiBXaGl0ZVNwYWNlOjpLSFRNTE5vV3JhcDsKICAgICBjYXNlIENTU1ZhbHVlTm93cmFwOgpA
QCAtMjk0NywxNiArMjk0NywxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoV29yZEJyZWFrIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5
cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2Fz
ZSBXb3JkQnJlYWs6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgV29yZEJyZWFrOjpCcmVha0FsbDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVha0FsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQnJlYWtBbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdvcmRCcmVhazo6
S2VlcEFsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVLZWVwQWxsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVLZWVwQWxsKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBXb3JkQnJlYWs6OkJyZWFrV29yZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVCcmVha1dvcmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUJyZWFrV29yZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI5NjUsNyArMjk2NSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXb3JkQnJl
YWsoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlQnJlYWtBbGw6CiAgICAgICAgIHJldHVybiBXb3JkQnJlYWs6OkJyZWFrQWxs
OwogICAgIGNhc2UgQ1NTVmFsdWVLZWVwQWxsOgpAQCAtMjk4OCwxMyArMjk4OCwxMyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcmZs
b3dXcmFwIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBPdmVyZmxvd1dyYXA6Ok5vcm1hbDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
T3ZlcmZsb3dXcmFwOjpBbnl3aGVyZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBbnl3aGVyZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQW55d2hlcmUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93V3JhcDo6QnJlYWtXb3JkOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJyZWFrV29yZDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQnJlYWtXb3JkKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtMzAwMyw3ICszMDAzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIE92ZXJmbG93V3JhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJ
RCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1
ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6CiAgICAgICAgIHJl
dHVybiBPdmVyZmxvd1dyYXA6OkJyZWFrV29yZDsKICAgICBjYXNlIENTU1ZhbHVlQW55d2hlcmU6
CkBAIC0zMDI0LDEwICszMDI0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0RGlyZWN0aW9uIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBUZXh0RGlyZWN0aW9uOjpMVFI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTHRyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMdHIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHREaXJlY3Rpb246OlJUTDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSdGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJ0bCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMwMzYsNyArMzAzNiw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0
aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUx0cjoKICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb246OkxUUjsKICAg
ICBjYXNlIENTU1ZhbHVlUnRsOgpAQCAtMzA1NSwxNiArMzA1NSwxNiBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoV3JpdGluZ01vZGUgZSkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsVGI7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUhvcml6b250YWxUYik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVZlcnRpY2FsUmw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVZlcnRpY2FsUmwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0
VG9SaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbExyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJ0aWNhbExyKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3A6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbEJ0OworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsQnQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC0zMDczLDcgKzMwNzMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgV3JpdGluZ01vZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbFRiOgogICAgIGNhc2UgQ1NT
VmFsdWVMcjoKICAgICBjYXNlIENTU1ZhbHVlTHJUYjoKQEAgLTMxMDIsMTAgKzMxMDIsMTAgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRl
eHRDb21iaW5lIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0Q29tYmluZTo6Tm9uZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0
Q29tYmluZTo6SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVI
b3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFs
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzExNCw3ICszMTE0LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBUZXh0Q29tYmluZTo6Tm9uZTsKICAgICBjYXNlIENT
U1ZhbHVlSG9yaXpvbnRhbDoKQEAgLTMxMzMsMTMgKzMxMzMsMTMgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJ1YnlQb3NpdGlvbiBwb3Np
dGlvbikKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAgY2FzZSBSdWJ5UG9zaXRpb246OkJlZm9y
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZWZvcmU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJlZm9yZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUnVieVBvc2l0aW9uOjpBZnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBZnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWZ0ZXIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFJ1YnlQb3NpdGlvbjo6SW50ZXJDaGFyYWN0ZXI6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50ZXJDaGFyYWN0ZXI7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUludGVyQ2hhcmFjdGVyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQpAQCAtMzE0OCw3ICszMTQ4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJ1YnlQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dp
dGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCZWZvcmU6CiAgICAg
ICAgIHJldHVybiBSdWJ5UG9zaXRpb246OkJlZm9yZTsKICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXI6
CkBAIC0zMTY5LDEwICszMTY5LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0T3ZlcmZsb3cgb3ZlcmZsb3cpCiAgICAgc2V0UHJp
bWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChv
dmVyZmxvdykgewogICAgIGNhc2UgVGV4dE92ZXJmbG93OjpDbGlwOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNsaXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUNsaXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRPdmVyZmxvdzo6RWxsaXBz
aXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWxsaXBzaXM7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVsbGlwc2lzKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtMzE4MSw3ICszMTgxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPdmVyZmxvdygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVDbGlwOgogICAgICAgICBy
ZXR1cm4gVGV4dE92ZXJmbG93OjpDbGlwOwogICAgIGNhc2UgQ1NTVmFsdWVFbGxpcHNpczoKQEAg
LTMyMDAsMTAgKzMyMDAsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRFbXBoYXNpc0ZpbGwgZmlsbCkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGZpbGwp
IHsKICAgICBjYXNlIFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVGaWxsZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUZpbGxlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzRmlsbDo6
T3BlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcGVuOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtMzIxMiw3ICszMjEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc0ZpbGwoKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRmlsbGVkOgogICAgICAgICBy
ZXR1cm4gVGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkOwogICAgIGNhc2UgQ1NTVmFsdWVPcGVuOgpA
QCAtMzIzMSwyNSArMzIzMSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEVtcGhhc2lzTWFyayBtYXJrKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAobWFy
aykgewogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6RG90OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZURvdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
RG90KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDaXJjbGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDaXJjbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHRFbXBoYXNpc01hcms6OkRvdWJsZUNpcmNsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEb3VibGVDaXJjbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZURvdWJsZUNpcmNsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lz
TWFyazo6VHJpYW5nbGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVHJpYW5n
bGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRyaWFuZ2xlKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpTZXNhbWU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VzYW1lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTZXNhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNp
c01hcms6Ok5vbmU6CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpBdXRvOgogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFyazo6Q3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
MzI1OCw3ICszMjU4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRFbXBoYXNpc01hcmsoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFRl
eHRFbXBoYXNpc01hcms6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURvdDoKQEAgLTMyODUsMTMg
KzMyODUsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKFRleHRPcmllbnRhdGlvbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4
dE9yaWVudGF0aW9uOjpTaWRld2F5czoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTaWRld2F5czsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2lkZXdheXMp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRPcmllbnRhdGlvbjo6TWl4ZWQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWl4ZWQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU1peGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3Jp
ZW50YXRpb246OlVwcmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXBy
aWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVXByaWdodCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMzMDAsNyArMzMwMCw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3JpZW50YXRpb24oKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
U2lkZXdheXM6CiAgICAgICAgIHJldHVybiBUZXh0T3JpZW50YXRpb246OlNpZGV3YXlzOwogICAg
IGNhc2UgQ1NTVmFsdWVTaWRld2F5c1JpZ2h0OgpAQCAtMzMyNSwzNyArMzMyNSwzNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUG9pbnRl
ckV2ZW50cyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6Tm9uZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2lu
dGVyRXZlbnRzOjpTdHJva2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Ry
b2tlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJva2UpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OkZpbGw6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRmlsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlRmlsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6UGFpbnRl
ZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWludGVkOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYWludGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQb2ludGVyRXZlbnRzOjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVZpc2libGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2li
bGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlZpc2libGVTdHJv
a2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZVN0cm9rZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVmlzaWJsZVN0cm9rZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6VmlzaWJsZUZpbGw6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZUZpbGw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVZpc2libGVGaWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQ
b2ludGVyRXZlbnRzOjpWaXNpYmxlUGFpbnRlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVWaXNpYmxlUGFpbnRlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlVmlzaWJsZVBhaW50ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVu
dHM6OkJvdW5kaW5nQm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdW5k
aW5nQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3VuZGluZ0JveCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6QXV0bzoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRz
OjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CkBAIC0zMzY0LDcgKzMzNjQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgUG9pbnRlckV2ZW50cygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJ
RCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1
ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBbGw6CiAgICAgICAgIHJldHVybiBQ
b2ludGVyRXZlbnRzOjpBbGw7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC0zNDAxLDI1ICsz
NDAxLDI1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShLZXJuaW5nIGtlcm5pbmcpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChrZXJuaW5nKSB7CiAgICAgY2FzZSBL
ZXJuaW5nOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBLZXJuaW5nOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwp
OwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBLZXJuaW5nOjpOb1NoaWZ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vbmUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgS2VybmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dp
dGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAg
ICByZXR1cm4gS2VybmluZzo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpAQCAtMzQ0
MCwxOSArMzQ0MCwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoT2JqZWN0Rml0IGZpdCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGZpdCkgewogICAgIGNhc2Ug
T2JqZWN0Rml0OjpGaWxsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGw7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpbGwpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE9iamVjdEZpdDo6Q29udGFpbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb250YWluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
b250YWluKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPYmplY3RGaXQ6OkNvdmVyOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvdmVyOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVDb3Zlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2JqZWN0
Rml0OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE9iamVjdEZpdDo6U2NhbGVEb3duOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVNjYWxlRG93bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2Nh
bGVEb3duKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzQ2MSw3ICszNDYxLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9iamVjdEZpdCgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVGaWxsOgogICAgICAgICByZXR1cm4gT2JqZWN0Rml0OjpGaWxsOwogICAgIGNhc2Ug
Q1NTVmFsdWVDb250YWluOgpAQCAtMzQ4NCwyOCArMzQ4NCwyOCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFNtb290aGluZ01vZGUg
c21vb3RoaQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoc21vb3RoaW5nKSB7CiAgICAgY2FzZSBGb250U21vb3RoaW5nTW9k
ZTo6QXV0b1Ntb290aGluZzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRv
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6Ok5vU21vb3RoaW5nOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vbmUpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250U21vb3RoaW5n
TW9kZTo6QW50aWFsaWFzZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQW50
aWFsaWFzZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFudGlhbGlhc2Vk
KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6OlN1YnBpeGVs
QW50aWFsaWFzZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VicGl4ZWxB
bnRpYWxpYXNlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3VicGl4ZWxB
bnRpYWxpYXNlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgog
ICAgICAgICByZXR1cm4gRm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmc7CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CkBAIC0zNTI4LDIyICszNTI4LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250U21hbGxDYXBzIHNtYWxs
Q2FwcykKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKHNtYWxsQ2FwcykgewogICAgIGNhc2UgRm9udFNtYWxsQ2Fwczo6T2Zm
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgRm9udFNtYWxsQ2Fwczo6T246Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U21hbGxDYXBzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbWFsbENhcHMp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTm9ybWFsKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEZvbnRTbWFsbENhcHMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU21hbGxDYXBzOgogICAgICAg
ICByZXR1cm4gRm9udFNtYWxsQ2Fwczo6T247CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKQEAg
LTM1NjEsMTYgKzM1NjEsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRSZW5kZXJpbmdNb2RlIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBUZXh0UmVuZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmc6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01v
ZGU6Ok9wdGltaXplU3BlZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0
aW1pemVTcGVlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3B0aW1pemVT
cGVlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGlt
aXplTGVnaWJpbGl0eToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6
ZUxlZ2liaWxpdHk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGltaXpl
TGVnaWJpbGl0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6
Okdlb21ldHJpY1ByZWNpc2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVH
ZW9tZXRyaWNQcmVjaXNpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdl
b21ldHJpY1ByZWNpc2lvbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM1NzksNyAr
MzU3OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBU
ZXh0UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFJlbmRl
cmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nOwogICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZVNw
ZWVkOgpAQCAtMzYwMiwxMyArMzYwMiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoSHlwaGVucyBoeXBoZW5zKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaHlw
aGVucykgewogICAgIGNhc2UgSHlwaGVuczo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25l
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIeXBoZW5zOjpNYW51YWw6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWFudWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNYW51YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEh5cGhlbnM6OkF1
dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTM2MTcsNyArMzYxNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBIeXBoZW5zKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBIeXBoZW5z
OjpOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVNYW51YWw6CkBAIC0zNjM4LDEzICszNjM4LDEzIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShM
aW5lU25hcCBncmlkU25hcCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGdyaWRTbmFwKSB7CiAgICAgY2FzZSBMaW5lU25h
cDo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBMaW5lU25hcDo6QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQmFzZWxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5l
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lU25hcDo6Q29udGFpbjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250YWluOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVDb250YWluKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzY1
Myw3ICszNjUzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIExpbmVTbmFwKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaW5lU25hcDo6Tm9u
ZTsKICAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6CkBAIC0zNjc0LDEwICszNjc0LDEwIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5l
QWxpZ24gbGluZUFsaWduKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAobGluZUFsaWduKSB7CiAgICAgY2FzZSBMaW5lQWxp
Z246Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUFsaWduOjpFZGdlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVFZGdlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRWRnZXMpOwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zNjg2LDcgKzM2ODYsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUFsaWduKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CiAgICAgICAgIHJldHVybiBMaW5lQWxpZ246Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUVkZ2Vz
OgpAQCAtMzcwNSwxOSArMzcwNSwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU3BlYWtBcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgU3BlYWtBczo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
cm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTcGVha0FzOjpTcGVsbE91dDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTcGVsbE91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlU3BlbGxPdXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNwZWFrQXM6OkRpZ2l0
czoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaWdpdHM7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURpZ2l0cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgU3BlYWtBczo6TGl0ZXJhbFB1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxpdGVyYWxQdW5jdHVhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTGl0ZXJhbFB1bmN0dWF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBT
cGVha0FzOjpOb1B1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vUHVuY3R1YXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vUHVu
Y3R1YXRpb24pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zNzI2LDcgKzM3MjYsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3JkZXIoKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlTG9naWNhbDoKICAgICAgICAgcmV0dXJuIE9yZGVyOjpMb2dpY2FsOwogICAgIGNhc2Ug
Q1NTVmFsdWVWaXN1YWw6CkBAIC0zNzQ1LDEwICszNzQ1LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPcmRlciBlKQogICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgT3JkZXI6OkxvZ2ljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTG9naWNhbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG9n
aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT3JkZXI6OlZpc3VhbDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXN1YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVZpc3VhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM3NTcs
NyArMzc1Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBPcHRpb25TZXQ8U3BlYWtBcz4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gT3B0
aW9uU2V0PFNwZWFrQXM+IHsgfTsKICAgICBjYXNlIENTU1ZhbHVlU3BlbGxPdXQ6CkBAIC0zNzgy
LDU4ICszNzgyLDU4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShCbGVuZE1vZGUgYmxlbmRNb2RlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmxlbmRNb2RlKSB7
CiAgICAgY2FzZSBCbGVuZE1vZGU6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1h
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpNdWx0aXBseToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTXVsdGlwbHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJs
ZW5kTW9kZTo6U2NyZWVuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjcmVl
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2NyZWVuKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6Ok92ZXJsYXk6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlT3ZlcmxheTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlT3ZlcmxheSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpEYXJrZW46
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGFya2VuOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEYXJrZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsZW5kTW9kZTo6TGlnaHRlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
aWdodGVuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaWdodGVuKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6OkNvbG9yRG9kZ2U6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3JEb2RnZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQ29sb3JEb2RnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxl
bmRNb2RlOjpDb2xvckJ1cm46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29s
b3JCdXJuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xvckJ1cm4pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6SGFyZExpZ2h0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhcmRMaWdodDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlSGFyZExpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVu
ZE1vZGU6OlNvZnRMaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb2Z0
TGlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvZnRMaWdodCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpEaWZmZXJlbmNlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURpZmZlcmVuY2U7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZURpZmZlcmVuY2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJs
ZW5kTW9kZTo6RXhjbHVzaW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV4
Y2x1c2lvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRXhjbHVzaW9uKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6Okh1ZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVIdWU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUh1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpTYXR1cmF0aW9u
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNhdHVyYXRpb247CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNhdHVyYXRpb24pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJsZW5kTW9kZTo6Q29sb3I6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ29sb3I7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbG9yKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6Okx1bWlub3NpdHk6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHVtaW5vc2l0eTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTHVtaW5vc2l0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QmxlbmRNb2RlOjpQbHVzRGFya2VyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVBsdXNEYXJrZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsdXNEYXJr
ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6UGx1c0xpZ2h0ZXI6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtMzg0Miw3ICszODQyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJl
dHVybiBCbGVuZE1vZGU6Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbHk6CkBAIC0z
ODkzLDEwICszODkzLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShJc29sYXRpb24gaXNvbGF0aW9uKQogICAgIHNldFByaW1pdGl2ZVVu
aXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaXNvbGF0aW9u
KSB7CiAgICAgY2FzZSBJc29sYXRpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXNvbGF0aW9uOjpJc29sYXRlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlzb2xhdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUlzb2xhdGUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM5MDYsNyArMzkwNiw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJc29sYXRpb24g
aXNvbGF0aW9uKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IElzb2xhdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIElzb2xhdGlvbjo6QXV0bzsK
ICAgICBjYXNlIENTU1ZhbHVlSXNvbGF0ZToKQEAgLTM5MjUsMTMgKzM5MjUsMTMgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVDYXAg
ZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIExpbmVDYXA6OkJ1dHQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQnV0dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQnV0dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUNhcDo6Um91bmQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm91bmQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVJvdW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5l
Q2FwOjpTcXVhcmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcXVhcmUpOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC0zOTQwLDcgKzM5NDAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUNhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCdXR0OgogICAgICAgICBy
ZXR1cm4gTGluZUNhcDo6QnV0dDsKICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6CkBAIC0zOTYxLDEz
ICszOTYxLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShMaW5lSm9pbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTGluZUpvaW46
Ok1pdGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pdGVyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNaXRlcik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUpvaW46OlJvdW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVJvdW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSb3VuZCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUpvaW46OkJldmVsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJldmVsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVCZXZlbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM5NzYsNyArMzk3Niw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lSm9pbigp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVNaXRlcjoKICAgICAgICAgcmV0dXJuIExpbmVKb2luOjpNaXRlcjsKICAgICBjYXNl
IENTU1ZhbHVlUm91bmQ6CkBAIC0zOTk3LDEwICszOTk3LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXaW5kUnVsZSBlKQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoZSkgewogICAgIGNhc2UgV2luZFJ1bGU6Ok5vblplcm86Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTm9uemVybzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9uemVybyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2luZFJ1bGU6OkV2ZW5PZGQ6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRXZlbm9kZDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlRXZlbm9kZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTQwMDksNyArNDAwOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBXaW5kUnVsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJvOgogICAgICAgICByZXR1cm4g
V2luZFJ1bGU6Ok5vblplcm87CiAgICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6CkBAIC00MDI5LDQw
ICs0MDI5LDQwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShBbGlnbm1lbnRCYXNlbGluZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
QWxpZ25tZW50QmFzZWxpbmU6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkJhc2VsaW5lOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxp
Z25tZW50QmFzZWxpbmU6OkJlZm9yZUVkZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQmVmb3JlRWRnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmVm
b3JlRWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OlRl
eHRCZWZvcmVFZGdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZv
cmVFZGdlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0QmVmb3JlRWRn
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Ok1pZGRsZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QWxpZ25tZW50QmFzZWxpbmU6OkNlbnRyYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ2VudHJhbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudHJh
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkFmdGVyRWRn
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlckVkZ2U7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFmdGVyRWRnZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OlRleHRBZnRlckVkZ2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEFmdGVyRWRnZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVGV4dEFmdGVyRWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QWxpZ25tZW50QmFzZWxpbmU6OklkZW9ncmFwaGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUlkZW9ncmFwaGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVJZGVvZ3JhcGhpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OkFscGhhYmV0aWM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxwaGFi
ZXRpYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxwaGFiZXRpYyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Okhhbmdpbmc6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGFuZ2luZzsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlSGFuZ2luZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxp
Z25tZW50QmFzZWxpbmU6Ok1hdGhlbWF0aWNhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNYXRoZW1hdGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1hdGhlbWF0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQwNzEsNyArNDA3
MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGln
bm1lbnRCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQWxpZ25tZW50QmFz
ZWxpbmU6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgpAQCAtNDExMCwxMCArNDEx
MCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQm9yZGVyQ29sbGFwc2UgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJvcmRlckNv
bGxhcHNlOjpTZXBhcmF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBh
cmF0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VwYXJhdGUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEJvcmRlckNvbGxhcHNlOjpDb2xsYXBzZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQ29sbGFwc2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00
MTIyLDcgKzQxMjIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgQm9yZGVyQ29sbGFwc2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6CiAgICAgICAgIHJldHVybiBC
b3JkZXJDb2xsYXBzZTo6U2VwYXJhdGU7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbGxhcHNlOgpAQCAt
NDE0MSwxMCArNDE0MSwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQm9yZGVyRml0IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBC
b3JkZXJGaXQ6OkJvcmRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3Jk
ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlcik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQm9yZGVyRml0OjpMaW5lczoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVMaW5lczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TGluZXMpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MTUzLDcgKzQxNTMsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0KCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUJvcmRlcjoKICAgICAgICAgcmV0dXJuIEJvcmRlckZpdDo6Qm9yZGVyOwogICAgIGNh
c2UgQ1NTVmFsdWVMaW5lczoKQEAgLTQxNzIsMTkgKzQxNzIsMTkgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEltYWdlUmVuZGVyaW5nIGlt
YWdlUmVuZGUKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGltYWdlUmVuZGVyaW5nKSB7CiAgICAgY2FzZSBJbWFnZVJlbmRl
cmluZzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6Q3Jpc3BFZGdlczoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVDcmlzcEVkZ2VzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVDcmlzcEVkZ2VzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmlu
Zzo6UGl4ZWxhdGVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBpeGVsYXRl
ZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGl4ZWxhdGVkKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplUXVhbGl0eTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlT3B0aW1pemVRdWFsaXR5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNDE5Myw3ICs0MTkzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIEltYWdlUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVy
biBJbWFnZVJlbmRlcmluZzo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0T3B0aW1pemVD
b250cmFzdDoKQEAgLTQyMjAsMTAgKzQyMjAsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKElucHV0U2VjdXJpdHkgZSkKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGUpIHsKICAgICBjYXNlIElucHV0U2VjdXJpdHk6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
QXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5wdXRTZWN1cml0eTo6Tm9uZToKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDIz
Miw3ICs0MjMyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIElucHV0U2VjdXJpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIElucHV0U2Vj
dXJpdHk6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC00MjUxLDE0ICs0MjUxLDE0
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShUcmFuc2Zvcm1TdHlsZTNEIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1T
dHlsZTNEOjpGbGF0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsYXQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsYXQpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0Q6OlByZXNlcnZlM0Q6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUHJlc2VydmUzZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlUHJlc2VydmUzZCk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfVFJB
TlNGT1JNX1NUWUxFX09QVElNSVpFRF8zRCkKICAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0Q6Ok9w
dGltaXplZDNEOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplZDNk
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRpbWl6ZWQzZCk7CiAgICAg
ICAgIGJyZWFrOwogI2VuZGlmCiAgICAgfQpAQCAtNDI2OCw3ICs0MjY4LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYW5zZm9ybVN0eWxlM0QoKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlRmxhdDoKICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybVN0eWxlM0Q6OkZsYXQ7CiAgICAg
Y2FzZSBDU1NWYWx1ZVByZXNlcnZlM2Q6CkBAIC00MjkxLDE5ICs0MjkxLDE5IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFuc2Zvcm1C
b3ggYm94KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoYm94KSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OlN0cm9rZUJv
eDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJva2VCb3g7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0cm9rZUJveCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVHJhbnNmb3JtQm94OjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNvbnRlbnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUNvbnRlbnRCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybUJveDo6
Qm9yZGVyQm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm9yZGVyQm94KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OkZpbGxCb3g6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRmlsbEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlRmlsbEJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtQm94OjpW
aWV3Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpZXdCb3gpOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CkBAIC00MzEyLDcgKzQzMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtQm94KCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0
Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0cm9rZUJveDoKICAg
ICAgICAgcmV0dXJuIFRyYW5zZm9ybUJveDo6U3Ryb2tlQm94OwogICAgIGNhc2UgQ1NTVmFsdWVD
b250ZW50Qm94OgpAQCAtNDMzNywxMyArNDMzNywxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29sdW1uQXhpcyBlKQogICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgQ29sdW1uQXhpczo6SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVIb3Jpem9udGFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5BeGlz
OjpWZXJ0aWNhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVmVydGljYWwpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbHVtbkF4aXM6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0
byk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQzNTIsNyArNDM1Miw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUhvcml6b250YWw6CiAgICAgICAgIHJldHVybiBDb2x1bW5BeGlzOjpIb3Jpem9udGFsOwog
ICAgIGNhc2UgQ1NTVmFsdWVWZXJ0aWNhbDoKQEAgLTQzNzMsMTAgKzQzNzMsMTAgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtblBy
b2dyZXNzaW9uIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBDb2x1bW5Qcm9ncmVzc2lvbjo6
Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb2x1bW5Qcm9ncmVzc2lvbjo6UmV2ZXJzZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVSZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVSZXZlcnNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDM4NSw3ICs0Mzg1LDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblBy
b2dyZXNzaW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIENvbHVtblByb2dyZXNz
aW9uOjpOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CkBAIC00NDQ2LDEzICs0NDQ2
LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShCdWZmZXJlZFJlbmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQnVmZmVy
ZWRSZW5kZXJpbmc6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OkR5bmFtaWM6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRHluYW1pYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlRHluYW1pYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnVmZmVyZWRSZW5k
ZXJpbmc6OlN0YXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXRpYyk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTQ0NjEsNyArNDQ2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCdWZmZXJlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRv
OgogICAgICAgICByZXR1cm4gQnVmZmVyZWRSZW5kZXJpbmc6OkF1dG87CiAgICAgY2FzZSBDU1NW
YWx1ZUR5bmFtaWM6CkBAIC00NDgyLDEzICs0NDgyLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2xvckludGVycG9sYXRpb24gZSkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIENvbG9ySW50ZXJwb2xhdGlvbjo6QXV0bzoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvckludGVy
cG9sYXRpb246OlNSR0I6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU1JHQjsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU1JHQik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ29sb3JJbnRlcnBvbGF0aW9uOjpMaW5lYXJSR0I6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTGluZWFyUkdCOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVMaW5lYXJSR0IpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NDk3
LDcgKzQ0OTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgQ29sb3JJbnRlcnBvbGF0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNSR0I6CiAgICAgICAgIHJldHVybiBDb2xv
ckludGVycG9sYXRpb246OlNSR0I7CiAgICAgY2FzZSBDU1NWYWx1ZUxpbmVhclJHQjoKQEAgLTQ1
MTgsMTMgKzQ1MTgsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKENvbG9yUmVuZGVyaW5nIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5
cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2Fz
ZSBDb2xvclJlbmRlcmluZzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb2xvclJlbmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplUXVhbGl0eTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlT3B0aW1pemVRdWFsaXR5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNDUzMyw3ICs0NTMzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIENvbG9yUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ6CiAgICAg
ICAgIHJldHVybiBDb2xvclJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDsKICAgICBjYXNlIENTU1Zh
bHVlT3B0aW1pemVRdWFsaXR5OgpAQCAtNDU1NCw0MCArNDU1NCw0MCBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRG9taW5hbnRCYXNlbGlu
ZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFu
dEJhc2VsaW5lOjpVc2VTY3JpcHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
VXNlU2NyaXB0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVVc2VTY3JpcHQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Ok5vQ2hhbmdlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vQ2hhbmdlOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb0NoYW5nZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRG9taW5hbnRCYXNlbGluZTo6UmVzZXRTaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVJlc2V0U2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
UmVzZXRTaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpD
ZW50cmFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRyYWw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRyYWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6VGV4
dEJlZm9yZUVkZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEJlZm9y
ZUVkZ2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRCZWZvcmVFZGdl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpUZXh0QWZ0ZXJF
ZGdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRBZnRlckVkZ2UpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OklkZW9ncmFwaGljOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlkZW9ncmFwaGljOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVJZGVvZ3JhcGhpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRG9taW5hbnRCYXNlbGluZTo6QWxwaGFiZXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBbHBoYWJldGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBbHBoYWJldGljKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5l
OjpIYW5naW5nOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhbmdpbmc7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhhbmdpbmcpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Ok1hdGhlbWF0aWNhbDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXRoZW1hdGljYWw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU1hdGhlbWF0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTQ1OTYsNyArNDU5Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBEb21pbmFudEJhc2VsaW5lKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVy
biBEb21pbmFudEJhc2VsaW5lOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVVc2VTY3JpcHQ6CkBA
IC00NjM1LDE2ICs0NjM1LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShTaGFwZVJlbmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVu
aXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAg
IGNhc2UgU2hhcGVSZW5kZXJpbmc6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2hhcGVSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU2hhcGVSZW5kZXJpbmc6OkNyaXNwRWRnZXM6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ3Jpc3BlZGdlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ3Jpc3BlZGdlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2hhcGVSZW5k
ZXJpbmc6Okdlb21ldHJpY1ByZWNpc2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVHZW9tZXRyaWNQcmVjaXNpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUdlb21ldHJpY1ByZWNpc2lvbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ2
NTMsNyArNDY1Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBTaGFwZVJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
IAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gU2hhcGVS
ZW5kZXJpbmc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ6CkBAIC00Njc2
LDEzICs0Njc2LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShUZXh0QW5jaG9yIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0
QW5jaG9yOjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFRleHRBbmNob3I6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1p
ZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFuY2hvcjo6RW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDY5MSw3ICs0
NjkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRBbmNob3IoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBUZXh0QW5jaG9yOjpTdGFy
dDsKICAgICBjYXNlIENTU1ZhbHVlTWlkZGxlOgpAQCAtNDcyNiwxMCArNDcyNiwxMCBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVmVjdG9y
RWZmZWN0IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBWZWN0b3JFZmZlY3Q6Ok5vbmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVjdG9y
RWZmZWN0OjpOb25TY2FsaW5nU3Ryb2tlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU5vblNjYWxpbmdTdHJva2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU5vblNjYWxpbmdTdHJva2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NzM4LDcg
KzQ3MzgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VmVjdG9yRWZmZWN0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBWZWN0b3JFZmZlY3Q6
Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZU5vblNjYWxpbmdTdHJva2U6CkBAIC00NzU3LDEwICs0
NzU3LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShNYXNrVHlwZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTWFza1R5cGU6Okx1
bWluYW5jZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbmFuY2U7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUx1bWluYW5jZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTWFza1R5cGU6OkFscGhhOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUFscGhhOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbHBo
YSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ3NjksNyArNDc2OSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBNYXNrVHlwZSgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVMdW1pbmFuY2U6CiAgICAgICAgIHJldHVybiBNYXNrVHlwZTo6THVtaW5hbmNlOwogICAgIGNh
c2UgQ1NTVmFsdWVBbHBoYToKQEAgLTQ3ODgsMjkgKzQ3ODgsMjkgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU0JveFR5cGUgY3NzQm94
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoY3NzQm94KSB7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpNYXJnaW5Cb3g6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWFyZ2luQm94OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNYXJnaW5Cb3gpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU0JveFR5cGU6OkJvcmRlckJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVCb3JkZXJCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRl
ckJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTQm94VHlwZTo6UGFkZGluZ0JveDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWRkaW5nQm94OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYWRkaW5nQm94KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NCb3hUeXBlOjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNvbnRlbnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNvbnRlbnRCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6OkZpbGxC
b3g6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmlsbEJveDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmlsbEJveCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ1NTQm94VHlwZTo6U3Ryb2tlQm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVN0cm9rZUJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Ry
b2tlQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpWaWV3Qm94Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpZXdCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU0JveFR5cGU6OkJveE1pc3Npbmc6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00
ODQ2LDU2ICs0ODQ2LDU2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShJdGVtUG9zaXRpb24gaXRlbVBvc2l0aW9uCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChpdGVt
UG9zaXRpb24pIHsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6TGVnYWN5OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZ2FjeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTGVnYWN5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246
OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSXRlbVBvc2l0aW9uOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6U3RyZXRjaDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVTdHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9z
aXRpb246OkJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2Vs
aW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYXNlbGluZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpMYXN0QmFzZWxpbmU6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGFzdEJhc2VsaW5lOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVMYXN0QmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEl0ZW1Qb3NpdGlvbjo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlN0YXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9u
OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEl0ZW1Qb3NpdGlvbjo6U2VsZlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNlbGZTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VsZlN0
YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlNlbGZFbmQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VsZkVuZDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU2VsZkVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SXRlbVBvc2l0aW9uOjpGbGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRmxleFN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGV4U3Rh
cnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6RmxleEVuZDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGV4RW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtUG9zaXRpb246OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVm
dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
UmlnaHQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJdGVtUG9zaXRpb24oKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVMZWdhY3k6CiAgICAgICAgIHJldHVybiBJdGVtUG9zaXRpb246
OkxlZ2FjeTsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKQEAgLTQ5NDEsMjAgKzQ5NDEsMjAgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92
ZXJmbG93QWxpZ25tZW50IG92ZXJmbG8KICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKG92ZXJmbG93QWxpZ25tZW50KSB7CiAg
ICAgY2FzZSBPdmVyZmxvd0FsaWdubWVudDo6RGVmYXVsdDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVEZWZhdWx0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVEZWZhdWx0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvd0FsaWdubWVudDo6
VW5zYWZlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVuc2FmZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVW5zYWZlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBPdmVyZmxvd0FsaWdubWVudDo6U2FmZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTYWZlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTYWZl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3dBbGlnbm1lbnQoKSBjb25zdAogewotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVVbnNhZmU6CiAgICAgICAgIHJldHVybiBPdmVyZmxvd0FsaWdu
bWVudDo6VW5zYWZlOwogICAgIGNhc2UgQ1NTVmFsdWVTYWZlOgpAQCAtNDk3Miw0MSArNDk3Miw0
MSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQ29udGVudFBvc2l0aW9uIGNvbnRlbnRQbwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY29udGVudFBvc2l0aW9uKSB7
CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpCYXNl
bGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmFzZWxpbmUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6TGFzdEJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUxhc3RCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTGFzdEJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250
ZW50UG9zaXRpb246OkNlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
ZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlU3RhcnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlv
bjo6RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDb250ZW50UG9zaXRpb246OkZsZXhTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVGbGV4U3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZs
ZXhTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpGbGV4
RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhFbmQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsZXhFbmQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OlJpZ2h0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnRQb3NpdGlvbigp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0
dXJuIENvbnRlbnRQb3NpdGlvbjo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGluZToK
QEAgLTUwNDIsMjYgKzUwNDIsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbnRlbnREaXN0cmlidXRpb24gY29udGUKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGNvbnRlbnREaXN0cmlidXRpb24pIHsKICAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OkRl
ZmF1bHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVmYXVsdCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6U3BhY2VCZXR3ZWVuOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlU3BhY2VCZXR3ZWVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b250ZW50RGlzdHJpYnV0aW9uOjpTcGFjZUFyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTcGFjZUFyb3VuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU3BhY2VBcm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnREaXN0cmli
dXRpb246OlNwYWNlRXZlbmx5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNw
YWNlRXZlbmx5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZUV2ZW5s
eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRj
aDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29u
dGVudERpc3RyaWJ1dGlvbigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNw
YWNlQmV0d2VlbjoKICAgICAgICAgcmV0dXJuIENvbnRlbnREaXN0cmlidXRpb246OlNwYWNlQmV0
d2VlbjsKICAgICBjYXNlIENTU1ZhbHVlU3BhY2VBcm91bmQ6CkBAIC01MDgxLDcgKzUwODEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFpvb20o
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNl
IENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gVGV4dFpvb206Ok5vcm1hbDsKICAgICBj
YXNlIENTU1ZhbHVlUmVzZXQ6CkBAIC01MTAwLDE1ICs1MTAwLDE1IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0Wm9vbSB0ZXh0Wm9v
bSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKHRleHRab29tKSB7CiAgICAgY2FzZSBUZXh0Wm9vbTo6Tm9ybWFsOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVGV4
dFpvb206OlJlc2V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlc2V0Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZXNldCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3Jt
YWwpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoVG91Y2hBY3Rpb24gdG91Y2hBY3Rpb24pCkBAIC01MTE3LDIyICs1MTE3LDIyIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShU
b3VjaEFjdGlvbiB0b3VjaEFjdGlvbikKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHRvdWNoQWN0aW9uKSB7CiAgICAgY2Fz
ZSBUb3VjaEFjdGlvbjo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
dXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hbmlwdWxhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTWFuaXB1bGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
b3VjaEFjdGlvbjo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25l
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6UGFuWDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVQYW5YOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYW5Y
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6UGFuWToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYW5ZOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVQYW5ZKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6
UGluY2hab29tOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBpbmNoWm9vbTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGluY2hab29tKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQpAQCAtNTE0MCw3ICs1MTQwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRvdWNoQWN0aW9uIHRvdWNoQWN0
aW9uKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9wdGlv
blNldDxUb3VjaEFjdGlvbj4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUb3VjaEFjdGlv
bjo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlTWFuaXB1bGF0aW9uOgpAQCAtNTE2NiwxMyArNTE2
NiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoU2Nyb2xsU25hcFN0cmljdG5lc3Mgc3RyaQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoc3RyaWN0bmVzcykgewog
ICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Tm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6OlBy
b3hpbWl0eToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm94aW1pdHk7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVByb3hpbWl0eSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6Ok1hbmRhdG9yeToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYW5kYXRvcnk7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU1hbmRhdG9yeSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTUxODAsNyArNTE4MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwU3RyaWN0bmVzcyBzdHJpCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU2Nyb2xsU25hcFN0cmljdG5lc3MoKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBTY3JvbGxTbmFwU3RyaWN0bmVzczo6Tm9uZTsKICAg
ICBjYXNlIENTU1ZhbHVlUHJveGltaXR5OgpAQCAtNTE5OSwxOSArNTE5OSwxOSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25h
cEF4aXMgYXhpcykKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZB
TFVFX0lEKTsKICAgICBzd2l0Y2ggKGF4aXMpIHsKICAgICBjYXNlIFNjcm9sbFNuYXBBeGlzOjpY
QXhpczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVYOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVYKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3Jv
bGxTbmFwQXhpczo6WUF4aXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlWSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OkJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUJsb2NrOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9j
ayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OklubGluZToKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUlubGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Ny
b2xsU25hcEF4aXM6OkJvdGg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90
aDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm90aCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTUyMTksNyArNTIxOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwQXhpcyBheGlzKQog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNjcm9sbFNuYXBB
eGlzKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVYOgogICAgICAgICByZXR1cm4gU2Nyb2xsU25hcEF4aXM6OlhBeGlzOwogICAg
IGNhc2UgQ1NTVmFsdWVZOgpAQCAtNTI0MiwxNiArNTI0MiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcEF4aXNBbGln
blR5cGUgdAogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5
cGU6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5
cGU6OkNlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6OkVuZDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTUyNTksNyArNTI1OSw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShT
Y3JvbGxTbmFwQXhpc0FsaWduVHlwZSB0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAg
ICAgIHJldHVybiBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKICAgICBjYXNlIENTU1Zh
bHVlU3RhcnQ6CkBAIC01MjgwLDEwICs1MjgwLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwU3RvcCBzbmFwU3RvcCkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKHNuYXBTdG9wKSB7CiAgICAgY2FzZSBTY3JvbGxTbmFwU3RvcDo6Tm9ybWFsOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBT
Y3JvbGxTbmFwU3RvcDo6QWx3YXlzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUFsd2F5czsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWx3YXlzKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNTI5MSw3ICs1MjkxLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFNjcm9sbFNuYXBTdG9w
IHNuYXBTdG9wKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFNjcm9sbFNuYXBTdG9wKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBTY3JvbGxTbmFw
U3RvcDo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVBbHdheXM6CkBAIC01MzA5LDEwICs1MzA5
LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShUcmFpbGluZ1dvcmQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRyYWlsaW5nV29y
ZDo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUcmFpbGluZ1dvcmQ6OlBhcnRpYWxseUJhbGFuY2VkOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVdlYmtpdFBhcnRpYWxseUJhbGFuY2VkOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRQYXJ0aWFsbHlCYWxhbmNlZCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTMy
Myw3ICs1MzIzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKFRyYWlsaW5nV29yZCBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0
dXJuIFRyYWlsaW5nV29yZDo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGFydGlhbGx5
QmFsYW5jZWQ6CkBAIC01MzQzLDEzICs1MzQzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBcHBsZVBheUJ1dHRvblN0eWxlIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlV2hpdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5
QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVXaGl0ZU91dGxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdo
aXRlT3V0bGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHls
ZTo6QmxhY2s6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxhY2s7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJsYWNrKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MzYwLDcgKzUz
NjAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEFwcGxlUGF5QnV0dG9uU3R5bGUoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdoaXRlOgogICAg
ICAgICByZXR1cm4gQXBwbGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CiAgICAgY2FzZSBDU1NWYWx1
ZVdoaXRlT3V0bGluZToKQEAgLTUzODAsNTAgKzUzODAsNTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEFwcGxlUGF5QnV0dG9uVHlwZSBl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlUGxhaW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxl
UGF5QnV0dG9uVHlwZTo6QnV5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJ1
eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnV5KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVNldFVwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVTZXRVcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBl
OjpEb25hdGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG9uYXRlOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEb25hdGUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6Q2hlY2tPdXQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ2hlY2tPdXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUNoZWNrT3V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6OkJvb2s6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm9vazsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm9vayk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpTdWJzY3JpYmU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3Vic2NyaWJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVTdWJzY3JpYmUpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
X05FV19CVVRUT05fVFlQRVMpCiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlJlbG9hZDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxvYWQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlbG9hZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QXBwbGVQYXlCdXR0b25UeXBlOjpBZGRNb25leToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBZGRNb25leTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWRk
TW9uZXkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6VG9w
VXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wVXA7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRvcFVwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBBcHBsZVBheUJ1dHRvblR5cGU6Ok9yZGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU9yZGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcmRlcik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpSZW50OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlbnQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVJlbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5
QnV0dG9uVHlwZTo6U3VwcG9ydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
dXBwb3J0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdXBwb3J0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkNvbnRyaWJ1dGU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udHJpYnV0ZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29udHJpYnV0ZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpUaXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVGlwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUaXApOwog
ICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC01NDM1LDcgKzU0MzUsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QXBwbGVQYXlCdXR0b25UeXBlIGUpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNW
YWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVQbGFpbjoKICAgICAgICAgcmV0
dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47CiAgICAgY2FzZSBDU1NWYWx1ZUJ1eToKQEAg
LTU0ODIsMTMgKzU0ODIsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRWYXJpYW50UG9zaXRpb24gcG9zaXQKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHBv
c2l0aW9uKSB7CiAgICAgY2FzZSBGb250VmFyaWFudFBvc2l0aW9uOjpOb3JtYWw6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJp
YW50UG9zaXRpb246OlN1YnNjcmlwdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTdWI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN1Yik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRQb3NpdGlvbjo6U3VwZXJzY3JpcHQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VwZXI7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVN1cGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01NDk5LDcgKzU0OTksNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFZhcmlh
bnRQb3NpdGlvbiBwb3NpdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEZvbnRWYXJpYW50UG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVl
SURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJu
IEZvbnRWYXJpYW50UG9zaXRpb246Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlU3ViOgpAQCAt
NTUxOSwyNSArNTUxOSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFZhcmlhbnRDYXBzIGNhcHMpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjYXBzKSB7
CiAgICAgY2FzZSBGb250VmFyaWFudENhcHM6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpTbWFs
bDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbWFsbENhcHM7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNtYWxsQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpBbGxTbWFsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBbGxTbWFsbENhcHM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUFsbFNtYWxsQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlh
bnRDYXBzOjpQZXRpdGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGV0aXRl
Q2FwczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGV0aXRlQ2Fwcyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpBbGxQZXRpdGU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsUGV0aXRlQ2FwczsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxsUGV0aXRlQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpVbmljYXNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVVuaWNhc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVVuaWNhc2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6VGl0
bGluZzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaXRsaW5nQ2FwczsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGl0bGluZ0NhcHMpOwogICAgICAgICBi
cmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1
NDgsNyArNTU0OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShGb250VmFyaWFudENhcHMgY2FwcykKIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250VmFyaWFudENhcHMoKSBjb25zdAogewogICAg
IEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoK
ICAgICAgICAgcmV0dXJuIEZvbnRWYXJpYW50Q2Fwczo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFs
dWVTbWFsbENhcHM6CkBAIC01NTc2LDEwICs1NTc2LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250VmFyaWFudEFsdGVybmF0ZXMg
YWx0CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7
CiAgICAgc3dpdGNoIChhbHRlcm5hdGVzKSB7CiAgICAgY2FzZSBGb250VmFyaWFudEFsdGVybmF0
ZXM6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpIaXN0b3JpY2FsRm9ybXM6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlzdG9yaWNhbEZvcm1zOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIaXN0b3JpY2FsRm9ybXMpOwogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1OTAs
NyArNTU5MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShGb250VmFyaWFudEFsdGVybmF0ZXMgYWx0CiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzKCkgY29uc3QK
IHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVO
b3JtYWw6CiAgICAgICAgIHJldHVybiBGb250VmFyaWFudEFsdGVybmF0ZXM6Ok5vcm1hbDsKICAg
ICBjYXNlIENTU1ZhbHVlSGlzdG9yaWNhbEZvcm1zOgpAQCAtNTYwOCwxMCArNTYwOCwxMCBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9u
dE9wdGljYWxTaXppbmcgc2l6aW5nKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoc2l6aW5nKSB7CiAgICAgY2FzZSBGb250
T3B0aWNhbFNpemluZzo6RW5hYmxlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBGb250T3B0aWNhbFNpemluZzo6RGlzYWJsZWQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTYyMiw3ICs1NjIyLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRPcHRpY2FsU2l6
aW5nIHNpemluZykKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBGb250T3B0aWNhbFNpemluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEZvbnRPcHRp
Y2FsU2l6aW5nOjpFbmFibGVkOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtNTY0MCwxOSAr
NTY0MCwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRm9udExvYWRpbmdCZWhhdmlvciBiZWhhdgogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsK
ICAgICBjYXNlIEZvbnRMb2FkaW5nQmVoYXZpb3I6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
QXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udExvYWRpbmdCZWhhdmlvcjo6Qmxv
Y2s6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxvY2s7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJsb2NrKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBGb250TG9hZGluZ0JlaGF2aW9yOjpTd2FwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVN3YXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN3YXApOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRMb2FkaW5nQmVoYXZpb3I6OkZhbGxiYWNrOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZhbGxiYWNrOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGYWxsYmFjayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRm9udExvYWRpbmdCZWhhdmlvcjo6T3B0aW9uYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlT3B0aW9uYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU9wdGlvbmFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC01NjYzLDcgKzU2NjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udExvYWRpbmdCZWhhdmlvciBi
ZWhhdgogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRM
b2FkaW5nQmVoYXZpb3IoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBGb250TG9hZGluZ0Jl
aGF2aW9yOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVCbG9jazoKQEAgLTU2ODcsMTAgKzU2ODcs
MTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKE1hdGhTdHlsZSBtYXRoU3R5bGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChtYXRoU3R5bGUpIHsKICAgICBjYXNl
IE1hdGhTdHlsZTo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
cm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNYXRoU3R5bGU6OkNvbXBhY3Q6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29tcGFjdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ29tcGFjdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTcwMSw3ICs1NzAxLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE1hdGhTdHlsZSBtYXRoU3R5
bGUpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWF0aFN0
eWxlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBNYXRoU3R5bGU6Ok5vcm1hbDsKICAg
ICBjYXNlIENTU1ZhbHVlQ29tcGFjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NSZXZlcnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGM0MGQzN2VmMDU2NTM1MjQ3NDQ1NjE2
OWU1NGVmMmQ0MzA4YTM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgi
Ci0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1TdHJpbmcgQ1NTUmV2ZXJ0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAg
IHJldHVybiAicmV2ZXJ0Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NSZXZlcnRWYWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzVi
MjRkNzIzN2Q3ZWZhNmUzMzUyYWY2YzM1ODQ3NTM2M2YxYzA2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRW
YWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NSZXZlcnRWYWx1ZSBm
aW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1Rl
eHQoKSBjb25zdDsKLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1JldmVydFZhbHVlJikgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0
cm95ZWQ8Q1NTUmV2ZXJ0VmFsdWU+OwotICAgIENTU1JldmVydFZhbHVlKFN0YXRpY0NTU1ZhbHVl
VGFnKQotICAgICAgICA6IENTU1ZhbHVlKFJldmVydENsYXNzKQotICAgIHsKLSAgICAgICAgbWFr
ZVN0YXRpYygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTUmV2ZXJ0VmFsdWUsIGlzUmV2ZXJ0VmFsdWUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzI2YjBiM2JjNzU0MzM2NzY1MzY0NzRhNDA3ZTdkMDdkZDc1ZWI3ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVW5zZXRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NVbnNldFZhbHVl
OjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gInVuc2V0Il9zOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VW5zZXRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY1MjVjOGRhMjBkNTk5ZWMyZDQzNGU0N2VkNDg5ZDZj
MzkyZDZkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBDU1NVbnNldFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1Ymxp
YzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMo
Y29uc3QgQ1NTVW5zZXRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToK
LSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+OwotICAgIENTU1Vu
c2V0VmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NTVmFsdWUoVW5zZXRDbGFz
cykKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1Vuc2V0
VmFsdWUsIGlzVW5zZXRWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNjFhYzcx
MWE3MzUxZmRkZGRkN2YyNmY2OTAyODBkM2Q4MWE2MWYxMi4uZTViNmI0NGM0MWU4Yjk1OTkyMDMx
ZDFmZGFhMTAxNDI2N2M1N2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC00OSw4ICs0
OSw2IEBACiAjaW5jbHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdl
U2V0VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5o
ZXJpdGVkVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJD
U1NMaW5lQm94Q29udGFpblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTmFtZWRJbWFnZVZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTUGFpbnRJbWFnZVZhbHVlLmgiCkBAIC02MSw3ICs1OSw2IEBACiAjaW5j
bHVkZSAiQ1NTU2hhZG93VmFsdWUuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NVbnNl
dFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQ
YWlyLmgiCiAjaW5jbHVkZSAiQ1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oIgpAQCAtODMsMTYg
KzgwLDExIEBAIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTVmFsdWUgewogCiBDT01QSUxFX0FTU0VSVChz
aXplb2YoQ1NTVmFsdWUpID09IHNpemVvZihTYW1lU2l6ZUFzQ1NTVmFsdWUpLCBDU1NfdmFsdWVf
c2hvdWxkX3N0YXlfc21hbGwpOwogCi1ib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZh
bHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYm
IGRvd25jYXN0PENTU0luaXRpYWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKLX0KLQogREVG
SU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihDU1NWYWx1ZSk7CiAKIENTU1ZhbHVl
OjpUeXBlIENTU1ZhbHVlOjpjc3NWYWx1ZVR5cGUoKSBjb25zdAogewotICAgIGlmIChpc0luaGVy
aXRlZFZhbHVlKCkpCisgICAgaWYgKGlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgIHJldHVybiBD
U1NfSU5IRVJJVDsKICAgICBpZiAoaXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4g
Q1NTX1BSSU1JVElWRV9WQUxVRTsKQEAgLTE4NCwxNCArMTc2LDYgQEAgYm9vbCBDU1NWYWx1ZTo6
ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAgICAgIHJldHVybiBj
b21wYXJlQ1NTVmFsdWVzPENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAg
ICBjYXNlIEltYWdlQ2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxD
U1NJbWFnZVZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIEluaGVyaXRlZENsYXNz
OgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5oZXJpdGVkVmFsdWU+
KCp0aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcywgb3RoZXIpOwot
ICAgICAgICBjYXNlIFVuc2V0Q2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1Zh
bHVlczxDU1NVbnNldFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFJldmVydENs
YXNzOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTUmV2ZXJ0VmFsdWU+
KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAg
ICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0
aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgR3JpZEludGVnZXJSZXBlYXRDbGFzczoKQEAgLTI4
NiwxNCArMjcwLDYgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAg
cmV0dXJuIGRvd25jYXN0PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgp
OwogICAgIGNhc2UgSW1hZ2VDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdl
VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPigqdGhpcykuY3VzdG9t
Q1NTVGV4dCgpOwotICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNhc2UgVW5z
ZXRDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KCp0aGlzKS5j
dXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU1JldmVydFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2Ug
R3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRBdXRv
UmVwZWF0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkSW50ZWdl
clJlcGVhdENsYXNzOgpAQCAtNDEwLDE4ICszODYsNiBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95
KCkKICAgICBjYXNlIEltYWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbWFn
ZVZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6
Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbmhlcml0ZWRWYWx1ZT4odGhpcyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25j
YXN0PENTU0luaXRpYWxWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFVu
c2V0Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NVbnNldFZhbHVlPih0aGlzKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBk
b3duY2FzdDxDU1NSZXZlcnRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNl
IEdyaWRBdXRvUmVwZWF0Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NHcmlkQXV0
b1JlcGVhdFZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEzLDEyICs0NzcsMzgg
QEAgUmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBDU1NWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENT
U09NV3JhcHBlcihDU1NTdHlsZURlY2xhcmEKIAogYm9vbCBDU1NWYWx1ZTo6dHJlYXRBc0luaGVy
aXRlZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICByZXR1cm4g
Y2xhc3NUeXBlKCkgPT0gSW5oZXJpdGVkQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xh
c3MgJiYgQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworICAg
IHJldHVybiBpc0luaGVyaXRWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiBDU1NQcm9wZXJ0
eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6
OnRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewot
ICAgIHJldHVybiBjbGFzc1R5cGUoKSA9PSBJbml0aWFsQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09
IFVuc2V0Q2xhc3MgJiYgIUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5
SUQpKTsKKyAgICByZXR1cm4gaXNJbml0aWFsVmFsdWUoKSB8fCAoaXNVbnNldFZhbHVlKCkgJiYg
IUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKworYm9v
bCBDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQ
cmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhp
cykuaXNJbml0aWFsKCk7CiB9CiAKK2Jvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFs
dWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYm
IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbXBsaWNpdEluaXRpYWwoKTsK
K30KKworYm9vbCBDU1NWYWx1ZTo6aXNJbmhlcml0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVy
biBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlPigqdGhpcykuaXNJbmhlcml0KCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzVW5zZXRWYWx1
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYg
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc1Vuc2V0KCk7Cit9CisKK2Jvb2wg
Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmlt
aXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcyku
aXNSZXZlcnQoKTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGFlNTA2ZWY3Yzk5
NzI3MTI4YTFkODEzYzVkMjI2NGI1MGM3ZjMxNDEuLjZhOGQ2MGRhODdiMjk1NmFhOWRiM2M4NjAw
MDcyN2NiYWEzZGVkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMDcsMTEgKzEwNywxMSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0ltYWdlU2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBJbWFnZVNldENsYXNzOyB9CiAgICAgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbWFnZUNsYXNzOyB9CiAgICAgYm9vbCBpc0ltcGxp
Y2l0SW5pdGlhbFZhbHVlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0luaGVyaXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5oZXJpdGVkQ2xhc3M7IH0KLSAgICBib29sIGlz
SW5pdGlhbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNz
OyB9Ci0gICAgYm9vbCBpc1Vuc2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9
PSBVbnNldENsYXNzOyB9Ci0gICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9jbGFzc1R5cGUgPT0gUmV2ZXJ0Q2xhc3M7IH0KLSAgICBib29sIGlzR2xvYmFsS2V5d29yZCgp
IGNvbnN0IHsgcmV0dXJuIGlzSW5oZXJpdGVkVmFsdWUoKSB8fCBpc0luaXRpYWxWYWx1ZSgpIHx8
IGlzVW5zZXRWYWx1ZSgpIHx8IGlzUmV2ZXJ0VmFsdWUoKTsgfQorICAgIGJvb2wgaXNJbmhlcml0
VmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3Q7CisgICAgYm9v
bCBpc1Vuc2V0VmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdDsK
KyAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdCB7IHJldHVybiBpc0luaGVyaXRWYWx1
ZSgpIHx8IGlzSW5pdGlhbFZhbHVlKCkgfHwgaXNVbnNldFZhbHVlKCkgfHwgaXNSZXZlcnRWYWx1
ZSgpOyB9CiAgICAgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0
OwogICAgIGJvb2wgdHJlYXRBc0luaGVyaXRlZFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0Owog
ICAgIGJvb2wgaXNMaW5lYXJHcmFkaWVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5
cGUgPT0gTGluZWFyR3JhZGllbnRDbGFzczsgfQpAQCAtMTkxLDExICsxOTEsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIEZvbnRQYWxldHRlVmFsdWVzT3ZlcnJpZGVDb2xvcnNDbGFzcywKICAgICAg
ICAgRnVuY3Rpb25DbGFzcywKIAotICAgICAgICBJbmhlcml0ZWRDbGFzcywKLSAgICAgICAgSW5p
dGlhbENsYXNzLAotICAgICAgICBVbnNldENsYXNzLAotICAgICAgICBSZXZlcnRDbGFzcywKLQog
ICAgICAgICBSZWZsZWN0Q2xhc3MsCiAgICAgICAgIFNoYWRvd0NsYXNzLAogICAgICAgICBVbmlj
b2RlUmFuZ2VDbGFzcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBv
b2wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5kZXggNTAxODM1
Y2M0NGVkZjU5YWYyNDg2YzVhZTQ4NjlmY2U2NmE3MjhmZC4uNDMxNTk0NzM4Y2Y2Njk2YTk5OWI3
NGRiMTFkNjVjNzc0MDNmYTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKQEAg
LTM4LDEyICszOCw4IEBAIExhenlOZXZlckRlc3Ryb3llZDxTdGF0aWNDU1NWYWx1ZVBvb2w+IHN0
YXRpY0NTU1ZhbHVlUG9vbDsKIAogU3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0aWNDU1NWYWx1ZVBv
b2woKQogewotICAgIG1faW5oZXJpdGVkVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWND
U1NWYWx1ZSk7Ci0gICAgbV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6
OlN0YXRpY0NTU1ZhbHVlLCB0cnVlKTsKLSAgICBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0
cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIGZhbHNlKTsKLSAgICBtX3Vuc2V0VmFsdWUu
Y29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAgbV9yZXZlcnRWYWx1ZS5j
b25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsKLQorICAgIG1faW1wbGljaXRJbml0
aWFsVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkltcGxpY2l0SW5pdGlhbFZhbHVlKTsKKyAgICAKICAgICBtX3RyYW5zcGFyZW50Q29s
b3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OnRyYW5zcGFyZW50
QmxhY2spOwogICAgIG1fd2hpdGVDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1Zh
bHVlLCBDb2xvcjo6d2hpdGUpOwogICAgIG1fYmxhY2tDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6
OlN0YXRpY0NTU1ZhbHVlLCBDb2xvcjo6YmxhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5o
CmluZGV4IDFmYjIzMTZlZmMwMzEwYTNiZmNhMzg0ZjEwYzdkZTA3MWY0MWU5ZWQuLjFkNmVjMTE0
MmY3MzM1ODBhYTc0NDU3YTQ4ZmI5NGQ2MGRhZjY2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQ
b29sLmgKQEAgLTI1LDEyICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ1NT
SW5oZXJpdGVkVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKLSNp
bmNsdWRlICJDU1NSZXZlcnRWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JIYXNoLmgiCiAjaW5j
bHVkZSA8dXRpbGl0eT4KQEAgLTU1LDExICs1MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U3RhdGljQ1NTVmFsdWVQb29sKCk7CiAKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5oZXJp
dGVkVmFsdWU+IG1faW5oZXJpdGVkVmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0lu
aXRpYWxWYWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsKLSAgICBMYXp5TmV2ZXJEZXN0cm95
ZWQ8Q1NTSW5pdGlhbFZhbHVlPiBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlOwotICAgIExhenlOZXZl
ckRlc3Ryb3llZDxDU1NVbnNldFZhbHVlPiBtX3Vuc2V0VmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVz
dHJveWVkPENTU1JldmVydFZhbHVlPiBtX3JldmVydFZhbHVlOworICAgIExhenlOZXZlckRlc3Ry
b3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsKIAogICAgIExh
enlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV90cmFuc3BhcmVudENvbG9yOwog
ICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV93aGl0ZUNvbG9yOwpA
QCAtODUsMTEgKzc3LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gY3Jl
YXRlRm9udEZhY2VWYWx1ZShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgUmVmPENTU1ByaW1pdGl2
ZVZhbHVlPiBjcmVhdGVGb250RmFtaWx5VmFsdWUoY29uc3QgU3RyaW5nJiwgRnJvbVN5c3RlbUZv
bnRJRCA9IEZyb21TeXN0ZW1Gb250SUQ6Ok5vKTsKLSAgICBSZWY8Q1NTSW5oZXJpdGVkVmFsdWU+
IGNyZWF0ZUluaGVyaXRlZFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX2lu
aGVyaXRlZFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1ZT4gY3JlYXRlSW1w
bGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faW1wbGlj
aXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTSW5pdGlhbFZhbHVlPiBjcmVhdGVF
eHBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9leHBs
aWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NVbnNldFZhbHVlPiBjcmVhdGVV
bnNldFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3Vuc2V0VmFsdWUuZ2V0
KCk7IH0KLSAgICBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZhbHVlKCkgeyByZXR1
cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3JldmVydFZhbHVlLmdldCgpOyB9CisgICAgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0
YXRpY0NTU1ZhbHVlUG9vbC0+bV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQogICAgIFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSUQgaWRl
bnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTUHJvcGVydHlJRCBpZGVudGlmaWVyKTsKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNyZWF0ZUNvbG9yVmFsdWUoY29uc3QgQ29sb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKaW5kZXggN2E4ZjFkYTMwMmRiYWQz
NjQ0NGJlMTNjNGEyYmM2MzY2NjUyMWFmMS4uNjE5ZGJlYzNlZTk3M2M0ODJlMWE3ODU1NTU3ZGFh
NDA0MWFlNGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlLmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCwgY29uc3QgU3Ry
aW5nJikgeyByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsg
fQogCiAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+c3Ry
aW5nVmFsdWUoKTsgfQorICAgIGJvb2wgaXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQoKTsgfQogCiBwcml2YXRlOgogICAgIERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiB2YWx1ZSwgQ1NT
U3R5bGVEZWNsYXJhdGlvbiYgb3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCmluZGV4IGM4M2FkOGRhMzJmZDkzYTYwOThmN2JjNDgzZDNiZDkzNDMxMzA1YmMuLmFmODk3
Y2QxN2M3MDhhYmE4NTA0YzRlNTVhNWU4NjBjNjVkYTI1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCIKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlNTA5ZWU2N2Y5MDdmYTA2ZTQ5
OTY4NDM2YzYyM2Y0MWI0ZDVhNDQ3Li4wNjNlZjM1OGFmZjcxMGMzNmY0MGU5YjgwZDE5ZGFlNGI4
NzIyM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNDAwLDcg
KzQwMCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1ZhbHVlKGNvbnN0
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuCiAgICAgaWYgKHRvcExlZnQuaXNJbXBv
cnRhbnQoKSAhPSB0b3BSaWdodC5pc0ltcG9ydGFudCgpIHx8IHRvcFJpZ2h0LmlzSW1wb3J0YW50
KCkgIT0gYm90dG9tUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCBib3R0b21SaWdodC5pc0ltcG9ydGFu
dCgpICE9IGJvdHRvbUxlZnQuaXNJbXBvcnRhbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogCi0gICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpICYmIHRvcFJpZ2h0
VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiBib3R0b21SaWdodFZhbHVlLT5pc0luaGVyaXRl
ZFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgaWYg
KHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSAmJiB0b3BSaWdodFZhbHVlLT5pc0luaGVy
aXRWYWx1ZSgpICYmIGJvdHRvbVJpZ2h0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkgJiYgYm90dG9t
TGVmdFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZ2V0VmFsdWVOYW1l
KENTU1ZhbHVlSW5oZXJpdCk7CiAKICAgICBpZiAodG9wTGVmdFZhbHVlLT5pc0luaXRpYWxWYWx1
ZSgpIHx8IHRvcFJpZ2h0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwgYm90dG9tUmlnaHRWYWx1
ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCBib3R0b21MZWZ0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkp
IHsKQEAgLTg1Miw4ICs4NTIsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpwYWdlQnJlYWtQ
cm9wZXJ0eVZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNobwogICAgIGF1dG8g
dmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbMF0pOwog
ICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAvLyBGSVhNRTog
UmVtb3ZlIHRoaXMgaXNHbG9iYWxLZXl3b3JkIGNoZWNrIGFmdGVyIHdlIGRvIHRoaXMgY29uc2lz
dGVudGx5IGZvciBhbGwgc2hvcnRoYW5kcyBpbiBnZXRQcm9wZXJ0eVZhbHVlLgotICAgIGlmICh2
YWx1ZS0+aXNHbG9iYWxLZXl3b3JkKCkpCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGlzQ1NT
V2lkZUtleXdvcmQgY2hlY2sgYWZ0ZXIgd2UgZG8gdGhpcyBjb25zaXN0ZW50bHkgZm9yIGFsbCBz
aG9ydGhhbmRzIGluIGdldFByb3BlcnR5VmFsdWUuCisgICAgaWYgKHZhbHVlLT5pc0NTU1dpZGVL
ZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dCgpOwogICAgIAogICAgIGlm
ICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzdhMTE1MWFkYTJlOTc1YjRj
YzQ3ZDdiNmU0Nzk2ODNkMWMxNjNmZi4uYWEzZWEyOTI1NDU0NWZmMjY5ZTJiNWZmMWZlY2UwZmI5
NWY5NjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJG
YXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFz
dFBhdGhzLmNwcApAQCAtMTExNSwxOSArMTExNSwxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUtleXdvcmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIFN0cmluZ1ZpZXcg
cwogICAgIGlmICghdmFsdWVJRCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAo
IXBhcnNpbmdEZXNjcmlwdG9yKSB7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5o
ZXJpdCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZUluaGVyaXRlZFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlh
bCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4
cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlVW5z
ZXQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVV
bnNldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0KQotICAg
ICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlUmV2ZXJ0VmFs
dWUoKTsKLSAgICB9Ci0gICAgCisgICAgaWYgKCFwYXJzaW5nRGVzY3JpcHRvciAmJiBpc0NTU1dp
ZGVLZXl3b3JkKHZhbHVlSUQpKQorICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKKwogICAgIGlmIChDU1NQYXJzZXJGYXN0UGF0aHM6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShwcm9wZXJ0eUlkLCB2YWx1ZUlELCBjb250
ZXh0KSkKLSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVy
KHZhbHVlSUQpOworICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVh
dGVWYWx1ZSh2YWx1ZUlEKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKaW5kZXggODE3NGM3MzJlNjgxZGQ3ZDNl
NDAxMDQxNGQwY2IwMWEzZTNjNGNhMy4uOTU2MDFlOTA1YjMxOGVkODlmNGQ4MDFhMzVlOWUzZWNk
NWNhZDQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJ
ZGlvbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5o
CkBAIC01OSw0ICs1OSw5IEBAIGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykK
IAogYm9vbCBpc1ZhbHVlQWxsb3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9k
ZSk7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgaWQp
Cit7CisgICAgcmV0dXJuIGlkID09IENTU1ZhbHVlSW5pdGlhbCB8fCBpZCA9PSBDU1NWYWx1ZUlu
aGVyaXQgfHwgaWQgPT0gQ1NTVmFsdWVVbnNldCB8fCBpZCA9PSBDU1NWYWx1ZVJldmVydDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBmZDFkMDZlZmY3YjliNTJkZjNkY2E3NjViNGQ5
ODU0ZmZkOTMxZGJmLi5iZDg2ZjdkNjc2ZDExNGU2NjhlY2Q0N2VkMWZmYWRmZDdkZDdhZDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApA
QCAtMjU4LDIwICsyNTgsMTMgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gbWF5YmVDb25zdW1l
Q1NTV2lkZUtleXdvcmQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgaWYgKCFyYW5n
ZUNvcHkuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8Q1NT
VmFsdWU+IHZhbHVlOwotICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCkKLSAgICAg
ICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZhbHVl
KCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwpCi0gICAgICAgIHZh
bHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1
ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldCkKLSAgICAgICAgdmFs
dWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVVuc2V0VmFsdWUoKTsKLSAgICBl
bHNlIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0KQotICAgICAgICB2YWx1ZSA9IENTU1Zh
bHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICBlbHNlCisgICAg
aWYgKCFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKSB7CisgICAgICAgIEFTU0VSVCh2YWx1ZUlE
ICE9IENTU1ZhbHVlSW5oZXJpdCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAog
ICAgIHJhbmdlID0gcmFuZ2VDb3B5OwotICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1cm4gQ1NT
VmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlEKTsKIH0KIAogUmVmUHRy
PENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5LCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NT
UGFyc2VyQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAzZDRmZjk0MGU0Y2Q1NGUx
NmUwYjUxZDcxODYyMjNmNzkwNGU2M2NmLi5lYjYzYjRhZWRiMzI4MmEwOTlhOWNlN2I5ZDdkZDc3
M2NjYjhiMThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC01OSwxMSArNTksNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIG5hbWVzcGFjZSBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMgewogCi1zdGF0aWMg
aW5saW5lIGJvb2wgaXNDU1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIGlkKQotewotICAgIHJldHVy
biBpZCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgaWQgPT0gQ1NTVmFsdWVJbmhlcml0IHx8IGlkID09
IENTU1ZhbHVlVW5zZXQgfHwgaWQgPT0gQ1NTVmFsdWVSZXZlcnQgfHwgaWQgPT0gQ1NTVmFsdWVE
ZWZhdWx0OwotfQotCiBib29sIGNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgQ1NTUGFyc2VyVG9rZW4gdmFsdWUgPSByYW5n
ZS5wZWVrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KaW5kZXggZDk0NGQ5ODRkYzNmOGUxOTM5ZjFmYzc0M2Y4YTk0MGExNzdhMWUyZS4uMTY0NzY2
ZGMzMjUzNzVlN2ViMWY4YTc1ZGJhY2Q0MjIyMTMwZmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtNTg3LDcgKzU4Nyw3IEBAIFN0cmlu
ZyBIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBD
U1NQcm9wZXJ0eUlEIHByb3BlCiAKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlu
bGluZVN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAg
ICAgIFN0cmluZyByZXN1bHQ7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgp
KQorICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhl
cml0ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoc3RyaW5nRnJvbUNTU1ZhbHVlKCp2YWx1ZSwg
cmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC03MzUsNyArNzM1LDcgQEAg
Ym9vbCBIVE1MQ29udmVydGVyQ2FjaGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUm
IG5vZGUsIENTU1Byb3BlcnR5SUQgcHIKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9
IGlubGluZVN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAg
ICAgICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBmbG9hdFZhbHVlRnJv
bVByaW1pdGl2ZVZhbHVlKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLCByZXN1
bHQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhl
cml0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAg
ICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICB9CiAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBDb2xv
ciBIVE1MQ29udmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5v
ZGUsIENTU1Byb3BlcnR5SUQgcAogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5s
aW5lU3R5bGVQcm9wZXJ0eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAgICAg
ICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpICYmIGRvd25jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlPigqdmFsdWUpLmlzUkdCQ29sb3IoKSkKICAgICAgICAgICAgIHJldHVybiBub3Jt
YWxpemVkQ29sb3IoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuY29sb3IoKSwg
aWdub3JlRGVmYXVsdENvbG9yLCBlbGVtZW50KTsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVy
aXRlZFZhbHVlKCkpCisgICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAg
ICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlRWxlbWVudC5jcHAKaW5kZXggYzZjMzZhZTY3ZjUwMzk3MTM2ZDcwZmMxZjFiZTMwMGE0YjJj
ZjYzOC4uODlkYjg1YjM1ZmQ3YzEyM2MxNGU0YTQyY2FlZTZmMGFkODFkMzI1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00ODQsMjQgKzQ4NCwyNCBAQCBS
ZWY8U3R5bGVQcm9wZXJ0aWVzPiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVTaGFyZWRDZWxsU3R5
bGUoKSBjb25zdAogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJS
aWdodFdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJSaWdodFN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsK
LSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1Zh
bHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU29saWRC
b3JkZXJzUm93c09ubHk6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlclRvcFdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlCb3JkZXJCb3R0b21XaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAgICAgICAgc3R5
bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIENTU1ZhbHVlU29saWQp
OwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHls
ZSwgQ1NTVmFsdWVTb2xpZCk7Ci0gICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNvbGlkQm9yZGVyczoKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENT
U1Byb3BlcnR5Qm9yZGVyV2lkdGgsIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSgxLCBDU1NVbml0
VHlwZTo6Q1NTX1BYKSk7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlclN0eWxlLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlU29s
aWQpKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3Is
IGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SW5zZXRCb3JkZXJzOgogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3Jk
ZXJXaWR0aCwgY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKDEsIENTU1VuaXRUeXBlOjpDU1NfUFgp
KTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUsIGNz
c1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbnNldCkpOwotICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29s
LmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb0JvcmRlcnM6CiAg
ICAgICAgIC8vIElmICdydWxlcz1ub25lJyB0aGVuIGFsbG93IGFueSBib3JkZXJzIHNldCBhdCBj
ZWxsIGxldmVsIHRvIHRha2UgZWZmZWN0LiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA4MWJhYjkzYTQxYmI2YzRhODkzZDViOGIzYWVhNmUx
OGFlYzE0NzVkLi5iZWI4OTY3ZmRiY2RlNDMyODU0ZDE1M2JhOWNlMjZjNjc3M2UzMGY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC02MDIs
NyArNjAyLDcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFByb3BlcnRp
ZXMoTWF0Y2hlZFByb3BlcnRpZXMmJiBtYXRjaGVkUHJvcGUKICAgICAgICAgICAgIC8vIGFzIHRo
ZXkgbWlnaHQgb3ZlcnJpZGUgdGhlIHZhbHVlIGluaGVyaXRlZCBoZXJlLiBGb3IgdGhpcyByZWFz
b24gd2UgZG9uJ3QgYWxsb3cgZGVjbGFyYXRpb25zIHdpdGgKICAgICAgICAgICAgIC8vIGV4cGxp
Y2l0bHkgaW5oZXJpdGVkIHByb3BlcnRpZXMgdG8gYmUgY2FjaGVkLgogICAgICAgICAgICAgY29u
c3QgQ1NTVmFsdWUmIHZhbHVlID0gKmN1cnJlbnQudmFsdWUoKTsKLSAgICAgICAgICAgIGlmICh2
YWx1ZS5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgICAgICAgICBpZiAodmFsdWUuaXNJbmhlcml0
VmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIC8v
IFRoZSB2YWx1ZSBjdXJyZW50Q29sb3IgaGFzIGltcGxpY2l0ZWx5IHRoZSBzYW1lIHNpZGUgZWZm
ZWN0LiBJdCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiBjb2xvciwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCmluZGV4IDdkZjdhNzVhYWQwMDhlOTU5YTA5NDc1M2JmY2Rl
M2Y2MzE0NjY2ZWMuLmUyOTNiYTY5M2IwNDU0ZjcwYTBjNWY3ZDZhMDkzYjBhNmNlMzI2YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcApAQCAtMTg1LDcgKzE4NSw3
IEBAIGJvb2wgUHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVkUHJvcGVydGll
cyYgbWF0Y2hlZFByb3BlcnRpZXMsIENhc2NhCiAgICAgICAgIGlmIChtX2luY2x1ZGVkUHJvcGVy
dGllcyA9PSBJbmNsdWRlZFByb3BlcnRpZXM6OkluaGVyaXRlZE9ubHkgJiYgIWN1cnJlbnQuaXNJ
bmhlcml0ZWQoKSkgewogICAgICAgICAgICAgLy8gSW5oZXJpdGVkIG9ubHkgbW9kZSBpcyB1c2Vk
IGFmdGVyIG1hdGNoZWQgcHJvcGVydGllcyBjYWNoZSBoaXQuCiAgICAgICAgICAgICAvLyBBIG1h
dGNoIHdpdGggYSB2YWx1ZSB0aGF0IGlzIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHNob3VsZCBuZXZl
ciBoYXZlIGJlZW4gY2FjaGVkLgotICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LnZhbHVlKCkt
PmlzSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQudmFsdWUo
KS0+aXNJbmhlcml0VmFsdWUoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
ICAgICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjdXJyZW50LmlkKCk7CkBAIC0zMDgs
NyArMzA4LDcgQEAgUHJvcGVydHlDYXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVydHlDYXNjYWRlOjpy
ZXNvbHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUoRGlyZWMKICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBtYXRjaGVkUHJvcGVydGllcyA6IGRlY2xhcmF0aW9uc0ZvckNhc2NhZGVMZXZlbChtX21h
dGNoUmVzdWx0LCBjYXNjYWRlTGV2ZWwpKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwLCBjb3VudCA9IG1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMtPnByb3BlcnR5Q291bnQo
KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0gbWF0
Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy0+cHJvcGVydHlBdChpKTsKLSAgICAgICAgICAgICAg
ICBpZiAoIXByb3BlcnR5LnZhbHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAg
ICAgICBpZiAoIXByb3BlcnR5LnZhbHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSB8fCBwcm9wZXJ0
eS52YWx1ZSgpLT5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgIHN3aXRjaCAocHJvcGVydHkuaWQoKSkgewogICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXcml0aW5nTW9kZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUJ1aWxkZXIuY3BwCmluZGV4IDNiYTJkOTZlZDczNDJhMDU0OTljNzA3MmJhNTczNmI2M2IyZmIx
NTMuLjlkNmM2YjQzOTkwYThhOWJlMTBiNjIyNzNkMDc5MmI5OGJlNThhOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgQnVpbGRl
cjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgdmFsdWUsIFNlbGVj
dG9yQ2hlY2tlcjo6CiAgICAgICAgIGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCA9IG1fc3RhdGUu
ZG9jdW1lbnQoKS5nZXRDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQobmFtZSk7
CiAgICAgfQogCi0gICAgYm9vbCBpc0luaGVyaXQgPSB2YWx1ZVRvQXBwbHktPmlzSW5oZXJpdGVk
VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0OworICAg
IGJvb2wgaXNJbmhlcml0ID0gdmFsdWVUb0FwcGx5LT5pc0luaGVyaXRWYWx1ZSgpIHx8IGN1c3Rv
bVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQ7CiAgICAgYm9vbCBpc0luaXRpYWwg
PSB2YWx1ZVRvQXBwbHktPmlzSW5pdGlhbFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlE
ID09IENTU1ZhbHVlSW5pdGlhbDsKIAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVlVG9BcHBseS0+
aXNVbnNldFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlVW5zZXQ7
CkBAIC0zNjEsOCArMzYxLDggQEAgUmVmPENTU1ZhbHVlPiBCdWlsZGVyOjpyZXNvbHZlVmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZSYgdmFsdWUpCiAgICAgLy8gSWYgdGhl
IGNhc2NhZGUgaGFzIGFscmVhZHkgYXBwbGllZCB0aGlzIGlkLCB0aGVuIHdlIGRldGVjdGVkIGEg
Y3ljbGUsIGFuZCB0aGlzIHZhbHVlIHNob3VsZCBiZSB1bnNldC4KICAgICBpZiAoIXZhcmlhYmxl
VmFsdWUgfHwgbV9zdGF0ZS5tX2FwcGxpZWRQcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUlEKSkgewog
ICAgICAgICBpZiAoQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkp
Ci0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJbmhl
cml0ZWRWYWx1ZSgpOwotICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5j
cmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVJbmhlcml0KTsKKyAgICAgICAg
cmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVJbml0
aWFsKTsKICAgICB9CiAKICAgICByZXR1cm4gKnZhcmlhYmxlVmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCmluZGV4IDViYzI2NWE2MzdkNDI1NTM0Mzg1YTBj
OWM1MjE4NDY4MTkwOWQwMmEuLjQyMmEzYjk1MWYwYmYwYTAzNTk5YzZkMGEzNDJkNDAxNjdlYzdh
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCkBAIC04NCw3
ICs4NCw3IEBAIHZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgICAgICAvLyBSYXRoZXIg
dGhhbiBpbnZhc2l2ZWx5IG1vZGlmeWluZyB0aGUgcGFyc2VyIGZvciB0aGUgcHJvcGVydGllcyB0
byBoYXZlIGEgc3BlY2lhbCBtb2RlLCB3ZSBjYW4gc2ltcGx5IGRldGVjdCB0aGUgZXJyb3IgY29u
ZGl0aW9uIGFmdGVyLXRoZS1mYWN0IGFuZAogICAgICAgICAgICAgLy8gYXZvaWQgaXQgZXhwbGlj
aXRseS4KICAgICAgICAgICAgIGlmIChhdXRvIHBhcnNlZFZhbHVlID0gcHJvcGVydGllcy5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SWQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnNl
ZFZhbHVlLT5pc0dsb2JhbEtleXdvcmQoKSkKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VkVmFs
dWUtPmlzQ1NTV2lkZUtleXdvcmQoKSkKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5y
ZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdGFibGUtcnVsZXMtYXR0cmlidXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy90YWJsZS1ydWxlcy1hdHRyaWJ1dGUuaHRtbAppbmRleCAy
MDI0MmQzYmMxOTg1ZWE4YmVjNjI4YjhlNzFhNzQxMWNhZmU4ODk4Li4wZDExMjE3NTMxMTIzYTBl
MzFkZDU3NjNiOGM5YjMyZjQyYWQ4MGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy90YWJsZS1ydWxlcy1hdHRyaWJ1dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy90
YWJsZS1ydWxlcy1hdHRyaWJ1dGUuaHRtbApAQCAtODYsNCArODYsNCBAQAogICAgICAgICAgICAg
PC90cj4KICAgICAgICAgPC90YWJsZT4KICAgICA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443415</attachid>
            <date>2021-11-05 10:32:56 -0700</date>
            <delta_ts>2021-11-05 10:37:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211105193254.patch</filename>
            <type>text/plain</type>
            <size>228887</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzMzQzMTliMTBhMTFm
NGExMjBkNDgzZGQzMjg5YWY4ZGUyOGY4ZS4uYzBkZDk0Y2RkNjY3YmY2MWFjMDY4ODdjOGE5NGQ0
MGFhYjIyNDU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAyMS0xMS0wNSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
eSBjYW4gYWxsIGJlIGhhbmRsZWQgYnkgQ1NTUHJpbWl0aXZlVmFsdWUuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6
CisKKyAgICAgICAgQXZvaWQgY2hhbmdpbmcgdGhlIGNsYXNzIHR5cGUgdmlzaWJsZSBpbiBDU1NP
TS4KKworICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaGVyaXRlZFZh
bHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppbml0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpzdHJpbmdWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzIGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKworICAgICAgICBGb3Ig
ImluaXRpYWwiIHdlIG5lZWQgYW4gZXh0cmEgYml0IHRvIGluZGljYXRlIGlmIGl0IHdhcyBpbXBs
aWNpdCB2YWx1ZS4gVGhlcmUgaXMKKyAgICAgICAgYSBidW5jaCBvZiBtZWNoYW5pY2FsIGNoYW5n
ZXMgaW4gQ1NTUHJpbWl0aXZlVmFsdWUgdG8gbWFrZSB0aGF0IGhhcHBlbi4KKworICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZmxlY3Rpb25EaXJlY3Rpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtbkZpbGwgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVt
blNwYW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFByaW50Q29sb3JBZGp1c3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEJvcmRlclN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Q29udHJvbFBhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEJhY2tmYWNlVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbEF0dGFjaG1lbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxCb3ggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxSZXBlYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJv
eFBhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveEFsaWdubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJyZWFrIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hTaXppbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveERpcmVjdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94
TGluZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveE9yaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQ2FwdGlvblNpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENsZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBEaXNwbGF5
VHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRW1wdHlDZWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGbGV4RGlyZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGlnbkNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZsZXhXcmFwIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGbG9hdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PEhh
bmdpbmdQdW5jdHVhdGlvbj4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGlzdFN0eWxlUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpc3RTdHlsZVR5cGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcmdp
bkNvbGxhcHNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBNYXJxdWVlQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcnF1ZWVEaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE5CU1BNb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNj
cm9sbEJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCcmVha0JldHdlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrSW5zaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBQb3NpdGlvblR5cGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlc2l6ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGFibGVMYXlv
dXRUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0QWxpZ25Nb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0SnVzdGlmeSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PFRleHREZWNv
cmF0aW9uPiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0U2VjdXJpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHREZWNvcmF0aW9uU2tpcEluayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRpIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVXNlck1vZGlm
eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VXNlclNlbGVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVmVydGljYWxBbGlnbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2hpdGVTcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV29yZEJyZWFrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvd1dy
YXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0Q29tYmluZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUnVieVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3cg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc0ZpbGwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRhdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUG9pbnRlckV2ZW50cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgS2Vy
bmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgT2JqZWN0Rml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2FwcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5
cGhlbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIExpbmVTbmFwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBMaW5lQWxpZ24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8U3BlYWtBcz4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgSXNvbGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQ2FwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBMaW5lSm9pbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgV2luZFJ1bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEFsaWdubWVudEJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3JkZXJDb2xsYXBzZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJ
bWFnZVJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgSW5wdXRTZWN1cml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtU3R5bGUzRCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtQm94IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5B
eGlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDb2x1bW5Qcm9ncmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQnVmZmVyZWRSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9ySW50ZXJwb2xhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JS
ZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIERvbWluYW50QmFzZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNoYXBlUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QW5jaG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBWZWN0b3JFZmZlY3Qg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1h
c2tUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBJdGVtUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93QWxpZ25tZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb250ZW50UG9zaXRpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnREaXN0
cmlidXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRab29tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RyaWN0bmVzcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU2Ny
b2xsU25hcEF4aXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RvcCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhaWxpbmdXb3Jk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBB
cHBsZVBheUJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJpYW50UG9zaXRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRW
YXJpYW50Q2FwcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250T3B0aWNhbFNpemluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udExvYWRpbmdC
ZWhhdmlvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTWF0aFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUmV2ZXJ0VmFsdWUuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVkVmFsdWUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5pdGlhbFZhbHVl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFs
dWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0
VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzR2xv
YmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVl
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUltcGxpY2l0SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVQb29sLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVFeHBsaWNpdElu
aXRpYWxWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNy
ZWF0ZVVuc2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29s
OjpjcmVhdGVSZXZlcnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZTo6aXNDU1NXaWRlS2V5d29yZCBjb25zdCk6CisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1ZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6cGFnZUJyZWFrUHJvcGVydHlW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjph
ZGRQYXJzZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VLZXl3b3JkVmFsdWUpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmg6CisgICAgICAgIChXZWJDb3JlOjppc0NTU1dp
ZGVLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRJZGVudGlmaWVyKToKKworICAg
ICAgICBTZXBhcmF0ZSB0aGUgY29uY2VwdCBvZiB2YWxpZCBpZGVudGlmaWVyIGZyb20gQ1NTLXdp
ZGUga2V5d29yZC4gVGhlIGZvcm1lciBhbHNvIGV4Y2x1ZGVzIHRoZSBvYm9sZXRlICJkZWZhdWx0
IiBrZXl3b3JkLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6YWRkUHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6bWF5YmVDb25zdW1lQ1NTV2lkZUtleXdvcmQpOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6aXNDU1NXaWRlS2V5d29yZCk6IERlbGV0ZWQuCisg
ICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENv
bnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAoSFRNTENvbnZl
cnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29u
dmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVD
b2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBzdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6
YWRkTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cmVz
b2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OnJlc29sdmVWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKwogMjAyMS0xMS0wNCAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQg
ZGlkRHJhdyAvIGRpZERyYXdFbnRpcmVDYW52YXMgY2FsbHMgaW4gY2FudmFzIGRyYXdpbmcgZnVu
Y3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDhkYTI0Yjc4ZGE1N2RjM2JkMmNlZDExODRjMmVkZGZm
MGI4ZGUyNDYuLjZlOGRhYjc2NTJmNWIzNGJmYWFmZTgzYmZkNzcyM2FjZjAwZGM4MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC02OTAsOCArNjkwLDYgQEAgY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwCiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKIGNzcy9DU1NJbWFnZVZhbHVlLmNwcAogY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwCi1jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCi1jc3MvQ1NTSW5p
dGlhbFZhbHVlLmNwcAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNzcy9DU1NLZXlmcmFtZXNS
dWxlLmNwcAogY3NzL0NTU0xheWVyUnVsZS5jcHAKQEAgLTcwNyw3ICs3MDUsNiBAQCBjc3MvQ1NT
UHJvcGVydHkuY3BwCiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAogY3NzL0NTU1JlZmxl
Y3RWYWx1ZS5jcHAKIGNzcy9DU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3BwCi1jc3MvQ1NT
UmV2ZXJ0VmFsdWUuY3BwCiBjc3MvQ1NTUnVsZS5jcHAKIGNzcy9DU1NSdWxlTGlzdC5jcHAKIGNz
cy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTcyMyw3ICs3MjAsNiBAQCBjc3MvQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKIGNzcy9DU1NUb1N0eWxlTWFwLmNwcAogY3NzL0NTU1Vu
aWNvZGVSYW5nZVZhbHVlLmNwcAogY3NzL0NTU1VuaXRzLmNwcAotY3NzL0NTU1Vuc2V0VmFsdWUu
Y3BwCiBjc3MvQ1NTVmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWVMaXN0LmNwcAogY3NzL0NTU1ZhbHVl
UGFpci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlOTk2MzcyMzhhYWY0NmE3OTk3YzJjOGRlNDE2YjRjYWNkNDY1OTExLi42
YjIyYjQ0MDJhMjkxMmNiODgxNjVlOTg0ZjQ1ZTliNGQ3M2E5MTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTMxLDEwICsz
NTMxLDggQEAKIAkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDMw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0ZGMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDAwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBODBF
NkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q3MEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwMzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFNkNEOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDQw
QTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTgwRTZE
MDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaXRpYWxWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwQzBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMEQwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZERkMwQTE5
OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxl
UHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC00MTU0LDggKzQxNTIsNiBAQAogCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyog
Q1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250
YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzlFMTMx
QkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3OUUxNzFCQjIyN0NBMDBD
QUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzc5RTE1MUJCMjI2QTIwMENBQThCRiAvKiBTdHls
ZUN1c3RvbVByb3BlcnR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdEOEZF
RTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovOyB9OwotCQlCQzdEOEZGNDFC
RDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NS
ZXZlcnRWYWx1ZS5oICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyMTBEMUYwQ0JEMDBE
QjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RkE2
MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTEzMTk2LDcgKzEzMTkyLDYgQEAKIAkJQTgwRTZD
QzMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4MEU2Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDQzYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aGVyaXRlZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NJbmhlcml0ZWRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2
Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQ0EwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1NoYWRv
d1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NTaGFk
b3dWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIxMSwxMyArMTMy
MDYsMTAgQEAKIAkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltYWdlVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNENTBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1By
b3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q2MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUGFnZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDRDcw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NJbml0aWFsVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEOTBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NNZWRpYVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREEwQTE5
ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREIwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aXRpYWxWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSW5pdGlh
bFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RGMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTkzLDEwICsxNDU4NSw2IEBACiAJCUJDNzc5RTEzMUJCMjE1QkIwMENBQThC
RiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQ3VzdG9tUHJvcGVydHlE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1MDgyNDEwMEE4
MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1NDAgLyog
Q1NTVW5zZXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NVbnNldFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3RDhGRUUx
QkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmV2ZXJ0VmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2
ZXJ0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUmV2ZXJ0VmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlE
MDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RkE2MUUw
RDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMaXZlTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdmVOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTg2MTEsMTEgKzE4NTk5LDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJC
NjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCisJCQkJMUE1
NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAw
RDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJ
ZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRl
bnRpZmllclJlcC5oICovLAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8s
Ci0JCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJMUE1NjlDRUYw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3
RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI5OTAwLDEwICsyOTg4OCw2
IEBACiAJCQkJQTgwRTZDQzEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuY3BwICov
LAogCQkJCUE4MEU2Q0NDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggKi8sCiAJ
CQkJODVDNTZDQTkwQUE4OUU2NjAwRDk1NzU1IC8qIENTU0ltcG9ydFJ1bGUuaWRsICovLAotCQkJ
CUE4MEU2Q0M2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5jcHAgKi8sCi0J
CQkJQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8sCi0J
CQkJQTgwRTZDRDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5jcHAgKi8sCi0J
CQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovLAogCQkJ
CTMxMjg4RTZFMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuY3BwICovLAogCQkJ
CTMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCAqLywKIAkJCQkz
MTZGRTA5MTBFNkNDRDdGMDBCRjYwODggLyogQ1NTS2V5ZnJhbWVSdWxlLmlkbCAqLywKQEAgLTI5
OTQ3LDggKzI5OTMxLDYgQEAKIAkJCQlCQzVBMTJERTBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVm
bGVjdFZhbHVlLmggKi8sCiAJCQkJNEIxNzA2NjQyMTYyQjQyRjAwRTU3OEJCIC8qIENTU1JlZ2lz
dGVyZWRDdXN0b21Qcm9wZXJ0eS5jcHAgKi8sCiAJCQkJNEJEQTNGRkIyMTUxQjZGNDAwRkQ2NjA0
IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oICovLAotCQkJCUJDN0Q4RkYxMUJEMUE0
NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5jcHAgKi8sCi0JCQkJQkM3RDhGRjIxQkQxQTQ3
OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggKi8sCiAJCQkJQTgwRTZDREMwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU1J1bGUuY3BwICovLAogCQkJCUE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NSdWxlLmggKi8sCiAJCQkJMTRDRjdBNzAwOUY1Q0Y5QTAwRUIzNjY1IC8qIENTU1J1bGUu
aWRsICovLApAQCAtMjk5ODcsOCArMjk5NjksNiBAQAogCQkJCTBGNkI3MDc3MjM3QkMxMkYwMDUy
Q0E0NyAvKiBDU1NVbml0cy5oICovLAogCQkJCUE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NVbmtub3duUnVsZS5oICovLAogCQkJCTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NV
bmtub3duUnVsZS5pZGwgKi8sCi0JCQkJQkM3RDhGRUQxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vu
c2V0VmFsdWUuY3BwICovLAotCQkJCUJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNl
dFZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVCIC8qIENTU1ZhbHVlLmNw
cCAqLywKIAkJCQlBODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCAqLywKIAkJ
CQlCQ0VBNDc4QzA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKQEAg
LTMyMjYzLDggKzMyMjQzLDYgQEAKIAkJCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NT
SW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkEwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0Y2MEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkQw
MTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4MEU2RDA4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlm
cmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTQxMDdBNDI2Q0I2NkY4MDAzQkY3OTcg
LyogQ1NTS2V5d29yZFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMzE5LDcgKzMyMjk3LDYg
QEAKIAkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVBMTJFMDBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVm
bGVjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQg
LyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzdE
OEZGNDFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJBNTM4QTI4MjZGMDEwM0MwMDk2NUZDOCAvKiBDU1NSb3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MEU2RDBEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkNGMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzIzNTMsNyArMzIzMzAsNiBAQAogCQkJCTRCQUZEMEUxMjE5MjQyQTAwMEMw
QUI2NCAvKiBDU1NVbml0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NG
OTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJBRkQw
RDkyMTkyMUVBMDAwQzBBQjY0IC8qIENTU1VucGFyc2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAot
CQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUzQkJDMjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5
d29yZHMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAppbmRleCBhN2UxMzRm
ZWFkZTJjOGI0YTBjZTE1NTk1MDQ3M2Y2MzA2OTc3NWJkLi42ZGNmOGE0Mzc2MjhkZWVjZDYyZDVk
YzI5NjhlNWE5MDdhMzE2ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcApAQCAtNTEsNyArNTEs
NyBAQCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8RAogewogICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxp
c3QoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKLSAgICBpZiAodmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkKKyAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiAhZG93
bmNhc3Q8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KHZhbHVlLmdldCgpKS5pc0NTU1dp
ZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKICAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHZhbHVlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDJmMmUwODliYWIxNDY1NzQ2Y2Y3MzNmNjZkOTFiNTUx
MGFiNmQxZmMuLjIxOTUyM2UxMzA2MzJkZjNjZDdjNjM4ZDg1MTE2NTdkYTczY2ZiZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC0xNjI4LDcgKzE2MjgsNyBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVj
b3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9uU3R5bAogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAgcmV0dXJuIENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7
CiB9CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRv
Q1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rIHRleHREZWNvcmF0aW9uU2tpcEluaykKQEAg
LTE2NDMsNyArMTY0Myw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNv
cmF0aW9uU2tpcFRvQ1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rCiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9u
KCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKIH0K
IAogc3RhdGljIFJlZjxDU1NWYWx1ZT4gdGV4dFVuZGVybGluZU9mZnNldFRvQ1NTVmFsdWUoY29u
c3QgVGV4dFVuZGVybGluZU9mZnNldCYgdGV4dFVuZGVybGluZU9mZnNldCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZDI0ODk4MWIxYWQyNDRiZWNkNzM0ODEzMzJiN2E4N2FhY2U4OTdmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKioKLSAq
IChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDU1NJbmhlcml0ZWRWYWx1ZS5oIgotCi0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
U3RyaW5nIENTU0luaGVyaXRlZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gImluaGVyaXQiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI1MmI5MTU0YWEyMjhkNTEwOWViYjQwMGYyZTk5ZGRkZWVmZGQ0NDQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lu
aGVyaXRlZFZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogKEMp
IDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENTU0luaGVyaXRlZFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1
YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVh
bHMoY29uc3QgQ1NTSW5oZXJpdGVkVmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbmhlcml0ZWRWYWx1ZT47
Ci0gICAgQ1NTSW5oZXJpdGVkVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NT
VmFsdWUoSW5oZXJpdGVkQ2xhc3MpCi0gICAgewotICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAg
fQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0NTU19WQUxVRShDU1NJbmhlcml0ZWRWYWx1ZSwgaXNJbmhlcml0ZWRWYWx1ZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmQxNDM2ZTdmMWVjYTY0NmY4NjhkOTg4Zjc2NjI0NmVmNzYxMzMwYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW5pdGlhbFZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICog
KEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0luaXRpYWxWYWx1ZS5oIgotCi0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3Ry
aW5nIENTU0luaXRpYWxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
ICJpbml0aWFsIl9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW5pdGlhbFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZmI3NmYy
NTFmMjQ0ZjE1MWNhNzI4MTIyYmMxMmE0NGE5YmE3YTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIChDKSAxOTk5LTIwMDMg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
U1NJbml0aWFsVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0
cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGlzSW1wbGljaXQoKSBjb25z
dCB7IHJldHVybiBtX2lzSW1wbGljaXQ7IH0KLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0lu
aXRpYWxWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmll
bmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT47Ci0gICAgQ1NTSW5pdGlhbFZh
bHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBib29sIGltcGxpY2l0KQotICAgICAgICA6IENTU1ZhbHVl
KEluaXRpYWxDbGFzcykKLSAgICAgICAgLCBtX2lzSW1wbGljaXQoaW1wbGljaXQpCi0gICAgewot
ICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGJvb2wgbV9pc0lt
cGxpY2l0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NTU19WQUxVRShDU1NJbml0aWFsVmFsdWUsIGlzSW5pdGlhbFZhbHVlKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBhOWQwMjI2ZjljZGQ1MDU3
MmEyZGJjOGE1OTkwODY5NzE3MTY4NGJjLi5kYTUyZjg3N2MwNjFmMGY0OTA3MzhjMDRkNjc1ZjIw
M2RhMmZlMGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAg
LTI2Miw3ICsyNjIsNiBAQCBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZU5h
bWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogewogICAgIEFTU0VSVF9BUkcodmFsdWVJRCwgKHZhbHVl
SUQgPj0gZmlyc3RDU1NWYWx1ZUtleXdvcmQgJiYgdmFsdWVJRCA8PSBsYXN0Q1NTVmFsdWVLZXl3
b3JkKSk7Ci0KICAgICByZXR1cm4gZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyh2YWx1ZUlEKTsKIH0K
IApAQCAtMjcwLDcgKzI2OSwxNCBAQCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7
CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0g
ICAgbV92YWx1ZS52YWx1ZUlEID0gdmFsdWVJRDsKKyAgICBzZXRWYWx1ZUlESW50ZXJuYWwodmFs
dWVJRCk7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJbXBsaWNp
dEluaXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQoreworICAg
IHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOworICAgIHNl
dEltcGxpY2l0SW5pdGlhbEludGVybmFsKCk7CiB9CiAKIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCkBAIC0zNTAsNiArMzU2LDEy
IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRh
ZywgQ1NTVmFsdWVJRCB2YWx1ZUlEKQogICAgIG1ha2VTdGF0aWMoKTsKIH0KIAorQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBJbXBsaWNpdElu
aXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKEltcGxpY2l0SW5pdGlhbFZh
bHVlKQoreworICAgIG1ha2VTdGF0aWMoKTsKK30KKwogQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAg
OiBDU1NQcmltaXRpdmVWYWx1ZShjb2xvcikKIHsKQEAgLTM2Nyw3ICszNzksNyBAQCB2b2lkIENT
U1ByaW1pdGl2ZVZhbHVlOjppbml0KGNvbnN0IExlbmd0aCYgbGVuZ3RoKQogICAgIHN3aXRjaCAo
bGVuZ3RoLnR5cGUoKSkgewogICAgIGNhc2UgTGVuZ3RoVHlwZTo6QXV0bzoKICAgICAgICAgc2V0
UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6OkZp
eGVkOgogICAgICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1BYKTsK
QEAgLTM3NSwyNyArMzg3LDI3IEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmluaXQoY29uc3Qg
TGVuZ3RoJiBsZW5ndGgpCiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6Oklu
dHJpbnNpYzoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50cmluc2ljOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnRyaW5zaWMpOwogICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpNaW5JbnRyaW5zaWM6CiAgICAgICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pbkludHJpbnNpYzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTWluSW50cmluc2ljKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
TGVuZ3RoVHlwZTo6TWluQ29udGVudDoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTWluQ29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWluQ29u
dGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6Ok1heENvbnRlbnQ6
CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1heENvbnRlbnQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1heENvbnRlbnQpOwogICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpGaWxsQXZhaWxhYmxlOgogICAgICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgTGVuZ3RoVHlwZTo6Rml0Q29udGVudDoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRml0Q29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlRml0Q29udGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6OlBl
cmNlbnQ6CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfUEVS
Q0VOVEFHRSk7CkBAIC0xMDMxLDcgKzEwNDMsNyBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6
OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRk9OVF9GQU1J
TFk6CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLmZvbnRGYW1pbHktPmZhbWlseU5hbWU7CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEOgotICAgICAgICByZXR1cm4gdmFsdWVOYW1l
KG1fdmFsdWUudmFsdWVJRCk7CisgICAgICAgIHJldHVybiB2YWx1ZU5hbWUodmFsdWVJRCgpKTsK
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFJPUEVSVFlfSUQ6CiAgICAgICAgIHJldHVybiBw
cm9wZXJ0eU5hbWUobV92YWx1ZS5wcm9wZXJ0eUlEKTsKICAgICBkZWZhdWx0OgpAQCAtMTIwNSw3
ICsxMjE3LDcgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1h
dE51bWJlckZvckN1c3RvbUNTU1RleHQoKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19VUkk6CiAgICAgICAgIHJldHVybiBzZXJpYWxpemVVUkwobV92YWx1ZS5zdHJpbmcpOwogICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoKLSAgICAgICAgcmV0dXJuIHZhbHVlTmFt
ZShtX3ZhbHVlLnZhbHVlSUQpOworICAgICAgICByZXR1cm4gdmFsdWVOYW1lKHZhbHVlSUQoKSk7
CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BST1BFUlRZX0lEOgogICAgICAgICByZXR1cm4g
cHJvcGVydHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0FUVFI6CkBAIC0xMzU4LDcgKzEzNzAsNyBAQCBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjpl
cXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19QUk9QRVJUWV9JRDoKICAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZSht
X3ZhbHVlLnByb3BlcnR5SUQpID09IHByb3BlcnR5TmFtZShvdGhlci5tX3ZhbHVlLnByb3BlcnR5
SUQpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoKLSAgICAgICAgcmV0dXJu
IHZhbHVlTmFtZShtX3ZhbHVlLnZhbHVlSUQpID09IHZhbHVlTmFtZShvdGhlci5tX3ZhbHVlLnZh
bHVlSUQpOworICAgICAgICByZXR1cm4gdmFsdWVOYW1lKHZhbHVlSUQoKSkgPT0gdmFsdWVOYW1l
KG90aGVyLnZhbHVlSUQoKSk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NUUklORzoKICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDdXN0b21JZGVudDoKICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVVJJOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBiNzQ3OWM3
YmY3ZDk1NDc1MDg3OTI5NDk2ZjRkNGIxYTllZDU4ODYxLi5mMGI5N2VjZjEzODY4Y2FmNDhmODQx
YzU5ZDRjZDAxZWIxMzBhZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aApAQCAtMTE1LDYgKzExNSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJv
b2wgaXNDdXN0b21JZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0g
Q1NTVW5pdFR5cGU6OkN1c3RvbUlkZW50OyB9CiAKKyAgICBib29sIGlzSW5pdGlhbCgpIGNvbnN0
IHsgcmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZUluaXRpYWw7IH0K
KyAgICBib29sIGlzSW1wbGljaXRJbml0aWFsKCkgY29uc3QgeyByZXR1cm4gaXNJbml0aWFsKCkg
JiYgaXNJbXBsaWNpdEludGVybmFsKCk7IH0KKyAgICBib29sIGlzSW5oZXJpdCgpIGNvbnN0IHsg
cmV0dXJuIGlzVmFsdWVJRCgpICYmIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZUluaGVyaXQ7IH0KKyAg
ICBib29sIGlzVW5zZXQoKSBjb25zdCB7IHJldHVybiBpc1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkg
PT0gQ1NTVmFsdWVVbnNldDsgfQorICAgIGJvb2wgaXNSZXZlcnQoKSBjb25zdCB7IHJldHVybiBp
c1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKwogICAgIHN0YXRp
YyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1
ZUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlSUQpKTsg
fQogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2
ZVZhbHVlKHByb3BlcnR5SUQpKTsgfQogCkBAIC0xNzUsNyArMTgxLDcgQEAgcHVibGljOgogICAg
IFF1YWQqIHF1YWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgIT0g
Q1NTVW5pdFR5cGU6OkNTU19RVUFEID8gbnVsbHB0ciA6IG1fdmFsdWUucXVhZDsgfQogICAgIFJl
Y3QqIHJlY3RWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgIT0gQ1NT
VW5pdFR5cGU6OkNTU19SRUNUID8gbnVsbHB0ciA6IG1fdmFsdWUucmVjdDsgfQogICAgIENTU0Jh
c2ljU2hhcGUqIHNoYXBlVmFsdWUoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgp
ICE9IENTU1VuaXRUeXBlOjpDU1NfU0hBUEUgPyBudWxscHRyIDogbV92YWx1ZS5zaGFwZTsgfQot
ICAgIENTU1ZhbHVlSUQgdmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBl
KCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCA/IG1fdmFsdWUudmFsdWVJRCA6IENTU1Zh
bHVlSW52YWxpZDsgfQorICAgIENTU1ZhbHVlSUQgdmFsdWVJRCgpIGNvbnN0IHsgcmV0dXJuIHBy
aW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCA/IHZhbHVlSURJ
bnRlcm5hbCgpIDogQ1NTVmFsdWVJbnZhbGlkOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBpbmxpbmUgb3BlcmF0b3IgVCgpIGNvbnN0OyAvLyBEZWZpbmVkIGluIENTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaAogCkBAIC0xOTgsOSArMjA0LDEzIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgQ1NTVmFsdWVQb29sOworICAgIGZyaWVuZCBjbGFzcyBTdGF0aWND
U1NWYWx1ZVBvb2w7CiAgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVW
YWx1ZT47CiAKKyAgICBlbnVtIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnIHsgSW1wbGljaXRJbml0
aWFsVmFsdWUgfTsKKwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKENTU1ZhbHVlSUQpOworICAgIENT
U1ByaW1pdGl2ZVZhbHVlKEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKTsKICAgICBDU1NQcmltaXRp
dmVWYWx1ZShDU1NQcm9wZXJ0eUlEKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBDb2xv
ciYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IExlbmd0aCYpOwpAQCAtMjEwLDYgKzIy
MCw3IEBAIHByaXZhdGU6CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoZG91YmxlLCBDU1NVbml0VHlw
ZSk7CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgQ1NTVmFsdWVJ
RCk7CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIEltcGxpY2l0SW5p
dGlhbFZhbHVlVGFnKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywg
Y29uc3QgQ29sb3ImKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywg
ZG91YmxlLCBDU1NVbml0VHlwZSk7CiAKQEAgLTI0NCw5ICsyNTUsMzMgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNSZXNvbHV0aW9uKENTU1VuaXRUeXBlKTsKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoQ1NTVW5pdFR5
cGUpOwogCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBpbXBsaWNpdEJpdE1hc2sgPSAw
eDEwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgdmFsdWRJRE1hc2sgPSAweGZm
ZmY7CisKKyAgICB2b2lkIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlEIHZhbHVlSUQpCisg
ICAgeworICAgICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworICAgICAgICBtX3ZhbHVlLnZhbHVl
SURBbmRJbXBsaWNpdEJpdCA9IHZhbHVlSUQ7CisgICAgfQorICAgIHZvaWQgc2V0SW1wbGljaXRJ
bml0aWFsSW50ZXJuYWwoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEQW5kSW1wbGljaXRCaXQgPSBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oQ1NTVmFsdWVJbml0aWFsKSB8IGltcGxpY2l0Qml0TWFzazsKKyAgICB9CisgICAgQ1NTVmFs
dWVJRCB2YWx1ZUlESW50ZXJuYWwoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ZhbHVlSUQ+KG1fdmFsdWUu
dmFsdWVJREFuZEltcGxpY2l0Qml0ICYgdmFsdWRJRE1hc2spOworICAgIH0KKyAgICBib29sIGlz
SW1wbGljaXRJbnRlcm5hbCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNWYWx1ZUlE
KCkpOworICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUlEQW5kSW1wbGljaXRCaXQgJiBpbXBs
aWNpdEJpdE1hc2s7CisgICAgfQorICAgIAogICAgIHVuaW9uIHsKICAgICAgICAgQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlEOwotICAgICAgICBDU1NWYWx1ZUlEIHZhbHVlSUQ7CisgICAgICAgIHVp
bnQzMl90IHZhbHVlSURBbmRJbXBsaWNpdEJpdDsKICAgICAgICAgZG91YmxlIG51bTsKICAgICAg
ICAgU3RyaW5nSW1wbCogc3RyaW5nOwogICAgICAgICBDb3VudGVyKiBjb3VudGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggZjY0YmIx
NjRiOTYzZWMxODI4ZDA0ZTk3NjI5YzUzZTI0YzA3YzA5OS4uODQ2YjAwZjgzYjgxNzYyMjljN2E3
NWE5ZDQyYTEzMjMwNGE5MTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0xNDIsMTYgKzE0MiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUmVmbGVjdGlvbkRpcmVjdGlv
biBkaXJlYwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBSZWZsZWN0aW9uRGlyZWN0
aW9uOjpBYm92ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBYm92ZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWJvdmUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFJlZmxlY3Rpb25EaXJlY3Rpb246OkJlbG93OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJlbG93OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVCZWxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVmbGVjdGlvbkRpcmVjdGlvbjo6
TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBSZWZsZWN0aW9uRGlyZWN0aW9uOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQp
OwogICAgIH0KIH0KIApAQCAtMTU5LDcgKzE1OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBSZWZsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFib3Zl
OgogICAgICAgICByZXR1cm4gUmVmbGVjdGlvbkRpcmVjdGlvbjo6QWJvdmU7CiAgICAgY2FzZSBD
U1NWYWx1ZUJlbG93OgpAQCAtMTgyLDEwICsxODIsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkZpbGwgY29sdW1uRmlsbCkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGNvbHVtbkZpbGwpIHsKICAgICBjYXNlIENvbHVtbkZpbGw6OkF1dG86Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29sdW1uRmls
bDo6QmFsYW5jZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYWxhbmNlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYWxhbmNlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMTkzLDkgKzE5Myw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5GaWxsIGNvbHVtbkZpbGwpCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uRmlsbCgp
IGNvbnN0CiB7CiAgICAgaWYgKHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCkgewotICAgICAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQmFs
YW5jZSkKKyAgICAgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlQmFsYW5jZSkK
ICAgICAgICAgICAgIHJldHVybiBDb2x1bW5GaWxsOjpCYWxhbmNlOwotICAgICAgICBpZiAobV92
YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKKyAgICAgICAgaWYgKHZhbHVlSURJbnRlcm5h
bCgpID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHJldHVybiBDb2x1bW5GaWxsOjpBdXRv
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIwOCwxMCArMjA4LDEwIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShD
b2x1bW5TcGFuIGNvbHVtblNwYW4pCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjb2x1bW5TcGFuKSB7CiAgICAgY2FzZSBD
b2x1bW5TcGFuOjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbHVtblNwYW46Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIyNCw3ICsyMjQsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uU3BhbigpIGNvbnN0CiAKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUFsbDoK
ICAgICAgICAgcmV0dXJuIENvbHVtblNwYW46OkFsbDsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToK
QEAgLTI0NCwxMCArMjQ0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShQcmludENvbG9yQWRqdXN0IHZhbHVlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAodmFs
dWUpIHsKICAgICBjYXNlIFByaW50Q29sb3JBZGp1c3Q6OkV4YWN0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUV4YWN0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVFeGFjdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHJpbnRDb2xvckFkanVzdDo6
RWNvbm9teToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFY29ub215OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFY29ub215KTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBQcmludENvbG9yQWRqdXN0KCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUVjb25vbXk6CiAg
ICAgICAgIHJldHVybiBQcmludENvbG9yQWRqdXN0OjpFY29ub215OwogICAgIGNhc2UgQ1NTVmFs
dWVFeGFjdDoKQEAgLTI3NiwzNCArMjc2LDM0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3JkZXJTdHlsZSBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQm9yZGVyU3R5bGU6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkhpZGRlbjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUhpZGRlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5
bGU6Okluc2V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2V0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnNldCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQm9yZGVyU3R5bGU6Okdyb292ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVHcm9vdmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdyb292
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OlJpZGdlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZGdlOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSaWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5
bGU6Ok91dHNldDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPdXRzZXQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU91dHNldCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRvdHRlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEb3R0ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURv
dHRlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRhc2hlZDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEYXNoZWQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZURhc2hlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9y
ZGVyU3R5bGU6OlNvbGlkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvbGlk
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb2xpZCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQm9yZGVyU3R5bGU6OkRvdWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVEb3VibGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZURvdWJsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMxMiwxNiArMzEyLDE2IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3JkZXJTdHls
ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVl
LnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKSAvLyBWYWxpZCBmb3IgQ1NTIG91dGxpbmUtc3R5bGUK
KyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvKSAvLyBWYWxpZCBmb3Ig
Q1NTIG91dGxpbmUtc3R5bGUKICAgICAgICAgcmV0dXJuIEJvcmRlclN0eWxlOjpEb3R0ZWQ7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEJvcmRlclN0eWxlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NW
YWx1ZU5vbmUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxCb3JkZXJTdHlsZT4odmFsdWVJRElu
dGVybmFsKCkgLSBDU1NWYWx1ZU5vbmUpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3V0bGluZUlzQXV0bygpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRv
KQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJl
dHVybiBPdXRsaW5lSXNBdXRvOjpPbjsKICAgICByZXR1cm4gT3V0bGluZUlzQXV0bzo6T2ZmOwog
fQpAQCAtMzMyLDQzICszMzIsNDMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbXBvc2l0ZU9wZXJhdG9yIGUpCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXI6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQ2xlYXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNsZWFyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q29w
eToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb3B5OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb3B5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTb3VyY2VPdmVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
b3VyY2VPdmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6
U291cmNlSW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU291cmNlSW47Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvdXJjZUluKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZU91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlU291cmNlT3V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3Np
dGVPcGVyYXRvcjo6U291cmNlQXRvcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTb3VyY2VBdG9wOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb3VyY2VB
dG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGlu
YXRpb25PdmVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9u
T3ZlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVzdGluYXRpb25PdmVy
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRp
b25JbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkluOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZXN0aW5hdGlvbkluKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRpb25PdXQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlc3RpbmF0aW9uT3V0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVzdGluYXRpb25BdG9wKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVhvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlWG9y
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0Rhcmtl
cjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbHVzRGFya2VyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbHVzRGFya2VyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXI6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb21w
b3NpdGVPcGVyYXRvcjo6RGlmZmVyZW5jZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC0zODAsNyArMzgwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIENvbXBvc2l0ZU9wZXJhdG9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUNsZWFyOgogICAgICAgICByZXR1
cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkNsZWFyOwogICAgIGNhc2UgQ1NTVmFsdWVDb3B5OgpAQCAt
NDIxLDIwNiArNDIxLDIwNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IE5vQ29udHJvbFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQXV0b1BhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUNoZWNrYm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
aGVja2JveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmFkaW9QYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJhZGlvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVSYWRpbyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUHVzaEJ1dHRvblBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHVzaEJ1dHRvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHVzaEJ1dHRvbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3F1YXJlQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTcXVhcmVCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVNxdWFyZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnV0dG9uUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXR0b247CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnV0
dG9uQmV2ZWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJ1dHRvbkJl
dmVsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCdXR0b25CZXZlbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGVmYXVsdEJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlRGVmYXVsdEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SW5uZXJTcGluQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJ
bm5lclNwaW5CdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubmVy
U3BpbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGlzdGJveFBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGlzdGJveDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTGlzdGJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGlz
dEl0ZW1QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3RpdGVtOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0aXRlbSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25QYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFFeGl0RnVsbHNjcmVl
bkJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFFeGl0RnVs
bHNjcmVlbkJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFQbGF5QnV0dG9u
UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVBsYXlCdXR0b247
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhUGxheUJ1dHRvbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFPdmVybGF5UGxheUJ1dHRvblBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFPdmVybGF5UGxheUJ1dHRvbjsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFPdmVybGF5UGxheUJ1dHRvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhTXV0ZUJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTWVkaWFTZWVrQmFja0J1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTWVkaWFTZWVrRm9yd2FyZEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTWVkaWFSZXdpbmRCdXR0b25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1lZGlhUmV3aW5kQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVNZWRpYVJld2luZEJ1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZU1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhU2xpZGVyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVNsaWRlcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTWVkaWFTbGlkZXJ0aHVtYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b247CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYjsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJ0aHVtYik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dyb3VuZCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3Jv
dW5kUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xz
RnVsbHNjcmVlbkJhY2tncm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXI7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZvbHVtZVNsaWRlcik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQ
YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRnVsbHNjcmVlblZv
bHVtZVNsaWRlclRodW1iOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRp
YUZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWVkaWFDdXJyZW50VGltZVBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TWVkaWFDdXJyZW50VGltZURpc3BsYXk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
ZWRpYVRpbWVSZW1haW5pbmdQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmRQYXJ0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tncm91bmQ7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhQ29udHJvbHNMaWdodEJhckJhY2tn
cm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhQ29udHJvbHNEYXJrQmFyQmFj
a2dyb3VuZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFDb250
cm9sc0RhcmtCYXJCYWNrZ3JvdW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVNZWRpYUNvbnRyb2xzRGFya0JhckJhY2tncm91bmQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE1lbnVsaXN0UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51
bGlzdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVudWxpc3QpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0QnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTWVudWxpc3RCdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE1lbnVsaXN0VGV4dFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVu
dWxpc3RUZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZW51bGlzdFRl
eHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lbnVsaXN0VGV4dEZpZWxkUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZW51bGlzdFRleHRmaWVsZDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVudWxpc3RUZXh0ZmllbGQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1ldGVyUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNZXRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWV0ZXIp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlbGV2YW5jeUxldmVsSW5kaWNhdG9yUGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxldmFuY3lMZXZlbEluZGljYXRv
cjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVsZXZhbmN5TGV2ZWxJbmRp
Y2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRpbnVvdXNDYXBhY2l0eUxldmVs
SW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250aW51
b3VzQ2FwYWNpdHlMZXZlbEluZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIERpc2NyZXRlQ2FwYWNpdHlMZXZlbEluZGljYXRvclBhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlzY3JldGVDYXBhY2l0eUxldmVsSW5kaWNhdG9yOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJ
bmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJhdGluZ0xldmVsSW5kaWNhdG9y
UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSYXRpbmdMZXZlbEluZGlj
YXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmF0aW5nTGV2ZWxJbmRp
Y2F0b3IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByb2dyZXNzQmFyUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm9ncmVzc0JhcjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUHJvZ3Jlc3NCYXIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFByb2dyZXNzQmFyVmFsdWVQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVByb2dyZXNzQmFyVmFsdWU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVByb2dyZXNzQmFyVmFsdWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlckhvcml6
b250YWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlckhvcml6
b250YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlckhvcml6b250
YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNsaWRlclZlcnRpY2FsUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJWZXJ0aWNhbDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2xpZGVyVmVydGljYWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU2xpZGVydGh1bWJIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVTbGlkZXJ0aHVtYkhvcml6b250YWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNsaWRlclRodW1iVmVydGljYWxQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNsaWRlcnRodW1iVmVydGljYWwpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENhcmV0UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXJldDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2FyZXQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNlYXJjaEZpZWxkUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTZWFyY2hmaWVsZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U2VhcmNoZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkRGVjb3Jh
dGlvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGRE
ZWNvcmF0aW9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZWFyY2hmaWVs
ZERlY29yYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNlYXJjaEZpZWxkUmVzdWx0
c0RlY29yYXRpb25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlYXJj
aGZpZWxkUmVzdWx0c0RlY29yYXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0RlY29yYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNCdXR0b24pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZWFyY2hmaWVsZENhbmNlbEJ1dHRvbjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b24pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRGaWVsZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlVGV4dGZpZWxkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVUZXh0ZmllbGQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBcmVhUGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0YXJlYTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlVGV4dGFyZWEpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENhcHNMb2NrSW5kaWNhdG9yUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDYXBzTG9ja0luZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q2Fwc0xvY2tJbmRpY2F0b3IpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVRUQUNITUVO
VF9FTEVNRU5UKQogICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQXR0YWNobWVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQXR0YWNobWVudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm9yZGVybGVzc0F0
dGFjaG1lbnRQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlcmxl
c3NBdHRhY2htZW50OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3JkZXJs
ZXNzQXR0YWNobWVudCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBcHBsZVBheUJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXBwbGVQYXlCdXR0b24pOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGNhc2UgQ29sb3JXZWxsUGFydDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2xvcldlbGw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNvbG9yV2VsbCk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgY2FzZSBMaXN0QnV0dG9uUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaXN0QnV0dG9uOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0QnV0dG9uKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYK
ICAgICB9CkBAIC02MzAsMTMgKzYzMCwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQ29udHJvbFBhcnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKKyAg
ICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICByZXR1cm4g
Tm9Db250cm9sUGFydDsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRv
KQorICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJl
dHVybiBBdXRvUGFydDsKIAotICAgIHJldHVybiBDb250cm9sUGFydChtX3ZhbHVlLnZhbHVlSUQg
LSBDU1NWYWx1ZUNoZWNrYm94ICsgQ2hlY2tib3hQYXJ0KTsKKyAgICByZXR1cm4gQ29udHJvbFBh
cnQodmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZUNoZWNrYm94ICsgQ2hlY2tib3hQYXJ0KTsK
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEJhY2tmYWNlVmlzaWJpbGl0eSBlKQpAQCAtNjQ1LDEwICs2NDUsMTAgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJhY2tmYWNlVmlz
aWJpbGl0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5OjpW
aXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJhY2tmYWNlVmlzaWJpbGl0eTo6SGlkZGVuOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSGlkZGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNjU3LDcgKzY1Nyw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCYWNrZmFjZVZp
c2liaWxpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJuIEJhY2tmYWNlVmlzaWJp
bGl0eTo6VmlzaWJsZTsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgpAQCAtNjc3LDEzICs2Nzcs
MTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZpbGxBdHRhY2htZW50IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGaWxsQXR0YWNo
bWVudDo6U2Nyb2xsQmFja2dyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTY3JvbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNjcm9sbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbEF0dGFjaG1lbnQ6OkxvY2FsQmFja2dyb3VuZDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb2NhbDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTG9jYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZp
bGxBdHRhY2htZW50OjpGaXhlZEJhY2tncm91bmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRml4ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpeGVk
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNjkyLDcgKzY5Miw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGaWxsQXR0YWNobWVudCgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVTY3JvbGw6CiAgICAgICAgIHJldHVybiBGaWxsQXR0YWNobWVudDo6U2Nyb2xsQmFja2dy
b3VuZDsKICAgICBjYXNlIENTU1ZhbHVlTG9jYWw6CkBAIC03MTMsMTYgKzcxMywxNiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmlsbEJv
eCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRmlsbEJveDo6Qm9yZGVyOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQm9yZGVyQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWxs
Qm94OjpQYWRkaW5nOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBhZGRpbmdC
b3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBhZGRpbmdCb3gpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZpbGxCb3g6OkNvbnRlbnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29udGVudEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ29udGVudEJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbEJveDo6
VGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNzMxLDcgKzczMSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGaWxsQm94KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoKICAgICBjYXNlIENTU1ZhbHVlQm9y
ZGVyQm94OgogICAgICAgICByZXR1cm4gRmlsbEJveDo6Qm9yZGVyOwpAQCAtNzU4LDE2ICs3NTgs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZpbGxSZXBlYXQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZpbGxSZXBlYXQ6OlJl
cGVhdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXBlYXQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlcGVhdCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRmlsbFJlcGVhdDo6Tm9SZXBlYXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9SZXBlYXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vUmVw
ZWF0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWxsUmVwZWF0OjpSb3VuZDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3VuZDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlUm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZpbGxSZXBl
YXQ6OlNwYWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KQEAgLTc3Niw3ICs3NzYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRmlsbFJlcGVhdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVSZXBlYXQ6CiAgICAgICAgIHJl
dHVybiBGaWxsUmVwZWF0OjpSZXBlYXQ7CiAgICAgY2FzZSBDU1NWYWx1ZU5vUmVwZWF0OgpAQCAt
Nzk5LDE2ICs3OTksMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEJveFBhY2sgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveFBh
Y2s6OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQm94UGFjazo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hQYWNrOjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJveFBhY2s6Okp1c3RpZnk6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTgxNyw3ICs4MTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgQm94UGFjaygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKICAgICAgICAgcmV0dXJuIEJveFBhY2s6OlN0
YXJ0OwogICAgIGNhc2UgQ1NTVmFsdWVFbmQ6CkBAIC04NDAsMTkgKzg0MCwxOSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94QWxpZ25t
ZW50IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OlN0cmV0Y2g6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU3RyZXRjaCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Qm94QWxpZ25tZW50OjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
dGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJveEFsaWdubWVudDo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OkVu
ZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94
QWxpZ25tZW50OjpCYXNlbGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVC
YXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmFzZWxpbmUpOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveEFsaWdubWVudCgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVT
dHJldGNoOgogICAgICAgICByZXR1cm4gQm94QWxpZ25tZW50OjpTdHJldGNoOwogICAgIGNhc2Ug
Q1NTVmFsdWVTdGFydDoKQEAgLTg4NywxMCArODg3LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hEZWNvcmF0aW9uQnJlYWsgZSkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveERlY29yYXRpb25CcmVhazo6U2xpY2U6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpY2U7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVNsaWNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hEZWNv
cmF0aW9uQnJlYWs6OkNsb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNs
b25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDbG9uZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KQEAgLTg5OSw3ICs4OTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJyZWFrKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNs
aWNlOgogICAgICAgICByZXR1cm4gQm94RGVjb3JhdGlvbkJyZWFrOjpTbGljZTsKICAgICBjYXNl
IENTU1ZhbHVlQ2xvbmU6CkBAIC05MTksMTYgKzkxOSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRWRnZSBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgRWRnZTo6VG9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVG9wKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBFZGdlOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVkZ2U6OkJvdHRvbToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3R0b207CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUJvdHRvbSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRWRnZTo6TGVmdDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtOTM3
LDcgKzkzNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBFZGdlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJuIEVkZ2U6OlRvcDsKICAgICBjYXNl
IENTU1ZhbHVlUmlnaHQ6CkBAIC05NjAsMTAgKzk2MCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94U2l6aW5nIGUpCiAgICAgc2V0
UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNo
IChlKSB7CiAgICAgY2FzZSBCb3hTaXppbmc6OkJvcmRlckJveDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94U2l6aW5nOjpD
b250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRlbnRCb3g7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CkBAIC05NzIsNyArOTcyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveFNpemluZygpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAg
c3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCb3JkZXJCb3g6
CiAgICAgICAgIHJldHVybiBCb3hTaXppbmc6OkJvcmRlckJveDsKICAgICBjYXNlIENTU1ZhbHVl
Q29udGVudEJveDoKQEAgLTk5MSwxMCArOTkxLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hEaXJlY3Rpb24gZSkKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGUpIHsKICAgICBjYXNlIEJveERpcmVjdGlvbjo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hEaXJlY3Rpb246OlJldmVy
c2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmV2ZXJzZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmV2ZXJzZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTEwMDMsNyArMTAwMyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBCb3hEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICBy
ZXR1cm4gQm94RGlyZWN0aW9uOjpOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CkBA
IC0xMDIyLDEwICsxMDIyLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShCb3hMaW5lcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
Qm94TGluZXM6OlNpbmdsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTaW5n
bGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNpbmdsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQm94TGluZXM6Ok11bHRpcGxlOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU11bHRpcGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVNdWx0aXBsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEwMzQsNyArMTAz
NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hM
aW5lcygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVTaW5nbGU6CiAgICAgICAgIHJldHVybiBCb3hMaW5lczo6U2luZ2xlOwog
ICAgIGNhc2UgQ1NTVmFsdWVNdWx0aXBsZToKQEAgLTEwNTMsMTAgKzEwNTMsMTAgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJveE9yaWVu
dCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm94T3JpZW50OjpIb3Jpem9udGFsOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWw7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUhvcml6b250YWwpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEJveE9yaWVudDo6VmVydGljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVmVydGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2Fs
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTA2NSw3ICsxMDY1LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveE9yaWVudCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVIb3Jpem9udGFsOgogICAgIGNhc2UgQ1NTVmFsdWVJbmxpbmVBeGlzOgogICAgICAgICByZXR1
cm4gQm94T3JpZW50OjpIb3Jpem9udGFsOwpAQCAtMTA4NiwxNiArMTA4NiwxNiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ2FwdGlvblNp
ZGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIENhcHRpb25TaWRlOjpMZWZ0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUxlZnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhcHRpb25TaWRl
OjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENhcHRpb25TaWRlOjpUb3A6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVG9wOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUb3ApOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENhcHRpb25TaWRlOjpCb3R0b206Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xMTA0LDcgKzExMDQs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ2FwdGlv
blNpZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTGVmdDoKICAgICAgICAgcmV0dXJuIENhcHRpb25TaWRlOjpMZWZ0Owog
ICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKQEAgLTExMjcsMjIgKzExMjcsMjIgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENsZWFyIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBDbGVhcjo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVO
b25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6TGVmdDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6UmlnaHQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVh
cjo6SW5saW5lU3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5l
U3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubGluZVN0YXJ0KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6SW5saW5lRW5kOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlSW5saW5lRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDbGVhcjo6
Qm90aDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3RoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtMTE1MSw3ICsxMTUxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIENsZWFyKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBDbGVhcjo6
Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlTGVmdDoKQEAgLTExNzgsMTEyICsxMTc4LDExMiBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vy
c29yVHlwZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQ3Vyc29yVHlwZTo6QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JU
eXBlOjpEZWZhdWx0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlZmF1bHQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9u
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q29udGV4dE1lbnU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGV4dE1lbnU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRleHRNZW51KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpIZWxwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUhlbHA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhlbHApOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlBvaW50ZXI6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUG9pbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlUG9pbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6
UHJvZ3Jlc3M6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3M7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVByb2dyZXNzKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpXYWl0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVdhaXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdhaXQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkNlbGw6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ2VsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q3Jv
c3NoYWlyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNyb3NzaGFpcjsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ3Jvc3NoYWlyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpUZXh0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlZlcnRpY2FsVGV4dDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbFRleHQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2FsVGV4dCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxpYXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQWxpYXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsaWFzKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpDb3B5OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvcHk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUNvcHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok1vdmU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTW92ZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTW92ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vy
c29yVHlwZTo6Tm9Ecm9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vRHJv
cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9Ecm9wKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOb3RBbGxvd2VkOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vdEFsbG93ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vdEFsbG93ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5
cGU6OkdyYWI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3JhYjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlR3JhYik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ3Vyc29yVHlwZTo6R3JhYmJpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlR3JhYmJpbmc7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdyYWJi
aW5nKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpFUmVzaXplOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVSZXNpemU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUVSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1
cnNvclR5cGU6Ok5SZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTlJl
c2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTlJlc2l6ZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TkVSZXNpemU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTmVSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5lUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBl
OjpOV1Jlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd1Jlc2l6ZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTndSZXNpemUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlNSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6U0VSZXNp
emU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VSZXNpemU7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpTV1Jlc2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTd1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3dS
ZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OldSZXNpemU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlV1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q3Vyc29yVHlwZTo6RVdSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RXdSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUV3UmVzaXplKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOU1Jlc2l6ZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOc1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTnNSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNv
clR5cGU6Ok5FU1dSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTmVz
d1Jlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTmVzd1Jlc2l6ZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TldTRVJlc2l6ZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOd3NlUmVzaXplOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOd3NlUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDdXJzb3JUeXBlOjpDb2x1bW5SZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ29sUmVzaXplOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xS
ZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OlJvd1Jlc2l6ZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3dSZXNpemU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJvd1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ3Vyc29yVHlwZTo6QWxsU2Nyb2xsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUFsbFNjcm9sbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxs
U2Nyb2xsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpab29tSW46Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWm9vbUluOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVab29tSW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1
cnNvclR5cGU6Olpvb21PdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWm9v
bU91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlWm9vbU91dCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEyOTEsNyArMTI5MSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDdXJzb3JUeXBlIGUpCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVHlwZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlQ29weToKICAgICAgICAgcmV0dXJuIEN1cnNvclR5cGU6OkNvcHk7CiAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdEdyYWI6CkBAIC0xMzA1LDcgKzEzMDUsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ3Vyc29yVHlwZSgpIGNvbnN0CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBDdXJzb3JUeXBlOjpOb25lOwogICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDdXJzb3JUeXBlPihtX3ZhbHVlLnZh
bHVlSUQgLSBDU1NWYWx1ZUF1dG8pOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q3Vyc29y
VHlwZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZUF1dG8pOwogICAgIH0KIH0KIApAQCAt
MTMxNiwxMCArMTMxNiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vyc29yVmlzaWJpbGl0eSBlKQogICAgIHNldFByaW1pdGl2ZVVu
aXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAg
IGNhc2UgQ3Vyc29yVmlzaWJpbGl0eTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JWaXNpYmlsaXR5OjpBdXRvSGlkZToKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvSGlkZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQXV0b0hpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CkBAIC0xMzI4LDkgKzEzMjgsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQ3Vyc29yVmlzaWJpbGl0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvKQorICAg
IGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgIHJldHVybiBD
dXJzb3JWaXNpYmlsaXR5OjpBdXRvOwotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvSGlkZSkKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvSGlk
ZSkKICAgICAgICAgcmV0dXJuIEN1cnNvclZpc2liaWxpdHk6OkF1dG9IaWRlOwogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMzQ0LDczICsxMzQ0LDczIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShEaXNwbGF5VHlwZSBlKQog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoZSkgewogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUlubGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6
OkJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2NrOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9jayk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRGlzcGxheVR5cGU6Okxpc3RJdGVtOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUxpc3RJdGVtOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaXN0
SXRlbSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUJsb2Nr
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUJsb2NrOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmVCbG9jayk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVRhYmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJs
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZVRhYmxlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZVRhYmxlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmVUYWJsZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93R3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVGFibGVSb3dHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlVGFibGVSb3dHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxh
eVR5cGU6OlRhYmxlSGVhZGVyR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVGFibGVIZWFkZXJHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
VGFibGVIZWFkZXJHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6
OlRhYmxlRm9vdGVyR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFi
bGVGb290ZXJHcm91cDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGFibGVG
b290ZXJHcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxl
Um93OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJsZVJvdyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uR3JvdXA6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVGFibGVDb2x1bW5Hcm91cCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRhYmxlQ29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVU
YWJsZUNvbHVtbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxl
Q2VsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNlbGw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRhYmxlQ2VsbCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNhcHRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRhYmxlQ2FwdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxh
eVR5cGU6OkJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRCb3g7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtpdEJveCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUJveDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRJbmxpbmVCb3g7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVdlYmtpdElubGluZUJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRGlzcGxheVR5cGU6OkZsZXg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
RmxleDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxleCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUZsZXg6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lRmxleDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlSW5saW5lRmxleCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxh
eVR5cGU6OkdyaWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR3JpZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlR3JpZCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRGlzcGxheVR5cGU6OklubGluZUdyaWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlSW5saW5lR3JpZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSW5saW5lR3JpZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6Ok5v
bmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RGlzcGxheVR5cGU6OkNvbnRlbnRzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvbnRlbnRzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250ZW50cyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRGlzcGxheVR5cGU6OkZsb3dSb290OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsb3dSb290OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVGbG93Um9vdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTE0MTksMTAgKzE0MTksMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIERpc3BsYXlUeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUpCisgICAgaWYgKHZh
bHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgcmV0dXJuIERpc3BsYXlU
eXBlOjpOb25lOwogCi0gICAgRGlzcGxheVR5cGUgZGlzcGxheSA9IHN0YXRpY19jYXN0PERpc3Bs
YXlUeXBlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUlubGluZSk7CisgICAgRGlzcGxheVR5
cGUgZGlzcGxheSA9IHN0YXRpY19jYXN0PERpc3BsYXlUeXBlPih2YWx1ZUlESW50ZXJuYWwoKSAt
IENTU1ZhbHVlSW5saW5lKTsKICAgICBBU1NFUlQoZGlzcGxheSA+PSBEaXNwbGF5VHlwZTo6SW5s
aW5lICYmIGRpc3BsYXkgPD0gRGlzcGxheVR5cGU6Ok5vbmUpOwogICAgIHJldHVybiBkaXNwbGF5
OwogfQpAQCAtMTQzMywxMCArMTQzMywxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRW1wdHlDZWxsIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBFbXB0eUNlbGw6OlNob3c6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU2hvdzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2hvdyk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRW1wdHlDZWxsOjpIaWRlOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUhpZGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUhpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNDQ1LDcgKzE0NDUsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRW1wdHlDZWxsKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZVNob3c6CiAgICAgICAgIHJldHVybiBFbXB0eUNlbGw6OlNob3c7CiAgICAgY2FzZSBD
U1NWYWx1ZUhpZGU6CkBAIC0xNDY0LDE2ICsxNDY0LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGbGV4RGlyZWN0aW9uIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpSb3c6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUm93OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVSb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhEaXJlY3Rpb246OlJvd1JldmVy
c2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93UmV2ZXJzZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUm93UmV2ZXJzZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgRmxleERpcmVjdGlvbjo6Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sdW1uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpDb2x1bW5S
ZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbHVtblJldmVyc2U7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbHVtblJldmVyc2UpOwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNDgyLDcgKzE0ODIsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmxleERpcmVjdGlvbigpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVS
b3c6CiAgICAgICAgIHJldHVybiBGbGV4RGlyZWN0aW9uOjpSb3c7CiAgICAgY2FzZSBDU1NWYWx1
ZVJvd1JldmVyc2U6CkBAIC0xNTA1LDIyICsxNTA1LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBbGlnbkNvbnRlbnQgZSkKICAgICBz
ZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0
Y2ggKGUpIHsKICAgICBjYXNlIEFsaWduQ29udGVudDo6RmxleFN0YXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRmxleFN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNv
bnRlbnQ6OkZsZXhFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVu
ZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxleEVuZCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50OjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVDZW50ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVudDo6U3Bh
Y2VCZXR3ZWVuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQmV0d2Vl
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2VCZXR3ZWVuKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnQ6OlNwYWNlQXJvdW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlQXJvdW5kOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZUFyb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQWxpZ25Db250ZW50OjpTdHJldGNoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVN0cmV0Y2g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0cmV0Y2gp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNTI5LDcgKzE1MjksNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQWxpZ25Db250ZW50KCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZUZsZXhTdGFydDoKICAgICAgICAgcmV0dXJuIEFsaWduQ29udGVudDo6RmxleFN0YXJ0Owog
ICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgpAQCAtMTU1NiwxMyArMTU1NiwxMyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmxleFdyYXAg
ZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZsZXhXcmFwOjpOb1dyYXA6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm93cmFwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVOb3dyYXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsZXhXcmFwOjpX
cmFwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdyYXA7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdyYXApOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEZsZXhXcmFwOjpSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdy
YXBSZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXcmFwUmV2ZXJz
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE1NzEsNyArMTU3MSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGbGV4V3JhcCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVOb3dyYXA6CiAgICAgICAgIHJldHVybiBGbGV4V3JhcDo6Tm9XcmFwOwogICAgIGNhc2UgQ1NT
VmFsdWVXcmFwOgpAQCAtMTU5MiwxOSArMTU5MiwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmxvYXQgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIEZsb2F0OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpMZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxlZnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpSaWdodDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZsb2F0OjpJbmxpbmVTdGFy
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVTdGFydDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lU3RhcnQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZsb2F0OjpJbmxpbmVFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSW5saW5lRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJ
bmxpbmVFbmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNjEzLDcgKzE2MTMsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmxvYXQoKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlTGVmdDoKICAgICAgICAgcmV0dXJuIEZsb2F0OjpMZWZ0OwogICAgIGNhc2UgQ1NTVmFs
dWVSaWdodDoKQEAgLTE2MzksMjIgKzE2MzksMjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVCcmVhayBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgTGluZUJyZWFrOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVhazo6TG9vc2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTG9vc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUxvb3NlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWs6Ok5vcm1h
bDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTGluZUJyZWFrOjpTdHJpY3Q6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
U3RyaWN0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJpY3QpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIExpbmVCcmVhazo6QWZ0ZXJXaGl0ZVNwYWNlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFmdGVyV2hpdGVTcGFjZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWZ0ZXJXaGl0ZVNwYWNlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBMaW5lQnJlYWs6OkFueXdoZXJlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUFueXdoZXJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVB
bnl3aGVyZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE2NjMsNyArMTY2Myw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8
SGFuZ2luZ1B1bmN0dWF0aW9uPigpIGNvCiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKICAg
ICAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIE9wdGlv
blNldDxIYW5naW5nUHVuY3R1YXRpb24+IHsgfTsKICAgICBjYXNlIENTU1ZhbHVlRmlyc3Q6CkBA
IC0xNjg2LDcgKzE2ODYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgTGluZUJyZWFrKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBMaW5lQnJl
YWs6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUxvb3NlOgpAQCAtMTcxMywxMCArMTcxMywxMCBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
TGlzdFN0eWxlUG9zaXRpb24gZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIExpc3RTdHlsZVBv
c2l0aW9uOjpPdXRzaWRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU91dHNp
ZGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU91dHNpZGUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIExpc3RTdHlsZVBvc2l0aW9uOjpJbnNpZGU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5zaWRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVJbnNpZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNzI1LDcg
KzE3MjUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
TGlzdFN0eWxlUG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlT3V0c2lkZToKICAgICAgICAgcmV0dXJuIExpc3RT
dHlsZVBvc2l0aW9uOjpPdXRzaWRlOwogICAgIGNhc2UgQ1NTVmFsdWVJbnNpZGU6CkBAIC0xNzU1
LDE4ICsxNzU1LDE4IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShMaXN0U3R5bGVUeXBlIHN0eWxlKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCiB7CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0gdG9DU1NWYWx1ZUlEKHN0eWxlKTsKKyAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwodG9DU1NWYWx1ZUlEKHN0eWxlKSk7CiB9CiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaXN0U3R5bGVUeXBlKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaXN0U3R5bGVUeXBlOjpOb25lOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxMaXN0U3R5bGVUeXBlPihtX3ZhbHVlLnZh
bHVlSUQgLSBDU1NWYWx1ZURpc2MpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TGlzdFN0
eWxlVHlwZT4odmFsdWVJREludGVybmFsKCkgLSBDU1NWYWx1ZURpc2MpOwogICAgIH0KIH0KIApA
QCAtMTc3NiwxMyArMTc3NiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTWFyZ2luQ29sbGFwc2UgZSkKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAg
ICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sbGFwc2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpTZXBh
cmF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VwYXJhdGUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpEaXNjYXJkOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZURpc2NhcmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZURpc2NhcmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNzkxLDcgKzE3OTEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWFyZ2luQ29s
bGFwc2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlQ29sbGFwc2U6CiAgICAgICAgIHJldHVybiBNYXJnaW5Db2xsYXBzZTo6
Q29sbGFwc2U7CiAgICAgY2FzZSBDU1NWYWx1ZVNlcGFyYXRlOgpAQCAtMTgxMiwxNiArMTgxMiwx
NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoTWFycXVlZUJlaGF2aW9yIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBNYXJxdWVlQmVo
YXZpb3I6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWFycXVlZUJlaGF2aW9yOjpTY3JvbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
Y3JvbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVCZWhhdmlvcjo6U2xpZGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpZGU7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBN
YXJxdWVlQmVoYXZpb3I6OkFsdGVybmF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBbHRlcm5hdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsdGVy
bmF0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE4MzAsNyArMTgzMCw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBNYXJxdWVlQmVoYXZp
b3IoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIE1hcnF1ZWVCZWhhdmlvcjo6Tm9uZTsK
ICAgICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgpAQCAtMTg1MywyNSArMTg1MywyNSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTWFycXVlZURp
cmVjdGlvbiBkaXJlY3RpbwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBNYXJxdWVl
RGlyZWN0aW9uOjpGb3J3YXJkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZv
cndhcmRzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGb3J3YXJkcyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6QmFja3dhcmQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFja3dhcmRzOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYWNrd2FyZHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IE1hcnF1ZWVEaXJlY3Rpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6VXA6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVVwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpEb3du
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvd247CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZURvd24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1h
cnF1ZWVEaXJlY3Rpb246OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6UmlnaHQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTg4MCw3ICsxODgw
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcnF1
ZWVEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlRm9yd2FyZHM6CiAgICAgICAgIHJldHVybiBNYXJxdWVlRGly
ZWN0aW9uOjpGb3J3YXJkOwogICAgIGNhc2UgQ1NTVmFsdWVCYWNrd2FyZHM6CkBAIC0xOTExLDEw
ICsxOTExLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShOQlNQTW9kZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTkJTUE1vZGU6
Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTkJTUE1vZGU6OlNwYWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNwYWNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE5MjMsNyArMTkyMyw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBOQlNQTW9kZSgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTcGFj
ZToKICAgICAgICAgcmV0dXJuIE5CU1BNb2RlOjpTcGFjZTsKICAgICBjYXNlIENTU1ZhbHVlTm9y
bWFsOgpAQCAtMTk0MiwyNSArMTk0MiwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcmZsb3cgZSkKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAg
ICBjYXNlIE92ZXJmbG93OjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVZpc2libGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpIaWRkZW46Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVIaWRkZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpT
Y3JvbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTY3JvbGwpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE92ZXJmbG93OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpQYWdlZFg6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlV2Via2l0UGFnZWRYOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVXZWJraXRQYWdlZFgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93
OjpQYWdlZFk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UGFnZWRZ
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRQYWdlZFkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE92ZXJmbG93OjpDbGlwOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNsaXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNsaXApOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xOTY5LDcgKzE5NjksNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcmZsb3coKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlVmlzaWJsZToKICAgICAgICAgcmV0dXJuIE92ZXJmbG93OjpWaXNpYmxlOwogICAgIGNh
c2UgQ1NTVmFsdWVIaWRkZW46CkBAIC0xOTk5LDEzICsxOTk5LDEzIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyc2Nyb2xsQmVoYXZp
b3IgYmVoYXZpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChiZWhhdmlvcikgewogICAgIGNhc2UgT3ZlcnNjcm9sbEJlaGF2
aW9yOjpDb250YWluOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRhaW47
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRhaW4pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE92ZXJzY3JvbGxCZWhhdmlvcjo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6
OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTIwMTQsNyArMjAxNCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPdmVyc2Nyb2xsQmVoYXZpb3IoKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQ29udGFpbjoKICAgICAg
ICAgcmV0dXJuIE92ZXJzY3JvbGxCZWhhdmlvcjo6Q29udGFpbjsKICAgICBjYXNlIENTU1ZhbHVl
Tm9uZToKQEAgLTIwMzUsMzQgKzIwMzUsMzQgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrQmV0d2VlbiBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6QXZvaWQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUF2b2lkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdl
ZW46OkF2b2lkQ29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lk
Q29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZENvbHVtbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpBdm9pZFBhZ2U6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWRQYWdlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZFBhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6Q29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29sdW1uKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdlZW46OlBhZ2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUGFnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUGFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpMZWZ0
UGFnZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCcmVha0JldHdlZW46OlJpZ2h0UGFnZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6UmVjdG9QYWdlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlY3RvOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSZWN0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3
ZWVuOjpWZXJzb1BhZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVyc287
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnNvKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMjA3MSw3ICsyMDcxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrQmV0d2VlbigpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAg
c3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAg
ICAgICByZXR1cm4gQnJlYWtCZXR3ZWVuOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoK
QEAgLTIxMDYsMTYgKzIxMDYsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJyZWFrSW5zaWRlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBCcmVha0luc2lkZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQXZvaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUF2b2lkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRD
b2x1bW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXZvaWRDb2x1bW47Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF2b2lkQ29sdW1uKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRQYWdlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lkUGFnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXZvaWRQYWdlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjEyNCw3
ICsyMTI0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEJyZWFrSW5zaWRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogICAgIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQnJlYWtJbnNp
ZGU6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUF2b2lkOgpAQCAtMjE0NywxOSArMjE0NywxOSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
UG9zaXRpb25UeXBlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBQb3NpdGlvblR5cGU6OlN0
YXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXRpYyk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUG9zaXRpb25UeXBlOjpSZWxhdGl2ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVSZWxhdGl2ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVs
YXRpdmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvc2l0aW9uVHlwZTo6QWJzb2x1dGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWJzb2x1dGU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFic29sdXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQb3NpdGlvblR5cGU6OkZpeGVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGaXhlZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9zaXRpb25UeXBlOjpTdGlja3k6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RpY2t5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTdGlja3kpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMTY4LDcg
KzIxNjgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
UG9zaXRpb25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXRpYzoKICAgICAgICAgcmV0dXJuIFBvc2l0aW9uVHlw
ZTo6U3RhdGljOwogICAgIGNhc2UgQ1NTVmFsdWVSZWxhdGl2ZToKQEAgLTIxOTQsMTYgKzIxOTQs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFJlc2l6ZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgUmVzaXplOjpCb3RoOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdGg7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUJvdGgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlc2l6ZTo6
SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFs
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBSZXNpemU6OlZlcnRpY2FsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVZlcnRpY2FsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVWZXJ0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVzaXplOjpOb25lOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0y
MjEyLDcgKzIyMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgUmVzaXplKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdGg6CiAgICAgICAgIHJldHVybiBSZXNpemU6OkJvdGg7
CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWw6CkBAIC0yMjM4LDEwICsyMjM4LDEwIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUYWJs
ZUxheW91dFR5cGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRhYmxlTGF5b3V0VHlwZTo6
QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUYWJsZUxheW91dFR5cGU6OkZpeGVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGaXhlZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIyNTAsNyArMjI1MCw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUYWJsZUxheW91dFR5cGUoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlRml4ZWQ6CiAgICAgICAgIHJldHVybiBUYWJsZUxheW91dFR5cGU6OkZpeGVkOwogICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgpAQCAtMjI2OSwzMSArMjI2OSwzMSBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEFsaWduTW9kZSBlKQog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6U3RhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2Rl
OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHRBbGlnbk1vZGU6OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpDZW50
ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFRleHRBbGlnbk1vZGU6Okp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSnVzdGlm
eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0TGVmdDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXRMZWZ0OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJLaXRSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVXZWJraXRSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlV2Via2l0UmlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbk1v
ZGU6OldlYktpdENlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJr
aXRDZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtpdENlbnRl
cik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIzMDIsMTQgKzIzMDIsMTQgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbGlnbk1vZGUo
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNl
IENTU1ZhbHVlV2Via2l0QXV0bzogLy8gTGVnYWN5IC13ZWJraXQtYXV0by4gRXFpdXZhbGVudCB0
byBzdGFydC4KICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBUZXh0QWxp
Z25Nb2RlOjpTdGFydDsKICAgICBjYXNlIENTU1ZhbHVlRW5kOgogICAgICAgICByZXR1cm4gVGV4
dEFsaWduTW9kZTo6RW5kOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUZXh0QWxpZ25Nb2RlPihtX3ZhbHVlLnZhbHVlSUQgLSBDU1NWYWx1ZUxlZnQpOworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEFsaWduTW9kZT4odmFsdWVJREludGVybmFsKCkgLSBD
U1NWYWx1ZUxlZnQpOwogICAgIH0KIH0KIApAQCAtMjMyMCwyNSArMjMyMCwyNSBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dEFsaWdu
TGFzdCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6U3RhcnQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0
QWxpZ25MYXN0OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6UmlnaHQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25M
YXN0OjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6Okp1c3RpZnk6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSnVzdGlmeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSnVzdGlmeSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTGFzdDo6QXV0
bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjM0Nyw3ICsyMzQ3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFRleHRBbGlnbkxhc3QoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRl
eHRBbGlnbkxhc3Q6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZVN0YXJ0OgpAQCAtMjM3NiwxNiAr
MjM3NiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoVGV4dEp1c3RpZnkgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRKdXN0
aWZ5OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFRleHRKdXN0aWZ5OjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHRKdXN0aWZ5OjpJbnRlcldvcmQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW50ZXJXb3JkOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVJbnRlcldvcmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRK
dXN0aWZ5OjpEaXN0cmlidXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURp
c3RyaWJ1dGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURpc3RyaWJ1dGUp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMzk0LDcgKzIzOTQsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dEp1c3RpZnkoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRleHRKdXN0aWZ5OjpBdXRvOwogICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgpAQCAtMjQxNiw3ICsyNDE2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9wdGlvblNldDxUZXh0RGVjb3JhdGlvbj4oKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
Tm9uZToKICAgICAgICAgcmV0dXJuIE9wdGlvblNldDxUZXh0RGVjb3JhdGlvbj4geyB9OwogICAg
IGNhc2UgQ1NTVmFsdWVVbmRlcmxpbmU6CkBAIC0yNDM5LDcgKzI0MzksNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVTb2xpZDoKICAgICAgICAgcmV0dXJuIFRleHREZWNvcmF0aW9uU3R5bGU6OlNvbGlk
OwogICAgIGNhc2UgQ1NTVmFsdWVEb3VibGU6CkBAIC0yNDY0LDEzICsyNDY0LDEzIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VW5k
ZXJsaW5lUG9zaXRpb24gcG9zCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgVGV4dFVu
ZGVybGluZVBvc2l0aW9uOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXI6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVW5kZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVVuZGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0VW5kZXJs
aW5lUG9zaXRpb246OkZyb21Gb250OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUZyb21Gb250OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGcm9tRm9udCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMjQ4MSw3ICsyNDgxLDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRVbmRlcmxpbmVQb3NpdGlv
bigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpB
dXRvOwogICAgIGNhc2UgQ1NTVmFsdWVVbmRlcjoKQEAgLTI1MDMsMTYgKzI1MDMsMTYgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRT
ZWN1cml0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpOb25lOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRT
ZWN1cml0eTo6RGlzYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaXNjOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaXNjKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkNpcmNsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDaXJjbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNp
cmNsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpTcXVhcmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcXVhcmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC0yNTIxLDcgKzI1MjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVGV4dFNlY3VyaXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBUZXh0
U2VjdXJpdHk6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURpc2M6CkBAIC0yNTQ0LDEzICsyNTQ0
LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShUZXh0RGVjb3JhdGlvblNraXBJbmsgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRl
eHREZWNvcmF0aW9uU2tpcEluazo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RGVjb3JhdGlvblNraXBJbms6OkF1dG86Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dERlY29y
YXRpb25Ta2lwSW5rOjpBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxs
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC0yNTU5LDcgKzI1NTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERlY29yYXRpb25Ta2lwSW5rKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5v
bmU6CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblNraXBJbms6Ok5vbmU7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CkBAIC0yNTgwLDE2ICsyNTgwLDE2IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0VHJhbnNmb3JtIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpDYXBpdGFsaXplOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNhcGl0YWxpemU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNhcGl0YWxpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHRUcmFuc2Zvcm06OlVwcGVyY2FzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVVcHBlcmNhc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVwcGVy
Y2FzZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFRyYW5zZm9ybTo6TG93ZXJjYXNl
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvd2VyY2FzZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG93ZXJjYXNlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yNTk4LDcgKzI1OTgsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRyYW5zZm9ybSgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVDYXBpdGFsaXplOgogICAgICAgICByZXR1cm4gVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6ZTsK
ICAgICBjYXNlIENTU1ZhbHVlVXBwZXJjYXNlOgpAQCAtMjYyMSwyMiArMjYyMSwyMiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVVuaWNv
ZGVCaWRpIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBVQk5vcm1hbDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRW1iZWQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW1iZWQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUVtYmVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVycmlk
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCaWRpT3ZlcnJpZGU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJpZGlPdmVycmlkZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSXNvbGF0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVJc29sYXRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJc29sYXRlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJc29sYXRlT3ZlcnJpZGU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlSXNvbGF0ZU92ZXJyaWRlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVJc29sYXRlT3ZlcnJpZGUpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBsYWludGV4dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbnRl
eHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsYWludGV4dCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI2NDUsNyArMjY0NSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFVW5pY29kZUJpZGkoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9y
bWFsOgogICAgICAgICByZXR1cm4gVUJOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZUVtYmVkOgpA
QCAtMjY3NSwxMyArMjY3NSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVXNlckRyYWcgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IFVzZXJEcmFnOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVzZXJEcmFnOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJEcmFnOjpFbGVtZW50OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsZW1lbnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUVsZW1lbnQpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBicmVhazsKQEAgLTI2OTIsNyArMjY5Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1
cm4gVXNlckRyYWc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC0yNzEzLDEzICsy
NzEzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShVc2VyTW9kaWZ5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5
cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBVc2VyTW9kaWZ5
OjpSZWFkT25seToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWFkT25seTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVhZE9ubHkpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0ZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVSZWFkV3JpdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJlYWRXcml0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXNlck1vZGlmeTo6
UmVhZFdyaXRlUGxhaW50ZXh0T25seToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjcyOCw3ICsyNzI4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFVzZXJNb2RpZnkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlUmVhZE9ubHk6CiAgICAgICAgIHJldHVybiBV
c2VyTW9kaWZ5OjpSZWFkT25seTsKICAgICBjYXNlIENTU1ZhbHVlUmVhZFdyaXRlOgpAQCAtMjc0
OSwxMyArMjc0OSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoVXNlclNlbGVjdCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVXNl
clNlbGVjdDo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBVc2VyU2VsZWN0OjpUZXh0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRleHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFVzZXJTZWxlY3Q6OkFsbDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUFsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI3NjQsNyArMjc2NCw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyU2VsZWN0
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBVc2VyU2VsZWN0OjpUZXh0OwogICAgIGNh
c2UgQ1NTVmFsdWVOb25lOgpAQCAtMjc4NywzNCArMjc4NywzNCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVmVydGljYWxBbGlnbiBhKQog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoYSkgewogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6VG9wOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlVG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCb3R0
b206Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFZlcnRpY2FsQWxpZ246Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFzZWxpbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBW
ZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVRleHRCb3R0b207CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRC
b3R0b20pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRleHRUb3A6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dFRvcDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGV4dFRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6U3ViOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVN1YjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3ViKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpTdXBlcjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTdXBlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU3VwZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJhc2Vs
aW5lTWlkZGxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdEJhc2Vs
aW5lTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRCYXNl
bGluZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6TGVu
Z3RoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludmFsaWQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUludmFsaWQpOwogICAgIH0KIH0KIApAQCAtMjgy
Miw3ICsyODIyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFZlcnRpY2FsQWxpZ24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICByZXR1cm4gVmVydGljYWxB
bGlnbjo6VG9wOwogICAgIGNhc2UgQ1NTVmFsdWVCb3R0b206CkBAIC0yODU1LDEzICsyODU1LDEz
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShWaXNpYmlsaXR5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBWaXNpYmlsaXR5OjpWaXNp
YmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIaWRkZW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUhpZGRlbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29sbGFwc2U6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNvbGxhcHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
Mjg3MCw3ICsyODcwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFZpc2liaWxpdHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgogICAgICAgICByZXR1cm4gVmlzaWJp
bGl0eTo6SGlkZGVuOwogICAgIGNhc2UgQ1NTVmFsdWVWaXNpYmxlOgpAQCAtMjg5MSwyNSArMjg5
MSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoV2hpdGVTcGFjZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgV2hpdGVTcGFjZTo6
Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXaGl0ZVNwYWNlOjpQcmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUHJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcmUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdoaXRlU3BhY2U6OlByZVdyYXA6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUHJlV3JhcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUHJlV3JhcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2hpdGVTcGFjZTo6UHJl
TGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcmVMaW5lOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcmVMaW5lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXaGl0ZVNwYWNlOjpOb1dyYXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm93cmFwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3dyYXAp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoaXRlU3BhY2U6OktIVE1MTm9XcmFwOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdE5vd3JhcDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlV2Via2l0Tm93cmFwKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXaGl0ZVNwYWNlOjpCcmVha1NwYWNlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVCcmVha1NwYWNlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQnJlYWtTcGFjZXMpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yOTE4LDcgKzI5
MTgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2hp
dGVTcGFjZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVXZWJraXROb3dyYXA6CiAgICAgICAgIHJldHVybiBXaGl0ZVNwYWNl
OjpLSFRNTE5vV3JhcDsKICAgICBjYXNlIENTU1ZhbHVlTm93cmFwOgpAQCAtMjk0NywxNiArMjk0
NywxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoV29yZEJyZWFrIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBXb3JkQnJlYWs6Ok5v
cm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV29yZEJyZWFrOjpCcmVha0FsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVCcmVha0FsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnJlYWtB
bGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdvcmRCcmVhazo6S2VlcEFsbDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVLZWVwQWxsOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVLZWVwQWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXb3Jk
QnJlYWs6OkJyZWFrV29yZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVh
a1dvcmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJyZWFrV29yZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI5NjUsNyArMjk2NSw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBXb3JkQnJlYWsoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQnJl
YWtBbGw6CiAgICAgICAgIHJldHVybiBXb3JkQnJlYWs6OkJyZWFrQWxsOwogICAgIGNhc2UgQ1NT
VmFsdWVLZWVwQWxsOgpAQCAtMjk4OCwxMyArMjk4OCwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcmZsb3dXcmFwIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBPdmVyZmxvd1dyYXA6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT3ZlcmZsb3dXcmFwOjpB
bnl3aGVyZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbnl3aGVyZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQW55d2hlcmUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE92ZXJmbG93V3JhcDo6QnJlYWtXb3JkOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJyZWFrV29yZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQnJlYWtXb3JkKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzAwMyw3ICsz
MDAzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92
ZXJmbG93V3JhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVCcmVha1dvcmQ6CiAgICAgICAgIHJldHVybiBPdmVyZmxvd1dy
YXA6OkJyZWFrV29yZDsKICAgICBjYXNlIENTU1ZhbHVlQW55d2hlcmU6CkBAIC0zMDI0LDEwICsz
MDI0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUZXh0RGlyZWN0aW9uIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0RGly
ZWN0aW9uOjpMVFI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHRyOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMdHIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFRleHREaXJlY3Rpb246OlJUTDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSdGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJ0bCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMwMzYsNyArMzAzNiw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0RGlyZWN0aW9uKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQp
IHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUx0
cjoKICAgICAgICAgcmV0dXJuIFRleHREaXJlY3Rpb246OkxUUjsKICAgICBjYXNlIENTU1ZhbHVl
UnRsOgpAQCAtMzA1NSwxNiArMzA1NSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoV3JpdGluZ01vZGUgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsVGI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUhvcml6b250YWxUYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV3JpdGluZ01v
ZGU6OlJpZ2h0VG9MZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZlcnRp
Y2FsUmw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2FsUmwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbExyOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJ0aWNhbExyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3A6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlSG9yaXpvbnRhbEJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVI
b3Jpem9udGFsQnQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zMDczLDcgKzMwNzMs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGlu
Z01vZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRhbFRiOgogICAgIGNhc2UgQ1NTVmFsdWVMcjoKICAgICBj
YXNlIENTU1ZhbHVlTHJUYjoKQEAgLTMxMDIsMTAgKzMxMDIsMTAgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRDb21iaW5lIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0Q29tYmluZTo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0Q29tYmluZTo6SG9yaXpv
bnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQpAQCAtMzExNCw3ICszMTE0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRDb21iaW5lKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAg
ICAgIHJldHVybiBUZXh0Q29tYmluZTo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlSG9yaXpvbnRh
bDoKQEAgLTMxMzMsMTMgKzMxMzMsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJ1YnlQb3NpdGlvbiBwb3NpdGlvbikKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KHBvc2l0aW9uKSB7CiAgICAgY2FzZSBSdWJ5UG9zaXRpb246OkJlZm9yZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZWZvcmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUJlZm9yZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUnVieVBvc2l0aW9u
OjpBZnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlcjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWZ0ZXIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFJ1YnlQb3NpdGlvbjo6SW50ZXJDaGFyYWN0ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW50ZXJDaGFyYWN0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUludGVyQ2hhcmFjdGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
MzE0OCw3ICszMTQ4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFJ1YnlQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
IAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCZWZvcmU6CiAgICAgICAgIHJldHVybiBSdWJ5
UG9zaXRpb246OkJlZm9yZTsKICAgICBjYXNlIENTU1ZhbHVlQWZ0ZXI6CkBAIC0zMTY5LDEwICsz
MTY5LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUZXh0T3ZlcmZsb3cgb3ZlcmZsb3cpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChvdmVyZmxvdykgewogICAg
IGNhc2UgVGV4dE92ZXJmbG93OjpDbGlwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUNsaXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNsaXApOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRleHRPdmVyZmxvdzo6RWxsaXBzaXM6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWxsaXBzaXM7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUVsbGlwc2lzKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzE4
MSw3ICszMTgxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRleHRPdmVyZmxvdygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVDbGlwOgogICAgICAgICByZXR1cm4gVGV4dE92ZXJm
bG93OjpDbGlwOwogICAgIGNhc2UgQ1NTVmFsdWVFbGxpcHNpczoKQEAgLTMyMDAsMTAgKzMyMDAs
MTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRleHRFbXBoYXNpc0ZpbGwgZmlsbCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGZpbGwpIHsKICAgICBjYXNlIFRl
eHRFbXBoYXNpc0ZpbGw6OkZpbGxlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVGaWxsZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpbGxlZCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzRmlsbDo6T3BlbjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcGVuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVPcGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzIxMiw3ICsz
MjEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc0ZpbGwoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRmlsbGVkOgogICAgICAgICByZXR1cm4gVGV4dEVtcGhh
c2lzRmlsbDo6RmlsbGVkOwogICAgIGNhc2UgQ1NTVmFsdWVPcGVuOgpAQCAtMzIzMSwyNSArMzIz
MSwyNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoVGV4dEVtcGhhc2lzTWFyayBtYXJrKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAobWFyaykgewogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFyazo6RG90OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZURvdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRG90KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDaXJjbGU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVDaXJjbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01h
cms6OkRvdWJsZUNpcmNsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3Vi
bGVDaXJjbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURvdWJsZUNpcmNs
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVHJpYW5nbGU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRyaWFuZ2xlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0RW1waGFzaXNNYXJrOjpTZXNhbWU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlU2VzYW1lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZXNh
bWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6Ok5vbmU6CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpBdXRvOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFy
azo6Q3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzI1OCw3ICszMjU4LDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRFbXBo
YXNpc01hcmsoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlTm9uZToKICAgICAgICAgcmV0dXJuIFRleHRFbXBoYXNpc01hcms6
Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZURvdDoKQEAgLTMyODUsMTMgKzMyODUsMTMgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRP
cmllbnRhdGlvbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uOjpT
aWRld2F5czoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTaWRld2F5czsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2lkZXdheXMpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFRleHRPcmllbnRhdGlvbjo6TWl4ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWl4ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1peGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3JpZW50YXRpb246OlVwcmln
aHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXByaWdodDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVXByaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTMzMDAsNyArMzMwMCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3JpZW50YXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChp
c1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRj
aCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU2lkZXdheXM6CiAgICAg
ICAgIHJldHVybiBUZXh0T3JpZW50YXRpb246OlNpZGV3YXlzOwogICAgIGNhc2UgQ1NTVmFsdWVT
aWRld2F5c1JpZ2h0OgpAQCAtMzMyNSwzNyArMzMyNSwzNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUG9pbnRlckV2ZW50cyBlKQogICAg
IHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6Tm9uZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpTdHJv
a2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Ryb2tlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJva2UpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFBvaW50ZXJFdmVudHM6OkZpbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRmlsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmlsbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6UGFpbnRlZDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWludGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVQYWludGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZl
bnRzOjpWaXNpYmxlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGU7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlZpc2libGVTdHJva2U6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzaWJsZVN0cm9rZTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlVmlzaWJsZVN0cm9rZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUG9pbnRlckV2ZW50czo6VmlzaWJsZUZpbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlVmlzaWJsZUZpbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVZpc2libGVGaWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpW
aXNpYmxlUGFpbnRlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxl
UGFpbnRlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVmlzaWJsZVBhaW50
ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OkJvdW5kaW5nQm94
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdW5kaW5nQm94OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3VuZGluZ0JveCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRv
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpBbGw6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zMzY0LDcgKzMz
NjQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUG9p
bnRlckV2ZW50cygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVBbGw6CiAgICAgICAgIHJldHVybiBQb2ludGVyRXZlbnRzOjpB
bGw7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC0zNDAxLDI1ICszNDAxLDI1IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShLZXJuaW5n
IGtlcm5pbmcpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChrZXJuaW5nKSB7CiAgICAgY2FzZSBLZXJuaW5nOjpBdXRvOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBLZXJu
aW5nOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBLZXJuaW5nOjpOb1NoaWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUF1dG8pOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgS2VybmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsK
IAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gS2Vybmlu
Zzo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgpAQCAtMzQ0MCwxOSArMzQ0MCwxOSBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
T2JqZWN0Rml0IGZpdCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGZpdCkgewogICAgIGNhc2UgT2JqZWN0Rml0OjpGaWxs
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGw7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9i
amVjdEZpdDo6Q29udGFpbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb250
YWluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250YWluKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBPYmplY3RGaXQ6OkNvdmVyOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvdmVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVDb3Zlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2JqZWN0Rml0OjpOb25lOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9iamVjdEZp
dDo6U2NhbGVEb3duOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjYWxlRG93
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2NhbGVEb3duKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzQ2MSw3ICszNDYxLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9iamVjdEZpdCgpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVGaWxsOgog
ICAgICAgICByZXR1cm4gT2JqZWN0Rml0OjpGaWxsOwogICAgIGNhc2UgQ1NTVmFsdWVDb250YWlu
OgpAQCAtMzQ4NCwyOCArMzQ4NCwyOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFNtb290aGluZ01vZGUgc21vb3RoaQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoc21vb3RoaW5nKSB7CiAgICAgY2FzZSBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290aGlu
ZzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
Rm9udFNtb290aGluZ01vZGU6Ok5vU21vb3RoaW5nOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUp
OwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBGb250U21vb3RoaW5nTW9kZTo6QW50aWFsaWFz
ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQW50aWFsaWFzZWQ7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFudGlhbGlhc2VkKTsKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6OlN1YnBpeGVsQW50aWFsaWFzZWQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxpYXNlZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3VicGl4ZWxBbnRpYWxpYXNlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQXV0byk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBGb250U21vb3RoaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJ
RCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1
ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4g
Rm9udFNtb290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmc7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6
CkBAIC0zNTI4LDIyICszNTI4LDIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250U21hbGxDYXBzIHNtYWxsQ2FwcykKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KHNtYWxsQ2FwcykgewogICAgIGNhc2UgRm9udFNtYWxsQ2Fwczo6T2ZmOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFNtYWxsQ2Fw
czo6T246Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU21hbGxDYXBzOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbWFsbENhcHMpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9y
bWFsKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEZvbnRTbWFsbENhcHMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU21hbGxDYXBzOgogICAgICAgICByZXR1cm4gRm9udFNt
YWxsQ2Fwczo6T247CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKQEAgLTM1NjEsMTYgKzM1NjEs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRleHRSZW5kZXJpbmdNb2RlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0UmVu
ZGVyaW5nTW9kZTo6QXV0b1RleHRSZW5kZXJpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGltaXplU3Bl
ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGltaXplTGVnaWJpbGl0eToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZUxlZ2liaWxpdHk7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGltaXplTGVnaWJpbGl0eSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFJlbmRlcmluZ01vZGU6Okdlb21ldHJpY1ByZWNp
c2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNQcmVjaXNp
b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdlb21ldHJpY1ByZWNpc2lv
bik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM1NzksNyArMzU3OSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0UmVuZGVyaW5nTW9k
ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92
YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNh
c2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9U
ZXh0UmVuZGVyaW5nOwogICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOgpAQCAtMzYwMiwx
MyArMzYwMiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoSHlwaGVucyBoeXBoZW5zKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaHlwaGVucykgewogICAgIGNh
c2UgSHlwaGVuczo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25l
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBIeXBoZW5zOjpNYW51YWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWFudWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNYW51
YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEh5cGhlbnM6OkF1dG86Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM2MTcsNyArMzYx
Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBIeXBo
ZW5zKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBIeXBoZW5zOjpOb25lOwogICAgIGNh
c2UgQ1NTVmFsdWVNYW51YWw6CkBAIC0zNjM4LDEzICszNjM4LDEzIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lU25hcCBncmlkU25h
cCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGdyaWRTbmFwKSB7CiAgICAgY2FzZSBMaW5lU25hcDo6Tm9uZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lU25hcDo6
QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBMaW5lU25hcDo6Q29udGFpbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb250YWluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
b250YWluKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzY1Myw3ICszNjUzLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVTbmFwKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBMaW5lU25hcDo6Tm9uZTsKICAgICBjYXNlIENT
U1ZhbHVlQmFzZWxpbmU6CkBAIC0zNjc0LDEwICszNjc0LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lQWxpZ24gbGluZUFsaWdu
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAobGluZUFsaWduKSB7CiAgICAgY2FzZSBMaW5lQWxpZ246Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUFsaWdu
OjpFZGdlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFZGdlczsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRWRnZXMpOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC0zNjg2LDcgKzM2ODYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgTGluZUFsaWduKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVy
biBMaW5lQWxpZ246Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUVkZ2VzOgpAQCAtMzcwNSwxOSAr
MzcwNSwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoU3BlYWtBcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU3BlYWtBczo6Tm9y
bWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTcGVha0FzOjpTcGVsbE91dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTcGVsbE91dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BlbGxPdXQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNwZWFrQXM6OkRpZ2l0czoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaWdpdHM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZURpZ2l0cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtBczo6TGl0
ZXJhbFB1bmN0dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpdGVy
YWxQdW5jdHVhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGl0ZXJh
bFB1bmN0dWF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTcGVha0FzOjpOb1B1bmN0
dWF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vUHVuY3R1YXRpb247
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vUHVuY3R1YXRpb24pOwogICAg
ICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zNzI2LDcgKzM3MjYsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3JkZXIoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTG9naWNhbDoK
ICAgICAgICAgcmV0dXJuIE9yZGVyOjpMb2dpY2FsOwogICAgIGNhc2UgQ1NTVmFsdWVWaXN1YWw6
CkBAIC0zNzQ1LDEwICszNzQ1LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPcmRlciBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
T3JkZXI6OkxvZ2ljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG9naWNh
bDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTG9naWNhbCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgT3JkZXI6OlZpc3VhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVWaXN1YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZp
c3VhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM3NTcsNyArMzc1Nyw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8U3Bl
YWtBcz4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gT3B0aW9uU2V0PFNwZWFrQXM+
IHsgfTsKICAgICBjYXNlIENTU1ZhbHVlU3BlbGxPdXQ6CkBAIC0zNzgyLDU4ICszNzgyLDU4IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShC
bGVuZE1vZGUgYmxlbmRNb2RlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmxlbmRNb2RlKSB7CiAgICAgY2FzZSBCbGVu
ZE1vZGU6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpNdWx0aXBseToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTXVsdGlwbHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6U2NyZWVu
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjcmVlbjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2NyZWVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBCbGVuZE1vZGU6Ok92ZXJsYXk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
T3ZlcmxheTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3ZlcmxheSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpEYXJrZW46Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRGFya2VuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVEYXJrZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6TGln
aHRlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMaWdodGVuOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaWdodGVuKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBCbGVuZE1vZGU6OkNvbG9yRG9kZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQ29sb3JEb2RnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sb3JEb2RnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpDb2xvckJ1
cm46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3JCdXJuOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xvckJ1cm4pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJsZW5kTW9kZTo6SGFyZExpZ2h0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUhhcmRMaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
SGFyZExpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6OlNvZnRMaWdo
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb2Z0TGlnaHQ7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvZnRMaWdodCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQmxlbmRNb2RlOjpEaWZmZXJlbmNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZURpZmZlcmVuY2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZURpZmZlcmVuY2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6RXhjbHVz
aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV4Y2x1c2lvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRXhjbHVzaW9uKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGVuZE1vZGU6Okh1ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVIdWU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUh1ZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpTYXR1cmF0aW9uOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNhdHVyYXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNhdHVyYXRpb24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5k
TW9kZTo6Q29sb3I6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3I7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbG9yKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGVuZE1vZGU6Okx1bWlub3NpdHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTHVtaW5vc2l0eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTHVtaW5vc2l0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpQbHVz
RGFya2VyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNEYXJrZXI7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBsdXNEYXJrZXIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6UGx1c0xpZ2h0ZXI6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUGx1c0xpZ2h0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVBsdXNMaWdodGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzg0
Miw3ICszODQyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJsZW5kTW9kZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBCbGVuZE1vZGU6
Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbHk6CkBAIC0zODkzLDEwICszODkzLDEw
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShJc29sYXRpb24gaXNvbGF0aW9uKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaXNvbGF0aW9uKSB7CiAgICAgY2FzZSBJ
c29sYXRpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSXNvbGF0aW9uOjpJc29sYXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUlzb2xhdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlz
b2xhdGUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTM5MDYsNyArMzkwNiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJc29sYXRpb24gaXNvbGF0aW9uKQogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIElzb2xhdGlvbigpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlQXV0bzoKICAgICAgICAgcmV0dXJuIElzb2xhdGlvbjo6QXV0bzsKICAgICBjYXNlIENTU1Zh
bHVlSXNvbGF0ZToKQEAgLTM5MjUsMTMgKzM5MjUsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKExpbmVDYXAgZSkKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIExpbmVDYXA6OkJ1dHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQnV0dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnV0dCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUNhcDo6Um91bmQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJvdW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQ2FwOjpTcXVhcmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcXVhcmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC0zOTQwLDcgKzM5NDAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgTGluZUNhcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCdXR0OgogICAgICAgICByZXR1cm4gTGluZUNhcDo6
QnV0dDsKICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6CkBAIC0zOTYxLDEzICszOTYxLDEzIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5l
Sm9pbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTGluZUpvaW46Ok1pdGVyOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1pdGVyOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVNaXRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUpvaW46
OlJvdW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTGluZUpvaW46OkJldmVsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUJldmVsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCZXZlbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM5NzYsNyArMzk3Niw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBMaW5lSm9pbigpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVNaXRlcjoK
ICAgICAgICAgcmV0dXJuIExpbmVKb2luOjpNaXRlcjsKICAgICBjYXNlIENTU1ZhbHVlUm91bmQ6
CkBAIC0zOTk3LDEwICszOTk3LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXaW5kUnVsZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgV2luZFJ1bGU6Ok5vblplcm86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9uemVybzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uemVybyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2luZFJ1bGU6OkV2ZW5PZGQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRXZlbm9kZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlRXZlbm9kZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQwMDksNyAr
NDAwOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBX
aW5kUnVsZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb256ZXJvOgogICAgICAgICByZXR1cm4gV2luZFJ1bGU6Ok5vblpl
cm87CiAgICAgY2FzZSBDU1NWYWx1ZUV2ZW5vZGQ6CkBAIC00MDI5LDQwICs0MDI5LDQwIEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBbGln
bm1lbnRCYXNlbGluZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6
OkJlZm9yZUVkZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVmb3JlRWRn
ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmVmb3JlRWRnZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OlRleHRCZWZvcmVFZGdlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdlOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU1pZGRsZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OkNlbnRyYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudHJhbDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudHJhbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkFmdGVyRWRnZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlckVkZ2U7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUFmdGVyRWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25t
ZW50QmFzZWxpbmU6OlRleHRBZnRlckVkZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlVGV4dEFmdGVyRWRnZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
VGV4dEFmdGVyRWRnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxp
bmU6OklkZW9ncmFwaGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlkZW9n
cmFwaGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJZGVvZ3JhcGhpYyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkFscGhhYmV0aWM6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxwaGFiZXRpYzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxwaGFiZXRpYyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Okhhbmdpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSGFuZ2luZzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSGFuZ2luZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6
Ok1hdGhlbWF0aWNhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNYXRoZW1h
dGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1hdGhlbWF0aWNhbCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQwNzEsNyArNDA3MSw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGlnbm1lbnRCYXNlbGluZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gQWxpZ25tZW50QmFzZWxpbmU6OkF1dG87CiAg
ICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgpAQCAtNDExMCwxMCArNDExMCwxMCBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm9yZGVyQ29s
bGFwc2UgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJvcmRlckNvbGxhcHNlOjpTZXBhcmF0
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXBhcmF0ZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VwYXJhdGUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJvcmRlckNvbGxhcHNlOjpDb2xsYXBzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb2xsYXBzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29sbGFwc2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MTIyLDcgKzQxMjIsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyQ29s
bGFwc2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlU2VwYXJhdGU6CiAgICAgICAgIHJldHVybiBCb3JkZXJDb2xsYXBzZTo6
U2VwYXJhdGU7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbGxhcHNlOgpAQCAtNDE0MSwxMCArNDE0MSwx
MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoQm9yZGVyRml0IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3JkZXJGaXQ6OkJvcmRl
cjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXI7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQm9yZGVyRml0OjpMaW5lczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
aW5lczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGluZXMpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CkBAIC00MTUzLDcgKzQxNTMsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0KCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUJvcmRlcjoK
ICAgICAgICAgcmV0dXJuIEJvcmRlckZpdDo6Qm9yZGVyOwogICAgIGNhc2UgQ1NTVmFsdWVMaW5l
czoKQEAgLTQxNzIsMTkgKzQxNzIsMTkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGUKICAgICBz
ZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0
Y2ggKGltYWdlUmVuZGVyaW5nKSB7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6QXV0bzoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJl
bmRlcmluZzo6Q3Jpc3BFZGdlczoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
cmlzcEVkZ2VzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDcmlzcEVkZ2Vz
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6UGl4ZWxhdGVkOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBpeGVsYXRlZDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGl4ZWxhdGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVPcHRpbWl6ZVNwZWVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbWFnZVJl
bmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU9wdGltaXplUXVhbGl0eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
T3B0aW1pemVRdWFsaXR5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDE5Myw3ICs0
MTkzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIElt
YWdlUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBJbWFnZVJlbmRlcmlu
Zzo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0T3B0aW1pemVDb250cmFzdDoKQEAgLTQy
MjAsMTAgKzQyMjAsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKElucHV0U2VjdXJpdHkgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IElucHV0U2VjdXJpdHk6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgSW5wdXRTZWN1cml0eTo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDIzMiw3ICs0MjMyLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIElucHV0U2VjdXJp
dHkoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIElucHV0U2VjdXJpdHk6OkF1dG87CiAg
ICAgY2FzZSBDU1NWYWx1ZU5vbmU6CkBAIC00MjUxLDE0ICs0MjUxLDE0IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFuc2Zvcm1TdHls
ZTNEIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1TdHlsZTNEOjpGbGF0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsYXQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUZsYXQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5z
Zm9ybVN0eWxlM0Q6OlByZXNlcnZlM0Q6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUHJlc2VydmUzZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHJlc2Vy
dmUzZCk7CiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfVFJBTlNGT1JNX1NUWUxFX09Q
VElNSVpFRF8zRCkKICAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0Q6Ok9wdGltaXplZDNEOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplZDNkOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRpbWl6ZWQzZCk7CiAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAgICAgfQpAQCAtNDI2OCw3ICs0MjY4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYW5zZm9ybVN0eWxlM0QoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlRmxhdDoKICAg
ICAgICAgcmV0dXJuIFRyYW5zZm9ybVN0eWxlM0Q6OkZsYXQ7CiAgICAgY2FzZSBDU1NWYWx1ZVBy
ZXNlcnZlM2Q6CkBAIC00MjkxLDE5ICs0MjkxLDE5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFuc2Zvcm1Cb3ggYm94KQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoYm94KSB7CiAgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OlN0cm9rZUJveDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJva2VCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVN0cm9rZUJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNm
b3JtQm94OjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNv
bnRlbnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Qm9yZGVyQm94OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvcmRlckJveDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQm9yZGVyQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUcmFuc2Zvcm1Cb3g6OkZpbGxCb3g6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRmlsbEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmlsbEJveCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtQm94OjpWaWV3Qm94OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVZpZXdCb3gpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00
MzEyLDcgKzQzMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVHJhbnNmb3JtQm94KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVN0cm9rZUJveDoKICAgICAgICAgcmV0dXJuIFRy
YW5zZm9ybUJveDo6U3Ryb2tlQm94OwogICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50Qm94OgpAQCAt
NDMzNywxMyArNDMzNywxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29sdW1uQXhpcyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
Q29sdW1uQXhpczo6SG9yaXpvbnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9u
dGFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5BeGlzOjpWZXJ0aWNhbDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlVmVydGljYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbHVtbkF4aXM6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTQzNTIsNyArNDM1Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5BeGlzKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWw6
CiAgICAgICAgIHJldHVybiBDb2x1bW5BeGlzOjpIb3Jpem9udGFsOwogICAgIGNhc2UgQ1NTVmFs
dWVWZXJ0aWNhbDoKQEAgLTQzNzMsMTAgKzQzNzMsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtblByb2dyZXNzaW9uIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBDb2x1bW5Qcm9ncmVzc2lvbjo6Tm9ybWFsOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5Q
cm9ncmVzc2lvbjo6UmV2ZXJzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
ZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZXZlcnNlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDM4NSw3ICs0Mzg1LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblByb2dyZXNzaW9uKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIENvbHVtblByb2dyZXNzaW9uOjpOb3JtYWw7CiAg
ICAgY2FzZSBDU1NWYWx1ZVJldmVyc2U6CkBAIC00NDQ2LDEzICs0NDQ2LDEzIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCdWZmZXJlZFJl
bmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFM
VUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OkF1
dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QnVmZmVyZWRSZW5kZXJpbmc6OkR5bmFtaWM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRHluYW1pYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRHluYW1p
Yyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OlN0YXRpYzoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGF0aWM7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXRpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTQ0NjEsNyArNDQ2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCdWZmZXJlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1
cm4gQnVmZmVyZWRSZW5kZXJpbmc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZUR5bmFtaWM6CkBA
IC00NDgyLDEzICs0NDgyLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShDb2xvckludGVycG9sYXRpb24gZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIENvbG9ySW50ZXJwb2xhdGlvbjo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVB
dXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvckludGVycG9sYXRpb246OlNSR0I6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU1JHQjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU1JHQik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29s
b3JJbnRlcnBvbGF0aW9uOjpMaW5lYXJSR0I6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTGluZWFyUkdCOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMaW5l
YXJSR0IpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NDk3LDcgKzQ0OTcsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JJbnRlcnBv
bGF0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZVNSR0I6CiAgICAgICAgIHJldHVybiBDb2xvckludGVycG9sYXRpb246
OlNSR0I7CiAgICAgY2FzZSBDU1NWYWx1ZUxpbmVhclJHQjoKQEAgLTQ1MTgsMTMgKzQ1MTgsMTMg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KENvbG9yUmVuZGVyaW5nIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBDb2xvclJlbmRlcmlu
Zzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb2xvclJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVPcHRpbWl6ZVNwZWVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclJl
bmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU9wdGltaXplUXVhbGl0eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
T3B0aW1pemVRdWFsaXR5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDUzMyw3ICs0
NTMzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENv
bG9yUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ6CiAgICAgICAgIHJldHVybiBDb2xv
clJlbmRlcmluZzo6T3B0aW1pemVTcGVlZDsKICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVRdWFs
aXR5OgpAQCAtNDU1NCw0MCArNDU1NCw0MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRG9taW5hbnRCYXNlbGluZSBlKQogICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpVc2VT
Y3JpcHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVXNlU2NyaXB0OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVVc2VTY3JpcHQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Ok5vQ2hhbmdlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vQ2hhbmdlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVOb0NoYW5nZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNl
bGluZTo6UmVzZXRTaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlc2V0
U2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVzZXRTaXplKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpDZW50cmFsOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRyYWw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNlbnRyYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERvbWlu
YW50QmFzZWxpbmU6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVN
aWRkbGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6VGV4dEJlZm9yZUVkZ2U6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2U7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRCZWZvcmVFZGdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpUZXh0QWZ0ZXJFZGdlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVRleHRBZnRlckVkZ2UpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIERvbWluYW50QmFzZWxpbmU6OklkZW9ncmFwaGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUlkZW9ncmFwaGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVJZGVvZ3JhcGhpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNl
bGluZTo6QWxwaGFiZXRpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHBo
YWJldGljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbHBoYWJldGljKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpIYW5naW5nOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhbmdpbmc7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUhhbmdpbmcpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERv
bWluYW50QmFzZWxpbmU6Ok1hdGhlbWF0aWNhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVNYXRoZW1hdGljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1hdGhlbWF0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ1OTYsNyArNDU5
Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBEb21p
bmFudEJhc2VsaW5lKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBEb21pbmFudEJhc2Vs
aW5lOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVVc2VTY3JpcHQ6CkBAIC00NjM1LDE2ICs0NjM1
LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShTaGFwZVJlbmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgU2hhcGVSZW5k
ZXJpbmc6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU2hhcGVSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2hh
cGVSZW5kZXJpbmc6OkNyaXNwRWRnZXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ3Jpc3BlZGdlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ3Jpc3Bl
ZGdlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2hhcGVSZW5kZXJpbmc6Okdlb21ldHJp
Y1ByZWNpc2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVHZW9tZXRyaWNQ
cmVjaXNpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdlb21ldHJpY1By
ZWNpc2lvbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ2NTMsNyArNDY1Myw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTaGFwZVJlbmRl
cmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gU2hhcGVSZW5kZXJpbmc6OkF1dG87
CiAgICAgY2FzZSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ6CkBAIC00Njc2LDEzICs0Njc2LDEzIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShU
ZXh0QW5jaG9yIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUZXh0QW5jaG9yOjpTdGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRl
eHRBbmNob3I6Ok1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaWRk
bGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1pZGRsZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEFuY2hvcjo6RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRW5k
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDY5MSw3ICs0NjkxLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRBbmNob3IoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBUZXh0QW5jaG9yOjpTdGFydDsKICAgICBjYXNlIENT
U1ZhbHVlTWlkZGxlOgpAQCAtNDcyNiwxMCArNDcyNiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVmVjdG9yRWZmZWN0IGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBWZWN0b3JFZmZlY3Q6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVjdG9yRWZmZWN0OjpOb25TY2Fs
aW5nU3Ryb2tlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vblNjYWxpbmdT
dHJva2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vblNjYWxpbmdTdHJv
a2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NzM4LDcgKzQ3MzgsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVmVjdG9yRWZmZWN0KCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBWZWN0b3JFZmZlY3Q6Ok5vbmU7CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vblNjYWxpbmdTdHJva2U6CkBAIC00NzU3LDEwICs0NzU3LDEwIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShNYXNrVHlw
ZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgTWFza1R5cGU6Okx1bWluYW5jZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMdW1pbmFuY2U7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUx1bWluYW5jZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TWFza1R5cGU6OkFscGhhOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhh
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbHBoYSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIH0KQEAgLTQ3NjksNyArNDc2OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBNYXNrVHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dp
dGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVMdW1pbmFuY2U6CiAg
ICAgICAgIHJldHVybiBNYXNrVHlwZTo6THVtaW5hbmNlOwogICAgIGNhc2UgQ1NTVmFsdWVBbHBo
YToKQEAgLTQ3ODgsMjkgKzQ3ODgsMjkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU0JveFR5cGUgY3NzQm94KQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY3Nz
Qm94KSB7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpNYXJnaW5Cb3g6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTWFyZ2luQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVNYXJnaW5Cb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6
OkJvcmRlckJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTQm94VHlwZTo6UGFkZGluZ0JveDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYWRkaW5nQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVQYWRkaW5nQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NCb3hU
eXBlOjpDb250ZW50Qm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRl
bnRCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6OkZpbGxCb3g6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmlsbEJveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRmlsbEJveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTQm94VHlw
ZTo6U3Ryb2tlQm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cm9rZUJv
eDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Ryb2tlQm94KTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpWaWV3Qm94OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZpZXdCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVZpZXdCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6OkJv
eE1pc3Npbmc6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00ODQ2LDU2ICs0ODQ2LDU2
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShJdGVtUG9zaXRpb24gaXRlbVBvc2l0aW9uCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChpdGVtUG9zaXRpb24pIHsKICAg
ICBjYXNlIEl0ZW1Qb3NpdGlvbjo6TGVnYWN5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUxlZ2FjeTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVnYWN5
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OkF1dG86Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9u
OjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6U3RyZXRjaDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
dHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OkJhc2VsaW5l
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSXRlbVBvc2l0aW9uOjpMYXN0QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTGFzdEJhc2VsaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVMYXN0QmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlv
bjo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFy
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpFbmQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6
U2VsZlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlbGZTdGFydDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VsZlN0YXJ0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlNlbGZFbmQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2VsZkVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlU2VsZkVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpG
bGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleFN0YXJ0Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGV4U3RhcnQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6RmxleEVuZDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVGbGV4RW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246Okxl
ZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SXRlbVBvc2l0aW9uOjpSaWdodDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVS
aWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlnaHQpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBJdGVtUG9zaXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVMZWdhY3k6CiAgICAgICAgIHJldHVybiBJdGVtUG9zaXRpb246OkxlZ2FjeTsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKQEAgLTQ5NDEsMjAgKzQ5NDEsMjAgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJmbG93QWxpZ25tZW50
IG92ZXJmbG8KICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKG92ZXJmbG93QWxpZ25tZW50KSB7CiAgICAgY2FzZSBPdmVyZmxv
d0FsaWdubWVudDo6RGVmYXVsdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
ZWZhdWx0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZWZhdWx0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvd0FsaWdubWVudDo6VW5zYWZlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVuc2FmZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVW5zYWZlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxv
d0FsaWdubWVudDo6U2FmZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTYWZl
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTYWZlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgT3ZlcmZsb3dBbGlnbm1lbnQoKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVVbnNhZmU6CiAgICAgICAgIHJldHVybiBPdmVyZmxvd0FsaWdubWVudDo6VW5zYWZlOwog
ICAgIGNhc2UgQ1NTVmFsdWVTYWZlOgpAQCAtNDk3Miw0MSArNDk3Miw0MSBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udGVudFBvc2l0
aW9uIGNvbnRlbnRQbwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY29udGVudFBvc2l0aW9uKSB7CiAgICAgY2FzZSBDb250
ZW50UG9zaXRpb246Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpCYXNlbGluZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRl
bnRQb3NpdGlvbjo6TGFzdEJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUxhc3RCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGFz
dEJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OkNl
bnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6RW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRp
b246OkZsZXhTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3Rh
cnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsZXhTdGFydCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpGbGV4RW5kOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZsZXhFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUZsZXhFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQ
b3NpdGlvbjo6TGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OlJpZ2h0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVS
aWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnRQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIENvbnRlbnRQb3Np
dGlvbjo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGluZToKQEAgLTUwNDIsMjYgKzUw
NDIsMjYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKENvbnRlbnREaXN0cmlidXRpb24gY29udGUKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGNvbnRlbnREaXN0cmli
dXRpb24pIHsKICAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OkRlZmF1bHQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVmYXVsdDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlRGVmYXVsdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVu
dERpc3RyaWJ1dGlvbjo6U3BhY2VCZXR3ZWVuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVNwYWNlQmV0d2VlbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U3BhY2VCZXR3ZWVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50RGlzdHJpYnV0
aW9uOjpTcGFjZUFyb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFj
ZUFyb3VuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2VBcm91bmQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OlNwYWNlRXZl
bmx5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNwYWNlRXZlbmx5OworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTcGFjZUV2ZW5seSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRjaDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTdHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29udGVudERpc3RyaWJ1dGlv
bigpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2gg
KHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjoKICAg
ICAgICAgcmV0dXJuIENvbnRlbnREaXN0cmlidXRpb246OlNwYWNlQmV0d2VlbjsKICAgICBjYXNl
IENTU1ZhbHVlU3BhY2VBcm91bmQ6CkBAIC01MDgxLDcgKzUwODEsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFpvb20oKSBjb25zdAogewogICAg
IEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewor
ICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFs
OgogICAgICAgICByZXR1cm4gVGV4dFpvb206Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlUmVz
ZXQ6CkBAIC01MTAwLDE1ICs1MTAwLDE1IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0Wm9vbSB0ZXh0Wm9vbSkKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHRl
eHRab29tKSB7CiAgICAgY2FzZSBUZXh0Wm9vbTo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm9ybWFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVGV4dFpvb206OlJlc2V0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJlc2V0OworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZXNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
cm1hbDsKKyAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVG91Y2hB
Y3Rpb24gdG91Y2hBY3Rpb24pCkBAIC01MTE3LDIyICs1MTE3LDIyIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUb3VjaEFjdGlvbiB0b3Vj
aEFjdGlvbikKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKHRvdWNoQWN0aW9uKSB7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6
QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1hbmlwdWxhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TWFuaXB1bGF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6Tm9u
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
b3VjaEFjdGlvbjo6UGFuWDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQYW5Y
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYW5YKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6UGFuWToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVQYW5ZOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYW5Z
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUb3VjaEFjdGlvbjo6UGluY2hab29tOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBpbmNoWm9vbTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUGluY2hab29tKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNTE0MCw3ICs1MTQwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRvdWNoQWN0aW9uIHRvdWNoQWN0aW9uKQogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUb3VjaEFjdGlvbjo6QXV0bzsKICAgICBj
YXNlIENTU1ZhbHVlTWFuaXB1bGF0aW9uOgpAQCAtNTE2NiwxMyArNTE2NiwxMyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25h
cFN0cmljdG5lc3Mgc3RyaQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoc3RyaWN0bmVzcykgewogICAgIGNhc2UgU2Nyb2xs
U25hcFN0cmljdG5lc3M6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Tm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6OlByb3hpbWl0eToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQcm94aW1pdHk7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVByb3hpbWl0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U2Nyb2xsU25hcFN0cmljdG5lc3M6Ok1hbmRhdG9yeToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNYW5kYXRvcnk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU1hbmRhdG9yeSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTUxODAsNyArNTE4MCw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShTY3JvbGxTbmFwU3RyaWN0bmVzcyBzdHJpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgU2Nyb2xsU25hcFN0cmljdG5lc3MoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBz
d2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAg
ICAgIHJldHVybiBTY3JvbGxTbmFwU3RyaWN0bmVzczo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVl
UHJveGltaXR5OgpAQCAtNTE5OSwxOSArNTE5OSwxOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcEF4aXMgYXhpcykKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGF4aXMpIHsKICAgICBjYXNlIFNjcm9sbFNuYXBBeGlzOjpYQXhpczoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVYOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVYKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxTbmFwQXhpczo6WUF4
aXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlWSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xs
U25hcEF4aXM6OkJsb2NrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2Nr
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9jayk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OklubGluZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUlubGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OkJv
dGg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90aDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm90aCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTUyMTksNyArNTIxOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwQXhpcyBheGlzKQogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVYOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsU25hcEF4aXM6OlhBeGlzOwogICAgIGNhc2UgQ1NTVmFsdWVZ
OgpAQCAtNTI0MiwxNiArNTI0MiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgdAogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAodHlwZSkgewogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25h
cEF4aXNBbGlnblR5cGU6OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6OkNlbnRlcjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Ny
b2xsU25hcEF4aXNBbGlnblR5cGU6OkVuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVuZCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTUyNTksNyArNTI1OSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwQXhpc0Fs
aWduVHlwZSB0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
U2Nyb2xsU25hcEF4aXNBbGlnblR5cGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBTY3Jv
bGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CkBAIC01
MjgwLDEwICs1MjgwLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwU3RvcCBzbmFwU3RvcCkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHNuYXBT
dG9wKSB7CiAgICAgY2FzZSBTY3JvbGxTbmFwU3RvcDo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxTbmFwU3RvcDo6
QWx3YXlzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsd2F5czsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWx3YXlzKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtNTI5MSw3ICs1MjkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFNjcm9sbFNuYXBTdG9wIHNuYXBTdG9wKQogdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNjcm9sbFNuYXBTdG9w
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBTY3JvbGxTbmFwU3RvcDo6Tm9ybWFsOwog
ICAgIGNhc2UgQ1NTVmFsdWVBbHdheXM6CkBAIC01MzA5LDEwICs1MzA5LDEwIEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUcmFpbGluZ1dv
cmQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRyYWlsaW5nV29yZDo6QXV0bzoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUcmFpbGluZ1dv
cmQ6OlBhcnRpYWxseUJhbGFuY2VkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZVdlYmtpdFBhcnRpYWxseUJhbGFuY2VkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVXZWJraXRQYXJ0aWFsbHlCYWxhbmNlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTMyMyw3ICs1MzIzLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRy
YWlsaW5nV29yZCBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRyYWlsaW5nV29y
ZDo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0UGFydGlhbGx5QmFsYW5jZWQ6CkBAIC01
MzQzLDEzICs1MzQzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShBcHBsZVBheUJ1dHRvblN0eWxlIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVXaGl0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
V2hpdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6Oldo
aXRlT3V0bGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxp
bmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdoaXRlT3V0bGluZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUJsYWNrKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01MzYwLDcgKzUzNjAsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlC
dXR0b25TdHlsZSBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEFwcGxlUGF5QnV0dG9uU3R5bGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVdoaXRlOgogICAgICAgICByZXR1cm4gQXBw
bGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CiAgICAgY2FzZSBDU1NWYWx1ZVdoaXRlT3V0bGluZToK
QEAgLTUzODAsNTAgKzUzODAsNTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEFwcGxlUGF5QnV0dG9uVHlwZSBlKQogICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkg
ewogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlUGxhaW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6
QnV5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJ1eTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnV5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBB
cHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVNldFVwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZXRVcCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpEb25hdGU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG9uYXRlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVEb25hdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxl
UGF5QnV0dG9uVHlwZTo6Q2hlY2tPdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2hlY2tPdXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNoZWNrT3V0
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkJvb2s6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm9vazsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlQm9vayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQ
YXlCdXR0b25UeXBlOjpTdWJzY3JpYmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlU3Vic2NyaWJlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdWJzY3Jp
YmUpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX05FV19CVVRUT05fVFlQ
RVMpCiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlJlbG9hZDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWxvYWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJlbG9hZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25U
eXBlOjpBZGRNb25leToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZGRNb25l
eTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWRkTW9uZXkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6VG9wVXA6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVG9wVXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRvcFVwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6Ok9yZGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9yZGVyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcmRlcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpSZW50OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVJlbnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVJlbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6U3Vw
cG9ydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdXBwb3J0OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdXBwb3J0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkNvbnRyaWJ1dGU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQ29udHJpYnV0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ29udHJpYnV0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlC
dXR0b25UeXBlOjpUaXA6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGlwOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUaXApOwogICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC01NDM1LDcgKzU0MzUsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25U
eXBlIGUpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBw
bGVQYXlCdXR0b25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVQbGFpbjoKICAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0
dG9uVHlwZTo6UGxhaW47CiAgICAgY2FzZSBDU1NWYWx1ZUJ1eToKQEAgLTU0ODIsMTMgKzU0ODIs
MTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZvbnRWYXJpYW50UG9zaXRpb24gcG9zaXQKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CiAgICAg
Y2FzZSBGb250VmFyaWFudFBvc2l0aW9uOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVO
b3JtYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50UG9zaXRpb246OlN1
YnNjcmlwdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdWI7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN1Yik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgRm9udFZhcmlhbnRQb3NpdGlvbjo6U3VwZXJzY3JpcHQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlU3VwZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVN1cGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC01NDk5LDcgKzU0OTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFZhcmlhbnRQb3NpdGlvbiBwb3Np
dAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJp
YW50UG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIEZvbnRWYXJpYW50UG9z
aXRpb246Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlU3ViOgpAQCAtNTUxOSwyNSArNTUxOSwy
NSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRm9udFZhcmlhbnRDYXBzIGNhcHMpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjYXBzKSB7CiAgICAgY2FzZSBGb250
VmFyaWFudENhcHM6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpTbWFsbDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbWFsbENhcHM7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNtYWxsQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZh
cmlhbnRDYXBzOjpBbGxTbWFsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
bGxTbWFsbENhcHM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsbFNtYWxs
Q2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpQZXRpdGU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGV0aXRlQ2FwczsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGV0aXRlQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgRm9udFZhcmlhbnRDYXBzOjpBbGxQZXRpdGU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQWxsUGV0aXRlQ2FwczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQWxsUGV0aXRlQ2Fwcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udFZh
cmlhbnRDYXBzOjpVbmljYXNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVu
aWNhc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVuaWNhc2UpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6VGl0bGluZzoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUaXRsaW5nQ2FwczsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlVGl0bGluZ0NhcHMpOwogICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1NDgsNyArNTU0OCw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShG
b250VmFyaWFudENhcHMgY2FwcykKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250VmFyaWFudENhcHMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVl
SURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJu
IEZvbnRWYXJpYW50Q2Fwczo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVTbWFsbENhcHM6CkBA
IC01NTc2LDEwICs1NTc2LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShGb250VmFyaWFudEFsdGVybmF0ZXMgYWx0CiAgICAgc2V0UHJp
bWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChh
bHRlcm5hdGVzKSB7CiAgICAgY2FzZSBGb250VmFyaWFudEFsdGVybmF0ZXM6Ok5vcm1hbDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9u
dFZhcmlhbnRBbHRlcm5hdGVzOjpIaXN0b3JpY2FsRm9ybXM6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSGlzdG9yaWNhbEZvcm1zOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVIaXN0b3JpY2FsRm9ybXMpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU1OTAsNyArNTU5MCw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250
VmFyaWFudEFsdGVybmF0ZXMgYWx0CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAg
IHJldHVybiBGb250VmFyaWFudEFsdGVybmF0ZXM6Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVl
SGlzdG9yaWNhbEZvcm1zOgpAQCAtNTYwOCwxMCArNTYwOCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udE9wdGljYWxTaXppbmcg
c2l6aW5nKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoc2l6aW5nKSB7CiAgICAgY2FzZSBGb250T3B0aWNhbFNpemluZzo6
RW5hYmxlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBGb250T3B0aWNhbFNpemluZzo6RGlzYWJsZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9u
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtNTYyMiw3ICs1NjIyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRPcHRpY2FsU2l6aW5nIHNpemluZykKIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250T3B0aWNhbFNp
emluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEZvbnRPcHRpY2FsU2l6aW5nOjpFbmFi
bGVkOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtNTY0MCwxOSArNTY0MCwxOSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udExv
YWRpbmdCZWhhdmlvciBiZWhhdgogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKICAgICBjYXNlIEZvbnRM
b2FkaW5nQmVoYXZpb3I6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRm9udExvYWRpbmdCZWhhdmlvcjo6QmxvY2s6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxvY2s7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUJsb2NrKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb250TG9hZGluZ0Jl
aGF2aW9yOjpTd2FwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN3YXA7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN3YXApOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEZvbnRMb2FkaW5nQmVoYXZpb3I6OkZhbGxiYWNrOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUZhbGxiYWNrOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVGYWxsYmFjayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9udExvYWRpbmdC
ZWhhdmlvcjo6T3B0aW9uYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0
aW9uYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGlvbmFsKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CkBAIC01NjYzLDcgKzU2NjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udExvYWRpbmdCZWhhdmlvciBiZWhhdgogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRMb2FkaW5nQmVoYXZpb3Io
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOwog
ICAgIGNhc2UgQ1NTVmFsdWVCbG9jazoKQEAgLTU2ODcsMTAgKzU2ODcsMTAgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE1hdGhTdHlsZSBt
YXRoU3R5bGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChtYXRoU3R5bGUpIHsKICAgICBjYXNlIE1hdGhTdHlsZTo6Tm9y
bWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBNYXRoU3R5bGU6OkNvbXBhY3Q6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ29tcGFjdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29tcGFjdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtNTcwMSw3ICs1NzAxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE1hdGhTdHlsZSBtYXRoU3R5bGUpCiB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWF0aFN0eWxlKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7
CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3Jt
YWw6CiAgICAgICAgIHJldHVybiBNYXRoU3R5bGU6Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVl
Q29tcGFjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZGM0MGQzN2VmMDU2NTM1MjQ3NDQ1NjE2OWU1NGVmMmQ0MzA4YTM3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NT
UmV2ZXJ0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAicmV2ZXJ0
Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRW
YWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzViMjRkNzIzN2Q3ZWZhNmUz
MzUyYWY2YzM1ODQ3NTM2M2YxYzA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NSZXZlcnRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBD
U1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKLQot
ICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1JldmVydFZhbHVlJikgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUmV2ZXJ0
VmFsdWU+OwotICAgIENTU1JldmVydFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnKQotICAgICAgICA6
IENTU1ZhbHVlKFJldmVydENsYXNzKQotICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwotICAg
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DU1NfVkFMVUUoQ1NTUmV2ZXJ0VmFsdWUsIGlzUmV2ZXJ0VmFsdWUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NVbnNldFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI2YjBi
M2JjNzU0MzM2NzY1MzY0NzRhNDA3ZTdkMDdkZDc1ZWI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkNTU1Vuc2V0VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NVbnNldFZhbHVlOjpjdXN0b21DU1NUZXh0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gInVuc2V0Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjY1MjVjOGRhMjBkNTk5ZWMyZDQzNGU0N2VkNDg5ZDZjMzkyZDZkNC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVW5zZXRWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NV
bnNldFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJpbmcg
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTVW5zZXRW
YWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTGF6
eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+OwotICAgIENTU1Vuc2V0VmFsdWUoU3RhdGlj
Q1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NTVmFsdWUoVW5zZXRDbGFzcykKLSAgICB7Ci0gICAg
ICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1Vuc2V0VmFsdWUsIGlzVW5zZXRW
YWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNjFhYzcxMWE3MzUxZmRkZGRkN2Yy
NmY2OTAyODBkM2Q4MWE2MWYxMi4uZTViNmI0NGM0MWU4Yjk1OTkyMDMxZDFmZGFhMTAxNDI2N2M1
N2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC00OSw4ICs0OSw2IEBACiAjaW5jbHVk
ZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlU2V0VmFsdWUuaCIKICNp
bmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUuaCIK
LSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NMaW5lQm94Q29udGFp
blZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTmFtZWRJbWFnZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
UGFpbnRJbWFnZVZhbHVlLmgiCkBAIC02MSw3ICs1OSw2IEBACiAjaW5jbHVkZSAiQ1NTU2hhZG93
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTVW5pY29kZVJhbmdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NVbnNldFZhbHVlLmgiCiAjaW5j
bHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQYWlyLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oIgpAQCAtODMsMTYgKzgwLDExIEBAIHN0cnVj
dCBTYW1lU2l6ZUFzQ1NTVmFsdWUgewogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoQ1NTVmFsdWUp
ID09IHNpemVvZihTYW1lU2l6ZUFzQ1NTVmFsdWUpLCBDU1NfdmFsdWVfc2hvdWxkX3N0YXlfc21h
bGwpOwogCi1ib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYmIGRvd25jYXN0PENTU0lu
aXRpYWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKLX0KLQogREVGSU5FX0FMTE9DQVRPUl9X
SVRIX0hFQVBfSURFTlRJRklFUihDU1NWYWx1ZSk7CiAKIENTU1ZhbHVlOjpUeXBlIENTU1ZhbHVl
Ojpjc3NWYWx1ZVR5cGUoKSBjb25zdAogewotICAgIGlmIChpc0luaGVyaXRlZFZhbHVlKCkpCisg
ICAgaWYgKGlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgIHJldHVybiBDU1NfSU5IRVJJVDsKICAg
ICBpZiAoaXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gQ1NTX1BSSU1JVElWRV9W
QUxVRTsKQEAgLTE4NCwxNCArMTc2LDYgQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENT
U1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVz
PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAgICBjYXNlIEltYWdlQ2xh
c3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbWFnZVZhbHVlPigq
dGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIEluaGVyaXRlZENsYXNzOgotICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5oZXJpdGVkVmFsdWU+KCp0aGlzLCBvdGhlcik7
Ci0gICAgICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVD
U1NWYWx1ZXM8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFVu
c2V0Q2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NVbnNldFZh
bHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFJldmVydENsYXNzOgotICAgICAgICAg
ICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTUmV2ZXJ0VmFsdWU+KCp0aGlzLCBvdGhlcik7
CiAgICAgICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAgICAgIHJldHVybiBj
b21wYXJlQ1NTVmFsdWVzPENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0aGlzLCBvdGhlcik7CiAg
ICAgICAgIGNhc2UgR3JpZEludGVnZXJSZXBlYXRDbGFzczoKQEAgLTI4NiwxNCArMjcwLDYgQEAg
U3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgSW1h
Z2VDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KCp0aGlzKS5j
dXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAg
IGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW5pdGlhbFZh
bHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNhc2UgVW5zZXRDbGFzczoKLSAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7
Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1JldmVy
dFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRD
bGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0
aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkSW50ZWdlclJlcGVhdENsYXNzOgpA
QCAtNDEwLDE4ICszODYsNiBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKICAgICBjYXNlIElt
YWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih0aGlzKTsK
ICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0gICAgICAgIGRlbGV0
ZSBkb3duY2FzdDxDU1NJbmhlcml0ZWRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0luaXRpYWxW
YWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFVuc2V0Q2xhc3M6Ci0gICAg
ICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NVbnNldFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NSZXZl
cnRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIEdyaWRBdXRvUmVwZWF0
Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPih0
aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEzLDEyICs0NzcsMzggQEAgUmVmPERlcHJlY2F0
ZWRDU1NPTVZhbHVlPiBDU1NWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcihDU1NT
dHlsZURlY2xhcmEKIAogYm9vbCBDU1NWYWx1ZTo6dHJlYXRBc0luaGVyaXRlZFZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xhc3NUeXBlKCkgPT0g
SW5oZXJpdGVkQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3MgJiYgQ1NTUHJvcGVy
dHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworICAgIHJldHVybiBpc0luaGVy
aXRWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQ
cm9wZXJ0eShwcm9wZXJ0eUlEKSk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbml0aWFs
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIHJldHVybiBjbGFz
c1R5cGUoKSA9PSBJbml0aWFsQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3MgJiYg
IUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKKyAgICByZXR1
cm4gaXNJbml0aWFsVmFsdWUoKSB8fCAoaXNVbnNldFZhbHVlKCkgJiYgIUNTU1Byb3BlcnR5Ojpp
c0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6aXNJ
bml0aWFsVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4o
KnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbml0aWFsKCk7
CiB9CiAKK2Jvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSBjb25zdAorewor
ICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbXBsaWNpdEluaXRpYWwoKTsKK30KKworYm9vbCBDU1NW
YWx1ZTo6aXNJbmhlcml0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRp
dmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJ
bmhlcml0KCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzVW5zZXRWYWx1ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KCp0aGlzKS5pc1Vuc2V0KCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzUmV2
ZXJ0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRo
aXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNSZXZlcnQoKTsKK30K
KworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGFlNTA2ZWY3Yzk5NzI3MTI4YTFkODEzYzVk
MjI2NGI1MGM3ZjMxNDEuLjZhOGQ2MGRhODdiMjk1NmFhOWRiM2M4NjAwMDcyN2NiYWEzZGVkYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0ltYWdlU2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbWFn
ZVNldENsYXNzOyB9CiAgICAgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBJbWFnZUNsYXNzOyB9CiAgICAgYm9vbCBpc0ltcGxpY2l0SW5pdGlhbFZhbHVl
KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0luaGVyaXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gSW5oZXJpdGVkQ2xhc3M7IH0KLSAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzOyB9Ci0gICAgYm9vbCBp
c1Vuc2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBVbnNldENsYXNzOyB9
Ci0gICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0g
UmV2ZXJ0Q2xhc3M7IH0KLSAgICBib29sIGlzR2xvYmFsS2V5d29yZCgpIGNvbnN0IHsgcmV0dXJu
IGlzSW5oZXJpdGVkVmFsdWUoKSB8fCBpc0luaXRpYWxWYWx1ZSgpIHx8IGlzVW5zZXRWYWx1ZSgp
IHx8IGlzUmV2ZXJ0VmFsdWUoKTsgfQorICAgIGJvb2wgaXNJbmhlcml0VmFsdWUoKSBjb25zdDsK
KyAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1Vuc2V0VmFsdWUo
KSBjb25zdDsKKyAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzQ1NT
V2lkZUtleXdvcmQoKSBjb25zdCB7IHJldHVybiBpc0luaGVyaXRWYWx1ZSgpIHx8IGlzSW5pdGlh
bFZhbHVlKCkgfHwgaXNVbnNldFZhbHVlKCkgfHwgaXNSZXZlcnRWYWx1ZSgpOyB9CiAgICAgYm9v
bCB0cmVhdEFzSW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgdHJl
YXRBc0luaGVyaXRlZFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgaXNMaW5l
YXJHcmFkaWVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gTGluZWFyR3Jh
ZGllbnRDbGFzczsgfQpAQCAtMTkxLDExICsxOTEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEZv
bnRQYWxldHRlVmFsdWVzT3ZlcnJpZGVDb2xvcnNDbGFzcywKICAgICAgICAgRnVuY3Rpb25DbGFz
cywKIAotICAgICAgICBJbmhlcml0ZWRDbGFzcywKLSAgICAgICAgSW5pdGlhbENsYXNzLAotICAg
ICAgICBVbnNldENsYXNzLAotICAgICAgICBSZXZlcnRDbGFzcywKLQogICAgICAgICBSZWZsZWN0
Q2xhc3MsCiAgICAgICAgIFNoYWRvd0NsYXNzLAogICAgICAgICBVbmljb2RlUmFuZ2VDbGFzcywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5kZXggNTAxODM1Y2M0NGVkZjU5YWYyNDg2
YzVhZTQ4NjlmY2U2NmE3MjhmZC4uNDMxNTk0NzM4Y2Y2Njk2YTk5OWI3NGRiMTFkNjVjNzc0MDNm
YTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKQEAgLTM4LDEyICszOCw4IEBA
IExhenlOZXZlckRlc3Ryb3llZDxTdGF0aWNDU1NWYWx1ZVBvb2w+IHN0YXRpY0NTU1ZhbHVlUG9v
bDsKIAogU3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0aWNDU1NWYWx1ZVBvb2woKQogewotICAgIG1f
aW5oZXJpdGVkVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAg
bV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVl
LCB0cnVlKTsKLSAgICBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6
U3RhdGljQ1NTVmFsdWUsIGZhbHNlKTsKLSAgICBtX3Vuc2V0VmFsdWUuY29uc3RydWN0KENTU1Zh
bHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAgbV9yZXZlcnRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFs
dWU6OlN0YXRpY0NTU1ZhbHVlKTsKLQorICAgIG1faW1wbGljaXRJbml0aWFsVmFsdWUuY29uc3Ry
dWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkltcGxpY2l0
SW5pdGlhbFZhbHVlKTsKKyAgICAKICAgICBtX3RyYW5zcGFyZW50Q29sb3IuY29uc3RydWN0KENT
U1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OnRyYW5zcGFyZW50QmxhY2spOwogICAgIG1f
d2hpdGVDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBDb2xvcjo6d2hp
dGUpOwogICAgIG1fYmxhY2tDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVl
LCBDb2xvcjo6YmxhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
UG9vbC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCmluZGV4IDFmYjIzMTZl
ZmMwMzEwYTNiZmNhMzg0ZjEwYzdkZTA3MWY0MWU5ZWQuLjFkNmVjMTE0MmY3MzM1ODBhYTc0NDU3
YTQ4ZmI5NGQ2MGRhZjY2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmgKQEAgLTI1LDEy
ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUu
aCIKLSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVW
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKLSNpbmNsdWRlICJDU1NSZXZl
cnRWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JIYXNoLmgiCiAjaW5jbHVkZSA8dXRpbGl0eT4K
QEAgLTU1LDExICs1MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU3RhdGljQ1NTVmFsdWVQ
b29sKCk7CiAKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5oZXJpdGVkVmFsdWU+IG1faW5o
ZXJpdGVkVmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT4gbV9p
bXBsaWNpdEluaXRpYWxWYWx1ZTsKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5pdGlhbFZh
bHVlPiBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlOwotICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NV
bnNldFZhbHVlPiBtX3Vuc2V0VmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1JldmVy
dFZhbHVlPiBtX3JldmVydFZhbHVlOworICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRp
dmVWYWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsKIAogICAgIExhenlOZXZlckRlc3Ryb3ll
ZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV90cmFuc3BhcmVudENvbG9yOwogICAgIExhenlOZXZlckRl
c3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV93aGl0ZUNvbG9yOwpAQCAtODUsMTEgKzc3LDcg
QEAgcHVibGljOgogCiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gY3JlYXRlRm9udEZhY2VWYWx1
ZShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVG
b250RmFtaWx5VmFsdWUoY29uc3QgU3RyaW5nJiwgRnJvbVN5c3RlbUZvbnRJRCA9IEZyb21TeXN0
ZW1Gb250SUQ6Ok5vKTsKLSAgICBSZWY8Q1NTSW5oZXJpdGVkVmFsdWU+IGNyZWF0ZUluaGVyaXRl
ZFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX2luaGVyaXRlZFZhbHVlLmdl
dCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1ZT4gY3JlYXRlSW1wbGljaXRJbml0aWFsVmFs
dWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faW1wbGljaXRJbml0aWFsVmFsdWUu
Z2V0KCk7IH0KLSAgICBSZWY8Q1NTSW5pdGlhbFZhbHVlPiBjcmVhdGVFeHBsaWNpdEluaXRpYWxW
YWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9leHBsaWNpdEluaXRpYWxWYWx1
ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NVbnNldFZhbHVlPiBjcmVhdGVVbnNldFZhbHVlKCkgeyBy
ZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3Vuc2V0VmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8
Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFs
dWVQb29sLT5tX3JldmVydFZhbHVlLmdldCgpOyB9CisgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVl
PiBjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9v
bC0+bV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQogICAgIFJlZjxDU1NQcmltaXRpdmVW
YWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSUQgaWRlbnRpZmllcik7CiAgICAg
UmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJ
RCBpZGVudGlmaWVyKTsKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUNvbG9yVmFs
dWUoY29uc3QgQ29sb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmgKaW5kZXggN2E4ZjFkYTMwMmRiYWQzNjQ0NGJlMTNjNGEyYmM2
MzY2NjUyMWFmMS4uNjE5ZGJlYzNlZTk3M2M0ODJlMWE3ODU1NTU3ZGFhNDA0MWFlNGRmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
LmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCwgY29uc3QgU3RyaW5nJikgeyByZXR1cm4g
RXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsgfQogCiAgICAgU3RyaW5n
IHN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+c3RyaW5nVmFsdWUoKTsgfQor
ICAgIGJvb2wgaXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmlzQ1NT
V2lkZUtleXdvcmQoKTsgfQogCiBwcml2YXRlOgogICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiB2YWx1ZSwgQ1NTU3R5bGVEZWNsYXJhdGlv
biYgb3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGM4M2Fk
OGRhMzJmZDkzYTYwOThmN2JjNDgzZDNiZDkzNDMxMzA1YmMuLmFmODk3Y2QxN2M3MDhhYmE4NTA0
YzRlNTVhNWU4NjBjNjVkYTI1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCisjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlNTA5ZWU2N2Y5MDdmYTA2ZTQ5OTY4NDM2YzYyM2Y0MWI0
ZDVhNDQ3Li4wNjNlZjM1OGFmZjcxMGMzNmY0MGU5YjgwZDE5ZGFlNGI4NzIyM2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1ZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlT
aG9ydGhhbmQmIHNob3J0aGFuCiAgICAgaWYgKHRvcExlZnQuaXNJbXBvcnRhbnQoKSAhPSB0b3BS
aWdodC5pc0ltcG9ydGFudCgpIHx8IHRvcFJpZ2h0LmlzSW1wb3J0YW50KCkgIT0gYm90dG9tUmln
aHQuaXNJbXBvcnRhbnQoKSB8fCBib3R0b21SaWdodC5pc0ltcG9ydGFudCgpICE9IGJvdHRvbUxl
ZnQuaXNJbXBvcnRhbnQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKHRv
cExlZnRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpICYmIHRvcFJpZ2h0VmFsdWUtPmlzSW5oZXJp
dGVkVmFsdWUoKSAmJiBib3R0b21SaWdodFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkgJiYgYm90
dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgaWYgKHRvcExlZnRWYWx1ZS0+
aXNJbmhlcml0VmFsdWUoKSAmJiB0b3BSaWdodFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpICYmIGJv
dHRvbVJpZ2h0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0lu
aGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZ2V0VmFsdWVOYW1lKENTU1ZhbHVlSW5oZXJp
dCk7CiAKICAgICBpZiAodG9wTGVmdFZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHRvcFJpZ2h0
VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwgYm90dG9tUmlnaHRWYWx1ZS0+aXNJbml0aWFsVmFs
dWUoKSB8fCBib3R0b21MZWZ0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkpIHsKQEAgLTg1Miw4ICs4
NTIsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpwYWdlQnJlYWtQcm9wZXJ0eVZhbHVlKGNv
bnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNobwogICAgIGF1dG8gdmFsdWUgPSBnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbMF0pOwogICAgIGlmICghdmFsdWUp
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaXNH
bG9iYWxLZXl3b3JkIGNoZWNrIGFmdGVyIHdlIGRvIHRoaXMgY29uc2lzdGVudGx5IGZvciBhbGwg
c2hvcnRoYW5kcyBpbiBnZXRQcm9wZXJ0eVZhbHVlLgotICAgIGlmICh2YWx1ZS0+aXNHbG9iYWxL
ZXl3b3JkKCkpCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGlzQ1NTV2lkZUtleXdvcmQgY2hl
Y2sgYWZ0ZXIgd2UgZG8gdGhpcyBjb25zaXN0ZW50bHkgZm9yIGFsbCBzaG9ydGhhbmRzIGluIGdl
dFByb3BlcnR5VmFsdWUuCisgICAgaWYgKHZhbHVlLT5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAg
ICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dCgpOwogICAgIAogICAgIGlmICghaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KCp2YWx1ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzdhMTE1MWFkYTJlOTc1YjRjYzQ3ZDdiNmU0Nzk2ODNk
MWMxNjNmZi4uYWEzZWEyOTI1NDU0NWZmMjY5ZTJiNWZmMWZlY2UwZmI5NWY5NjQzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAt
MTExNSwxOSArMTExNSwxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUtleXdvcmRW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIFN0cmluZ1ZpZXcgcwogICAgIGlmICghdmFs
dWVJRCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIXBhcnNpbmdEZXNjcmlw
dG9yKSB7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCkKLSAgICAgICAg
ICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZhbHVl
KCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCkKLSAgICAgICAgICAg
IHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZh
bHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQpCi0gICAgICAgICAg
ICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVVbnNldFZhbHVlKCk7Ci0g
ICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0KQotICAgICAgICAgICAgcmV0dXJu
IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICB9Ci0g
ICAgCisgICAgaWYgKCFwYXJzaW5nRGVzY3JpcHRvciAmJiBpc0NTU1dpZGVLZXl3b3JkKHZhbHVl
SUQpKQorICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1
ZSh2YWx1ZUlEKTsKKwogICAgIGlmIChDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3Jk
UHJvcGVydHlBbmRWYWx1ZShwcm9wZXJ0eUlkLCB2YWx1ZUlELCBjb250ZXh0KSkKLSAgICAgICAg
cmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbHVlSUQpOworICAg
ICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZSh2YWx1ZUlE
KTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VySWRpb21zLmgKaW5kZXggODE3NGM3MzJlNjgxZGQ3ZDNlNDAxMDQxNGQwY2IwMWEz
ZTNjNGNhMy4uNjQ4MmI0OTgzYjk4NmZlMmY4YjhiM2U1Y2IzMjQyYWYzNzM1NTFlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCkBAIC01OSw0ICs1OSwx
NSBAQCBib29sIGlzTmFtZUNvZGVQb2ludChDaGFyYWN0ZXJUeXBlIGMpCiAKIGJvb2wgaXNWYWx1
ZUFsbG93ZWRJbk1vZGUodW5zaWduZWQgc2hvcnQsIENTU1BhcnNlck1vZGUpOwogCitzdGF0aWMg
aW5saW5lIGJvb2wgaXNDU1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIHZhbHVlSUQpCit7CisgICAg
cmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVJbml0aWFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVJ
bmhlcml0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldCB8fCB2YWx1ZUlEID09IENTU1ZhbHVl
UmV2ZXJ0OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZElkZW50aWZpZXIoQ1NTVmFs
dWVJRCB2YWx1ZUlEKQoreworICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBhc3MgQ1NTLXdp
ZGUga2V5d29yZCBidXQgaXMgc3RpbGwgbm90IGFsbG93ZWQgYXMgaWRlbnRpZmllci4KKyAgICBy
ZXR1cm4gIWlzQ1NTV2lkZUtleXdvcmQodmFsdWVJRCkgJiYgdmFsdWVJRCAhPSBDU1NWYWx1ZURl
ZmF1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggZmQxZDA2ZWZmN2I5YjUyZGYz
ZGNhNzY1YjRkOTg1NGZmZDkzMWRiZi4uYjA5YzE0ZWJhN2JmZTlmMTI4ODU2YWQ2MTNmOTZhMmE0
MWY3ZjFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAKQEAgLTI1OCwyMCArMjU4LDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IG1h
eWJlQ29uc3VtZUNTU1dpZGVLZXl3b3JkKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogICAg
IGlmICghcmFuZ2VDb3B5LmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
UmVmUHRyPENTU1ZhbHVlPiB2YWx1ZTsKLSAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVy
aXQpCi0gICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJbmhl
cml0ZWRWYWx1ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVJbml0aWFsKQot
ICAgICAgICB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhwbGljaXRJ
bml0aWFsVmFsdWUoKTsKLSAgICBlbHNlIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQpCi0g
ICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVVbnNldFZhbHVl
KCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydCkKLSAgICAgICAgdmFs
dWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVJldmVydFZhbHVlKCk7Ci0gICAg
ZWxzZQorICAgIGlmICghaXNDU1NXaWRlS2V5d29yZCh2YWx1ZUlEKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICByYW5nZSA9IHJhbmdlQ29weTsKLSAgICByZXR1cm4gdmFsdWU7Cisg
ICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUodmFsdWVJRCk7
CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFs
dWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggM2Q0
ZmY5NDBlNGNkNTRlMTZlMGI1MWQ3MTg2MjIzZjc5MDRlNjNjZi4uYmU2ZTA2Y2FlZDM5Mzg0YjVh
NGVhMThjZmU3YWI0MTZlN2VhNjc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcApAQCAtNTksMTEgKzU5LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
IHsKIAotc3RhdGljIGlubGluZSBib29sIGlzQ1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCBpZCkK
LXsKLSAgICByZXR1cm4gaWQgPT0gQ1NTVmFsdWVJbml0aWFsIHx8IGlkID09IENTU1ZhbHVlSW5o
ZXJpdCB8fCBpZCA9PSBDU1NWYWx1ZVVuc2V0IHx8IGlkID09IENTU1ZhbHVlUmV2ZXJ0IHx8IGlk
ID09IENTU1ZhbHVlRGVmYXVsdDsKLX0KLQogYm9vbCBjb25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0
ZXNwYWNlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIENTU1BhcnNlclRva2Vu
IHZhbHVlID0gcmFuZ2UucGVlaygpOwpAQCAtMTM3MCw3ICsxMzY1LDcgQEAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBjb25zdW1lSWRlbnRSYW5nZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSwgQ1NTVmFsdWUKIAogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQ3VzdG9tSWRl
bnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGJvb2wgc2hvdWxkTG93ZXJjYXNlKQogewot
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IElkZW50VG9rZW4gfHwgaXNDU1NXaWRlS2V5
d29yZChyYW5nZS5wZWVrKCkuaWQoKSkpCisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0g
SWRlbnRUb2tlbiB8fCAhaXNWYWxpZElkZW50aWZpZXIocmFuZ2UucGVlaygpLmlkKCkpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGlkZW50aWZpZXIgPSByYW5nZS5jb25zdW1l
SW5jbHVkaW5nV2hpdGVzcGFjZSgpLnZhbHVlKCk7CiAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCkuY3JlYXRlQ3VzdG9tSWRlbnQoc2hvdWxkTG93ZXJjYXNlID8gaWRlbnRpZmll
ci5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpIDogaWRlbnRpZmllci50b1N0cmluZygpKTsKQEAg
LTM2NDgsNyArMzY0Myw3IEBAIEF0b21TdHJpbmcgY29uc3VtZUNvdW50ZXJTdHlsZU5hbWVJblBy
ZWx1ZGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcHJlbHVkZSkKICAgICBpZiAoIXByZWx1ZGUuYXRF
bmQoKSkKICAgICAgICAgcmV0dXJuIEF0b21TdHJpbmcoKTsKICAgICAvLyBFbnN1cmUgdGhpcyB0
b2tlbiBpcyBhIHZhbGlkIDxjdXN0b20taWRlbnQ+LgotICAgIGlmIChuYW1lVG9rZW4udHlwZSgp
ICE9IElkZW50VG9rZW4gfHwgaXNDU1NXaWRlS2V5d29yZChuYW1lVG9rZW4uaWQoKSkpCisgICAg
aWYgKG5hbWVUb2tlbi50eXBlKCkgIT0gSWRlbnRUb2tlbiB8fCAhaXNWYWxpZElkZW50aWZpZXIo
bmFtZVRva2VuLmlkKCkpKQogICAgICAgICByZXR1cm4gQXRvbVN0cmluZygpOwogICAgIC8vIElu
IHRoZSBjb250ZXh0IG9mIHRoZSBwcmVsdWRlIG9mIGFuIEBjb3VudGVyLXN0eWxlIHJ1bGUsIGEg
PGNvdW50ZXItc3R5bGUtbmFtZT4gbXVzdCBub3QgYmUgYW4gQVNDSUkKICAgICAvLyBjYXNlLWlu
c2Vuc2l0aXZlIG1hdGNoIGZvciAiZGVjaW1hbCIgb3IgImRpc2MiLiBObyA8Y291bnRlci1zdHls
ZS1uYW1lPiwgcHJlbHVkZSBvciBub3QsIG1heSBiZSBhbiBBU0NJSQpAQCAtMzcyNSw3ICszNzIw
LDcgQEAgU3RyaW5nIGNvbmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZChyYW5nZS5jb25zdW1lSW5j
bHVkaW5nV2hpdGVzcGFjZSgpLnZhbHVlKCkpOwogICAgIH0KLSAgICBpZiAoIWFkZGVkU3BhY2Ug
JiYgaXNDU1NXaWRlS2V5d29yZChmaXJzdFRva2VuLmlkKCkpKQorICAgIGlmICghYWRkZWRTcGFj
ZSAmJiAhaXNWYWxpZElkZW50aWZpZXIoZmlyc3RUb2tlbi5pZCgpKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggZDk0NGQ5ODRkYzNm
OGUxOTM5ZjFmYzc0M2Y4YTk0MGExNzdhMWUyZS4uMTY0NzY2ZGMzMjUzNzVlN2ViMWY4YTc1ZGJh
Y2Q0MjIyMTMwZmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9I
VE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENv
bnZlcnRlci5tbQpAQCAtNTg3LDcgKzU4Nyw3IEBAIFN0cmluZyBIVE1MQ29udmVydGVyQ2FjaGVz
Ojpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAK
ICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlGb3JF
bGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIFN0cmluZyByZXN1bHQ7Ci0g
ICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAodmFsdWUt
PmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAg
ZWxzZSBpZiAoc3RyaW5nRnJvbUNTU1ZhbHVlKCp2YWx1ZSwgcmVzdWx0KSkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CkBAIC03MzUsNyArNzM1LDcgQEAgYm9vbCBIVE1MQ29udmVydGVyQ2Fj
aGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQg
cHIKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlG
b3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmlt
aXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBmbG9hdFZhbHVlRnJvbVByaW1pdGl2ZVZhbHVlKGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAg
ICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1
ZTsKICAgICB9CiAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBDb2xvciBIVE1MQ29udmVydGVyQ2FjaGVz
Ojpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcAog
ICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5bGVQcm9wZXJ0eUZvckVs
ZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAgICAgICAgaWYgKGlzPENTU1ByaW1pdGl2
ZVZhbHVlPigqdmFsdWUpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmlz
UkdCQ29sb3IoKSkKICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkQ29sb3IoZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuY29sb3IoKSwgaWdub3JlRGVmYXVsdENvbG9yLCBl
bGVtZW50KTsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgICAg
IGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAgIGluaGVyaXQgPSB0cnVl
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXgg
YzZjMzZhZTY3ZjUwMzk3MTM2ZDcwZmMxZjFiZTMwMGE0YjJjZjYzOC4uODlkYjg1YjM1ZmQ3YzEy
M2MxNGU0YTQyY2FlZTZmMGFkODFkMzI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwCkBAIC00ODQsMjQgKzQ4NCwyNCBAQCBSZWY8U3R5bGVQcm9wZXJ0aWVzPiBI
VE1MVGFibGVFbGVtZW50OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUoKSBjb25zdAogICAgICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJSaWdodFdpZHRoLCBDU1NWYWx1ZVRo
aW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5
bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlCb3JkZXJSaWdodFN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKLSAgICAgICAgc3R5bGUtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0
ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVy
Q29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU29saWRCb3JkZXJzUm93c09ubHk6CiAgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcFdpZHRoLCBDU1NWYWx1
ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0
b21XaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5Qm9yZGVyVG9wU3R5bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAgICBzdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZSwgQ1NTVmFsdWVTb2xpZCk7Ci0g
ICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1
ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNvbGlkQm9y
ZGVyczoKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgs
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSgxLCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7CiAgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlU29saWQpKTsKLSAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJ
bmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJ
bmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5zZXRCb3JkZXJzOgogICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgY3NzVmFsdWVQb29s
LmNyZWF0ZVZhbHVlKDEsIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKICAgICAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVJbnNldCkpOwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVl
KCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwg
Y3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb0JvcmRlcnM6CiAgICAgICAgIC8vIElmICdydWxlcz1u
b25lJyB0aGVuIGFsbG93IGFueSBib3JkZXJzIHNldCBhdCBjZWxsIGxldmVsIHRvIHRha2UgZWZm
ZWN0LiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApp
bmRleCA4MWJhYjkzYTQxYmI2YzRhODkzZDViOGIzYWVhNmUxOGFlYzE0NzVkLi5iZWI4OTY3ZmRi
Y2RlNDMyODU0ZDE1M2JhOWNlMjZjNjc3M2UzMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hlZFByb3BlcnRpZXMm
JiBtYXRjaGVkUHJvcGUKICAgICAgICAgICAgIC8vIGFzIHRoZXkgbWlnaHQgb3ZlcnJpZGUgdGhl
IHZhbHVlIGluaGVyaXRlZCBoZXJlLiBGb3IgdGhpcyByZWFzb24gd2UgZG9uJ3QgYWxsb3cgZGVj
bGFyYXRpb25zIHdpdGgKICAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHByb3Bl
cnRpZXMgdG8gYmUgY2FjaGVkLgogICAgICAgICAgICAgY29uc3QgQ1NTVmFsdWUmIHZhbHVlID0g
KmN1cnJlbnQudmFsdWUoKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZS5pc0luaGVyaXRlZFZhbHVl
KCkpCisgICAgICAgICAgICBpZiAodmFsdWUuaXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBjdXJyZW50Q29s
b3IgaGFzIGltcGxpY2l0ZWx5IHRoZSBzYW1lIHNpZGUgZWZmZWN0LiBJdCBkZXBlbmRzIG9uIHRo
ZSB2YWx1ZSBvZiBjb2xvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3Bl
cnR5Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3Bw
CmluZGV4IDdkZjdhNzVhYWQwMDhlOTU5YTA5NDc1M2JmY2RlM2Y2MzE0NjY2ZWMuLmUyOTNiYTY5
M2IwNDU0ZjcwYTBjNWY3ZDZhMDkzYjBhNmNlMzI2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
UHJvcGVydHlDYXNjYWRlLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIGJvb2wgUHJvcGVydHlDYXNj
YWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRpZXMs
IENhc2NhCiAgICAgICAgIGlmIChtX2luY2x1ZGVkUHJvcGVydGllcyA9PSBJbmNsdWRlZFByb3Bl
cnRpZXM6OkluaGVyaXRlZE9ubHkgJiYgIWN1cnJlbnQuaXNJbmhlcml0ZWQoKSkgewogICAgICAg
ICAgICAgLy8gSW5oZXJpdGVkIG9ubHkgbW9kZSBpcyB1c2VkIGFmdGVyIG1hdGNoZWQgcHJvcGVy
dGllcyBjYWNoZSBoaXQuCiAgICAgICAgICAgICAvLyBBIG1hdGNoIHdpdGggYSB2YWx1ZSB0aGF0
IGlzIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHNob3VsZCBuZXZlciBoYXZlIGJlZW4gY2FjaGVkLgot
ICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LnZhbHVlKCktPmlzSW5oZXJpdGVkVmFsdWUoKSk7
CisgICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQudmFsdWUoKS0+aXNJbmhlcml0VmFsdWUoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQgPSBjdXJyZW50LmlkKCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgUHJvcGVydHlD
YXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVydHlDYXNjYWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3Jp
dGluZ01vZGUoRGlyZWMKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBtYXRjaGVkUHJvcGVydGll
cyA6IGRlY2xhcmF0aW9uc0ZvckNhc2NhZGVMZXZlbChtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2
ZWwpKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IG1hdGNoZWRQ
cm9wZXJ0aWVzLnByb3BlcnRpZXMtPnByb3BlcnR5Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsK
ICAgICAgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0gbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVy
dGllcy0+cHJvcGVydHlBdChpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LnZhbHVl
KCktPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LnZh
bHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSB8fCBwcm9wZXJ0eS52YWx1ZSgpLT5pc0NTU1dpZGVL
ZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IHN3aXRjaCAocHJvcGVydHkuaWQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXcml0aW5nTW9kZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDNi
YTJkOTZlZDczNDJhMDU0OTljNzA3MmJhNTczNmI2M2IyZmIxNTMuLjlkNmM2YjQzOTkwYThhOWJl
MTBiNjIyNzNkMDc5MmI5OGJlNThhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
LmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgdmFsdWUsIFNlbGVjdG9yQ2hlY2tlcjo6CiAgICAgICAg
IGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCA9IG1fc3RhdGUuZG9jdW1lbnQoKS5nZXRDU1NSZWdp
c3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQobmFtZSk7CiAgICAgfQogCi0gICAgYm9vbCBp
c0luaGVyaXQgPSB2YWx1ZVRvQXBwbHktPmlzSW5oZXJpdGVkVmFsdWUoKSB8fCBjdXN0b21Qcm9w
ZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0OworICAgIGJvb2wgaXNJbmhlcml0ID0gdmFs
dWVUb0FwcGx5LT5pc0luaGVyaXRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBD
U1NWYWx1ZUluaGVyaXQ7CiAgICAgYm9vbCBpc0luaXRpYWwgPSB2YWx1ZVRvQXBwbHktPmlzSW5p
dGlhbFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbDsK
IAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVlVG9BcHBseS0+aXNVbnNldFZhbHVlKCkgfHwgY3Vz
dG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlVW5zZXQ7CkBAIC0zNjEsOCArMzYxLDggQEAg
UmVmPENTU1ZhbHVlPiBCdWlsZGVyOjpyZXNvbHZlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBDU1NWYWx1ZSYgdmFsdWUpCiAgICAgLy8gSWYgdGhlIGNhc2NhZGUgaGFzIGFscmVhZHkg
YXBwbGllZCB0aGlzIGlkLCB0aGVuIHdlIGRldGVjdGVkIGEgY3ljbGUsIGFuZCB0aGlzIHZhbHVl
IHNob3VsZCBiZSB1bnNldC4KICAgICBpZiAoIXZhcmlhYmxlVmFsdWUgfHwgbV9zdGF0ZS5tX2Fw
cGxpZWRQcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUlEKSkgewogICAgICAgICBpZiAoQ1NTUHJvcGVy
dHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpCi0gICAgICAgICAgICByZXR1cm4g
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpOwotICAgICAg
ICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxW
YWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3Jl
YXRlVmFsdWUoQ1NTVmFsdWVJbmhlcml0KTsKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gKnZhcmlhYmxlVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1l
bnQuY3BwCmluZGV4IDViYzI2NWE2MzdkNDI1NTM0Mzg1YTBjOWM1MjE4NDY4MTkwOWQwMmEuLjQy
MmEzYjk1MWYwYmYwYTAzNTk5YzZkMGEzNDJkNDAxNjdlYzdhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgU1ZHRm9u
dEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyCiAgICAgICAgICAgICAvLyBSYXRoZXIgdGhhbiBpbnZhc2l2ZWx5IG1vZGlm
eWluZyB0aGUgcGFyc2VyIGZvciB0aGUgcHJvcGVydGllcyB0byBoYXZlIGEgc3BlY2lhbCBtb2Rl
LCB3ZSBjYW4gc2ltcGx5IGRldGVjdCB0aGUgZXJyb3IgY29uZGl0aW9uIGFmdGVyLXRoZS1mYWN0
IGFuZAogICAgICAgICAgICAgLy8gYXZvaWQgaXQgZXhwbGljaXRseS4KICAgICAgICAgICAgIGlm
IChhdXRvIHBhcnNlZFZhbHVlID0gcHJvcGVydGllcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3Bl
cnR5SWQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlLT5pc0dsb2JhbEtleXdv
cmQoKSkKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQo
KSkKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0
eUlkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443416</attachid>
            <date>2021-11-05 10:37:26 -0700</date>
            <delta_ts>2021-11-06 05:36:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211105193724.patch</filename>
            <type>text/plain</type>
            <size>228327</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzMzQzMTliMTBhMTFm
NGExMjBkNDgzZGQzMjg5YWY4ZGUyOGY4ZS4uYzBkZDk0Y2RkNjY3YmY2MWFjMDY4ODdjOGE5NGQ0
MGFhYjIyNDU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAyMS0xMS0wNSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
eSBjYW4gYWxsIGJlIGhhbmRsZWQgYnkgQ1NTUHJpbWl0aXZlVmFsdWUuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6
CisKKyAgICAgICAgQXZvaWQgY2hhbmdpbmcgdGhlIGNsYXNzIHR5cGUgdmlzaWJsZSBpbiBDU1NP
TS4KKworICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaGVyaXRlZFZh
bHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppbml0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpzdHJpbmdWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzIGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKworICAgICAgICBGb3Ig
ImluaXRpYWwiIHdlIG5lZWQgYW4gZXh0cmEgYml0IHRvIGluZGljYXRlIGlmIGl0IHdhcyBpbXBs
aWNpdCB2YWx1ZS4gVGhlcmUgaXMKKyAgICAgICAgYSBidW5jaCBvZiBtZWNoYW5pY2FsIGNoYW5n
ZXMgaW4gQ1NTUHJpbWl0aXZlVmFsdWUgdG8gbWFrZSB0aGF0IGhhcHBlbi4KKworICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlZmxlY3Rpb25EaXJlY3Rpb24gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtbkZpbGwgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVt
blNwYW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFByaW50Q29sb3JBZGp1c3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEJvcmRlclN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdXRsaW5lSXNBdXRvIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRv
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Q29udHJvbFBhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEJhY2tmYWNlVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbEF0dGFjaG1lbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxCb3ggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxSZXBlYXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJv
eFBhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveEFsaWdubWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlcmF0b3IgQm94RGVjb3JhdGlvbkJyZWFrIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFZGdlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hTaXppbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveERpcmVjdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94
TGluZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIEJveE9yaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgQ2FwdGlvblNpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIENsZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDdXJzb3JWaXNpYmlsaXR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBEaXNwbGF5
VHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgRW1wdHlDZWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGbGV4RGlyZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBbGlnbkNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZsZXhXcmFwIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGbG9hdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PEhh
bmdpbmdQdW5jdHVhdGlvbj4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGlzdFN0eWxlUG9zaXRpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpc3RTdHlsZVR5cGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcmdp
bkNvbGxhcHNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBNYXJxdWVlQmVoYXZpb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hcnF1ZWVEaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE5CU1BNb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNj
cm9sbEJlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCcmVha0JldHdlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJyZWFrSW5zaWRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBQb3NpdGlvblR5cGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFJlc2l6ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGFibGVMYXlv
dXRUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBUZXh0QWxpZ25Nb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0SnVzdGlmeSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0aW9uU2V0PFRleHREZWNv
cmF0aW9uPiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgVGV4dERlY29yYXRpb25TdHlsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0U2VjdXJpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHREZWNvcmF0aW9uU2tpcEluayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRpIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyRHJhZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVXNlck1vZGlm
eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VXNlclNlbGVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgVmVydGljYWxBbGlnbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgVmlzaWJpbGl0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV2hpdGVTcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV29yZEJyZWFrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPdmVyZmxvd1dy
YXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFRleHREaXJlY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0Q29tYmluZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUnVieVBvc2l0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3cg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRl
eHRFbXBoYXNpc0ZpbGwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRleHRFbXBoYXNpc01hcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRPcmllbnRhdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUG9pbnRlckV2ZW50cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgS2Vy
bmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0
b3IgT2JqZWN0Rml0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250U21vb3RoaW5nTW9kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtYWxsQ2FwcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJlbmRlcmluZ01vZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEh5
cGhlbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIExpbmVTbmFwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBMaW5lQWxpZ24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8U3BlYWtBcz4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJsZW5kTW9kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgSXNvbGF0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lQ2FwIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBMaW5lSm9pbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgV2luZFJ1bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIEFsaWdubWVudEJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3JkZXJDb2xsYXBzZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm9yZGVyRml0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJ
bWFnZVJlbmRlcmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgSW5wdXRTZWN1cml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtU3R5bGUzRCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhbnNmb3JtQm94IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5B
eGlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBDb2x1bW5Qcm9ncmVzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgQnVmZmVyZWRSZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbG9ySW50ZXJwb2xhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sb3JS
ZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIERvbWluYW50QmFzZWxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNoYXBlUmVuZGVyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QW5jaG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBWZWN0b3JFZmZlY3Qg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1h
c2tUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBJdGVtUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93QWxpZ25tZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb250ZW50UG9zaXRpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnREaXN0
cmlidXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFRleHRab29tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RyaWN0bmVzcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgU2Ny
b2xsU25hcEF4aXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwU3RvcCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVHJhaWxpbmdXb3Jk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBB
cHBsZVBheUJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJpYW50UG9zaXRpb24gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRW
YXJpYW50Q2FwcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgRm9udFZhcmlhbnRBbHRlcm5hdGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250T3B0aWNhbFNpemluZyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udExvYWRpbmdC
ZWhhdmlvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgTWF0aFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUmV2ZXJ0VmFsdWUuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbml0aWFsVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVkVmFsdWUgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5pdGlhbFZhbHVl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFs
dWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0
VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzR2xv
YmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVl
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUltcGxpY2l0SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVQb29sLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVFeHBsaWNpdElu
aXRpYWxWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNy
ZWF0ZVVuc2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29s
OjpjcmVhdGVSZXZlcnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZTo6aXNDU1NXaWRlS2V5d29yZCBjb25zdCk6CisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1ZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6cGFnZUJyZWFrUHJvcGVydHlW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjph
ZGRQYXJzZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VLZXl3b3JkVmFsdWUpOgorICAgICAgICAq
IGNzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmg6CisgICAgICAgIChXZWJDb3JlOjppc0NTU1dp
ZGVLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRJZGVudGlmaWVyKToKKworICAg
ICAgICBTZXBhcmF0ZSB0aGUgY29uY2VwdCBvZiB2YWxpZCBpZGVudGlmaWVyIGZyb20gQ1NTLXdp
ZGUga2V5d29yZC4gVGhlIGZvcm1lciBhbHNvIGV4Y2x1ZGVzIHRoZSBvYm9sZXRlICJkZWZhdWx0
IiBrZXl3b3JkLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlcjo6YWRkUHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6bWF5YmVDb25zdW1lQ1NTV2lkZUtleXdvcmQpOgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6aXNDU1NXaWRlS2V5d29yZCk6IERlbGV0ZWQuCisg
ICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENv
bnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAoSFRNTENvbnZl
cnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29u
dmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAgICAgKiBodG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVu
dDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVD
b2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBzdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6
YWRkTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2FzY2FkZTo6cmVz
b2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHls
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OnJlc29sdmVWYWx1ZSk6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKwogMjAyMS0xMS0wNCAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBvdXQg
ZGlkRHJhdyAvIGRpZERyYXdFbnRpcmVDYW52YXMgY2FsbHMgaW4gY2FudmFzIGRyYXdpbmcgZnVu
Y3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDhkYTI0Yjc4ZGE1N2RjM2JkMmNlZDExODRjMmVkZGZm
MGI4ZGUyNDYuLjZlOGRhYjc2NTJmNWIzNGJmYWFmZTgzYmZkNzcyM2FjZjAwZGM4MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC02OTAsOCArNjkwLDYgQEAgY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwCiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKIGNzcy9DU1NJbWFnZVZhbHVlLmNwcAogY3Nz
L0NTU0ltcG9ydFJ1bGUuY3BwCi1jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCi1jc3MvQ1NTSW5p
dGlhbFZhbHVlLmNwcAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNzcy9DU1NLZXlmcmFtZXNS
dWxlLmNwcAogY3NzL0NTU0xheWVyUnVsZS5jcHAKQEAgLTcwNyw3ICs3MDUsNiBAQCBjc3MvQ1NT
UHJvcGVydHkuY3BwCiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAogY3NzL0NTU1JlZmxl
Y3RWYWx1ZS5jcHAKIGNzcy9DU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3BwCi1jc3MvQ1NT
UmV2ZXJ0VmFsdWUuY3BwCiBjc3MvQ1NTUnVsZS5jcHAKIGNzcy9DU1NSdWxlTGlzdC5jcHAKIGNz
cy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTcyMyw3ICs3MjAsNiBAQCBjc3MvQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKIGNzcy9DU1NUb1N0eWxlTWFwLmNwcAogY3NzL0NTU1Vu
aWNvZGVSYW5nZVZhbHVlLmNwcAogY3NzL0NTU1VuaXRzLmNwcAotY3NzL0NTU1Vuc2V0VmFsdWUu
Y3BwCiBjc3MvQ1NTVmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWVMaXN0LmNwcAogY3NzL0NTU1ZhbHVl
UGFpci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlOTk2MzcyMzhhYWY0NmE3OTk3YzJjOGRlNDE2YjRjYWNkNDY1OTExLi4w
NTBlMWViODgwNzkxYzE1ODU1NzY1YmE5NDkzMTExNDA1OWYyNzkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTMxLDEwICsz
NTMxLDggQEAKIAkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDMw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0ZGMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDAwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBODBF
NkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q3MEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwMzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFNkNEOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDQw
QTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTgwRTZE
MDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaXRpYWxWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwQzBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMEQwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZERkMwQTE5
OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxl
UHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC00MTU0LDggKzQxNTIsNiBAQAogCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyog
Q1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250
YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzlFMTMx
QkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3OUUxNzFCQjIyN0NBMDBD
QUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzc5RTE1MUJCMjI2QTIwMENBQThCRiAvKiBTdHls
ZUN1c3RvbVByb3BlcnR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdEOEZF
RTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovOyB9OwotCQlCQzdEOEZGNDFC
RDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NS
ZXZlcnRWYWx1ZS5oICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyMTBEMUYwQ0JEMDBE
QjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RkE2
MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTEzMTk2LDcgKzEzMTkyLDYgQEAKIAkJQTgwRTZD
QzMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4MEU2Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDQzYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aGVyaXRlZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NJbmhlcml0ZWRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2
Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQ0EwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1NoYWRv
d1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NTaGFk
b3dWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIxMSwxMyArMTMy
MDYsMTAgQEAKIAkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltYWdlVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNENTBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1By
b3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q2MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUGFnZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDRDcw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NJbml0aWFsVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEOTBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NNZWRpYVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREEwQTE5
ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREIwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lu
aXRpYWxWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSW5pdGlh
bFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RGMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
ODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTkzLDEwICsxNDU4NSw2IEBACiAJCUJDNzc5RTEzMUJCMjE1QkIwMENBQThC
RiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQ3VzdG9tUHJvcGVydHlE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1MDgyNDEwMEE4
MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1NDAgLyog
Q1NTVW5zZXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NVbnNldFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3RDhGRUUx
QkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmV2ZXJ0VmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2
ZXJ0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUmV2ZXJ0VmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlE
MDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RkE2MUUw
RDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMaXZlTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdmVOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjk5MDAsMTAgKzI5ODg4LDYgQEAKIAkJCQlBODBFNkNDMTBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTSW1wb3J0UnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDQ0MwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuaCAqLywKIAkJCQk4NUM1NkNBOTBBQTg5RTY2MDBE
OTU3NTUgLyogQ1NTSW1wb3J0UnVsZS5pZGwgKi8sCi0JCQkJQTgwRTZDQzYwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmNwcCAqLywKLQkJCQlBODBFNkNENzBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCAqLywKLQkJCQlBODBFNkNEODBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNwcCAqLywKLQkJCQlBODBFNkNERTBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggKi8sCiAJCQkJMzEyODhFNkUwRTMwMDVENjAwMzYx
OUFFIC8qIENTU0tleWZyYW1lUnVsZS5jcHAgKi8sCiAJCQkJMzEyODhFNkYwRTMwMDVENjAwMzYx
OUFFIC8qIENTU0tleWZyYW1lUnVsZS5oICovLAogCQkJCTMxNkZFMDkxMEU2Q0NEN0YwMEJGNjA4
OCAvKiBDU1NLZXlmcmFtZVJ1bGUuaWRsICovLApAQCAtMjk5NDcsOCArMjk5MzEsNiBAQAogCQkJ
CUJDNUExMkRFMERDMDQxNDgwMEM5QUZBRCAvKiBDU1NSZWZsZWN0VmFsdWUuaCAqLywKIAkJCQk0
QjE3MDY2NDIxNjJCNDJGMDBFNTc4QkIgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmNw
cCAqLywKIAkJCQk0QkRBM0ZGQjIxNTFCNkY0MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3Rv
bVByb3BlcnR5LmggKi8sCi0JCQkJQkM3RDhGRjExQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVy
dFZhbHVlLmNwcCAqLywKLQkJCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0
VmFsdWUuaCAqLywKIAkJCQlBODBFNkNEQzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5jcHAg
Ki8sCiAJCQkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLywKIAkJCQkx
NENGN0E3MDA5RjVDRjlBMDBFQjM2NjUgLyogQ1NTUnVsZS5pZGwgKi8sCkBAIC0yOTk4Nyw4ICsy
OTk2OSw2IEBACiAJCQkJMEY2QjcwNzcyMzdCQzEyRjAwNTJDQTQ3IC8qIENTU1VuaXRzLmggKi8s
CiAJCQkJQTgwRTZDQ0UwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Vua25vd25SdWxlLmggKi8sCiAJ
CQkJODVDNTZDQUQwQUE4OUZFMDAwRDk1NzU1IC8qIENTU1Vua25vd25SdWxlLmlkbCAqLywKLQkJ
CQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5jcHAgKi8sCi0JCQkJ
QkM3RDhGRUUxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLywKIAkJCQlBRDAz
QUFGODE0Njg0NTM5MDBBMzlCNUIgLyogQ1NTVmFsdWUuY3BwICovLAogCQkJCUE4MEU2Q0M0MEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovLAogCQkJCUJDRUE0NzhDMDk3Q0FBQzgwMDk0
QzlFNCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLApAQCAtMzIyNjMsOCArMzIyNDMsNiBAQAog
CQkJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODBFNkNGQTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9y
dFJ1bGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MEU2RDAxMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NJbmhlcml0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgwRTZEMDgwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyODhFNzMw
RTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzEyODhFNzUwRTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJBNDEwN0E0MjZDQjY2RjgwMDNCRjc5NyAvKiBDU1NLZXl3b3JkVmFsdWUuaCBp
biBIZWFkZXJzICovLApAQCAtMzIzMTksNyArMzIyOTcsNiBAQAogCQkJCTgyRTNEOERGMTIyRUEw
RDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNUExMkUwMERDMDQxNDgwMEM5QUZBRCAvKiBDU1NSZWZsZWN0VmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTRCREE0MDAxMjE1MUI2RjUwMEZENjYwNCAvKiBDU1NSZWdpc3RlcmVkQ3VzdG9t
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0Q4RkY0MUJEMUE0NzkwMEZGRTU0MCAv
KiBDU1NSZXZlcnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE1MzhBMjgyNkYwMTAzQzAw
OTY1RkM4IC8qIENTU1JvdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZEMEQwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0YyMEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjM1Myw3ICsz
MjMzMCw2IEBACiAJCQkJNEJBRkQwRTEyMTkyNDJBMDAwQzBBQjY0IC8qIENTU1VuaXRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8qIENTU1Vua25v
d25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkFGRDBEOTIxOTIxRUEwMDBDMEFCNjQgLyog
Q1NTVW5wYXJzZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM3RDhGRjAxQkQwM0I2NDAw
RkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0VFMEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNCQkMyNDcy
MzgzNTUyNjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1
ODE1MTA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NP
TVZhbHVlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRl
ZENTU09NVmFsdWVDdXN0b20uY3BwCmluZGV4IGE3ZTEzNGZlYWRlMmM4YjRhMGNlMTU1OTUwNDcz
ZjYzMDY5Nzc1YmQuLjZkY2Y4YTQzNzYyOGRlZWNkNjJkNWRjMjk2OGU1YTkwN2EzMTZkYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENTU09NVmFs
dWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRl
ZENTU09NVmFsdWVDdXN0b20uY3BwCkBAIC01MSw3ICs1MSw3IEBAIEpTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxECiB7CiAgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICByZXR1cm4g
Y3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KGdsb2JhbE9iamVjdCwgV1RG
TW92ZSh2YWx1ZSkpOwotICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgIGlm
ICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmICFkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZT4odmFsdWUuZ2V0KCkpLmlzQ1NTV2lkZUtleXdvcmQoKSkKICAgICAgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KGdsb2Jh
bE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwogICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJl
Y2F0ZWRDU1NPTVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5k
ZXggMmYyZTA4OWJhYjE0NjU3NDZjZjczM2Y2NmQ5MWI1NTEwYWI2ZDFmYy4uMjE5NTIzZTEzMDYz
MmRmM2NkN2M2MzhkODUxMTY1N2RhNzNjZmJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE2MjgsNyArMTYyOCw3IEBA
IHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNvcmF0aW9uU3R5bGVGbGFnc1RvQ1NT
VmFsdWUoVGV4dERlY29yYXRpb25TdHlsCiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhwbGljaXRJ
bml0aWFsVmFsdWUoKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKIH0KIAogc3RhdGljIFJlZlB0cjxD
U1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwVG9DU1NWYWx1ZShUZXh0RGVjb3JhdGlv
blNraXBJbmsgdGV4dERlY29yYXRpb25Ta2lwSW5rKQpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgc3Rh
dGljIFJlZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwVG9DU1NWYWx1ZShU
ZXh0RGVjb3JhdGlvblNraXBJbmsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRp
YWxWYWx1ZSgpOworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaXRpYWwpOwogfQogCiBzdGF0aWMgUmVmPENTU1ZhbHVl
PiB0ZXh0VW5kZXJsaW5lT2Zmc2V0VG9DU1NWYWx1ZShjb25zdCBUZXh0VW5kZXJsaW5lT2Zmc2V0
JiB0ZXh0VW5kZXJsaW5lT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0luaGVyaXRlZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1
ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkMjQ4OTgxYjFhZDI0NGJlY2Q3
MzQ4MTMzMmI3YTg3YWFjZTg5N2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICogKEMpIDE5OTktMjAwMyBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NTSW5oZXJpdGVkVmFs
dWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAiaW5oZXJpdCJfczsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0luaGVyaXRlZFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFs
dWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjUyYjkxNTRhYTIyOGQ1MTA5ZWJi
NDAwZjJlOTlkZGRlZWZkZDQ0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiAoQykgMTk5OS0yMDAzIExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ1NTSW5oZXJpdGVk
VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0cmluZyBjdXN0
b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbmhlcml0ZWRW
YWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTGF6
eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRlZFZhbHVlPjsKLSAgICBDU1NJbmhlcml0ZWRWYWx1
ZShTdGF0aWNDU1NWYWx1ZVRhZykKLSAgICAgICAgOiBDU1NWYWx1ZShJbmhlcml0ZWRDbGFzcykK
LSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU0luaGVyaXRl
ZFZhbHVlLCBpc0luaGVyaXRlZFZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW5pdGlhbFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFs
dWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDE0MzZlN2YxZWNhNjQ2Zjg2
OGQ5ODhmNzY2MjQ2ZWY3NjEzMzBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoqCi0gKiAoQykgMTk5OS0yMDAzIExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NTSW5pdGlhbFZhbHVlOjpj
dXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gImluaXRpYWwiX3M7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bml0aWFsVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRmYjc2ZjI1MWYyNDRmMTUxY2E3MjgxMjJiYzEy
YTQ0YTliYTdhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1MCArMCwwIEBACi0vKgotICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NWYWx1ZS5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU0luaXRpYWxWYWx1ZSBmaW5hbCA6
IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBj
b25zdDsKLQotICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbXBsaWNp
dDsgfQotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTSW5pdGlhbFZhbHVlJikgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8
Q1NTSW5pdGlhbFZhbHVlPjsKLSAgICBDU1NJbml0aWFsVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcs
IGJvb2wgaW1wbGljaXQpCi0gICAgICAgIDogQ1NTVmFsdWUoSW5pdGlhbENsYXNzKQotICAgICAg
ICAsIG1faXNJbXBsaWNpdChpbXBsaWNpdCkKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsK
LSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBtX2lzSW1wbGljaXQ7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU0lu
aXRpYWxWYWx1ZSwgaXNJbml0aWFsVmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwCmluZGV4IGE5ZDAyMjZmOWNkZDUwNTcyYTJkYmM4YTU5OTA4Njk3MTcxNjg0
YmMuLmMyMzZjNGY0MTkxNGFhOTQyNTc3YmEzNGQ1ZmZkZTYxOTYzY2ExYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMjYyLDcgKzI2Miw2IEBAIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
KQogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlTmFtZShDU1NWYWx1ZUlEIHZhbHVlSUQp
CiB7CiAgICAgQVNTRVJUX0FSRyh2YWx1ZUlELCAodmFsdWVJRCA+PSBmaXJzdENTU1ZhbHVlS2V5
d29yZCAmJiB2YWx1ZUlEIDw9IGxhc3RDU1NWYWx1ZUtleXdvcmQpKTsKLQogICAgIHJldHVybiBn
ZXRWYWx1ZU5hbWVBdG9tU3RyaW5nKHZhbHVlSUQpOwogfQogCkBAIC0yNzAsNyArMjY5LDE0IEBA
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NWYWx1ZUlEIHZhbHVlSUQp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKICAgICBzZXRQcmltaXRpdmVVbml0
VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKLSAgICBtX3ZhbHVlLnZhbHVlSUQgPSB2
YWx1ZUlEOworICAgIHNldFZhbHVlSURJbnRlcm5hbCh2YWx1ZUlEKTsKK30KKworQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKQorICAg
IDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CisgICAgc2V0SW1wbGljaXRJbml0aWFsSW50ZXJu
YWwoKTsKIH0KIAogQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJRCkKQEAgLTM1MCw2ICszNTYsMTIgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBDU1NWYWx1ZUlEIHZhbHVlSUQp
CiAgICAgbWFrZVN0YXRpYygpOwogfQogCitDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKQorICAgIDog
Q1NTUHJpbWl0aXZlVmFsdWUoSW1wbGljaXRJbml0aWFsVmFsdWUpCit7CisgICAgbWFrZVN0YXRp
YygpOworfQorCiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NT
VmFsdWVUYWcsIGNvbnN0IENvbG9yJiBjb2xvcikKICAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKGNv
bG9yKQogewpAQCAtMzY3LDcgKzM3OSw3IEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmluaXQo
Y29uc3QgTGVuZ3RoJiBsZW5ndGgpCiAgICAgc3dpdGNoIChsZW5ndGgudHlwZSgpKSB7CiAgICAg
Y2FzZSBMZW5ndGhUeXBlOjpBdXRvOgogICAgICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgTGVuZ3RoVHlwZTo6Rml4ZWQ6CiAgICAgICAgIHNldFByaW1p
dGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfUFgpOwpAQCAtMzc1LDI3ICszODcsMjcgQEAg
dm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6aW5pdChjb25zdCBMZW5ndGgmIGxlbmd0aCkKICAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgTGVuZ3RoVHlwZTo6SW50cmluc2ljOgogICAgICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnRyaW5zaWM7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUludHJpbnNpYyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0
aFR5cGU6Ok1pbkludHJpbnNpYzoKICAgICAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TWluSW50cmluc2ljOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNaW5JbnRy
aW5zaWMpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpNaW5Db250ZW50
OgogICAgICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaW5Db250ZW50OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNaW5Db250ZW50KTsKICAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgTGVuZ3RoVHlwZTo6TWF4Q29udGVudDoKICAgICAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWF4Q29udGVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTWF4Q29udGVudCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIExlbmd0aFR5cGU6
OkZpbGxBdmFpbGFibGU6CiAgICAgICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtp
dEZpbGxBdmFpbGFibGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtp
dEZpbGxBdmFpbGFibGUpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBMZW5ndGhUeXBlOjpG
aXRDb250ZW50OgogICAgICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaXRDb250ZW50
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGaXRDb250ZW50KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgTGVuZ3RoVHlwZTo6UGVyY2VudDoKICAgICAgICAgc2V0UHJp
bWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFKTsKQEAgLTEwMzEsNyAr
MTA0Myw3IEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6c3RyaW5nVmFsdWUoKSBjb25zdAog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GT05UX0ZBTUlMWToKICAgICAgICAgcmV0dXJuIG1f
dmFsdWUuZm9udEZhbWlseS0+ZmFtaWx5TmFtZTsKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
VkFMVUVfSUQ6Ci0gICAgICAgIHJldHVybiB2YWx1ZU5hbWUobV92YWx1ZS52YWx1ZUlEKTsKKyAg
ICAgICAgcmV0dXJuIHZhbHVlTmFtZSh2YWx1ZUlESW50ZXJuYWwoKSk7CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1BST1BFUlRZX0lEOgogICAgICAgICByZXR1cm4gcHJvcGVydHlOYW1lKG1f
dmFsdWUucHJvcGVydHlJRCk7CiAgICAgZGVmYXVsdDoKQEAgLTEyMDUsNyArMTIxNyw3IEBAIEFM
V0FZU19JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0
b21DU1NUZXh0KCkgY29uc3QKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVVJJOgogICAgICAg
ICByZXR1cm4gc2VyaWFsaXplVVJMKG1fdmFsdWUuc3RyaW5nKTsKICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQ6Ci0gICAgICAgIHJldHVybiB2YWx1ZU5hbWUobV92YWx1ZS52YWx1
ZUlEKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlTmFtZSh2YWx1ZUlESW50ZXJuYWwoKSk7CiAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BST1BFUlRZX0lEOgogICAgICAgICByZXR1cm4gcHJvcGVy
dHlOYW1lKG1fdmFsdWUucHJvcGVydHlJRCk7CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0FU
VFI6CkBAIC0xMzU4LDcgKzEzNzAsNyBAQCBib29sIENTU1ByaW1pdGl2ZVZhbHVlOjplcXVhbHMo
Y29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdAogICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19QUk9QRVJUWV9JRDoKICAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZShtX3ZhbHVl
LnByb3BlcnR5SUQpID09IHByb3BlcnR5TmFtZShvdGhlci5tX3ZhbHVlLnByb3BlcnR5SUQpOwog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRDoKLSAgICAgICAgcmV0dXJuIHZhbHVl
TmFtZShtX3ZhbHVlLnZhbHVlSUQpID09IHZhbHVlTmFtZShvdGhlci5tX3ZhbHVlLnZhbHVlSUQp
OworICAgICAgICByZXR1cm4gdmFsdWVOYW1lKHZhbHVlSURJbnRlcm5hbCgpKSA9PSB2YWx1ZU5h
bWUob3RoZXIudmFsdWVJREludGVybmFsKCkpOwogICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
VFJJTkc6CiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q3VzdG9tSWRlbnQ6CiAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1VSSToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5k
ZXggYjc0NzljN2JmN2Q5NTQ3NTA4NzkyOTQ5NmY0ZDRiMWE5ZWQ1ODg2MS4uZjBiOTdlY2YxMzg2
OGNhZjQ4Zjg0MWM1OWQ0Y2QwMWViMTMwYWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKQEAgLTExNSw2ICsxMTUsMTIgQEAgcHVibGljOgogICAgIGJvb2wgaXNGbGV4
KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfRlI7
IH0KICAgICBib29sIGlzQ3VzdG9tSWRlbnQoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0
VHlwZSgpID09IENTU1VuaXRUeXBlOjpDdXN0b21JZGVudDsgfQogCisgICAgYm9vbCBpc0luaXRp
YWwoKSBjb25zdCB7IHJldHVybiBpc1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVJ
bml0aWFsOyB9CisgICAgYm9vbCBpc0ltcGxpY2l0SW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIGlz
SW5pdGlhbCgpICYmIGlzSW1wbGljaXRJbnRlcm5hbCgpOyB9CisgICAgYm9vbCBpc0luaGVyaXQo
KSBjb25zdCB7IHJldHVybiBpc1ZhbHVlSUQoKSAmJiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbmhl
cml0OyB9CisgICAgYm9vbCBpc1Vuc2V0KCkgY29uc3QgeyByZXR1cm4gaXNWYWx1ZUlEKCkgJiYg
dmFsdWVJRCgpID09IENTU1ZhbHVlVW5zZXQ7IH0KKyAgICBib29sIGlzUmV2ZXJ0KCkgY29uc3Qg
eyByZXR1cm4gaXNWYWx1ZUlEKCkgJiYgdmFsdWVJRCgpID09IENTU1ZhbHVlUmV2ZXJ0OyB9CisK
ICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1Zh
bHVlSUQgdmFsdWVJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2
YWx1ZUlEKSk7IH0KICAgICBzdGF0aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVu
dGlmaWVyKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NQcmltaXRpdmVWYWx1ZShwcm9wZXJ0eUlEKSk7IH0KIApAQCAtMTc1LDcgKzE4MSw3IEBAIHB1
YmxpYzoKICAgICBRdWFkKiBxdWFkVmFsdWUoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0
VHlwZSgpICE9IENTU1VuaXRUeXBlOjpDU1NfUVVBRCA/IG51bGxwdHIgOiBtX3ZhbHVlLnF1YWQ7
IH0KICAgICBSZWN0KiByZWN0VmFsdWUoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlw
ZSgpICE9IENTU1VuaXRUeXBlOjpDU1NfUkVDVCA/IG51bGxwdHIgOiBtX3ZhbHVlLnJlY3Q7IH0K
ICAgICBDU1NCYXNpY1NoYXBlKiBzaGFwZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZl
VW5pdFR5cGUoKSAhPSBDU1NVbml0VHlwZTo6Q1NTX1NIQVBFID8gbnVsbHB0ciA6IG1fdmFsdWUu
c2hhcGU7IH0KLSAgICBDU1NWYWx1ZUlEIHZhbHVlSUQoKSBjb25zdCB7IHJldHVybiBwcmltaXRp
dmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQgPyBtX3ZhbHVlLnZhbHVl
SUQgOiBDU1NWYWx1ZUludmFsaWQ7IH0KKyAgICBDU1NWYWx1ZUlEIHZhbHVlSUQoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQg
PyB2YWx1ZUlESW50ZXJuYWwoKSA6IENTU1ZhbHVlSW52YWxpZDsgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIG9wZXJhdG9yIFQoKSBjb25zdDsgLy8gRGVmaW5lZCBpbiBDU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKIApAQCAtMTk4LDkgKzIwNCwxMyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIENTU1ZhbHVlUG9vbDsKKyAgICBmcmllbmQgY2xh
c3MgU3RhdGljQ1NTVmFsdWVQb29sOwogICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NT
UHJpbWl0aXZlVmFsdWU+OwogCisgICAgZW51bSBJbXBsaWNpdEluaXRpYWxWYWx1ZVRhZyB7IElt
cGxpY2l0SW5pdGlhbFZhbHVlIH07CisKICAgICBDU1NQcmltaXRpdmVWYWx1ZShDU1NWYWx1ZUlE
KTsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZShJbXBsaWNpdEluaXRpYWxWYWx1ZVRhZyk7CiAgICAg
Q1NTUHJpbWl0aXZlVmFsdWUoQ1NTUHJvcGVydHlJRCk7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUo
Y29uc3QgQ29sb3ImKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShjb25zdCBMZW5ndGgmKTsKQEAg
LTIxMCw2ICsyMjAsNyBAQCBwcml2YXRlOgogICAgIENTU1ByaW1pdGl2ZVZhbHVlKGRvdWJsZSwg
Q1NTVW5pdFR5cGUpOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcs
IENTU1ZhbHVlSUQpOworICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBJ
bXBsaWNpdEluaXRpYWxWYWx1ZVRhZyk7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NT
VmFsdWVUYWcsIGNvbnN0IENvbG9yJik7CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NT
VmFsdWVUYWcsIGRvdWJsZSwgQ1NTVW5pdFR5cGUpOwogCkBAIC0yNDQsOSArMjU1LDMzIEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzUmVzb2x1dGlvbihDU1NVbml0VHlw
ZSk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3Ro
KENTU1VuaXRUeXBlKTsKIAorICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgaW1wbGljaXRC
aXRNYXNrID0gMHgxMDAwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IHZhbHVkSURN
YXNrID0gMHhmZmZmOworCisgICAgdm9pZCBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJRCB2
YWx1ZUlEKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAgICAgICAgbV92
YWx1ZS52YWx1ZUlEQW5kSW1wbGljaXRCaXQgPSB2YWx1ZUlEOworICAgIH0KKyAgICB2b2lkIHNl
dEltcGxpY2l0SW5pdGlhbEludGVybmFsKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7CisgICAgICAgIG1fdmFsdWUudmFsdWVJREFuZEltcGxpY2l0Qml0ID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KENTU1ZhbHVlSW5pdGlhbCkgfCBpbXBsaWNpdEJpdE1hc2s7CisgICAgfQor
ICAgIENTU1ZhbHVlSUQgdmFsdWVJREludGVybmFsKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NWYWx1ZUlE
PihtX3ZhbHVlLnZhbHVlSURBbmRJbXBsaWNpdEJpdCAmIHZhbHVkSURNYXNrKTsKKyAgICB9Cisg
ICAgYm9vbCBpc0ltcGxpY2l0SW50ZXJuYWwoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJU
KGlzVmFsdWVJRCgpKTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUudmFsdWVJREFuZEltcGxpY2l0
Qml0ICYgaW1wbGljaXRCaXRNYXNrOworICAgIH0KKyAgICAKICAgICB1bmlvbiB7CiAgICAgICAg
IENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRDsKLSAgICAgICAgQ1NTVmFsdWVJRCB2YWx1ZUlEOwor
ICAgICAgICB1aW50MzJfdCB2YWx1ZUlEQW5kSW1wbGljaXRCaXQ7CiAgICAgICAgIGRvdWJsZSBu
dW07CiAgICAgICAgIFN0cmluZ0ltcGwqIHN0cmluZzsKICAgICAgICAgQ291bnRlciogY291bnRl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmlu
ZGV4IGY2NGJiMTY0Yjk2M2VjMTgyOGQwNGU5NzYyOWM1M2UyNGMwN2MwOTkuLjg0NmIwMGY4M2I4
MTc2MjI5YzdhNzVhOWQ0MmExMzIzMDRhOTEyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMTQyLDE2ICsxNDIsMTYgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJlZmxlY3Rp
b25EaXJlY3Rpb24gZGlyZWMKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewogICAgIGNhc2UgUmVmbGVj
dGlvbkRpcmVjdGlvbjo6QWJvdmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QWJvdmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFib3ZlKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBSZWZsZWN0aW9uRGlyZWN0aW9uOjpCZWxvdzoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCZWxvdzsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQmVsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlZmxlY3Rpb25E
aXJlY3Rpb246OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUmVmbGVjdGlvbkRpcmVjdGlvbjo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJpZ2h0KTsKICAgICB9CiB9CiAKQEAgLTE1OSw3ICsxNTksNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUmVmbGVjdGlvbkRpcmVjdGlvbigpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVBYm92ZToKICAgICAgICAgcmV0dXJuIFJlZmxlY3Rpb25EaXJlY3Rpb246OkFib3ZlOwog
ICAgIGNhc2UgQ1NTVmFsdWVCZWxvdzoKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5GaWxsIGNv
bHVtbkZpbGwpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChjb2x1bW5GaWxsKSB7CiAgICAgY2FzZSBDb2x1bW5GaWxsOjpB
dXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbHVtbkZpbGw6OkJhbGFuY2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
QmFsYW5jZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmFsYW5jZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE5Myw5ICsxOTMsOSBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29sdW1uRmlsbCBjb2x1
bW5GaWxsKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENv
bHVtbkZpbGwoKSBjb25zdAogewogICAgIGlmIChwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpIHsKLSAgICAgICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBD
U1NWYWx1ZUJhbGFuY2UpCisgICAgICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1
ZUJhbGFuY2UpCiAgICAgICAgICAgICByZXR1cm4gQ29sdW1uRmlsbDo6QmFsYW5jZTsKLSAgICAg
ICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgIGlmICh2YWx1
ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZUF1dG8pCiAgICAgICAgICAgICByZXR1cm4gQ29sdW1u
RmlsbDo6QXV0bzsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMDgsMTAg
KzIwOCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoQ29sdW1uU3BhbiBjb2x1bW5TcGFuKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY29sdW1uU3Bhbikgewog
ICAgIGNhc2UgQ29sdW1uU3Bhbjo6QWxsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUFsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb2x1bW5TcGFuOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMjQsNyArMjI0LDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbHVtblNwYW4oKSBj
b25zdAogCiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52
YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NT
VmFsdWVBbGw6CiAgICAgICAgIHJldHVybiBDb2x1bW5TcGFuOjpBbGw7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vbmU6CkBAIC0yNDQsMTAgKzI0NCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoUHJpbnRDb2xvckFkanVzdCB2YWx1ZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKHZhbHVlKSB7CiAgICAgY2FzZSBQcmludENvbG9yQWRqdXN0OjpFeGFjdDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFeGFjdDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlRXhhY3QpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByaW50Q29s
b3JBZGp1c3Q6OkVjb25vbXk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWNv
bm9teTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRWNvbm9teSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgUHJpbnRDb2xvckFkanVzdCgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVF
Y29ub215OgogICAgICAgICByZXR1cm4gUHJpbnRDb2xvckFkanVzdDo6RWNvbm9teTsKICAgICBj
YXNlIENTU1ZhbHVlRXhhY3Q6CkBAIC0yNzYsMzQgKzI3NiwzNCBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm9yZGVyU3R5bGUgZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpOb25lOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpIaWRkZW46
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIaWRkZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJvcmRlclN0eWxlOjpJbnNldDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJ
bnNldDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5zZXQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpHcm9vdmU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlR3Jvb3ZlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVHcm9vdmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpSaWRn
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWRnZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmlkZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJvcmRlclN0eWxlOjpPdXRzZXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
T3V0c2V0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPdXRzZXQpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpEb3R0ZWQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlRG90dGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVEb3R0ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpE
YXNoZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGFzaGVkOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEYXNoZWQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJvcmRlclN0eWxlOjpTb2xpZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVTb2xpZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU29saWQpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJvcmRlclN0eWxlOjpEb3VibGU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRG91YmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVEb3VibGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zMTIsMTYg
KzMxMiwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
Qm9yZGVyU3R5bGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBp
ZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVlQXV0bykgLy8gVmFsaWQgZm9yIENTUyBvdXRs
aW5lLXN0eWxlCisgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlQXV0bykgLy8g
VmFsaWQgZm9yIENTUyBvdXRsaW5lLXN0eWxlCiAgICAgICAgIHJldHVybiBCb3JkZXJTdHlsZTo6
RG90dGVkOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxCb3JkZXJTdHlsZT4obV92YWx1ZS52YWx1
ZUlEIC0gQ1NTVmFsdWVOb25lKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qm9yZGVyU3R5bGU+
KHZhbHVlSURJbnRlcm5hbCgpIC0gQ1NTVmFsdWVOb25lKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE91dGxpbmVJc0F1dG8oKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENT
U1ZhbHVlQXV0bykKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvKQog
ICAgICAgICByZXR1cm4gT3V0bGluZUlzQXV0bzo6T247CiAgICAgcmV0dXJuIE91dGxpbmVJc0F1
dG86Ok9mZjsKIH0KQEAgLTMzMiw0MyArMzMyLDQzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb21wb3NpdGVPcGVyYXRvciBlKQogICAg
IHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3
aXRjaCAoZSkgewogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkNsZWFyOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNsZWFyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVDbGVhcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3Bl
cmF0b3I6OkNvcHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29weTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29weSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU291cmNlT3ZlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlU291cmNlT3Zlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZUluOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNv
dXJjZUluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb3VyY2VJbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU91dDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdXQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZVNvdXJjZU91dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUF0b3A6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU291cmNlQXRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU291cmNlQXRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0
b3I6OkRlc3RpbmF0aW9uT3ZlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVE
ZXN0aW5hdGlvbk92ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlc3Rp
bmF0aW9uT3Zlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6
OkRlc3RpbmF0aW9uSW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGlu
YXRpb25JbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVzdGluYXRpb25J
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0
aW9uT3V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3RpbmF0aW9uT3V0
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZXN0aW5hdGlvbk91dCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uQXRv
cDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlc3RpbmF0aW9uQXRvcCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlhPUjoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVYb3I7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVhvcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6
OlBsdXNEYXJrZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGx1c0Rhcmtl
cjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGx1c0Rhcmtlcik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlBsdXNMaWdodGVyOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNMaWdodGVyOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbHVzTGlnaHRlcik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRpZmZlcmVuY2U6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAg
c3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVDbGVhcjoKICAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpDbGVhcjsKICAgICBjYXNlIENTU1ZhbHVl
Q29weToKQEAgLTQyMSwyMDYgKzQyMSwyMDYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbnRyb2xQYXJ0IGUpCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBOb0NvbnRyb2xQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEF1dG9QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENoZWNrYm94UGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVDaGVja2JveDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ2hlY2tib3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJhZGlvUGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSYWRpbzsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUmFkaW8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFB1
c2hCdXR0b25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVB1c2hCdXR0
b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVB1c2hCdXR0b24pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNxdWFyZUJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3F1YXJlQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTcXVhcmVCdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJ1dHRv
blBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQnV0dG9uOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCdXR0b24pOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJ1dHRvbkJldmVsUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVCdXR0b25CZXZlbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQnV0dG9u
QmV2ZWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERlZmF1bHRCdXR0b25QYXJ0OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHRCdXR0b247CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlZmF1bHRCdXR0b24pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIElubmVyU3BpbkJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlSW5uZXJTcGluQnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVJbm5lclNwaW5CdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpc3Rib3hQ
YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxpc3Rib3g7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxpc3Rib3gpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIExpc3RJdGVtUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVM
aXN0aXRlbTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGlzdGl0ZW0pOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFydDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUVudGVyRnVsbHNjcmVlbkJ1
dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFFbnRlckZ1bGxz
Y3JlZW5CdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhRXhpdEZ1bGxzY3Jl
ZW5CdXR0b25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhRXhp
dEZ1bGxzY3JlZW5CdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1l
ZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlh
UGxheUJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFQ
bGF5QnV0dG9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVBsYXlC
dXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25Q
YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhT3ZlcmxheVBsYXlC
dXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhT3ZlcmxheVBs
YXlCdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFNdXRlQnV0dG9uOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYU11dGVCdXR0b24pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhU2Vla0JhY2tCdXR0b247CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhU2Vla0JhY2tCdXR0b24pOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhU2Vla0ZvcndhcmRCdXR0b247CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhU2Vla0ZvcndhcmRCdXR0b24pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1lZGlhUmV3aW5kQnV0dG9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVJld2luZEJ1dHRvbjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTWVkaWFSZXdpbmRCdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b24pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlh
U2xpZGVyUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVNsaWRl
cjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFTbGlkZXIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhU2xpZGVydGh1bWI7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhU2xpZGVydGh1bWIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlcjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXIpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvblBhcnQ6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b24p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lZGlhVm9sdW1lU2xpZGVydGh1
bWIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFy
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzQmFja2dy
b3VuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWVkaWFDb250cm9sc0Jh
Y2tncm91bmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhQ29udHJvbHNGdWxsc2Ny
ZWVuQmFja2dyb3VuZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVk
aWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3JvdW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tncm91bmQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVkaWFGdWxsc2NyZWVuVm9sdW1lU2xpZGVyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUZ1bGxzY3JlZW5Wb2x1bWVT
bGlkZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNs
aWRlclRodW1iUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTWVkaWFGdWxsc2NyZWVuVm9sdW1lU2xpZGVyVGh1bWIpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU1lZGlhQ3VycmVudFRpbWVEaXNwbGF5OworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVNZWRpYUN1cnJlbnRUaW1lRGlzcGxheSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWVkaWFUaW1lUmVtYWluaW5nUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVNZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVNZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBNZWRpYUNvbnRyb2xzTGlnaHRCYXJCYWNrZ3JvdW5kUGFydDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNZWRpYUNvbnRyb2xzTGlnaHRCYXJCYWNrZ3Jv
dW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNZWRpYUNvbnRyb2xzTGln
aHRCYXJCYWNrZ3JvdW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNZWRpYUNvbnRyb2xz
RGFya0JhckJhY2tncm91bmRQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU1lZGlhQ29udHJvbHNEYXJrQmFyQmFja2dyb3VuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTWVkaWFDb250cm9sc0RhcmtCYXJCYWNrZ3JvdW5kKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBNZW51bGlzdFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWVudWxpc3Q7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lbnVs
aXN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNZW51bGlzdEJ1dHRvblBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3RCdXR0b247CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lbnVsaXN0QnV0dG9uKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNZW51bGlzdFRleHRQYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU1lbnVsaXN0VGV4dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
TWVudWxpc3RUZXh0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNZW51bGlzdFRleHRGaWVs
ZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWVudWxpc3RUZXh0Zmll
bGQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1lbnVsaXN0VGV4dGZpZWxk
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNZXRlclBhcnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTWV0ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZU1ldGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZWxldmFuY3lMZXZlbEluZGlj
YXRvclBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVsZXZhbmN5TGV2
ZWxJbmRpY2F0b3I7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlbGV2YW5j
eUxldmVsSW5kaWNhdG9yKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250aW51b3VzQ2Fw
YWNpdHlMZXZlbEluZGljYXRvclBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ29udGludW91c0NhcGFjaXR5TGV2ZWxJbmRpY2F0b3I7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNvbnRpbnVvdXNDYXBhY2l0eUxldmVsSW5kaWNhdG9yKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBEaXNjcmV0ZUNhcGFjaXR5TGV2ZWxJbmRpY2F0b3JQYXJ0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURpc2NyZXRlQ2FwYWNpdHlMZXZlbElu
ZGljYXRvcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGlzY3JldGVDYXBh
Y2l0eUxldmVsSW5kaWNhdG9yKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSYXRpbmdMZXZl
bEluZGljYXRvclBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmF0aW5n
TGV2ZWxJbmRpY2F0b3I7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJhdGlu
Z0xldmVsSW5kaWNhdG9yKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQcm9ncmVzc0JhclBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJvZ3Jlc3NCYXI7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVByb2dyZXNzQmFyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQcm9ncmVzc0JhclZhbHVlUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVQcm9ncmVzc0JhclZhbHVlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVQcm9ncmVzc0JhclZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBT
bGlkZXJIb3Jpem9udGFsUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
bGlkZXJIb3Jpem9udGFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbGlk
ZXJIb3Jpem9udGFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2xpZGVyVmVydGljYWw7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNsaWRlclZlcnRpY2FsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlcnRodW1iSG9yaXpvbnRhbDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2xpZGVydGh1bWJIb3Jpem9udGFsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTbGlkZXJ0aHVtYlZlcnRpY2FsOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbGlkZXJ0aHVtYlZlcnRpY2FsKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDYXJldFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQ2FyZXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNhcmV0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZWFyY2hGaWVsZFBhcnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVNlYXJjaGZpZWxkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZWFyY2hG
aWVsZERlY29yYXRpb25QYXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNl
YXJjaGZpZWxkRGVjb3JhdGlvbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U2VhcmNoZmllbGREZWNvcmF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZWFyY2hG
aWVsZFJlc3VsdHNEZWNvcmF0aW9uUGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNEZWNvcmF0aW9uOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVTZWFyY2hmaWVsZFJlc3VsdHNEZWNvcmF0aW9uKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25QYXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlYXJjaGZpZWxkUmVzdWx0c0J1dHRvbjsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2VhcmNoZmllbGRSZXN1bHRzQnV0dG9uKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblBhcnQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VhcmNoZmllbGRDYW5jZWxCdXR0b247Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlYXJjaGZpZWxkQ2FuY2VsQnV0dG9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RmllbGRQYXJ0OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRmaWVsZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlVGV4dGZpZWxkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QXJl
YVBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dGFyZWE7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRhcmVhKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQ2Fwc0xvY2tJbmRpY2F0b3I7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUNhcHNMb2NrSW5kaWNhdG9yKTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBjYXNlIEF0dGFjaG1lbnRQYXJ0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF0dGFjaG1lbnQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUF0dGFjaG1lbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJv
cmRlcmxlc3NBdHRhY2htZW50UGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVCb3JkZXJsZXNzQXR0YWNobWVudDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQm9yZGVybGVzc0F0dGFjaG1lbnQpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVO
QUJMRShBUFBMRV9QQVkpCiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXBwbGVQYXlCdXR0b247CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUFwcGxlUGF5QnV0dG9uKTsKICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBjYXNlIENvbG9yV2VsbFBhcnQ6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sb3JXZWxsOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xvcldlbGwpOwogICAgICAgICBicmVhazsKICNl
bmRpZgogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIGNhc2UgTGlzdEJ1dHRvblBh
cnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGlzdEJ1dHRvbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGlzdEJ1dHRvbik7CiAgICAgICAgIGJyZWFr
OwogI2VuZGlmCiAgICAgfQpAQCAtNjMwLDEzICs2MzAsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRyb2xQYXJ0KCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgaWYgKG1fdmFsdWUudmFsdWVJRCA9PSBDU1NWYWx1
ZU5vbmUpCisgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENTU1ZhbHVlTm9uZSkKICAgICAg
ICAgcmV0dXJuIE5vQ29udHJvbFBhcnQ7CiAKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENT
U1ZhbHVlQXV0bykKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvKQog
ICAgICAgICByZXR1cm4gQXV0b1BhcnQ7CiAKLSAgICByZXR1cm4gQ29udHJvbFBhcnQobV92YWx1
ZS52YWx1ZUlEIC0gQ1NTVmFsdWVDaGVja2JveCArIENoZWNrYm94UGFydCk7CisgICAgcmV0dXJu
IENvbnRyb2xQYXJ0KHZhbHVlSURJbnRlcm5hbCgpIC0gQ1NTVmFsdWVDaGVja2JveCArIENoZWNr
Ym94UGFydCk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShCYWNrZmFjZVZpc2liaWxpdHkgZSkKQEAgLTY0NSwxMCArNjQ1LDEwIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShC
YWNrZmFjZVZpc2liaWxpdHkgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJhY2tmYWNlVmlz
aWJpbGl0eTo6VmlzaWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNp
YmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWaXNpYmxlKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBCYWNrZmFjZVZpc2liaWxpdHk6OkhpZGRlbjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRkZW47CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUhpZGRlbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTY1Nyw3
ICs2NTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
QmFja2ZhY2VWaXNpYmlsaXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6CiAgICAgICAgIHJldHVybiBCYWNr
ZmFjZVZpc2liaWxpdHk6OlZpc2libGU7CiAgICAgY2FzZSBDU1NWYWx1ZUhpZGRlbjoKQEAgLTY3
NywxMyArNjc3LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShGaWxsQXR0YWNobWVudCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
RmlsbEF0dGFjaG1lbnQ6OlNjcm9sbEJhY2tncm91bmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU2Nyb2xsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVT
Y3JvbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZpbGxBdHRhY2htZW50OjpMb2NhbEJh
Y2tncm91bmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTG9jYWw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxvY2FsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBGaWxsQXR0YWNobWVudDo6Rml4ZWRCYWNrZ3JvdW5kOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUZpeGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVGaXhlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTY5Miw3ICs2OTIsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbEF0dGFj
aG1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlU2Nyb2xsOgogICAgICAgICByZXR1cm4gRmlsbEF0dGFjaG1lbnQ6OlNj
cm9sbEJhY2tncm91bmQ7CiAgICAgY2FzZSBDU1NWYWx1ZUxvY2FsOgpAQCAtNzEzLDE2ICs3MTMs
MTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZpbGxCb3ggZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEZpbGxCb3g6OkJvcmRlcjoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRmlsbEJveDo6UGFkZGluZzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVQYWRkaW5nQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQYWRkaW5n
Qm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWxsQm94OjpDb250ZW50OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRlbnRCb3g7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNvbnRlbnRCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEZpbGxCb3g6OlRleHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGV4dDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGV4dCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KQEAgLTczMSw3ICs3MzEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmlsbEJveCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCb3JkZXI6CiAgICAgY2FzZSBD
U1NWYWx1ZUJvcmRlckJveDoKICAgICAgICAgcmV0dXJuIEZpbGxCb3g6OkJvcmRlcjsKQEAgLTc1
OCwxNiArNzU4LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShGaWxsUmVwZWF0IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NT
VW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGaWxs
UmVwZWF0OjpSZXBlYXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVwZWF0
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSZXBlYXQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEZpbGxSZXBlYXQ6Ok5vUmVwZWF0OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vUmVwZWF0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb1JlcGVhdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmlsbFJlcGVhdDo6Um91
bmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm91bmQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJvdW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBGaWxsUmVwZWF0OjpTcGFjZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
cGFjZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2UpOwogICAgICAg
ICBicmVhazsKICAgICB9CiB9CkBAIC03NzYsNyArNzc2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZpbGxSZXBlYXQoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlUmVwZWF0Ogog
ICAgICAgICByZXR1cm4gRmlsbFJlcGVhdDo6UmVwZWF0OwogICAgIGNhc2UgQ1NTVmFsdWVOb1Jl
cGVhdDoKQEAgLTc5OSwxNiArNzk5LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCb3hQYWNrIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
Y2FzZSBCb3hQYWNrOjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
dGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3RhcnQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJveFBhY2s6OkNlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94UGFjazo6RW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hQYWNrOjpKdXN0
aWZ5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUp1c3RpZnkpOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC04MTcsNyArODE3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEJveFBhY2soKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CiAgICAgICAgIHJldHVybiBC
b3hQYWNrOjpTdGFydDsKICAgICBjYXNlIENTU1ZhbHVlRW5kOgpAQCAtODQwLDE5ICs4NDAsMTkg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEJveEFsaWdubWVudCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm94QWxpZ25tZW50OjpT
dHJldGNoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cmV0Y2g7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0cmV0Y2gpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJveEFsaWdubWVudDo6U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXJ0
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OkNlbnRlcjoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94QWxp
Z25tZW50OjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRW5kOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbmQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEJveEFsaWdubWVudDo6QmFzZWxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJh
c2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtODYxLDcgKzg2MSw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hBbGlnbm1lbnQo
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNl
IENTU1ZhbHVlU3RyZXRjaDoKICAgICAgICAgcmV0dXJuIEJveEFsaWdubWVudDo6U3RyZXRjaDsK
ICAgICBjYXNlIENTU1ZhbHVlU3RhcnQ6CkBAIC04ODcsMTAgKzg4NywxMCBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94RGVjb3JhdGlv
bkJyZWFrIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxV
RV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3hEZWNvcmF0aW9uQnJlYWs6OlNs
aWNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWNlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbGljZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQm94RGVjb3JhdGlvbkJyZWFrOjpDbG9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVDbG9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2xvbmUp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC04OTksNyArODk5LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJveERlY29yYXRpb25CcmVhaygp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVTbGljZToKICAgICAgICAgcmV0dXJuIEJveERlY29yYXRpb25CcmVhazo6U2xpY2U7
CiAgICAgY2FzZSBDU1NWYWx1ZUNsb25lOgpAQCAtOTE5LDE2ICs5MTksMTYgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVkZ2UgZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIEVkZ2U6OlRvcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRvcCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRWRnZTo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFZGdlOjpCb3R0b206Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90dG9tOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVCb3R0b20pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVkZ2U6
OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTkzNyw3ICs5MzcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRWRnZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVUb3A6CiAgICAgICAgIHJldHVybiBFZGdlOjpUb3A7
CiAgICAgY2FzZSBDU1NWYWx1ZVJpZ2h0OgpAQCAtOTYwLDEwICs5NjAsMTAgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEJveFNpemluZyBl
KQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwog
ICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm94U2l6aW5nOjpCb3JkZXJCb3g6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm9yZGVyQm94OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVCb3JkZXJCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJv
eFNpemluZzo6Q29udGVudEJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
b250ZW50Qm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250ZW50Qm94
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtOTcyLDcgKzk3Miw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hTaXppbmcoKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
Qm9yZGVyQm94OgogICAgICAgICByZXR1cm4gQm94U2l6aW5nOjpCb3JkZXJCb3g7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUNvbnRlbnRCb3g6CkBAIC05OTEsMTAgKzk5MSwxMCBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94RGlyZWN0aW9uIGUp
CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAg
ICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3hEaXJlY3Rpb246Ok5vcm1hbDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQm94RGlyZWN0
aW9uOjpSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJldmVyc2U7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJldmVyc2UpOwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CkBAIC0xMDAzLDcgKzEwMDMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQm94RGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAg
ICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoK
ICAgICAgICAgcmV0dXJuIEJveERpcmVjdGlvbjo6Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVS
ZXZlcnNlOgpAQCAtMTAyMiwxMCArMTAyMiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQm94TGluZXMgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIEJveExpbmVzOjpTaW5nbGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU2luZ2xlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTaW5nbGUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJveExpbmVzOjpNdWx0aXBsZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNdWx0aXBsZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTXVsdGlwbGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0x
MDM0LDcgKzEwMzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgQm94TGluZXMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlU2luZ2xlOgogICAgICAgICByZXR1cm4gQm94TGluZXM6
OlNpbmdsZTsKICAgICBjYXNlIENTU1ZhbHVlTXVsdGlwbGU6CkBAIC0xMDUzLDEwICsxMDUzLDEw
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1
ZShCb3hPcmllbnQgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJveE9yaWVudDo6SG9yaXpv
bnRhbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBCb3hPcmllbnQ6OlZlcnRpY2FsOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVZlcnRpY2FsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVWZXJ0aWNhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEwNjUsNyArMTA2NSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCb3hPcmll
bnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlSG9yaXpvbnRhbDoKICAgICBjYXNlIENTU1ZhbHVlSW5saW5lQXhpczoKICAg
ICAgICAgcmV0dXJuIEJveE9yaWVudDo6SG9yaXpvbnRhbDsKQEAgLTEwODYsMTYgKzEwODYsMTYg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KENhcHRpb25TaWRlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBDYXB0aW9uU2lkZTo6TGVm
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
YXB0aW9uU2lkZTo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmln
aHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDYXB0aW9uU2lkZTo6VG9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVRvcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVG9w
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYXB0aW9uU2lkZTo6Qm90dG9tOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdHRvbTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQm90dG9tKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTEw
NCw3ICsxMTA0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIENhcHRpb25TaWRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CiAgICAgICAgIHJldHVybiBDYXB0aW9uU2lk
ZTo6TGVmdDsKICAgICBjYXNlIENTU1ZhbHVlUmlnaHQ6CkBAIC0xMTI3LDIyICsxMTI3LDIyIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShD
bGVhciBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQ2xlYXI6Ok5vbmU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xlYXI6OkxlZnQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xlYXI6
OlJpZ2h0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ2xlYXI6OklubGluZVN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUlubGluZVN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxp
bmVTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2xlYXI6OklubGluZUVuZDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVFbmQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubGluZUVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ2xlYXI6OkJvdGg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm90aDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm90aCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KQEAgLTExNTEsNyArMTE1MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDbGVhcigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1
cm4gQ2xlYXI6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CkBAIC0xMTc4LDExMiArMTE3
OCwxMTIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEN1cnNvclR5cGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEN1cnNvclR5cGU6
OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ3Vyc29yVHlwZTo6RGVmYXVsdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVEZWZhdWx0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEZWZhdWx0KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpOb25lOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkNvbnRl
eHRNZW51OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRleHRNZW51Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250ZXh0TWVudSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6SGVscDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVIZWxwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVI
ZWxwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpQb2ludGVyOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBvaW50ZXI7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVBvaW50ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1
cnNvclR5cGU6OlByb2dyZXNzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBy
b2dyZXNzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcm9ncmVzcyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6V2FpdDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXYWl0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVXYWl0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpDZWxsOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbGw7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNlbGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNv
clR5cGU6OkNyb3NzaGFpcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDcm9z
c2hhaXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNyb3NzaGFpcik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6VGV4dDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVUZXh0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpWZXJ0aWNh
bFRleHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxUZXh0Owor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJ0aWNhbFRleHQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkFsaWFzOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUFsaWFzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBbGlhcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q29weToKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb3B5OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVDb3B5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JU
eXBlOjpNb3ZlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1vdmU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU1vdmUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEN1cnNvclR5cGU6Ok5vRHJvcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVOb0Ryb3A7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vRHJvcCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Tm90QWxsb3dlZDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3RBbGxvd2VkOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3RBbGxvd2VkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDdXJzb3JUeXBlOjpHcmFiOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUdy
YWI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdyYWIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkdyYWJiaW5nOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUdyYWJiaW5nOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVHcmFiYmluZyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6RVJl
c2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFUmVzaXplOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpOUmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5SZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5SZXNp
emUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok5FUmVzaXplOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5lUmVzaXplOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOZVJlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q3Vyc29yVHlwZTo6TldSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
TndSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU53UmVzaXplKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpTUmVzaXplOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVNSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5
cGU6OlNFUmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlUmVzaXpl
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTZVJlc2l6ZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6U1dSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3dSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVN3UmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpX
UmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdSZXNpemU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdSZXNpemUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEN1cnNvclR5cGU6OkVXUmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUV3UmVzaXplOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVF
d1Jlc2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6TlNSZXNpemU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTnNSZXNpemU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5zUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDdXJzb3JUeXBlOjpORVNXUmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU5lc3dSZXNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5l
c3dSZXNpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6Ok5XU0VSZXNp
emU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTndzZVJlc2l6ZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTndzZVJlc2l6ZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q29sdW1uUmVzaXplOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUNvbFJlc2l6ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQ29sUmVzaXplKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDdXJzb3JUeXBlOjpS
b3dSZXNpemU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUm93UmVzaXplOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSb3dSZXNpemUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEN1cnNvclR5cGU6OkFsbFNjcm9sbDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBbGxTY3JvbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUFsbFNjcm9sbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVHlwZTo6
Wm9vbUluOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVpvb21JbjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlWm9vbUluKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDdXJzb3JUeXBlOjpab29tT3V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVpvb21PdXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVpvb21P
dXQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xMjkxLDcgKzEyOTEsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ3Vyc29y
VHlwZSBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1
cnNvclR5cGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZUNvcHk6CiAgICAgICAgIHJldHVybiBDdXJzb3JUeXBlOjpDb3B5Owog
ICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRHcmFiOgpAQCAtMTMwNSw3ICsxMzA1LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNvclR5cGUoKSBjb25z
dAogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gQ3Vyc29yVHlwZTo6Tm9u
ZTsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q3Vyc29yVHlwZT4o
bV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVBdXRvKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEN1cnNvclR5cGU+KHZhbHVlSURJbnRlcm5hbCgpIC0gQ1NTVmFsdWVBdXRvKTsKICAgICB9
CiB9CiAKQEAgLTEzMTYsMTAgKzEzMTYsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEN1cnNvclZpc2liaWxpdHkgZSkKICAgICBzZXRQ
cmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2gg
KGUpIHsKICAgICBjYXNlIEN1cnNvclZpc2liaWxpdHk6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3Vyc29yVmlzaWJpbGl0eTo6QXV0
b0hpZGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0b0hpZGU7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG9IaWRlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQpAQCAtMTMyOCw5ICsxMzI4LDkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEN1cnNvclZpc2liaWxpdHkoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlEID09IENTU1ZhbHVl
QXV0bykKKyAgICBpZiAodmFsdWVJREludGVybmFsKCkgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAg
ICByZXR1cm4gQ3Vyc29yVmlzaWJpbGl0eTo6QXV0bzsKLSAgICBpZiAobV92YWx1ZS52YWx1ZUlE
ID09IENTU1ZhbHVlQXV0b0hpZGUpCisgICAgaWYgKHZhbHVlSURJbnRlcm5hbCgpID09IENTU1Zh
bHVlQXV0b0hpZGUpCiAgICAgICAgIHJldHVybiBDdXJzb3JWaXNpYmlsaXR5OjpBdXRvSGlkZTsK
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTM0NCw3MyArMTM0NCw3MyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRGlzcGxh
eVR5cGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbmxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERp
c3BsYXlUeXBlOjpCbG9jazoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCbG9j
azsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmxvY2spOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpMaXN0SXRlbToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVMaXN0SXRlbTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTGlzdEl0ZW0pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpJ
bmxpbmVCbG9jazoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVCbG9j
azsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lQmxvY2spOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpUYWJsZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlVGFibGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxp
bmVUYWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbmxpbmVUYWJsZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW5saW5lVGFibGUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpUYWJsZVJvd0dyb3VwOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlUm93R3JvdXA7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZVRhYmxlUm93R3JvdXApOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIERpc3BsYXlUeXBlOjpUYWJsZUhlYWRlckdyb3VwOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVRhYmxlSGVhZGVyR3JvdXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRhYmxlSGVhZGVyR3JvdXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERp
c3BsYXlUeXBlOjpUYWJsZUZvb3Rlckdyb3VwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVRhYmxlRm9vdGVyR3JvdXA7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVRhYmxlRm9vdGVyR3JvdXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlU
eXBlOjpUYWJsZVJvdzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZVJv
dzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGFibGVSb3cpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbkdyb3VwOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRhYmxlQ29sdW1uR3JvdXA7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRhYmxlQ29sdW1uR3JvdXApOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVUYWJsZUNvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlVGFibGVDb2x1bW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlU
eXBlOjpUYWJsZUNlbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFibGVD
ZWxsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJsZUNlbGwpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpUYWJsZUNhcHRpb246Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGFibGVDYXB0aW9uOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVUYWJsZUNhcHRpb24pOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIERpc3BsYXlUeXBlOjpCb3g6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
V2Via2l0Qm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRCb3gp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVCb3g6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0SW5saW5lQm94OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXZWJraXRJbmxpbmVCb3gpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpGbGV4OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUZsZXg7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsZXgp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVGbGV4OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUZsZXg7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubGluZUZsZXgpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIERpc3BsYXlUeXBlOjpHcmlkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUdyaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUdyaWQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVHcmlkOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUdyaWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUlubGluZUdyaWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3Bs
YXlUeXBlOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIERpc3BsYXlUeXBlOjpDb250ZW50czoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb250ZW50czsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q29udGVudHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERpc3BsYXlUeXBlOjpGbG93Um9v
dDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbG93Um9vdDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxvd1Jvb3QpOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC0xNDE5LDEwICsxNDE5LDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBEaXNwbGF5VHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKIAotICAgIGlmIChtX3ZhbHVlLnZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lKQor
ICAgIGlmICh2YWx1ZUlESW50ZXJuYWwoKSA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgIHJldHVy
biBEaXNwbGF5VHlwZTo6Tm9uZTsKIAotICAgIERpc3BsYXlUeXBlIGRpc3BsYXkgPSBzdGF0aWNf
Y2FzdDxEaXNwbGF5VHlwZT4obV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVJbmxpbmUpOworICAg
IERpc3BsYXlUeXBlIGRpc3BsYXkgPSBzdGF0aWNfY2FzdDxEaXNwbGF5VHlwZT4odmFsdWVJRElu
dGVybmFsKCkgLSBDU1NWYWx1ZUlubGluZSk7CiAgICAgQVNTRVJUKGRpc3BsYXkgPj0gRGlzcGxh
eVR5cGU6OklubGluZSAmJiBkaXNwbGF5IDw9IERpc3BsYXlUeXBlOjpOb25lKTsKICAgICByZXR1
cm4gZGlzcGxheTsKIH0KQEAgLTE0MzMsMTAgKzE0MzMsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVtcHR5Q2VsbCBlKQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoZSkgewogICAgIGNhc2UgRW1wdHlDZWxsOjpTaG93OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVNob3c7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNo
b3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVtcHR5Q2VsbDo6SGlkZToKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIaWRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVIaWRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTQ0NSw3ICsx
NDQ1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVt
cHR5Q2VsbCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVTaG93OgogICAgICAgICByZXR1cm4gRW1wdHlDZWxsOjpTaG93Owog
ICAgIGNhc2UgQ1NTVmFsdWVIaWRlOgpAQCAtMTQ2NCwxNiArMTQ2NCwxNiBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRmxleERpcmVjdGlv
biBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgRmxleERpcmVjdGlvbjo6Um93OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdzsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlUm93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbGV4RGlyZWN0aW9u
OjpSb3dSZXZlcnNlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvd1JldmVy
c2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJvd1JldmVyc2UpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZsZXhEaXJlY3Rpb246OkNvbHVtbjoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2x1bW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUNvbHVtbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRmxleERpcmVjdGlv
bjo6Q29sdW1uUmV2ZXJzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb2x1
bW5SZXZlcnNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2x1bW5SZXZl
cnNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTQ4Miw3ICsxNDgyLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZsZXhEaXJlY3Rpb24o
KSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFs
dWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNl
IENTU1ZhbHVlUm93OgogICAgICAgICByZXR1cm4gRmxleERpcmVjdGlvbjo6Um93OwogICAgIGNh
c2UgQ1NTVmFsdWVSb3dSZXZlcnNlOgpAQCAtMTUwNSwyMiArMTUwNSwyMiBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQWxpZ25Db250ZW50
IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7
CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBBbGlnbkNvbnRlbnQ6OkZsZXhTdGFydDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4U3RhcnQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsZXhTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQWxpZ25Db250ZW50OjpGbGV4RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUZsZXhFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZsZXhFbmQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWduQ29udGVudDo6Q2VudGVyOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBbGlnbkNv
bnRlbnQ6OlNwYWNlQmV0d2VlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
cGFjZUJldHdlZW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNwYWNlQmV0
d2Vlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWxpZ25Db250ZW50OjpTcGFjZUFyb3Vu
ZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUFyb3VuZDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2VBcm91bmQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEFsaWduQ29udGVudDo6U3RyZXRjaDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTdHJldGNoOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVTdHJldGNoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTUyOSw3ICsxNTI5LDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEFsaWduQ29u
dGVudCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVGbGV4U3RhcnQ6CiAgICAgICAgIHJldHVybiBBbGlnbkNvbnRlbnQ6OkZs
ZXhTdGFydDsKICAgICBjYXNlIENTU1ZhbHVlRmxleEVuZDoKQEAgLTE1NTYsMTMgKzE1NTYsMTMg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEZsZXhXcmFwIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBGbGV4V3JhcDo6Tm9XcmFwOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vd3JhcDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlTm93cmFwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBG
bGV4V3JhcDo6V3JhcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXcmFwOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXcmFwKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBGbGV4V3JhcDo6UmV2ZXJzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVXcmFwUmV2ZXJzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
V3JhcFJldmVyc2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNTcxLDcgKzE1NzEs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRmxleFdy
YXAoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlTm93cmFwOgogICAgICAgICByZXR1cm4gRmxleFdyYXA6Ok5vV3JhcDsKICAg
ICBjYXNlIENTU1ZhbHVlV3JhcDoKQEAgLTE1OTIsMTkgKzE1OTIsMTkgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZsb2F0IGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBGbG9hdDo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25l
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbG9hdDo6TGVmdDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVMZWZ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVMZWZ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbG9hdDo6UmlnaHQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbG9hdDo6
SW5saW5lU3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lU3Rh
cnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUlubGluZVN0YXJ0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBGbG9hdDo6SW5saW5lRW5kOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUlubGluZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlSW5saW5lRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTYxMyw3
ICsxNjEzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEZsb2F0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZUxlZnQ6CiAgICAgICAgIHJldHVybiBGbG9hdDo6TGVmdDsKICAgICBj
YXNlIENTU1ZhbHVlUmlnaHQ6CkBAIC0xNjM5LDIyICsxNjM5LDIyIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lQnJlYWsgZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIExpbmVCcmVhazo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWs6Okxvb3NlOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxvb3NlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVMb29zZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUJy
ZWFrOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIExpbmVCcmVhazo6U3RyaWN0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZVN0cmljdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Ry
aWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaW5lQnJlYWs6OkFmdGVyV2hpdGVTcGFj
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBZnRlcldoaXRlU3BhY2U7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFmdGVyV2hpdGVTcGFjZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUJyZWFrOjpBbnl3aGVyZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbnl3aGVyZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQW55d2hlcmUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xNjYzLDcg
KzE2NjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
T3B0aW9uU2V0PEhhbmdpbmdQdW5jdHVhdGlvbj4oKSBjbwogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7CiAgICAgCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2gg
KHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJl
dHVybiBPcHRpb25TZXQ8SGFuZ2luZ1B1bmN0dWF0aW9uPiB7IH07CiAgICAgY2FzZSBDU1NWYWx1
ZUZpcnN0OgpAQCAtMTY4Niw3ICsxNjg2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVCcmVhaygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1
cm4gTGluZUJyZWFrOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVMb29zZToKQEAgLTE3MTMsMTAg
KzE3MTMsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKExpc3RTdHlsZVBvc2l0aW9uIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUo
Q1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBM
aXN0U3R5bGVQb3NpdGlvbjo6T3V0c2lkZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVPdXRzaWRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPdXRzaWRl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMaXN0U3R5bGVQb3NpdGlvbjo6SW5zaWRlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUluc2lkZTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlSW5zaWRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMTcyNSw3ICsxNzI1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIExpc3RTdHlsZVBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU91dHNpZGU6CiAgICAgICAgIHJl
dHVybiBMaXN0U3R5bGVQb3NpdGlvbjo6T3V0c2lkZTsKICAgICBjYXNlIENTU1ZhbHVlSW5zaWRl
OgpAQCAtMTc1NSwxOCArMTc1NSwxOCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGlzdFN0eWxlVHlwZSBzdHlsZSkKICAgICA6IENTU1Zh
bHVlKFByaW1pdGl2ZUNsYXNzKQogewogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwotICAgIG1fdmFsdWUudmFsdWVJRCA9IHRvQ1NTVmFsdWVJRChz
dHlsZSk7CisgICAgc2V0VmFsdWVJREludGVybmFsKHRvQ1NTVmFsdWVJRChzdHlsZSkpOwogfQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGlzdFN0eWxl
VHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gTGlzdFN0eWxlVHlwZTo6Tm9uZTsK
ICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TGlzdFN0eWxlVHlwZT4o
bV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVEaXNjKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PExpc3RTdHlsZVR5cGU+KHZhbHVlSURJbnRlcm5hbCgpIC0gQ1NTVmFsdWVEaXNjKTsKICAg
ICB9CiB9CiAKQEAgLTE3NzYsMTMgKzE3NzYsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE1hcmdpbkNvbGxhcHNlIGUpCiAgICAgc2V0
UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNo
IChlKSB7CiAgICAgY2FzZSBNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUNvbGxhcHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXJnaW5Db2xs
YXBzZTo6U2VwYXJhdGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VwYXJh
dGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlcGFyYXRlKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBNYXJnaW5Db2xsYXBzZTo6RGlzY2FyZDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaXNjYXJkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVEaXNjYXJkKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTc5MSw3
ICsxNzkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IE1hcmdpbkNvbGxhcHNlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbGxhcHNlOgogICAgICAgICByZXR1cm4gTWFyZ2lu
Q29sbGFwc2U6OkNvbGxhcHNlOwogICAgIGNhc2UgQ1NTVmFsdWVTZXBhcmF0ZToKQEAgLTE4MTIs
MTYgKzE4MTIsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKE1hcnF1ZWVCZWhhdmlvciBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
TWFycXVlZUJlaGF2aW9yOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVCZWhhdmlvcjo6U2Nyb2xsOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjcm9sbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlU2Nyb2xsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXJxdWVlQmVoYXZp
b3I6OlNsaWRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNsaWRlOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbGlkZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgTWFycXVlZUJlaGF2aW9yOjpBbHRlcm5hdGU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQWx0ZXJuYXRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVBbHRlcm5hdGUpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xODMwLDcgKzE4
MzAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWFy
cXVlZUJlaGF2aW9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBNYXJxdWVlQmVoYXZp
b3I6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZVNjcm9sbDoKQEAgLTE4NTMsMjUgKzE4NTMsMjUg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KE1hcnF1ZWVEaXJlY3Rpb24gZGlyZWN0aW8KICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewogICAgIGNh
c2UgTWFycXVlZURpcmVjdGlvbjo6Rm9yd2FyZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVGb3J3YXJkczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRm9y
d2FyZHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OkJhY2t3
YXJkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhY2t3YXJkczsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmFja3dhcmRzKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1
dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OlVwOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVwOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVVcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTWFycXVlZURpcmVj
dGlvbjo6RG93bjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEb3duOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVEb3duKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpMZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxlZnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OlJpZ2h0OgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVSaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTE4
ODAsNyArMTg4MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBNYXJxdWVlRGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJ
bnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZvcndhcmRzOgogICAgICAgICByZXR1cm4g
TWFycXVlZURpcmVjdGlvbjo6Rm9yd2FyZDsKICAgICBjYXNlIENTU1ZhbHVlQmFja3dhcmRzOgpA
QCAtMTkxMSwxMCArMTkxMSwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTkJTUE1vZGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IE5CU1BNb2RlOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9y
bWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE5CU1BNb2RlOjpTcGFjZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTcGFjZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U3BhY2UpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0xOTIzLDcgKzE5MjMsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTkJTUE1vZGUoKSBj
b25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlU3BhY2U6CiAgICAgICAgIHJldHVybiBOQlNQTW9kZTo6U3BhY2U7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vcm1hbDoKQEAgLTE5NDIsMjUgKzE5NDIsMjUgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJmbG93IGUpCiAgICAgc2V0
UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNo
IChlKSB7CiAgICAgY2FzZSBPdmVyZmxvdzo6VmlzaWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVWaXNpYmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVWaXNpYmxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvdzo6SGlkZGVuOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpZGRlbjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlSGlkZGVuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBP
dmVyZmxvdzo6U2Nyb2xsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNjcm9s
bDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2Nyb2xsKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvdzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRv
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvdzo6UGFnZWRYOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdlYmtpdFBhZ2VkWDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlV2Via2l0UGFnZWRYKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBPdmVyZmxvdzo6UGFnZWRZOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdl
YmtpdFBhZ2VkWTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlV2Via2l0UGFn
ZWRZKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvdzo6Q2xpcDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDbGlwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVDbGlwKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMTk2OSw3ICsx
OTY5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE92
ZXJmbG93KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNo
IChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAg
ICAgY2FzZSBDU1NWYWx1ZVZpc2libGU6CiAgICAgICAgIHJldHVybiBPdmVyZmxvdzo6VmlzaWJs
ZTsKICAgICBjYXNlIENTU1ZhbHVlSGlkZGVuOgpAQCAtMTk5OSwxMyArMTk5OSwxMyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3ZlcnNj
cm9sbEJlaGF2aW9yIGJlaGF2aQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKICAgICBjYXNlIE92ZXJz
Y3JvbGxCZWhhdmlvcjo6Q29udGFpbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDb250YWluOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250YWluKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyc2Nyb2xsQmVoYXZpb3I6Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT3ZlcnNjcm9s
bEJlaGF2aW9yOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC0yMDE0LDcgKzIwMTQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3ZlcnNjcm9sbEJlaGF2aW9yKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUNvbnRh
aW46CiAgICAgICAgIHJldHVybiBPdmVyc2Nyb2xsQmVoYXZpb3I6OkNvbnRhaW47CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CkBAIC0yMDM1LDM0ICsyMDM1LDM0IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0JldHdlZW4gZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6QXV0bzoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVBdXRvKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdlZW46OkF2b2lk
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lkOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QnJlYWtCZXR3ZWVuOjpBdm9pZENvbHVtbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBdm9pZENvbHVtbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXZv
aWRDb2x1bW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0d2Vlbjo6QXZvaWRQ
YWdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lkUGFnZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXZvaWRQYWdlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCcmVha0JldHdlZW46OkNvbHVtbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVDb2x1bW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNv
bHVtbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpQYWdlOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBhZ2U7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVBhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJyZWFrQmV0
d2Vlbjo6TGVmdFBhZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGVmdDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQnJlYWtCZXR3ZWVuOjpSaWdodFBhZ2U6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCcmVha0JldHdlZW46OlJlY3RvUGFn
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZWN0bzsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVjdG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6VmVyc29QYWdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVZlcnNvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJzbyk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTIwNzEsNyArMjA3MSw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBCcmVha0JldHdlZW4oKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJ
RCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVl
QXV0bzoKICAgICAgICAgcmV0dXJuIEJyZWFrQmV0d2Vlbjo6QXV0bzsKICAgICBjYXNlIENTU1Zh
bHVlQXZvaWQ6CkBAIC0yMTA2LDE2ICsyMTA2LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShCcmVha0luc2lkZSBlKQogICAgIHNldFBy
aW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAo
ZSkgewogICAgIGNhc2UgQnJlYWtJbnNpZGU6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0
byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtJbnNpZGU6OkF2b2lkOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lkOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVBdm9pZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtJbnNp
ZGU6OkF2b2lkQ29sdW1uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF2b2lk
Q29sdW1uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdm9pZENvbHVtbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQnJlYWtJbnNpZGU6OkF2b2lkUGFnZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdm9pZFBhZ2U7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUF2b2lkUGFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTIxMjQsNyArMjEyNCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBCcmVha0luc2lkZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKICAgICAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFs
dWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJu
IEJyZWFrSW5zaWRlOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVBdm9pZDoKQEAgLTIxNDcsMTkg
KzIxNDcsMTkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKFBvc2l0aW9uVHlwZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgUG9zaXRp
b25UeXBlOjpTdGF0aWM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhdGlj
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGF0aWMpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFBvc2l0aW9uVHlwZTo6UmVsYXRpdmU6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlUmVsYXRpdmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZVJlbGF0aXZlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb3NpdGlvblR5cGU6
OkFic29sdXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFic29sdXRlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBYnNvbHV0ZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUG9zaXRpb25UeXBlOjpGaXhlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVGaXhlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Rml4ZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvc2l0aW9uVHlwZTo6U3RpY2t5Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0aWNreTsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU3RpY2t5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjE2OCw3ICsyMTY4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFBvc2l0aW9uVHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTdGF0aWM6CiAgICAgICAgIHJldHVybiBQ
b3NpdGlvblR5cGU6OlN0YXRpYzsKICAgICBjYXNlIENTU1ZhbHVlUmVsYXRpdmU6CkBAIC0yMTk0
LDE2ICsyMTk0LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShSZXNpemUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFJlc2l6ZTo6
Qm90aDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3RoOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3RoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBSZXNpemU6Okhvcml6b250YWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
SG9yaXpvbnRhbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSG9yaXpvbnRh
bCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmVzaXplOjpWZXJ0aWNhbDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlVmVydGljYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJlc2l6
ZTo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQpAQCAtMjIxMiw3ICsyMjEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIFJlc2l6ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVCb3RoOgogICAgICAgICByZXR1cm4gUmVz
aXplOjpCb3RoOwogICAgIGNhc2UgQ1NTVmFsdWVIb3Jpem9udGFsOgpAQCAtMjIzOCwxMCArMjIz
OCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoVGFibGVMYXlvdXRUeXBlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUYWJsZUxh
eW91dFR5cGU6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVGFibGVMYXlvdXRUeXBlOjpGaXhlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVGaXhlZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Rml4ZWQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMjUwLDcgKzIyNTAsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGFibGVMYXlvdXRU
eXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUZpeGVkOgogICAgICAgICByZXR1cm4gVGFibGVMYXlvdXRUeXBlOjpGaXhl
ZDsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKQEAgLTIyNjksMzEgKzIyNjksMzEgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRBbGln
bk1vZGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRBbGlnbk1vZGU6OlN0YXJ0Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4
dEFsaWduTW9kZTo6RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpMZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxlZnQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbk1vZGU6OlJpZ2h0OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWdu
TW9kZTo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNlbnRlcjsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpKdXN0aWZ5OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUp1c3RpZnkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbk1vZGU6Oldl
YktpdExlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0TGVmdDsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlV2Via2l0TGVmdCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0UmlnaHQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2Via2l0UmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVdlYmtpdFJpZ2h0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBU
ZXh0QWxpZ25Nb2RlOjpXZWJLaXRDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlV2Via2l0Q2VudGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVX
ZWJraXRDZW50ZXIpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yMzAyLDE0ICsyMzAy
LDE0IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0
QWxpZ25Nb2RlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dp
dGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7
CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEF1dG86IC8vIExlZ2FjeSAtd2Via2l0LWF1dG8uIEVx
aXV2YWxlbnQgdG8gc3RhcnQuCiAgICAgY2FzZSBDU1NWYWx1ZVN0YXJ0OgogICAgICAgICByZXR1
cm4gVGV4dEFsaWduTW9kZTo6U3RhcnQ7CiAgICAgY2FzZSBDU1NWYWx1ZUVuZDoKICAgICAgICAg
cmV0dXJuIFRleHRBbGlnbk1vZGU6OkVuZDsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8VGV4dEFsaWduTW9kZT4obV92YWx1ZS52YWx1ZUlEIC0gQ1NTVmFsdWVMZWZ0
KTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRBbGlnbk1vZGU+KHZhbHVlSURJbnRl
cm5hbCgpIC0gQ1NTVmFsdWVMZWZ0KTsKICAgICB9CiB9CiAKQEAgLTIzMjAsMjUgKzIzMjAsMjUg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KFRleHRBbGlnbkxhc3QgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6
OlN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0YXJ0OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGFydCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgVGV4dEFsaWduTGFzdDo6RW5kOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUVuZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRW5kKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0OjpMZWZ0OgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUxlZnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGlnbkxhc3Q6OlJpZ2h0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJpZ2h0OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVSaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VGV4dEFsaWduTGFzdDo6Q2VudGVyOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNlbnRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ2VudGVyKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0QWxpZ25MYXN0OjpKdXN0aWZ5OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUp1c3RpZnk7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUp1c3RpZnkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbGln
bkxhc3Q6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KQEAgLTIzNDcsNyArMjM0Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QWxpZ25MYXN0KCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0
Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAg
IHJldHVybiBUZXh0QWxpZ25MYXN0OjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVTdGFydDoKQEAg
LTIzNzYsMTYgKzIzNzYsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRKdXN0aWZ5IGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5
cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2Fz
ZSBUZXh0SnVzdGlmeTo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVB
dXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeTo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVO
b25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0SnVzdGlmeTo6SW50ZXJXb3JkOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludGVyV29yZDsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlSW50ZXJXb3JkKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0SnVzdGlmeTo6RGlzdHJpYnV0ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVEaXN0cmlidXRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVE
aXN0cmlidXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjM5NCw3ICsyMzk0LDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRKdXN0
aWZ5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBUZXh0SnVzdGlmeTo6QXV0bzsKICAg
ICBjYXNlIENTU1ZhbHVlTm9uZToKQEAgLTI0MTYsNyArMjQxNiw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8VGV4dERlY29yYXRpb24+
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3Zh
bHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2Fz
ZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBPcHRpb25TZXQ8VGV4dERlY29yYXRpb24+
IHsgfTsKICAgICBjYXNlIENTU1ZhbHVlVW5kZXJsaW5lOgpAQCAtMjQzOSw3ICsyNDM5LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0
aW9uU3R5bGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlU29saWQ6CiAgICAgICAgIHJldHVybiBUZXh0RGVjb3JhdGlvblN0
eWxlOjpTb2xpZDsKICAgICBjYXNlIENTU1ZhbHVlRG91YmxlOgpAQCAtMjQ2NCwxMyArMjQ2NCwx
MyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoVGV4dFVuZGVybGluZVBvc2l0aW9uIHBvcwogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAocG9zaXRpb24pIHsKICAgICBj
YXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRv
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVy
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVuZGVyOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVVbmRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VGV4dFVuZGVybGluZVBvc2l0aW9uOjpGcm9tRm9udDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVGcm9tRm9udDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
RnJvbUZvbnQpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTI0ODEsNyArMjQ4MSw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0VW5kZXJs
aW5lUG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQ
b3NpdGlvbjo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlVW5kZXI6CkBAIC0yNTAzLDE2ICsyNTAz
LDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShUZXh0U2VjdXJpdHkgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRTZWN1cml0
eTo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0U2VjdXJpdHk6OkRpc2M6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRGlzYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGlzYyk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpDaXJjbGU6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVDaXJjbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRTZWN1cml0eTo6
U3F1YXJlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNxdWFyZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3F1YXJlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtMjUyMSw3ICsyNTIxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRTZWN1cml0eSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
VmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICBy
ZXR1cm4gVGV4dFNlY3VyaXR5OjpOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVEaXNjOgpAQCAtMjU0
NCwxMyArMjU0NCwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rIGUpCiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgY2FzZSBUZXh0RGVjb3JhdGlvblNraXBJbms6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Tm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwSW5rOjpB
dXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFRleHREZWNvcmF0aW9uU2tpcEluazo6QWxsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUFsbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxsKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjU1OSw3ICsyNTU5LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHREZWNvcmF0aW9uU2tpcEluaygp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVGV4dERlY29yYXRpb25Ta2lwSW5rOjpOb25l
OwogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgpAQCAtMjU4MCwxNiArMjU4MCwxNiBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dFRyYW5z
Zm9ybSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDYXBpdGFsaXplOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDYXBpdGFsaXplKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpVcHBlcmNhc2U6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlVXBwZXJjYXNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVVcHBlcmNhc2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRUcmFuc2Zvcm06
Okxvd2VyY2FzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVMb3dlcmNhc2U7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxvd2VyY2FzZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dFRyYW5zZm9ybTo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMjU5OCw3ICsyNTk4LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRUcmFuc2Zv
cm0oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1f
dmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBj
YXNlIENTU1ZhbHVlQ2FwaXRhbGl6ZToKICAgICAgICAgcmV0dXJuIFRleHRUcmFuc2Zvcm06OkNh
cGl0YWxpemU7CiAgICAgY2FzZSBDU1NWYWx1ZVVwcGVyY2FzZToKQEAgLTI2MjEsMjIgKzI2MjEs
MjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVVbmljb2RlQmlkaSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVUJOb3JtYWw6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEVt
YmVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVtYmVkOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbWJlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgT3ZlcnJpZGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmlkaU92ZXJy
aWRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCaWRpT3ZlcnJpZGUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIElzb2xhdGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlSXNvbGF0ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
SXNvbGF0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXNvbGF0ZU92ZXJyaWRlOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUlzb2xhdGVPdmVycmlkZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSXNvbGF0ZU92ZXJyaWRlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQbGFpbnRleHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlUGxhaW50ZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbGFpbnRl
eHQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRVVuaWNvZGVCaWRpKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIFVCTm9ybWFsOwogICAgIGNhc2UgQ1NTVmFs
dWVFbWJlZDoKQEAgLTI2NzUsMTMgKzI2NzUsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFVzZXJEcmFnIGUpCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBVc2VyRHJhZzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBdXRvOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBVc2VyRHJhZzo6Tm9uZToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVc2VyRHJhZzo6RWxlbWVudDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbGVtZW50OworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbGVtZW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgYnJlYWs7CkBAIC0yNjkyLDcgKzI2OTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVXNlckRyYWcoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAg
ICAgICAgcmV0dXJuIFVzZXJEcmFnOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAt
MjcxMywxMyArMjcxMywxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoVXNlck1vZGlmeSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBl
KENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2Ug
VXNlck1vZGlmeTo6UmVhZE9ubHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
UmVhZE9ubHk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlYWRPbmx5KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVc2VyTW9kaWZ5OjpSZWFkV3JpdGU6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVhZFdyaXRlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVSZWFkV3JpdGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVz
ZXJNb2RpZnk6OlJlYWRXcml0ZVBsYWludGV4dE9ubHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KQEAgLTI3MjgsNyArMjcyOCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBVc2VyTW9kaWZ5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNW
YWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2gg
KHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVJlYWRPbmx5OgogICAgICAg
ICByZXR1cm4gVXNlck1vZGlmeTo6UmVhZE9ubHk7CiAgICAgY2FzZSBDU1NWYWx1ZVJlYWRXcml0
ZToKQEAgLTI3NDksMTMgKzI3NDksMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFVzZXJTZWxlY3QgZSkKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAg
ICBjYXNlIFVzZXJTZWxlY3Q6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVXNlclNlbGVjdDo6VGV4dDoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVUZXh0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVUZXh0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVc2VyU2VsZWN0OjpBbGw6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWxsOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVBbGwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yNzY0LDcg
KzI3NjQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
VXNlclNlbGVjdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVXNlclNlbGVjdDo6VGV4
dDsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKQEAgLTI3ODcsMzQgKzI3ODcsMzQgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFZlcnRpY2Fs
QWxpZ24gYSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVF
X0lEKTsKICAgICBzd2l0Y2ggKGEpIHsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUb3A7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxB
bGlnbjo6Qm90dG9tOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdHRvbTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm90dG9tKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpNaWRkbGU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVNaWRkbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJhc2Vs
aW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJhc2VsaW5lOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVmVydGljYWxBbGlnbjo6VGV4dEJvdHRvbToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVUZXh0Qm90dG9tOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVUZXh0Qm90dG9tKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFsaWdu
OjpUZXh0VG9wOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRUb3A7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRleHRUb3ApOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlN1YjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTdWI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN1Yik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVmVydGljYWxBbGlnbjo6U3VwZXI6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VwZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVN1cGVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWZXJ0aWNhbEFs
aWduOjpCYXNlbGluZU1pZGRsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVX
ZWJraXRCYXNlbGluZU1pZGRsZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
V2Via2l0QmFzZWxpbmVNaWRkbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlcnRpY2Fs
QWxpZ246Okxlbmd0aDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbnZhbGlk
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnZhbGlkKTsKICAgICB9CiB9
CiAKQEAgLTI4MjIsNyArMjgyMiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBWZXJ0aWNhbEFsaWduKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAgcmV0dXJu
IFZlcnRpY2FsQWxpZ246OlRvcDsKICAgICBjYXNlIENTU1ZhbHVlQm90dG9tOgpAQCAtMjg1NSwx
MyArMjg1NSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoVmlzaWJpbGl0eSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVmlzaWJp
bGl0eTo6VmlzaWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaXNpYmxl
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWaXNpYmxlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWaXNpYmlsaXR5OjpIaWRkZW46Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSGlkZGVuOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVIaWRkZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZpc2liaWxpdHk6OkNvbGxhcHNl
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbGxhcHNlOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xsYXBzZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTI4NzAsNyArMjg3MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBWaXNpYmlsaXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1
ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZh
bHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUhpZGRlbjoKICAgICAgICAgcmV0
dXJuIFZpc2liaWxpdHk6OkhpZGRlbjsKICAgICBjYXNlIENTU1ZhbHVlVmlzaWJsZToKQEAgLTI4
OTEsMjUgKzI4OTEsMjUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKFdoaXRlU3BhY2UgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFdo
aXRlU3BhY2U6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3Jt
YWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2hpdGVTcGFjZTo6UHJlOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVByZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHJl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGl0ZVNwYWNlOjpQcmVXcmFwOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVByZVdyYXA7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVByZVdyYXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoaXRl
U3BhY2U6OlByZUxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJlTGlu
ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUHJlTGluZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2hpdGVTcGFjZTo6Tm9XcmFwOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZU5vd3JhcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlTm93cmFwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGl0ZVNwYWNlOjpLSFRNTE5v
V3JhcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXZWJraXROb3dyYXA7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVdlYmtpdE5vd3JhcCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2hpdGVTcGFjZTo6QnJlYWtTcGFjZXM6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQnJlYWtTcGFjZXM7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUJyZWFrU3BhY2VzKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
MjkxOCw3ICsyOTE4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFdoaXRlU3BhY2UoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Tm93cmFwOgogICAgICAgICByZXR1cm4g
V2hpdGVTcGFjZTo6S0hUTUxOb1dyYXA7CiAgICAgY2FzZSBDU1NWYWx1ZU5vd3JhcDoKQEAgLTI5
NDcsMTYgKzI5NDcsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKFdvcmRCcmVhayBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgV29y
ZEJyZWFrOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFs
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdvcmRCcmVhazo6QnJlYWtBbGw6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlQnJlYWtBbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUJyZWFrQWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXb3JkQnJlYWs6OktlZXBB
bGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlS2VlcEFsbDsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlS2VlcEFsbCk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV29yZEJyZWFrOjpCcmVha1dvcmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQnJlYWtXb3JkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCcmVh
a1dvcmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0yOTY1LDcgKzI5NjUsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV29yZEJyZWFrKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVl
LnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBD
U1NWYWx1ZUJyZWFrQWxsOgogICAgICAgICByZXR1cm4gV29yZEJyZWFrOjpCcmVha0FsbDsKICAg
ICBjYXNlIENTU1ZhbHVlS2VlcEFsbDoKQEAgLTI5ODgsMTMgKzI5ODgsMTMgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKE92ZXJmbG93V3Jh
cCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgT3ZlcmZsb3dXcmFwOjpOb3JtYWw6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE92ZXJm
bG93V3JhcDo6QW55d2hlcmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQW55
d2hlcmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFueXdoZXJlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBPdmVyZmxvd1dyYXA6OkJyZWFrV29yZDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCcmVha1dvcmQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUJyZWFrV29yZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTMwMDMsNyArMzAwMyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBPdmVyZmxvd1dyYXAoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQnJlYWtXb3JkOgogICAgICAgICByZXR1cm4g
T3ZlcmZsb3dXcmFwOjpCcmVha1dvcmQ7CiAgICAgY2FzZSBDU1NWYWx1ZUFueXdoZXJlOgpAQCAt
MzAyNCwxMCArMzAyNCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dERpcmVjdGlvbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgVGV4dERpcmVjdGlvbjo6TFRSOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUx0cjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTHRyKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0RGlyZWN0aW9uOjpSVEw6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlUnRsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVS
dGwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zMDM2LDcgKzMwMzYsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dERpcmVjdGlvbigp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2Ug
Q1NTVmFsdWVMdHI6CiAgICAgICAgIHJldHVybiBUZXh0RGlyZWN0aW9uOjpMVFI7CiAgICAgY2Fz
ZSBDU1NWYWx1ZVJ0bDoKQEAgLTMwNTUsMTYgKzMwNTUsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFdyaXRpbmdNb2RlIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpvbnRhbFRiOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVIb3Jpem9udGFsVGIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVWZXJ0aWNhbFJsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWZXJ0
aWNhbFJsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXcml0aW5nTW9kZTo6TGVmdFRvUmln
aHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWxMcjsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVmVydGljYWxMcik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWxCdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlSG9yaXpvbnRhbEJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzA3
Myw3ICszMDczLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJh
dG9yIFdyaXRpbmdNb2RlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUhvcml6b250YWxUYjoKICAgICBjYXNlIENTU1ZhbHVl
THI6CiAgICAgY2FzZSBDU1NWYWx1ZUxyVGI6CkBAIC0zMTAyLDEwICszMTAyLDEwIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0Q29t
YmluZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dENvbWJpbmU6Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dENvbWJp
bmU6Okhvcml6b250YWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSG9yaXpv
bnRhbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSG9yaXpvbnRhbCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMxMTQsNyArMzExNCw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0Q29tYmluZSgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVO
b25lOgogICAgICAgICByZXR1cm4gVGV4dENvbWJpbmU6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1
ZUhvcml6b250YWw6CkBAIC0zMTMzLDEzICszMTMzLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShSdWJ5UG9zaXRpb24gcG9zaXRpb24p
CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAg
ICAgc3dpdGNoIChwb3NpdGlvbikgewogICAgIGNhc2UgUnVieVBvc2l0aW9uOjpCZWZvcmU6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmVmb3JlOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVCZWZvcmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFJ1
YnlQb3NpdGlvbjo6QWZ0ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWZ0
ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFmdGVyKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBSdWJ5UG9zaXRpb246OkludGVyQ2hhcmFjdGVyOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUludGVyQ2hhcmFjdGVyOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVJbnRlckNoYXJhY3Rlcik7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTMxNDgsNyArMzE0OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBSdWJ5UG9zaXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQmVmb3JlOgogICAgICAgICBy
ZXR1cm4gUnVieVBvc2l0aW9uOjpCZWZvcmU7CiAgICAgY2FzZSBDU1NWYWx1ZUFmdGVyOgpAQCAt
MzE2OSwxMCArMzE2OSwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dE92ZXJmbG93IG92ZXJmbG93KQogICAgIHNldFByaW1pdGl2
ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAob3ZlcmZs
b3cpIHsKICAgICBjYXNlIFRleHRPdmVyZmxvdzo6Q2xpcDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVDbGlwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
bGlwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3ZlcmZsb3c6OkVsbGlwc2lzOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVsbGlwc2lzOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVFbGxpcHNpcyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTMxODEsNyArMzE4MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBUZXh0T3ZlcmZsb3coKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFs
dWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQ2xpcDoKICAgICAgICAgcmV0dXJu
IFRleHRPdmVyZmxvdzo6Q2xpcDsKICAgICBjYXNlIENTU1ZhbHVlRWxsaXBzaXM6CkBAIC0zMjAw
LDEwICszMjAwLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShUZXh0RW1waGFzaXNGaWxsIGZpbGwpCiAgICAgc2V0UHJpbWl0aXZlVW5p
dFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChmaWxsKSB7CiAg
ICAgY2FzZSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlRmlsbGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVG
aWxsZWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc0ZpbGw6Ok9wZW46
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3BlbjsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlT3Blbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTMyMTIsNyArMzIxMiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBUZXh0RW1waGFzaXNGaWxsKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlE
KCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVl
SURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUZpbGxlZDoKICAgICAgICAgcmV0dXJu
IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZDsKICAgICBjYXNlIENTU1ZhbHVlT3BlbjoKQEAgLTMy
MzEsMjUgKzMyMzEsMjUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKFRleHRFbXBoYXNpc01hcmsgbWFyaykKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKG1hcmspIHsK
ICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkRvdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVEb3Q7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURvdCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6Q2lyY2xlOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNpcmNsZTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlQ2lyY2xlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrOjpEb3VibGVDaXJjbGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlRG91YmxlQ2lyY2xlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVE
b3VibGVDaXJjbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6
OlRyaWFuZ2xlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRyaWFuZ2xlOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUcmlhbmdsZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6U2VzYW1lOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVNlc2FtZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlU2VzYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJr
OjpOb25lOgogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6QXV0bzoKICAgICBjYXNlIFRleHRF
bXBoYXNpc01hcms6OkN1c3RvbToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTMyNTgs
NyArMzI1OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBUZXh0RW1waGFzaXNNYXJrKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwog
Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRl
cm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vbmU6CiAgICAgICAgIHJldHVybiBUZXh0RW1w
aGFzaXNNYXJrOjpOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVEb3Q6CkBAIC0zMjg1LDEzICszMjg1
LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVW
YWx1ZShUZXh0T3JpZW50YXRpb24gZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFRleHRPcmll
bnRhdGlvbjo6U2lkZXdheXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2lk
ZXdheXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNpZGV3YXlzKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBUZXh0T3JpZW50YXRpb246Ok1peGVkOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1peGVkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNaXhlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVGV4dE9yaWVudGF0
aW9uOjpVcHJpZ2h0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVwcmlnaHQ7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVwcmlnaHQpOwogICAgICAgICBi
cmVhazsKICAgICB9CiB9CkBAIC0zMzAwLDcgKzMzMDAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dE9yaWVudGF0aW9uKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsK
KyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNpZGV3
YXlzOgogICAgICAgICByZXR1cm4gVGV4dE9yaWVudGF0aW9uOjpTaWRld2F5czsKICAgICBjYXNl
IENTU1ZhbHVlU2lkZXdheXNSaWdodDoKQEAgLTMzMjUsMzcgKzMzMjUsMzcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFBvaW50ZXJFdmVu
dHMgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lE
KTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6Ok5vbmU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2
ZW50czo6U3Ryb2tlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN0cm9rZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Ryb2tlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpGaWxsOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUZpbGw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUZp
bGwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlBhaW50ZWQ6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGFpbnRlZDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUGFpbnRlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UG9pbnRlckV2ZW50czo6VmlzaWJsZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVWaXNpYmxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWaXNpYmxlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpWaXNpYmxlU3Ryb2tlOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGVTdHJva2U7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZpc2libGVTdHJva2UpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlZpc2libGVGaWxsOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZVZpc2libGVGaWxsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVWaXNpYmxlRmlsbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRl
ckV2ZW50czo6VmlzaWJsZVBhaW50ZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlVmlzaWJsZVBhaW50ZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZp
c2libGVQYWludGVkKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpC
b3VuZGluZ0JveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3VuZGluZ0Jv
eDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQm91bmRpbmdCb3gpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBvaW50ZXJFdmVudHM6OkF1dG86Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUG9pbnRlckV2ZW50czo6QWxs
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsbDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlQWxsKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAt
MzM2NCw3ICszMzY0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIFBvaW50ZXJFdmVudHMoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7
CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJRElu
dGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQWxsOgogICAgICAgICByZXR1cm4gUG9pbnRl
ckV2ZW50czo6QWxsOwogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgpAQCAtMzQwMSwyNSArMzQwMSwy
NSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoS2VybmluZyBrZXJuaW5nKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoa2VybmluZykgewogICAgIGNhc2UgS2Vybmlu
Zzo6QXV0bzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgS2VybmluZzo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgS2VybmluZzo6Tm9TaGlmdDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVBdXRvKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEtlcm5pbmcoKSBjb25zdAogewogICAgIEFTU0VSVChpc1Zh
bHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAo
dmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0
dXJuIEtlcm5pbmc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKQEAgLTM0NDAsMTkg
KzM0NDAsMTkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKE9iamVjdEZpdCBmaXQpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5p
dFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChmaXQpIHsKICAgICBjYXNlIE9iamVj
dEZpdDo6RmlsbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGaWxsOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGaWxsKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBPYmplY3RGaXQ6OkNvbnRhaW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQ29udGFpbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29udGFp
bik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT2JqZWN0Rml0OjpDb3ZlcjoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDb3ZlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQ292ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9iamVjdEZpdDo6
Tm9uZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBPYmplY3RGaXQ6OlNjYWxlRG93bjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTY2FsZURvd247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNjYWxlRG93
bik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM0NjEsNyArMzQ2MSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPYmplY3RGaXQoKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlRmlsbDoKICAgICAgICAgcmV0dXJuIE9iamVjdEZpdDo6RmlsbDsKICAgICBjYXNlIENTU1Zh
bHVlQ29udGFpbjoKQEAgLTM0ODQsMjggKzM0ODQsMjggQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRTbW9vdGhpbmdNb2RlIHNtb290
aGkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKHNtb290aGluZykgewogICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6OkF1
dG9TbW9vdGhpbmc6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIEZvbnRTbW9vdGhpbmdNb2RlOjpOb1Ntb290aGluZzoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NT
VmFsdWVOb25lKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6
OkFudGlhbGlhc2VkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFudGlhbGlh
c2VkOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBbnRpYWxpYXNlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEZvbnRTbW9vdGhpbmdNb2RlOjpTdWJwaXhlbEFudGlh
bGlhc2VkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN1YnBpeGVsQW50aWFs
aWFzZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN1YnBpeGVsQW50aWFs
aWFzZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBdXRvOworICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRm9udFNtb290aGluZ01vZGUoKSBjb25zdAogewogICAgIEFTU0VS
VChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3
aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAg
ICAgcmV0dXJuIEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3RoaW5nOwogICAgIGNhc2UgQ1NT
VmFsdWVOb25lOgpAQCAtMzUyOCwyMiArMzUyOCwyMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFNtYWxsQ2FwcyBzbWFsbENhcHMp
CiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAg
ICAgc3dpdGNoIChzbWFsbENhcHMpIHsKICAgICBjYXNlIEZvbnRTbWFsbENhcHM6Ok9mZjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEZv
bnRTbWFsbENhcHM6Ok9uOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNtYWxs
Q2FwczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU21hbGxDYXBzKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vcm1hbCk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGVyYXRvciBGb250U21hbGxDYXBzKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlE
KCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVl
SURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNtYWxsQ2FwczoKICAgICAgICAgcmV0
dXJuIEZvbnRTbWFsbENhcHM6Ok9uOwogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CkBAIC0zNTYx
LDE2ICszNTYxLDE2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShUZXh0UmVuZGVyaW5nTW9kZSBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNh
c2UgVGV4dFJlbmRlcmluZ01vZGU6OkF1dG9UZXh0UmVuZGVyaW5nOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRSZW5kZXJpbmdNb2RlOjpP
cHRpbWl6ZVNwZWVkOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXpl
U3BlZWQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGltaXplU3BlZWQp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRSZW5kZXJpbmdNb2RlOjpPcHRpbWl6ZUxl
Z2liaWxpdHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVMZWdp
YmlsaXR5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRpbWl6ZUxlZ2li
aWxpdHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRSZW5kZXJpbmdNb2RlOjpHZW9t
ZXRyaWNQcmVjaXNpb246Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlR2VvbWV0
cmljUHJlY2lzaW9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVHZW9tZXRy
aWNQcmVjaXNpb24pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zNTc5LDcgKzM1Nzks
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgVGV4dFJl
bmRlcmluZ01vZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBz
d2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkp
IHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFRleHRSZW5kZXJpbmdN
b2RlOjpBdXRvVGV4dFJlbmRlcmluZzsKICAgICBjYXNlIENTU1ZhbHVlT3B0aW1pemVTcGVlZDoK
QEAgLTM2MDIsMTMgKzM2MDIsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEh5cGhlbnMgaHlwaGVucykKICAgICBzZXRQcmltaXRpdmVV
bml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGh5cGhlbnMp
IHsKICAgICBjYXNlIEh5cGhlbnM6Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgSHlwaGVuczo6TWFudWFsOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZU1hbnVhbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTWFudWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIeXBoZW5zOjpBdXRvOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0z
NjE3LDcgKzM2MTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgSHlwaGVucygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAg
IHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwo
KSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gSHlwaGVuczo6Tm9u
ZTsKICAgICBjYXNlIENTU1ZhbHVlTWFudWFsOgpAQCAtMzYzOCwxMyArMzYzOCwxMyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGluZVNu
YXAgZ3JpZFNuYXApCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19W
QUxVRV9JRCk7CiAgICAgc3dpdGNoIChncmlkU25hcCkgewogICAgIGNhc2UgTGluZVNuYXA6Ok5v
bmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
TGluZVNuYXA6OkJhc2VsaW5lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJh
c2VsaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCYXNlbGluZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZVNuYXA6OkNvbnRhaW46Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ29udGFpbjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQ29udGFpbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTM2NTMsNyAr
MzY1Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBM
aW5lU25hcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gTGluZVNuYXA6Ok5vbmU7CiAg
ICAgY2FzZSBDU1NWYWx1ZUJhc2VsaW5lOgpAQCAtMzY3NCwxMCArMzY3NCwxMCBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoTGluZUFsaWdu
IGxpbmVBbGlnbikKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZB
TFVFX0lEKTsKICAgICBzd2l0Y2ggKGxpbmVBbGlnbikgewogICAgIGNhc2UgTGluZUFsaWduOjpO
b25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IExpbmVBbGlnbjo6RWRnZXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRWRn
ZXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUVkZ2VzKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQpAQCAtMzY4Niw3ICszNjg2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVBbGlnbigpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAg
c3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAg
ICAgICByZXR1cm4gTGluZUFsaWduOjpOb25lOwogICAgIGNhc2UgQ1NTVmFsdWVFZGdlczoKQEAg
LTM3MDUsMTkgKzM3MDUsMTkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKFNwZWFrQXMgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIFNw
ZWFrQXM6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU3BlYWtBczo6U3BlbGxPdXQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlU3BlbGxPdXQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZVNwZWxsT3V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTcGVha0FzOjpEaWdpdHM6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGlnaXRzOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVEaWdpdHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNw
ZWFrQXM6OkxpdGVyYWxQdW5jdHVhdGlvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVMaXRlcmFsUHVuY3R1YXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUxpdGVyYWxQdW5jdHVhdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3BlYWtB
czo6Tm9QdW5jdHVhdGlvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb1B1
bmN0dWF0aW9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb1B1bmN0dWF0
aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtMzcyNiw3ICszNzI2LDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE9yZGVyKCkgY29uc3QK
IHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1
ZUxvZ2ljYWw6CiAgICAgICAgIHJldHVybiBPcmRlcjo6TG9naWNhbDsKICAgICBjYXNlIENTU1Zh
bHVlVmlzdWFsOgpAQCAtMzc0NSwxMCArMzc0NSwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoT3JkZXIgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIE9yZGVyOjpMb2dpY2FsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUxvZ2ljYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxvZ2ljYWwp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE9yZGVyOjpWaXN1YWw6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlVmlzdWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVWaXN1YWwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zNzU3LDcgKzM3
NTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgT3B0
aW9uU2V0PFNwZWFrQXM+KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIE9wdGlvblNl
dDxTcGVha0FzPiB7IH07CiAgICAgY2FzZSBDU1NWYWx1ZVNwZWxsT3V0OgpAQCAtMzc4Miw1OCAr
Mzc4Miw1OCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoQmxlbmRNb2RlIGJsZW5kTW9kZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGJsZW5kTW9kZSkgewogICAg
IGNhc2UgQmxlbmRNb2RlOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6TXVsdGlwbHk6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTXVsdGlwbHk7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZU11bHRpcGx5KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1v
ZGU6OlNjcmVlbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTY3JlZW47Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNjcmVlbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQmxlbmRNb2RlOjpPdmVybGF5OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU92ZXJsYXk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU92
ZXJsYXkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6RGFya2VuOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURhcmtlbjsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlRGFya2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVu
ZE1vZGU6OkxpZ2h0ZW46Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTGlnaHRl
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGlnaHRlbik7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpDb2xvckRvZGdlOgotICAgICAgICBtX3ZhbHVl
LnZhbHVlSUQgPSBDU1NWYWx1ZUNvbG9yRG9kZ2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUNvbG9yRG9kZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9k
ZTo6Q29sb3JCdXJuOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbG9yQnVy
bjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQ29sb3JCdXJuKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6OkhhcmRMaWdodDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVIYXJkTGlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUhhcmRMaWdodCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2Rl
OjpTb2Z0TGlnaHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU29mdExpZ2h0
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTb2Z0TGlnaHQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6RGlmZmVyZW5jZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVEaWZmZXJlbmNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVEaWZmZXJlbmNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1v
ZGU6OkV4Y2x1c2lvbjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFeGNsdXNp
b247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUV4Y2x1c2lvbik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpIdWU6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSHVlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVI
dWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5kTW9kZTo6U2F0dXJhdGlvbjoKLSAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTYXR1cmF0aW9uOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTYXR1cmF0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBCbGVuZE1vZGU6OkNvbG9yOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNvbG9yOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb2xvcik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxlbmRNb2RlOjpMdW1pbm9zaXR5OgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUx1bWlub3NpdHk7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUx1bWlub3NpdHkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsZW5k
TW9kZTo6UGx1c0RhcmtlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbHVz
RGFya2VyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbHVzRGFya2VyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGVuZE1vZGU6OlBsdXNMaWdodGVyOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNMaWdodGVyOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVQbHVzTGlnaHRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KQEAgLTM4NDIsNyArMzg0Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBCbGVuZE1vZGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQo
KSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4g
QmxlbmRNb2RlOjpOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZU11bHRpcGx5OgpAQCAtMzg5Mywx
MCArMzg5MywxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoSXNvbGF0aW9uIGlzb2xhdGlvbikKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGlzb2xhdGlvbikgewog
ICAgIGNhc2UgSXNvbGF0aW9uOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIElzb2xhdGlvbjo6SXNvbGF0ZToKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVJc29sYXRlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwo
Q1NTVmFsdWVJc29sYXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zOTA2LDcgKzM5MDYsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoSXNvbGF0aW9uIGlzb2xh
dGlvbikKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJc29s
YXRpb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBJc29sYXRpb246OkF1dG87CiAgICAg
Y2FzZSBDU1NWYWx1ZUlzb2xhdGU6CkBAIC0zOTI1LDEzICszOTI1LDEzIEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lQ2FwIGUpCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoIChlKSB7CiAgICAgY2FzZSBMaW5lQ2FwOjpCdXR0OgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUJ1dHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUJ1dHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIExpbmVDYXA6OlJvdW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVJvdW5kOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVSb3VuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGluZUNhcDo6
U3F1YXJlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNxdWFyZTsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3F1YXJlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogfQpAQCAtMzk0MCw3ICszOTQwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIExpbmVDYXAoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFs
dWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQnV0dDoKICAgICAgICAgcmV0dXJu
IExpbmVDYXA6OkJ1dHQ7CiAgICAgY2FzZSBDU1NWYWx1ZVJvdW5kOgpAQCAtMzk2MSwxMyArMzk2
MSwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoTGluZUpvaW4gZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIExpbmVKb2luOjpNaXRl
cjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVNaXRlcjsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlTWl0ZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IExpbmVKb2luOjpSb3VuZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSb3Vu
ZDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUm91bmQpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIExpbmVKb2luOjpCZXZlbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVCZXZlbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmV2
ZWwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC0zOTc2LDcgKzM5NzYsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTGluZUpvaW4oKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFs
dWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1Zh
bHVlTWl0ZXI6CiAgICAgICAgIHJldHVybiBMaW5lSm9pbjo6TWl0ZXI7CiAgICAgY2FzZSBDU1NW
YWx1ZVJvdW5kOgpAQCAtMzk5NywxMCArMzk5NywxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoV2luZFJ1bGUgZSkKICAgICBzZXRQcmlt
aXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICBjYXNlIFdpbmRSdWxlOjpOb25aZXJvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vbnplcm87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5v
bnplcm8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdpbmRSdWxlOjpFdmVuT2RkOgotICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUV2ZW5vZGQ7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUV2ZW5vZGQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC00MDA5LDcgKzQwMDksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgV2luZFJ1bGUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAK
LSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVy
bmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9uemVybzoKICAgICAgICAgcmV0dXJuIFdpbmRS
dWxlOjpOb25aZXJvOwogICAgIGNhc2UgQ1NTVmFsdWVFdmVub2RkOgpAQCAtNDAyOSw0MCArNDAy
OSw0MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoQWxpZ25tZW50QmFzZWxpbmUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEFsaWdu
bWVudEJhc2VsaW5lOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1
dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpCYXNlbGluZToKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQmFzZWxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdubWVu
dEJhc2VsaW5lOjpCZWZvcmVFZGdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUJlZm9yZUVkZ2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJlZm9yZUVk
Z2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpUZXh0QmVm
b3JlRWRnZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QmVmb3JlRWRn
ZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGV4dEJlZm9yZUVkZ2UpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpNaWRkbGU6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVNaWRkbGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdu
bWVudEJhc2VsaW5lOjpDZW50cmFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNlbnRyYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRyYWwpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpBZnRlckVkZ2U6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQWZ0ZXJFZGdlOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVBZnRlckVkZ2UpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEFsaWdubWVudEJhc2VsaW5lOjpUZXh0QWZ0ZXJFZGdlOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZVRleHRBZnRlckVkZ2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVRleHRBZnRlckVkZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdu
bWVudEJhc2VsaW5lOjpJZGVvZ3JhcGhpYzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVJZGVvZ3JhcGhpYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlSWRl
b2dyYXBoaWMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpB
bHBoYWJldGljOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFscGhhYmV0aWM7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFscGhhYmV0aWMpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpIYW5naW5nOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhhbmdpbmc7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZUhhbmdpbmcpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFsaWdubWVu
dEJhc2VsaW5lOjpNYXRoZW1hdGljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTWF0aGVtYXRpY2FsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNYXRo
ZW1hdGljYWwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MDcxLDcgKzQwNzEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQWxpZ25tZW50
QmFzZWxpbmUoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIEFsaWdubWVudEJhc2VsaW5l
OjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVCYXNlbGluZToKQEAgLTQxMTAsMTAgKzQxMTAsMTAg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEJvcmRlckNvbGxhcHNlIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBCb3JkZXJDb2xsYXBz
ZTo6U2VwYXJhdGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU2VwYXJhdGU7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlcGFyYXRlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBCb3JkZXJDb2xsYXBzZTo6Q29sbGFwc2U6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlQ29sbGFwc2U7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZUNvbGxhcHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDEyMiw3
ICs0MTIyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEJvcmRlckNvbGxhcHNlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0g
ICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5h
bCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVNlcGFyYXRlOgogICAgICAgICByZXR1cm4gQm9yZGVy
Q29sbGFwc2U6OlNlcGFyYXRlOwogICAgIGNhc2UgQ1NTVmFsdWVDb2xsYXBzZToKQEAgLTQxNDEs
MTAgKzQxNDEsMTAgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKEJvcmRlckZpdCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1Vu
aXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQm9yZGVy
Rml0OjpCb3JkZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQm9yZGVyOwor
ICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3JkZXIpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEJvcmRlckZpdDo6TGluZXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTGluZXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxpbmVz
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDE1Myw3ICs0MTUzLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEJvcmRlckZpdCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1
ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFs
dWVCb3JkZXI6CiAgICAgICAgIHJldHVybiBCb3JkZXJGaXQ6OkJvcmRlcjsKICAgICBjYXNlIENT
U1ZhbHVlTGluZXM6CkBAIC00MTcyLDE5ICs0MTcyLDE5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJbWFnZVJlbmRlcmluZyBpbWFnZVJl
bmRlCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7
CiAgICAgc3dpdGNoIChpbWFnZVJlbmRlcmluZykgewogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6
OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSW1hZ2VSZW5kZXJpbmc6OkNyaXNwRWRnZXM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQ3Jpc3BFZGdlczsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
Q3Jpc3BFZGdlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6OlBp
eGVsYXRlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQaXhlbGF0ZWQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBpeGVsYXRlZCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSW1hZ2VSZW5kZXJpbmc6Ok9wdGltaXplUXVhbGl0eToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVF1YWxpdHk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU9wdGltaXplUXVhbGl0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTQxOTMsNyArNDE5Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBJbWFnZVJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gSW1h
Z2VSZW5kZXJpbmc6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdE9wdGltaXplQ29udHJh
c3Q6CkBAIC00MjIwLDEwICs0MjIwLDEwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShJbnB1dFNlY3VyaXR5IGUpCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgY2FzZSBJbnB1dFNlY3VyaXR5OjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIElucHV0U2VjdXJpdHk6Ok5vbmU6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQyMzIsNyAr
NDIzMiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBJ
bnB1dFNlY3VyaXR5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBJbnB1dFNlY3VyaXR5
OjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgpAQCAtNDI1MSwxNCArNDI1MSwxNCBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVHJh
bnNmb3JtU3R5bGUzRCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpD
U1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVHJhbnNmb3JtU3R5bGUz
RDo6RmxhdDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGF0OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGF0KTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUcmFuc2Zvcm1TdHlsZTNEOjpQcmVzZXJ2ZTNEOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVByZXNlcnZlM2Q7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVByZXNlcnZlM2QpOwogICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQ1NTX1RSQU5TRk9S
TV9TVFlMRV9PUFRJTUlaRURfM0QpCiAgICAgY2FzZSBUcmFuc2Zvcm1TdHlsZTNEOjpPcHRpbWl6
ZWQzRDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZWQzZDsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3B0aW1pemVkM2QpOwogICAgICAgICBi
cmVhazsKICNlbmRpZgogICAgIH0KQEAgLTQyNjgsNyArNDI2OCw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUcmFuc2Zvcm1TdHlsZTNEKCkgY29uc3QK
IHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVl
SUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1
ZUZsYXQ6CiAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1TdHlsZTNEOjpGbGF0OwogICAgIGNhc2Ug
Q1NTVmFsdWVQcmVzZXJ2ZTNkOgpAQCAtNDI5MSwxOSArNDI5MSwxOSBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVHJhbnNmb3JtQm94IGJv
eCkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGJveCkgewogICAgIGNhc2UgVHJhbnNmb3JtQm94OjpTdHJva2VCb3g6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Ryb2tlQm94OworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdHJva2VCb3gpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFRyYW5zZm9ybUJveDo6Q29udGVudEJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVDb250ZW50Qm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVD
b250ZW50Qm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OkJvcmRl
ckJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCb3JkZXJCb3g7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvcmRlckJveCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVHJhbnNmb3JtQm94OjpGaWxsQm94OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUZpbGxCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUZpbGxCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybUJveDo6Vmlld0Jv
eDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaWV3Qm94OworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVWaWV3Qm94KTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQpAQCAtNDMxMiw3ICs0MzEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIFRyYW5zZm9ybUJveCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2
YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTdHJva2VCb3g6CiAgICAgICAg
IHJldHVybiBUcmFuc2Zvcm1Cb3g6OlN0cm9rZUJveDsKICAgICBjYXNlIENTU1ZhbHVlQ29udGVu
dEJveDoKQEAgLTQzMzcsMTMgKzQzMzcsMTMgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbHVtbkF4aXMgZSkKICAgICBzZXRQcmltaXRp
dmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICBjYXNlIENvbHVtbkF4aXM6Okhvcml6b250YWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJ
RCA9IENTU1ZhbHVlSG9yaXpvbnRhbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlSG9yaXpvbnRhbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29sdW1uQXhpczo6VmVy
dGljYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVydGljYWw7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVZlcnRpY2FsKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb2x1bW5BeGlzOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00MzUyLDcgKzQzNTIsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgQ29sdW1uQXhpcygpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVI
b3Jpem9udGFsOgogICAgICAgICByZXR1cm4gQ29sdW1uQXhpczo6SG9yaXpvbnRhbDsKICAgICBj
YXNlIENTU1ZhbHVlVmVydGljYWw6CkBAIC00MzczLDEwICs0MzczLDEwIEBAIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb2x1bW5Qcm9ncmVz
c2lvbiBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQ29sdW1uUHJvZ3Jlc3Npb246Ok5vcm1h
bDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29sdW1uUHJvZ3Jlc3Npb246OlJldmVyc2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlUmV2ZXJzZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmV2
ZXJzZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQzODUsNyArNDM4NSw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb2x1bW5Qcm9ncmVz
c2lvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRjaCAo
bV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAg
IGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBDb2x1bW5Qcm9ncmVzc2lvbjo6
Tm9ybWFsOwogICAgIGNhc2UgQ1NTVmFsdWVSZXZlcnNlOgpAQCAtNDQ0NiwxMyArNDQ0NiwxMyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QnVmZmVyZWRSZW5kZXJpbmcgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlw
ZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIEJ1ZmZlcmVkUmVu
ZGVyaW5nOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEJ1ZmZlcmVkUmVuZGVyaW5nOjpEeW5hbWljOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUR5bmFtaWM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUR5bmFtaWMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJ1ZmZlcmVkUmVuZGVyaW5n
OjpTdGF0aWM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhdGljOworICAg
ICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdGF0aWMpOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CkBAIC00NDYxLDcgKzQ0NjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQnVmZmVyZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAgIEFT
U0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAg
ICAgICAgcmV0dXJuIEJ1ZmZlcmVkUmVuZGVyaW5nOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVE
eW5hbWljOgpAQCAtNDQ4MiwxMyArNDQ4MiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29sb3JJbnRlcnBvbGF0aW9uIGUpCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChlKSB7CiAgICAgY2FzZSBDb2xvckludGVycG9sYXRpb246OkF1dG86Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29sb3JJbnRlcnBvbGF0
aW9uOjpTUkdCOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNSR0I7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNSR0IpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbG9ySW50ZXJwb2xhdGlvbjo6TGluZWFyUkdCOgotICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUxpbmVhclJHQjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlTGluZWFyUkdCKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDQ5Nyw3ICs0
NDk3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENv
bG9ySW50ZXJwb2xhdGlvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAot
ICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJu
YWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTUkdCOgogICAgICAgICByZXR1cm4gQ29sb3JJbnRl
cnBvbGF0aW9uOjpTUkdCOwogICAgIGNhc2UgQ1NTVmFsdWVMaW5lYXJSR0I6CkBAIC00NTE4LDEz
ICs0NTE4LDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShDb2xvclJlbmRlcmluZyBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENT
U1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQ29s
b3JSZW5kZXJpbmc6OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29sb3JSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlT3B0aW1pemVTcGVlZDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlT3B0aW1pemVTcGVlZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29sb3JSZW5kZXJpbmc6Ok9wdGltaXplUXVhbGl0eToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVPcHRpbWl6ZVF1YWxpdHk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU9wdGltaXplUXVhbGl0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAg
LTQ1MzMsNyArNDUzMyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGVyYXRvciBDb2xvclJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOgogICAgICAgICBy
ZXR1cm4gQ29sb3JSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ7CiAgICAgY2FzZSBDU1NWYWx1ZU9w
dGltaXplUXVhbGl0eToKQEAgLTQ1NTQsNDAgKzQ1NTQsNDAgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKERvbWluYW50QmFzZWxpbmUgZSkK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OkF1dG86Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVy
bmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNl
bGluZTo6VXNlU2NyaXB0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVVzZVNj
cmlwdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVXNlU2NyaXB0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpOb0NoYW5nZToKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb0NoYW5nZTsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTm9DaGFuZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERv
bWluYW50QmFzZWxpbmU6OlJlc2V0U2l6ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVSZXNldFNpemU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJlc2V0
U2l6ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6Q2VudHJh
bDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVDZW50cmFsOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50cmFsKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBEb21pbmFudEJhc2VsaW5lOjpNaWRkbGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNaWRk
bGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OlRleHRCZWZv
cmVFZGdlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRleHRCZWZvcmVFZGdl
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0QmVmb3JlRWRnZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6VGV4dEFmdGVyRWRnZToK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVUZXh0QWZ0ZXJFZGdlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpJZGVvZ3JhcGhpYzoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJZGVvZ3JhcGhpYzsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlSWRlb2dyYXBoaWMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIERv
bWluYW50QmFzZWxpbmU6OkFscGhhYmV0aWM6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQWxwaGFiZXRpYzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxw
aGFiZXRpYyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6SGFu
Z2luZzoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVIYW5naW5nOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVIYW5naW5nKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpNYXRoZW1hdGljYWw6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlTWF0aGVtYXRpY2FsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNYXRoZW1hdGljYWwpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00
NTk2LDcgKzQ1OTYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgRG9taW5hbnRCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgp
KTsKIAotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gRG9t
aW5hbnRCYXNlbGluZTo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlVXNlU2NyaXB0OgpAQCAtNDYz
NSwxNiArNDYzNSwxNiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoU2hhcGVSZW5kZXJpbmcgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlw
ZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNl
IFNoYXBlUmVuZGVyaW5nOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFNoYXBlUmVuZGVyaW5nOjpPcHRpbWl6ZVNwZWVkOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU9wdGltaXplU3BlZWQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZU9wdGltaXplU3BlZWQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNoYXBlUmVuZGVyaW5nOjpDcmlzcEVkZ2VzOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNyaXNwZWRnZXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUNyaXNwZWRnZXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNoYXBlUmVuZGVyaW5n
OjpHZW9tZXRyaWNQcmVjaXNpb246Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
R2VvbWV0cmljUHJlY2lzaW9uOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVH
ZW9tZXRyaWNQcmVjaXNpb24pOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NjUzLDcg
KzQ2NTMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3Ig
U2hhcGVSZW5kZXJpbmcoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAg
ICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFs
KCkpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKICAgICAgICAgcmV0dXJuIFNoYXBlUmVuZGVy
aW5nOjpBdXRvOwogICAgIGNhc2UgQ1NTVmFsdWVPcHRpbWl6ZVNwZWVkOgpAQCAtNDY3NiwxMyAr
NDY3NiwxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoVGV4dEFuY2hvciBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRU
eXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVGV4dEFuY2hv
cjo6U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUZXh0QW5jaG9yOjpNaWRkbGU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlTWlkZGxlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVNaWRkbGUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFRleHRBbmNob3I6OkVuZDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTQ2OTEsNyArNDY5MSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBUZXh0QW5j
aG9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoICht
X3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAg
Y2FzZSBDU1NWYWx1ZVN0YXJ0OgogICAgICAgICByZXR1cm4gVGV4dEFuY2hvcjo6U3RhcnQ7CiAg
ICAgY2FzZSBDU1NWYWx1ZU1pZGRsZToKQEAgLTQ3MjYsMTAgKzQ3MjYsMTAgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFZlY3RvckVmZmVj
dCBlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQp
OwogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgVmVjdG9yRWZmZWN0OjpOb25lOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZlY3RvckVmZmVj
dDo6Tm9uU2NhbGluZ1N0cm9rZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVO
b25TY2FsaW5nU3Ryb2tlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb25T
Y2FsaW5nU3Ryb2tlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDczOCw3ICs0NzM4
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFZlY3Rv
ckVmZmVjdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKIAotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICByZXR1cm4gVmVjdG9yRWZmZWN0OjpOb25l
OwogICAgIGNhc2UgQ1NTVmFsdWVOb25TY2FsaW5nU3Ryb2tlOgpAQCAtNDc1NywxMCArNDc1Nywx
MCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoTWFza1R5cGUgZSkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NT
X1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGUpIHsKICAgICBjYXNlIE1hc2tUeXBlOjpMdW1pbmFu
Y2U6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTHVtaW5hbmNlOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVMdW1pbmFuY2UpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE1hc2tUeXBlOjpBbHBoYToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVBbHBoYTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQWxwaGEpOwog
ICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC00NzY5LDcgKzQ3NjksNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgTWFza1R5cGUoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7CiAKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkg
eworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTHVt
aW5hbmNlOgogICAgICAgICByZXR1cm4gTWFza1R5cGU6Okx1bWluYW5jZTsKICAgICBjYXNlIENT
U1ZhbHVlQWxwaGE6CkBAIC00Nzg4LDI5ICs0Nzg4LDI5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDU1NCb3hUeXBlIGNzc0JveCkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGNzc0JveCkgewogICAgIGNhc2UgQ1NTQm94VHlwZTo6TWFyZ2luQm94OgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU1hcmdpbkJveDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlTWFyZ2luQm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NCb3hUeXBlOjpCb3JkZXJCb3g6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
Qm9yZGVyQm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCb3JkZXJCb3gp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU0JveFR5cGU6OlBhZGRpbmdCb3g6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGFkZGluZ0JveDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlUGFkZGluZ0JveCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTQm94VHlwZTo6Q29udGVudEJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb250ZW50Qm94OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDb250
ZW50Qm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NCb3hUeXBlOjpGaWxsQm94Ogot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZpbGxCb3g7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUZpbGxCb3gpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENTU0JveFR5cGU6OlN0cm9rZUJveDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTdHJva2VCb3g7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVN0cm9rZUJv
eCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTQm94VHlwZTo6Vmlld0JveDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWaWV3Qm94OworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVWaWV3Qm94KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NC
b3hUeXBlOjpCb3hNaXNzaW5nOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb25lOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVOb25lKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNDg0Niw1
NiArNDg0Niw1NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoSXRlbVBvc2l0aW9uIGl0ZW1Qb3NpdGlvbgogICAgIHNldFByaW1pdGl2ZVVu
aXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoaXRlbVBvc2l0
aW9uKSB7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OkxlZ2FjeToKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVMZWdhY3k7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZUxlZ2FjeSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpBdXRv
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0
ZW1Qb3NpdGlvbjo6Tm9ybWFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5v
cm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OlN0cmV0Y2g6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlU3RyZXRjaCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9u
OjpCYXNlbGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCYXNlbGluZTsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmFzZWxpbmUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxhc3RCYXNlbGluZTsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlTGFzdEJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtUG9zaXRpb246OkNlbnRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVD
ZW50ZXI7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUNlbnRlcik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpTdGFydDoKLSAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlU3RhcnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6RW5k
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUVuZDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlRW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVt
UG9zaXRpb246OlNlbGZTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVT
ZWxmU3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNlbGZTdGFydCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBvc2l0aW9uOjpTZWxmRW5kOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNlbGZFbmQ7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZVNlbGZFbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1Q
b3NpdGlvbjo6RmxleFN0YXJ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUZs
ZXhTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRmxleFN0YXJ0KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtUG9zaXRpb246OkZsZXhFbmQ6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRmxleEVuZDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlRmxleEVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVBv
c2l0aW9uOjpMZWZ0OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUxlZnQ7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUxlZnQpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEl0ZW1Qb3NpdGlvbjo6UmlnaHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlUmlnaHQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVJpZ2h0
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgSXRlbVBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTGVnYWN5OgogICAgICAgICByZXR1cm4gSXRlbVBvc2l0aW9uOjpMZWdh
Y3k7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CkBAIC00OTQxLDIwICs0OTQxLDIwIEBAIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShPdmVyZmxv
d0FsaWdubWVudCBvdmVyZmxvCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChvdmVyZmxvd0FsaWdubWVudCkgewogICAgIGNh
c2UgT3ZlcmZsb3dBbGlnbm1lbnQ6OkRlZmF1bHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlRGVmYXVsdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRGVm
YXVsdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT3ZlcmZsb3dBbGlnbm1lbnQ6OlVuc2Fm
ZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVVbnNhZmU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVVuc2FmZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgT3ZlcmZsb3dBbGlnbm1lbnQ6OlNhZmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU2FmZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU2FmZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIE92ZXJmbG93QWxpZ25tZW50KCkgY29uc3QKIHsKLSAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlVW5zYWZlOgogICAgICAgICByZXR1cm4gT3ZlcmZsb3dBbGlnbm1lbnQ6
OlVuc2FmZTsKICAgICBjYXNlIENTU1ZhbHVlU2FmZToKQEAgLTQ5NzIsNDEgKzQ5NzIsNDEgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENv
bnRlbnRQb3NpdGlvbiBjb250ZW50UG8KICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0
VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGNvbnRlbnRQb3NpdGlvbikgewogICAg
IGNhc2UgQ29udGVudFBvc2l0aW9uOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3Jt
YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6QmFzZWxpbmU6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmFzZWxpbmU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJhc2VsaW5lKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb250ZW50UG9zaXRpb246Okxhc3RCYXNlbGluZToKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVMYXN0QmFzZWxpbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZUxhc3RCYXNlbGluZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBv
c2l0aW9uOjpDZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVy
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUu
dmFsdWVJRCA9IENTU1ZhbHVlU3RhcnQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NW
YWx1ZVN0YXJ0KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb246OkVu
ZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVFbmQ7CisgICAgICAgIHNldFZh
bHVlSURJbnRlcm5hbChDU1NWYWx1ZUVuZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29u
dGVudFBvc2l0aW9uOjpGbGV4U3RhcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlRmxleFN0YXJ0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGV4U3Rh
cnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbjo6RmxleEVuZDoK
LSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGbGV4RW5kOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVGbGV4RW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDb250ZW50UG9zaXRpb246OkxlZnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlTGVmdDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTGVmdCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpSaWdodDoKLSAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSaWdodDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlUmlnaHQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBDb250ZW50UG9zaXRpb24oKSBjb25z
dAogewotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlE
SW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBD
b250ZW50UG9zaXRpb246Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlQmFzZWxpbmU6CkBAIC01
MDQyLDI2ICs1MDQyLDI2IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZShDb250ZW50RGlzdHJpYnV0aW9uIGNvbnRlCiAgICAgc2V0UHJpbWl0
aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChjb250
ZW50RGlzdHJpYnV0aW9uKSB7CiAgICAgY2FzZSBDb250ZW50RGlzdHJpYnV0aW9uOjpEZWZhdWx0
OgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlZmF1bHQ7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZURlZmF1bHQpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENvbnRlbnREaXN0cmlidXRpb246OlNwYWNlQmV0d2VlbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUJldHdlZW47CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVNwYWNlQmV0d2Vlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVu
dERpc3RyaWJ1dGlvbjo6U3BhY2VBcm91bmQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlU3BhY2VBcm91bmQ7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVNw
YWNlQXJvdW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50RGlzdHJpYnV0aW9u
OjpTcGFjZUV2ZW5seToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTcGFjZUV2
ZW5seTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3BhY2VFdmVubHkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OlN0cmV0Y2g6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3RyZXRjaDsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlU3RyZXRjaCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbnRlbnRE
aXN0cmlidXRpb24oKSBjb25zdAogewotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7Cisg
ICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVTcGFjZUJl
dHdlZW46CiAgICAgICAgIHJldHVybiBDb250ZW50RGlzdHJpYnV0aW9uOjpTcGFjZUJldHdlZW47
CiAgICAgY2FzZSBDU1NWYWx1ZVNwYWNlQXJvdW5kOgpAQCAtNTA4MSw3ICs1MDgxLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRleHRab29tKCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwogCi0gICAgc3dpdGNoIChtX3ZhbHVlLnZh
bHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NW
YWx1ZU5vcm1hbDoKICAgICAgICAgcmV0dXJuIFRleHRab29tOjpOb3JtYWw7CiAgICAgY2FzZSBD
U1NWYWx1ZVJlc2V0OgpAQCAtNTEwMCwxNSArNTEwMCwxNSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dFpvb20gdGV4dFpvb20pCiAg
ICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAg
c3dpdGNoICh0ZXh0Wm9vbSkgewogICAgIGNhc2UgVGV4dFpvb206Ok5vcm1hbDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFRleHRab29t
OjpSZXNldDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZXNldDsKKyAgICAg
ICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUmVzZXQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVOb3JtYWw7CisgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9ybWFsKTsK
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFRvdWNoQWN0aW9uIHRvdWNoQWN0aW9uKQpAQCAtNTExNywyMiArNTExNywyMiBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVG91Y2hB
Y3Rpb24gdG91Y2hBY3Rpb24pCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6
OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoICh0b3VjaEFjdGlvbikgewogICAgIGNhc2UgVG91
Y2hBY3Rpb246OkF1dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsK
KyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbjoKLSAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVNYW5pcHVsYXRpb247CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZU1hbmlwdWxhdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVG91Y2hB
Y3Rpb246Ok5vbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9uZTsKKyAg
ICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVG91Y2hBY3Rpb246OlBhblg6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlUGFuWDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlUGFuWCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVG91Y2hBY3Rpb246OlBhblk6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlUGFuWTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENT
U1ZhbHVlUGFuWSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVG91Y2hBY3Rpb246OlBpbmNo
Wm9vbToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQaW5jaFpvb207CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBpbmNoWm9vbSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KQEAgLTUxNDAsNyArNTE0MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUb3VjaEFjdGlvbiB0b3VjaEFjdGlvbikK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3
aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkg
ewogICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gVG91Y2hBY3Rpb246OkF1
dG87CiAgICAgY2FzZSBDU1NWYWx1ZU1hbmlwdWxhdGlvbjoKQEAgLTUxNjYsMTMgKzUxNjYsMTMg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KFNjcm9sbFNuYXBTdHJpY3RuZXNzIHN0cmkKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NV
bml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHN0cmljdG5lc3MpIHsKICAgICBj
YXNlIFNjcm9sbFNuYXBTdHJpY3RuZXNzOjpOb25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbFNuYXBTdHJpY3RuZXNzOjpQcm94aW1p
dHk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUHJveGltaXR5OworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVQcm94aW1pdHkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFNjcm9sbFNuYXBTdHJpY3RuZXNzOjpNYW5kYXRvcnk6Ci0gICAgICAgIG1fdmFs
dWUudmFsdWVJRCA9IENTU1ZhbHVlTWFuZGF0b3J5OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVNYW5kYXRvcnkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC01MTgw
LDcgKzUxODAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoU2Nyb2xsU25hcFN0cmljdG5lc3Mgc3RyaQogdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFNjcm9sbFNuYXBTdHJpY3RuZXNzKCkgY29uc3QK
IHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlE
KSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVO
b25lOgogICAgICAgICByZXR1cm4gU2Nyb2xsU25hcFN0cmljdG5lc3M6Ok5vbmU7CiAgICAgY2Fz
ZSBDU1NWYWx1ZVByb3hpbWl0eToKQEAgLTUxOTksMTkgKzUxOTksMTkgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFNjcm9sbFNuYXBBeGlz
IGF4aXMpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9J
RCk7CiAgICAgc3dpdGNoIChheGlzKSB7CiAgICAgY2FzZSBTY3JvbGxTbmFwQXhpczo6WEF4aXM6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWDsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlWCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsU25h
cEF4aXM6OllBeGlzOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVk7CisgICAg
ICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNjcm9sbFNuYXBBeGlzOjpCbG9jazoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVCbG9jazsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQmxvY2spOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbFNuYXBBeGlzOjpJbmxpbmU6Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5saW5lOworICAgICAgICBzZXRWYWx1ZUlESW50
ZXJuYWwoQ1NTVmFsdWVJbmxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbFNu
YXBBeGlzOjpCb3RoOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvdGg7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvdGgpOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CkBAIC01MjE5LDcgKzUyMTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcEF4aXMgYXhpcykKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3JvbGxTbmFwQXhpcygp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlWDoKICAgICAgICAgcmV0dXJuIFNjcm9sbFNuYXBBeGlzOjpYQXhpczsKICAgICBjYXNl
IENTU1ZhbHVlWToKQEAgLTUyNDIsMTYgKzUyNDIsMTYgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBl
IHQKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpO
b25lOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNl
dFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpTdGFydDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVTdGFydDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3Rh
cnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpD
ZW50ZXI6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQ2VudGVyOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVDZW50ZXIpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpFbmQ6Ci0gICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlRW5kOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVF
bmQpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC01MjU5LDcgKzUyNTksNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xs
U25hcEF4aXNBbGlnblR5cGUgdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb25lOgogICAgICAgICBy
ZXR1cm4gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CiAgICAgY2FzZSBDU1NWYWx1ZVN0
YXJ0OgpAQCAtNTI4MCwxMCArNTI4MCwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU2Nyb2xsU25hcFN0b3Agc25hcFN0b3ApCiAgICAg
c2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dp
dGNoIChzbmFwU3RvcCkgewogICAgIGNhc2UgU2Nyb2xsU25hcFN0b3A6Ok5vcm1hbDoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIHNldFZhbHVlSURJ
bnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xs
U25hcFN0b3A6OkFsd2F5czoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVBbHdh
eXM7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFsd2F5cyk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KQEAgLTUyOTEsNyArNTI5MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTY3JvbGxTbmFwU3RvcCBzbmFw
U3RvcCkKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBTY3Jv
bGxTbmFwU3RvcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsK
ICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gU2Nyb2xsU25hcFN0b3A6
Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlQWx3YXlzOgpAQCAtNTMwOSwxMCArNTMwOSwxMCBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
VHJhaWxpbmdXb3JkIGUpCiAgICAgc2V0UHJpbWl0aXZlVW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNT
U19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgY2FzZSBUcmFpbGluZ1dvcmQ6OkF1
dG86Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0bzsKKyAgICAgICAgc2V0
VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VHJhaWxpbmdXb3JkOjpQYXJ0aWFsbHlCYWxhbmNlZDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlE
ID0gQ1NTVmFsdWVXZWJraXRQYXJ0aWFsbHlCYWxhbmNlZDsKKyAgICAgICAgc2V0VmFsdWVJRElu
dGVybmFsKENTU1ZhbHVlV2Via2l0UGFydGlhbGx5QmFsYW5jZWQpOwogICAgICAgICBicmVhazsK
ICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTUzMjMsNyAr
NTMyMyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShUcmFpbGluZ1dvcmQgZSkKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBUcmFpbGluZ1dvcmQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVl
SUQoKSk7Ci0gICAgc3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVl
SURJbnRlcm5hbCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBU
cmFpbGluZ1dvcmQ6OkF1dG87CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdFBhcnRpYWxseUJhbGFu
Y2VkOgpAQCAtNTM0MywxMyArNTM0MywxMyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQogICAgIHNl
dFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRj
aCAoZSkgewogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6V2hpdGU6Ci0gICAgICAgIG1f
dmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlV2hpdGU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5h
bChDU1NWYWx1ZVdoaXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blN0eWxlOjpXaGl0ZU91dGxpbmU6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVl
V2hpdGVPdXRsaW5lOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVXaGl0ZU91
dGxpbmUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJs
YWNrOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsYWNrOworICAgICAgICBz
ZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbGFjayk7CiAgICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTM2MCw3ICs1MzYwLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEFwcGxlUGF5QnV0dG9uU3R5bGUgZSkKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblN0eWxlKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNo
ICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVXaGl0ZToKICAgICAgICAg
cmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOwogICAgIGNhc2UgQ1NTVmFsdWVXaGl0
ZU91dGxpbmU6CkBAIC01MzgwLDUwICs1MzgwLDUwIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShBcHBsZVBheUJ1dHRvblR5cGUgZSkKICAg
ICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW46Ci0gICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUGxhaW47CisgICAgICAgIHNldFZhbHVlSURJbnRl
cm5hbChDU1NWYWx1ZVBsYWluKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1
dHRvblR5cGU6OkJ1eToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXk7Cisg
ICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJ1eSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpTZXRVcDoKLSAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTZXRVcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVl
U2V0VXApOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6RG9u
YXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURvbmF0ZTsKKyAgICAgICAg
c2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlRG9uYXRlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkNoZWNrT3V0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNoZWNrT3V0OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVDaGVja091dCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBl
OjpCb29rOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJvb2s7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUJvb2spOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6U3Vic2NyaWJlOgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZVN1YnNjcmliZTsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1Zh
bHVlU3Vic2NyaWJlKTsKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9ORVdf
QlVUVE9OX1RZUEVTKQogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpSZWxvYWQ6Ci0gICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlUmVsb2FkOworICAgICAgICBzZXRWYWx1ZUlE
SW50ZXJuYWwoQ1NTVmFsdWVSZWxvYWQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFwcGxl
UGF5QnV0dG9uVHlwZTo6QWRkTW9uZXk6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1Zh
bHVlQWRkTW9uZXk7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUFkZE1vbmV5
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlRvcFVwOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVRvcFVwOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVUb3BVcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXBw
bGVQYXlCdXR0b25UeXBlOjpPcmRlcjoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVPcmRlcjsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlT3JkZXIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6UmVudDoKLSAgICAgICAg
bV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVSZW50OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVSZW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6OlN1cHBvcnQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3VwcG9y
dDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlU3VwcG9ydCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpDb250cmlidXRlOgotICAgICAg
ICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNvbnRyaWJ1dGU7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUNvbnRyaWJ1dGUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEFwcGxlUGF5QnV0dG9uVHlwZTo6VGlwOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NW
YWx1ZVRpcDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlVGlwKTsKICAgICAg
ICAgYnJlYWs7CiAjZW5kaWYKICAgICBkZWZhdWx0OgpAQCAtNTQzNSw3ICs1NDM1LDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEFwcGxl
UGF5QnV0dG9uVHlwZSBlKQogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZXJhdG9yIEFwcGxlUGF5QnV0dG9uVHlwZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJ
RCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJ
REludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlUGxhaW46CiAgICAgICAgIHJldHVybiBB
cHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOwogICAgIGNhc2UgQ1NTVmFsdWVCdXk6CkBAIC01NDgy
LDEzICs1NDgyLDEzIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQ
cmltaXRpdmVWYWx1ZShGb250VmFyaWFudFBvc2l0aW9uIHBvc2l0CiAgICAgc2V0UHJpbWl0aXZl
VW5pdFR5cGUoQ1NTVW5pdFR5cGU6OkNTU19WQUxVRV9JRCk7CiAgICAgc3dpdGNoIChwb3NpdGlv
bikgewogICAgIGNhc2UgRm9udFZhcmlhbnRQb3NpdGlvbjo6Tm9ybWFsOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFs
KENTU1ZhbHVlTm9ybWFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb250VmFyaWFudFBv
c2l0aW9uOjpTdWJzY3JpcHQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU3Vi
OworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTdWIpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEZvbnRWYXJpYW50UG9zaXRpb246OlN1cGVyc2NyaXB0OgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVN1cGVyOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJu
YWwoQ1NTVmFsdWVTdXBlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTQ5OSw3ICs1NDk5LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRWYXJpYW50UG9z
aXRpb24gcG9zaXQKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBGb250VmFyaWFudFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50
ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBGb250
VmFyaWFudFBvc2l0aW9uOjpOb3JtYWw7CiAgICAgY2FzZSBDU1NWYWx1ZVN1YjoKQEAgLTU1MTks
MjUgKzU1MTksMjUgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKEZvbnRWYXJpYW50Q2FwcyBjYXBzKQogICAgIHNldFByaW1pdGl2ZVVuaXRU
eXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAoY2FwcykgewogICAg
IGNhc2UgRm9udFZhcmlhbnRDYXBzOjpOb3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlTm9ybWFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3Jt
YWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6U21hbGw6Ci0g
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU21hbGxDYXBzOworICAgICAgICBzZXRW
YWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTbWFsbENhcHMpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEZvbnRWYXJpYW50Q2Fwczo6QWxsU21hbGw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQWxsU21hbGxDYXBzOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFs
dWVBbGxTbWFsbENhcHMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50Q2Fw
czo6UGV0aXRlOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBldGl0ZUNhcHM7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVBldGl0ZUNhcHMpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZvbnRWYXJpYW50Q2Fwczo6QWxsUGV0aXRlOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUFsbFBldGl0ZUNhcHM7CisgICAgICAgIHNldFZhbHVl
SURJbnRlcm5hbChDU1NWYWx1ZUFsbFBldGl0ZUNhcHMpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEZvbnRWYXJpYW50Q2Fwczo6VW5pY2FzZToKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVVbmljYXNlOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVVbmlj
YXNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGb250VmFyaWFudENhcHM6OlRpdGxpbmc6
Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVGl0bGluZ0NhcHM7CisgICAgICAg
IHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZVRpdGxpbmdDYXBzKTsKICAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01NTQ4LDcg
KzU1NDgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRm9udFZhcmlhbnRDYXBzIGNhcHMpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9udFZhcmlhbnRDYXBzKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dp
dGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAg
ICAgIHJldHVybiBGb250VmFyaWFudENhcHM6Ok5vcm1hbDsKICAgICBjYXNlIENTU1ZhbHVlU21h
bGxDYXBzOgpAQCAtNTU3NiwxMCArNTU3NiwxMCBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRm9udFZhcmlhbnRBbHRlcm5hdGVzIGFsdAog
ICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVfSUQpOwogICAg
IHN3aXRjaCAoYWx0ZXJuYXRlcykgewogICAgIGNhc2UgRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpO
b3JtYWw6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlTm9ybWFsOworICAgICAg
ICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVOb3JtYWwpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEZvbnRWYXJpYW50QWx0ZXJuYXRlczo6SGlzdG9yaWNhbEZvcm1zOgotICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUhpc3RvcmljYWxGb3JtczsKKyAgICAgICAgc2V0VmFs
dWVJREludGVybmFsKENTU1ZhbHVlSGlzdG9yaWNhbEZvcm1zKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC01NTkwLDcgKzU1
OTAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRm9udFZhcmlhbnRBbHRlcm5hdGVzIGFsdAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEZvbnRWYXJpYW50QWx0ZXJuYXRlcygpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgewor
ICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENTU1ZhbHVlTm9ybWFs
OgogICAgICAgICByZXR1cm4gRm9udFZhcmlhbnRBbHRlcm5hdGVzOjpOb3JtYWw7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUhpc3RvcmljYWxGb3JtczoKQEAgLTU2MDgsMTAgKzU2MDgsMTAgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRPcHRp
Y2FsU2l6aW5nIHNpemluZykKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6
Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKHNpemluZykgewogICAgIGNhc2UgRm9udE9wdGlj
YWxTaXppbmc6OkVuYWJsZWQ6Ci0gICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXV0
bzsKKyAgICAgICAgc2V0VmFsdWVJREludGVybmFsKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRm9udE9wdGljYWxTaXppbmc6OkRpc2FibGVkOgotICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChD
U1NWYWx1ZU5vbmUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU2MjIsNyArNTYyMiw3IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250T3B0aWNhbFNpemluZyBz
aXppbmcpCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgRm9u
dE9wdGljYWxTaXppbmcoKSBjb25zdAogewogICAgIEFTU0VSVChpc1ZhbHVlSUQoKSk7Ci0gICAg
c3dpdGNoIChtX3ZhbHVlLnZhbHVlSUQpIHsKKyAgICBzd2l0Y2ggKHZhbHVlSURJbnRlcm5hbCgp
KSB7CiAgICAgY2FzZSBDU1NWYWx1ZUF1dG86CiAgICAgICAgIHJldHVybiBGb250T3B0aWNhbFNp
emluZzo6RW5hYmxlZDsKICAgICBjYXNlIENTU1ZhbHVlTm9uZToKQEAgLTU2NDAsMTkgKzU2NDAs
MTkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEZvbnRMb2FkaW5nQmVoYXZpb3IgYmVoYXYKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShD
U1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CiAgICAg
Y2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpBdXRvOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQg
PSBDU1NWYWx1ZUF1dG87CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZUF1dG8p
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZvbnRMb2FkaW5nQmVoYXZpb3I6OkJsb2NrOgot
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUJsb2NrOworICAgICAgICBzZXRWYWx1
ZUlESW50ZXJuYWwoQ1NTVmFsdWVCbG9jayk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9u
dExvYWRpbmdCZWhhdmlvcjo6U3dhcDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVTd2FwOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVTd2FwKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpGYWxsYmFjazoKLSAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVGYWxsYmFjazsKKyAgICAgICAgc2V0VmFsdWVJ
REludGVybmFsKENTU1ZhbHVlRmFsbGJhY2spOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZv
bnRMb2FkaW5nQmVoYXZpb3I6Ok9wdGlvbmFsOgotICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZU9wdGlvbmFsOworICAgICAgICBzZXRWYWx1ZUlESW50ZXJuYWwoQ1NTVmFsdWVPcHRp
b25hbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtNTY2Myw3ICs1NjYzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnRMb2FkaW5nQmVoYXZpb3IgYmVoYXYK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250TG9hZGlu
Z0JlaGF2aW9yKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOwotICAgIHN3aXRj
aCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgc3dpdGNoICh2YWx1ZUlESW50ZXJuYWwoKSkgewog
ICAgIGNhc2UgQ1NTVmFsdWVBdXRvOgogICAgICAgICByZXR1cm4gRm9udExvYWRpbmdCZWhhdmlv
cjo6QXV0bzsKICAgICBjYXNlIENTU1ZhbHVlQmxvY2s6CkBAIC01Njg3LDEwICs1Njg3LDEwIEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShN
YXRoU3R5bGUgbWF0aFN0eWxlKQogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBl
OjpDU1NfVkFMVUVfSUQpOwogICAgIHN3aXRjaCAobWF0aFN0eWxlKSB7CiAgICAgY2FzZSBNYXRo
U3R5bGU6Ok5vcm1hbDoKLSAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVOb3JtYWw7
CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1ZU5vcm1hbCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgTWF0aFN0eWxlOjpDb21wYWN0OgotICAgICAgICBtX3ZhbHVlLnZhbHVl
SUQgPSBDU1NWYWx1ZUNvbXBhY3Q7CisgICAgICAgIHNldFZhbHVlSURJbnRlcm5hbChDU1NWYWx1
ZUNvbXBhY3QpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTU3MDEsNyArNTcwMSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShNYXRoU3R5bGUgbWF0aFN0eWxlKQog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIE1hdGhTdHlsZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKLSAgICBzd2l0Y2ggKG1fdmFsdWUu
dmFsdWVJRCkgeworICAgIHN3aXRjaCAodmFsdWVJREludGVybmFsKCkpIHsKICAgICBjYXNlIENT
U1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gTWF0aFN0eWxlOjpOb3JtYWw7CiAgICAgY2Fz
ZSBDU1NWYWx1ZUNvbXBhY3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2
ZXJ0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRjNDBkMzdlZjA1NjUzNTI0NzQ0NTYxNjllNTRl
ZjJkNDMwOGEzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDU1NSZXZlcnRWYWx1ZS5oIgotCi0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
U3RyaW5nIENTU1JldmVydFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1
cm4gInJldmVydCJfczsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUmV2ZXJ0VmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc1YjI0ZDcy
MzdkN2VmYTZlMzM1MmFmNmMzNTg0NzUzNjNmMWMwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUu
aAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNTU1ZhbHVl
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ1NTUmV2ZXJ0VmFsdWUgZmluYWwg
OiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkg
Y29uc3Q7Ci0KLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NSZXZlcnRWYWx1ZSYpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVk
PENTU1JldmVydFZhbHVlPjsKLSAgICBDU1NSZXZlcnRWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZykK
LSAgICAgICAgOiBDU1NWYWx1ZShSZXZlcnRDbGFzcykKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0
aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1JldmVydFZhbHVlLCBpc1JldmVydFZhbHVlKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDcyNmIwYjNiYzc1NDMzNjc2NTM2NDc0YTQwN2U3ZDA3ZGQ3NWViN2UuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Vuc2V0VmFsdWUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJDU1NVbnNldFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NTVW5zZXRWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJ1bnNldCJfczsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI2NTI1YzhkYTIwZDU5OWVjMmQ0MzRlNDdlZDQ4OWQ2YzM5MmQ2
ZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgQ1NTVW5zZXRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0g
ICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0
IENTU1Vuc2V0VmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAg
ZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NVbnNldFZhbHVlPjsKLSAgICBDU1NVbnNldFZh
bHVlKFN0YXRpY0NTU1ZhbHVlVGFnKQotICAgICAgICA6IENTU1ZhbHVlKFVuc2V0Q2xhc3MpCi0g
ICAgewotICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShDU1NVbnNldFZhbHVl
LCBpc1Vuc2V0VmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDYxYWM3MTFhNzM1
MWZkZGRkZDdmMjZmNjkwMjgwZDNkODFhNjFmMTIuLmU1YjZiNDRjNDFlOGI5NTk5MjAzMWQxZmRh
YTEwMTQyNjdjNTdmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtNDksOCArNDksNiBA
QAogI2luY2x1ZGUgIkNTU0dyYWRpZW50VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFnZVNldFZh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0luaGVyaXRl
ZFZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTGlu
ZUJveENvbnRhaW5WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU05hbWVkSW1hZ2VWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkNTU1BhaW50SW1hZ2VWYWx1ZS5oIgpAQCAtNjEsNyArNTksNiBAQAogI2luY2x1ZGUg
IkNTU1NoYWRvd1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU1VuaWNvZGVSYW5nZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVW5zZXRWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUGFpci5o
IgogI2luY2x1ZGUgIkNTU1ZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuaCIKQEAgLTgzLDE2ICs4MCwx
MSBAQCBzdHJ1Y3QgU2FtZVNpemVBc0NTU1ZhbHVlIHsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9m
KENTU1ZhbHVlKSA9PSBzaXplb2YoU2FtZVNpemVBc0NTU1ZhbHVlKSwgQ1NTX3ZhbHVlX3Nob3Vs
ZF9zdGF5X3NtYWxsKTsKIAotYm9vbCBDU1NWYWx1ZTo6aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFzcyAmJiBkb3du
Y2FzdDxDU1NJbml0aWFsVmFsdWU+KCp0aGlzKS5pc0ltcGxpY2l0KCk7Ci19Ci0KIERFRklORV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoQ1NTVmFsdWUpOwogCiBDU1NWYWx1ZTo6VHlw
ZSBDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlKCkgY29uc3QKIHsKLSAgICBpZiAoaXNJbmhlcml0ZWRW
YWx1ZSgpKQorICAgIGlmIChpc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1cm4gQ1NTX0lO
SEVSSVQ7CiAgICAgaWYgKGlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIENTU19Q
UklNSVRJVkVfVkFMVUU7CkBAIC0xODQsMTQgKzE3Niw2IEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFs
cyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gY29tcGFy
ZUNTU1ZhbHVlczxDU1NDcm9zc2ZhZGVWYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAgICAgICAgY2Fz
ZSBJbWFnZUNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW1h
Z2VWYWx1ZT4oKnRoaXMsIG90aGVyKTsKLSAgICAgICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAg
ICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0luaGVyaXRlZFZhbHVlPigqdGhp
cywgb3RoZXIpOwotICAgICAgICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgICAgIHJldHVy
biBjb21wYXJlQ1NTVmFsdWVzPENTU0luaXRpYWxWYWx1ZT4oKnRoaXMsIG90aGVyKTsKLSAgICAg
ICAgY2FzZSBVbnNldENsYXNzOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8
Q1NTVW5zZXRWYWx1ZT4oKnRoaXMsIG90aGVyKTsKLSAgICAgICAgY2FzZSBSZXZlcnRDbGFzczoK
LSAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU1JldmVydFZhbHVlPigqdGhp
cywgb3RoZXIpOwogICAgICAgICBjYXNlIEdyaWRBdXRvUmVwZWF0Q2xhc3M6CiAgICAgICAgICAg
ICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPigqdGhpcywg
b3RoZXIpOwogICAgICAgICBjYXNlIEdyaWRJbnRlZ2VyUmVwZWF0Q2xhc3M6CkBAIC0yODYsMTQg
KzI3MCw2IEBAIFN0cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NDcm9zc2ZhZGVWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAg
ICBjYXNlIEltYWdlQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NJbWFnZVZhbHVl
PigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0gICAg
ICAgIHJldHVybiBkb3duY2FzdDxDU1NJbmhlcml0ZWRWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1Rl
eHQoKTsKLSAgICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENT
U0luaXRpYWxWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIFVuc2V0Q2xh
c3M6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NVbnNldFZhbHVlPigqdGhpcykuY3VzdG9t
Q1NTVGV4dCgpOwotICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2Fz
dDxDU1NSZXZlcnRWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEdyaWRB
dXRvUmVwZWF0Q2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NHcmlkQXV0b1JlcGVh
dFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgR3JpZEludGVnZXJSZXBl
YXRDbGFzczoKQEAgLTQxMCwxOCArMzg2LDYgQEAgdm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiAg
ICAgY2FzZSBJbWFnZUNsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1
ZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIEluaGVyaXRlZENsYXNzOgotICAg
ICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTSW5oZXJpdGVkVmFsdWU+KHRoaXMpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJbml0aWFsQ2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxD
U1NJbml0aWFsVmFsdWU+KHRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBVbnNldENs
YXNzOgotICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTVW5zZXRWYWx1ZT4odGhpcyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIFJldmVydENsYXNzOgotICAgICAgICBkZWxldGUgZG93bmNh
c3Q8Q1NTUmV2ZXJ0VmFsdWU+KHRoaXMpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBHcmlk
QXV0b1JlcGVhdENsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTR3JpZEF1dG9SZXBl
YXRWYWx1ZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKQEAgLTUxMywxMiArNDc3LDM4IEBAIFJl
ZjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gQ1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdy
YXBwZXIoQ1NTU3R5bGVEZWNsYXJhCiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNsYXNz
VHlwZSgpID09IEluaGVyaXRlZENsYXNzIHx8IChjbGFzc1R5cGUoKSA9PSBVbnNldENsYXNzICYm
IENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKKyAgICByZXR1
cm4gaXNJbmhlcml0VmFsdWUoKSB8fCAoaXNVbnNldFZhbHVlKCkgJiYgQ1NTUHJvcGVydHk6Omlz
SW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOwogfQogCiBib29sIENTU1ZhbHVlOjp0cmVh
dEFzSW5pdGlhbFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gY2xhc3NUeXBlKCkgPT0gSW5pdGlhbENsYXNzIHx8IChjbGFzc1R5cGUoKSA9PSBVbnNl
dENsYXNzICYmICFDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7
CisgICAgcmV0dXJuIGlzSW5pdGlhbFZhbHVlKCkgfHwgKGlzVW5zZXRWYWx1ZSgpICYmICFDU1NQ
cm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7Cit9CisKK2Jvb2wgQ1NT
VmFsdWU6OmlzSW5pdGlhbFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlz
SW5pdGlhbCgpOwogfQogCitib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3du
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXRJbml0aWFsKCk7Cit9CisK
K2Jvb2wgQ1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnRoaXMpLmlzSW5oZXJpdCgpOworfQorCitib29sIENTU1ZhbHVlOjppc1Vuc2V0VmFsdWUoKSBj
b25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNVbnNldCgpOworfQorCitib29sIENTU1Zh
bHVlOjppc1JldmVydFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2
ZXJ0KCk7Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBhZTUwNmVmN2M5OTcyNzEy
OGExZDgxM2M1ZDIyNjRiNTBjN2YzMTQxLi42YThkNjBkYTg3YjI5NTZhYTlkYjNjODYwMDA3Mjdj
YmFhM2RlZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtMTA3LDExICsxMDcsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNJbWFnZVNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5
cGUgPT0gSW1hZ2VTZXRDbGFzczsgfQogICAgIGJvb2wgaXNJbWFnZVZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW1hZ2VDbGFzczsgfQogICAgIGJvb2wgaXNJbXBsaWNpdElu
aXRpYWxWYWx1ZSgpIGNvbnN0OwotICAgIGJvb2wgaXNJbmhlcml0ZWRWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xhc3NUeXBlID09IEluaGVyaXRlZENsYXNzOyB9Ci0gICAgYm9vbCBpc0luaXRp
YWxWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFzczsgfQot
ICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gVW5z
ZXRDbGFzczsgfQotICAgIGJvb2wgaXNSZXZlcnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xh
c3NUeXBlID09IFJldmVydENsYXNzOyB9Ci0gICAgYm9vbCBpc0dsb2JhbEtleXdvcmQoKSBjb25z
dCB7IHJldHVybiBpc0luaGVyaXRlZFZhbHVlKCkgfHwgaXNJbml0aWFsVmFsdWUoKSB8fCBpc1Vu
c2V0VmFsdWUoKSB8fCBpc1JldmVydFZhbHVlKCk7IH0KKyAgICBib29sIGlzSW5oZXJpdFZhbHVl
KCkgY29uc3Q7CisgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OworICAgIGJvb2wgaXNV
bnNldFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3QgeyByZXR1cm4gaXNJbmhlcml0VmFsdWUoKSB8
fCBpc0luaXRpYWxWYWx1ZSgpIHx8IGlzVW5zZXRWYWx1ZSgpIHx8IGlzUmV2ZXJ0VmFsdWUoKTsg
fQogICAgIGJvb2wgdHJlYXRBc0luaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAg
ICBib29sIHRyZWF0QXNJbmhlcml0ZWRWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBi
b29sIGlzTGluZWFyR3JhZGllbnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09
IExpbmVhckdyYWRpZW50Q2xhc3M7IH0KQEAgLTE5MSwxMSArMTkxLDYgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBGb250UGFsZXR0ZVZhbHVlc092ZXJyaWRlQ29sb3JzQ2xhc3MsCiAgICAgICAgIEZ1
bmN0aW9uQ2xhc3MsCiAKLSAgICAgICAgSW5oZXJpdGVkQ2xhc3MsCi0gICAgICAgIEluaXRpYWxD
bGFzcywKLSAgICAgICAgVW5zZXRDbGFzcywKLSAgICAgICAgUmV2ZXJ0Q2xhc3MsCi0KICAgICAg
ICAgUmVmbGVjdENsYXNzLAogICAgICAgICBTaGFkb3dDbGFzcywKICAgICAgICAgVW5pY29kZVJh
bmdlQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDUwMTgzNWNjNDRl
ZGY1OWFmMjQ4NmM1YWU0ODY5ZmNlNjZhNzI4ZmQuLjQzMTU5NDczOGNmNjY5NmE5OTliNzRkYjEx
ZDY1Yzc3NDAzZmEzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0zOCwx
MiArMzgsOCBAQCBMYXp5TmV2ZXJEZXN0cm95ZWQ8U3RhdGljQ1NTVmFsdWVQb29sPiBzdGF0aWND
U1NWYWx1ZVBvb2w7CiAKIFN0YXRpY0NTU1ZhbHVlUG9vbDo6U3RhdGljQ1NTVmFsdWVQb29sKCkK
IHsKLSAgICBtX2luaGVyaXRlZFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFs
dWUpOwotICAgIG1faW1wbGljaXRJbml0aWFsVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0
aWNDU1NWYWx1ZSwgdHJ1ZSk7Ci0gICAgbV9leHBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3Qo
Q1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBmYWxzZSk7Ci0gICAgbV91bnNldFZhbHVlLmNvbnN0
cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOwotICAgIG1fcmV2ZXJ0VmFsdWUuY29uc3Ry
dWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0KKyAgICBtX2ltcGxpY2l0SW5pdGlhbFZh
bHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVl
OjpJbXBsaWNpdEluaXRpYWxWYWx1ZSk7CisgICAgCiAgICAgbV90cmFuc3BhcmVudENvbG9yLmNv
bnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENvbG9yOjp0cmFuc3BhcmVudEJsYWNr
KTsKICAgICBtX3doaXRlQ29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwg
Q29sb3I6OndoaXRlKTsKICAgICBtX2JsYWNrQ29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0
aWNDU1NWYWx1ZSwgQ29sb3I6OmJsYWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZVBvb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaAppbmRl
eCAxZmIyMzE2ZWZjMDMxMGEzYmZjYTM4NGYxMGM3ZGUwNzFmNDFlOWVkLi4xZDZlYzExNDJmNzMz
NTgwYWE3NDQ1N2E0OGZiOTRkNjBkYWY2NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVQb29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5o
CkBAIC0yNSwxMiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNTU0luaGVy
aXRlZFZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCi0jaW5jbHVk
ZSAiQ1NTUmV2ZXJ0VmFsdWUuaCIKLSNpbmNsdWRlICJDU1NVbnNldFZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNvbG9ySGFzaC5oIgogI2luY2x1ZGUg
PHV0aWxpdHk+CkBAIC01NSwxMSArNTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFN0YXRp
Y0NTU1ZhbHVlUG9vbCgpOwogCi0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRlZFZh
bHVlPiBtX2luaGVyaXRlZFZhbHVlOwotICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbml0aWFs
VmFsdWU+IG1faW1wbGljaXRJbml0aWFsVmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENT
U0luaXRpYWxWYWx1ZT4gbV9leHBsaWNpdEluaXRpYWxWYWx1ZTsKLSAgICBMYXp5TmV2ZXJEZXN0
cm95ZWQ8Q1NTVW5zZXRWYWx1ZT4gbV91bnNldFZhbHVlOwotICAgIExhenlOZXZlckRlc3Ryb3ll
ZDxDU1NSZXZlcnRWYWx1ZT4gbV9yZXZlcnRWYWx1ZTsKKyAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8
Q1NTUHJpbWl0aXZlVmFsdWU+IG1faW1wbGljaXRJbml0aWFsVmFsdWU7CiAKICAgICBMYXp5TmV2
ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdHJhbnNwYXJlbnRDb2xvcjsKICAgICBM
YXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fd2hpdGVDb2xvcjsKQEAgLTg1
LDExICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNyZWF0ZUZv
bnRGYWNlVmFsdWUoY29uc3QgQXRvbVN0cmluZyYpOwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gY3JlYXRlRm9udEZhbWlseVZhbHVlKGNvbnN0IFN0cmluZyYsIEZyb21TeXN0ZW1Gb250SUQg
PSBGcm9tU3lzdGVtRm9udElEOjpObyk7Ci0gICAgUmVmPENTU0luaGVyaXRlZFZhbHVlPiBjcmVh
dGVJbmhlcml0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9pbmhlcml0
ZWRWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NJbml0aWFsVmFsdWU+IGNyZWF0ZUltcGxpY2l0
SW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX2ltcGxpY2l0SW5p
dGlhbFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1ZT4gY3JlYXRlRXhwbGlj
aXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1fZXhwbGljaXRJ
bml0aWFsVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTVW5zZXRWYWx1ZT4gY3JlYXRlVW5zZXRW
YWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV91bnNldFZhbHVlLmdldCgpOyB9
Ci0gICAgUmVmPENTU1JldmVydFZhbHVlPiBjcmVhdGVSZXZlcnRWYWx1ZSgpIHsgcmV0dXJuIHN0
YXRpY0NTU1ZhbHVlUG9vbC0+bV9yZXZlcnRWYWx1ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWND
U1NWYWx1ZVBvb2wtPm1faW1wbGljaXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KICAgICBSZWY8Q1NT
UHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUlEIGlkZW50aWZp
ZXIpOwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1Byb3BlcnR5SUQgaWRlbnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVh
dGVDb2xvclZhbHVlKGNvbnN0IENvbG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCmluZGV4IDdhOGYxZGEzMDJkYmFkMzY0NDRi
ZTEzYzRhMmJjNjM2NjY1MjFhZjEuLjYxOWRiZWMzZWU5NzNjNDgyZTFhNzg1NTU1N2RhYTQwNDFh
ZTRkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5oCkBAIC04OSw2ICs4OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0U3RyaW5nVmFsdWUodW5zaWduZWQgc2hvcnQsIGNvbnN0IFN0cmluZyYp
IHsgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07IH0KIAog
ICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPnN0cmluZ1Zh
bHVlKCk7IH0KKyAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlLT5pc0NTU1dpZGVLZXl3b3JkKCk7IH0KIAogcHJpdmF0ZToKICAgICBEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZShjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgdmFsdWUsIENTU1N0eWxl
RGVjbGFyYXRpb24mIG93bmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApp
bmRleCBjODNhZDhkYTMyZmQ5M2E2MDk4ZjdiYzQ4M2QzYmQ5MzQzMTMwNWJjLi5hZjg5N2NkMTdj
NzA4YWJhODUwNGM0ZTU1YTVlODYwYzY1ZGEyNWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0
b3JDaGVja2VyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQu
aCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggZTUwOWVlNjdmOTA3ZmEwNmU0OTk2ODQz
NmM2MjNmNDFiNGQ1YTQ0Ny4uMDYzZWYzNThhZmY3MTBjMzZmNDBlOWI4MGQxOWRhZTRiODcyMjNl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTQwMCw3ICs0MDAs
NyBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJSYWRpdXNWYWx1ZShjb25zdCBTdHls
ZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbgogICAgIGlmICh0b3BMZWZ0LmlzSW1wb3J0YW50
KCkgIT0gdG9wUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCB0b3BSaWdodC5pc0ltcG9ydGFudCgpICE9
IGJvdHRvbVJpZ2h0LmlzSW1wb3J0YW50KCkgfHwgYm90dG9tUmlnaHQuaXNJbXBvcnRhbnQoKSAh
PSBib3R0b21MZWZ0LmlzSW1wb3J0YW50KCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAot
ICAgIGlmICh0b3BMZWZ0VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiB0b3BSaWdodFZhbHVl
LT5pc0luaGVyaXRlZFZhbHVlKCkgJiYgYm90dG9tUmlnaHRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1
ZSgpICYmIGJvdHRvbUxlZnRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgIGlmICh0b3BM
ZWZ0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkgJiYgdG9wUmlnaHRWYWx1ZS0+aXNJbmhlcml0VmFs
dWUoKSAmJiBib3R0b21SaWdodFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpICYmIGJvdHRvbUxlZnRW
YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGdldFZhbHVlTmFtZShDU1NW
YWx1ZUluaGVyaXQpOwogCiAgICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbml0aWFsVmFsdWUoKSB8
fCB0b3BSaWdodFZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IGJvdHRvbVJpZ2h0VmFsdWUtPmlz
SW5pdGlhbFZhbHVlKCkgfHwgYm90dG9tTGVmdFZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpKSB7CkBA
IC04NTIsOCArODUyLDggQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6cGFnZUJyZWFrUHJvcGVy
dHlWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG8KICAgICBhdXRvIHZhbHVl
ID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShzaG9ydGhhbmQucHJvcGVydGllcygpWzBdKTsKICAgICBp
ZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIGlzR2xvYmFsS2V5d29yZCBjaGVjayBhZnRlciB3ZSBkbyB0aGlzIGNvbnNpc3RlbnRs
eSBmb3IgYWxsIHNob3J0aGFuZHMgaW4gZ2V0UHJvcGVydHlWYWx1ZS4KLSAgICBpZiAodmFsdWUt
PmlzR2xvYmFsS2V5d29yZCgpKQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBpc0NTU1dpZGVL
ZXl3b3JkIGNoZWNrIGFmdGVyIHdlIGRvIHRoaXMgY29uc2lzdGVudGx5IGZvciBhbGwgc2hvcnRo
YW5kcyBpbiBnZXRQcm9wZXJ0eVZhbHVlLgorICAgIGlmICh2YWx1ZS0+aXNDU1NXaWRlS2V5d29y
ZCgpKQogICAgICAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQoKTsKICAgICAKICAgICBpZiAoIWlz
PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDM3YTExNTFhZGEyZTk3NWI0Y2M0N2Q3
YjZlNDc5NjgzZDFjMTYzZmYuLmFhM2VhMjkyNTQ1NDVmZjI2OWUyYjVmZjFmZWNlMGZiOTVmOTY0
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBh
dGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRo
cy5jcHAKQEAgLTExMTUsMTkgKzExMTUsMTEgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcGFy
c2VLZXl3b3JkVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBTdHJpbmdWaWV3IHMKICAg
ICBpZiAoIXZhbHVlSUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFwYXJz
aW5nRGVzY3JpcHRvcikgewotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQp
Ci0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJbmhl
cml0ZWRWYWx1ZSgpOwotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwpCi0g
ICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNp
dEluaXRpYWxWYWx1ZSgpOwotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0KQot
ICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVW5zZXRW
YWx1ZSgpOwotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVydCkKLSAgICAgICAg
ICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVJldmVydFZhbHVlKCk7
Ci0gICAgfQotICAgIAorICAgIGlmICghcGFyc2luZ0Rlc2NyaXB0b3IgJiYgaXNDU1NXaWRlS2V5
d29yZCh2YWx1ZUlEKSkKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCku
Y3JlYXRlVmFsdWUodmFsdWVJRCk7CisKICAgICBpZiAoQ1NTUGFyc2VyRmFzdFBhdGhzOjppc1Zh
bGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcGVydHlJZCwgdmFsdWVJRCwgY29udGV4dCkp
Ci0gICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1
ZUlEKTsKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVmFs
dWUodmFsdWVJRCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCmluZGV4IDgxNzRjNzMyZTY4MWRkN2QzZTQwMTA0
MTRkMGNiMDFhM2UzYzRjYTMuLjY0ODJiNDk4M2I5ODZmZTJmOGI4YjNlNWNiMzI0MmFmMzczNTUx
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaApAQCAt
NTksNCArNTksMTUgQEAgYm9vbCBpc05hbWVDb2RlUG9pbnQoQ2hhcmFjdGVyVHlwZSBjKQogCiBi
b29sIGlzVmFsdWVBbGxvd2VkSW5Nb2RlKHVuc2lnbmVkIHNob3J0LCBDU1NQYXJzZXJNb2RlKTsK
IAorc3RhdGljIGlubGluZSBib29sIGlzQ1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCB2YWx1ZUlE
KQoreworICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlSW5oZXJpdCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQgfHwgdmFsdWVJRCA9
PSBDU1NWYWx1ZVJldmVydDsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRJZGVudGlm
aWVyKENTU1ZhbHVlSUQgdmFsdWVJRCkKK3sKKyAgICAvLyAiZGVmYXVsdCIgaXMgb2Jzb2xldGUg
YXNzIENTUy13aWRlIGtleXdvcmQgYnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGlkZW50aWZp
ZXIuCisgICAgcmV0dXJuICFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZhbHVlSUQgIT0g
Q1NTVmFsdWVEZWZhdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IGZkMWQwNmVm
ZjdiOWI1MmRmM2RjYTc2NWI0ZDk4NTRmZmQ5MzFkYmYuLmIwOWMxNGViYTdiZmU5ZjEyODg1NmFk
NjEzZjk2YTJhNDFmN2YxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yNTgsMjAgKzI1OCwxMSBAQCBzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiBtYXliZUNvbnN1bWVDU1NXaWRlS2V5d29yZChDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKICAgICBpZiAoIXJhbmdlQ29weS5hdEVuZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWU7Ci0gICAgaWYgKHZhbHVlSUQgPT0gQ1NT
VmFsdWVJbmhlcml0KQotICAgICAgICB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCku
Y3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsKLSAgICBlbHNlIGlmICh2YWx1ZUlEID09IENTU1ZhbHVl
SW5pdGlhbCkKLSAgICAgICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1
ZVVuc2V0KQotICAgICAgICB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
VW5zZXRWYWx1ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQpCi0g
ICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVSZXZlcnRWYWx1
ZSgpOwotICAgIGVsc2UKKyAgICBpZiAoIWlzQ1NTV2lkZUtleXdvcmQodmFsdWVJRCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmFuZ2UgPSByYW5nZUNvcHk7Ci0gICAgcmV0dXJu
IHZhbHVlOworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVl
KHZhbHVlSUQpOwogfQogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJz
ZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGNvbnN0IENTU1BhcnNlclRva2Vu
UmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
CmluZGV4IDNkNGZmOTQwZTRjZDU0ZTE2ZTBiNTFkNzE4NjIyM2Y3OTA0ZTYzY2YuLmJlNmUwNmNh
ZWQzOTM4NGI1YTRlYTE4Y2ZlN2FiNDE2ZTdlYTY3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTU5LDEx
ICs1OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIENTU1Byb3BlcnR5UGFy
c2VySGVscGVycyB7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1Zh
bHVlSUQgaWQpCi17Ci0gICAgcmV0dXJuIGlkID09IENTU1ZhbHVlSW5pdGlhbCB8fCBpZCA9PSBD
U1NWYWx1ZUluaGVyaXQgfHwgaWQgPT0gQ1NTVmFsdWVVbnNldCB8fCBpZCA9PSBDU1NWYWx1ZVJl
dmVydCB8fCBpZCA9PSBDU1NWYWx1ZURlZmF1bHQ7Ci19Ci0KIGJvb2wgY29uc3VtZUNvbW1hSW5j
bHVkaW5nV2hpdGVzcGFjZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBDU1NQ
YXJzZXJUb2tlbiB2YWx1ZSA9IHJhbmdlLnBlZWsoKTsKQEAgLTEzNzAsNyArMTM2NSw3IEBAIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUlkZW50UmFuZ2UoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIENTU1ZhbHVlCiAKIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3Vt
ZUN1c3RvbUlkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBib29sIHNob3VsZExvd2Vy
Y2FzZSkKIHsKLSAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAhPSBJZGVudFRva2VuIHx8IGlz
Q1NTV2lkZUtleXdvcmQocmFuZ2UucGVlaygpLmlkKCkpKQorICAgIGlmIChyYW5nZS5wZWVrKCku
dHlwZSgpICE9IElkZW50VG9rZW4gfHwgIWlzVmFsaWRJZGVudGlmaWVyKHJhbmdlLnBlZWsoKS5p
ZCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBpZGVudGlmaWVyID0gcmFu
Z2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1ZSgpOwogICAgIHJldHVybiBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUN1c3RvbUlkZW50KHNob3VsZExvd2VyY2FzZSA/
IGlkZW50aWZpZXIuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSA6IGlkZW50aWZpZXIudG9TdHJp
bmcoKSk7CkBAIC0zNjQ4LDcgKzM2NDMsNyBAQCBBdG9tU3RyaW5nIGNvbnN1bWVDb3VudGVyU3R5
bGVOYW1lSW5QcmVsdWRlKENTU1BhcnNlclRva2VuUmFuZ2UmIHByZWx1ZGUpCiAgICAgaWYgKCFw
cmVsdWRlLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBBdG9tU3RyaW5nKCk7CiAgICAgLy8gRW5z
dXJlIHRoaXMgdG9rZW4gaXMgYSB2YWxpZCA8Y3VzdG9tLWlkZW50Pi4KLSAgICBpZiAobmFtZVRv
a2VuLnR5cGUoKSAhPSBJZGVudFRva2VuIHx8IGlzQ1NTV2lkZUtleXdvcmQobmFtZVRva2VuLmlk
KCkpKQorICAgIGlmIChuYW1lVG9rZW4udHlwZSgpICE9IElkZW50VG9rZW4gfHwgIWlzVmFsaWRJ
ZGVudGlmaWVyKG5hbWVUb2tlbi5pZCgpKSkKICAgICAgICAgcmV0dXJuIEF0b21TdHJpbmcoKTsK
ICAgICAvLyBJbiB0aGUgY29udGV4dCBvZiB0aGUgcHJlbHVkZSBvZiBhbiBAY291bnRlci1zdHls
ZSBydWxlLCBhIDxjb3VudGVyLXN0eWxlLW5hbWU+IG11c3Qgbm90IGJlIGFuIEFTQ0lJCiAgICAg
Ly8gY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3IgImRlY2ltYWwiIG9yICJkaXNjIi4gTm8gPGNv
dW50ZXItc3R5bGUtbmFtZT4sIHByZWx1ZGUgb3Igbm90LCBtYXkgYmUgYW4gQVNDSUkKQEAgLTM3
MjUsNyArMzcyMCw3IEBAIFN0cmluZyBjb25jYXRlbmF0ZUZhbWlseU5hbWUoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmQocmFuZ2Uu
Y29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1ZSgpKTsKICAgICB9Ci0gICAgaWYgKCFh
ZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQoZmlyc3RUb2tlbi5pZCgpKSkKKyAgICBpZiAo
IWFkZGVkU3BhY2UgJiYgIWlzVmFsaWRJZGVudGlmaWVyKGZpcnN0VG9rZW4uaWQoKSkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IGQ5
NDRkOTg0ZGMzZjhlMTkzOWYxZmM3NDNmOGE5NDBhMTc3YTFlMmUuLjE2NDc2NmRjMzI1Mzc1ZTdl
YjFmOGE3NWRiYWNkNDIyMjEzMGZkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTU4Nyw3ICs1ODcsNyBAQCBTdHJpbmcgSFRNTENvbnZl
cnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVydHlJ
RCBwcm9wZQogCiAgICAgaWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVTdHlsZVBy
b3BlcnR5Rm9yRWxlbWVudChlbGVtZW50LCBwcm9wZXJ0eUlkKSkgewogICAgICAgICBTdHJpbmcg
cmVzdWx0OwotICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSkKKyAgICAgICAg
aWYgKHZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICAgICAgaW5oZXJpdCA9IHRydWU7
CiAgICAgICAgIGVsc2UgaWYgKHN0cmluZ0Zyb21DU1NWYWx1ZSgqdmFsdWUsIHJlc3VsdCkpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNzM1LDcgKzczNSw3IEBAIGJvb2wgSFRNTENv
bnZlcnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQ
cm9wZXJ0eUlEIHByCiAgICAgaWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVTdHls
ZVByb3BlcnR5Rm9yRWxlbWVudChlbGVtZW50LCBwcm9wZXJ0eUlkKSkgewogICAgICAgICBpZiAo
aXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkgJiYgZmxvYXRWYWx1ZUZyb21QcmltaXRpdmVW
YWx1ZShkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSwgcmVzdWx0KSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUo
KSkKKyAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICAgICAgaW5o
ZXJpdCA9IHRydWU7CiAgICAgfQogCkBAIC04NzcsNyArODc3LDcgQEAgQ29sb3IgSFRNTENvbnZl
cnRlckNhY2hlczo6Y29sb3JQcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9w
ZXJ0eUlEIHAKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJv
cGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxD
U1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnZhbHVlKS5pc1JHQkNvbG9yKCkpCiAgICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9y
KGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmNvbG9yKCksIGlnbm9yZURlZmF1
bHRDb2xvciwgZWxlbWVudCk7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgp
KQorICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhl
cml0ID0gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
Y3BwCmluZGV4IGM2YzM2YWU2N2Y1MDM5NzEzNmQ3MGZjMWYxYmUzMDBhNGIyY2Y2MzguLjg5ZGI4
NWIzNWZkN2MxMjNjMTRlNGE0MmNhZWU2ZjBhZDgxZDMyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmNwcApAQCAtNDg0LDI0ICs0ODQsMjQgQEAgUmVmPFN0eWxlUHJv
cGVydGllcz4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlKCkgY29uc3QK
ICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRXaWR0aCwg
Q1NTVmFsdWVUaGluKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9y
ZGVyTGVmdFN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHlsZSwgQ1NTVmFsdWVTb2xpZCk7Ci0gICAgICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3Jl
YXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlSW5oZXJpdCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNvbGlkQm9yZGVyc1Jvd3NP
bmx5OgogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BXaWR0
aCwgQ1NTVmFsdWVUaGluKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyQm90dG9tV2lkdGgsIENTU1ZhbHVlVGhpbik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcFN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKICAgICAgICAg
c3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tU3R5bGUsIENTU1ZhbHVl
U29saWQpOwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xv
ciwgY3NzVmFsdWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBTb2xpZEJvcmRlcnM6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlcldpZHRoLCBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoMSwgQ1NTVW5pdFR5cGU6OkNTU19Q
WCkpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwg
Y3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVNvbGlkKSk7Ci0gICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEluc2V0Qm9yZGVy
czoKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIGNz
c1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSgxLCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7CiAgICAgICAg
IHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBjc3NWYWx1ZVBvb2wu
Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5zZXQpKTsKLSAgICAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhl
cml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9y
ZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhl
cml0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm9Cb3JkZXJzOgogICAgICAgICAvLyBJ
ZiAncnVsZXM9bm9uZScgdGhlbiBhbGxvdyBhbnkgYm9yZGVycyBzZXQgYXQgY2VsbCBsZXZlbCB0
byB0YWtlIGVmZmVjdC4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxl
Y3Rvci5jcHAKaW5kZXggODFiYWI5M2E0MWJiNmM0YTg5M2Q1YjhiM2FlYTZlMThhZWMxNDc1ZC4u
YmViODk2N2ZkYmNkZTQzMjg1NGQxNTNiYTljZTI2YzY3NzNlMzBmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNjAyLDcgKzYwMiw3IEBA
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKE1hdGNoZWRQ
cm9wZXJ0aWVzJiYgbWF0Y2hlZFByb3BlCiAgICAgICAgICAgICAvLyBhcyB0aGV5IG1pZ2h0IG92
ZXJyaWRlIHRoZSB2YWx1ZSBpbmhlcml0ZWQgaGVyZS4gRm9yIHRoaXMgcmVhc29uIHdlIGRvbid0
IGFsbG93IGRlY2xhcmF0aW9ucyB3aXRoCiAgICAgICAgICAgICAvLyBleHBsaWNpdGx5IGluaGVy
aXRlZCBwcm9wZXJ0aWVzIHRvIGJlIGNhY2hlZC4KICAgICAgICAgICAgIGNvbnN0IENTU1ZhbHVl
JiB2YWx1ZSA9ICpjdXJyZW50LnZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAodmFsdWUuaXNJbmhl
cml0ZWRWYWx1ZSgpKQorICAgICAgICAgICAgaWYgKHZhbHVlLmlzSW5oZXJpdFZhbHVlKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBUaGUgdmFsdWUg
Y3VycmVudENvbG9yIGhhcyBpbXBsaWNpdGVseSB0aGUgc2FtZSBzaWRlIGVmZmVjdC4gSXQgZGVw
ZW5kcyBvbiB0aGUgdmFsdWUgb2YgY29sb3IsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlD
YXNjYWRlLmNwcAppbmRleCA3ZGY3YTc1YWFkMDA4ZTk1OWEwOTQ3NTNiZmNkZTNmNjMxNDY2NmVj
Li5lMjkzYmE2OTNiMDQ1NGY3MGEwYzVmN2Q2YTA5M2IwYTZjZTMyNmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBib29sIFBy
b3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2goY29uc3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNoZWRQ
cm9wZXJ0aWVzLCBDYXNjYQogICAgICAgICBpZiAobV9pbmNsdWRlZFByb3BlcnRpZXMgPT0gSW5j
bHVkZWRQcm9wZXJ0aWVzOjpJbmhlcml0ZWRPbmx5ICYmICFjdXJyZW50LmlzSW5oZXJpdGVkKCkp
IHsKICAgICAgICAgICAgIC8vIEluaGVyaXRlZCBvbmx5IG1vZGUgaXMgdXNlZCBhZnRlciBtYXRj
aGVkIHByb3BlcnRpZXMgY2FjaGUgaGl0LgogICAgICAgICAgICAgLy8gQSBtYXRjaCB3aXRoIGEg
dmFsdWUgdGhhdCBpcyBleHBsaWNpdGx5IGluaGVyaXRlZCBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVu
IGNhY2hlZC4KLSAgICAgICAgICAgIEFTU0VSVCghY3VycmVudC52YWx1ZSgpLT5pc0luaGVyaXRl
ZFZhbHVlKCkpOworICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LnZhbHVlKCktPmlzSW5oZXJp
dFZhbHVlKCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3VycmVudC5pZCgpOwpAQCAtMzA4LDcgKzMwOCw3IEBA
IFByb3BlcnR5Q2FzY2FkZTo6RGlyZWN0aW9uIFByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZURpcmVj
dGlvbkFuZFdyaXRpbmdNb2RlKERpcmVjCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgbWF0Y2hl
ZFByb3BlcnRpZXMgOiBkZWNsYXJhdGlvbnNGb3JDYXNjYWRlTGV2ZWwobV9tYXRjaFJlc3VsdCwg
Y2FzY2FkZUxldmVsKSkgewogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQg
PSBtYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzLT5wcm9wZXJ0eUNvdW50KCk7IGkgPCBjb3Vu
dDsgKytpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IG1hdGNoZWRQcm9wZXJ0
aWVzLnByb3BlcnRpZXMtPnByb3BlcnR5QXQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9w
ZXJ0eS52YWx1ZSgpLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgICAgICAgICAgaWYgKCFw
cm9wZXJ0eS52YWx1ZSgpLT5pc1ByaW1pdGl2ZVZhbHVlKCkgfHwgcHJvcGVydHkudmFsdWUoKS0+
aXNDU1NXaWRlS2V5d29yZCgpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5LmlkKCkpIHsKICAgICAgICAgICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V3JpdGluZ01vZGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNw
cAppbmRleCAzYmEyZDk2ZWQ3MzQyYTA1NDk5YzcwNzJiYTU3MzZiNjNiMmZiMTUzLi45ZDZjNmI0
Mzk5MGE4YTliZTEwYjYyMjczZDA3OTJiOThiZTU4YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQnVpbGRlci5jcHAKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIEJ1aWxkZXI6OmFwcGx5UHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NTVmFsdWUmIHZhbHVlLCBTZWxlY3RvckNoZWNrZXI6
OgogICAgICAgICBjdXN0b21Qcm9wZXJ0eVJlZ2lzdGVyZWQgPSBtX3N0YXRlLmRvY3VtZW50KCku
Z2V0Q1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5U2V0KCkuZ2V0KG5hbWUpOwogICAgIH0KIAot
ICAgIGJvb2wgaXNJbmhlcml0ID0gdmFsdWVUb0FwcGx5LT5pc0luaGVyaXRlZFZhbHVlKCkgfHwg
Y3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdDsKKyAgICBib29sIGlzSW5o
ZXJpdCA9IHZhbHVlVG9BcHBseS0+aXNJbmhlcml0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZh
bHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0OwogICAgIGJvb2wgaXNJbml0aWFsID0gdmFsdWVUb0Fw
cGx5LT5pc0luaXRpYWxWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1
ZUluaXRpYWw7CiAKICAgICBib29sIGlzVW5zZXQgPSB2YWx1ZVRvQXBwbHktPmlzVW5zZXRWYWx1
ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0OwpAQCAtMzYxLDgg
KzM2MSw4IEBAIFJlZjxDU1NWYWx1ZT4gQnVpbGRlcjo6cmVzb2x2ZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCwgQ1NTVmFsdWUmIHZhbHVlKQogICAgIC8vIElmIHRoZSBjYXNjYWRlIGhh
cyBhbHJlYWR5IGFwcGxpZWQgdGhpcyBpZCwgdGhlbiB3ZSBkZXRlY3RlZCBhIGN5Y2xlLCBhbmQg
dGhpcyB2YWx1ZSBzaG91bGQgYmUgdW5zZXQuCiAgICAgaWYgKCF2YXJpYWJsZVZhbHVlIHx8IG1f
c3RhdGUubV9hcHBsaWVkUHJvcGVydGllcy5nZXQocHJvcGVydHlJRCkpIHsKICAgICAgICAgaWYg
KENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKQotICAgICAgICAg
ICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUo
KTsKLSAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhwbGlj
aXRJbml0aWFsVmFsdWUoKTsKKyAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmds
ZXRvbigpLmNyZWF0ZVZhbHVlKENTU1ZhbHVlSW5oZXJpdCk7CisgICAgICAgIHJldHVybiBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7CiAgICAg
fQogCiAgICAgcmV0dXJuICp2YXJpYWJsZVZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VFbGVtZW50LmNwcAppbmRleCA1YmMyNjVhNjM3ZDQyNTUzNDM4NWEwYzljNTIxODQ2ODE5
MDlkMDJhLi40MjJhM2I5NTFmMGJmMGEwMzU5OWM2ZDBhMzQyZDQwMTY3ZWM3YTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcApAQCAtODQsNyArODQsNyBAQCB2
b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICAgICAgLy8gUmF0aGVyIHRoYW4gaW52YXNp
dmVseSBtb2RpZnlpbmcgdGhlIHBhcnNlciBmb3IgdGhlIHByb3BlcnRpZXMgdG8gaGF2ZSBhIHNw
ZWNpYWwgbW9kZSwgd2UgY2FuIHNpbXBseSBkZXRlY3QgdGhlIGVycm9yIGNvbmRpdGlvbiBhZnRl
ci10aGUtZmFjdCBhbmQKICAgICAgICAgICAgIC8vIGF2b2lkIGl0IGV4cGxpY2l0bHkuCiAgICAg
ICAgICAgICBpZiAoYXV0byBwYXJzZWRWYWx1ZSA9IHByb3BlcnRpZXMuZ2V0UHJvcGVydHlDU1NW
YWx1ZShwcm9wZXJ0eUlkKSkgewotICAgICAgICAgICAgICAgIGlmIChwYXJzZWRWYWx1ZS0+aXNH
bG9iYWxLZXl3b3JkKCkpCisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlLT5pc0NTU1dp
ZGVLZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucmVtb3ZlUHJvcGVy
dHkocHJvcGVydHlJZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443483</attachid>
            <date>2021-11-06 05:36:51 -0700</date>
            <delta_ts>2021-11-06 07:04:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211106143650.patch</filename>
            <type>text/plain</type>
            <size>66337</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUzMzQzMTliMTBhMTFm
NGExMjBkNDgzZGQzMjg5YWY4ZGUyOGY4ZS4uZWIzMzdiZWNiMTQzYmVhMzJhYjlhODQ2M2Q2ZjQx
OWJiNWE0Y2U3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMS0xMS0wNiAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
eSBjYW4gYWxsIGJlIGhhbmRsZWQgYnkgQ1NTUHJpbWl0aXZlVmFsdWUuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKworICAgICAgICBBdm9pZCBj
aGFuZ2luZyB0aGUgY2xhc3MgdHlwZSB2aXNpYmxlIGluIENTU09NLgorCisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW5k
ZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxhZ3NUb0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OnJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaGVyaXRlZFZh
bHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogY3NzL0NTU0luaXRpYWxWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NSZXZlcnRWYWx1ZS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogY3NzL0NTU1JldmVydFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3Nz
L0NTU1Vuc2V0VmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NVbnNldFZhbHVl
Lmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlOjpjc3NWYWx1ZVR5cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VmFsdWU6OmVxdWFscyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJlYXRBc0luaGVyaXRlZFZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjp0cmVhdEFzSW5pdGlhbFZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0luaXRpYWxWYWx1ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbmhlcml0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OmlzVW5zZXRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NWYWx1ZTo6aXNSZXZlcnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6aXNDU1NXaWRlS2V5d29yZCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFsdWU6OmlzSW5oZXJpdGVkVmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OmlzSW5pdGlhbFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vuc2V0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzR2xvYmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0
aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NTU1ZhbHVlUG9vbCk6CisgICAgICAgICogY3NzL0NTU1Zh
bHVlUG9vbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVJbXBsaWNp
dEluaXRpYWxWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUlu
aGVyaXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6
Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFsdWVQb29sOjpjcmVhdGVVbnNldFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlUmV2ZXJ0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAq
IGNzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVBy
b3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJS
YWRpdXNWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OnBh
Z2VCcmVha1Byb3BlcnR5VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFy
c2VyRmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlS2V5d29yZFZhbHVlKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oOgorICAgICAgICAoV2ViQ29y
ZTo6aXNDU1NXaWRlS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkSWRlbnRpZmll
cik6CisKKyAgICAgICAgU2VwYXJhdGUgdGhlIGNvbmNlcHQgb2YgdmFsaWQgaWRlbnRpZmllciBm
cm9tIHRoYXQgb2YgQ1NTLXdpZGUga2V5d29yZC4gVGhlIGZvcm1lciBhbHNvIGV4Y2x1ZGVzIHRo
ZSBvYnNvbGV0ZSAiZGVmYXVsdCIga2V5d29yZC4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWF5YmVDb25zdW1lQ1NTV2lk
ZUtleXdvcmQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Y29uc3Vt
ZUN1c3RvbUlkZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVy
czo6Y29uc3VtZUNvdW50ZXJTdHlsZU5hbWVJblByZWx1ZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25jYXRlbmF0ZUZhbWlseU5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjppc0NTU1dpZGVLZXl3b3JkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpmb250V2VpZ2h0SXNCb2xkKToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVl
Rm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVydGVyQ2FjaGVzOjpmbG9hdFByb3BlcnR5VmFs
dWVGb3JOb2RlKToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlW
YWx1ZUZvck5vZGUpOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUgY29u
c3QpOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFByb3BlcnRp
ZXMpOgorICAgICAgICAqIHN0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjphZGRNYXRjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZTo6UHJvcGVydHlDYXNjYWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3JpdGluZ01vZGUg
Y29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6QnVpbGRlcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QnVpbGRlcjo6cmVzb2x2ZVZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUpOgorCiAyMDIxLTExLTA0ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgRmFjdG9yIG91dCBkaWREcmF3IC8gZGlkRHJhd0VudGlyZUNhbnZh
cyBjYWxscyBpbiBjYW52YXMgZHJhd2luZyBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOGRh
MjRiNzhkYTU3ZGMzYmQyY2VkMTE4NGMyZWRkZmYwYjhkZTI0Ni4uNmU4ZGFiNzY1MmY1YjM0YmZh
YWZlODNiZmQ3NzIzYWNmMDBkYzgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTY5MCw4ICs2OTAsNiBA
QCBjc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cAogY3NzL0NTU0ltYWdlVmFsdWUuY3BwCiBjc3MvQ1NTSW1wb3J0UnVsZS5jcHAKLWNzcy9DU1NJ
bmhlcml0ZWRWYWx1ZS5jcHAKLWNzcy9DU1NJbml0aWFsVmFsdWUuY3BwCiBjc3MvQ1NTS2V5ZnJh
bWVSdWxlLmNwcAogY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCiBjc3MvQ1NTTGF5ZXJSdWxlLmNw
cApAQCAtNzA3LDcgKzcwNSw2IEBAIGNzcy9DU1NQcm9wZXJ0eS5jcHAKIGNzcy9DU1NQcm9wZXJ0
eVNvdXJjZURhdGEuY3BwCiBjc3MvQ1NTUmVmbGVjdFZhbHVlLmNwcAogY3NzL0NTU1JlZ2lzdGVy
ZWRDdXN0b21Qcm9wZXJ0eS5jcHAKLWNzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKIGNzcy9DU1NSdWxl
LmNwcAogY3NzL0NTU1J1bGVMaXN0LmNwcAogY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcApA
QCAtNzIzLDcgKzcyMCw2IEBAIGNzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAogY3Nz
L0NTU1RvU3R5bGVNYXAuY3BwCiBjc3MvQ1NTVW5pY29kZVJhbmdlVmFsdWUuY3BwCiBjc3MvQ1NT
VW5pdHMuY3BwCi1jc3MvQ1NTVW5zZXRWYWx1ZS5jcHAKIGNzcy9DU1NWYWx1ZS5jcHAKIGNzcy9D
U1NWYWx1ZUxpc3QuY3BwCiBjc3MvQ1NTVmFsdWVQYWlyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU5OTYzNzIzOGFhZjQ2
YTc5OTdjMmM4ZGU0MTZiNGNhY2Q0NjU5MTEuLjAxN2E3OTQxNWNkMjQ4NjI4MmM4Yzc2MGU4YWYx
YTQwMDZiNmMzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM1MzEsMTAgKzM1MzEsOCBAQAogCQlBODBFNkNGRDBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNEMzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZh
Y2VSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTgwRTZDRkYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENTBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBODBFNkQwMDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q2MEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE4MEU2RDAxMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJ
bmhlcml0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi87
IH07CiAJCUE4MEU2RDAzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NNZWRpYVJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q5MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NNZWRpYVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBODBFNkQwNDBBMTk4OUNBMDA3RkI4QzUgLyogQ291bnRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREEw
QTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlBODBFNkQwODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5p
dGlhbFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODBFNkNERTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggKi87IH07CiAJ
CUE4MEU2RDBDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0UyMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NTdHlsZVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBODBFNkQwRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRTMwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBODBFNkRGQzBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBF
NkRGQTBBMTk5MDY3MDA3RkI4QzUgLyogU3R5bGVQcm9wZXJ0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQxNTQsOCArNDE1Miw2IEBACiAJ
CUJDNzcyRTEzMTMzMTYyMEMwMDFFQzlDRSAvKiBDU1NMaW5lQm94Q29udGFpblZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkUxMjEzMzE2
MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzc5RTE0MUJCMjE1QkIwMENBQThC
RiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3OUUxMzFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9t
UHJvcGVydHlWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDNzc5RTE3MUJCMjI3Q0EwMENBQThCRiAvKiBTdHlsZUN1c3RvbVByb3BlcnR5
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkM3RDhGRjAxQkQw
M0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNl
dFZhbHVlLmggKi87IH07Ci0JCUJDN0Q4RkY0MUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
RDhGRjIxQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggKi87IH07CiAJCUJDN0Y0
NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyog
SW1hZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDN0ZBNjIxMEQxRjBDQkQwMERCMjJBOSAvKiBMaXZlTm9kZUxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0ZBNjFGMEQxRjBD
QkQwMERCMjJBOSAvKiBMaXZlTm9kZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGlj
Tm9kZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oICovOyB9OwpAQCAt
MTMxOTYsNyArMTMxOTIsNiBAQAogCQlBODBFNkNDMzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9u
dFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250VmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQzQwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNDNTBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTU3R5bGVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NTdHlsZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODBF
NkNDNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0luaGVyaXRlZFZhbHVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQzcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0Zv
bnRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTRm9u
dFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQzgwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDU1NSdWxlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkND
QTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU2hhZG93VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1NoYWRvd1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEzMjExLDEzICsxMzIwNiwxMCBAQAogCQlBODBFNkNENDBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTSW1hZ2VWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgwRTZDRDYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBODBFNkNENzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJp
dGVkVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0luaGVyaXRl
ZFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MEU2Q0Q4MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU0luaXRpYWxWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4MEU2Q0Q5MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NNZWRpYVJ1bGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBODBFNkNEQTBBMTk4OUNBMDA3RkI4QzUgLyogQ291bnRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBODBFNkNEQjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1ByaW1p
dGl2ZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDREMwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENTU1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODBF
NkNERTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NJbml0aWFsVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgwRTZDREYwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGVMaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0UyMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NTdHlsZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1N0eWxl
UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNFMzBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NT
UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1OTMsMTAgKzE0NTg1LDYg
QEAKIAkJQkM3NzlFMTMxQkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ3VzdG9tUHJvcGVydHlWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3OUUxNTFCQjIyNkEyMDBDQUE4
QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM3QjJBRjgwNDUwODI0MTAwQTgwMDBGIC8qIFNjcm9sbGJhci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxiYXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CUJDN0Q4RkVEMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Vuc2V0VmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZFRTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NVbnNldFZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDN0Q4RkYxMUJEMUE0NzkwMEZGRTU0MCAv
KiBDU1NSZXZlcnRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NSZXZlcnRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDN0Q4
RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NSZXZlcnRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzdGQTYxRTBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpdmVOb2RlTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0ZBNjFGMEQxRjBDQkQwMERC
MjJBOSAvKiBMaXZlTm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGl2ZU5vZGVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODYxMSwxMSAr
MTg1OTksMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRnZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUE1NjlDRTIwRDdFMkI4
MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJy
aWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVw
LmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5o
ICovLAogCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCi0JCQkJMUE1NjlD
RTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0Mz
OTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4
MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8q
IHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI5OTAwLDEwICsyOTg4OCw2IEBACiAJCQkJQTgw
RTZDQzEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuY3BwICovLAogCQkJCUE4MEU2
Q0NDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggKi8sCiAJCQkJODVDNTZDQTkw
QUE4OUU2NjAwRDk1NzU1IC8qIENTU0ltcG9ydFJ1bGUuaWRsICovLAotCQkJCUE4MEU2Q0M2MEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5jcHAgKi8sCi0JCQkJQTgwRTZDRDcw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8sCi0JCQkJQTgwRTZDRDgw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5jcHAgKi8sCi0JCQkJQTgwRTZDREUw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovLAogCQkJCTMxMjg4RTZFMEUz
MDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuY3BwICovLAogCQkJCTMxMjg4RTZGMEUz
MDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCAqLywKIAkJCQkzMTZGRTA5MTBFNkND
RDdGMDBCRjYwODggLyogQ1NTS2V5ZnJhbWVSdWxlLmlkbCAqLywKQEAgLTI5OTQ3LDggKzI5OTMx
LDYgQEAKIAkJCQlCQzVBMTJERTBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmgg
Ki8sCiAJCQkJNEIxNzA2NjQyMTYyQjQyRjAwRTU3OEJCIC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Q
cm9wZXJ0eS5jcHAgKi8sCiAJCQkJNEJEQTNGRkIyMTUxQjZGNDAwRkQ2NjA0IC8qIENTU1JlZ2lz
dGVyZWRDdXN0b21Qcm9wZXJ0eS5oICovLAotCQkJCUJDN0Q4RkYxMUJEMUE0NzkwMEZGRTU0MCAv
KiBDU1NSZXZlcnRWYWx1ZS5jcHAgKi8sCi0JCQkJQkM3RDhGRjIxQkQxQTQ3OTAwRkZFNTQwIC8q
IENTU1JldmVydFZhbHVlLmggKi8sCiAJCQkJQTgwRTZDREMwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1J1bGUuY3BwICovLAogCQkJCUE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmgg
Ki8sCiAJCQkJMTRDRjdBNzAwOUY1Q0Y5QTAwRUIzNjY1IC8qIENTU1J1bGUuaWRsICovLApAQCAt
Mjk5ODcsOCArMjk5NjksNiBAQAogCQkJCTBGNkI3MDc3MjM3QkMxMkYwMDUyQ0E0NyAvKiBDU1NV
bml0cy5oICovLAogCQkJCUE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NVbmtub3duUnVs
ZS5oICovLAogCQkJCTg1QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NVbmtub3duUnVsZS5p
ZGwgKi8sCi0JCQkJQkM3RDhGRUQxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuY3Bw
ICovLAotCQkJCUJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggKi8s
CiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVCIC8qIENTU1ZhbHVlLmNwcCAqLywKIAkJCQlB
ODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCAqLywKIAkJCQlCQ0VBNDc4QzA5
N0NBQUM4MDA5NEM5RTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKQEAgLTMyMjYzLDggKzMy
MjQzLDYgQEAKIAkJCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0lt
YWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0Y2MEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NJbXBvcnRSdWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkQwMTBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MEU2RDA4
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyQTQxMDdBNDI2Q0I2NkY4MDAzQkY3OTcgLyogQ1NTS2V5d29y
ZFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMzE5LDcgKzMyMjk3LDYgQEAKIAkJCQk4MkUz
RDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzVBMTJFMDBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0
ZXJlZEN1c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzdEOEZGNDFCRDFBNDc5
MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBNTM4QTI4
MjZGMDEwM0MwMDk2NUZDOCAvKiBDU1NSb3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2
RDBEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBF
NkNGMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAt
MzIzNTMsNyArMzIzMzAsNiBAQAogCQkJCTRCQUZEMEUxMjE5MjQyQTAwMEMwQUI2NCAvKiBDU1NV
bml0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAv
KiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJBRkQwRDkyMTkyMUVBMDAw
QzBBQjY0IC8qIENTU1VucGFyc2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0Q4RkYw
MUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODBFNkNFRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUzQkJDMjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2NTgxNTEwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAppbmRleCBhN2UxMzRmZWFkZTJjOGI0YTBj
ZTE1NTk1MDQ3M2Y2MzA2OTc3NWJkLi42ZGNmOGE0Mzc2MjhkZWVjZDYyZDVkYzI5NjhlNWE5MDdh
MzE2ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcApAQCAtNTEsNyArNTEsNyBAQCBKU1ZhbHVl
IHRvSlNOZXdseUNyZWF0ZWQoSlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8RAogewogICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PihnbG9iYWxP
YmplY3QsIFdURk1vdmUodmFsdWUpKTsKLSAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUo
KSkKKyAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiAhZG93bmNhc3Q8RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KHZhbHVlLmdldCgpKS5pc0NTU1dpZGVLZXl3b3JkKCkp
CiAgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKICAgICByZXR1cm4gY3JlYXRlV3Jh
cHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCmluZGV4IDJmMmUwODliYWIxNDY1NzQ2Y2Y3MzNmNjZkOTFiNTUxMGFiNmQxZmMuLjIx
OTUyM2UxMzA2MzJkZjNjZDdjNjM4ZDg1MTE2NTdkYTczY2ZiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNjI4LDcg
KzE2MjgsNyBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVjb3JhdGlvblN0eWxl
RmxhZ3NUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9uU3R5bAogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7CiB9CiAKIHN0YXRp
YyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRvQ1NTVmFsdWUoVGV4
dERlY29yYXRpb25Ta2lwSW5rIHRleHREZWNvcmF0aW9uU2tpcEluaykKQEAgLTE2NDMsNyArMTY0
Myw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNvcmF0aW9uU2tpcFRv
Q1NTVmFsdWUoVGV4dERlY29yYXRpb25Ta2lwSW5rCiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhw
bGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKIH0KIAogc3RhdGljIFJl
ZjxDU1NWYWx1ZT4gdGV4dFVuZGVybGluZU9mZnNldFRvQ1NTVmFsdWUoY29uc3QgVGV4dFVuZGVy
bGluZU9mZnNldCYgdGV4dFVuZGVybGluZU9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5o
ZXJpdGVkVmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDI0ODk4MWIx
YWQyNDRiZWNkNzM0ODEzMzJiN2E4N2FhY2U4OTdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKioKLSAqIChDKSAxOTk5LTIw
MDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJDU1NJbmhlcml0ZWRWYWx1ZS5oIgotCi0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIENTU0lu
aGVyaXRlZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gImluaGVy
aXQiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lu
aGVyaXRlZFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MmI5MTU0YWEy
MjhkNTEwOWViYjQwMGYyZTk5ZGRkZWVmZGQ0NDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogKEMpIDE5OTktMjAwMyBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENT
U0luaGVyaXRlZFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBT
dHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NT
SW5oZXJpdGVkVmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAg
ZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbmhlcml0ZWRWYWx1ZT47Ci0gICAgQ1NTSW5o
ZXJpdGVkVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NTVmFsdWUoSW5oZXJp
dGVkQ2xhc3MpCi0gICAgewotICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAgfQotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShD
U1NJbmhlcml0ZWRWYWx1ZSwgaXNJbmhlcml0ZWRWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW5pdGlhbFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQxNDM2ZTdm
MWVjYTY0NmY4NjhkOTg4Zjc2NjI0NmVmNzYxMzMwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVl
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICogKEMpIDE5OTktMjAw
MyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkNTU0luaXRpYWxWYWx1ZS5oIgotCi0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIENTU0luaXRp
YWxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJpbml0aWFsIl9z
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZh
bHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZmI3NmYyNTFmMjQ0ZjE1MWNh
NzI4MTIyYmMxMmE0NGE5YmE3YTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
Q1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NJbml0aWFsVmFs
dWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0cmluZyBjdXN0b21D
U1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGlzSW1wbGljaXQoKSBjb25zdCB7IHJldHVybiBt
X2lzSW1wbGljaXQ7IH0KLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0luaXRpYWxWYWx1ZSYp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgTGF6eU5ldmVy
RGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT47Ci0gICAgQ1NTSW5pdGlhbFZhbHVlKFN0YXRpY0NT
U1ZhbHVlVGFnLCBib29sIGltcGxpY2l0KQotICAgICAgICA6IENTU1ZhbHVlKEluaXRpYWxDbGFz
cykKLSAgICAgICAgLCBtX2lzSW1wbGljaXQoaW1wbGljaXQpCi0gICAgewotICAgICAgICBtYWtl
U3RhdGljKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGJvb2wgbV9pc0ltcGxpY2l0OwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19W
QUxVRShDU1NJbml0aWFsVmFsdWUsIGlzSW5pdGlhbFZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCBhOWQwMjI2ZjljZGQ1MDU3MmEyZGJjOGE1OTkw
ODY5NzE3MTY4NGJjLi5iNmE3MDVhN2IwZWNmYWY1NGJkOGJiMTExNGJkNzRkNjMyZTU5M2RmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJDU1NGb250RmFtaWx5LmgiCiAjaW5jbHVkZSAiQ1NTSGVscGVyLmgiCiAj
aW5jbHVkZSAiQ1NTTWFya3VwLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VySWRpb21zLmgiCiAjaW5j
bHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXMuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCkBAIC0zNjIs
NiArMzYzLDEzIEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWND
U1NWYWx1ZVRhZywgZG91YmxlIG51bSwgQ1NTVW5pdFR5cGUKICAgICBtYWtlU3RhdGljKCk7CiB9
CiAKK0NTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRh
ZywgSW1wbGljaXRJbml0aWFsVmFsdWVUYWcpCisgICAgOiBDU1NQcmltaXRpdmVWYWx1ZShDU1NW
YWx1ZUluaXRpYWwpCit7CisgICAgbV9pc0ltcGxpY2l0ID0gdHJ1ZTsKKyAgICBtYWtlU3RhdGlj
KCk7Cit9CisKIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmluaXQoY29uc3QgTGVuZ3RoJiBsZW5n
dGgpCiB7CiAgICAgc3dpdGNoIChsZW5ndGgudHlwZSgpKSB7CkBAIC0xNDM4LDQgKzE0NDYsOSBA
QCB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjpjb2xsZWN0RGlyZWN0Um9vdENvbXB1dGF0aW9uYWxE
ZXBlbmRlbmNpZXMoSGFzaFNldDxDU1NQcgogICAgIH0KIH0KIAorYm9vbCBDU1NQcmltaXRpdmVW
YWx1ZTo6aXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkNvcmU6Omlz
Q1NTV2lkZUtleXdvcmQodmFsdWVJRCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBiNzQ3OWM3YmY3ZDk1NDc1
MDg3OTI5NDk2ZjRkNGIxYTllZDU4ODYxLi41MTQ4YTRjYjJlNDc1NDNjZWYxNzRhZDJiODAzMTAy
YmI0MDlhMzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTE1
LDYgKzExNSwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZsZXgoKSBjb25zdCB7IHJldHVybiBw
cmltaXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19GUjsgfQogICAgIGJvb2wgaXNDdXN0
b21JZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVVuaXRUeXBlKCkgPT0gQ1NTVW5pdFR5
cGU6OkN1c3RvbUlkZW50OyB9CiAKKyAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlSW5pdGlhbDsgfQorICAgIGJvb2wgaXNJbXBsaWNp
dEluaXRpYWxWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGlzSW5pdGlhbFZhbHVlKCkgJiYgbV9pc0lt
cGxpY2l0OyB9CisgICAgYm9vbCBpc0luaGVyaXRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVl
SUQoKSA9PSBDU1NWYWx1ZUluaGVyaXQ7IH0KKyAgICBib29sIGlzVW5zZXRWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVVuc2V0OyB9CisgICAgYm9vbCBpc1JldmVy
dFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlUmV2ZXJ0OyB9Cisg
ICAgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CisKICAgICBzdGF0aWMgUmVmPENTU1By
aW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSUQgdmFsdWVJRCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZUlEKSk7IH0KICAgICBzdGF0
aWMgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVyKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NQcmltaXRpdmVWYWx1ZShwcm9w
ZXJ0eUlEKSk7IH0KIApAQCAtMTk4LDYgKzIwNSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgQ1NTVmFsdWVQb29sOworICAgIGZyaWVuZCBjbGFzcyBTdGF0aWNDU1NW
YWx1ZVBvb2w7CiAgICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1
ZT47CiAKICAgICBDU1NQcmltaXRpdmVWYWx1ZShDU1NWYWx1ZUlEKTsKQEAgLTIxMiw2ICsyMjAs
OCBAQCBwcml2YXRlOgogICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBD
U1NWYWx1ZUlEKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgY29u
c3QgQ29sb3ImKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgZG91
YmxlLCBDU1NVbml0VHlwZSk7CisgICAgZW51bSBJbXBsaWNpdEluaXRpYWxWYWx1ZVRhZyB7IElt
cGxpY2l0SW5pdGlhbFZhbHVlIH07CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFs
dWVUYWcsIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IENTU1ByaW1pdGl2ZVZhbHVlKFQpOyAvLyBEZWZpbmVkIGluIENTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IENTU1ByaW1pdGl2ZVZhbHVlKFJl
ZlB0cjxUPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhZGM0MGQzN2VmMDU2NTM1MjQ3NDQ1NjE2OWU1NGVmMmQ0MzA4
YTM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgiCi0KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcg
Q1NTUmV2ZXJ0VmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAicmV2
ZXJ0Il9zOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZl
cnRWYWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzViMjRkNzIzN2Q3ZWZh
NmUzMzUyYWY2YzM1ODQ3NTM2M2YxYzA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NSZXZlcnRWYWx1ZSBmaW5hbCA6IHB1Ymxp
YyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsK
LQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1JldmVydFZhbHVlJikgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUmV2
ZXJ0VmFsdWU+OwotICAgIENTU1JldmVydFZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnKQotICAgICAg
ICA6IENTU1ZhbHVlKFJldmVydENsYXNzKQotICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwot
ICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19DU1NfVkFMVUUoQ1NTUmV2ZXJ0VmFsdWUsIGlzUmV2ZXJ0VmFsdWUoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NVbnNldFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI2
YjBiM2JjNzU0MzM2NzY1MzY0NzRhNDA3ZTdkMDdkZDc1ZWI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRW
YWx1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NVbnNldFZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gInVuc2V0Il9zOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjY1MjVjOGRhMjBkNTk5ZWMyZDQzNGU0N2VkNDg5ZDZjMzkyZDZkNC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaW5jbHVkZSAiQ1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
U1NVbnNldFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJp
bmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTVW5z
ZXRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQg
TGF6eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+OwotICAgIENTU1Vuc2V0VmFsdWUoU3Rh
dGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDogQ1NTVmFsdWUoVW5zZXRDbGFzcykKLSAgICB7Ci0g
ICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1Vuc2V0VmFsdWUsIGlzVW5z
ZXRWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNjFhYzcxMWE3MzUxZmRkZGRk
N2YyNmY2OTAyODBkM2Q4MWE2MWYxMi4uNGYzZjQ1YWU4NGE5ZDhkZjUzYjY5YjZiMzMzNjYwZDhj
M2NmYmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC00OSw4ICs0OSw2IEBACiAjaW5j
bHVkZSAiQ1NTR3JhZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlU2V0VmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUu
aCIKLSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NMaW5lQm94Q29u
dGFpblZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTmFtZWRJbWFnZVZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTUGFpbnRJbWFnZVZhbHVlLmgiCkBAIC02MSw3ICs1OSw2IEBACiAjaW5jbHVkZSAiQ1NTU2hh
ZG93VmFsdWUuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NVbnNldFZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQYWlyLmgiCiAjaW5j
bHVkZSAiQ1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5oIgpAQCAtODMsMTYgKzgwLDExIEBAIHN0
cnVjdCBTYW1lU2l6ZUFzQ1NTVmFsdWUgewogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoQ1NTVmFs
dWUpID09IHNpemVvZihTYW1lU2l6ZUFzQ1NTVmFsdWUpLCBDU1NfdmFsdWVfc2hvdWxkX3N0YXlf
c21hbGwpOwogCi1ib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYmIGRvd25jYXN0PENT
U0luaXRpYWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKLX0KLQogREVGSU5FX0FMTE9DQVRP
Ul9XSVRIX0hFQVBfSURFTlRJRklFUihDU1NWYWx1ZSk7CiAKIENTU1ZhbHVlOjpUeXBlIENTU1Zh
bHVlOjpjc3NWYWx1ZVR5cGUoKSBjb25zdAogewotICAgIGlmIChpc0luaGVyaXRlZFZhbHVlKCkp
CisgICAgaWYgKGlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgIHJldHVybiBDU1NfSU5IRVJJVDsK
ICAgICBpZiAoaXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICByZXR1cm4gQ1NTX1BSSU1JVElW
RV9WQUxVRTsKQEAgLTE4NCwxNCArMTc2LDYgQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0
IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFs
dWVzPENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAgICBjYXNlIEltYWdl
Q2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbWFnZVZhbHVl
PigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIEluaGVyaXRlZENsYXNzOgotICAgICAgICAg
ICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW5oZXJpdGVkVmFsdWU+KCp0aGlzLCBvdGhl
cik7Ci0gICAgICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBh
cmVDU1NWYWx1ZXM8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNl
IFVuc2V0Q2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NVbnNl
dFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAgICBjYXNlIFJldmVydENsYXNzOgotICAgICAg
ICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTUmV2ZXJ0VmFsdWU+KCp0aGlzLCBvdGhl
cik7CiAgICAgICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAgICAgIHJldHVy
biBjb21wYXJlQ1NTVmFsdWVzPENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KCp0aGlzLCBvdGhlcik7
CiAgICAgICAgIGNhc2UgR3JpZEludGVnZXJSZXBlYXRDbGFzczoKQEAgLTI4NiwxNCArMjcwLDYg
QEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25j
YXN0PENTU0Nyb3NzZmFkZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2Ug
SW1hZ2VDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KCp0aGlz
KS5jdXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAgICAgICAgcmV0
dXJuIGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwot
ICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW5pdGlh
bFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNhc2UgVW5zZXRDbGFzczoKLSAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0
KCk7Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1Jl
dmVydFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgR3JpZEF1dG9SZXBl
YXRDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+
KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkSW50ZWdlclJlcGVhdENsYXNz
OgpAQCAtNDEwLDE4ICszODYsNiBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKICAgICBjYXNl
IEltYWdlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih0aGlz
KTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0gICAgICAgIGRl
bGV0ZSBkb3duY2FzdDxDU1NJbmhlcml0ZWRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsK
LSAgICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0luaXRp
YWxWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFVuc2V0Q2xhc3M6Ci0g
ICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NVbnNldFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NS
ZXZlcnRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIEdyaWRBdXRvUmVw
ZWF0Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NHcmlkQXV0b1JlcGVhdFZhbHVl
Pih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNTEzLDEyICs0NzcsNDMgQEAgUmVmPERlcHJl
Y2F0ZWRDU1NPTVZhbHVlPiBDU1NWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcihD
U1NTdHlsZURlY2xhcmEKIAogYm9vbCBDU1NWYWx1ZTo6dHJlYXRBc0luaGVyaXRlZFZhbHVlKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xhc3NUeXBlKCkg
PT0gSW5oZXJpdGVkQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3MgJiYgQ1NTUHJv
cGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworICAgIHJldHVybiBpc0lu
aGVyaXRWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0
ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbml0
aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIHJldHVybiBj
bGFzc1R5cGUoKSA9PSBJbml0aWFsQ2xhc3MgfHwgKGNsYXNzVHlwZSgpID09IFVuc2V0Q2xhc3Mg
JiYgIUNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKKyAgICBy
ZXR1cm4gaXNJbml0aWFsVmFsdWUoKSB8fCAoaXNVbnNldFZhbHVlKCkgJiYgIUNTU1Byb3BlcnR5
Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6
aXNJbml0aWFsVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1
ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbml0aWFs
VmFsdWUoKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCk7Cit9
CisKK2Jvb2wgQ1NTVmFsdWU6OmlzSW5oZXJpdFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4oKnRoaXMpLmlzSW5oZXJpdFZhbHVlKCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzVW5zZXRW
YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykg
JiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc1Vuc2V0VmFsdWUoKTsKIH0K
IAorYm9vbCBDU1NWYWx1ZTo6aXNSZXZlcnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlz
PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+
KCp0aGlzKS5pc1JldmVydFZhbHVlKCk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzQ1NTV2lkZUtl
eXdvcmQoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMp
ICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNDU1NXaWRlS2V5d29yZCgp
OworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggYWU1MDZlZjdjOTk3MjcxMjhhMWQ4
MTNjNWQyMjY0YjUwYzdmMzE0MS4uMjllYTRiNmQxMTY2NDI5NmE3N2YxZGQ5Njc2ZTYwMjhkNTdi
ZDUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTEwNywxMSArMTA3LDExIEBAIHB1YmxpYzoK
ICAgICBib29sIGlzSW1hZ2VTZXRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09
IEltYWdlU2V0Q2xhc3M7IH0KICAgICBib29sIGlzSW1hZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xhc3NUeXBlID09IEltYWdlQ2xhc3M7IH0KICAgICBib29sIGlzSW1wbGljaXRJbml0aWFs
VmFsdWUoKSBjb25zdDsKLSAgICBib29sIGlzSW5oZXJpdGVkVmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX2NsYXNzVHlwZSA9PSBJbmhlcml0ZWRDbGFzczsgfQotICAgIGJvb2wgaXNJbml0aWFsVmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbml0aWFsQ2xhc3M7IH0KLSAgICBi
b29sIGlzVW5zZXRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IFVuc2V0Q2xh
c3M7IH0KLSAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlw
ZSA9PSBSZXZlcnRDbGFzczsgfQotICAgIGJvb2wgaXNHbG9iYWxLZXl3b3JkKCkgY29uc3QgeyBy
ZXR1cm4gaXNJbmhlcml0ZWRWYWx1ZSgpIHx8IGlzSW5pdGlhbFZhbHVlKCkgfHwgaXNVbnNldFZh
bHVlKCkgfHwgaXNSZXZlcnRWYWx1ZSgpOyB9CisgICAgYm9vbCBpc0luaGVyaXRWYWx1ZSgpIGNv
bnN0OworICAgIGJvb2wgaXNJbml0aWFsVmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzVW5zZXRW
YWx1ZSgpIGNvbnN0OworICAgIGJvb2wgaXNSZXZlcnRWYWx1ZSgpIGNvbnN0OworICAgIGJvb2wg
aXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0OwogICAgIGJvb2wgdHJlYXRBc0luaXRpYWxWYWx1ZShD
U1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBib29sIHRyZWF0QXNJbmhlcml0ZWRWYWx1ZShDU1NQ
cm9wZXJ0eUlEKSBjb25zdDsKICAgICBib29sIGlzTGluZWFyR3JhZGllbnRWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IExpbmVhckdyYWRpZW50Q2xhc3M7IH0KQEAgLTE5MSwx
MSArMTkxLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBGb250UGFsZXR0ZVZhbHVlc092ZXJyaWRl
Q29sb3JzQ2xhc3MsCiAgICAgICAgIEZ1bmN0aW9uQ2xhc3MsCiAKLSAgICAgICAgSW5oZXJpdGVk
Q2xhc3MsCi0gICAgICAgIEluaXRpYWxDbGFzcywKLSAgICAgICAgVW5zZXRDbGFzcywKLSAgICAg
ICAgUmV2ZXJ0Q2xhc3MsCi0KICAgICAgICAgUmVmbGVjdENsYXNzLAogICAgICAgICBTaGFkb3dD
bGFzcywKICAgICAgICAgVW5pY29kZVJhbmdlQ2xhc3MsCkBAIC0yMzcsNiArMjMyLDcgQEAgcHJv
dGVjdGVkOgogICAgICAgICA6IG1fcHJpbWl0aXZlVW5pdFR5cGUoMCkKICAgICAgICAgLCBtX2hh
c0NhY2hlZENTU1RleHQoZmFsc2UpCiAgICAgICAgICwgbV92YWx1ZVNlcGFyYXRvcihTcGFjZVNl
cGFyYXRvcikKKyAgICAgICAgLCBtX2lzSW1wbGljaXQoZmFsc2UpCiAgICAgICAgICwgbV9jbGFz
c1R5cGUoY2xhc3NUeXBlKQogICAgIHsKICAgICB9CkBAIC0yNjMsNiArMjU5LDcgQEAgcHJvdGVj
dGVkOgogICAgIG11dGFibGUgdW5zaWduZWQgbV9oYXNDYWNoZWRDU1NUZXh0IDogMTsKIAogICAg
IHVuc2lnbmVkIG1fdmFsdWVTZXBhcmF0b3IgOiBWYWx1ZVNlcGFyYXRvckJpdHM7CisgICAgdW5z
aWduZWQgbV9pc0ltcGxpY2l0IDogMTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NsYXNz
VHlwZSA6IENsYXNzVHlwZUJpdHM7IC8vIENsYXNzVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQ
b29sLmNwcAppbmRleCA1MDE4MzVjYzQ0ZWRmNTlhZjI0ODZjNWFlNDg2OWZjZTY2YTcyOGZkLi40
MzE1OTQ3MzhjZjY2OTZhOTk5Yjc0ZGIxMWQ2NWM3NzQwM2ZhM2IyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVQb29sLmNwcApAQCAtMzgsMTIgKzM4LDggQEAgTGF6eU5ldmVyRGVzdHJveWVkPFN0
YXRpY0NTU1ZhbHVlUG9vbD4gc3RhdGljQ1NTVmFsdWVQb29sOwogCiBTdGF0aWNDU1NWYWx1ZVBv
b2w6OlN0YXRpY0NTU1ZhbHVlUG9vbCgpCiB7Ci0gICAgbV9pbmhlcml0ZWRWYWx1ZS5jb25zdHJ1
Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsKLSAgICBtX2ltcGxpY2l0SW5pdGlhbFZhbHVl
LmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIHRydWUpOwotICAgIG1fZXhwbGlj
aXRJbml0aWFsVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgZmFsc2Up
OwotICAgIG1fdW5zZXRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsK
LSAgICBtX3JldmVydFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOwot
CisgICAgbV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NT
U1ZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6SW1wbGljaXRJbml0aWFsVmFsdWUpOworICAgIAog
ICAgIG1fdHJhbnNwYXJlbnRDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVl
LCBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjayk7CiAgICAgbV93aGl0ZUNvbG9yLmNvbnN0cnVjdChD
U1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENvbG9yOjp3aGl0ZSk7CiAgICAgbV9ibGFja0NvbG9y
LmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENvbG9yOjpibGFjayk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVQb29sLmgKaW5kZXggMWZiMjMxNmVmYzAzMTBhM2JmY2EzODRmMTBjN2Rl
MDcxZjQxZTllZC4uMWQ2ZWMxMTQyZjczMzU4MGFhNzQ0NTdhNDhmYjk0ZDYwZGFmNjY0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaApAQCAtMjUsMTIgKzI1LDggQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJDU1NJbmhlcml0ZWRWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0luaXRp
YWxWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
UHJvcGVydHlOYW1lcy5oIgotI2luY2x1ZGUgIkNTU1JldmVydFZhbHVlLmgiCi0jaW5jbHVkZSAi
Q1NTVW5zZXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRl
ICJDb2xvckhhc2guaCIKICNpbmNsdWRlIDx1dGlsaXR5PgpAQCAtNTUsMTEgKzUxLDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBTdGF0aWNDU1NWYWx1ZVBvb2woKTsKIAotICAgIExhenlOZXZl
ckRlc3Ryb3llZDxDU1NJbmhlcml0ZWRWYWx1ZT4gbV9pbmhlcml0ZWRWYWx1ZTsKLSAgICBMYXp5
TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5pdGlhbFZhbHVlPiBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlOwot
ICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbml0aWFsVmFsdWU+IG1fZXhwbGljaXRJbml0aWFs
VmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1Vuc2V0VmFsdWU+IG1fdW5zZXRWYWx1
ZTsKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUmV2ZXJ0VmFsdWU+IG1fcmV2ZXJ0VmFsdWU7
CisgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2ltcGxpY2l0SW5p
dGlhbFZhbHVlOwogCiAgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPiBt
X3RyYW5zcGFyZW50Q29sb3I7CiAgICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZh
bHVlPiBtX3doaXRlQ29sb3I7CkBAIC04NSwxMSArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQ
dHI8Q1NTVmFsdWVMaXN0PiBjcmVhdGVGb250RmFjZVZhbHVlKGNvbnN0IEF0b21TdHJpbmcmKTsK
ICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUZvbnRGYW1pbHlWYWx1ZShjb25zdCBT
dHJpbmcmLCBGcm9tU3lzdGVtRm9udElEID0gRnJvbVN5c3RlbUZvbnRJRDo6Tm8pOwotICAgIFJl
ZjxDU1NJbmhlcml0ZWRWYWx1ZT4gY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSB7IHJldHVybiBzdGF0
aWNDU1NWYWx1ZVBvb2wtPm1faW5oZXJpdGVkVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTSW5p
dGlhbFZhbHVlPiBjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NT
U1ZhbHVlUG9vbC0+bV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NJ
bml0aWFsVmFsdWU+IGNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gc3RhdGlj
Q1NTVmFsdWVQb29sLT5tX2V4cGxpY2l0SW5pdGlhbFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENT
U1Vuc2V0VmFsdWU+IGNyZWF0ZVVuc2V0VmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBv
b2wtPm1fdW5zZXRWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NSZXZlcnRWYWx1ZT4gY3JlYXRl
UmV2ZXJ0VmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1fcmV2ZXJ0VmFsdWUu
Z2V0KCk7IH0KKyAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUltcGxpY2l0SW5pdGlh
bFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX2ltcGxpY2l0SW5pdGlhbFZh
bHVlLmdldCgpOyB9CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVJRCBpZGVudGlmaWVyKTsKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+
IGNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkZW50aWZpZXIpOwogICAgIFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlQ29sb3JWYWx1ZShjb25zdCBDb2xvciYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaApp
bmRleCA3YThmMWRhMzAyZGJhZDM2NDQ0YmUxM2M0YTJiYzYzNjY2NTIxYWYxLi42MTlkYmVjM2Vl
OTczYzQ4MmUxYTc4NTU1NTdkYWE0MDQxYWU0ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaApAQCAtODksNiArODksNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFN0cmluZ1ZhbHVlKHVuc2ln
bmVkIHNob3J0LCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNh
dGlvbkFsbG93ZWRFcnJvciB9OyB9CiAKICAgICBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX3ZhbHVlLT5zdHJpbmdWYWx1ZSgpOyB9CisgICAgYm9vbCBpc0NTU1dpZGVLZXl3
b3JkKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+aXNDU1NXaWRlS2V5d29yZCgpOyB9CiAKIHBy
aXZhdGU6CiAgICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUoY29uc3QgQ1NTUHJpbWl0
aXZlVmFsdWUmIHZhbHVlLCBDU1NTdHlsZURlY2xhcmF0aW9uJiBvd25lcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYzgzYWQ4ZGEzMmZkOTNhNjA5OGY3YmM0ODNk
M2JkOTM0MzEzMDViYy4uYWY4OTdjZDE3YzcwOGFiYTg1MDRjNGU1NWE1ZTg2MGM2NWRhMjVkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyVGVz
dEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTdHlsZVNj
b3BlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlR5cGVkRWxlbWVudERlc2NlbmRh
bnRJdGVyYXRvci5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4
IGU1MDllZTY3ZjkwN2ZhMDZlNDk5Njg0MzZjNjIzZjQxYjRkNWE0NDcuLjA2M2VmMzU4YWZmNzEw
YzM2ZjQwZTliODBkMTlkYWU0Yjg3MjIzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnRpZXMuY3BwCkBAIC00MDAsNyArNDAwLDcgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Ym9y
ZGVyUmFkaXVzVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgc2hvcnRoYW4KICAg
ICBpZiAodG9wTGVmdC5pc0ltcG9ydGFudCgpICE9IHRvcFJpZ2h0LmlzSW1wb3J0YW50KCkgfHwg
dG9wUmlnaHQuaXNJbXBvcnRhbnQoKSAhPSBib3R0b21SaWdodC5pc0ltcG9ydGFudCgpIHx8IGJv
dHRvbVJpZ2h0LmlzSW1wb3J0YW50KCkgIT0gYm90dG9tTGVmdC5pc0ltcG9ydGFudCgpKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBpZiAodG9wTGVmdFZhbHVlLT5pc0luaGVyaXRl
ZFZhbHVlKCkgJiYgdG9wUmlnaHRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpICYmIGJvdHRvbVJp
Z2h0VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiBib3R0b21MZWZ0VmFsdWUtPmlzSW5oZXJp
dGVkVmFsdWUoKSkKKyAgICBpZiAodG9wTGVmdFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpICYmIHRv
cFJpZ2h0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkgJiYgYm90dG9tUmlnaHRWYWx1ZS0+aXNJbmhl
cml0VmFsdWUoKSAmJiBib3R0b21MZWZ0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAg
IHJldHVybiBnZXRWYWx1ZU5hbWUoQ1NTVmFsdWVJbmhlcml0KTsKIAogICAgIGlmICh0b3BMZWZ0
VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwgdG9wUmlnaHRWYWx1ZS0+aXNJbml0aWFsVmFsdWUo
KSB8fCBib3R0b21SaWdodFZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IGJvdHRvbUxlZnRWYWx1
ZS0+aXNJbml0aWFsVmFsdWUoKSkgewpAQCAtODUyLDggKzg1Miw4IEBAIFN0cmluZyBTdHlsZVBy
b3BlcnRpZXM6OnBhZ2VCcmVha1Byb3BlcnR5VmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZCYgc2hvCiAgICAgYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWUoc2hvcnRoYW5k
LnByb3BlcnRpZXMoKVswXSk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBpc0dsb2JhbEtleXdvcmQgY2hlY2sgYWZ0
ZXIgd2UgZG8gdGhpcyBjb25zaXN0ZW50bHkgZm9yIGFsbCBzaG9ydGhhbmRzIGluIGdldFByb3Bl
cnR5VmFsdWUuCi0gICAgaWYgKHZhbHVlLT5pc0dsb2JhbEtleXdvcmQoKSkKKyAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgaXNDU1NXaWRlS2V5d29yZCBjaGVjayBhZnRlciB3ZSBkbyB0aGlzIGNv
bnNpc3RlbnRseSBmb3IgYWxsIHNob3J0aGFuZHMgaW4gZ2V0UHJvcGVydHlWYWx1ZS4KKyAgICBp
ZiAodmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlLT5jc3NU
ZXh0KCk7CiAgICAgCiAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRl
eCAzN2ExMTUxYWRhMmU5NzViNGNjNDdkN2I2ZTQ3OTY4M2QxYzE2M2ZmLi5hYTNlYTI5MjU0NTQ1
ZmYyNjllMmI1ZmYxZmVjZTBmYjk1Zjk2NDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC0xMTE1LDE5ICsxMTE1LDExIEBAIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlS2V5d29yZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJv
cGVydHlJZCwgU3RyaW5nVmlldyBzCiAgICAgaWYgKCF2YWx1ZUlEKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGlmICghcGFyc2luZ0Rlc2NyaXB0b3IpIHsKLSAgICAgICAgaWYgKHZh
bHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0KQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9v
bDo6c2luZ2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsKLSAgICAgICAgaWYgKHZhbHVl
SUQgPT0gQ1NTVmFsdWVJbml0aWFsKQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKLSAgICAgICAgaWYgKHZh
bHVlSUQgPT0gQ1NTVmFsdWVVbnNldCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpLmNyZWF0ZVVuc2V0VmFsdWUoKTsKLSAgICAgICAgaWYgKHZhbHVlSUQgPT0g
Q1NTVmFsdWVSZXZlcnQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVSZXZlcnRWYWx1ZSgpOwotICAgIH0KLSAgICAKKyAgICBpZiAoIXBhcnNpbmdE
ZXNjcmlwdG9yICYmIGlzQ1NTV2lkZUtleXdvcmQodmFsdWVJRCkpCisgICAgICAgIHJldHVybiBD
U1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHZhbHVlSUQpOworCiAgICAgaWYg
KENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKHByb3Bl
cnR5SWQsIHZhbHVlSUQsIGNvbnRleHQpKQotICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWVJRCk7CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVBv
b2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHZhbHVlSUQpOwogICAgIHJldHVybiBudWxscHRy
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklk
aW9tcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaAppbmRl
eCA4MTc0YzczMmU2ODFkZDdkM2U0MDEwNDE0ZDBjYjAxYTNlM2M0Y2EzLi4wYTBlZWU5M2IzMWJj
ODdmNDUzNWRjNzJlZTE0ZTNlY2NkMTQ5MjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VySWRpb21zLmgKQEAgLTU5LDQgKzU5LDE1IEBAIGJvb2wgaXNOYW1lQ29kZVBv
aW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVlQWxsb3dlZEluTW9kZSh1bnNpZ25l
ZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1dpZGVL
ZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKK3sKKyAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUluaXRpYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQgfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZVVuc2V0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQ7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1ZhbGlkSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZhbHVlSUQpCit7CisgICAg
Ly8gImRlZmF1bHQiIGlzIG9ic29sZXRlIGFzIENTUy13aWRlIGtleXdvcmQgYnV0IGlzIHN0aWxs
IG5vdCBhbGxvd2VkIGFzIGlkZW50aWZpZXIuCisgICAgcmV0dXJuICFpc0NTU1dpZGVLZXl3b3Jk
KHZhbHVlSUQpICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVEZWZhdWx0OworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuY3BwCmluZGV4IGZkMWQwNmVmZjdiOWI1MmRmM2RjYTc2NWI0ZDk4NTRmZmQ5MzFkYmYu
LmIwOWMxNGViYTdiZmU5ZjEyODg1NmFkNjEzZjk2YTJhNDFmN2YxYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yNTgsMjAgKzI1
OCwxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBtYXliZUNvbnN1bWVDU1NXaWRlS2V5d29y
ZChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICBpZiAoIXJhbmdlQ29weS5hdEVuZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWU7
Ci0gICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0KQotICAgICAgICB2YWx1ZSA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsKLSAgICBlbHNl
IGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCkKLSAgICAgICAgdmFsdWUgPSBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgZWxz
ZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0KQotICAgICAgICB2YWx1ZSA9IENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVW5zZXRWYWx1ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVl
SUQgPT0gQ1NTVmFsdWVSZXZlcnQpCi0gICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVSZXZlcnRWYWx1ZSgpOwotICAgIGVsc2UKKyAgICBpZiAoIWlzQ1NTV2lk
ZUtleXdvcmQodmFsdWVJRCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmFuZ2Ug
PSByYW5nZUNvcHk7Ci0gICAgcmV0dXJuIHZhbHVlOworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKHZhbHVlSUQpOwogfQogCiBSZWZQdHI8Q1NTVmFsdWU+
IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHksIGNvbnN0IENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IDNkNGZmOTQwZTRjZDU0ZTE2ZTBiNTFkNzE4
NjIyM2Y3OTA0ZTYzY2YuLmJlNmUwNmNhZWQzOTM4NGI1YTRlYTE4Y2ZlN2FiNDE2ZTdlYTY3OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHAKQEAgLTU5LDExICs1OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
bmFtZXNwYWNlIENTU1Byb3BlcnR5UGFyc2VySGVscGVycyB7CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgaWQpCi17Ci0gICAgcmV0dXJuIGlkID09IENT
U1ZhbHVlSW5pdGlhbCB8fCBpZCA9PSBDU1NWYWx1ZUluaGVyaXQgfHwgaWQgPT0gQ1NTVmFsdWVV
bnNldCB8fCBpZCA9PSBDU1NWYWx1ZVJldmVydCB8fCBpZCA9PSBDU1NWYWx1ZURlZmF1bHQ7Ci19
Ci0KIGJvb2wgY29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKIHsKICAgICBDU1NQYXJzZXJUb2tlbiB2YWx1ZSA9IHJhbmdlLnBlZWsoKTsK
QEAgLTEzNzAsNyArMTM2NSw3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUlk
ZW50UmFuZ2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1ZhbHVlCiAKIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUN1c3RvbUlkZW50KENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlLCBib29sIHNob3VsZExvd2VyY2FzZSkKIHsKLSAgICBpZiAocmFuZ2UucGVlaygpLnR5
cGUoKSAhPSBJZGVudFRva2VuIHx8IGlzQ1NTV2lkZUtleXdvcmQocmFuZ2UucGVlaygpLmlkKCkp
KQorICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IElkZW50VG9rZW4gfHwgIWlzVmFsaWRJ
ZGVudGlmaWVyKHJhbmdlLnBlZWsoKS5pZCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgYXV0byBpZGVudGlmaWVyID0gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52
YWx1ZSgpOwogICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUN1c3Rv
bUlkZW50KHNob3VsZExvd2VyY2FzZSA/IGlkZW50aWZpZXIuY29udmVydFRvQVNDSUlMb3dlcmNh
c2UoKSA6IGlkZW50aWZpZXIudG9TdHJpbmcoKSk7CkBAIC0zNjQ4LDcgKzM2NDMsNyBAQCBBdG9t
U3RyaW5nIGNvbnN1bWVDb3VudGVyU3R5bGVOYW1lSW5QcmVsdWRlKENTU1BhcnNlclRva2VuUmFu
Z2UmIHByZWx1ZGUpCiAgICAgaWYgKCFwcmVsdWRlLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBB
dG9tU3RyaW5nKCk7CiAgICAgLy8gRW5zdXJlIHRoaXMgdG9rZW4gaXMgYSB2YWxpZCA8Y3VzdG9t
LWlkZW50Pi4KLSAgICBpZiAobmFtZVRva2VuLnR5cGUoKSAhPSBJZGVudFRva2VuIHx8IGlzQ1NT
V2lkZUtleXdvcmQobmFtZVRva2VuLmlkKCkpKQorICAgIGlmIChuYW1lVG9rZW4udHlwZSgpICE9
IElkZW50VG9rZW4gfHwgIWlzVmFsaWRJZGVudGlmaWVyKG5hbWVUb2tlbi5pZCgpKSkKICAgICAg
ICAgcmV0dXJuIEF0b21TdHJpbmcoKTsKICAgICAvLyBJbiB0aGUgY29udGV4dCBvZiB0aGUgcHJl
bHVkZSBvZiBhbiBAY291bnRlci1zdHlsZSBydWxlLCBhIDxjb3VudGVyLXN0eWxlLW5hbWU+IG11
c3Qgbm90IGJlIGFuIEFTQ0lJCiAgICAgLy8gY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3IgImRl
Y2ltYWwiIG9yICJkaXNjIi4gTm8gPGNvdW50ZXItc3R5bGUtbmFtZT4sIHByZWx1ZGUgb3Igbm90
LCBtYXkgYmUgYW4gQVNDSUkKQEAgLTM3MjUsNyArMzcyMCw3IEBAIFN0cmluZyBjb25jYXRlbmF0
ZUZhbWlseU5hbWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIH0KICAgICAg
ICAgYnVpbGRlci5hcHBlbmQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1
ZSgpKTsKICAgICB9Ci0gICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQoZmly
c3RUb2tlbi5pZCgpKSkKKyAgICBpZiAoIWFkZGVkU3BhY2UgJiYgIWlzVmFsaWRJZGVudGlmaWVy
KGZpcnN0VG9rZW4uaWQoKSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwCmluZGV4IDkyODliYWRlNTI1YWI3N2Q0OWY1NWYwOWY2MGQ0MzA1ZjVjYzBkZTQuLjcyZTI3
OTlkZDQyZDQ1ZTBhNTY1NmFjMzIwMzEyZDNiYzM3YjE0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTI2Niw2ICsyNjYsOSBAQCBzdGF0aWMgYm9vbCBmb250
V2VpZ2h0SXNCb2xkKENTU1ZhbHVlJiBmb250V2VpZ2h0KQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Pihmb250V2VpZ2h0KTsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUuaXNDU1NXaWRlS2V5d29yZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLnZh
bHVlSUQoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRl
eCBkOTQ0ZDk4NGRjM2Y4ZTE5MzlmMWZjNzQzZjhhOTQwYTE3N2ExZTJlLi4xNjQ3NjZkYzMyNTM3
NWU3ZWIxZjhhNzVkYmFjZDQyMjIxMzBmZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC01ODcsNyArNTg3LDcgQEAgU3RyaW5nIEhUTUxD
b252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3Bl
cnR5SUQgcHJvcGUKIAogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5
bGVQcm9wZXJ0eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAgICAgICAgU3Ry
aW5nIHJlc3VsdDsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAg
ICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAgIGluaGVyaXQgPSB0
cnVlOwogICAgICAgICBlbHNlIGlmIChzdHJpbmdGcm9tQ1NTVmFsdWUoKnZhbHVlLCByZXN1bHQp
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTczNSw3ICs3MzUsNyBAQCBib29sIEhU
TUxDb252ZXJ0ZXJDYWNoZXM6OmZsb2F0UHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwg
Q1NTUHJvcGVydHlJRCBwcgogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5l
U3R5bGVQcm9wZXJ0eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAgICAgICAg
aWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpICYmIGZsb2F0VmFsdWVGcm9tUHJpbWl0
aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSksIHJlc3VsdCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRlZFZh
bHVlKCkpCisgICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAg
IGluaGVyaXQgPSB0cnVlOwogICAgIH0KIApAQCAtODc3LDcgKzg3Nyw3IEBAIENvbG9yIEhUTUxD
b252ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NT
UHJvcGVydHlJRCBwCiAgICAgaWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVTdHls
ZVByb3BlcnR5Rm9yRWxlbWVudChlbGVtZW50LCBwcm9wZXJ0eUlkKSkgewogICAgICAgICBpZiAo
aXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp2YWx1ZSkuaXNSR0JDb2xvcigpKQogICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRD
b2xvcihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigpLCBpZ25vcmVE
ZWZhdWx0Q29sb3IsIGVsZW1lbnQpOwotICAgICAgICBpZiAodmFsdWUtPmlzSW5oZXJpdGVkVmFs
dWUoKSkKKyAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICAgICAg
aW5oZXJpdCA9IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCBjNmMzNmFlNjdmNTAzOTcxMzZkNzBmYzFmMWJlMzAwYTRiMmNmNjM4Li44
OWRiODViMzVmZDdjMTIzYzE0ZTRhNDJjYWVlNmYwYWQ4MWQzMjU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTQ4NCwyNCArNDg0LDI0IEBAIFJlZjxTdHls
ZVByb3BlcnRpZXM+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVNoYXJlZENlbGxTdHlsZSgpIGNv
bnN0CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0V2lk
dGgsIENTU1ZhbHVlVGhpbik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlckxlZnRTdHlsZSwgQ1NTVmFsdWVTb2xpZCk7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGUsIENTU1ZhbHVlU29saWQpOwotICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29s
LmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTb2xpZEJvcmRlcnNS
b3dzT25seToKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyVG9w
V2lkdGgsIENTU1ZhbHVlVGhpbik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJvcmRlckJvdHRvbVdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZSwgQ1NTVmFsdWVTb2xpZCk7CiAgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVN0eWxlLCBDU1NW
YWx1ZVNvbGlkKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVy
Q29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5
bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU29saWRCb3JkZXJzOgogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlCb3JkZXJXaWR0aCwgY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKDEsIENTU1VuaXRUeXBlOjpD
U1NfUFgpKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyU3R5
bGUsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTb2xpZCkpOwot
ICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFs
dWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbnNldEJv
cmRlcnM6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlcldpZHRo
LCBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoMSwgQ1NTVW5pdFR5cGU6OkNTU19QWCkpOwogICAg
ICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwgY3NzVmFsdWVQ
b29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluc2V0KSk7Ci0gICAgICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRl
SW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVl
SW5oZXJpdCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vQm9yZGVyczoKICAgICAgICAg
Ly8gSWYgJ3J1bGVzPW5vbmUnIHRoZW4gYWxsb3cgYW55IGJvcmRlcnMgc2V0IGF0IGNlbGwgbGV2
ZWwgdG8gdGFrZSBlZmZlY3QuIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxl
bWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVD
b2xsZWN0b3IuY3BwCmluZGV4IDgxYmFiOTNhNDFiYjZjNGE4OTNkNWI4YjNhZWE2ZTE4YWVjMTQ3
NWQuLmJlYjg5NjdmZGJjZGU0MzI4NTRkMTUzYmE5Y2UyNmM2NzczZTMwZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTYwMiw3ICs2MDIs
NyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRNYXRjaGVkUHJvcGVydGllcyhNYXRj
aGVkUHJvcGVydGllcyYmIG1hdGNoZWRQcm9wZQogICAgICAgICAgICAgLy8gYXMgdGhleSBtaWdo
dCBvdmVycmlkZSB0aGUgdmFsdWUgaW5oZXJpdGVkIGhlcmUuIEZvciB0aGlzIHJlYXNvbiB3ZSBk
b24ndCBhbGxvdyBkZWNsYXJhdGlvbnMgd2l0aAogICAgICAgICAgICAgLy8gZXhwbGljaXRseSBp
bmhlcml0ZWQgcHJvcGVydGllcyB0byBiZSBjYWNoZWQuCiAgICAgICAgICAgICBjb25zdCBDU1NW
YWx1ZSYgdmFsdWUgPSAqY3VycmVudC52YWx1ZSgpOwotICAgICAgICAgICAgaWYgKHZhbHVlLmlz
SW5oZXJpdGVkVmFsdWUoKSkKKyAgICAgICAgICAgIGlmICh2YWx1ZS5pc0luaGVyaXRWYWx1ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgLy8gVGhlIHZh
bHVlIGN1cnJlbnRDb2xvciBoYXMgaW1wbGljaXRlbHkgdGhlIHNhbWUgc2lkZSBlZmZlY3QuIEl0
IGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mIGNvbG9yLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3Bl
cnR5Q2FzY2FkZS5jcHAKaW5kZXggN2RmN2E3NWFhZDAwOGU5NTlhMDk0NzUzYmZjZGUzZjYzMTQ2
NjZlYy4uZTI5M2JhNjkzYjA0NTRmNzBhMGM1ZjdkNmEwOTNiMGE2Y2UzMjZhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgYm9v
bCBQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNoKGNvbnN0IE1hdGNoZWRQcm9wZXJ0aWVzJiBtYXRj
aGVkUHJvcGVydGllcywgQ2FzY2EKICAgICAgICAgaWYgKG1faW5jbHVkZWRQcm9wZXJ0aWVzID09
IEluY2x1ZGVkUHJvcGVydGllczo6SW5oZXJpdGVkT25seSAmJiAhY3VycmVudC5pc0luaGVyaXRl
ZCgpKSB7CiAgICAgICAgICAgICAvLyBJbmhlcml0ZWQgb25seSBtb2RlIGlzIHVzZWQgYWZ0ZXIg
bWF0Y2hlZCBwcm9wZXJ0aWVzIGNhY2hlIGhpdC4KICAgICAgICAgICAgIC8vIEEgbWF0Y2ggd2l0
aCBhIHZhbHVlIHRoYXQgaXMgZXhwbGljaXRseSBpbmhlcml0ZWQgc2hvdWxkIG5ldmVyIGhhdmUg
YmVlbiBjYWNoZWQuCi0gICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQudmFsdWUoKS0+aXNJbmhl
cml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghY3VycmVudC52YWx1ZSgpLT5pc0lu
aGVyaXRWYWx1ZSgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAg
IENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGN1cnJlbnQuaWQoKTsKQEAgLTMwOCw3ICszMDgs
NyBAQCBQcm9wZXJ0eUNhc2NhZGU6OkRpcmVjdGlvbiBQcm9wZXJ0eUNhc2NhZGU6OnJlc29sdmVE
aXJlY3Rpb25BbmRXcml0aW5nTW9kZShEaXJlYwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG1h
dGNoZWRQcm9wZXJ0aWVzIDogZGVjbGFyYXRpb25zRm9yQ2FzY2FkZUxldmVsKG1fbWF0Y2hSZXN1
bHQsIGNhc2NhZGVMZXZlbCkpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy0+cHJvcGVydHlDb3VudCgpOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICAgICAgICAgIGF1dG8gcHJvcGVydHkgPSBtYXRjaGVkUHJv
cGVydGllcy5wcm9wZXJ0aWVzLT5wcm9wZXJ0eUF0KGkpOwotICAgICAgICAgICAgICAgIGlmICgh
cHJvcGVydHkudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAgICAgICAgIGlm
ICghcHJvcGVydHkudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpIHx8IHByb3BlcnR5LnZhbHVl
KCktPmlzQ1NTV2lkZUtleXdvcmQoKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5pZCgpKSB7CiAgICAgICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdyaXRpbmdNb2RlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ci5jcHAKaW5kZXggM2JhMmQ5NmVkNzM0MmEwNTQ5OWM3MDcyYmE1NzM2YjYzYjJmYjE1My4uOWQ2
YzZiNDM5OTBhOGE5YmUxMGI2MjI3M2QwNzkyYjk4YmU1OGE5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9pZCBCdWlsZGVyOjphcHBs
eVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlJiB2YWx1ZSwgU2VsZWN0b3JDaGVj
a2VyOjoKICAgICAgICAgY3VzdG9tUHJvcGVydHlSZWdpc3RlcmVkID0gbV9zdGF0ZS5kb2N1bWVu
dCgpLmdldENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgpLmdldChuYW1lKTsKICAgICB9
CiAKLSAgICBib29sIGlzSW5oZXJpdCA9IHZhbHVlVG9BcHBseS0+aXNJbmhlcml0ZWRWYWx1ZSgp
IHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQ7CisgICAgYm9vbCBp
c0luaGVyaXQgPSB2YWx1ZVRvQXBwbHktPmlzSW5oZXJpdFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVy
dHlWYWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdDsKICAgICBib29sIGlzSW5pdGlhbCA9IHZhbHVl
VG9BcHBseS0+aXNJbml0aWFsVmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NT
VmFsdWVJbml0aWFsOwogCiAgICAgYm9vbCBpc1Vuc2V0ID0gdmFsdWVUb0FwcGx5LT5pc1Vuc2V0
VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldDsKQEAgLTM2
MSw4ICszNjEsOCBAQCBSZWY8Q1NTVmFsdWU+IEJ1aWxkZXI6OnJlc29sdmVWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQsIENTU1ZhbHVlJiB2YWx1ZSkKICAgICAvLyBJZiB0aGUgY2FzY2Fk
ZSBoYXMgYWxyZWFkeSBhcHBsaWVkIHRoaXMgaWQsIHRoZW4gd2UgZGV0ZWN0ZWQgYSBjeWNsZSwg
YW5kIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHVuc2V0LgogICAgIGlmICghdmFyaWFibGVWYWx1ZSB8
fCBtX3N0YXRlLm1fYXBwbGllZFByb3BlcnRpZXMuZ2V0KHByb3BlcnR5SUQpKSB7CiAgICAgICAg
IGlmIChDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSkKLSAgICAg
ICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZh
bHVlKCk7Ci0gICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4
cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVWYWx1ZShDU1NWYWx1ZUluaGVyaXQpOworICAgICAgICByZXR1cm4g
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShDU1NWYWx1ZUluaXRpYWwpOwog
ICAgIH0KIAogICAgIHJldHVybiAqdmFyaWFibGVWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5jcHAKaW5kZXggNWJjMjY1YTYzN2Q0MjU1MzQzODVhMGM5YzUyMTg0
NjgxOTA5ZDAyYS4uNDIyYTNiOTUxZjBiZjBhMDM1OTljNmQwYTM0MmQ0MDE2N2VjN2EwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKQEAgLTg0LDcgKzg0LDcg
QEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgICAgIC8vIFJhdGhlciB0aGFuIGlu
dmFzaXZlbHkgbW9kaWZ5aW5nIHRoZSBwYXJzZXIgZm9yIHRoZSBwcm9wZXJ0aWVzIHRvIGhhdmUg
YSBzcGVjaWFsIG1vZGUsIHdlIGNhbiBzaW1wbHkgZGV0ZWN0IHRoZSBlcnJvciBjb25kaXRpb24g
YWZ0ZXItdGhlLWZhY3QgYW5kCiAgICAgICAgICAgICAvLyBhdm9pZCBpdCBleHBsaWNpdGx5Lgog
ICAgICAgICAgICAgaWYgKGF1dG8gcGFyc2VkVmFsdWUgPSBwcm9wZXJ0aWVzLmdldFByb3BlcnR5
Q1NTVmFsdWUocHJvcGVydHlJZCkpIHsKLSAgICAgICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUt
PmlzR2xvYmFsS2V5d29yZCgpKQorICAgICAgICAgICAgICAgIGlmIChwYXJzZWRWYWx1ZS0+aXND
U1NXaWRlS2V5d29yZCgpKQogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnJlbW92ZVBy
b3BlcnR5KHByb3BlcnR5SWQpOwogICAgICAgICAgICAgfQogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443484</attachid>
            <date>2021-11-06 07:04:50 -0700</date>
            <delta_ts>2021-11-06 07:22:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211106160448.patch</filename>
            <type>text/plain</type>
            <size>65907</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4ZjA1YmNhNzQ2ZDgy
ODFiYjE4OTFjNDJmMDE3ODViYzJjOTVkOS4uN2NmNzQ2MGZmNzE1ZmM4ZTRlZWY2N2MzYTk3Y2Y0
MjBmMDJiNzYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0xMS0wNiAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIENTU0luaXRpYWxWYWx1ZSwgQ1NTSW5oZXJpdGVkVmFsdWUsIENTU1JldmVydFZhbHVlIGFu
ZCBDU1NVbnNldFZhbHVlIGNsYXNzZXMuCisgICAgICAgIFRoZXkgY2FuIGFsbCBiZSBoYW5kbGVk
IGJ5IENTU1ByaW1pdGl2ZVZhbHVlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRGVwcmVjYXRlZENTU09NVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KU05ld2x5Q3JlYXRlZCk6CisKKyAgICAgICAgQXZvaWQgY2hhbmdpbmcgdGhlIGNsYXNzIHR5
cGUgdmlzaWJsZSBpbiBDU1NPTS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyVGV4dERlY29yYXRpb25TdHls
ZUZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJUZXh0RGVjb3JhdGlv
blNraXBUb0NTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGNzcy9DU1NJbml0aWFsVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9D
U1NJbml0aWFsVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0NTU1dpZGVL
ZXl3b3JkIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NS
ZXZlcnRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NTVW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFs
dWVUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6dHJlYXRBc0luaXRpYWxWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6aXNJbml0aWFsVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6Omlz
SW1wbGljaXRJbml0aWFsVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmlzSW5oZXJpdFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vu
c2V0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFs
dWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VmFsdWU6OkNTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0luaGVyaXRl
ZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0lu
aXRpYWxWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6
aXNVbnNldFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVl
Ojppc1JldmVydFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlOjppc0dsb2JhbEtleXdvcmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0
aWNDU1NWYWx1ZVBvb2wpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZVBvb2wuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVJbmhlcml0ZWRWYWx1ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUV4cGxpY2l0SW5pdGlh
bFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRl
VW5zZXRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNy
ZWF0ZVJldmVydFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlOjppc0NTU1dpZGVLZXl3b3JkIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Ym9yZGVyUmFkaXVzVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpwYWdlQnJlYWtQcm9wZXJ0eVZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYXJzZUtleXdvcmRWYWx1ZSk6CisgICAgICAgICogY3NzL3BhcnNl
ci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ1NTV2lkZUtleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZElkZW50aWZpZXIpOgorCisgICAgICAgIFNlcGFy
YXRlIHRoZSBjb25jZXB0IG9mIHZhbGlkIGlkZW50aWZpZXIgZnJvbSB0aGF0IG9mIENTUy13aWRl
IGtleXdvcmQuIFRoZSBmb3JtZXIgYWxzbyBleGNsdWRlcyB0aGUgb2Jzb2xldGUgImRlZmF1bHQi
IGtleXdvcmQuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om1heWJlQ29uc3VtZUNTU1dpZGVLZXl3b3JkKToKKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVDdXN0b21JZGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVDb3VudGVyU3R5
bGVOYW1lSW5QcmVsdWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVs
cGVyczo6Y29uY2F0ZW5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5UGFyc2VySGVscGVyczo6aXNDU1NXaWRlS2V5d29yZCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdlaWdodElz
Qm9sZCk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAg
ICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAo
SFRNTENvbnZlcnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAg
IChIVE1MQ29udmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRh
YmxlRWxlbWVudDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlIGNvbnN0KToKKyAgICAgICAgKiBzdHls
ZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RWxl
bWVudFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBzdHls
ZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5
Q2FzY2FkZTo6YWRkTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlByb3BlcnR5Q2Fz
Y2FkZTo6cmVzb2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKiBz
dHlsZS9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6
OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXI6OnJlc29s
dmVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKwogMjAyMS0x
MS0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZD
XSBCdWlsZCB0aGUgcGFyYWdyYXBoIGNvbnRlbnQgd2hlbiBhbGwgdGhlIGlubGluZSBpdGVtcyBh
cmUgcHJvY2Vzc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGYyZWY1MGJiZDhiNGYxNDc3OWI3NGFjZTkw
ZTU1YTIwN2Q1MmI4MTYuLjNjNGUxNmY5ZGQ4NTYzNjM2MWY3NTQ4MGJmZTZjNTgxNTE5ZmVmNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC02OTEsOCArNjkxLDYgQEAgY3NzL0NTU0ltYWdlR2VuZXJhdG9y
VmFsdWUuY3BwCiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKIGNzcy9DU1NJbWFnZVZhbHVlLmNw
cAogY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCi1jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCi1jc3Mv
Q1NTSW5pdGlhbFZhbHVlLmNwcAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNzcy9DU1NLZXlm
cmFtZXNSdWxlLmNwcAogY3NzL0NTU0xheWVyUnVsZS5jcHAKQEAgLTcwOCw3ICs3MDYsNiBAQCBj
c3MvQ1NTUHJvcGVydHkuY3BwCiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcAogY3NzL0NT
U1JlZmxlY3RWYWx1ZS5jcHAKIGNzcy9DU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3BwCi1j
c3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCiBjc3MvQ1NTUnVsZS5jcHAKIGNzcy9DU1NSdWxlTGlzdC5j
cHAKIGNzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTcyNCw3ICs3MjEsNiBAQCBjc3Mv
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKIGNzcy9DU1NUb1N0eWxlTWFwLmNwcAogY3Nz
L0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcAogY3NzL0NTU1VuaXRzLmNwcAotY3NzL0NTU1Vuc2V0
VmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWVMaXN0LmNwcAogY3NzL0NT
U1ZhbHVlUGFpci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBkYWZjNWQ4YzY4N2ZkMTUwYjFlNTUyMjQ2ZTVkZTg3NDRmZDFh
MzUxLi42NzQ0ZTVmMjc5ZmIxODMzYzg1MjI4YjA3NGY2MmJmYjViMDZhNTgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTMy
LDEwICszNTMyLDggQEAKIAkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNl
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgw
RTZDRDMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0ZGMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMDAw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFn
ZVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlBODBFNkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q3MEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwMzBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNEOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgw
RTZEMDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3Vu
dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
QTgwRTZEMDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREUwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwQzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZEMEQw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZE
RkMwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8q
IFN0eWxlUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC00MTU1LDggKzQxNTMsNiBAQAogCQlCQzc3MkUxMzEzMzE2MjBDMDAxRUM5
Q0UgLyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVC
b3hDb250YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
NzlFMTMxQkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3OUUxNzFCQjIy
N0NBMDBDQUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzc5RTE1MUJCMjI2QTIwMENBQThCRiAv
KiBTdHlsZUN1c3RvbVByb3BlcnR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNl
dFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzdEOEZFRTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovOyB9OwotCQlCQzdE
OEZGNDFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAv
KiBDU1NSZXZlcnRWYWx1ZS5oICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyog
SW1hZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdGQTYyMTBEMUYw
Q0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVM
aXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3RkE2MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYwRUZGMDBEQjIy
QTkgLyogU3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTEzMjAxLDcgKzEzMTk3LDYgQEAKIAkJ
QTgwRTZDQzMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4MEU2Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDQzYwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaGVyaXRlZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4MEU2Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUxpc3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQ0EwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1NoYWRvd1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NTaGFkb3dWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzIxNiwx
MyArMTMyMTEsMTAgQEAKIAkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ltYWdlVmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNENTBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1Byb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0Q2MEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ1NTUGFnZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgw
RTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NJbml0aWFs
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEOTBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDU1NNZWRpYVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZD
REEwQTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZD
REIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaXRpYWxWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NT
SW5pdGlhbFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RGMEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0NTk4LDEwICsxNDU5MCw2IEBACiAJCUJDNzc5RTEzMUJCMjE1QkIw
MENBQThCRiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVy
dHlEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQ3VzdG9tUHJv
cGVydHlEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1MDgy
NDEwMEE4MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1
NDAgLyogQ1NTVW5zZXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NVbnNldFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3
RDhGRUUxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmV2ZXJ0VmFsdWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyog
Q1NTUmV2ZXJ0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUmV2
ZXJ0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RjQ0QTcwQjlFMzI0
RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3
RkE2MUUwRDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaXZlTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdmVOb2RlTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk5MDksMTAgKzI5ODk3LDYgQEAKIAkJCQlBODBFNkND
MTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1wb3J0UnVsZS5jcHAgKi8sCiAJCQkJQTgwRTZDQ0Mw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuaCAqLywKIAkJCQk4NUM1NkNBOTBBQTg5
RTY2MDBEOTU3NTUgLyogQ1NTSW1wb3J0UnVsZS5pZGwgKi8sCi0JCQkJQTgwRTZDQzYwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmNwcCAqLywKLQkJCQlBODBFNkNENzBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCAqLywKLQkJCQlBODBFNkNEODBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmNwcCAqLywKLQkJCQlBODBFNkNERTBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggKi8sCiAJCQkJMzEyODhFNkUwRTMwMDVE
NjAwMzYxOUFFIC8qIENTU0tleWZyYW1lUnVsZS5jcHAgKi8sCiAJCQkJMzEyODhFNkYwRTMwMDVE
NjAwMzYxOUFFIC8qIENTU0tleWZyYW1lUnVsZS5oICovLAogCQkJCTMxNkZFMDkxMEU2Q0NEN0Yw
MEJGNjA4OCAvKiBDU1NLZXlmcmFtZVJ1bGUuaWRsICovLApAQCAtMjk5NTYsOCArMjk5NDAsNiBA
QAogCQkJCUJDNUExMkRFMERDMDQxNDgwMEM5QUZBRCAvKiBDU1NSZWZsZWN0VmFsdWUuaCAqLywK
IAkJCQk0QjE3MDY2NDIxNjJCNDJGMDBFNTc4QkIgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3Bl
cnR5LmNwcCAqLywKIAkJCQk0QkRBM0ZGQjIxNTFCNkY0MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJl
ZEN1c3RvbVByb3BlcnR5LmggKi8sCi0JCQkJQkM3RDhGRjExQkQxQTQ3OTAwRkZFNTQwIC8qIENT
U1JldmVydFZhbHVlLmNwcCAqLywKLQkJCQlCQzdEOEZGMjFCRDFBNDc5MDBGRkU1NDAgLyogQ1NT
UmV2ZXJ0VmFsdWUuaCAqLywKIAkJCQlBODBFNkNEQzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVs
ZS5jcHAgKi8sCiAJCQkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAqLywK
IAkJCQkxNENGN0E3MDA5RjVDRjlBMDBFQjM2NjUgLyogQ1NTUnVsZS5pZGwgKi8sCkBAIC0yOTk5
Niw4ICsyOTk3OCw2IEBACiAJCQkJMEY2QjcwNzcyMzdCQzEyRjAwNTJDQTQ3IC8qIENTU1VuaXRz
LmggKi8sCiAJCQkJQTgwRTZDQ0UwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Vua25vd25SdWxlLmgg
Ki8sCiAJCQkJODVDNTZDQUQwQUE4OUZFMDAwRDk1NzU1IC8qIENTU1Vua25vd25SdWxlLmlkbCAq
LywKLQkJCQlCQzdEOEZFRDFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5jcHAgKi8s
Ci0JCQkJQkM3RDhGRUUxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLywKIAkJ
CQlBRDAzQUFGODE0Njg0NTM5MDBBMzlCNUIgLyogQ1NTVmFsdWUuY3BwICovLAogCQkJCUE4MEU2
Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oICovLAogCQkJCUJDRUE0NzhDMDk3Q0FB
QzgwMDk0QzlFNCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLApAQCAtMzIyNzMsOCArMzIyNTMs
NiBAQAogCQkJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGQTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjYwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U0ltcG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MEU2RDAxMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgwRTZEMDgwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEy
ODhFNzMwRTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzEyODhFNzUwRTMwMDVENjAwMzYxOUFFIC8qIENTU0tleWZyYW1lc1J1bGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJBNDEwN0E0MjZDQjY2RjgwMDNCRjc5NyAvKiBDU1NLZXl3b3JkVmFs
dWUuaCBpbiBIZWFkZXJzICovLApAQCAtMzIzMjksNyArMzIzMDcsNiBAQAogCQkJCTgyRTNEOERG
MTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNUExMkUwMERDMDQxNDgwMEM5QUZBRCAvKiBDU1NSZWZsZWN0VmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRCREE0MDAxMjE1MUI2RjUwMEZENjYwNCAvKiBDU1NSZWdpc3RlcmVk
Q3VzdG9tUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0Q4RkY0MUJEMUE0NzkwMEZG
RTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE1MzhBMjgyNkYw
MTAzQzAwOTY1RkM4IC8qIENTU1JvdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZEMEQw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0Yy
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjM2
Myw3ICszMjM0MCw2IEBACiAJCQkJNEJBRkQwRTEyMTkyNDJBMDAwQzBBQjY0IC8qIENTU1VuaXRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8qIENT
U1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkFGRDBEOTIxOTIxRUEwMDBDMEFC
NjQgLyogQ1NTVW5wYXJzZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM3RDhGRjAxQkQw
M0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2
Q0VFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNC
QkMyNDcyMzgzNTUyNjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NTY1ODE1MTA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVw
cmVjYXRlZENTU09NVmFsdWVDdXN0b20uY3BwCmluZGV4IGE3ZTEzNGZlYWRlMmM4YjRhMGNlMTU1
OTUwNDczZjYzMDY5Nzc1YmQuLjZkY2Y4YTQzNzYyOGRlZWNkNjJkNWRjMjk2OGU1YTkwN2EzMTZk
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENT
U09NVmFsdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVw
cmVjYXRlZENTU09NVmFsdWVDdXN0b20uY3BwCkBAIC01MSw3ICs1MSw3IEBAIEpTVmFsdWUgdG9K
U05ld2x5Q3JlYXRlZChKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFJlZjxECiB7CiAgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KGdsb2JhbE9iamVj
dCwgV1RGTW92ZSh2YWx1ZSkpOwotICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQor
ICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmICFkb3duY2FzdDxEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZT4odmFsdWUuZ2V0KCkpLmlzQ1NTV2lkZUtleXdvcmQoKSkKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+
KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwogICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PERlcHJlY2F0ZWRDU1NPTVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggNGUxMDA2MThiYTU1ODM3MzQ2NjNhZDZhMzhlZWNmOWU1MmQ1YWI1My4uNjNmNWQ3
Mzg5MzFmYmIxMTUzNmQxMjYwNzQ3NGY1MGIyZGE2YmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE2NTIsNyArMTY1
Miw3IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNvcmF0aW9uU3R5bGVGbGFn
c1RvQ1NTVmFsdWUoVGV4dERlY29yYXRpb25TdHlsCiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhw
bGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKIH0KIAogc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwVG9DU1NWYWx1ZShUZXh0RGVj
b3JhdGlvblNraXBJbmsgdGV4dERlY29yYXRpb25Ta2lwSW5rKQpAQCAtMTY2Nyw3ICsxNjY3LDcg
QEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwVG9DU1NW
YWx1ZShUZXh0RGVjb3JhdGlvblNraXBJbmsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNp
dEluaXRpYWxWYWx1ZSgpOworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaXRpYWwpOwogfQogCiBzdGF0aWMgUmVmPENT
U1ZhbHVlPiB0ZXh0VW5kZXJsaW5lT2Zmc2V0VG9DU1NWYWx1ZShjb25zdCBUZXh0VW5kZXJsaW5l
T2Zmc2V0JiB0ZXh0VW5kZXJsaW5lT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0luaGVyaXRlZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0
ZWRWYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkMjQ4OTgxYjFhZDI0
NGJlY2Q3MzQ4MTMzMmI3YTg3YWFjZTg5N2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICogKEMpIDE5OTktMjAwMyBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NTSW5oZXJp
dGVkVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAiaW5oZXJpdCJf
czsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJp
dGVkVmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjUyYjkxNTRhYTIyOGQ1
MTA5ZWJiNDAwZjJlOTlkZGRlZWZkZDQ0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuaAor
KysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiAoQykgMTk5OS0yMDAzIExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ1NTSW5o
ZXJpdGVkVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0cmlu
ZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbmhl
cml0ZWRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJpdmF0ZToKLSAgICBmcmll
bmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRlZFZhbHVlPjsKLSAgICBDU1NJbmhlcml0
ZWRWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZykKLSAgICAgICAgOiBDU1NWYWx1ZShJbmhlcml0ZWRD
bGFzcykKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU0lu
aGVyaXRlZFZhbHVlLCBpc0luaGVyaXRlZFZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0
aWFsVmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDE0MzZlN2YxZWNh
NjQ2Zjg2OGQ5ODhmNzY2MjQ2ZWY3NjEzMzBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoqCi0gKiAoQykgMTk5OS0yMDAzIExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJpbmcgQ1NTSW5pdGlhbFZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gImluaXRpYWwiX3M7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbml0aWFsVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRmYjc2ZjI1MWYyNDRmMTUxY2E3Mjgx
MjJiYzEyYTQ0YTliYTdhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw1MCArMCwwIEBACi0vKgotICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NW
YWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU0luaXRpYWxWYWx1ZSBm
aW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNTU1Rl
eHQoKSBjb25zdDsKLQotICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJ
bXBsaWNpdDsgfQotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTSW5pdGlhbFZhbHVlJikgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0
cm95ZWQ8Q1NTSW5pdGlhbFZhbHVlPjsKLSAgICBDU1NJbml0aWFsVmFsdWUoU3RhdGljQ1NTVmFs
dWVUYWcsIGJvb2wgaW1wbGljaXQpCi0gICAgICAgIDogQ1NTVmFsdWUoSW5pdGlhbENsYXNzKQot
ICAgICAgICAsIG1faXNJbXBsaWNpdChpbXBsaWNpdCkKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0
aWMoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBtX2lzSW1wbGljaXQ7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVF
KENTU0luaXRpYWxWYWx1ZSwgaXNJbml0aWFsVmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGE5ZDAyMjZmOWNkZDUwNTcyYTJkYmM4YTU5OTA4Njk3
MTcxNjg0YmMuLmI2YTcwNWE3YjBlY2ZhZjU0YmQ4YmIxMTE0YmQ3NGQ2MzJlNTkzZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMjYsNiArMjYsNyBAQAog
I2luY2x1ZGUgIkNTU0ZvbnRGYW1pbHkuaCIKICNpbmNsdWRlICJDU1NIZWxwZXIuaCIKICNpbmNs
dWRlICJDU1NNYXJrdXAuaCIKKyNpbmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1l
cy5oIgogI2luY2x1ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKQEAgLTM2Miw2ICsz
NjMsMTMgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1Zh
bHVlVGFnLCBkb3VibGUgbnVtLCBDU1NVbml0VHlwZQogICAgIG1ha2VTdGF0aWMoKTsKIH0KIAor
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBJ
bXBsaWNpdEluaXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKENTU1ZhbHVl
SW5pdGlhbCkKK3sKKyAgICBtX2lzSW1wbGljaXQgPSB0cnVlOworICAgIG1ha2VTdGF0aWMoKTsK
K30KKwogdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6aW5pdChjb25zdCBMZW5ndGgmIGxlbmd0aCkK
IHsKICAgICBzd2l0Y2ggKGxlbmd0aC50eXBlKCkpIHsKQEAgLTE0MzgsNCArMTQ0Niw5IEBAIHZv
aWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbGxlY3REaXJlY3RSb290Q29tcHV0YXRpb25hbERlcGVu
ZGVuY2llcyhIYXNoU2V0PENTU1ByCiAgICAgfQogfQogCitib29sIENTU1ByaW1pdGl2ZVZhbHVl
Ojppc0NTU1dpZGVLZXl3b3JkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6aXNDU1NX
aWRlS2V5d29yZCh2YWx1ZUlEKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGI3NDc5YzdiZjdkOTU0NzUwODc5
Mjk0OTZmNGQ0YjFhOWVkNTg4NjEuLjUxNDhhNGNiMmU0NzU0M2NlZjE3NGFkMmI4MDMxMDJiYjQw
OWEzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0xMTUsNiAr
MTE1LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzRmxleCgpIGNvbnN0IHsgcmV0dXJuIHByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX0ZSOyB9CiAgICAgYm9vbCBpc0N1c3RvbUlk
ZW50KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9PSBDU1NVbml0VHlwZTo6
Q3VzdG9tSWRlbnQ7IH0KIAorICAgIGJvb2wgaXNJbml0aWFsVmFsdWUoKSBjb25zdCB7IHJldHVy
biB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbml0aWFsOyB9CisgICAgYm9vbCBpc0ltcGxpY2l0SW5p
dGlhbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gaXNJbml0aWFsVmFsdWUoKSAmJiBtX2lzSW1wbGlj
aXQ7IH0KKyAgICBib29sIGlzSW5oZXJpdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgp
ID09IENTU1ZhbHVlSW5oZXJpdDsgfQorICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlVW5zZXQ7IH0KKyAgICBib29sIGlzUmV2ZXJ0VmFs
dWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVSZXZlcnQ7IH0KKyAgICBi
b29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdDsKKwogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0
aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1ZUlEKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlSUQpKTsgfQogICAgIHN0YXRpYyBS
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHByb3BlcnR5
SUQpKTsgfQogCkBAIC0xOTgsNiArMjA1LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBDU1NWYWx1ZVBvb2w7CisgICAgZnJpZW5kIGNsYXNzIFN0YXRpY0NTU1ZhbHVl
UG9vbDsKICAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU1ByaW1pdGl2ZVZhbHVlPjsK
IAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKENTU1ZhbHVlSUQpOwpAQCAtMjEyLDYgKzIyMCw4IEBA
IHByaXZhdGU6CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIENTU1Zh
bHVlSUQpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBjb25zdCBD
b2xvciYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBkb3VibGUs
IENTU1VuaXRUeXBlKTsKKyAgICBlbnVtIEltcGxpY2l0SW5pdGlhbFZhbHVlVGFnIHsgSW1wbGlj
aXRJbml0aWFsVmFsdWUgfTsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRh
ZywgSW1wbGljaXRJbml0aWFsVmFsdWVUYWcpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Q1NTUHJpbWl0aXZlVmFsdWUoVCk7IC8vIERlZmluZWQgaW4gQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gQ1NTUHJpbWl0aXZlVmFsdWUoUmVmUHRy
PFQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGFkYzQwZDM3ZWYwNTY1MzUyNDc0NDU2MTY5ZTU0ZWYyZDQzMDhhMzcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTUmV2ZXJ0VmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NS
ZXZlcnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJyZXZlcnQi
X3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZh
bHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWIyNGQ3MjM3ZDdlZmE2ZTMz
NTJhZjZjMzU4NDc1MzYzZjFjMDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1JldmVydFZhbHVlIGZpbmFsIDogcHVibGljIENT
U1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwotCi0g
ICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUmV2ZXJ0VmFsdWUmKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxDU1NSZXZlcnRW
YWx1ZT47Ci0gICAgQ1NTUmV2ZXJ0VmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcpCi0gICAgICAgIDog
Q1NTVmFsdWUoUmV2ZXJ0Q2xhc3MpCi0gICAgewotICAgICAgICBtYWtlU3RhdGljKCk7Ci0gICAg
fQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0NTU19WQUxVRShDU1NSZXZlcnRWYWx1ZSwgaXNSZXZlcnRWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Vuc2V0VmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjZiMGIz
YmM3NTQzMzY3NjUzNjQ3NGE0MDdlN2QwN2RkNzVlYjdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVl
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
Q1NTVW5zZXRWYWx1ZS5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIENTU1Vuc2V0VmFsdWU6OmN1c3RvbUNTU1RleHQo
KSBjb25zdAotewotICAgIHJldHVybiAidW5zZXQiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNjUyNWM4ZGEyMGQ1OTllYzJkNDM0ZTQ3ZWQ0ODlkNmMzOTJkNmQ0Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NVbnNldFZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1Vu
c2V0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGljOgotICAgIFN0cmluZyBj
dXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NVbnNldFZh
bHVlJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5
TmV2ZXJEZXN0cm95ZWQ8Q1NTVW5zZXRWYWx1ZT47Ci0gICAgQ1NTVW5zZXRWYWx1ZShTdGF0aWND
U1NWYWx1ZVRhZykKLSAgICAgICAgOiBDU1NWYWx1ZShVbnNldENsYXNzKQotICAgIHsKLSAgICAg
ICAgbWFrZVN0YXRpYygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTVW5zZXRWYWx1ZSwgaXNVbnNldFZh
bHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCA2MWFjNzExYTczNTFmZGRkZGQ3ZjI2
ZjY5MDI4MGQzZDgxYTYxZjEyLi40ZjNmNDVhZTg0YTlkOGRmNTNiNjliNmIzMzM2NjBkOGMzY2Zi
YzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKQEAgLTQ5LDggKzQ5LDYgQEAKICNpbmNsdWRl
ICJDU1NHcmFkaWVudFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VTZXRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbmhlcml0ZWRWYWx1ZS5oIgot
I2luY2x1ZGUgIkNTU0luaXRpYWxWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0xpbmVCb3hDb250YWlu
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NOYW1lZEltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQ
YWludEltYWdlVmFsdWUuaCIKQEAgLTYxLDcgKzU5LDYgQEAKICNpbmNsdWRlICJDU1NTaGFkb3dW
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJD
U1NVbmljb2RlUmFuZ2VWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1Vuc2V0VmFsdWUuaCIKICNpbmNs
dWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBhaXIuaCIKICNpbmNsdWRl
ICJDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmgiCkBAIC04MywxNiArODAsMTEgQEAgc3RydWN0
IFNhbWVTaXplQXNDU1NWYWx1ZSB7CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihDU1NWYWx1ZSkg
PT0gc2l6ZW9mKFNhbWVTaXplQXNDU1NWYWx1ZSksIENTU192YWx1ZV9zaG91bGRfc3RheV9zbWFs
bCk7CiAKLWJvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbml0aWFsQ2xhc3MgJiYgZG93bmNhc3Q8Q1NTSW5p
dGlhbFZhbHVlPigqdGhpcykuaXNJbXBsaWNpdCgpOwotfQotCiBERUZJTkVfQUxMT0NBVE9SX1dJ
VEhfSEVBUF9JREVOVElGSUVSKENTU1ZhbHVlKTsKIAogQ1NTVmFsdWU6OlR5cGUgQ1NTVmFsdWU6
OmNzc1ZhbHVlVHlwZSgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzSW5oZXJpdGVkVmFsdWUoKSkKKyAg
ICBpZiAoaXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgcmV0dXJuIENTU19JTkhFUklUOwogICAg
IGlmIChpc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBDU1NfUFJJTUlUSVZFX1ZB
TFVFOwpAQCAtMTg0LDE0ICsxNzYsNiBAQCBib29sIENTU1ZhbHVlOjplcXVhbHMoY29uc3QgQ1NT
VmFsdWUmIG90aGVyKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8
Q1NTQ3Jvc3NmYWRlVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgSW1hZ2VDbGFz
czoKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0ltYWdlVmFsdWU+KCp0
aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0gICAgICAgICAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbmhlcml0ZWRWYWx1ZT4oKnRoaXMsIG90aGVyKTsK
LSAgICAgICAgY2FzZSBJbml0aWFsQ2xhc3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNT
U1ZhbHVlczxDU1NJbml0aWFsVmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgVW5z
ZXRDbGFzczoKLSAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU1Vuc2V0VmFs
dWU+KCp0aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgICAg
ICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NSZXZlcnRWYWx1ZT4oKnRoaXMsIG90aGVyKTsK
ICAgICAgICAgY2FzZSBHcmlkQXV0b1JlcGVhdENsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNv
bXBhcmVDU1NWYWx1ZXM8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAg
ICAgICAgY2FzZSBHcmlkSW50ZWdlclJlcGVhdENsYXNzOgpAQCAtMjg2LDE0ICsyNzAsNiBAQCBT
dHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTQ3Jvc3NmYWRlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBJbWFn
ZUNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4oKnRoaXMpLmN1
c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIEluaGVyaXRlZENsYXNzOgotICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8Q1NTSW5oZXJpdGVkVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7Ci0gICAg
Y2FzZSBJbml0aWFsQ2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NJbml0aWFsVmFs
dWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBVbnNldENsYXNzOgotICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8Q1NTVW5zZXRWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsK
LSAgICBjYXNlIFJldmVydENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUmV2ZXJ0
VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkQXV0b1JlcGVhdENs
YXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4oKnRo
aXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEdyaWRJbnRlZ2VyUmVwZWF0Q2xhc3M6CkBA
IC00MTAsMTggKzM4Niw2IEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIGNhc2UgSW1h
Z2VDbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KHRoaXMpOwog
ICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAgICAgICAgZGVsZXRl
IGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTSW5pdGlhbFZh
bHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVW5zZXRDbGFzczoKLSAgICAg
ICAgZGVsZXRlIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KHRoaXMpOwotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU1JldmVy
dFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgR3JpZEF1dG9SZXBlYXRD
bGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KHRo
aXMpOwogICAgICAgICByZXR1cm47CkBAIC01MTMsMTIgKzQ3Nyw0MyBAQCBSZWY8RGVwcmVjYXRl
ZENTU09NVmFsdWU+IENTU1ZhbHVlOjpjcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKENTU1N0
eWxlRGVjbGFyYQogCiBib29sIENTU1ZhbHVlOjp0cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIHJldHVybiBjbGFzc1R5cGUoKSA9PSBJ
bmhlcml0ZWRDbGFzcyB8fCAoY2xhc3NUeXBlKCkgPT0gVW5zZXRDbGFzcyAmJiBDU1NQcm9wZXJ0
eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7CisgICAgcmV0dXJuIGlzSW5oZXJp
dFZhbHVlKCkgfHwgKGlzVW5zZXRWYWx1ZSgpICYmIENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFBy
b3BlcnR5KHByb3BlcnR5SUQpKTsKIH0KIAogYm9vbCBDU1NWYWx1ZTo6dHJlYXRBc0luaXRpYWxW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNsYXNz
VHlwZSgpID09IEluaXRpYWxDbGFzcyB8fCAoY2xhc3NUeXBlKCkgPT0gVW5zZXRDbGFzcyAmJiAh
Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworICAgIHJldHVy
biBpc0luaXRpYWxWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiAhQ1NTUHJvcGVydHk6Omlz
SW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworfQorCitib29sIENTU1ZhbHVlOjppc0lu
aXRpYWxWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigq
dGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc0luaXRpYWxWYWx1
ZSgpOworfQorCitib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKTsKK30KKwor
Ym9vbCBDU1NWYWx1ZTo6aXNJbmhlcml0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxD
U1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigq
dGhpcykuaXNJbmhlcml0VmFsdWUoKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6aXNVbnNldFZhbHVl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBk
b3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzVW5zZXRWYWx1ZSgpOwogfQogCiti
b29sIENTU1ZhbHVlOjppc1JldmVydFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NT
UHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRo
aXMpLmlzUmV2ZXJ0VmFsdWUoKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6aXNDU1NXaWRlS2V5d29y
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykgJiYg
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc0NTU1dpZGVLZXl3b3JkKCk7Cit9
CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBhZTUwNmVmN2M5OTcyNzEyOGExZDgxM2M1
ZDIyNjRiNTBjN2YzMTQxLi4yOWVhNGI2ZDExNjY0Mjk2YTc3ZjFkZDk2NzZlNjAyOGQ1N2JkNTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtMTA3LDExICsxMDcsMTEgQEAgcHVibGljOgogICAg
IGJvb2wgaXNJbWFnZVNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW1h
Z2VTZXRDbGFzczsgfQogICAgIGJvb2wgaXNJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gSW1hZ2VDbGFzczsgfQogICAgIGJvb2wgaXNJbXBsaWNpdEluaXRpYWxWYWx1
ZSgpIGNvbnN0OwotICAgIGJvb2wgaXNJbmhlcml0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xhc3NUeXBlID09IEluaGVyaXRlZENsYXNzOyB9Ci0gICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFzczsgfQotICAgIGJvb2wg
aXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gVW5zZXRDbGFzczsg
fQotICAgIGJvb2wgaXNSZXZlcnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09
IFJldmVydENsYXNzOyB9Ci0gICAgYm9vbCBpc0dsb2JhbEtleXdvcmQoKSBjb25zdCB7IHJldHVy
biBpc0luaGVyaXRlZFZhbHVlKCkgfHwgaXNJbml0aWFsVmFsdWUoKSB8fCBpc1Vuc2V0VmFsdWUo
KSB8fCBpc1JldmVydFZhbHVlKCk7IH0KKyAgICBib29sIGlzSW5oZXJpdFZhbHVlKCkgY29uc3Q7
CisgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OworICAgIGJvb2wgaXNVbnNldFZhbHVl
KCkgY29uc3Q7CisgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc0NT
U1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAgICAgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVlKENTU1By
b3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgdHJlYXRBc0luaGVyaXRlZFZhbHVlKENTU1Byb3Bl
cnR5SUQpIGNvbnN0OwogICAgIGJvb2wgaXNMaW5lYXJHcmFkaWVudFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jbGFzc1R5cGUgPT0gTGluZWFyR3JhZGllbnRDbGFzczsgfQpAQCAtMTkxLDExICsx
OTEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEZvbnRQYWxldHRlVmFsdWVzT3ZlcnJpZGVDb2xv
cnNDbGFzcywKICAgICAgICAgRnVuY3Rpb25DbGFzcywKIAotICAgICAgICBJbmhlcml0ZWRDbGFz
cywKLSAgICAgICAgSW5pdGlhbENsYXNzLAotICAgICAgICBVbnNldENsYXNzLAotICAgICAgICBS
ZXZlcnRDbGFzcywKLQogICAgICAgICBSZWZsZWN0Q2xhc3MsCiAgICAgICAgIFNoYWRvd0NsYXNz
LAogICAgICAgICBVbmljb2RlUmFuZ2VDbGFzcywKQEAgLTIzNyw2ICsyMzIsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIDogbV9wcmltaXRpdmVVbml0VHlwZSgwKQogICAgICAgICAsIG1faGFzQ2Fj
aGVkQ1NTVGV4dChmYWxzZSkKICAgICAgICAgLCBtX3ZhbHVlU2VwYXJhdG9yKFNwYWNlU2VwYXJh
dG9yKQorICAgICAgICAsIG1faXNJbXBsaWNpdChmYWxzZSkKICAgICAgICAgLCBtX2NsYXNzVHlw
ZShjbGFzc1R5cGUpCiAgICAgewogICAgIH0KQEAgLTI2Myw2ICsyNTksNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2hhc0NhY2hlZENTU1RleHQgOiAxOwogCiAgICAgdW5z
aWduZWQgbV92YWx1ZVNlcGFyYXRvciA6IFZhbHVlU2VwYXJhdG9yQml0czsKKyAgICB1bnNpZ25l
ZCBtX2lzSW1wbGljaXQgOiAxOwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fY2xhc3NUeXBl
IDogQ2xhc3NUeXBlQml0czsgLy8gQ2xhc3NUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wu
Y3BwCmluZGV4IDUwMTgzNWNjNDRlZGY1OWFmMjQ4NmM1YWU0ODY5ZmNlNjZhNzI4ZmQuLjQzMTU5
NDczOGNmNjY5NmE5OTliNzRkYjExZDY1Yzc3NDAzZmEzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZVBvb2wuY3BwCkBAIC0zOCwxMiArMzgsOCBAQCBMYXp5TmV2ZXJEZXN0cm95ZWQ8U3RhdGlj
Q1NTVmFsdWVQb29sPiBzdGF0aWNDU1NWYWx1ZVBvb2w7CiAKIFN0YXRpY0NTU1ZhbHVlUG9vbDo6
U3RhdGljQ1NTVmFsdWVQb29sKCkKIHsKLSAgICBtX2luaGVyaXRlZFZhbHVlLmNvbnN0cnVjdChD
U1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOwotICAgIG1faW1wbGljaXRJbml0aWFsVmFsdWUuY29u
c3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgdHJ1ZSk7Ci0gICAgbV9leHBsaWNpdElu
aXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBmYWxzZSk7Ci0g
ICAgbV91bnNldFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOwotICAg
IG1fcmV2ZXJ0VmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0KKyAg
ICBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFs
dWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpJbXBsaWNpdEluaXRpYWxWYWx1ZSk7CisgICAgCiAgICAg
bV90cmFuc3BhcmVudENvbG9yLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIENv
bG9yOjp0cmFuc3BhcmVudEJsYWNrKTsKICAgICBtX3doaXRlQ29sb3IuY29uc3RydWN0KENTU1Zh
bHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OndoaXRlKTsKICAgICBtX2JsYWNrQ29sb3IuY29u
c3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OmJsYWNrKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZVBvb2wuaAppbmRleCAxZmIyMzE2ZWZjMDMxMGEzYmZjYTM4NGYxMGM3ZGUwNzFm
NDFlOWVkLi4xZDZlYzExNDJmNzMzNTgwYWE3NDQ1N2E0OGZiOTRkNjBkYWY2NjRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlUG9vbC5oCkBAIC0yNSwxMiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTSW5pdGlhbFZh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzLmgiCi0jaW5jbHVkZSAiQ1NTUmV2ZXJ0VmFsdWUuaCIKLSNpbmNsdWRlICJDU1NV
bnNldFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNv
bG9ySGFzaC5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CkBAIC01NSwxMSArNTEsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFN0YXRpY0NTU1ZhbHVlUG9vbCgpOwogCi0gICAgTGF6eU5ldmVyRGVz
dHJveWVkPENTU0luaGVyaXRlZFZhbHVlPiBtX2luaGVyaXRlZFZhbHVlOwotICAgIExhenlOZXZl
ckRlc3Ryb3llZDxDU1NJbml0aWFsVmFsdWU+IG1faW1wbGljaXRJbml0aWFsVmFsdWU7Ci0gICAg
TGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT4gbV9leHBsaWNpdEluaXRpYWxWYWx1
ZTsKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTVW5zZXRWYWx1ZT4gbV91bnNldFZhbHVlOwot
ICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NSZXZlcnRWYWx1ZT4gbV9yZXZlcnRWYWx1ZTsKKyAg
ICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+IG1faW1wbGljaXRJbml0aWFs
VmFsdWU7CiAKICAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdHJh
bnNwYXJlbnRDb2xvcjsKICAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+
IG1fd2hpdGVDb2xvcjsKQEAgLTg1LDExICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxD
U1NWYWx1ZUxpc3Q+IGNyZWF0ZUZvbnRGYWNlVmFsdWUoY29uc3QgQXRvbVN0cmluZyYpOwogICAg
IFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlRm9udEZhbWlseVZhbHVlKGNvbnN0IFN0cmlu
ZyYsIEZyb21TeXN0ZW1Gb250SUQgPSBGcm9tU3lzdGVtRm9udElEOjpObyk7Ci0gICAgUmVmPENT
U0luaGVyaXRlZFZhbHVlPiBjcmVhdGVJbmhlcml0ZWRWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NT
U1ZhbHVlUG9vbC0+bV9pbmhlcml0ZWRWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NJbml0aWFs
VmFsdWU+IGNyZWF0ZUltcGxpY2l0SW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFs
dWVQb29sLT5tX2ltcGxpY2l0SW5pdGlhbFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRp
YWxWYWx1ZT4gY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NW
YWx1ZVBvb2wtPm1fZXhwbGljaXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTVW5z
ZXRWYWx1ZT4gY3JlYXRlVW5zZXRWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+
bV91bnNldFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU1JldmVydFZhbHVlPiBjcmVhdGVSZXZl
cnRWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9yZXZlcnRWYWx1ZS5nZXQo
KTsgfQorICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSW1wbGljaXRJbml0aWFsVmFs
dWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faW1wbGljaXRJbml0aWFsVmFsdWUu
Z2V0KCk7IH0KICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXJWYWx1
ZShDU1NWYWx1ZUlEIGlkZW50aWZpZXIpOwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3Jl
YXRlSWRlbnRpZmllclZhbHVlKENTU1Byb3BlcnR5SUQgaWRlbnRpZmllcik7CiAgICAgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVDb2xvclZhbHVlKGNvbnN0IENvbG9yJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCmluZGV4
IDdhOGYxZGEzMDJkYmFkMzY0NDRiZTEzYzRhMmJjNjM2NjY1MjFhZjEuLjYxOWRiZWMzZWU5NzNj
NDgyZTFhNzg1NTU1N2RhYTQwNDFhZTRkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCkBAIC04OSw2ICs4OSw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U3RyaW5nVmFsdWUodW5zaWduZWQg
c2hvcnQsIGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yIH07IH0KIAogICAgIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWUtPnN0cmluZ1ZhbHVlKCk7IH0KKyAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQo
KSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5pc0NTU1dpZGVLZXl3b3JkKCk7IH0KIAogcHJpdmF0
ZToKICAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZShjb25zdCBDU1NQcmltaXRpdmVW
YWx1ZSYgdmFsdWUsIENTU1N0eWxlRGVjbGFyYXRpb24mIG93bmVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCBjODNhZDhkYTMyZmQ5M2E2MDk4ZjdiYzQ4M2QzYmQ5
MzQzMTMwNWJjLi5hZjg5N2NkMTdjNzA4YWJhODUwNGM0ZTU1YTVlODYwYzY1ZGEyNWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXJUZXN0RnVu
Y3Rpb25zLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxlU2NvcGUu
aCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFudEl0
ZXJhdG9yLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggZTUw
OWVlNjdmOTA3ZmEwNmU0OTk2ODQzNmM2MjNmNDFiNGQ1YTQ0Ny4uMDYzZWYzNThhZmY3MTBjMzZm
NDBlOWI4MGQxOWRhZTRiODcyMjNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGll
cy5jcHAKQEAgLTQwMCw3ICs0MDAsNyBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJS
YWRpdXNWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzaG9ydGhhbgogICAgIGlm
ICh0b3BMZWZ0LmlzSW1wb3J0YW50KCkgIT0gdG9wUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCB0b3BS
aWdodC5pc0ltcG9ydGFudCgpICE9IGJvdHRvbVJpZ2h0LmlzSW1wb3J0YW50KCkgfHwgYm90dG9t
UmlnaHQuaXNJbXBvcnRhbnQoKSAhPSBib3R0b21MZWZ0LmlzSW1wb3J0YW50KCkpCiAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKIAotICAgIGlmICh0b3BMZWZ0VmFsdWUtPmlzSW5oZXJpdGVkVmFs
dWUoKSAmJiB0b3BSaWdodFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkgJiYgYm90dG9tUmlnaHRW
YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpICYmIGJvdHRvbUxlZnRWYWx1ZS0+aXNJbmhlcml0ZWRW
YWx1ZSgpKQorICAgIGlmICh0b3BMZWZ0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkgJiYgdG9wUmln
aHRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSAmJiBib3R0b21SaWdodFZhbHVlLT5pc0luaGVyaXRW
YWx1ZSgpICYmIGJvdHRvbUxlZnRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgcmV0
dXJuIGdldFZhbHVlTmFtZShDU1NWYWx1ZUluaGVyaXQpOwogCiAgICAgaWYgKHRvcExlZnRWYWx1
ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCB0b3BSaWdodFZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8
IGJvdHRvbVJpZ2h0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwgYm90dG9tTGVmdFZhbHVlLT5p
c0luaXRpYWxWYWx1ZSgpKSB7CkBAIC04NTIsOCArODUyLDggQEAgU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6cGFnZUJyZWFrUHJvcGVydHlWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5k
JiBzaG8KICAgICBhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShzaG9ydGhhbmQucHJv
cGVydGllcygpWzBdKTsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGlzR2xvYmFsS2V5d29yZCBjaGVjayBhZnRlciB3
ZSBkbyB0aGlzIGNvbnNpc3RlbnRseSBmb3IgYWxsIHNob3J0aGFuZHMgaW4gZ2V0UHJvcGVydHlW
YWx1ZS4KLSAgICBpZiAodmFsdWUtPmlzR2xvYmFsS2V5d29yZCgpKQorICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBpc0NTU1dpZGVLZXl3b3JkIGNoZWNrIGFmdGVyIHdlIGRvIHRoaXMgY29uc2lz
dGVudGx5IGZvciBhbGwgc2hvcnRoYW5kcyBpbiBnZXRQcm9wZXJ0eVZhbHVlLgorICAgIGlmICh2
YWx1ZS0+aXNDU1NXaWRlS2V5d29yZCgpKQogICAgICAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQo
KTsKICAgICAKICAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IDM3
YTExNTFhZGEyZTk3NWI0Y2M0N2Q3YjZlNDc5NjgzZDFjMTYzZmYuLmM3NDFkYTYxZjQ0NGZhNTVj
NzI3YTNlZDc5NGM1ZWMyZWFkYjYxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKQEAgLTExMTUsMTkgKzExMTUsMTEgQEAgc3RhdGlj
IFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VLZXl3b3JkVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlkLCBTdHJpbmdWaWV3IHMKICAgICBpZiAoIXZhbHVlSUQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgaWYgKCFwYXJzaW5nRGVzY3JpcHRvcikgewotICAgICAgICBpZiAodmFsdWVJ
RCA9PSBDU1NWYWx1ZUluaGVyaXQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpz
aW5nbGV0b24oKS5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpOwotICAgICAgICBpZiAodmFsdWVJRCA9
PSBDU1NWYWx1ZUluaXRpYWwpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5n
bGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOwotICAgICAgICBpZiAodmFsdWVJ
RCA9PSBDU1NWYWx1ZVVuc2V0KQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2lu
Z2xldG9uKCkuY3JlYXRlVW5zZXRWYWx1ZSgpOwotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NW
YWx1ZVJldmVydCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigp
LmNyZWF0ZVJldmVydFZhbHVlKCk7Ci0gICAgfQotICAgIAorICAgIGlmICghcGFyc2luZ0Rlc2Ny
aXB0b3IgJiYgaXNDU1NXaWRlS2V5d29yZCh2YWx1ZUlEKSkKKyAgICAgICAgcmV0dXJuIENTU1Zh
bHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlSUQpOworCiAg
ICAgaWYgKENTU1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVl
KHByb3BlcnR5SWQsIHZhbHVlSUQsIGNvbnRleHQpKQotICAgICAgICByZXR1cm4gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWVJRCk7CisgICAgICAgIHJldHVybiBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZUlEKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJJZGlvbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VySWRpb21zLmgKaW5kZXggODE3NGM3MzJlNjgxZGQ3ZDNlNDAxMDQxNGQwY2IwMWEzZTNjNGNh
My4uMGEwZWVlOTNiMzFiYzg3ZjQ1MzVkYzcyZWUxNGUzZWNjZDE0OTI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCkBAIC01OSw0ICs1OSwxNSBAQCBi
b29sIGlzTmFtZUNvZGVQb2ludChDaGFyYWN0ZXJUeXBlIGMpCiAKIGJvb2wgaXNWYWx1ZUFsbG93
ZWRJbk1vZGUodW5zaWduZWQgc2hvcnQsIENTU1BhcnNlck1vZGUpOwogCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNDU1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIHZhbHVlSUQpCit7CisgICAgcmV0dXJu
IHZhbHVlSUQgPT0gQ1NTVmFsdWVJbml0aWFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0
OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZElkZW50aWZpZXIoQ1NTVmFsdWVJRCB2
YWx1ZUlEKQoreworICAgIC8vICJkZWZhdWx0IiBpcyBvYnNvbGV0ZSBhcyBDU1Mtd2lkZSBrZXl3
b3JkIGJ1dCBpcyBzdGlsbCBub3QgYWxsb3dlZCBhcyBpZGVudGlmaWVyLgorICAgIHJldHVybiAh
aXNDU1NXaWRlS2V5d29yZCh2YWx1ZUlEKSAmJiB2YWx1ZUlEICE9IENTU1ZhbHVlRGVmYXVsdDsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBhNjE0OTJjYzY1ODJmODIwYWVlY2JlM2Nk
NTAzNGE1OGQ5M2Q3MDA1Li5hODk2NjdlODk4MTdmZjZiZWM1MWRkNWFkOGM4MmFhNjBjNGQ2NGY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cApAQCAtMjU4LDIwICsyNTgsMTEgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gbWF5YmVDb25z
dW1lQ1NTV2lkZUtleXdvcmQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgaWYgKCFy
YW5nZUNvcHkuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlOwotICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCkKLSAg
ICAgICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZh
bHVlKCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwpCi0gICAgICAg
IHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxW
YWx1ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNldCkKLSAgICAgICAg
dmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVVuc2V0VmFsdWUoKTsKLSAg
ICBlbHNlIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2ZXJ0KQotICAgICAgICB2YWx1ZSA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICBlbHNlCisg
ICAgaWYgKCFpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIHJhbmdlID0gcmFuZ2VDb3B5OwotICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1
cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWVJ
RCk7CiB9CiAKIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xl
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXgg
M2Q0ZmY5NDBlNGNkNTRlMTZlMGI1MWQ3MTg2MjIzZjc5MDRlNjNjZi4uYmU2ZTA2Y2FlZDM5Mzg0
YjVhNGVhMThjZmU3YWI0MTZlN2VhNjc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcApAQCAtNTksMTEgKzU5LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgQ1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzIHsKIAotc3RhdGljIGlubGluZSBib29sIGlzQ1NTV2lkZUtleXdvcmQoQ1NTVmFsdWVJRCBp
ZCkKLXsKLSAgICByZXR1cm4gaWQgPT0gQ1NTVmFsdWVJbml0aWFsIHx8IGlkID09IENTU1ZhbHVl
SW5oZXJpdCB8fCBpZCA9PSBDU1NWYWx1ZVVuc2V0IHx8IGlkID09IENTU1ZhbHVlUmV2ZXJ0IHx8
IGlkID09IENTU1ZhbHVlRGVmYXVsdDsKLX0KLQogYm9vbCBjb25zdW1lQ29tbWFJbmNsdWRpbmdX
aGl0ZXNwYWNlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIENTU1BhcnNlclRv
a2VuIHZhbHVlID0gcmFuZ2UucGVlaygpOwpAQCAtMTM3MCw3ICsxMzY1LDcgQEAgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lSWRlbnRSYW5nZShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgQ1NTVmFsdWUKIAogUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lQ3VzdG9t
SWRlbnQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGJvb2wgc2hvdWxkTG93ZXJjYXNlKQog
ewotICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IElkZW50VG9rZW4gfHwgaXNDU1NXaWRl
S2V5d29yZChyYW5nZS5wZWVrKCkuaWQoKSkpCisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkg
IT0gSWRlbnRUb2tlbiB8fCAhaXNWYWxpZElkZW50aWZpZXIocmFuZ2UucGVlaygpLmlkKCkpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGlkZW50aWZpZXIgPSByYW5nZS5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLnZhbHVlKCk7CiAgICAgcmV0dXJuIENTU1ZhbHVlUG9v
bDo6c2luZ2xldG9uKCkuY3JlYXRlQ3VzdG9tSWRlbnQoc2hvdWxkTG93ZXJjYXNlID8gaWRlbnRp
Zmllci5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpIDogaWRlbnRpZmllci50b1N0cmluZygpKTsK
QEAgLTM2NDgsNyArMzY0Myw3IEBAIEF0b21TdHJpbmcgY29uc3VtZUNvdW50ZXJTdHlsZU5hbWVJ
blByZWx1ZGUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcHJlbHVkZSkKICAgICBpZiAoIXByZWx1ZGUu
YXRFbmQoKSkKICAgICAgICAgcmV0dXJuIEF0b21TdHJpbmcoKTsKICAgICAvLyBFbnN1cmUgdGhp
cyB0b2tlbiBpcyBhIHZhbGlkIDxjdXN0b20taWRlbnQ+LgotICAgIGlmIChuYW1lVG9rZW4udHlw
ZSgpICE9IElkZW50VG9rZW4gfHwgaXNDU1NXaWRlS2V5d29yZChuYW1lVG9rZW4uaWQoKSkpCisg
ICAgaWYgKG5hbWVUb2tlbi50eXBlKCkgIT0gSWRlbnRUb2tlbiB8fCAhaXNWYWxpZElkZW50aWZp
ZXIobmFtZVRva2VuLmlkKCkpKQogICAgICAgICByZXR1cm4gQXRvbVN0cmluZygpOwogICAgIC8v
IEluIHRoZSBjb250ZXh0IG9mIHRoZSBwcmVsdWRlIG9mIGFuIEBjb3VudGVyLXN0eWxlIHJ1bGUs
IGEgPGNvdW50ZXItc3R5bGUtbmFtZT4gbXVzdCBub3QgYmUgYW4gQVNDSUkKICAgICAvLyBjYXNl
LWluc2Vuc2l0aXZlIG1hdGNoIGZvciAiZGVjaW1hbCIgb3IgImRpc2MiLiBObyA8Y291bnRlci1z
dHlsZS1uYW1lPiwgcHJlbHVkZSBvciBub3QsIG1heSBiZSBhbiBBU0NJSQpAQCAtMzcyNSw3ICsz
NzIwLDcgQEAgU3RyaW5nIGNvbmNhdGVuYXRlRmFtaWx5TmFtZShDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSkKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZChyYW5nZS5jb25zdW1l
SW5jbHVkaW5nV2hpdGVzcGFjZSgpLnZhbHVlKCkpOwogICAgIH0KLSAgICBpZiAoIWFkZGVkU3Bh
Y2UgJiYgaXNDU1NXaWRlS2V5d29yZChmaXJzdFRva2VuLmlkKCkpKQorICAgIGlmICghYWRkZWRT
cGFjZSAmJiAhaXNWYWxpZElkZW50aWZpZXIoZmlyc3RUb2tlbi5pZCgpKSkKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5kZXggOTI4OWJhZGU1MjVhYjc3ZDQ5ZjU1
ZjA5ZjYwZDQzMDVmNWNjMGRlNC4uNzJlMjc5OWRkNDJkNDVlMGE1NjU2YWMzMjAzMTJkM2JjMzdi
MTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtMjY2LDYg
KzI2Niw5IEBAIHN0YXRpYyBib29sIGZvbnRXZWlnaHRJc0JvbGQoQ1NTVmFsdWUmIGZvbnRXZWln
aHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0g
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KGZvbnRXZWlnaHQpOworICAgIGlmIChwcmltaXRp
dmVWYWx1ZS5pc0NTU1dpZGVLZXl3b3JkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAg
IHN3aXRjaCAocHJpbWl0aXZlVmFsdWUudmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZU5v
cm1hbDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IGQ5NDRkOTg0ZGMzZjhlMTkzOWYxZmM3NDNmOGE5
NDBhMTc3YTFlMmUuLjE2NDc2NmRjMzI1Mzc1ZTdlYjFmOGE3NWRiYWNkNDIyMjEzMGZkN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTU4
Nyw3ICs1ODcsNyBAQCBTdHJpbmcgSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZv
ck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVydHlJRCBwcm9wZQogCiAgICAgaWYgKFJlZlB0cjxD
U1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVTdHlsZVByb3BlcnR5Rm9yRWxlbWVudChlbGVtZW50LCBw
cm9wZXJ0eUlkKSkgewogICAgICAgICBTdHJpbmcgcmVzdWx0OwotICAgICAgICBpZiAodmFsdWUt
PmlzSW5oZXJpdGVkVmFsdWUoKSkKKyAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRWYWx1ZSgp
KQogICAgICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHN0cmluZ0Zy
b21DU1NWYWx1ZSgqdmFsdWUsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtNzM1LDcgKzczNSw3IEBAIGJvb2wgSFRNTENvbnZlcnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0
eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHByCiAgICAgaWYgKFJlZlB0
cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVTdHlsZVByb3BlcnR5Rm9yRWxlbWVudChlbGVtZW50
LCBwcm9wZXJ0eUlkKSkgewogICAgICAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1
ZSkgJiYgZmxvYXRWYWx1ZUZyb21QcmltaXRpdmVWYWx1ZShkb3duY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZT4oKnZhbHVlKSwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICBpZiAodmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSkKKyAgICAgICAgaWYgKHZhbHVlLT5pc0lu
aGVyaXRWYWx1ZSgpKQogICAgICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgfQogCkBAIC04
NzcsNyArODc3LDcgQEAgQ29sb3IgSFRNTENvbnZlcnRlckNhY2hlczo6Y29sb3JQcm9wZXJ0eVZh
bHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHAKICAgICBpZiAoUmVmUHRyPENT
U1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlGb3JFbGVtZW50KGVsZW1lbnQsIHBy
b3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSAm
JiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5pc1JHQkNvbG9yKCkpCiAgICAg
ICAgICAgICByZXR1cm4gbm9ybWFsaXplZENvbG9yKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
PigqdmFsdWUpLmNvbG9yKCksIGlnbm9yZURlZmF1bHRDb2xvciwgZWxlbWVudCk7Ci0gICAgICAg
IGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAodmFsdWUtPmlzSW5o
ZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCmluZGV4IGM2YzM2YWU2N2Y1MDM5NzEz
NmQ3MGZjMWYxYmUzMDBhNGIyY2Y2MzguLjg5ZGI4NWIzNWZkN2MxMjNjMTRlNGE0MmNhZWU2ZjBh
ZDgxZDMyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcApAQCAt
NDg0LDI0ICs0ODQsMjQgQEAgUmVmPFN0eWxlUHJvcGVydGllcz4gSFRNTFRhYmxlRWxlbWVudDo6
Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlKCkgY29uc3QKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRXaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAgICAgICAgc3R5
bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyTGVmdFN0eWxlLCBDU1NWYWx1ZVNvbGlk
KTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHls
ZSwgQ1NTVmFsdWVTb2xpZCk7Ci0gICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNvbGlkQm9yZGVyc1Jvd3NPbmx5OgogICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BXaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAgICAgICAg
c3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tV2lkdGgsIENTU1ZhbHVl
VGhpbik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcFN0
eWxlLCBDU1NWYWx1ZVNvbGlkKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3Bl
cnR5Qm9yZGVyQm90dG9tU3R5bGUsIENTU1ZhbHVlU29saWQpOwotICAgICAgICBzdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUluaGVy
aXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3Jk
ZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaGVy
aXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTb2xpZEJvcmRlcnM6CiAgICAgICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlcldpZHRoLCBjc3NWYWx1ZVBvb2wuY3Jl
YXRlVmFsdWUoMSwgQ1NTVW5pdFR5cGU6OkNTU19QWCkpOwogICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVNvbGlkKSk7Ci0gICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7
CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NW
YWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEluc2V0Qm9yZGVyczoKICAgICAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSgxLCBD
U1NVbml0VHlwZTo6Q1NTX1BYKSk7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJvcmRlclN0eWxlLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlSW5zZXQpKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVy
Q29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5
bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTm9Cb3JkZXJzOgogICAgICAgICAvLyBJZiAncnVsZXM9bm9uZScgdGhlbiBhbGxvdyBh
bnkgYm9yZGVycyBzZXQgYXQgY2VsbCBsZXZlbCB0byB0YWtlIGVmZmVjdC4gCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggODFiYWI5M2E0MWJi
NmM0YTg5M2Q1YjhiM2FlYTZlMThhZWMxNDc1ZC4uYmViODk2N2ZkYmNkZTQzMjg1NGQxNTNiYTlj
ZTI2YzY3NzNlMzBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29s
bGVjdG9yLmNwcApAQCAtNjAyLDcgKzYwMiw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6
OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKE1hdGNoZWRQcm9wZXJ0aWVzJiYgbWF0Y2hlZFByb3BlCiAg
ICAgICAgICAgICAvLyBhcyB0aGV5IG1pZ2h0IG92ZXJyaWRlIHRoZSB2YWx1ZSBpbmhlcml0ZWQg
aGVyZS4gRm9yIHRoaXMgcmVhc29uIHdlIGRvbid0IGFsbG93IGRlY2xhcmF0aW9ucyB3aXRoCiAg
ICAgICAgICAgICAvLyBleHBsaWNpdGx5IGluaGVyaXRlZCBwcm9wZXJ0aWVzIHRvIGJlIGNhY2hl
ZC4KICAgICAgICAgICAgIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSA9ICpjdXJyZW50LnZhbHVlKCk7
Ci0gICAgICAgICAgICBpZiAodmFsdWUuaXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAgICAgICAg
aWYgKHZhbHVlLmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgICAgICAvLyBUaGUgdmFsdWUgY3VycmVudENvbG9yIGhhcyBpbXBsaWNpdGVs
eSB0aGUgc2FtZSBzaWRlIGVmZmVjdC4gSXQgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YgY29sb3Is
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcAppbmRleCA3ZGY3YTc1YWFk
MDA4ZTk1OWEwOTQ3NTNiZmNkZTNmNjMxNDY2NmVjLi5lMjkzYmE2OTNiMDQ1NGY3MGEwYzVmN2Q2
YTA5M2IwYTZjZTMyNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0
eUNhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5j
cHAKQEAgLTE4NSw3ICsxODUsNyBAQCBib29sIFByb3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2goY29u
c3QgTWF0Y2hlZFByb3BlcnRpZXMmIG1hdGNoZWRQcm9wZXJ0aWVzLCBDYXNjYQogICAgICAgICBp
ZiAobV9pbmNsdWRlZFByb3BlcnRpZXMgPT0gSW5jbHVkZWRQcm9wZXJ0aWVzOjpJbmhlcml0ZWRP
bmx5ICYmICFjdXJyZW50LmlzSW5oZXJpdGVkKCkpIHsKICAgICAgICAgICAgIC8vIEluaGVyaXRl
ZCBvbmx5IG1vZGUgaXMgdXNlZCBhZnRlciBtYXRjaGVkIHByb3BlcnRpZXMgY2FjaGUgaGl0Lgog
ICAgICAgICAgICAgLy8gQSBtYXRjaCB3aXRoIGEgdmFsdWUgdGhhdCBpcyBleHBsaWNpdGx5IGlu
aGVyaXRlZCBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVuIGNhY2hlZC4KLSAgICAgICAgICAgIEFTU0VS
VCghY3VycmVudC52YWx1ZSgpLT5pc0luaGVyaXRlZFZhbHVlKCkpOworICAgICAgICAgICAgQVNT
RVJUKCFjdXJyZW50LnZhbHVlKCktPmlzSW5oZXJpdFZhbHVlKCkpOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3Vy
cmVudC5pZCgpOwpAQCAtMzA4LDcgKzMwOCw3IEBAIFByb3BlcnR5Q2FzY2FkZTo6RGlyZWN0aW9u
IFByb3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlKERpcmVjCiAg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgbWF0Y2hlZFByb3BlcnRpZXMgOiBkZWNsYXJhdGlvbnNG
b3JDYXNjYWRlTGV2ZWwobV9tYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVsKSkgewogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSBtYXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0
aWVzLT5wcm9wZXJ0eUNvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
YXV0byBwcm9wZXJ0eSA9IG1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMtPnByb3BlcnR5QXQo
aSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS52YWx1ZSgpLT5pc1ByaW1pdGl2ZVZh
bHVlKCkpCisgICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS52YWx1ZSgpLT5pc1ByaW1pdGl2
ZVZhbHVlKCkgfHwgcHJvcGVydHkudmFsdWUoKS0+aXNDU1NXaWRlS2V5d29yZCgpKQogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5
LmlkKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5V3JpdGluZ01vZGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCAzYmEyZDk2ZWQ3MzQyYTA1NDk5
YzcwNzJiYTU3MzZiNjNiMmZiMTUzLi45ZDZjNmI0Mzk5MGE4YTliZTEwYjYyMjczZDA3OTJiOThi
ZTU4YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKQEAgLTI5MCw3ICsy
OTAsNyBAQCB2b2lkIEJ1aWxkZXI6OmFwcGx5UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBpZCwgQ1NT
VmFsdWUmIHZhbHVlLCBTZWxlY3RvckNoZWNrZXI6OgogICAgICAgICBjdXN0b21Qcm9wZXJ0eVJl
Z2lzdGVyZWQgPSBtX3N0YXRlLmRvY3VtZW50KCkuZ2V0Q1NTUmVnaXN0ZXJlZEN1c3RvbVByb3Bl
cnR5U2V0KCkuZ2V0KG5hbWUpOwogICAgIH0KIAotICAgIGJvb2wgaXNJbmhlcml0ID0gdmFsdWVU
b0FwcGx5LT5pc0luaGVyaXRlZFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENT
U1ZhbHVlSW5oZXJpdDsKKyAgICBib29sIGlzSW5oZXJpdCA9IHZhbHVlVG9BcHBseS0+aXNJbmhl
cml0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0Owog
ICAgIGJvb2wgaXNJbml0aWFsID0gdmFsdWVUb0FwcGx5LT5pc0luaXRpYWxWYWx1ZSgpIHx8IGN1
c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWw7CiAKICAgICBib29sIGlzVW5z
ZXQgPSB2YWx1ZVRvQXBwbHktPmlzVW5zZXRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJ
RCA9PSBDU1NWYWx1ZVVuc2V0OwpAQCAtMzYxLDggKzM2MSw4IEBAIFJlZjxDU1NWYWx1ZT4gQnVp
bGRlcjo6cmVzb2x2ZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgQ1NTVmFsdWUmIHZh
bHVlKQogICAgIC8vIElmIHRoZSBjYXNjYWRlIGhhcyBhbHJlYWR5IGFwcGxpZWQgdGhpcyBpZCwg
dGhlbiB3ZSBkZXRlY3RlZCBhIGN5Y2xlLCBhbmQgdGhpcyB2YWx1ZSBzaG91bGQgYmUgdW5zZXQu
CiAgICAgaWYgKCF2YXJpYWJsZVZhbHVlIHx8IG1fc3RhdGUubV9hcHBsaWVkUHJvcGVydGllcy5n
ZXQocHJvcGVydHlJRCkpIHsKICAgICAgICAgaWYgKENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFBy
b3BlcnR5KHByb3BlcnR5SUQpKQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2lu
Z2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsKLSAgICAgICAgcmV0dXJuIENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICAgICAg
ICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKENTU1ZhbHVl
SW5oZXJpdCk7CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZVZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7CiAgICAgfQogCiAgICAgcmV0dXJuICp2YXJpYWJsZVZh
bHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAppbmRleCA1YmMy
NjVhNjM3ZDQyNTUzNDM4NWEwYzljNTIxODQ2ODE5MDlkMDJhLi40MjJhM2I5NTFmMGJmMGEwMzU5
OWM2ZDBhMzQyZDQwMTY3ZWM3YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VF
bGVtZW50LmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAg
ICAgICAgICAgLy8gUmF0aGVyIHRoYW4gaW52YXNpdmVseSBtb2RpZnlpbmcgdGhlIHBhcnNlciBm
b3IgdGhlIHByb3BlcnRpZXMgdG8gaGF2ZSBhIHNwZWNpYWwgbW9kZSwgd2UgY2FuIHNpbXBseSBk
ZXRlY3QgdGhlIGVycm9yIGNvbmRpdGlvbiBhZnRlci10aGUtZmFjdCBhbmQKICAgICAgICAgICAg
IC8vIGF2b2lkIGl0IGV4cGxpY2l0bHkuCiAgICAgICAgICAgICBpZiAoYXV0byBwYXJzZWRWYWx1
ZSA9IHByb3BlcnRpZXMuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlkKSkgewotICAgICAg
ICAgICAgICAgIGlmIChwYXJzZWRWYWx1ZS0+aXNHbG9iYWxLZXl3b3JkKCkpCisgICAgICAgICAg
ICAgICAgaWYgKHBhcnNlZFZhbHVlLT5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgICAgICAg
ICAgICAgIHByb3BlcnRpZXMucmVtb3ZlUHJvcGVydHkocHJvcGVydHlJZCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443485</attachid>
            <date>2021-11-06 07:22:51 -0700</date>
            <delta_ts>2021-11-06 11:39:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232750-20211106162250.patch</filename>
            <type>text/plain</type>
            <size>66494</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4ZjA1YmNhNzQ2ZDgy
ODFiYjE4OTFjNDJmMDE3ODViYzJjOTVkOS4uOWIzMmUyOTU2MzE2NjdjOGI2MmE4OWM4OTQ5ZDBj
NmI0ZjFiZDM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0xMS0wNiAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIENTU0luaXRpYWxWYWx1ZSwgQ1NTSW5oZXJpdGVkVmFsdWUsIENTU1JldmVydFZhbHVlIGFu
ZCBDU1NVbnNldFZhbHVlIGNsYXNzZXMuCisgICAgICAgIFRoZXkgY2FuIGFsbCBiZSBoYW5kbGVk
IGJ5IENTU1ByaW1pdGl2ZVZhbHVlLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRGVwcmVjYXRlZENTU09NVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KU05ld2x5Q3JlYXRlZCk6CisKKyAgICAgICAgQXZvaWQgY2hhbmdpbmcgdGhlIGNsYXNzIHR5
cGUgdmlzaWJsZSBpbiBDU1NPTS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyVGV4dERlY29yYXRpb25TdHls
ZUZsYWdzVG9DU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJUZXh0RGVjb3JhdGlv
blNraXBUb0NTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGNzcy9DU1NJbml0aWFsVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9D
U1NJbml0aWFsVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0NTU1dpZGVL
ZXl3b3JkIGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NS
ZXZlcnRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ1NTVW5zZXRWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVmFs
dWVUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6dHJlYXRBc0luaXRpYWxWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6aXNJbml0aWFsVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6Omlz
SW1wbGljaXRJbml0aWFsVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmlzSW5oZXJpdFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vu
c2V0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzUmV2ZXJ0VmFs
dWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
VmFsdWU6OkNTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0luaGVyaXRl
ZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0lu
aXRpYWxWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6
aXNVbnNldFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVl
Ojppc1JldmVydFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlOjppc0dsb2JhbEtleXdvcmQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0
aWNDU1NWYWx1ZVBvb2wpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZVBvb2wuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVJbmhlcml0ZWRWYWx1ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUV4cGxpY2l0SW5pdGlh
bFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRl
VW5zZXRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNy
ZWF0ZVJldmVydFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlOjppc0NTU1dpZGVLZXl3b3JkIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Ym9yZGVyUmFkaXVzVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpwYWdlQnJlYWtQcm9wZXJ0eVZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYXJzZUtleXdvcmRWYWx1ZSk6CisgICAgICAgICogY3NzL3BhcnNl
ci9DU1NQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ1NTV2lkZUtleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZEN1c3RvbUlkZW50aWZpZXIpOgorCisgICAgICAg
IFNlcGFyYXRlIHRoZSBjb25jZXB0IG9mIHZhbGlkIGN1c3RvbSBpZGVudGlmaWVyIGZyb20gdGhh
dCBvZiBDU1Mtd2lkZSBrZXl3b3JkLiBUaGUgZm9ybWVyIGFsc28gZXhjbHVkZXMgdGhlIG9ic29s
ZXRlICJkZWZhdWx0IiBrZXl3b3JkLgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXliZUNvbnN1bWVDU1NXaWRlS2V5d29y
ZCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lQ3VzdG9t
SWRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25z
dW1lQ291bnRlclN0eWxlTmFtZUluUHJlbHVkZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbmNhdGVuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmlzQ1NTV2lkZUtleXdvcmQpOiBEZWxldGVk
LgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZvbnRXZWlnaHRJc0JvbGQpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRl
ci5tbToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2Rl
KToKKyAgICAgICAgKEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmZsb2F0UHJvcGVydHlWYWx1ZUZvck5v
ZGUpOgorICAgICAgICAoSFRNTENvbnZlcnRlckNhY2hlczo6Y29sb3JQcm9wZXJ0eVZhbHVlRm9y
Tm9kZSk6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVNoYXJlZENlbGxTdHlsZSBjb25zdCk6Cisg
ICAgICAgICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRNYXRjaGVkUHJvcGVydGllcyk6Cisg
ICAgICAgICogc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpQcm9wZXJ0eUNhc2NhZGU6OnJlc29sdmVEaXJlY3Rpb25BbmRXcml0aW5nTW9kZSBjb25zdCk6
CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpCdWlsZGVyOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpC
dWlsZGVyOjpyZXNvbHZlVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6CisKIDIwMjEtMTEtMDYgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0lGQ10gQnVpbGQgdGhlIHBhcmFncmFwaCBjb250ZW50IHdoZW4gYWxsIHRoZSBp
bmxpbmUgaXRlbXMgYXJlIHByb2Nlc3NlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmMmVmNTBiYmQ4YjRm
MTQ3NzliNzRhY2U5MGU1NWEyMDdkNTJiODE2Li4zYzRlMTZmOWRkODU2MzYzNjFmNzU0ODBiZmU2
YzU4MTUxOWZlZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjkxLDggKzY5MSw2IEBAIGNzcy9DU1NJ
bWFnZUdlbmVyYXRvclZhbHVlLmNwcAogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCiBjc3MvQ1NT
SW1hZ2VWYWx1ZS5jcHAKIGNzcy9DU1NJbXBvcnRSdWxlLmNwcAotY3NzL0NTU0luaGVyaXRlZFZh
bHVlLmNwcAotY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAKIGNzcy9DU1NLZXlmcmFtZVJ1bGUuY3Bw
CiBjc3MvQ1NTS2V5ZnJhbWVzUnVsZS5jcHAKIGNzcy9DU1NMYXllclJ1bGUuY3BwCkBAIC03MDgs
NyArNzA2LDYgQEAgY3NzL0NTU1Byb3BlcnR5LmNwcAogY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0
YS5jcHAKIGNzcy9DU1NSZWZsZWN0VmFsdWUuY3BwCiBjc3MvQ1NTUmVnaXN0ZXJlZEN1c3RvbVBy
b3BlcnR5LmNwcAotY3NzL0NTU1JldmVydFZhbHVlLmNwcAogY3NzL0NTU1J1bGUuY3BwCiBjc3Mv
Q1NTUnVsZUxpc3QuY3BwCiBjc3MvQ1NTU2VnbWVudGVkRm9udEZhY2UuY3BwCkBAIC03MjQsNyAr
NzIxLDYgQEAgY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCiBjc3MvQ1NTVG9TdHls
ZU1hcC5jcHAKIGNzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAKIGNzcy9DU1NVbml0cy5jcHAK
LWNzcy9DU1NVbnNldFZhbHVlLmNwcAogY3NzL0NTU1ZhbHVlLmNwcAogY3NzL0NTU1ZhbHVlTGlz
dC5jcHAKIGNzcy9DU1NWYWx1ZVBhaXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGFmYzVkOGM2ODdmZDE1MGIxZTU1MjI0
NmU1ZGU4NzQ0ZmQxYTM1MS4uNzkyMTA2ZTg5OWE2Y2M1ZThhMzg3NjgyNWNjNWYxNDMxOGQwODcz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzUzMiwxMCArMzUzMiw4IEBACiAJCUE4MEU2Q0ZEMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MEU2Q0QzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBODBFNkNG
RjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQ
cm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE4MEU2RDAwMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDYwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU1BhZ2VSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJQTgwRTZEMDEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBF
NkNENzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuaCAqLzsgfTsKIAkJQTgw
RTZEMDMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDkwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU01lZGlhUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE4MEU2RDA0MEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNEQTBBMTk4OUNBMDA3
RkI4QzUgLyogQ291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUE4MEU2RDA4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RF
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCAqLzsgfTsKIAkJQTgwRTZEMEMw
QTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRTIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0
eWxlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE4MEU2RDBEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNFMzBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE4MEU2REZDMEExOTkwNjcwMDdGQjhDNSAvKiBTdHlsZVByb3BlcnRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2REZBMEExOTkw
NjcwMDdGQjhDNSAvKiBTdHlsZVByb3BlcnRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDE1NSw4ICs0MTUzLDYgQEAKIAkJQkM3NzJFMTMx
MzMxNjIwQzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyRTEyMTMzMTYyMEMwMDFFQzlD
RSAvKiBDU1NMaW5lQm94Q29udGFpblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzlFMTQxQkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1
c3RvbVByb3BlcnR5VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNzc5RTEzMUJCMjE1QkIwMENBQThCRiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3NzlFMTcxQkIyMjdDQTAwQ0FBOEJGIC8qIFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3OUUxNTFCQjIy
NkEyMDBDQUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzdEOEZGMDFCRDAzQjY0MDBGRkU1
NDAgLyogQ1NTVW5zZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM3RDhGRUUxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAq
LzsgfTsKLQkJQkM3RDhGRjQxQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdEOEZGMjFCRDFB
NDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCAqLzsgfTsKIAkJQkM3RjQ0QTgwQjlFMzI0
RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2Vy
dmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3RkE2MjEwRDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3RkE2MUYwRDFGMENCRDAwREIyMkE5
IC8qIExpdmVOb2RlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDN0ZBNjJEMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3RkE2MkIw
RDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggKi87IH07CkBAIC0xMzIwMSw3ICsx
MzE5Nyw2IEBACiAJCUE4MEU2Q0MzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0M1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NT
dHlsZVJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N0
eWxlUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MEU2Q0M2MEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTSW5oZXJpdGVkVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODBFNkNDNzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NGb250VmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNDODBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUnVsZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1
bGVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0NBMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NTaGFkb3dWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTU2hhZG93VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTMyMTYsMTMgKzEzMjExLDEwIEBACiAJCUE4MEU2Q0Q0MEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NJbWFnZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NJbWFnZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZD
RDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1BhZ2VSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUE4MEU2Q0Q3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTSW5oZXJpdGVkVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDRDgwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0luaXRpYWxWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTSW5pdGlhbFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgw
RTZDRDkwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU01lZGlhUnVsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTTWVkaWFSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4MEU2Q0RCMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNEQzBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q1NTUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MEU2Q0RFMEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENTU0luaXRpYWxWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODBFNkNERjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1J1bGVMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDRTIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTU3R5bGVSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDU5OCwxMCArMTQ1OTAsNiBAQAogCQlCQzc3
OUUxMzFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzc5RTE1MUJCMjI2QTIwMENBQThCRiAvKiBTdHls
ZUN1c3RvbVByb3BlcnR5RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dHlsZUN1c3RvbVByb3BlcnR5RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzdCMkFGODA0NTA4MjQxMDBBODAwMEYgLyogU2Nyb2xsYmFyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGJhci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQkM3RDhGRUQx
QkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Vuc2V0VmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3RDhGRjExQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVy
dFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1JldmVy
dFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM3RDhGRjIxQkQxQTQ3
OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1JldmVydFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
N0Y0NEE3MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDN0ZBNjFFMEQxRjBDQkQwMERCMjJBOSAvKiBMaXZlTm9kZUxpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGl2ZU5vZGVMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RkE2MUYwRDFGMENCRDAwREIyMkE5IC8qIExp
dmVOb2RlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaXZlTm9kZUxp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjE2LDExICsxODYwNCwxMSBA
QAogCQkxQTU2OUNDNDBEN0UyQjYwMDA3QzM5ODMgLyogYnJpZGdlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1OUI1OTc3MTExMDg2NTU2MDA3MTU5RTgg
LyoganNjICovLAogCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpjICovLAogCQkJ
CTU5OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJCQkxQTcxRDU3OTBG
MzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJMUE3MUQ1N0EwRjMz
ODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKLQkJCQk1OUI1OTc3MTExMDg2NTU2
MDA3MTU5RTggLyoganNjICovLAogCQkJCTFBNTY5Q0VGMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50
aW1lX2FycmF5LmNwcCAqLywKIAkJCQkxQTU2OUNGMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9hcnJheS5oICovLAogCQkJCTFBNTY5Q0YxMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX21l
dGhvZC5jcHAgKi8sCkBAIC0yOTkwOSwxMCArMjk4OTcsNiBAQAogCQkJCUE4MEU2Q0MxMEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxlLmNwcCAqLywKIAkJCQlBODBFNkNDQzBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTSW1wb3J0UnVsZS5oICovLAogCQkJCTg1QzU2Q0E5MEFBODlFNjYwMEQ5
NTc1NSAvKiBDU1NJbXBvcnRSdWxlLmlkbCAqLywKLQkJCQlBODBFNkNDNjBBMTk4OUNBMDA3RkI4
QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuY3BwICovLAotCQkJCUE4MEU2Q0Q3MEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovLAotCQkJCUE4MEU2Q0Q4MEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuY3BwICovLAotCQkJCUE4MEU2Q0RFMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NJbml0aWFsVmFsdWUuaCAqLywKIAkJCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5
QUUgLyogQ1NTS2V5ZnJhbWVSdWxlLmNwcCAqLywKIAkJCQkzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5
QUUgLyogQ1NTS2V5ZnJhbWVSdWxlLmggKi8sCiAJCQkJMzE2RkUwOTEwRTZDQ0Q3RjAwQkY2MDg4
IC8qIENTU0tleWZyYW1lUnVsZS5pZGwgKi8sCkBAIC0yOTk1Niw4ICsyOTk0MCw2IEBACiAJCQkJ
QkM1QTEyREUwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1ZS5oICovLAogCQkJCTRC
MTcwNjY0MjE2MkI0MkYwMEU1NzhCQiAvKiBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkuY3Bw
ICovLAogCQkJCTRCREEzRkZCMjE1MUI2RjQwMEZENjYwNCAvKiBDU1NSZWdpc3RlcmVkQ3VzdG9t
UHJvcGVydHkuaCAqLywKLQkJCQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0
VmFsdWUuY3BwICovLAotCQkJCUJDN0Q4RkYyMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRW
YWx1ZS5oICovLAogCQkJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmNwcCAq
LywKIAkJCQlBODBFNkNFMzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5oICovLAogCQkJCTE0
Q0Y3QTcwMDlGNUNGOUEwMEVCMzY2NSAvKiBDU1NSdWxlLmlkbCAqLywKQEAgLTI5OTk2LDggKzI5
OTc4LDYgQEAKIAkJCQkwRjZCNzA3NzIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuaCAqLywK
IAkJCQlBODBFNkNDRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVW5rbm93blJ1bGUuaCAqLywKIAkJ
CQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUuaWRsICovLAotCQkJ
CUJDN0Q4RkVEMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmNwcCAqLywKLQkJCQlC
QzdEOEZFRTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovLAogCQkJCUFEMDNB
QUY4MTQ2ODQ1MzkwMEEzOUI1QiAvKiBDU1NWYWx1ZS5jcHAgKi8sCiAJCQkJQTgwRTZDQzQwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggKi8sCiAJCQkJQkNFQTQ3OEMwOTdDQUFDODAwOTRD
OUU0IC8qIENTU1ZhbHVlS2V5d29yZHMuaW4gKi8sCkBAIC0zMjI3Myw4ICszMjI1Myw2IEBACiAJ
CQkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MEU2Q0ZBMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1wb3J0
UnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgwRTZEMDEwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U0luaGVyaXRlZFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkQwODBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTSW5pdGlhbFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTI4OEU3MzBF
MzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTI4OEU3NTBFMzAwNUQ2MDAzNjE5QUUgLyogQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkE0MTA3QTQyNkNCNjZGODAwM0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjMyOSw3ICszMjMwNyw2IEBACiAJCQkJODJFM0Q4REYxMjJFQTBE
MTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1QTEyRTAwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEJEQTQwMDEyMTUxQjZGNTAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Q
cm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkM3RDhGRjQxQkQxQTQ3OTAwRkZFNTQwIC8q
IENTU1JldmVydFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTUzOEEyODI2RjAxMDNDMDA5
NjVGQzggLyogQ1NTUm90YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwRDBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjIwQTE5ODlD
QTAwN0ZCOEM1IC8qIENTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMzYzLDcgKzMy
MzQwLDYgQEAKIAkJCQk0QkFGRDBFMTIxOTI0MkEwMDBDMEFCNjQgLyogQ1NTVW5pdFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NTVW5rbm93
blJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCQUZEMEQ5MjE5MjFFQTAwMEMwQUI2NCAvKiBD
U1NVbnBhcnNlZFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzdEOEZGMDFCRDAzQjY0MDBG
RkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRUUwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0JCQzI0NzIz
ODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4
MTUxMDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENTU09N
VmFsdWVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVk
Q1NTT01WYWx1ZUN1c3RvbS5jcHAKaW5kZXggYTdlMTM0ZmVhZGUyYzhiNGEwY2UxNTU5NTA0NzNm
NjMwNjk3NzViZC4uNmRjZjhhNDM3NjI4ZGVlY2Q2MmQ1ZGMyOTY4ZTVhOTA3YTMxNmRiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1
ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVk
Q1NTT01WYWx1ZUN1c3RvbS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPEQKIHsKICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpCiAgICAgICAgIHJldHVybiBj
cmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHZhbHVlKSk7Ci0gICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgaWYg
KHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgIWRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlPih2YWx1ZS5nZXQoKSkuaXNDU1NXaWRlS2V5d29yZCgpKQogICAgICAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4oZ2xvYmFs
T2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVj
YXRlZENTU09NVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA0ZTEwMDYxOGJhNTU4MzczNDY2M2FkNmEzOGVlY2Y5ZTUyZDVhYjUzLi42M2Y1ZDczODkzMWZi
YjExNTM2ZDEyNjA3NDc0ZjUwYjJkYTZiYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTY1Miw3ICsxNjUyLDcgQEAg
c3RhdGljIFJlZjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25TdHlsZUZsYWdzVG9DU1NW
YWx1ZShUZXh0RGVjb3JhdGlvblN0eWwKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdElu
aXRpYWxWYWx1ZSgpOworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaXRpYWwpOwogfQogCiBzdGF0aWMgUmVmUHRyPENT
U1ZhbHVlPiByZW5kZXJUZXh0RGVjb3JhdGlvblNraXBUb0NTU1ZhbHVlKFRleHREZWNvcmF0aW9u
U2tpcEluayB0ZXh0RGVjb3JhdGlvblNraXBJbmspCkBAIC0xNjY3LDcgKzE2NjcsNyBAQCBzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiByZW5kZXJUZXh0RGVjb3JhdGlvblNraXBUb0NTU1ZhbHVlKFRl
eHREZWNvcmF0aW9uU2tpcEluawogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlh
bFZhbHVlKCk7CisgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRl
bnRpZmllclZhbHVlKENTU1ZhbHVlSW5pdGlhbCk7CiB9CiAKIHN0YXRpYyBSZWY8Q1NTVmFsdWU+
IHRleHRVbmRlcmxpbmVPZmZzZXRUb0NTU1ZhbHVlKGNvbnN0IFRleHRVbmRlcmxpbmVPZmZzZXQm
IHRleHRVbmRlcmxpbmVPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW5oZXJpdGVkVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVl
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQyNDg5ODFiMWFkMjQ0YmVjZDcz
NDgxMzMyYjdhODdhYWNlODk3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoqCi0gKiAoQykgMTk5OS0yMDAzIExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NJbmhlcml0ZWRWYWx1
ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJpbmhlcml0Il9zOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW5oZXJpdGVkVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1
ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTJiOTE1NGFhMjI4ZDUxMDllYmI0
MDBmMmU5OWRkZGVlZmRkNDQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
Q1NTVmFsdWUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NJbmhlcml0ZWRW
YWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3Rv
bUNTU1RleHQoKSBjb25zdDsKLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0luaGVyaXRlZFZh
bHVlJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBMYXp5
TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5oZXJpdGVkVmFsdWU+OwotICAgIENTU0luaGVyaXRlZFZhbHVl
KFN0YXRpY0NTU1ZhbHVlVGFnKQotICAgICAgICA6IENTU1ZhbHVlKEluaGVyaXRlZENsYXNzKQot
ICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTSW5oZXJpdGVk
VmFsdWUsIGlzSW5oZXJpdGVkVmFsdWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbml0aWFsVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1
ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMTQzNmU3ZjFlY2E2NDZmODY4
ZDk4OGY3NjYyNDZlZjc2MTMzMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKioKLSAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9s
bCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0g
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0cmluZyBDU1NJbml0aWFsVmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAiaW5pdGlhbCJfczsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lu
aXRpYWxWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaXRpYWxWYWx1ZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGZiNzZmMjUxZjI0NGYxNTFjYTcyODEyMmJjMTJh
NDRhOWJhN2EyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuaAorKysgL2Rldi9udWxsCkBAIC0x
LDUwICswLDAgQEAKLS8qCi0gKiAoQykgMTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNTU1ZhbHVlLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ1NTSW5pdGlhbFZhbHVlIGZpbmFsIDog
cHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNv
bnN0OwotCi0gICAgYm9vbCBpc0ltcGxpY2l0KCkgY29uc3QgeyByZXR1cm4gbV9pc0ltcGxpY2l0
OyB9Ci0KLSAgICBib29sIGVxdWFscyhjb25zdCBDU1NJbml0aWFsVmFsdWUmKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxD
U1NJbml0aWFsVmFsdWU+OwotICAgIENTU0luaXRpYWxWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywg
Ym9vbCBpbXBsaWNpdCkKLSAgICAgICAgOiBDU1NWYWx1ZShJbml0aWFsQ2xhc3MpCi0gICAgICAg
ICwgbV9pc0ltcGxpY2l0KGltcGxpY2l0KQotICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwot
ICAgIH0KLQotcHJpdmF0ZToKLSAgICBib29sIG1faXNJbXBsaWNpdDsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTSW5p
dGlhbFZhbHVlLCBpc0luaXRpYWxWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5jcHAKaW5kZXggYTlkMDIyNmY5Y2RkNTA1NzJhMmRiYzhhNTk5MDg2OTcxNzE2ODRi
Yy4uYjZhNzA1YTdiMGVjZmFmNTRiZDhiYjExMTRiZDc0ZDYzMmU1OTNkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiQ1NTRm9udEZhbWlseS5oIgogI2luY2x1ZGUgIkNTU0hlbHBlci5oIgogI2luY2x1ZGUgIkNT
U01hcmt1cC5oIgorI2luY2x1ZGUgIkNTU1BhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkNTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgpAQCAtMzYyLDYgKzM2MywxMyBA
QCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcs
IGRvdWJsZSBudW0sIENTU1VuaXRUeXBlCiAgICAgbWFrZVN0YXRpYygpOwogfQogCitDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIEltcGxpY2l0
SW5pdGlhbFZhbHVlVGFnKQorICAgIDogQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTVmFsdWVJbml0aWFs
KQoreworICAgIG1faXNJbXBsaWNpdCA9IHRydWU7CisgICAgbWFrZVN0YXRpYygpOworfQorCiB2
b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjppbml0KGNvbnN0IExlbmd0aCYgbGVuZ3RoKQogewogICAg
IHN3aXRjaCAobGVuZ3RoLnR5cGUoKSkgewpAQCAtMTQzOCw0ICsxNDQ2LDkgQEAgdm9pZCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y29sbGVjdERpcmVjdFJvb3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVz
KEhhc2hTZXQ8Q1NTUHIKICAgICB9CiB9CiAKK2Jvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmlzQ1NT
V2lkZUtleXdvcmQoKSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjppc0NTU1dpZGVLZXl3
b3JkKHZhbHVlSUQoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYjc0NzljN2JmN2Q5NTQ3NTA4NzkyOTQ5NmY0
ZDRiMWE5ZWQ1ODg2MS4uNTE0OGE0Y2IyZTQ3NTQzY2VmMTc0YWQyYjgwMzEwMmJiNDA5YTM3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTExNSw2ICsxMTUsMTMg
QEAgcHVibGljOgogICAgIGJvb2wgaXNGbGV4KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlw
ZSgpID09IENTU1VuaXRUeXBlOjpDU1NfRlI7IH0KICAgICBib29sIGlzQ3VzdG9tSWRlbnQoKSBj
b25zdCB7IHJldHVybiBwcmltaXRpdmVVbml0VHlwZSgpID09IENTU1VuaXRUeXBlOjpDdXN0b21J
ZGVudDsgfQogCisgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVl
SUQoKSA9PSBDU1NWYWx1ZUluaXRpYWw7IH0KKyAgICBib29sIGlzSW1wbGljaXRJbml0aWFsVmFs
dWUoKSBjb25zdCB7IHJldHVybiBpc0luaXRpYWxWYWx1ZSgpICYmIG1faXNJbXBsaWNpdDsgfQor
ICAgIGJvb2wgaXNJbmhlcml0VmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZUlEKCkgPT0gQ1NT
VmFsdWVJbmhlcml0OyB9CisgICAgYm9vbCBpc1Vuc2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiB2
YWx1ZUlEKCkgPT0gQ1NTVmFsdWVVbnNldDsgfQorICAgIGJvb2wgaXNSZXZlcnRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIHZhbHVlSUQoKSA9PSBDU1NWYWx1ZVJldmVydDsgfQorICAgIGJvb2wgaXND
U1NXaWRlS2V5d29yZCgpIGNvbnN0OworCiAgICAgc3RhdGljIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZhbHVlSUQpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsdWVJRCkpOyB9CiAgICAgc3RhdGljIFJlZjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocHJvcGVydHlJRCkpOyB9
CiAKQEAgLTE5OCw2ICsyMDUsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIENTU1ZhbHVlUG9vbDsKKyAgICBmcmllbmQgY2xhc3MgU3RhdGljQ1NTVmFsdWVQb29sOwog
ICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+OwogCiAgICAg
Q1NTUHJpbWl0aXZlVmFsdWUoQ1NTVmFsdWVJRCk7CkBAIC0yMTIsNiArMjIwLDggQEAgcHJpdmF0
ZToKICAgICBDU1NQcmltaXRpdmVWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZywgQ1NTVmFsdWVJRCk7
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIGNvbnN0IENvbG9yJik7
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NTVmFsdWVUYWcsIGRvdWJsZSwgQ1NTVW5p
dFR5cGUpOworICAgIGVudW0gSW1wbGljaXRJbml0aWFsVmFsdWVUYWcgeyBJbXBsaWNpdEluaXRp
YWxWYWx1ZSB9OworICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBJbXBs
aWNpdEluaXRpYWxWYWx1ZVRhZyk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDU1NQcmlt
aXRpdmVWYWx1ZShUKTsgLy8gRGVmaW5lZCBpbiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDU1NQcmltaXRpdmVWYWx1ZShSZWZQdHI8VD4mJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWRjNDBkMzdlZjA1NjUzNTI0NzQ0NTYxNjllNTRlZjJkNDMwOGEzNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJDU1NSZXZlcnRWYWx1ZS5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIENTU1JldmVydFZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gInJldmVydCJfczsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1JldmVydFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc1YjI0ZDcyMzdkN2VmYTZlMzM1MmFmNmMz
NTg0NzUzNjNmMWMwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUmV2ZXJ0VmFsdWUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgQ1NTUmV2ZXJ0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUg
ewotcHVibGljOgotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29s
IGVxdWFscyhjb25zdCBDU1NSZXZlcnRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQot
cHJpdmF0ZToKLSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU1JldmVydFZhbHVlPjsK
LSAgICBDU1NSZXZlcnRWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZykKLSAgICAgICAgOiBDU1NWYWx1
ZShSZXZlcnRDbGFzcykKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZB
TFVFKENTU1JldmVydFZhbHVlLCBpc1JldmVydFZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5z
ZXRWYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNmIwYjNiYzc1NDMz
Njc2NTM2NDc0YTQwN2U3ZDA3ZGQ3NWViN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDU1NVbnNl
dFZhbHVlLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1TdHJpbmcgQ1NTVW5zZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuICJ1bnNldCJfczsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI2NTI1YzhkYTIwZDU5OWVjMmQ0MzRlNDdlZDQ4OWQ2YzM5MmQ2ZDQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vu
c2V0VmFsdWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ1NTVW5zZXRWYWx1
ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3RyaW5nIGN1c3RvbUNT
U1RleHQoKSBjb25zdDsKLQotICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1Vuc2V0VmFsdWUmKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRl
c3Ryb3llZDxDU1NVbnNldFZhbHVlPjsKLSAgICBDU1NVbnNldFZhbHVlKFN0YXRpY0NTU1ZhbHVl
VGFnKQotICAgICAgICA6IENTU1ZhbHVlKFVuc2V0Q2xhc3MpCi0gICAgewotICAgICAgICBtYWtl
U3RhdGljKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShDU1NVbnNldFZhbHVlLCBpc1Vuc2V0VmFsdWUoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDYxYWM3MTFhNzM1MWZkZGRkZDdmMjZmNjkwMjgw
ZDNkODFhNjFmMTIuLjRmM2Y0NWFlODRhOWQ4ZGY1M2I2OWI2YjMzMzY2MGQ4YzNjZmJjOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtNDksOCArNDksNiBAQAogI2luY2x1ZGUgIkNTU0dy
YWRpZW50VmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFnZVNldFZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTSW1hZ2VWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0jaW5jbHVk
ZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5o
IgogI2luY2x1ZGUgIkNTU05hbWVkSW1hZ2VWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1BhaW50SW1h
Z2VWYWx1ZS5oIgpAQCAtNjEsNyArNTksNiBAQAogI2luY2x1ZGUgIkNTU1NoYWRvd1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1VuaWNv
ZGVSYW5nZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVW5zZXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUGFpci5oIgogI2luY2x1ZGUgIkNTU1Zh
cmlhYmxlUmVmZXJlbmNlVmFsdWUuaCIKQEAgLTgzLDE2ICs4MCwxMSBAQCBzdHJ1Y3QgU2FtZVNp
emVBc0NTU1ZhbHVlIHsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENTU1ZhbHVlKSA9PSBzaXpl
b2YoU2FtZVNpemVBc0NTU1ZhbHVlKSwgQ1NTX3ZhbHVlX3Nob3VsZF9zdGF5X3NtYWxsKTsKIAot
Ym9vbCBDU1NWYWx1ZTo6aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFzcyAmJiBkb3duY2FzdDxDU1NJbml0aWFsVmFs
dWU+KCp0aGlzKS5pc0ltcGxpY2l0KCk7Ci19Ci0KIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQ
X0lERU5USUZJRVIoQ1NTVmFsdWUpOwogCiBDU1NWYWx1ZTo6VHlwZSBDU1NWYWx1ZTo6Y3NzVmFs
dWVUeXBlKCkgY29uc3QKIHsKLSAgICBpZiAoaXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgIGlmIChp
c0luaGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1cm4gQ1NTX0lOSEVSSVQ7CiAgICAgaWYgKGlz
UHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIENTU19QUklNSVRJVkVfVkFMVUU7CkBA
IC0xODQsMTQgKzE3Niw2IEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYg
b3RoZXIpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NDcm9z
c2ZhZGVWYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBJbWFnZUNsYXNzOgogICAg
ICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTSW1hZ2VWYWx1ZT4oKnRoaXMsIG90
aGVyKTsKLSAgICAgICAgY2FzZSBJbmhlcml0ZWRDbGFzczoKLSAgICAgICAgICAgIHJldHVybiBj
b21wYXJlQ1NTVmFsdWVzPENTU0luaGVyaXRlZFZhbHVlPigqdGhpcywgb3RoZXIpOwotICAgICAg
ICBjYXNlIEluaXRpYWxDbGFzczoKLSAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVz
PENTU0luaXRpYWxWYWx1ZT4oKnRoaXMsIG90aGVyKTsKLSAgICAgICAgY2FzZSBVbnNldENsYXNz
OgotICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTVW5zZXRWYWx1ZT4oKnRo
aXMsIG90aGVyKTsKLSAgICAgICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgICAgIHJldHVy
biBjb21wYXJlQ1NTVmFsdWVzPENTU1JldmVydFZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAg
ICBjYXNlIEdyaWRBdXRvUmVwZWF0Q2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNT
U1ZhbHVlczxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPigqdGhpcywgb3RoZXIpOwogICAgICAgICBj
YXNlIEdyaWRJbnRlZ2VyUmVwZWF0Q2xhc3M6CkBAIC0yODYsMTQgKzI3MCw2IEBAIFN0cmluZyBD
U1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NDcm9z
c2ZhZGVWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEltYWdlQ2xhc3M6
CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NT
VGV4dCgpOwotICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2Fz
dDxDU1NJbmhlcml0ZWRWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIElu
aXRpYWxDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0luaXRpYWxWYWx1ZT4oKnRo
aXMpLmN1c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIFVuc2V0Q2xhc3M6Ci0gICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NVbnNldFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotICAgIGNh
c2UgUmV2ZXJ0Q2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NSZXZlcnRWYWx1ZT4o
KnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEdyaWRBdXRvUmVwZWF0Q2xhc3M6CiAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPigqdGhpcykuY3Vz
dG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgR3JpZEludGVnZXJSZXBlYXRDbGFzczoKQEAgLTQxMCwx
OCArMzg2LDYgQEAgdm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBJbWFnZUNsYXNz
OgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4odGhpcyk7CiAgICAgICAg
IHJldHVybjsKLSAgICBjYXNlIEluaGVyaXRlZENsYXNzOgotICAgICAgICBkZWxldGUgZG93bmNh
c3Q8Q1NTSW5oZXJpdGVkVmFsdWU+KHRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJ
bml0aWFsQ2xhc3M6Ci0gICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NJbml0aWFsVmFsdWU+KHRo
aXMpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBVbnNldENsYXNzOgotICAgICAgICBkZWxl
dGUgZG93bmNhc3Q8Q1NTVW5zZXRWYWx1ZT4odGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICBj
YXNlIFJldmVydENsYXNzOgotICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTUmV2ZXJ0VmFsdWU+
KHRoaXMpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBHcmlkQXV0b1JlcGVhdENsYXNzOgog
ICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4odGhpcyk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTUxMywxMiArNDc3LDQzIEBAIFJlZjxEZXByZWNhdGVkQ1NTT01W
YWx1ZT4gQ1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoQ1NTU3R5bGVEZWNs
YXJhCiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNsYXNzVHlwZSgpID09IEluaGVyaXRl
ZENsYXNzIHx8IChjbGFzc1R5cGUoKSA9PSBVbnNldENsYXNzICYmIENTU1Byb3BlcnR5Ojppc0lu
aGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKKyAgICByZXR1cm4gaXNJbmhlcml0VmFsdWUo
KSB8fCAoaXNVbnNldFZhbHVlKCkgJiYgQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHko
cHJvcGVydHlJRCkpOwogfQogCiBib29sIENTU1ZhbHVlOjp0cmVhdEFzSW5pdGlhbFZhbHVlKENT
U1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QKIHsKLSAgICByZXR1cm4gY2xhc3NUeXBlKCkg
PT0gSW5pdGlhbENsYXNzIHx8IChjbGFzc1R5cGUoKSA9PSBVbnNldENsYXNzICYmICFDU1NQcm9w
ZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7CisgICAgcmV0dXJuIGlzSW5p
dGlhbFZhbHVlKCkgfHwgKGlzVW5zZXRWYWx1ZSgpICYmICFDU1NQcm9wZXJ0eTo6aXNJbmhlcml0
ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7Cit9CisKK2Jvb2wgQ1NTVmFsdWU6OmlzSW5pdGlhbFZh
bHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAm
JiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzSW5pdGlhbFZhbHVlKCk7Cit9
CisKK2Jvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSBjb25zdAoreworICAg
IHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlPigqdGhpcykuaXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpOworfQorCitib29sIENT
U1ZhbHVlOjppc0luaGVyaXRWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1p
dGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5p
c0luaGVyaXRWYWx1ZSgpOworfQorCitib29sIENTU1ZhbHVlOjppc1Vuc2V0VmFsdWUoKSBjb25z
dAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNVbnNldFZhbHVlKCk7CiB9CiAKK2Jvb2wgQ1NT
VmFsdWU6OmlzUmV2ZXJ0VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBpczxDU1NQcmltaXRp
dmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuaXNS
ZXZlcnRWYWx1ZSgpOworfQorCitib29sIENTU1ZhbHVlOjppc0NTU1dpZGVLZXl3b3JkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzQ1NTV2lkZUtleXdvcmQoKTsKK30KKworCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGFlNTA2ZWY3Yzk5NzI3MTI4YTFkODEzYzVkMjI2NGI1
MGM3ZjMxNDEuLjI5ZWE0YjZkMTE2NjQyOTZhNzdmMWRkOTY3NmU2MDI4ZDU3YmQ1M2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0ltYWdlU2V0VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbWFnZVNldENs
YXNzOyB9CiAgICAgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlw
ZSA9PSBJbWFnZUNsYXNzOyB9CiAgICAgYm9vbCBpc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29u
c3Q7Ci0gICAgYm9vbCBpc0luaGVyaXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5
cGUgPT0gSW5oZXJpdGVkQ2xhc3M7IH0KLSAgICBib29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzOyB9Ci0gICAgYm9vbCBpc1Vuc2V0
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBVbnNldENsYXNzOyB9Ci0gICAg
Ym9vbCBpc1JldmVydFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gUmV2ZXJ0
Q2xhc3M7IH0KLSAgICBib29sIGlzR2xvYmFsS2V5d29yZCgpIGNvbnN0IHsgcmV0dXJuIGlzSW5o
ZXJpdGVkVmFsdWUoKSB8fCBpc0luaXRpYWxWYWx1ZSgpIHx8IGlzVW5zZXRWYWx1ZSgpIHx8IGlz
UmV2ZXJ0VmFsdWUoKTsgfQorICAgIGJvb2wgaXNJbmhlcml0VmFsdWUoKSBjb25zdDsKKyAgICBi
b29sIGlzSW5pdGlhbFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1Vuc2V0VmFsdWUoKSBjb25z
dDsKKyAgICBib29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdDsKKyAgICBib29sIGlzQ1NTV2lkZUtl
eXdvcmQoKSBjb25zdDsKICAgICBib29sIHRyZWF0QXNJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJ
RCkgY29uc3Q7CiAgICAgYm9vbCB0cmVhdEFzSW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCkg
Y29uc3Q7CiAgICAgYm9vbCBpc0xpbmVhckdyYWRpZW50VmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2NsYXNzVHlwZSA9PSBMaW5lYXJHcmFkaWVudENsYXNzOyB9CkBAIC0xOTEsMTEgKzE5MSw2IEBA
IHByb3RlY3RlZDoKICAgICAgICAgRm9udFBhbGV0dGVWYWx1ZXNPdmVycmlkZUNvbG9yc0NsYXNz
LAogICAgICAgICBGdW5jdGlvbkNsYXNzLAogCi0gICAgICAgIEluaGVyaXRlZENsYXNzLAotICAg
ICAgICBJbml0aWFsQ2xhc3MsCi0gICAgICAgIFVuc2V0Q2xhc3MsCi0gICAgICAgIFJldmVydENs
YXNzLAotCiAgICAgICAgIFJlZmxlY3RDbGFzcywKICAgICAgICAgU2hhZG93Q2xhc3MsCiAgICAg
ICAgIFVuaWNvZGVSYW5nZUNsYXNzLApAQCAtMjM3LDYgKzIzMiw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgOiBtX3ByaW1pdGl2ZVVuaXRUeXBlKDApCiAgICAgICAgICwgbV9oYXNDYWNoZWRDU1NU
ZXh0KGZhbHNlKQogICAgICAgICAsIG1fdmFsdWVTZXBhcmF0b3IoU3BhY2VTZXBhcmF0b3IpCisg
ICAgICAgICwgbV9pc0ltcGxpY2l0KGZhbHNlKQogICAgICAgICAsIG1fY2xhc3NUeXBlKGNsYXNz
VHlwZSkKICAgICB7CiAgICAgfQpAQCAtMjYzLDYgKzI1OSw3IEBAIHByb3RlY3RlZDoKICAgICBt
dXRhYmxlIHVuc2lnbmVkIG1faGFzQ2FjaGVkQ1NTVGV4dCA6IDE7CiAKICAgICB1bnNpZ25lZCBt
X3ZhbHVlU2VwYXJhdG9yIDogVmFsdWVTZXBhcmF0b3JCaXRzOworICAgIHVuc2lnbmVkIG1faXNJ
bXBsaWNpdCA6IDE7CiAKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jbGFzc1R5cGUgOiBDbGFz
c1R5cGVCaXRzOyAvLyBDbGFzc1R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5k
ZXggNTAxODM1Y2M0NGVkZjU5YWYyNDg2YzVhZTQ4NjlmY2U2NmE3MjhmZC4uNDMxNTk0NzM4Y2Y2
Njk2YTk5OWI3NGRiMTFkNjVjNzc0MDNmYTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9v
bC5jcHAKQEAgLTM4LDEyICszOCw4IEBAIExhenlOZXZlckRlc3Ryb3llZDxTdGF0aWNDU1NWYWx1
ZVBvb2w+IHN0YXRpY0NTU1ZhbHVlUG9vbDsKIAogU3RhdGljQ1NTVmFsdWVQb29sOjpTdGF0aWND
U1NWYWx1ZVBvb2woKQogewotICAgIG1faW5oZXJpdGVkVmFsdWUuY29uc3RydWN0KENTU1ZhbHVl
OjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAgbV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3Qo
Q1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCB0cnVlKTsKLSAgICBtX2V4cGxpY2l0SW5pdGlhbFZh
bHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUsIGZhbHNlKTsKLSAgICBtX3Vu
c2V0VmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSk7Ci0gICAgbV9yZXZl
cnRWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlKTsKLQorICAgIG1faW1w
bGljaXRJbml0aWFsVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ1NT
UHJpbWl0aXZlVmFsdWU6OkltcGxpY2l0SW5pdGlhbFZhbHVlKTsKKyAgICAKICAgICBtX3RyYW5z
cGFyZW50Q29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OnRy
YW5zcGFyZW50QmxhY2spOwogICAgIG1fd2hpdGVDb2xvci5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0
YXRpY0NTU1ZhbHVlLCBDb2xvcjo6d2hpdGUpOwogICAgIG1fYmxhY2tDb2xvci5jb25zdHJ1Y3Qo
Q1NTVmFsdWU6OlN0YXRpY0NTU1ZhbHVlLCBDb2xvcjo6YmxhY2spOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlUG9vbC5oCmluZGV4IDFmYjIzMTZlZmMwMzEwYTNiZmNhMzg0ZjEwYzdkZTA3MWY0MWU5ZWQu
LjFkNmVjMTE0MmY3MzM1ODBhYTc0NDU3YTQ4ZmI5NGQ2MGRhZjY2NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVQb29sLmgKQEAgLTI1LDEyICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbml0aWFsVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKLSNpbmNsdWRlICJDU1NSZXZlcnRWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1Vuc2V0VmFs
dWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ29sb3JIYXNo
LmgiCiAjaW5jbHVkZSA8dXRpbGl0eT4KQEAgLTU1LDExICs1MSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgU3RhdGljQ1NTVmFsdWVQb29sKCk7CiAKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8
Q1NTSW5oZXJpdGVkVmFsdWU+IG1faW5oZXJpdGVkVmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJv
eWVkPENTU0luaXRpYWxWYWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsKLSAgICBMYXp5TmV2
ZXJEZXN0cm95ZWQ8Q1NTSW5pdGlhbFZhbHVlPiBtX2V4cGxpY2l0SW5pdGlhbFZhbHVlOwotICAg
IExhenlOZXZlckRlc3Ryb3llZDxDU1NVbnNldFZhbHVlPiBtX3Vuc2V0VmFsdWU7Ci0gICAgTGF6
eU5ldmVyRGVzdHJveWVkPENTU1JldmVydFZhbHVlPiBtX3JldmVydFZhbHVlOworICAgIExhenlO
ZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV9pbXBsaWNpdEluaXRpYWxWYWx1ZTsK
IAogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV90cmFuc3BhcmVu
dENvbG9yOwogICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NQcmltaXRpdmVWYWx1ZT4gbV93aGl0
ZUNvbG9yOwpAQCAtODUsMTEgKzc3LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPENTU1ZhbHVl
TGlzdD4gY3JlYXRlRm9udEZhY2VWYWx1ZShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVGb250RmFtaWx5VmFsdWUoY29uc3QgU3RyaW5nJiwgRnJv
bVN5c3RlbUZvbnRJRCA9IEZyb21TeXN0ZW1Gb250SUQ6Ok5vKTsKLSAgICBSZWY8Q1NTSW5oZXJp
dGVkVmFsdWU+IGNyZWF0ZUluaGVyaXRlZFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQ
b29sLT5tX2luaGVyaXRlZFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU0luaXRpYWxWYWx1ZT4g
Y3JlYXRlSW1wbGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wt
Pm1faW1wbGljaXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTSW5pdGlhbFZhbHVl
PiBjcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9v
bC0+bV9leHBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsgfQotICAgIFJlZjxDU1NVbnNldFZhbHVl
PiBjcmVhdGVVbnNldFZhbHVlKCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3Vuc2V0
VmFsdWUuZ2V0KCk7IH0KLSAgICBSZWY8Q1NTUmV2ZXJ0VmFsdWU+IGNyZWF0ZVJldmVydFZhbHVl
KCkgeyByZXR1cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX3JldmVydFZhbHVlLmdldCgpOyB9Cisg
ICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIHsg
cmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9pbXBsaWNpdEluaXRpYWxWYWx1ZS5nZXQoKTsg
fQogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlSUQgaWRlbnRpZmllcik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTUHJvcGVydHlJRCBpZGVudGlmaWVyKTsKICAgICBSZWY8Q1NTUHJpbWl0
aXZlVmFsdWU+IGNyZWF0ZUNvbG9yVmFsdWUoY29uc3QgQ29sb3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKaW5kZXggN2E4ZjFk
YTMwMmRiYWQzNjQ0NGJlMTNjNGEyYmM2MzY2NjUyMWFmMS4uNjE5ZGJlYzNlZTk3M2M0ODJlMWE3
ODU1NTU3ZGFhNDA0MWFlNGRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgKQEAgLTg5LDYgKzg5LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCwg
Y29uc3QgU3RyaW5nJikgeyByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsgfQogCiAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZS0+c3RyaW5nVmFsdWUoKTsgfQorICAgIGJvb2wgaXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQoKTsgfQogCiBwcml2YXRlOgogICAg
IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiB2
YWx1ZSwgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgb3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCmluZGV4IGM4M2FkOGRhMzJmZDkzYTYwOThmN2JjNDgzZDNiZDkzNDMxMzA1
YmMuLmFmODk3Y2QxN2M3MDhhYmE4NTA0YzRlNTVhNWU4NjBjNjVkYTI1ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3Iu
aCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlNTA5ZWU2N2Y5
MDdmYTA2ZTQ5OTY4NDM2YzYyM2Y0MWI0ZDVhNDQ3Li4wNjNlZjM1OGFmZjcxMGMzNmY0MGU5Yjgw
ZDE5ZGFlNGI4NzIyM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApA
QCAtNDAwLDcgKzQwMCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJvcmRlclJhZGl1c1Zh
bHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuCiAgICAgaWYgKHRvcExl
ZnQuaXNJbXBvcnRhbnQoKSAhPSB0b3BSaWdodC5pc0ltcG9ydGFudCgpIHx8IHRvcFJpZ2h0Lmlz
SW1wb3J0YW50KCkgIT0gYm90dG9tUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCBib3R0b21SaWdodC5p
c0ltcG9ydGFudCgpICE9IGJvdHRvbUxlZnQuaXNJbXBvcnRhbnQoKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogCi0gICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpICYm
IHRvcFJpZ2h0VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiBib3R0b21SaWdodFZhbHVlLT5p
c0luaGVyaXRlZFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkp
CisgICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSAmJiB0b3BSaWdodFZhbHVl
LT5pc0luaGVyaXRWYWx1ZSgpICYmIGJvdHRvbVJpZ2h0VmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkg
JiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAgICByZXR1cm4gZ2V0
VmFsdWVOYW1lKENTU1ZhbHVlSW5oZXJpdCk7CiAKICAgICBpZiAodG9wTGVmdFZhbHVlLT5pc0lu
aXRpYWxWYWx1ZSgpIHx8IHRvcFJpZ2h0VmFsdWUtPmlzSW5pdGlhbFZhbHVlKCkgfHwgYm90dG9t
UmlnaHRWYWx1ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCBib3R0b21MZWZ0VmFsdWUtPmlzSW5pdGlh
bFZhbHVlKCkpIHsKQEAgLTg1Miw4ICs4NTIsOCBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpw
YWdlQnJlYWtQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNobwog
ICAgIGF1dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHNob3J0aGFuZC5wcm9wZXJ0aWVz
KClbMF0pOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgaXNHbG9iYWxLZXl3b3JkIGNoZWNrIGFmdGVyIHdlIGRvIHRo
aXMgY29uc2lzdGVudGx5IGZvciBhbGwgc2hvcnRoYW5kcyBpbiBnZXRQcm9wZXJ0eVZhbHVlLgot
ICAgIGlmICh2YWx1ZS0+aXNHbG9iYWxLZXl3b3JkKCkpCisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGlzQ1NTV2lkZUtleXdvcmQgY2hlY2sgYWZ0ZXIgd2UgZG8gdGhpcyBjb25zaXN0ZW50bHkg
Zm9yIGFsbCBzaG9ydGhhbmRzIGluIGdldFByb3BlcnR5VmFsdWUuCisgICAgaWYgKHZhbHVlLT5p
c0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dCgpOwogICAg
IAogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggMzdhMTE1MWFk
YTJlOTc1YjRjYzQ3ZDdiNmU0Nzk2ODNkMWMxNjNmZi4uYzc0MWRhNjFmNDQ0ZmE1NWM3MjdhM2Vk
Nzk0YzVlYzJlYWRiNjFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtMTExNSwxOSArMTExNSwxMSBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZUtleXdvcmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIFN0
cmluZ1ZpZXcgcwogICAgIGlmICghdmFsdWVJRCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBpZiAoIXBhcnNpbmdEZXNjcmlwdG9yKSB7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlSW5oZXJpdCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRv
bigpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1Zh
bHVlSW5pdGlhbCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigp
LmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlVW5zZXQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVVbnNldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUmV2
ZXJ0KQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
UmV2ZXJ0VmFsdWUoKTsKLSAgICB9Ci0gICAgCisgICAgaWYgKCFwYXJzaW5nRGVzY3JpcHRvciAm
JiBpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKQorICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWVJRCk7CisKICAgICBpZiAo
Q1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcGVy
dHlJZCwgdmFsdWVJRCwgY29udGV4dCkpCi0gICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZUlEKTsKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9v
bDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlSUQpOwogICAgIHJldHVy
biBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlcklkaW9tcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlv
bXMuaAppbmRleCA4MTc0YzczMmU2ODFkZDdkM2U0MDEwNDE0ZDBjYjAxYTNlM2M0Y2EzLi43NWQw
ODkxMDMzMmI0NmZmNWVmNjM3MWFhYWNmNTEwYzFjZjcyM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKQEAgLTU5LDQgKzU5LDE1IEBAIGJvb2wgaXNO
YW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVlQWxsb3dlZEluTW9k
ZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBp
c0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKK3sKKyAgICByZXR1cm4gdmFsdWVJ
RCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVVuc2V0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQ7Cit9CisK
K3N0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ3VzdG9tSWRlbnRpZmllcihDU1NWYWx1ZUlEIHZh
bHVlSUQpCit7CisgICAgLy8gImRlZmF1bHQiIGlzIG9ic29sZXRlIGFzIENTUy13aWRlIGtleXdv
cmQgYnV0IGlzIHN0aWxsIG5vdCBhbGxvd2VkIGFzIGlkZW50aWZpZXIuCisgICAgcmV0dXJuICFp
c0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpICYmIHZhbHVlSUQgIT0gQ1NTVmFsdWVEZWZhdWx0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4IGE2MTQ5MmNjNjU4MmY4MjBhZWVjYmUzY2Q1
MDM0YTU4ZDkzZDcwMDUuLmE4OTY2N2U4OTgxN2ZmNmJlYzUxZGQ1YWQ4YzgyYWE2MGM0ZDY0ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
CkBAIC0yNTgsMjAgKzI1OCwxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBtYXliZUNvbnN1
bWVDU1NXaWRlS2V5d29yZChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKICAgICBpZiAoIXJh
bmdlQ29weS5hdEVuZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxD
U1NWYWx1ZT4gdmFsdWU7Ci0gICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0KQotICAg
ICAgICB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSW5oZXJpdGVkVmFs
dWUoKTsKLSAgICBlbHNlIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbCkKLSAgICAgICAg
dmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZh
bHVlKCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0KQotICAgICAgICB2
YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlVW5zZXRWYWx1ZSgpOwotICAg
IGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVSZXZlcnQpCi0gICAgICAgIHZhbHVlID0gQ1NT
VmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVSZXZlcnRWYWx1ZSgpOwotICAgIGVsc2UKKyAg
ICBpZiAoIWlzQ1NTV2lkZUtleXdvcmQodmFsdWVJRCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgcmFuZ2UgPSByYW5nZUNvcHk7Ci0gICAgcmV0dXJuIHZhbHVlOworICAgIHJldHVy
biBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZUlE
KTsKIH0KIAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCAz
ZDRmZjk0MGU0Y2Q1NGUxNmUwYjUxZDcxODYyMjNmNzkwNGU2M2NmLi40OTFlYzVjZGZkNGQ0N2Q0
M2U3OWFlZmNmMTQwYjZkY2RmN2RjZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC01OSwxMSArNTksNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBDU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnMgewogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNDU1NXaWRlS2V5d29yZChDU1NWYWx1ZUlEIGlk
KQotewotICAgIHJldHVybiBpZCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgaWQgPT0gQ1NTVmFsdWVJ
bmhlcml0IHx8IGlkID09IENTU1ZhbHVlVW5zZXQgfHwgaWQgPT0gQ1NTVmFsdWVSZXZlcnQgfHwg
aWQgPT0gQ1NTVmFsdWVEZWZhdWx0OwotfQotCiBib29sIGNvbnN1bWVDb21tYUluY2x1ZGluZ1do
aXRlc3BhY2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgQ1NTUGFyc2VyVG9r
ZW4gdmFsdWUgPSByYW5nZS5wZWVrKCk7CkBAIC0xMzcwLDcgKzEzNjUsNyBAQCBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVJZGVudFJhbmdlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlLCBDU1NWYWx1ZQogCiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVDdXN0b21J
ZGVudChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgYm9vbCBzaG91bGRMb3dlcmNhc2UpCiB7
Ci0gICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gSWRlbnRUb2tlbiB8fCBpc0NTU1dpZGVL
ZXl3b3JkKHJhbmdlLnBlZWsoKS5pZCgpKSkKKyAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAh
PSBJZGVudFRva2VuIHx8ICFpc1ZhbGlkQ3VzdG9tSWRlbnRpZmllcihyYW5nZS5wZWVrKCkuaWQo
KSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gaWRlbnRpZmllciA9IHJhbmdl
LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkudmFsdWUoKTsKICAgICByZXR1cm4gQ1NTVmFs
dWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVDdXN0b21JZGVudChzaG91bGRMb3dlcmNhc2UgPyBp
ZGVudGlmaWVyLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkgOiBpZGVudGlmaWVyLnRvU3RyaW5n
KCkpOwpAQCAtMzY0OCw3ICszNjQzLDcgQEAgQXRvbVN0cmluZyBjb25zdW1lQ291bnRlclN0eWxl
TmFtZUluUHJlbHVkZShDU1NQYXJzZXJUb2tlblJhbmdlJiBwcmVsdWRlKQogICAgIGlmICghcHJl
bHVkZS5hdEVuZCgpKQogICAgICAgICByZXR1cm4gQXRvbVN0cmluZygpOwogICAgIC8vIEVuc3Vy
ZSB0aGlzIHRva2VuIGlzIGEgdmFsaWQgPGN1c3RvbS1pZGVudD4uCi0gICAgaWYgKG5hbWVUb2tl
bi50eXBlKCkgIT0gSWRlbnRUb2tlbiB8fCBpc0NTU1dpZGVLZXl3b3JkKG5hbWVUb2tlbi5pZCgp
KSkKKyAgICBpZiAobmFtZVRva2VuLnR5cGUoKSAhPSBJZGVudFRva2VuIHx8ICFpc1ZhbGlkQ3Vz
dG9tSWRlbnRpZmllcihuYW1lVG9rZW4uaWQoKSkpCiAgICAgICAgIHJldHVybiBBdG9tU3RyaW5n
KCk7CiAgICAgLy8gSW4gdGhlIGNvbnRleHQgb2YgdGhlIHByZWx1ZGUgb2YgYW4gQGNvdW50ZXIt
c3R5bGUgcnVsZSwgYSA8Y291bnRlci1zdHlsZS1uYW1lPiBtdXN0IG5vdCBiZSBhbiBBU0NJSQog
ICAgIC8vIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yICJkZWNpbWFsIiBvciAiZGlzYyIuIE5v
IDxjb3VudGVyLXN0eWxlLW5hbWU+LCBwcmVsdWRlIG9yIG5vdCwgbWF5IGJlIGFuIEFTQ0lJCkBA
IC0zNzI1LDcgKzM3MjAsNyBAQCBTdHJpbmcgY29uY2F0ZW5hdGVGYW1pbHlOYW1lKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQogICAgICAgICB9CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJh
bmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkudmFsdWUoKSk7CiAgICAgfQotICAgIGlm
ICghYWRkZWRTcGFjZSAmJiBpc0NTU1dpZGVLZXl3b3JkKGZpcnN0VG9rZW4uaWQoKSkpCisgICAg
aWYgKCFhZGRlZFNwYWNlICYmICFpc1ZhbGlkQ3VzdG9tSWRlbnRpZmllcihmaXJzdFRva2VuLmlk
KCkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCA5Mjg5
YmFkZTUyNWFiNzdkNDlmNTVmMDlmNjBkNDMwNWY1Y2MwZGU0Li43MmUyNzk5ZGQ0MmQ0NWUwYTU2
NTZhYzMyMDMxMmQzYmMzN2IxNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCkBAIC0yNjYsNiArMjY2LDkgQEAgc3RhdGljIGJvb2wgZm9udFdlaWdodElzQm9sZChD
U1NWYWx1ZSYgZm9udFdlaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byYg
cHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oZm9udFdlaWdodCk7
CisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmlzQ1NTV2lkZUtleXdvcmQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS52YWx1ZUlEKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlTm9ybWFsOgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggZDk0NGQ5ODRkYzNm
OGUxOTM5ZjFmYzc0M2Y4YTk0MGExNzdhMWUyZS4uMTY0NzY2ZGMzMjUzNzVlN2ViMWY4YTc1ZGJh
Y2Q0MjIyMTMwZmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9I
VE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENv
bnZlcnRlci5tbQpAQCAtNTg3LDcgKzU4Nyw3IEBAIFN0cmluZyBIVE1MQ29udmVydGVyQ2FjaGVz
Ojpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAK
ICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlGb3JF
bGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIFN0cmluZyByZXN1bHQ7Ci0g
ICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAodmFsdWUt
PmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAg
ZWxzZSBpZiAoc3RyaW5nRnJvbUNTU1ZhbHVlKCp2YWx1ZSwgcmVzdWx0KSkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CkBAIC03MzUsNyArNzM1LDcgQEAgYm9vbCBIVE1MQ29udmVydGVyQ2Fj
aGVzOjpmbG9hdFByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQg
cHIKICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlUHJvcGVydHlG
b3JFbGVtZW50KGVsZW1lbnQsIHByb3BlcnR5SWQpKSB7CiAgICAgICAgIGlmIChpczxDU1NQcmlt
aXRpdmVWYWx1ZT4oKnZhbHVlKSAmJiBmbG9hdFZhbHVlRnJvbVByaW1pdGl2ZVZhbHVlKGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0ZWRWYWx1ZSgpKQorICAgICAg
ICBpZiAodmFsdWUtPmlzSW5oZXJpdFZhbHVlKCkpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1
ZTsKICAgICB9CiAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBDb2xvciBIVE1MQ29udmVydGVyQ2FjaGVz
Ojpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcAog
ICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gaW5saW5lU3R5bGVQcm9wZXJ0eUZvckVs
ZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAgICAgICAgaWYgKGlzPENTU1ByaW1pdGl2
ZVZhbHVlPigqdmFsdWUpICYmIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmlz
UkdCQ29sb3IoKSkKICAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVkQ29sb3IoZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuY29sb3IoKSwgaWdub3JlRGVmYXVsdENvbG9yLCBl
bGVtZW50KTsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkpCisgICAgICAg
IGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAgIGluaGVyaXQgPSB0cnVl
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXgg
YzZjMzZhZTY3ZjUwMzk3MTM2ZDcwZmMxZjFiZTMwMGE0YjJjZjYzOC4uODlkYjg1YjM1ZmQ3YzEy
M2MxNGU0YTQyY2FlZTZmMGFkODFkMzI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwCkBAIC00ODQsMjQgKzQ4NCwyNCBAQCBSZWY8U3R5bGVQcm9wZXJ0aWVzPiBI
VE1MVGFibGVFbGVtZW50OjpjcmVhdGVTaGFyZWRDZWxsU3R5bGUoKSBjb25zdAogICAgICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJSaWdodFdpZHRoLCBDU1NWYWx1ZVRo
aW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5
bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlCb3JkZXJSaWdodFN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKLSAgICAgICAgc3R5bGUtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0
ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVy
Q29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU29saWRCb3JkZXJzUm93c09ubHk6CiAgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclRvcFdpZHRoLCBDU1NWYWx1
ZVRoaW4pOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0
b21XaWR0aCwgQ1NTVmFsdWVUaGluKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1By
b3BlcnR5Qm9yZGVyVG9wU3R5bGUsIENTU1ZhbHVlU29saWQpOwogICAgICAgICBzdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZSwgQ1NTVmFsdWVTb2xpZCk7Ci0g
ICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1
ZVBvb2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNvbGlkQm9y
ZGVyczoKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgs
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZSgxLCBDU1NVbml0VHlwZTo6Q1NTX1BYKSk7CiAgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclN0eWxlLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlU29saWQpKTsKLSAgICAgICAgc3R5bGUt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJ
bmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJ
bmhlcml0KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5zZXRCb3JkZXJzOgogICAgICAg
ICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgY3NzVmFsdWVQb29s
LmNyZWF0ZVZhbHVlKDEsIENTU1VuaXRUeXBlOjpDU1NfUFgpKTsKICAgICAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyU3R5bGUsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVJbnNldCkpOwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVl
KCkpOworICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwg
Y3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb0JvcmRlcnM6CiAgICAgICAgIC8vIElmICdydWxlcz1u
b25lJyB0aGVuIGFsbG93IGFueSBib3JkZXJzIHNldCBhdCBjZWxsIGxldmVsIHRvIHRha2UgZWZm
ZWN0LiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApp
bmRleCA4MWJhYjkzYTQxYmI2YzRhODkzZDViOGIzYWVhNmUxOGFlYzE0NzVkLi5iZWI4OTY3ZmRi
Y2RlNDMyODU0ZDE1M2JhOWNlMjZjNjc3M2UzMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hlZFByb3BlcnRpZXMm
JiBtYXRjaGVkUHJvcGUKICAgICAgICAgICAgIC8vIGFzIHRoZXkgbWlnaHQgb3ZlcnJpZGUgdGhl
IHZhbHVlIGluaGVyaXRlZCBoZXJlLiBGb3IgdGhpcyByZWFzb24gd2UgZG9uJ3QgYWxsb3cgZGVj
bGFyYXRpb25zIHdpdGgKICAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHByb3Bl
cnRpZXMgdG8gYmUgY2FjaGVkLgogICAgICAgICAgICAgY29uc3QgQ1NTVmFsdWUmIHZhbHVlID0g
KmN1cnJlbnQudmFsdWUoKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZS5pc0luaGVyaXRlZFZhbHVl
KCkpCisgICAgICAgICAgICBpZiAodmFsdWUuaXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBjdXJyZW50Q29s
b3IgaGFzIGltcGxpY2l0ZWx5IHRoZSBzYW1lIHNpZGUgZWZmZWN0LiBJdCBkZXBlbmRzIG9uIHRo
ZSB2YWx1ZSBvZiBjb2xvciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1Byb3Bl
cnR5Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3Bw
CmluZGV4IDdkZjdhNzVhYWQwMDhlOTU5YTA5NDc1M2JmY2RlM2Y2MzE0NjY2ZWMuLmUyOTNiYTY5
M2IwNDU0ZjcwYTBjNWY3ZDZhMDkzYjBhNmNlMzI2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
UHJvcGVydHlDYXNjYWRlLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIGJvb2wgUHJvcGVydHlDYXNj
YWRlOjphZGRNYXRjaChjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRpZXMs
IENhc2NhCiAgICAgICAgIGlmIChtX2luY2x1ZGVkUHJvcGVydGllcyA9PSBJbmNsdWRlZFByb3Bl
cnRpZXM6OkluaGVyaXRlZE9ubHkgJiYgIWN1cnJlbnQuaXNJbmhlcml0ZWQoKSkgewogICAgICAg
ICAgICAgLy8gSW5oZXJpdGVkIG9ubHkgbW9kZSBpcyB1c2VkIGFmdGVyIG1hdGNoZWQgcHJvcGVy
dGllcyBjYWNoZSBoaXQuCiAgICAgICAgICAgICAvLyBBIG1hdGNoIHdpdGggYSB2YWx1ZSB0aGF0
IGlzIGV4cGxpY2l0bHkgaW5oZXJpdGVkIHNob3VsZCBuZXZlciBoYXZlIGJlZW4gY2FjaGVkLgot
ICAgICAgICAgICAgQVNTRVJUKCFjdXJyZW50LnZhbHVlKCktPmlzSW5oZXJpdGVkVmFsdWUoKSk7
CisgICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQudmFsdWUoKS0+aXNJbmhlcml0VmFsdWUoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQgPSBjdXJyZW50LmlkKCk7CkBAIC0zMDgsNyArMzA4LDcgQEAgUHJvcGVydHlD
YXNjYWRlOjpEaXJlY3Rpb24gUHJvcGVydHlDYXNjYWRlOjpyZXNvbHZlRGlyZWN0aW9uQW5kV3Jp
dGluZ01vZGUoRGlyZWMKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBtYXRjaGVkUHJvcGVydGll
cyA6IGRlY2xhcmF0aW9uc0ZvckNhc2NhZGVMZXZlbChtX21hdGNoUmVzdWx0LCBjYXNjYWRlTGV2
ZWwpKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IG1hdGNoZWRQ
cm9wZXJ0aWVzLnByb3BlcnRpZXMtPnByb3BlcnR5Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsK
ICAgICAgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0gbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVy
dGllcy0+cHJvcGVydHlBdChpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LnZhbHVl
KCktPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5LnZh
bHVlKCktPmlzUHJpbWl0aXZlVmFsdWUoKSB8fCBwcm9wZXJ0eS52YWx1ZSgpLT5pc0NTU1dpZGVL
ZXl3b3JkKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IHN3aXRjaCAocHJvcGVydHkuaWQoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXcml0aW5nTW9kZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDNi
YTJkOTZlZDczNDJhMDU0OTljNzA3MmJhNTczNmI2M2IyZmIxNTMuLjlkNmM2YjQzOTkwYThhOWJl
MTBiNjIyNzNkMDc5MmI5OGJlNThhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
LmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgQnVpbGRlcjo6YXBwbHlQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEIGlkLCBDU1NWYWx1ZSYgdmFsdWUsIFNlbGVjdG9yQ2hlY2tlcjo6CiAgICAgICAg
IGN1c3RvbVByb3BlcnR5UmVnaXN0ZXJlZCA9IG1fc3RhdGUuZG9jdW1lbnQoKS5nZXRDU1NSZWdp
c3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQobmFtZSk7CiAgICAgfQogCi0gICAgYm9vbCBp
c0luaGVyaXQgPSB2YWx1ZVRvQXBwbHktPmlzSW5oZXJpdGVkVmFsdWUoKSB8fCBjdXN0b21Qcm9w
ZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVJbmhlcml0OworICAgIGJvb2wgaXNJbmhlcml0ID0gdmFs
dWVUb0FwcGx5LT5pc0luaGVyaXRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBD
U1NWYWx1ZUluaGVyaXQ7CiAgICAgYm9vbCBpc0luaXRpYWwgPSB2YWx1ZVRvQXBwbHktPmlzSW5p
dGlhbFZhbHVlKCkgfHwgY3VzdG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlSW5pdGlhbDsK
IAogICAgIGJvb2wgaXNVbnNldCA9IHZhbHVlVG9BcHBseS0+aXNVbnNldFZhbHVlKCkgfHwgY3Vz
dG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlVW5zZXQ7CkBAIC0zNjEsOCArMzYxLDggQEAg
UmVmPENTU1ZhbHVlPiBCdWlsZGVyOjpyZXNvbHZlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBDU1NWYWx1ZSYgdmFsdWUpCiAgICAgLy8gSWYgdGhlIGNhc2NhZGUgaGFzIGFscmVhZHkg
YXBwbGllZCB0aGlzIGlkLCB0aGVuIHdlIGRldGVjdGVkIGEgY3ljbGUsIGFuZCB0aGlzIHZhbHVl
IHNob3VsZCBiZSB1bnNldC4KICAgICBpZiAoIXZhcmlhYmxlVmFsdWUgfHwgbV9zdGF0ZS5tX2Fw
cGxpZWRQcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUlEKSkgewogICAgICAgICBpZiAoQ1NTUHJvcGVy
dHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpCi0gICAgICAgICAgICByZXR1cm4g
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpOwotICAgICAg
ICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVFeHBsaWNpdEluaXRpYWxW
YWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3Jl
YXRlVmFsdWUoQ1NTVmFsdWVJbmhlcml0KTsKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6
c2luZ2xldG9uKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gKnZhcmlhYmxlVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1l
bnQuY3BwCmluZGV4IDViYzI2NWE2MzdkNDI1NTM0Mzg1YTBjOWM1MjE4NDY4MTkwOWQwMmEuLjQy
MmEzYjk1MWYwYmYwYTAzNTk5YzZkMGEzNDJkNDAxNjdlYzdhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgU1ZHRm9u
dEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyCiAgICAgICAgICAgICAvLyBSYXRoZXIgdGhhbiBpbnZhc2l2ZWx5IG1vZGlm
eWluZyB0aGUgcGFyc2VyIGZvciB0aGUgcHJvcGVydGllcyB0byBoYXZlIGEgc3BlY2lhbCBtb2Rl
LCB3ZSBjYW4gc2ltcGx5IGRldGVjdCB0aGUgZXJyb3IgY29uZGl0aW9uIGFmdGVyLXRoZS1mYWN0
IGFuZAogICAgICAgICAgICAgLy8gYXZvaWQgaXQgZXhwbGljaXRseS4KICAgICAgICAgICAgIGlm
IChhdXRvIHBhcnNlZFZhbHVlID0gcHJvcGVydGllcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3Bl
cnR5SWQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnNlZFZhbHVlLT5pc0dsb2JhbEtleXdv
cmQoKSkKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VkVmFsdWUtPmlzQ1NTV2lkZUtleXdvcmQo
KSkKICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0
eUlkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443489</attachid>
            <date>2021-11-06 11:39:15 -0700</date>
            <delta_ts>2021-11-06 12:21:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232750-20211106203913.patch</filename>
            <type>text/plain</type>
            <size>67372</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4ZjA1YmNhNzQ2ZDgy
ODFiYjE4OTFjNDJmMDE3ODViYzJjOTVkOS4uMTg2OWNhOTg2MzBlOTgyZGY5MjgwZjI0NzViYjE5
ZmFmYmEwNWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0xMS0wNiAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNlcGFyYXRl
IGNsYXNzZXMgZm9yIENTUyB3aWRlIGtleXdvcmRzIChpbml0aWFsL2luaGVyaXQvdW5zZXQvcmV2
ZXJ0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NzUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBSZW1vdmUg
Q1NTSW5pdGlhbFZhbHVlLCBDU1NJbmhlcml0ZWRWYWx1ZSwgQ1NTUmV2ZXJ0VmFsdWUgYW5kIENT
U1Vuc2V0VmFsdWUgY2xhc3Nlcy4KKyAgICAgICAgVGhleSBjYW4gYWxsIGJlIGhhbmRsZWQgYnkg
Q1NTUHJpbWl0aXZlVmFsdWUuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pT
TmV3bHlDcmVhdGVkKToKKworICAgICAgICBBdm9pZCBjaGFuZ2luZyB0aGUgY2xhc3MgdHlwZSB2
aXNpYmxlIGluIENTU09NLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJUZXh0RGVjb3JhdGlvblN0eWxlRmxh
Z3NUb0NTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclRleHREZWNvcmF0aW9uU2tp
cFRvQ1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogY3NzL0NTU0luaGVyaXRlZFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAg
ICogY3NzL0NTU0luaXRpYWxWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU0lu
aXRpYWxWYWx1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzQ1NTV2lkZUtleXdv
cmQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAq
IGNzcy9DU1NSZXZlcnRWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU1JldmVy
dFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NTU1Vuc2V0VmFsdWUuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGNzcy9DU1NVbnNldFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICog
Y3NzL0NTU1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpjc3NWYWx1ZVR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmVxdWFscyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6dHJl
YXRBc0luaGVyaXRlZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjp0
cmVhdEFzSW5pdGlhbFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpp
c0luaXRpYWxWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbXBs
aWNpdEluaXRpYWxWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJ
bmhlcml0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzVW5zZXRW
YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNSZXZlcnRWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNDU1NXaWRlS2V5d29yZCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6Q1NTVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5oZXJpdGVkVmFs
dWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzSW5pdGlh
bFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc1Vu
c2V0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6Omlz
UmV2ZXJ0VmFsdWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmlzR2xvYmFsS2V5d29yZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ZhbHVl
UG9vbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NWYWx1ZVBvb2w6OlN0YXRpY0NT
U1ZhbHVlUG9vbCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlUG9vbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZVBvb2w6OmNyZWF0ZUluaGVyaXRlZFZhbHVlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFs
dWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVQb29sOjpjcmVhdGVVbnNl
dFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlUG9vbDo6Y3JlYXRl
UmV2ZXJ0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWU6OmlzQ1NTV2lkZUtleXdvcmQgY29uc3QpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzOjpib3JkZXJSYWRpdXNWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OnBhZ2VCcmVha1Byb3BlcnR5VmFsdWUgY29u
c3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnBhcnNlS2V5d29yZFZhbHVlKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NT
U1BhcnNlcklkaW9tcy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNDU1NXaWRlS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjppc1ZhbGlkQ3VzdG9tSWRlbnRpZmllcik6CisKKyAgICAgICAgU2Vw
YXJhdGUgdGhlIGNvbmNlcHQgb2YgdmFsaWQgY3VzdG9tIGlkZW50aWZpZXIgZnJvbSB0aGF0IG9m
IENTUy13aWRlIGtleXdvcmQuIFRoZSBmb3JtZXIgYWxzbyBleGNsdWRlcyB0aGUgb2Jzb2xldGUg
ImRlZmF1bHQiIGtleXdvcmQuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1heWJlQ29uc3VtZUNTU1dpZGVLZXl3b3JkKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVDdXN0b21JZGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVD
b3VudGVyU3R5bGVOYW1lSW5QcmVsdWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VySGVscGVyczo6Y29uY2F0ZW5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6aXNDU1NXaWRlS2V5d29yZCk6IERlbGV0ZWQuCisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9u
dFdlaWdodElzQm9sZCk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1t
OgorICAgICAgICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgor
ICAgICAgICAoSFRNTENvbnZlcnRlckNhY2hlczo6ZmxvYXRQcm9wZXJ0eVZhbHVlRm9yTm9kZSk6
CisgICAgICAgIChIVE1MQ29udmVydGVyQ2FjaGVzOjpjb2xvclByb3BlcnR5VmFsdWVGb3JOb2Rl
KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlU2hhcmVkQ2VsbFN0eWxlIGNvbnN0KToKKyAgICAg
ICAgKiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKiBzdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OlByb3BlcnR5Q2FzY2FkZTo6YWRkTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBy
b3BlcnR5Q2FzY2FkZTo6cmVzb2x2ZURpcmVjdGlvbkFuZFdyaXRpbmdNb2RlIGNvbnN0KToKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OkJ1aWxkZXI6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxk
ZXI6OnJlc29sdmVWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToK
KwogMjAyMS0xMS0wNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSUZDXSBCdWlsZCB0aGUgcGFyYWdyYXBoIGNvbnRlbnQgd2hlbiBhbGwgdGhlIGlubGlu
ZSBpdGVtcyBhcmUgcHJvY2Vzc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGYyZWY1MGJiZDhiNGYxNDc3
OWI3NGFjZTkwZTU1YTIwN2Q1MmI4MTYuLjNjNGUxNmY5ZGQ4NTYzNjM2MWY3NTQ4MGJmZTZjNTgx
NTE5ZmVmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02OTEsOCArNjkxLDYgQEAgY3NzL0NTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwCiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKIGNzcy9DU1NJbWFn
ZVZhbHVlLmNwcAogY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCi1jc3MvQ1NTSW5oZXJpdGVkVmFsdWUu
Y3BwCi1jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcAogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHAKIGNz
cy9DU1NLZXlmcmFtZXNSdWxlLmNwcAogY3NzL0NTU0xheWVyUnVsZS5jcHAKQEAgLTcwOCw3ICs3
MDYsNiBAQCBjc3MvQ1NTUHJvcGVydHkuY3BwCiBjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNw
cAogY3NzL0NTU1JlZmxlY3RWYWx1ZS5jcHAKIGNzcy9DU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVy
dHkuY3BwCi1jc3MvQ1NTUmV2ZXJ0VmFsdWUuY3BwCiBjc3MvQ1NTUnVsZS5jcHAKIGNzcy9DU1NS
dWxlTGlzdC5jcHAKIGNzcy9DU1NTZWdtZW50ZWRGb250RmFjZS5jcHAKQEAgLTcyNCw3ICs3MjEs
NiBAQCBjc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKIGNzcy9DU1NUb1N0eWxlTWFw
LmNwcAogY3NzL0NTU1VuaWNvZGVSYW5nZVZhbHVlLmNwcAogY3NzL0NTU1VuaXRzLmNwcAotY3Nz
L0NTU1Vuc2V0VmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWUuY3BwCiBjc3MvQ1NTVmFsdWVMaXN0LmNw
cAogY3NzL0NTU1ZhbHVlUGFpci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYWZjNWQ4YzY4N2ZkMTUwYjFlNTUyMjQ2ZTVk
ZTg3NDRmZDFhMzUxLi43OTIxMDZlODk5YTZjYzVlOGEzODc2ODI1Y2M1ZjE0MzE4ZDA4NzNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNTMyLDEwICszNTMyLDggQEAKIAkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZDRDMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0ZGMEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3Bl
cnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTgwRTZEMDAwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNENjBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUGFnZVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlBODBFNkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0Q3
MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5oICovOyB9OwogCQlBODBFNkQw
MzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNEOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
TWVkaWFSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTgwRTZEMDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhD
NSAvKiBDb3VudGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQTgwRTZEMDgwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDREUwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovOyB9OwogCQlBODBFNkQwQzBBMTk4
OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTgwRTZERkMwQTE5OTA2NzAwN0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAw
N0ZCOEM1IC8qIFN0eWxlUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC00MTU1LDggKzQxNTMsNiBAQAogCQlCQzc3MkUxMzEzMzE2
MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIwQzAwMUVDOUNFIC8q
IENTU0xpbmVCb3hDb250YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9t
UHJvcGVydHlWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM3NzlFMTMxQkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3RvbVByb3BlcnR5VmFsdWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3
OUUxNzFCQjIyN0NBMDBDQUE4QkYgLyogU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzc5RTE1MUJCMjI2QTIw
MENBQThCRiAvKiBTdHlsZUN1c3RvbVByb3BlcnR5RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0MCAv
KiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzdEOEZFRTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovOyB9
OwotCQlCQzdEOEZGNDFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0Q4RkYyMUJEMUE0Nzkw
MEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1ZS5oICovOyB9OwogCQlCQzdGNDRBODBCOUUzMjRFMDBB
OUQwODEgLyogSW1hZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzdG
QTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyog
TGl2ZU5vZGVMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkM3RkE2MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCAqLzsgfTsKQEAgLTEzMjAxLDcgKzEzMTk3
LDYgQEAKIAkJQTgwRTZDQzMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhbHVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0M0MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxl
UnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU3R5bGVS
dWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDQzYwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4MEU2Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250VmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYWx1ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NSdWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUnVsZUxp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDQ0EwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU1NoYWRvd1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NTaGFkb3dWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzIxNiwxMyArMTMyMTEsMTAgQEAKIAkJQTgwRTZDRDQwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U0ltYWdlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENT
U0ltYWdlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNENTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENTU1Byb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MEU2Q0Q2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTUGFnZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NJbmhlcml0ZWRWYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODBFNkNEODBBMTk4OUNBMDA3RkI4QzUgLyogQ1NT
SW5pdGlhbFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NJbml0aWFsVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNkNE
OTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTTWVkaWFSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NNZWRpYVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgwRTZDREEwQTE5ODlDQTAwN0ZCOEM1IC8qIENvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgwRTZDREIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU2Q0RDMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NS
dWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTgwRTZDREUwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0luaXRpYWxWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTSW5pdGlhbFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MEU2Q0RGMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODBFNkNFMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZVJ1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1J1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTk4LDEwICsxNDU5MCw2IEBACiAJCUJDNzc5RTEz
MUJCMjE1QkIwMENBQThCRiAvKiBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzlFMTUxQkIyMjZBMjAwQ0FBOEJGIC8qIFN0eWxlQ3Vz
dG9tUHJvcGVydHlEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxl
Q3VzdG9tUHJvcGVydHlEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0Iy
QUY4MDQ1MDgyNDEwMEE4MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlCQzdEOEZFRDFCRDAz
QjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NVbnNldFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkM3RDhGRUUxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVW5zZXRWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzdEOEZGMTFCRDFBNDc5MDBGRkU1NDAgLyogQ1NTUmV2ZXJ0VmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmV2ZXJ0VmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdEOEZGMjFCRDFBNDc5MDBG
RkU1NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUmV2ZXJ0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3RjQ0
QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM3RkE2MUUwRDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaXZlTm9kZUxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5v
ZGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpdmVOb2RlTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MTYsMTEgKzE4NjA0LDExIEBACiAJ
CTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBq
c2MgKi8sCiAJCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5
RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgx
OTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkw
MDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcx
NTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVf
YXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2Fy
cmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9k
LmNwcCAqLywKQEAgLTI5OTA5LDEwICsyOTg5Nyw2IEBACiAJCQkJQTgwRTZDQzEwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0ltcG9ydFJ1bGUuY3BwICovLAogCQkJCUE4MEU2Q0NDMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NJbXBvcnRSdWxlLmggKi8sCiAJCQkJODVDNTZDQTkwQUE4OUU2NjAwRDk1NzU1
IC8qIENTU0ltcG9ydFJ1bGUuaWRsICovLAotCQkJCUE4MEU2Q0M2MEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NJbmhlcml0ZWRWYWx1ZS5jcHAgKi8sCi0JCQkJQTgwRTZDRDcwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0luaGVyaXRlZFZhbHVlLmggKi8sCi0JCQkJQTgwRTZDRDgwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0luaXRpYWxWYWx1ZS5jcHAgKi8sCi0JCQkJQTgwRTZDREUwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0luaXRpYWxWYWx1ZS5oICovLAogCQkJCTMxMjg4RTZFMEUzMDA1RDYwMDM2MTlBRSAv
KiBDU1NLZXlmcmFtZVJ1bGUuY3BwICovLAogCQkJCTMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAv
KiBDU1NLZXlmcmFtZVJ1bGUuaCAqLywKIAkJCQkzMTZGRTA5MTBFNkNDRDdGMDBCRjYwODggLyog
Q1NTS2V5ZnJhbWVSdWxlLmlkbCAqLywKQEAgLTI5OTU2LDggKzI5OTQwLDYgQEAKIAkJCQlCQzVB
MTJERTBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmggKi8sCiAJCQkJNEIxNzA2
NjQyMTYyQjQyRjAwRTU3OEJCIC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5jcHAgKi8s
CiAJCQkJNEJEQTNGRkIyMTUxQjZGNDAwRkQ2NjA0IC8qIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9w
ZXJ0eS5oICovLAotCQkJCUJDN0Q4RkYxMUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZlcnRWYWx1
ZS5jcHAgKi8sCi0JCQkJQkM3RDhGRjIxQkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVl
LmggKi8sCiAJCQkJQTgwRTZDREMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuY3BwICovLAog
CQkJCUE4MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi8sCiAJCQkJMTRDRjdB
NzAwOUY1Q0Y5QTAwRUIzNjY1IC8qIENTU1J1bGUuaWRsICovLApAQCAtMjk5OTYsOCArMjk5Nzgs
NiBAQAogCQkJCTBGNkI3MDc3MjM3QkMxMkYwMDUyQ0E0NyAvKiBDU1NVbml0cy5oICovLAogCQkJ
CUE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NVbmtub3duUnVsZS5oICovLAogCQkJCTg1
QzU2Q0FEMEFBODlGRTAwMEQ5NTc1NSAvKiBDU1NVbmtub3duUnVsZS5pZGwgKi8sCi0JCQkJQkM3
RDhGRUQxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuY3BwICovLAotCQkJCUJDN0Q4
RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NVbnNldFZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgx
NDY4NDUzOTAwQTM5QjVCIC8qIENTU1ZhbHVlLmNwcCAqLywKIAkJCQlBODBFNkNDNDBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTVmFsdWUuaCAqLywKIAkJCQlCQ0VBNDc4QzA5N0NBQUM4MDA5NEM5RTQg
LyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKQEAgLTMyMjczLDggKzMyMjUzLDYgQEAKIAkJCQk5
MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTgwRTZDRkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MEU2Q0Y2MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbXBvcnRSdWxl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODBFNkQwMTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5o
ZXJpdGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MEU2RDA4MEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NJbml0aWFsVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4RTczMEUzMDA1
RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMjg4
RTc1MEUzMDA1RDYwMDM2MTlBRSAvKiBDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyQTQxMDdBNDI2Q0I2NkY4MDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMyMzI5LDcgKzMyMzA3LDYgQEAKIAkJCQk4MkUzRDhERjEyMkVBMEQxMDAz
QUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVB
MTJFMDBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3Bl
cnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzdEOEZGNDFCRDFBNDc5MDBGRkU1NDAgLyogQ1NT
UmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBNTM4QTI4MjZGMDEwM0MwMDk2NUZD
OCAvKiBDU1NSb3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDBEMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNGMjBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzIzNjMsNyArMzIzNDAs
NiBAQAogCQkJCTRCQUZEMEUxMjE5MjQyQTAwMEMwQUI2NCAvKiBDU1NVbml0VmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJBRkQwRDkyMTkyMUVBMDAwQzBBQjY0IC8qIENTU1Vu
cGFyc2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0
MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQkJDMjQ3MjM4MzU1
MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEw
OUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNhdGVkQ1NTT01WYWx1
ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NP
TVZhbHVlQ3VzdG9tLmNwcAppbmRleCBhN2UxMzRmZWFkZTJjOGI0YTBjZTE1NTk1MDQ3M2Y2MzA2
OTc3NWJkLi4zZmVjZmU2Nzg1N2EzMGFiZTNiMmQ5MjYzNDNmOGM5OWUzNTQ2ZDBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NP
TVZhbHVlQ3VzdG9tLmNwcApAQCAtNTEsNyArNTEsOCBAQCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8
RAogewogICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0
ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUo
dmFsdWUpKTsKLSAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAvLyBFeHBv
c2UgQ1NTLXdpZGUga2V5d29yZHMgYXMgcGxhaW4gQ1NTVmFsdWVzIHRvIGtlZXAgdGhlIGV4aXN0
aW5nIGJlaGF2aW9yLgorICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmICFkb3du
Y2FzdDxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4odmFsdWUuZ2V0KCkpLmlzQ1NTV2lk
ZUtleXdvcmQoKSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOwogICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1v
dmUodmFsdWUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNGUxMDA2MThiYTU1ODM3MzQ2NjNhZDZhMzhlZWNmOWU1
MmQ1YWI1My4uNjNmNWQ3Mzg5MzFmYmIxMTUzNmQxMjYwNzQ3NGY1MGIyZGE2YmI3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTE2NTIsNyArMTY1Miw3IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHJlbmRlclRleHREZWNv
cmF0aW9uU3R5bGVGbGFnc1RvQ1NTVmFsdWUoVGV4dERlY29yYXRpb25TdHlsCiAgICAgfQogCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKKyAgICByZXR1cm4gQ1NTVmFsdWVQ
b29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbml0aWFsKTsK
IH0KIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29yYXRpb25Ta2lwVG9D
U1NWYWx1ZShUZXh0RGVjb3JhdGlvblNraXBJbmsgdGV4dERlY29yYXRpb25Ta2lwSW5rKQpAQCAt
MTY2Nyw3ICsxNjY3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcmVuZGVyVGV4dERlY29y
YXRpb25Ta2lwVG9DU1NWYWx1ZShUZXh0RGVjb3JhdGlvblNraXBJbmsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVFeHBsaWNpdEluaXRpYWxWYWx1ZSgpOworICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaXRpYWwpOwogfQog
CiBzdGF0aWMgUmVmPENTU1ZhbHVlPiB0ZXh0VW5kZXJsaW5lT2Zmc2V0VG9DU1NWYWx1ZShjb25z
dCBUZXh0VW5kZXJsaW5lT2Zmc2V0JiB0ZXh0VW5kZXJsaW5lT2Zmc2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbmhlcml0ZWRWYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVkMjQ4OTgxYjFhZDI0NGJlY2Q3MzQ4MTMzMmI3YTg3YWFjZTg5N2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lu
aGVyaXRlZFZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qKgotICog
KEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0KLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1T
dHJpbmcgQ1NTSW5oZXJpdGVkVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJl
dHVybiAiaW5oZXJpdCJfczsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0luaGVyaXRlZFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW5oZXJpdGVkVmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjUyYjkxNTRhYTIyOGQ1MTA5ZWJiNDAwZjJlOTlkZGRlZWZkZDQ0NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5o
ZXJpdGVkVmFsdWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiAoQykg
MTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJh
Z21hIG9uY2UKLQotI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgQ1NTSW5oZXJpdGVkVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVi
bGljOgotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGVxdWFs
cyhjb25zdCBDU1NJbmhlcml0ZWRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotcHJp
dmF0ZToKLSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRlZFZhbHVlPjsK
LSAgICBDU1NJbmhlcml0ZWRWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZykKLSAgICAgICAgOiBDU1NW
YWx1ZShJbmhlcml0ZWRDbGFzcykKLSAgICB7Ci0gICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
Q1NTX1ZBTFVFKENTU0luaGVyaXRlZFZhbHVlLCBpc0luaGVyaXRlZFZhbHVlKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZDE0MzZlN2YxZWNhNjQ2Zjg2OGQ5ODhmNzY2MjQ2ZWY3NjEzMzBhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bml0aWFsVmFsdWUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoqCi0gKiAo
QykgMTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCi0KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TdHJp
bmcgQ1NTSW5pdGlhbFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ImluaXRpYWwiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbml0aWFsVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbml0aWFsVmFsdWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRmYjc2ZjI1
MWYyNDRmMTUxY2E3MjgxMjJiYzEyYTQ0YTliYTdhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW5pdGlhbFZhbHVl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogKEMpIDE5OTktMjAwMyBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENT
U0luaXRpYWxWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgU3Ry
aW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKLQotICAgIGJvb2wgaXNJbXBsaWNpdCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNJbXBsaWNpdDsgfQotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTSW5p
dGlhbFZhbHVlJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIGZyaWVu
ZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTSW5pdGlhbFZhbHVlPjsKLSAgICBDU1NJbml0aWFsVmFs
dWUoU3RhdGljQ1NTVmFsdWVUYWcsIGJvb2wgaW1wbGljaXQpCi0gICAgICAgIDogQ1NTVmFsdWUo
SW5pdGlhbENsYXNzKQotICAgICAgICAsIG1faXNJbXBsaWNpdChpbXBsaWNpdCkKLSAgICB7Ci0g
ICAgICAgIG1ha2VTdGF0aWMoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBtX2lzSW1w
bGljaXQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQ1NTX1ZBTFVFKENTU0luaXRpYWxWYWx1ZSwgaXNJbml0aWFsVmFsdWUoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGE5ZDAyMjZmOWNkZDUwNTcy
YTJkYmM4YTU5OTA4Njk3MTcxNjg0YmMuLmI2YTcwNWE3YjBlY2ZhZjU0YmQ4YmIxMTE0YmQ3NGQ2
MzJlNTkzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNTU0ZvbnRGYW1pbHkuaCIKICNpbmNsdWRlICJDU1NI
ZWxwZXIuaCIKICNpbmNsdWRlICJDU1NNYXJrdXAuaCIKKyNpbmNsdWRlICJDU1NQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEu
aCIKQEAgLTM2Miw2ICszNjMsMTMgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKFN0YXRpY0NTU1ZhbHVlVGFnLCBkb3VibGUgbnVtLCBDU1NVbml0VHlwZQogICAgIG1ha2VT
dGF0aWMoKTsKIH0KIAorQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFN0YXRp
Y0NTU1ZhbHVlVGFnLCBJbXBsaWNpdEluaXRpYWxWYWx1ZVRhZykKKyAgICA6IENTU1ByaW1pdGl2
ZVZhbHVlKENTU1ZhbHVlSW5pdGlhbCkKK3sKKyAgICBtX2lzSW1wbGljaXQgPSB0cnVlOworICAg
IG1ha2VTdGF0aWMoKTsKK30KKwogdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6aW5pdChjb25zdCBM
ZW5ndGgmIGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKGxlbmd0aC50eXBlKCkpIHsKQEAgLTE0Mzgs
NCArMTQ0Niw5IEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbGxlY3REaXJlY3RSb290Q29t
cHV0YXRpb25hbERlcGVuZGVuY2llcyhIYXNoU2V0PENTU1ByCiAgICAgfQogfQogCitib29sIENT
U1ByaW1pdGl2ZVZhbHVlOjppc0NTU1dpZGVLZXl3b3JkKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
V2ViQ29yZTo6aXNDU1NXaWRlS2V5d29yZCh2YWx1ZUlEKCkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGI3NDc5
YzdiZjdkOTU0NzUwODc5Mjk0OTZmNGQ0YjFhOWVkNTg4NjEuLjUxNDhhNGNiMmU0NzU0M2NlZjE3
NGFkMmI4MDMxMDJiYjQwOWEzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5oCkBAIC0xMTUsNiArMTE1LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGlzRmxleCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NVbml0VHlwZTo6Q1NTX0ZSOyB9CiAgICAg
Ym9vbCBpc0N1c3RvbUlkZW50KCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVW5pdFR5cGUoKSA9
PSBDU1NVbml0VHlwZTo6Q3VzdG9tSWRlbnQ7IH0KIAorICAgIGJvb2wgaXNJbml0aWFsVmFsdWUo
KSBjb25zdCB7IHJldHVybiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbml0aWFsOyB9CisgICAgYm9v
bCBpc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gaXNJbml0aWFsVmFsdWUo
KSAmJiBtX2lzSW1wbGljaXQ7IH0KKyAgICBib29sIGlzSW5oZXJpdFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlSW5oZXJpdDsgfQorICAgIGJvb2wgaXNVbnNldFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVJRCgpID09IENTU1ZhbHVlVW5zZXQ7IH0KKyAgICBi
b29sIGlzUmV2ZXJ0VmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZUlEKCkgPT0gQ1NTVmFsdWVS
ZXZlcnQ7IH0KKyAgICBib29sIGlzQ1NTV2lkZUtleXdvcmQoKSBjb25zdDsKKwogICAgIHN0YXRp
YyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVJRCB2YWx1
ZUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlSUQpKTsg
fQogICAgIHN0YXRpYyBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZUlkZW50aWZpZXIoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENTU1ByaW1pdGl2
ZVZhbHVlKHByb3BlcnR5SUQpKTsgfQogCkBAIC0xOTgsNiArMjA1LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDU1NWYWx1ZVBvb2w7CisgICAgZnJpZW5kIGNsYXNz
IFN0YXRpY0NTU1ZhbHVlUG9vbDsKICAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPENTU1By
aW1pdGl2ZVZhbHVlPjsKIAogICAgIENTU1ByaW1pdGl2ZVZhbHVlKENTU1ZhbHVlSUQpOwpAQCAt
MjEyLDYgKzIyMCw4IEBAIHByaXZhdGU6CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoU3RhdGljQ1NT
VmFsdWVUYWcsIENTU1ZhbHVlSUQpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1Zh
bHVlVGFnLCBjb25zdCBDb2xvciYpOwogICAgIENTU1ByaW1pdGl2ZVZhbHVlKFN0YXRpY0NTU1Zh
bHVlVGFnLCBkb3VibGUsIENTU1VuaXRUeXBlKTsKKyAgICBlbnVtIEltcGxpY2l0SW5pdGlhbFZh
bHVlVGFnIHsgSW1wbGljaXRJbml0aWFsVmFsdWUgfTsKKyAgICBDU1NQcmltaXRpdmVWYWx1ZShT
dGF0aWNDU1NWYWx1ZVRhZywgSW1wbGljaXRJbml0aWFsVmFsdWVUYWcpOwogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gQ1NTUHJpbWl0aXZlVmFsdWUoVCk7IC8vIERlZmluZWQgaW4gQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gQ1NTUHJpbWl0
aXZlVmFsdWUoUmVmUHRyPFQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1JldmVydFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkYzQwZDM3ZWYwNTY1MzUyNDc0NDU2MTY5
ZTU0ZWYyZDQzMDhhMzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZhbHVlLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTUmV2ZXJ0VmFsdWUuaCIK
LQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVN0cmluZyBDU1NSZXZlcnRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuICJyZXZlcnQiX3M7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSZXZlcnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1JldmVydFZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWIy
NGQ3MjM3ZDdlZmE2ZTMzNTJhZjZjMzU4NDc1MzYzZjFjMDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1JldmVydFZh
bHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NW
YWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1JldmVydFZhbHVlIGZp
bmFsIDogcHVibGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4
dCgpIGNvbnN0OwotCi0gICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUmV2ZXJ0VmFsdWUmKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ry
b3llZDxDU1NSZXZlcnRWYWx1ZT47Ci0gICAgQ1NTUmV2ZXJ0VmFsdWUoU3RhdGljQ1NTVmFsdWVU
YWcpCi0gICAgICAgIDogQ1NTVmFsdWUoUmV2ZXJ0Q2xhc3MpCi0gICAgewotICAgICAgICBtYWtl
U3RhdGljKCk7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShDU1NSZXZlcnRWYWx1ZSwgaXNSZXZlcnRWYWx1ZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Vuc2V0VmFsdWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3MjZiMGIzYmM3NTQzMzY3NjUzNjQ3NGE0MDdlN2QwN2RkNzVlYjdlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NVbnNldFZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiQ1NTVW5zZXRWYWx1ZS5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RyaW5nIENTU1Vuc2V0VmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAotewotICAgIHJldHVybiAidW5zZXQiX3M7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NV
bnNldFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5zZXRWYWx1ZS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjUyNWM4ZGEyMGQ1OTllYzJkNDM0ZTQ3ZWQ0ODlkNmMz
OTJkNmQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NVbnNldFZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NWYWx1ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENTU1Vuc2V0VmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewotcHVibGlj
OgotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7Ci0KLSAgICBib29sIGVxdWFscyhj
b25zdCBDU1NVbnNldFZhbHVlJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcml2YXRlOgot
ICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTVW5zZXRWYWx1ZT47Ci0gICAgQ1NTVW5z
ZXRWYWx1ZShTdGF0aWNDU1NWYWx1ZVRhZykKLSAgICAgICAgOiBDU1NWYWx1ZShVbnNldENsYXNz
KQotICAgIHsKLSAgICAgICAgbWFrZVN0YXRpYygpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTVW5zZXRW
YWx1ZSwgaXNVbnNldFZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCA2MWFjNzEx
YTczNTFmZGRkZGQ3ZjI2ZjY5MDI4MGQzZDgxYTYxZjEyLi40ZjNmNDVhZTg0YTlkOGRmNTNiNjli
NmIzMzM2NjBkOGMzY2ZiYzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKQEAgLTQ5LDggKzQ5
LDYgQEAKICNpbmNsdWRlICJDU1NHcmFkaWVudFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VT
ZXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NJbmhl
cml0ZWRWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU0luaXRpYWxWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U0xpbmVCb3hDb250YWluVmFsdWUuaCIKICNpbmNsdWRlICJDU1NOYW1lZEltYWdlVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NQYWludEltYWdlVmFsdWUuaCIKQEAgLTYxLDcgKzU5LDYgQEAKICNpbmNs
dWRlICJDU1NTaGFkb3dWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1RpbWluZ0Z1bmN0aW9uVmFsdWUu
aCIKICNpbmNsdWRlICJDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1Vuc2V0
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBh
aXIuaCIKICNpbmNsdWRlICJDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmgiCkBAIC04MywxNiAr
ODAsMTEgQEAgc3RydWN0IFNhbWVTaXplQXNDU1NWYWx1ZSB7CiAKIENPTVBJTEVfQVNTRVJUKHNp
emVvZihDU1NWYWx1ZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNDU1NWYWx1ZSksIENTU192YWx1ZV9z
aG91bGRfc3RheV9zbWFsbCk7CiAKLWJvb2wgQ1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFs
dWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2NsYXNzVHlwZSA9PSBJbml0aWFsQ2xhc3MgJiYg
ZG93bmNhc3Q8Q1NTSW5pdGlhbFZhbHVlPigqdGhpcykuaXNJbXBsaWNpdCgpOwotfQotCiBERUZJ
TkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKENTU1ZhbHVlKTsKIAogQ1NTVmFsdWU6
OlR5cGUgQ1NTVmFsdWU6OmNzc1ZhbHVlVHlwZSgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzSW5oZXJp
dGVkVmFsdWUoKSkKKyAgICBpZiAoaXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgcmV0dXJuIENT
U19JTkhFUklUOwogICAgIGlmIChpc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBD
U1NfUFJJTUlUSVZFX1ZBTFVFOwpAQCAtMTg0LDE0ICsxNzYsNiBAQCBib29sIENTU1ZhbHVlOjpl
cXVhbHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGNv
bXBhcmVDU1NWYWx1ZXM8Q1NTQ3Jvc3NmYWRlVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAg
IGNhc2UgSW1hZ2VDbGFzczoKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENT
U0ltYWdlVmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgSW5oZXJpdGVkQ2xhc3M6
Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbmhlcml0ZWRWYWx1ZT4o
KnRoaXMsIG90aGVyKTsKLSAgICAgICAgY2FzZSBJbml0aWFsQ2xhc3M6Ci0gICAgICAgICAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NJbml0aWFsVmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0g
ICAgICAgIGNhc2UgVW5zZXRDbGFzczoKLSAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFs
dWVzPENTU1Vuc2V0VmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0gICAgICAgIGNhc2UgUmV2ZXJ0Q2xh
c3M6Ci0gICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NSZXZlcnRWYWx1ZT4o
KnRoaXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBHcmlkQXV0b1JlcGVhdENsYXNzOgogICAgICAg
ICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4oKnRo
aXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBHcmlkSW50ZWdlclJlcGVhdENsYXNzOgpAQCAtMjg2
LDE0ICsyNzAsNiBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Q1NTQ3Jvc3NmYWRlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7
CiAgICAgY2FzZSBJbWFnZUNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VW
YWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIEluaGVyaXRlZENsYXNzOgot
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW5oZXJpdGVkVmFsdWU+KCp0aGlzKS5jdXN0b21D
U1NUZXh0KCk7Ci0gICAgY2FzZSBJbml0aWFsQ2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2Fz
dDxDU1NJbml0aWFsVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7Ci0gICAgY2FzZSBVbnNl
dENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTVW5zZXRWYWx1ZT4oKnRoaXMpLmN1
c3RvbUNTU1RleHQoKTsKLSAgICBjYXNlIFJldmVydENsYXNzOgotICAgICAgICByZXR1cm4gZG93
bmNhc3Q8Q1NTUmV2ZXJ0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBH
cmlkQXV0b1JlcGVhdENsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTR3JpZEF1dG9S
ZXBlYXRWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEdyaWRJbnRlZ2Vy
UmVwZWF0Q2xhc3M6CkBAIC00MTAsMTggKzM4Niw2IEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3ko
KQogICAgIGNhc2UgSW1hZ2VDbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0ltYWdl
VmFsdWU+KHRoaXMpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJbmhlcml0ZWRDbGFzczoK
LSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0luaGVyaXRlZFZhbHVlPih0aGlzKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgSW5pdGlhbENsYXNzOgotICAgICAgICBkZWxldGUgZG93bmNh
c3Q8Q1NTSW5pdGlhbFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVW5z
ZXRDbGFzczoKLSAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU1Vuc2V0VmFsdWU+KHRoaXMpOwot
ICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBSZXZlcnRDbGFzczoKLSAgICAgICAgZGVsZXRlIGRv
d25jYXN0PENTU1JldmVydFZhbHVlPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
R3JpZEF1dG9SZXBlYXRDbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0dyaWRBdXRv
UmVwZWF0VmFsdWU+KHRoaXMpOwogICAgICAgICByZXR1cm47CkBAIC01MTMsMTIgKzQ3Nyw0MyBA
QCBSZWY8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU1ZhbHVlOjpjcmVhdGVEZXByZWNhdGVkQ1NT
T01XcmFwcGVyKENTU1N0eWxlRGVjbGFyYQogCiBib29sIENTU1ZhbHVlOjp0cmVhdEFzSW5oZXJp
dGVkVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogewotICAgIHJldHVybiBj
bGFzc1R5cGUoKSA9PSBJbmhlcml0ZWRDbGFzcyB8fCAoY2xhc3NUeXBlKCkgPT0gVW5zZXRDbGFz
cyAmJiBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7CisgICAg
cmV0dXJuIGlzSW5oZXJpdFZhbHVlKCkgfHwgKGlzVW5zZXRWYWx1ZSgpICYmIENTU1Byb3BlcnR5
Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQpKTsKIH0KIAogYm9vbCBDU1NWYWx1ZTo6
dHJlYXRBc0luaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGNsYXNzVHlwZSgpID09IEluaXRpYWxDbGFzcyB8fCAoY2xhc3NUeXBlKCkgPT0g
VW5zZXRDbGFzcyAmJiAhQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJ
RCkpOworICAgIHJldHVybiBpc0luaXRpYWxWYWx1ZSgpIHx8IChpc1Vuc2V0VmFsdWUoKSAmJiAh
Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkpOworfQorCitib29s
IENTU1ZhbHVlOjppc0luaXRpYWxWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1By
aW1pdGl2ZVZhbHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlz
KS5pc0luaXRpYWxWYWx1ZSgpOworfQorCitib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlh
bFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlz
KSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXRJbml0aWFs
VmFsdWUoKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6aXNJbmhlcml0VmFsdWUoKSBjb25zdAorewor
ICAgIHJldHVybiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpICYmIGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPigqdGhpcykuaXNJbmhlcml0VmFsdWUoKTsKK30KKworYm9vbCBDU1NWYWx1
ZTo6aXNVbnNldFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmlzVW5zZXRW
YWx1ZSgpOwogfQogCitib29sIENTU1ZhbHVlOjppc1JldmVydFZhbHVlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKSAmJiBkb3duY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZT4oKnRoaXMpLmlzUmV2ZXJ0VmFsdWUoKTsKK30KKworYm9vbCBDU1NWYWx1ZTo6
aXNDU1NXaWRlS2V5d29yZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPENTU1ByaW1pdGl2ZVZh
bHVlPigqdGhpcykgJiYgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5pc0NTU1dp
ZGVLZXl3b3JkKCk7Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBhZTUwNmVmN2M5
OTcyNzEyOGExZDgxM2M1ZDIyNjRiNTBjN2YzMTQxLi4yOWVhNGI2ZDExNjY0Mjk2YTc3ZjFkZDk2
NzZlNjAyOGQ1N2JkNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtMTA3LDExICsxMDcsMTEg
QEAgcHVibGljOgogICAgIGJvb2wgaXNJbWFnZVNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gSW1hZ2VTZXRDbGFzczsgfQogICAgIGJvb2wgaXNJbWFnZVZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW1hZ2VDbGFzczsgfQogICAgIGJvb2wgaXNJbXBs
aWNpdEluaXRpYWxWYWx1ZSgpIGNvbnN0OwotICAgIGJvb2wgaXNJbmhlcml0ZWRWYWx1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEluaGVyaXRlZENsYXNzOyB9Ci0gICAgYm9vbCBp
c0luaXRpYWxWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFz
czsgfQotICAgIGJvb2wgaXNVbnNldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUg
PT0gVW5zZXRDbGFzczsgfQotICAgIGJvb2wgaXNSZXZlcnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xhc3NUeXBlID09IFJldmVydENsYXNzOyB9Ci0gICAgYm9vbCBpc0dsb2JhbEtleXdvcmQo
KSBjb25zdCB7IHJldHVybiBpc0luaGVyaXRlZFZhbHVlKCkgfHwgaXNJbml0aWFsVmFsdWUoKSB8
fCBpc1Vuc2V0VmFsdWUoKSB8fCBpc1JldmVydFZhbHVlKCk7IH0KKyAgICBib29sIGlzSW5oZXJp
dFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc0luaXRpYWxWYWx1ZSgpIGNvbnN0OworICAgIGJv
b2wgaXNVbnNldFZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc1JldmVydFZhbHVlKCkgY29uc3Q7
CisgICAgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKCkgY29uc3Q7CiAgICAgYm9vbCB0cmVhdEFzSW5p
dGlhbFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgdHJlYXRBc0luaGVyaXRl
ZFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIGJvb2wgaXNMaW5lYXJHcmFkaWVudFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gTGluZWFyR3JhZGllbnRDbGFzczsg
fQpAQCAtMTkxLDExICsxOTEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEZvbnRQYWxldHRlVmFs
dWVzT3ZlcnJpZGVDb2xvcnNDbGFzcywKICAgICAgICAgRnVuY3Rpb25DbGFzcywKIAotICAgICAg
ICBJbmhlcml0ZWRDbGFzcywKLSAgICAgICAgSW5pdGlhbENsYXNzLAotICAgICAgICBVbnNldENs
YXNzLAotICAgICAgICBSZXZlcnRDbGFzcywKLQogICAgICAgICBSZWZsZWN0Q2xhc3MsCiAgICAg
ICAgIFNoYWRvd0NsYXNzLAogICAgICAgICBVbmljb2RlUmFuZ2VDbGFzcywKQEAgLTIzNyw2ICsy
MzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIDogbV9wcmltaXRpdmVVbml0VHlwZSgwKQogICAg
ICAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKICAgICAgICAgLCBtX3ZhbHVlU2VwYXJh
dG9yKFNwYWNlU2VwYXJhdG9yKQorICAgICAgICAsIG1faXNJbXBsaWNpdChmYWxzZSkKICAgICAg
ICAgLCBtX2NsYXNzVHlwZShjbGFzc1R5cGUpCiAgICAgewogICAgIH0KQEAgLTI2Myw2ICsyNTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2hhc0NhY2hlZENTU1RleHQg
OiAxOwogCiAgICAgdW5zaWduZWQgbV92YWx1ZVNlcGFyYXRvciA6IFZhbHVlU2VwYXJhdG9yQml0
czsKKyAgICB1bnNpZ25lZCBtX2lzSW1wbGljaXQgOiAxOwogCiBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fY2xhc3NUeXBlIDogQ2xhc3NUeXBlQml0czsgLy8gQ2xhc3NUeXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDUwMTgzNWNjNDRlZGY1OWFmMjQ4NmM1YWU0ODY5ZmNl
NjZhNzI4ZmQuLjQzMTU5NDczOGNmNjY5NmE5OTliNzRkYjExZDY1Yzc3NDAzZmEzYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0zOCwxMiArMzgsOCBAQCBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8U3RhdGljQ1NTVmFsdWVQb29sPiBzdGF0aWNDU1NWYWx1ZVBvb2w7CiAKIFN0YXRp
Y0NTU1ZhbHVlUG9vbDo6U3RhdGljQ1NTVmFsdWVQb29sKCkKIHsKLSAgICBtX2luaGVyaXRlZFZh
bHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGljQ1NTVmFsdWUpOwotICAgIG1faW1wbGljaXRJ
bml0aWFsVmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgdHJ1ZSk7Ci0g
ICAgbV9leHBsaWNpdEluaXRpYWxWYWx1ZS5jb25zdHJ1Y3QoQ1NTVmFsdWU6OlN0YXRpY0NTU1Zh
bHVlLCBmYWxzZSk7Ci0gICAgbV91bnNldFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3RhdGlj
Q1NTVmFsdWUpOwotICAgIG1fcmV2ZXJ0VmFsdWUuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWND
U1NWYWx1ZSk7Ci0KKyAgICBtX2ltcGxpY2l0SW5pdGlhbFZhbHVlLmNvbnN0cnVjdChDU1NWYWx1
ZTo6U3RhdGljQ1NTVmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpJbXBsaWNpdEluaXRpYWxWYWx1
ZSk7CisgICAgCiAgICAgbV90cmFuc3BhcmVudENvbG9yLmNvbnN0cnVjdChDU1NWYWx1ZTo6U3Rh
dGljQ1NTVmFsdWUsIENvbG9yOjp0cmFuc3BhcmVudEJsYWNrKTsKICAgICBtX3doaXRlQ29sb3Iu
Y29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OndoaXRlKTsKICAgICBt
X2JsYWNrQ29sb3IuY29uc3RydWN0KENTU1ZhbHVlOjpTdGF0aWNDU1NWYWx1ZSwgQ29sb3I6OmJs
YWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuaAppbmRleCAxZmIyMzE2ZWZjMDMxMGEzYmZj
YTM4NGYxMGM3ZGUwNzFmNDFlOWVkLi4xZDZlYzExNDJmNzMzNTgwYWE3NDQ1N2E0OGZiOTRkNjBk
YWY2NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5oCkBAIC0yNSwxMiArMjUsOCBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNTU0luaGVyaXRlZFZhbHVlLmgiCi0jaW5jbHVk
ZSAiQ1NTSW5pdGlhbFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCi0jaW5jbHVkZSAiQ1NTUmV2ZXJ0VmFsdWUuaCIK
LSNpbmNsdWRlICJDU1NVbnNldFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgogI2luY2x1ZGUgIkNvbG9ySGFzaC5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CkBAIC01NSwxMSAr
NTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFN0YXRpY0NTU1ZhbHVlUG9vbCgpOwogCi0g
ICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaGVyaXRlZFZhbHVlPiBtX2luaGVyaXRlZFZhbHVl
OwotICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NJbml0aWFsVmFsdWU+IG1faW1wbGljaXRJbml0
aWFsVmFsdWU7Ci0gICAgTGF6eU5ldmVyRGVzdHJveWVkPENTU0luaXRpYWxWYWx1ZT4gbV9leHBs
aWNpdEluaXRpYWxWYWx1ZTsKLSAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTVW5zZXRWYWx1ZT4g
bV91bnNldFZhbHVlOwotICAgIExhenlOZXZlckRlc3Ryb3llZDxDU1NSZXZlcnRWYWx1ZT4gbV9y
ZXZlcnRWYWx1ZTsKKyAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0aXZlVmFsdWU+IG1f
aW1wbGljaXRJbml0aWFsVmFsdWU7CiAKICAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NTUHJpbWl0
aXZlVmFsdWU+IG1fdHJhbnNwYXJlbnRDb2xvcjsKICAgICBMYXp5TmV2ZXJEZXN0cm95ZWQ8Q1NT
UHJpbWl0aXZlVmFsdWU+IG1fd2hpdGVDb2xvcjsKQEAgLTg1LDExICs3Nyw3IEBAIHB1YmxpYzoK
IAogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGNyZWF0ZUZvbnRGYWNlVmFsdWUoY29uc3QgQXRv
bVN0cmluZyYpOwogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlRm9udEZhbWlseVZh
bHVlKGNvbnN0IFN0cmluZyYsIEZyb21TeXN0ZW1Gb250SUQgPSBGcm9tU3lzdGVtRm9udElEOjpO
byk7Ci0gICAgUmVmPENTU0luaGVyaXRlZFZhbHVlPiBjcmVhdGVJbmhlcml0ZWRWYWx1ZSgpIHsg
cmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9pbmhlcml0ZWRWYWx1ZS5nZXQoKTsgfQotICAg
IFJlZjxDU1NJbml0aWFsVmFsdWU+IGNyZWF0ZUltcGxpY2l0SW5pdGlhbFZhbHVlKCkgeyByZXR1
cm4gc3RhdGljQ1NTVmFsdWVQb29sLT5tX2ltcGxpY2l0SW5pdGlhbFZhbHVlLmdldCgpOyB9Ci0g
ICAgUmVmPENTU0luaXRpYWxWYWx1ZT4gY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKSB7IHJl
dHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1fZXhwbGljaXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0K
LSAgICBSZWY8Q1NTVW5zZXRWYWx1ZT4gY3JlYXRlVW5zZXRWYWx1ZSgpIHsgcmV0dXJuIHN0YXRp
Y0NTU1ZhbHVlUG9vbC0+bV91bnNldFZhbHVlLmdldCgpOyB9Ci0gICAgUmVmPENTU1JldmVydFZh
bHVlPiBjcmVhdGVSZXZlcnRWYWx1ZSgpIHsgcmV0dXJuIHN0YXRpY0NTU1ZhbHVlUG9vbC0+bV9y
ZXZlcnRWYWx1ZS5nZXQoKTsgfQorICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSW1w
bGljaXRJbml0aWFsVmFsdWUoKSB7IHJldHVybiBzdGF0aWNDU1NWYWx1ZVBvb2wtPm1faW1wbGlj
aXRJbml0aWFsVmFsdWUuZ2V0KCk7IH0KICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUlEIGlkZW50aWZpZXIpOwogICAgIFJlZjxDU1NQcmlt
aXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Byb3BlcnR5SUQgaWRlbnRpZmll
cik7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVDb2xvclZhbHVlKGNvbnN0IENv
bG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZS5oCmluZGV4IDdhOGYxZGEzMDJkYmFkMzY0NDRiZTEzYzRhMmJjNjM2NjY1MjFhZjEu
LmYzYjUzMzMxOWRjMmNlOGYxZDdkMDZiOTg0MzVlNjA5Y2YxNGY0OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCkBAIC04OSw2
ICs4OSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U3RyaW5n
VmFsdWUodW5zaWduZWQgc2hvcnQsIGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIH07IH0KIAogICAgIFN0cmluZyBzdHJpbmdWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPnN0cmluZ1ZhbHVlKCk7IH0KKyAgICBib29sIGlz
Q1NTV2lkZUtleXdvcmQoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5pc0NTU1dpZGVLZXl3b3Jk
KCk7IH0KKyAgICB1bnNpZ25lZCBjc3NWYWx1ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
LT5jc3NWYWx1ZVR5cGUoKTsgfQogCiBwcml2YXRlOgogICAgIERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiB2YWx1ZSwgQ1NTU3R5bGVEZWNsYXJh
dGlvbiYgb3duZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNw
cAppbmRleCA0MmFiNTM0YTc5MTQxMzJmMjk1NTdiMzk2NmM5MzIxNmNhMWI0NWY4Li4yMzI1MDg0
NWFiYTZiYzUzMjJiM2IzNzY5ZmI5M2MwZTY0MGM3ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdW5zaWduZWQgRGVw
cmVjYXRlZENTU09NVmFsdWU6OmNzc1ZhbHVlVHlwZSgpIGNvbnN0CiAgICAgY2FzZSBEZXByZWNh
dGVkQ29tcGxleFZhbHVlQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxEZXByZWNhdGVk
Q1NTT01Db21wbGV4VmFsdWU+KCp0aGlzKS5jc3NWYWx1ZVR5cGUoKTsKICAgICBjYXNlIERlcHJl
Y2F0ZWRQcmltaXRpdmVWYWx1ZUNsYXNzOgotICAgICAgICByZXR1cm4gQ1NTX1BSSU1JVElWRV9W
QUxVRTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlPigqdGhpcykuY3NzVmFsdWVUeXBlKCk7CiAgICAgY2FzZSBEZXByZWNhdGVkVmFsdWVMaXN0
Q2xhc3M6CiAgICAgICAgIHJldHVybiBDU1NfVkFMVUVfTElTVDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGM4M2FkOGRhMzJmZDkzYTYwOThmN2JjNDgz
ZDNiZDkzNDMxMzA1YmMuLmFmODk3Y2QxN2M3MDhhYmE4NTA0YzRlNTVhNWU4NjBjNjVkYTI1ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlclRl
c3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVT
Y29wZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUeXBlZEVsZW1lbnREZXNjZW5k
YW50SXRlcmF0b3IuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRl
eCBlNTA5ZWU2N2Y5MDdmYTA2ZTQ5OTY4NDM2YzYyM2Y0MWI0ZDVhNDQ3Li4wNjNlZjM1OGFmZjcx
MGMzNmY0MGU5YjgwZDE5ZGFlNGI4NzIyM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0aWVzLmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmJv
cmRlclJhZGl1c1ZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuCiAg
ICAgaWYgKHRvcExlZnQuaXNJbXBvcnRhbnQoKSAhPSB0b3BSaWdodC5pc0ltcG9ydGFudCgpIHx8
IHRvcFJpZ2h0LmlzSW1wb3J0YW50KCkgIT0gYm90dG9tUmlnaHQuaXNJbXBvcnRhbnQoKSB8fCBi
b3R0b21SaWdodC5pc0ltcG9ydGFudCgpICE9IGJvdHRvbUxlZnQuaXNJbXBvcnRhbnQoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0
ZWRWYWx1ZSgpICYmIHRvcFJpZ2h0VmFsdWUtPmlzSW5oZXJpdGVkVmFsdWUoKSAmJiBib3R0b21S
aWdodFZhbHVlLT5pc0luaGVyaXRlZFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVy
aXRlZFZhbHVlKCkpCisgICAgaWYgKHRvcExlZnRWYWx1ZS0+aXNJbmhlcml0VmFsdWUoKSAmJiB0
b3BSaWdodFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpICYmIGJvdHRvbVJpZ2h0VmFsdWUtPmlzSW5o
ZXJpdFZhbHVlKCkgJiYgYm90dG9tTGVmdFZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAgICAg
ICByZXR1cm4gZ2V0VmFsdWVOYW1lKENTU1ZhbHVlSW5oZXJpdCk7CiAKICAgICBpZiAodG9wTGVm
dFZhbHVlLT5pc0luaXRpYWxWYWx1ZSgpIHx8IHRvcFJpZ2h0VmFsdWUtPmlzSW5pdGlhbFZhbHVl
KCkgfHwgYm90dG9tUmlnaHRWYWx1ZS0+aXNJbml0aWFsVmFsdWUoKSB8fCBib3R0b21MZWZ0VmFs
dWUtPmlzSW5pdGlhbFZhbHVlKCkpIHsKQEAgLTg1Miw4ICs4NTIsOCBAQCBTdHJpbmcgU3R5bGVQ
cm9wZXJ0aWVzOjpwYWdlQnJlYWtQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmIHNobwogICAgIGF1dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHNob3J0aGFu
ZC5wcm9wZXJ0aWVzKClbMF0pOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaXNHbG9iYWxLZXl3b3JkIGNoZWNrIGFm
dGVyIHdlIGRvIHRoaXMgY29uc2lzdGVudGx5IGZvciBhbGwgc2hvcnRoYW5kcyBpbiBnZXRQcm9w
ZXJ0eVZhbHVlLgotICAgIGlmICh2YWx1ZS0+aXNHbG9iYWxLZXl3b3JkKCkpCisgICAgLy8gRklY
TUU6IFJlbW92ZSB0aGlzIGlzQ1NTV2lkZUtleXdvcmQgY2hlY2sgYWZ0ZXIgd2UgZG8gdGhpcyBj
b25zaXN0ZW50bHkgZm9yIGFsbCBzaG9ydGhhbmRzIGluIGdldFByb3BlcnR5VmFsdWUuCisgICAg
aWYgKHZhbHVlLT5pc0NTU1dpZGVLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3Nz
VGV4dCgpOwogICAgIAogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5k
ZXggMzdhMTE1MWFkYTJlOTc1YjRjYzQ3ZDdiNmU0Nzk2ODNkMWMxNjNmZi4uYzc0MWRhNjFmNDQ0
ZmE1NWM3MjdhM2VkNzk0YzVlYzJlYWRiNjFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtMTExNSwxOSArMTExNSwxMSBAQCBz
dGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUtleXdvcmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SWQsIFN0cmluZ1ZpZXcgcwogICAgIGlmICghdmFsdWVJRCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBpZiAoIXBhcnNpbmdEZXNjcmlwdG9yKSB7Ci0gICAgICAgIGlmICh2
YWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBv
b2w6OnNpbmdsZXRvbigpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1
ZUlEID09IENTU1ZhbHVlSW5pdGlhbCkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpLmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7Ci0gICAgICAgIGlmICh2
YWx1ZUlEID09IENTU1ZhbHVlVW5zZXQpCi0gICAgICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVVbnNldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZUlEID09
IENTU1ZhbHVlUmV2ZXJ0KQotICAgICAgICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xl
dG9uKCkuY3JlYXRlUmV2ZXJ0VmFsdWUoKTsKLSAgICB9Ci0gICAgCisgICAgaWYgKCFwYXJzaW5n
RGVzY3JpcHRvciAmJiBpc0NTU1dpZGVLZXl3b3JkKHZhbHVlSUQpKQorICAgICAgICByZXR1cm4g
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWVJRCk7
CisKICAgICBpZiAoQ1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5k
VmFsdWUocHJvcGVydHlJZCwgdmFsdWVJRCwgY29udGV4dCkpCi0gICAgICAgIHJldHVybiBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZUlEKTsKKyAgICAgICAgcmV0dXJu
IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlSUQp
OwogICAgIHJldHVybiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJJZGlvbXMuaAppbmRleCA4MTc0YzczMmU2ODFkZDdkM2U0MDEwNDE0ZDBjYjAxYTNl
M2M0Y2EzLi5hYTZjMWRmYTgxNjJhOWQ3YWUwZDU1ZWJiY2RmOWM2MWRmNzA1MDk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklkaW9tcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySWRpb21zLmgKQEAgLTU5LDQgKzU5LDE1
IEBAIGJvb2wgaXNOYW1lQ29kZVBvaW50KENoYXJhY3RlclR5cGUgYykKIAogYm9vbCBpc1ZhbHVl
QWxsb3dlZEluTW9kZSh1bnNpZ25lZCBzaG9ydCwgQ1NTUGFyc2VyTW9kZSk7CiAKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc0NTU1dpZGVLZXl3b3JkKENTU1ZhbHVlSUQgdmFsdWVJRCkKK3sKKyAgICBy
ZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUlu
aGVyaXQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVVuc2V0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVS
ZXZlcnQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkQ3VzdG9tSWRlbnRpZmllcihD
U1NWYWx1ZUlEIHZhbHVlSUQpCit7CisgICAgLy8gImRlZmF1bHQiIGlzIG9ic29sZXRlIGFzIGEg
Q1NTLXdpZGUga2V5d29yZCBidXQgaXMgc3RpbGwgbm90IGFsbG93ZWQgYXMgYSBjdXN0b20gaWRl
bnRpZmllci4KKyAgICByZXR1cm4gIWlzQ1NTV2lkZUtleXdvcmQodmFsdWVJRCkgJiYgdmFsdWVJ
RCAhPSBDU1NWYWx1ZURlZmF1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggYTYx
NDkyY2M2NTgyZjgyMGFlZWNiZTNjZDUwMzRhNThkOTNkNzAwNS4uYTg5NjY3ZTg5ODE3ZmY2YmVj
NTFkZDVhZDhjODJhYTYwYzRkNjRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTI1OCwyMCArMjU4LDExIEBAIHN0YXRpYyBSZWZQ
dHI8Q1NTVmFsdWU+IG1heWJlQ29uc3VtZUNTU1dpZGVLZXl3b3JkKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlKQogICAgIGlmICghcmFuZ2VDb3B5LmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZTsKLSAgICBpZiAodmFsdWVJRCA9
PSBDU1NWYWx1ZUluaGVyaXQpCi0gICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpOwotICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NT
VmFsdWVJbml0aWFsKQotICAgICAgICB2YWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCku
Y3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKLSAgICBlbHNlIGlmICh2YWx1ZUlEID09IENT
U1ZhbHVlVW5zZXQpCi0gICAgICAgIHZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5j
cmVhdGVVbnNldFZhbHVlKCk7Ci0gICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVJldmVy
dCkKLSAgICAgICAgdmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZVJldmVy
dFZhbHVlKCk7Ci0gICAgZWxzZQorICAgIGlmICghaXNDU1NXaWRlS2V5d29yZCh2YWx1ZUlEKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByYW5nZSA9IHJhbmdlQ29weTsKLSAgICBy
ZXR1cm4gdmFsdWU7CisgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
SWRlbnRpZmllclZhbHVlKHZhbHVlSUQpOwogfQogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3Bl
cnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGNvbnN0
IENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250
ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwCmluZGV4IDNkNGZmOTQwZTRjZDU0ZTE2ZTBiNTFkNzE4NjIyM2Y3OTA0
ZTYzY2YuLjQ5MWVjNWNkZmQ0ZDQ3ZDQzZTc5YWVmY2YxNDBiNmRjZGY3ZGNlZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVy
cy5jcHAKQEAgLTU5LDExICs1OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNl
IENTU1Byb3BlcnR5UGFyc2VySGVscGVycyB7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NTU1dp
ZGVLZXl3b3JkKENTU1ZhbHVlSUQgaWQpCi17Ci0gICAgcmV0dXJuIGlkID09IENTU1ZhbHVlSW5p
dGlhbCB8fCBpZCA9PSBDU1NWYWx1ZUluaGVyaXQgfHwgaWQgPT0gQ1NTVmFsdWVVbnNldCB8fCBp
ZCA9PSBDU1NWYWx1ZVJldmVydCB8fCBpZCA9PSBDU1NWYWx1ZURlZmF1bHQ7Ci19Ci0KIGJvb2wg
Y29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSkKIHsKICAgICBDU1NQYXJzZXJUb2tlbiB2YWx1ZSA9IHJhbmdlLnBlZWsoKTsKQEAgLTEzNzAs
NyArMTM2NSw3IEBAIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUlkZW50UmFuZ2Uo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1ZhbHVlCiAKIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZUN1c3RvbUlkZW50KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBi
b29sIHNob3VsZExvd2VyY2FzZSkKIHsKLSAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAhPSBJ
ZGVudFRva2VuIHx8IGlzQ1NTV2lkZUtleXdvcmQocmFuZ2UucGVlaygpLmlkKCkpKQorICAgIGlm
IChyYW5nZS5wZWVrKCkudHlwZSgpICE9IElkZW50VG9rZW4gfHwgIWlzVmFsaWRDdXN0b21JZGVu
dGlmaWVyKHJhbmdlLnBlZWsoKS5pZCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
YXV0byBpZGVudGlmaWVyID0gcmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52YWx1
ZSgpOwogICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUN1c3RvbUlk
ZW50KHNob3VsZExvd2VyY2FzZSA/IGlkZW50aWZpZXIuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KSA6IGlkZW50aWZpZXIudG9TdHJpbmcoKSk7CkBAIC0zNjQ4LDcgKzM2NDMsNyBAQCBBdG9tU3Ry
aW5nIGNvbnN1bWVDb3VudGVyU3R5bGVOYW1lSW5QcmVsdWRlKENTU1BhcnNlclRva2VuUmFuZ2Um
IHByZWx1ZGUpCiAgICAgaWYgKCFwcmVsdWRlLmF0RW5kKCkpCiAgICAgICAgIHJldHVybiBBdG9t
U3RyaW5nKCk7CiAgICAgLy8gRW5zdXJlIHRoaXMgdG9rZW4gaXMgYSB2YWxpZCA8Y3VzdG9tLWlk
ZW50Pi4KLSAgICBpZiAobmFtZVRva2VuLnR5cGUoKSAhPSBJZGVudFRva2VuIHx8IGlzQ1NTV2lk
ZUtleXdvcmQobmFtZVRva2VuLmlkKCkpKQorICAgIGlmIChuYW1lVG9rZW4udHlwZSgpICE9IElk
ZW50VG9rZW4gfHwgIWlzVmFsaWRDdXN0b21JZGVudGlmaWVyKG5hbWVUb2tlbi5pZCgpKSkKICAg
ICAgICAgcmV0dXJuIEF0b21TdHJpbmcoKTsKICAgICAvLyBJbiB0aGUgY29udGV4dCBvZiB0aGUg
cHJlbHVkZSBvZiBhbiBAY291bnRlci1zdHlsZSBydWxlLCBhIDxjb3VudGVyLXN0eWxlLW5hbWU+
IG11c3Qgbm90IGJlIGFuIEFTQ0lJCiAgICAgLy8gY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3Ig
ImRlY2ltYWwiIG9yICJkaXNjIi4gTm8gPGNvdW50ZXItc3R5bGUtbmFtZT4sIHByZWx1ZGUgb3Ig
bm90LCBtYXkgYmUgYW4gQVNDSUkKQEAgLTM3MjUsNyArMzcyMCw3IEBAIFN0cmluZyBjb25jYXRl
bmF0ZUZhbWlseU5hbWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiAgICAgICAgIH0KICAg
ICAgICAgYnVpbGRlci5hcHBlbmQocmFuZ2UuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS52
YWx1ZSgpKTsKICAgICB9Ci0gICAgaWYgKCFhZGRlZFNwYWNlICYmIGlzQ1NTV2lkZUtleXdvcmQo
Zmlyc3RUb2tlbi5pZCgpKSkKKyAgICBpZiAoIWFkZGVkU3BhY2UgJiYgIWlzVmFsaWRDdXN0b21J
ZGVudGlmaWVyKGZpcnN0VG9rZW4uaWQoKSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwCmluZGV4IDkyODliYWRlNTI1YWI3N2Q0OWY1NWYwOWY2MGQ0MzA1ZjVjYzBk
ZTQuLjcyZTI3OTlkZDQyZDQ1ZTBhNTY1NmFjMzIwMzEyZDNiYzM3YjE0MDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTI2Niw2ICsyNjYsOSBAQCBzdGF0aWMg
Ym9vbCBmb250V2VpZ2h0SXNCb2xkKENTU1ZhbHVlJiBmb250V2VpZ2h0KQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlPihmb250V2VpZ2h0KTsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUuaXNDU1NXaWRl
S2V5d29yZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBzd2l0Y2ggKHByaW1pdGl2
ZVZhbHVlLnZhbHVlSUQoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRN
TENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRl
ci5tbQppbmRleCBkOTQ0ZDk4NGRjM2Y4ZTE5MzlmMWZjNzQzZjhhOTQwYTE3N2ExZTJlLi4xNjQ3
NjZkYzMyNTM3NWU3ZWIxZjhhNzVkYmFjZDQyMjIxMzBmZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC01ODcsNyArNTg3LDcgQEAgU3Ry
aW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUs
IENTU1Byb3BlcnR5SUQgcHJvcGUKIAogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0g
aW5saW5lU3R5bGVQcm9wZXJ0eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsKICAg
ICAgICAgU3RyaW5nIHJlc3VsdDsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRlZFZhbHVl
KCkpCisgICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAgICAgICAgICAgIGlu
aGVyaXQgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChzdHJpbmdGcm9tQ1NTVmFsdWUoKnZhbHVl
LCByZXN1bHQpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTczNSw3ICs3MzUsNyBA
QCBib29sIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmZsb2F0UHJvcGVydHlWYWx1ZUZvck5vZGUoTm9k
ZSYgbm9kZSwgQ1NTUHJvcGVydHlJRCBwcgogICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVl
ID0gaW5saW5lU3R5bGVQcm9wZXJ0eUZvckVsZW1lbnQoZWxlbWVudCwgcHJvcGVydHlJZCkpIHsK
ICAgICAgICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpICYmIGZsb2F0VmFsdWVG
cm9tUHJpbWl0aXZlVmFsdWUoZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSksIHJl
c3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKHZhbHVlLT5pc0lu
aGVyaXRlZFZhbHVlKCkpCisgICAgICAgIGlmICh2YWx1ZS0+aXNJbmhlcml0VmFsdWUoKSkKICAg
ICAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgIH0KIApAQCAtODc3LDcgKzg3Nyw3IEBAIENv
bG9yIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OmNvbG9yUHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYg
bm9kZSwgQ1NTUHJvcGVydHlJRCBwCiAgICAgaWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBp
bmxpbmVTdHlsZVByb3BlcnR5Rm9yRWxlbWVudChlbGVtZW50LCBwcm9wZXJ0eUlkKSkgewogICAg
ICAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkgJiYgZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KCp2YWx1ZSkuaXNSR0JDb2xvcigpKQogICAgICAgICAgICAgcmV0dXJuIG5v
cm1hbGl6ZWRDb2xvcihkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5jb2xvcigp
LCBpZ25vcmVEZWZhdWx0Q29sb3IsIGVsZW1lbnQpOwotICAgICAgICBpZiAodmFsdWUtPmlzSW5o
ZXJpdGVkVmFsdWUoKSkKKyAgICAgICAgaWYgKHZhbHVlLT5pc0luaGVyaXRWYWx1ZSgpKQogICAg
ICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcAppbmRleCBjNmMzNmFlNjdmNTAzOTcxMzZkNzBmYzFmMWJlMzAwYTRi
MmNmNjM4Li44OWRiODViMzVmZDdjMTIzYzE0ZTRhNDJjYWVlNmYwYWQ4MWQzMjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTQ4NCwyNCArNDg0LDI0IEBA
IFJlZjxTdHlsZVByb3BlcnRpZXM+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZVNoYXJlZENlbGxT
dHlsZSgpIGNvbnN0CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRl
clJpZ2h0V2lkdGgsIENTU1ZhbHVlVGhpbik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJvcmRlckxlZnRTdHlsZSwgQ1NTVmFsdWVTb2xpZCk7CiAgICAgICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGUsIENTU1ZhbHVlU29saWQp
OwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3Nz
VmFsdWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTb2xp
ZEJvcmRlcnNSb3dzT25seToKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyVG9wV2lkdGgsIENTU1ZhbHVlVGhpbik7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVdpZHRoLCBDU1NWYWx1ZVRoaW4pOwogICAgICAgICBz
dHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJUb3BTdHlsZSwgQ1NTVmFsdWVTb2xp
ZCk7CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbVN0
eWxlLCBDU1NWYWx1ZVNvbGlkKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3Bl
cnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJbmhlcml0ZWRWYWx1ZSgpKTsKKyAg
ICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyQ29sb3IsIGNzc1ZhbHVl
UG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVJbmhlcml0KSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU29saWRCb3JkZXJzOgogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlCb3JkZXJXaWR0aCwgY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKDEsIENTU1Vu
aXRUeXBlOjpDU1NfUFgpKTsKICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
Qm9yZGVyU3R5bGUsIGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVT
b2xpZCkpOwotICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xv
ciwgY3NzVmFsdWVQb29sLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCkpOworICAgICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgY3NzVmFsdWVQb29sLmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluaGVyaXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJbnNldEJvcmRlcnM6CiAgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJv
cmRlcldpZHRoLCBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoMSwgQ1NTVW5pdFR5cGU6OkNTU19Q
WCkpOwogICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwg
Y3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUluc2V0KSk7Ci0gICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBv
b2wuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKSk7CisgICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUJvcmRlckNvbG9yLCBjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlSW5oZXJpdCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5vQm9yZGVyczoK
ICAgICAgICAgLy8gSWYgJ3J1bGVzPW5vbmUnIHRoZW4gYWxsb3cgYW55IGJvcmRlcnMgc2V0IGF0
IGNlbGwgbGV2ZWwgdG8gdGFrZSBlZmZlY3QuIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxl
bWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDgxYmFiOTNhNDFiYjZjNGE4OTNkNWI4YjNhZWE2
ZTE4YWVjMTQ3NWQuLmJlYjg5NjdmZGJjZGU0MzI4NTRkMTUzYmE5Y2UyNmM2NzczZTMwZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTYw
Miw3ICs2MDIsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRNYXRjaGVkUHJvcGVy
dGllcyhNYXRjaGVkUHJvcGVydGllcyYmIG1hdGNoZWRQcm9wZQogICAgICAgICAgICAgLy8gYXMg
dGhleSBtaWdodCBvdmVycmlkZSB0aGUgdmFsdWUgaW5oZXJpdGVkIGhlcmUuIEZvciB0aGlzIHJl
YXNvbiB3ZSBkb24ndCBhbGxvdyBkZWNsYXJhdGlvbnMgd2l0aAogICAgICAgICAgICAgLy8gZXhw
bGljaXRseSBpbmhlcml0ZWQgcHJvcGVydGllcyB0byBiZSBjYWNoZWQuCiAgICAgICAgICAgICBj
b25zdCBDU1NWYWx1ZSYgdmFsdWUgPSAqY3VycmVudC52YWx1ZSgpOwotICAgICAgICAgICAgaWYg
KHZhbHVlLmlzSW5oZXJpdGVkVmFsdWUoKSkKKyAgICAgICAgICAgIGlmICh2YWx1ZS5pc0luaGVy
aXRWYWx1ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAg
Ly8gVGhlIHZhbHVlIGN1cnJlbnRDb2xvciBoYXMgaW1wbGljaXRlbHkgdGhlIHNhbWUgc2lkZSBl
ZmZlY3QuIEl0IGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mIGNvbG9yLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1Byb3BlcnR5Q2FzY2FkZS5jcHAKaW5kZXggN2RmN2E3NWFhZDAwOGU5NTlhMDk0NzUzYmZj
ZGUzZjYzMTQ2NjZlYy4uZTI5M2JhNjkzYjA0NTRmNzBhMGM1ZjdkNmEwOTNiMGE2Y2UzMjZhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUHJvcGVydHlDYXNjYWRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qcm9wZXJ0eUNhc2NhZGUuY3BwCkBAIC0xODUsNyArMTg1
LDcgQEAgYm9vbCBQcm9wZXJ0eUNhc2NhZGU6OmFkZE1hdGNoKGNvbnN0IE1hdGNoZWRQcm9wZXJ0
aWVzJiBtYXRjaGVkUHJvcGVydGllcywgQ2FzY2EKICAgICAgICAgaWYgKG1faW5jbHVkZWRQcm9w
ZXJ0aWVzID09IEluY2x1ZGVkUHJvcGVydGllczo6SW5oZXJpdGVkT25seSAmJiAhY3VycmVudC5p
c0luaGVyaXRlZCgpKSB7CiAgICAgICAgICAgICAvLyBJbmhlcml0ZWQgb25seSBtb2RlIGlzIHVz
ZWQgYWZ0ZXIgbWF0Y2hlZCBwcm9wZXJ0aWVzIGNhY2hlIGhpdC4KICAgICAgICAgICAgIC8vIEEg
bWF0Y2ggd2l0aCBhIHZhbHVlIHRoYXQgaXMgZXhwbGljaXRseSBpbmhlcml0ZWQgc2hvdWxkIG5l
dmVyIGhhdmUgYmVlbiBjYWNoZWQuCi0gICAgICAgICAgICBBU1NFUlQoIWN1cnJlbnQudmFsdWUo
KS0+aXNJbmhlcml0ZWRWYWx1ZSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghY3VycmVudC52YWx1
ZSgpLT5pc0luaGVyaXRWYWx1ZSgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAgICAgICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGN1cnJlbnQuaWQoKTsKQEAgLTMw
OCw3ICszMDgsNyBAQCBQcm9wZXJ0eUNhc2NhZGU6OkRpcmVjdGlvbiBQcm9wZXJ0eUNhc2NhZGU6
OnJlc29sdmVEaXJlY3Rpb25BbmRXcml0aW5nTW9kZShEaXJlYwogICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIG1hdGNoZWRQcm9wZXJ0aWVzIDogZGVjbGFyYXRpb25zRm9yQ2FzY2FkZUxldmVsKG1f
bWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZlbCkpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDAsIGNvdW50ID0gbWF0Y2hlZFByb3BlcnRpZXMucHJvcGVydGllcy0+cHJvcGVydHlDb3Vu
dCgpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICAgICAgICAgIGF1dG8gcHJvcGVydHkgPSBt
YXRjaGVkUHJvcGVydGllcy5wcm9wZXJ0aWVzLT5wcm9wZXJ0eUF0KGkpOwotICAgICAgICAgICAg
ICAgIGlmICghcHJvcGVydHkudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAg
ICAgICAgIGlmICghcHJvcGVydHkudmFsdWUoKS0+aXNQcmltaXRpdmVWYWx1ZSgpIHx8IHByb3Bl
cnR5LnZhbHVlKCktPmlzQ1NTV2lkZUtleXdvcmQoKSkKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5pZCgpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdyaXRpbmdNb2RlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQnVpbGRlci5jcHAKaW5kZXggM2JhMmQ5NmVkNzM0MmEwNTQ5OWM3MDcyYmE1NzM2YjYzYjJm
YjE1My4uOWQ2YzZiNDM5OTBhOGE5YmUxMGI2MjI3M2QwNzkyYjk4YmU1OGE5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9pZCBCdWls
ZGVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlJiB2YWx1ZSwgU2Vs
ZWN0b3JDaGVja2VyOjoKICAgICAgICAgY3VzdG9tUHJvcGVydHlSZWdpc3RlcmVkID0gbV9zdGF0
ZS5kb2N1bWVudCgpLmdldENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgpLmdldChuYW1l
KTsKICAgICB9CiAKLSAgICBib29sIGlzSW5oZXJpdCA9IHZhbHVlVG9BcHBseS0+aXNJbmhlcml0
ZWRWYWx1ZSgpIHx8IGN1c3RvbVByb3BlcnR5VmFsdWVJRCA9PSBDU1NWYWx1ZUluaGVyaXQ7Cisg
ICAgYm9vbCBpc0luaGVyaXQgPSB2YWx1ZVRvQXBwbHktPmlzSW5oZXJpdFZhbHVlKCkgfHwgY3Vz
dG9tUHJvcGVydHlWYWx1ZUlEID09IENTU1ZhbHVlSW5oZXJpdDsKICAgICBib29sIGlzSW5pdGlh
bCA9IHZhbHVlVG9BcHBseS0+aXNJbml0aWFsVmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVl
SUQgPT0gQ1NTVmFsdWVJbml0aWFsOwogCiAgICAgYm9vbCBpc1Vuc2V0ID0gdmFsdWVUb0FwcGx5
LT5pc1Vuc2V0VmFsdWUoKSB8fCBjdXN0b21Qcm9wZXJ0eVZhbHVlSUQgPT0gQ1NTVmFsdWVVbnNl
dDsKQEAgLTM2MSw4ICszNjEsOCBAQCBSZWY8Q1NTVmFsdWU+IEJ1aWxkZXI6OnJlc29sdmVWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIENTU1ZhbHVlJiB2YWx1ZSkKICAgICAvLyBJZiB0
aGUgY2FzY2FkZSBoYXMgYWxyZWFkeSBhcHBsaWVkIHRoaXMgaWQsIHRoZW4gd2UgZGV0ZWN0ZWQg
YSBjeWNsZSwgYW5kIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHVuc2V0LgogICAgIGlmICghdmFyaWFi
bGVWYWx1ZSB8fCBtX3N0YXRlLm1fYXBwbGllZFByb3BlcnRpZXMuZ2V0KHByb3BlcnR5SUQpKSB7
CiAgICAgICAgIGlmIChDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlE
KSkKLSAgICAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlu
aGVyaXRlZFZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigp
LmNyZWF0ZUV4cGxpY2l0SW5pdGlhbFZhbHVlKCk7CisgICAgICAgICAgICByZXR1cm4gQ1NTVmFs
dWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShDU1NWYWx1ZUluaGVyaXQpOworICAgICAg
ICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShDU1NWYWx1ZUlu
aXRpYWwpOwogICAgIH0KIAogICAgIHJldHVybiAqdmFyaWFibGVWYWx1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKaW5kZXggNWJjMjY1YTYzN2Q0MjU1MzQzODVh
MGM5YzUyMTg0NjgxOTA5ZDAyYS4uNDIyYTNiOTUxZjBiZjBhMDM1OTljNmQwYTM0MmQ0MDE2N2Vj
N2EwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKQEAgLTg0
LDcgKzg0LDcgQEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgICAgIC8vIFJhdGhl
ciB0aGFuIGludmFzaXZlbHkgbW9kaWZ5aW5nIHRoZSBwYXJzZXIgZm9yIHRoZSBwcm9wZXJ0aWVz
IHRvIGhhdmUgYSBzcGVjaWFsIG1vZGUsIHdlIGNhbiBzaW1wbHkgZGV0ZWN0IHRoZSBlcnJvciBj
b25kaXRpb24gYWZ0ZXItdGhlLWZhY3QgYW5kCiAgICAgICAgICAgICAvLyBhdm9pZCBpdCBleHBs
aWNpdGx5LgogICAgICAgICAgICAgaWYgKGF1dG8gcGFyc2VkVmFsdWUgPSBwcm9wZXJ0aWVzLmdl
dFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJZCkpIHsKLSAgICAgICAgICAgICAgICBpZiAocGFy
c2VkVmFsdWUtPmlzR2xvYmFsS2V5d29yZCgpKQorICAgICAgICAgICAgICAgIGlmIChwYXJzZWRW
YWx1ZS0+aXNDU1NXaWRlS2V5d29yZCgpKQogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVz
LnJlbW92ZVByb3BlcnR5KHByb3BlcnR5SWQpOwogICAgICAgICAgICAgfQogICAgICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>