<?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>217811</bug_id>
          
          <creation_ts>2020-10-16 05:09:30 -0700</creation_ts>
          <short_desc>WebRTC VP9 Decoder should be able to use VTB</short_desc>
          <delta_ts>2020-10-21 10:15:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698533</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 05:09:30 -0700</bug_when>
    <thetext>WebRTC VP9 Decoder should be able to use VTB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698534</commentid>
    <comment_count>1</comment_count>
      <attachid>411558</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 05:15:15 -0700</bug_when>
    <thetext>Created attachment 411558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698537</commentid>
    <comment_count>2</comment_count>
      <attachid>411559</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 05:19:40 -0700</bug_when>
    <thetext>Created attachment 411559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698555</commentid>
    <comment_count>3</comment_count>
      <attachid>411562</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 05:48:56 -0700</bug_when>
    <thetext>Created attachment 411562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698558</commentid>
    <comment_count>4</comment_count>
      <attachid>411563</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-16 06:00:32 -0700</bug_when>
    <thetext>Created attachment 411563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699202</commentid>
    <comment_count>5</comment_count>
      <attachid>411729</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-19 02:35:13 -0700</bug_when>
    <thetext>Created attachment 411729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699203</commentid>
    <comment_count>6</comment_count>
      <attachid>411730</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-19 02:38:12 -0700</bug_when>
    <thetext>Created attachment 411730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699233</commentid>
    <comment_count>7</comment_count>
      <attachid>411742</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-19 06:06:01 -0700</bug_when>
    <thetext>Created attachment 411742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699270</commentid>
    <comment_count>8</comment_count>
      <attachid>411742</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-19 09:09:35 -0700</bug_when>
    <thetext>Comment on attachment 411742
Patch

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

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:81
&gt; +    64, //sizeof(WebKitVP9Decoder),

Is this necessary?

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:65
&gt; +    return nullptr;

Is it worth logging here?

&gt; Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:70
&gt; +    return nullptr;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700197</commentid>
    <comment_count>9</comment_count>
      <attachid>411989</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-21 08:43:44 -0700</bug_when>
    <thetext>Created attachment 411989
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700262</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-21 10:14:30 -0700</bug_when>
    <thetext>Committed r268805: &lt;https://trac.webkit.org/changeset/268805&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411989.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700263</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-21 10:15:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/70534222&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411558</attachid>
            <date>2020-10-16 05:15:15 -0700</date>
            <delta_ts>2020-10-16 05:47:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201016141512.patch</filename>
            <type>text/plain</type>
            <size>46356</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5mOWRj
ZTc2OTY5MjljODk4Mzg3NDU0ZGRjYjM4MzZjMWI0YjYxNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwOgorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tOgorICAgICAgICAod2VicnRjOjpjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
YXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06CisgICAgICAg
ICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1lXSk6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRXaXRo
SDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkgY3JlYXRlRGVjb2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
bToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29k
ZWNzV2l0aEgyNjU6dnA5Ol0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaDogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5tbTogQWRkZWQuCisgICAgICAgIChSVENGcmFtZURlY29kZVBhcmFt
czo6UlRDRnJhbWVEZWNvZGVQYXJhbXMpOgorICAgICAgICAoVlA5QnVmZmVyVG9DTVNhbXBsZUJ1
ZmZlcik6CisgICAgICAgICh2cDlEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2spOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlY29kZTptaXNzaW5nRnJhbWVzOmNvZGVjU3BlY2lm
aWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGRlY29kZURhdGE6c2l6ZTp0aW1lU3RhbXA6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IHNldEVycm9yOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgcmVsZWFzZURl
Y29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGNvbmZpZ3Vy
ZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJW
VEJWUDkgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tOgorICAgICAgICAo
d2VicnRjOjpPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKToKKyAg
ICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0x
MyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGxl
ZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRjOGRlNGFkYTZkMWNhYjEyZjFiMWViM2UyZjRlN2E0ZjkxNGY3MmYuLmVkYmVkM2ZhNGM2
MWIxMDBmNzMxMmU0NzIzMjhhYTIyMTYyMGNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0aW5nIHN1cHBv
cnQgdG8gZW5hYmxlIFZQOSBkZWNvZGluZyB0aHJvdWdoIFZUQiBmb3IgV2ViUlRDLgorCisgICAg
ICAgIFRlc3Q6IHdlYnJ0Yy92cDktdnRiLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kZXJGYWN0b3J5
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTE2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTWVk
aWFQbGF5ZXI6Om1fdmlzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4IGUzZTYxMWEx
MTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRjYWIzYzE2MDA0MWI5Y2I4
ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAgLTEwNCw3ICsx
MDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZhY3RvcnlFdgog
X19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3ZlQ2FuZGlkYXRl
c0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxvY2F0b3JJUzRf
RUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZlcl91cmxFdgog
X19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRjMjZjcmVhdGVX
ZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKK19fWk42
d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdl
YktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVXZWJLaXRFbmNv
ZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42d2VicnRjMjlz
ZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0SDI2NExvd0xh
dGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXgg
ZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4uNjFlYTY2ZGNhYjNjMTYw
MDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4
cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGluQXVkaW9FbmNv
ZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlMTZS
ZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRpZGF0ZUVOUzFf
OWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUludGVyZmFjZTEw
c2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNFYgotX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2Vi
S2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3ZWJydGMyNmNy
ZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQog
X19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRj
MzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4
cAppbmRleCBiOWQ2MjU5NzA4ZTkwODg5ZGUxZmI2M2FkYTBmNGUwYjczYzVhN2QxLi40ZWVkZDZl
ZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0aW5BdWRpb0Vu
Y29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2Ux
NlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2FuZGlkYXRlRU5T
MV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRlSW50ZXJmYWNl
MTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1c0ViCi1fX1pO
NndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlX
ZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBX
ZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pONndlYnJ0YzI2
Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlF
CiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgogX19aTjZ3ZWJy
dGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNv
ZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXREZWNvZGVyLm1tCmluZGV4IGQwNWQwNjIyNDljNmFhZTUxYzlhNjAxNThmMzEy
ZWMzNzJkYWYzNWMuLjI4N2UxOTZmMDFiOGQ1MGFkMzAwY2E2NTY0YThkNGNkMGExMTI1ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9X
ZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KQEAgLTE2Nyw5ICsxNjcs
OSBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0
b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29ucwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFJlbW90ZVZpZGVvRGVjb2Rlcj4oaWRlbnRpZmllcik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KFdl
YktpdEgyNjUgc3VwcG9ydHNIMjY1LCBXZWJLaXRWUDkgc3VwcG9ydHNWUDkpCitzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFj
dG9yeShXZWJLaXRIMjY1IHN1cHBvcnRzSDI2NSwgV2ViS2l0VlA5IHN1cHBvcnRzVlA5LCBXZWJL
aXRWUDlWVEIgc3VwcG9ydHNWUDlWVEIpCiB7Ci0gICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBP
YmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZh
Y3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogc3VwcG9ydHNIMjY1ID09IFdlYktpdEgyNjU6Ok9u
IHZwOTogc3VwcG9ydHNWUDkgPT0gV2ViS2l0VlA5OjpPbl0pOworICAgIGF1dG8gaW50ZXJuYWxG
YWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IHN1cHBvcnRzSDI2NSA9PSBXZWJL
aXRIMjY1OjpPbiB2cDk6IHN1cHBvcnRzVlA5ID09IFdlYktpdFZQOTo6T24gdnA5VlRCOiBzdXBw
b3J0c1ZQOVZUQiA9PSBXZWJLaXRWUDlWVEI6Ok9uXSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNh
bGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7
CiAgICAgcmV0dXJuIGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oCmluZGV4IDUwOWNkZjU0NTNlMzIyNDBlMWIxODQyZmJhZTQ1MWE2NGU2
N2ZkMzQuLjA3ZDVjZTM3NGJmNjI4MGJiYzdhMmNlNGUwZTAwMjkxYjJiYmJlOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQv
V2ViS2l0VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaApAQCAtNDIsOSArNDIsMTAgQEAg
Y2xhc3MgVmlkZW9GcmFtZTsKIAogZW51bSBjbGFzcyBXZWJLaXRIMjY1IHsgT2ZmLCBPbiB9Owog
ZW51bSBjbGFzcyBXZWJLaXRWUDkgeyBPZmYsIE9uIH07CitlbnVtIGNsYXNzIFdlYktpdFZQOVZU
QiB7IE9mZiwgT24gfTsKIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFj
dG9yeT4gY3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5KTsK
LXN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktp
dERlY29kZXJGYWN0b3J5KFdlYktpdEgyNjUsIFdlYktpdFZQOSk7CitzdGQ6OnVuaXF1ZV9wdHI8
d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShX
ZWJLaXRIMjY1LCBXZWJLaXRWUDksIFdlYktpdFZQOVZUQik7CiAKIHZvaWQgc2V0QXBwbGljYXRp
b25TdGF0dXMoYm9vbCBpc0FjdGl2ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRl
b0RlY29kZXIubW0KaW5kZXggZGNlNDc5Yzg5MDkxMTNmOTFhYmE2NzdhZTJmNzMwZjIyYTZlNzRi
MC4uMmI0YWNiOTFiNDVjNjEyYTkwNTA5ZmY4OGE3ZTFhOWNhMWY4MTU0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3Zp
ZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVj
L1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0KQEAgLTU0LDcgKzU0LDkgQEAKIH0KIAog
LSAoTlNTdHJpbmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworI2lmICFkZWZpbmVkKFdFQlJUQ19X
RUJLSVRfQlVJTEQpCiAgIFJUQ19OT1RSRUFDSEVEKCk7CisjZW5kaWYKICAgcmV0dXJuIG5pbDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eS5oCmluZGV4IGUyODIwYjIzMDA5ZTlkY2VkZDE0NDc5ZjFhNWYwOTBhNTYxZDQyYjIuLjI0YTFk
NjNjZjczNTZjM2E3MWRjOTJlZTU2ZTcwOGEzNTFlMDQzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKQEAgLTIxLDcgKzIxLDcgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFJUQ19PQkpDX0VYUE9SVAogX19hdHRyaWJ1dGVfXygo
b2JqY19ydW50aW1lX25hbWUoIldLX1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IikpKQog
QGludGVyZmFjZSBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSA6IE5TT2JqZWN0IDxSVENW
aWRlb0RlY29kZXJGYWN0b3J5PgotLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRIMjY1
IHZwOTooYm9vbClzdXBwb3J0c1ZQOTsKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0
SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDkgdnA5VlRCOihib29sKXN1cHBvcnRzVlA5VlRCOwog
QGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
RGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQppbmRleCBlNWY0YTIwNDdhZDU5NjZjMDNkYjE2
NTcwZDEyMzllNjU3ZjNiOGE3Li41MTI5YzkwZWQwYzIzZjc2ZmRkNTQ1NWU3Y2Q2YWY1ZDQ0YWVj
ODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeS5tCkBAIC0xNywyMyArMTcsMjkgQEAKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9Db2RlY0lu
Zm8uaCIKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZQOS5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5
LmgiCiAjZW5kaWYKICNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQogI2ltcG9ydCAiUlRD
SDI2NVByb2ZpbGVMZXZlbElkLmgiCiAjaW1wb3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCiAj
ZW5kaWYKIAorI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgorCiBAaW1wbGVt
ZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgewogICBib29sIF9zdXBwb3J0
c0gyNjU7CiAgIGJvb2wgX3N1cHBvcnRzVlA5OworICBib29sIF9zdXBwb3J0c1ZQOVZUQjsKIH0K
IAotLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRzSDI2NSB2cDk6KGJvb2wpc3VwcG9y
dHNWUDkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBwb3J0c1ZQOVZUQgogewogICBzZWxmID0gW3N1cGVy
IGluaXRdOwogICBpZiAoc2VsZikgewogICAgICAgX3N1cHBvcnRzSDI2NSA9IHN1cHBvcnRzSDI2
NTsKICAgICAgIF9zdXBwb3J0c1ZQOSA9IHN1cHBvcnRzVlA5OworICAgICAgX3N1cHBvcnRzVlA5
VlRCID0gc3VwcG9ydHNWUDkgJiYgKHN1cHBvcnRzVlA5VlRCIHx8IFZUSXNIYXJkd2FyZURlY29k
ZVN1cHBvcnRlZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpKTsKKzsKICAgfQogICByZXR1cm4gc2Vs
ZjsKIH0KQEAgLTYxLDYgKzY3LDEyIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0
c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9D
b2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NV07CiAKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICBpZiAoX3N1cHBvcnRz
VlA5KSB7CisgICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJ
bmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKKyAgICBbY29k
ZWNzIGFkZE9iamVjdDp2cDlJbmZvXTsKKyAgfQorI2VuZGlmCiAgIFtjb2RlY3MgYWRkT2JqZWN0
OmNvbnN0cmFpbmVkSGlnaEluZm9dOwogICBbY29kZWNzIGFkZE9iamVjdDpjb25zdHJhaW5lZEJh
c2VsaW5lSW5mb107CiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKQEAgLTcwLDEyICs4
Miw2IEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5CiAgIH0KICNlbmRpZgogICBbY29kZWNzIGFkZE9iamVjdDp2cDhJbmZvXTsKLSNp
ZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQotICBpZiAoX3N1cHBvcnRzVlA5KSB7Ci0gICAgUlRD
VmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0
V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKLSAgICBbY29kZWNzIGFkZE9iamVjdDp2
cDlJbmZvXTsKLSAgfQotI2VuZGlmCiAKICAgcmV0dXJuIGNvZGVjczsKIH0KQEAgLTkxLDcgKzk3
LDExIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5CiAjZW5kaWYKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2Ug
aWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsK
LSAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAgICAgIGlmIChf
c3VwcG9ydHNWUDlWVEIpIHsKKyAgICAgICAgcmV0dXJuIFtbUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGFsbG9jXSBpbml0XTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBbUlRDVmlkZW9E
ZWNvZGVyVlA5IHZwOURlY29kZXJdOworICAgICAgfQogI2VuZGlmCiAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCmluZGV4IDlmZmYw
MmRmMDE1MzVhNzQ4ODMyODFjNTQ4NWNhM2ZmNDk3YWZmNmMuLjQ5ZGYyY2M3N2MzMDczMTk3OTI2
M2YwNzIyYjg4ZDFiZWI1ZWFiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KQEAgLTYzLDYgKzYzLDEzIEBAIC0gKGlkKWluaXRXaXRo
SDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICAgTlNNdXRh
YmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CiAKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQorICBpZiAoc3VwcG9ydHNWUDkpIHsKKyAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mbyA9
IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1Zw
OU5hbWVdOworICAgIFtjb2RlY3MgYWRkT2JqZWN0OnZwOUluZm9dOworICB9CisjZW5kaWYKKwog
ICBbY29kZWNzIGFkZE9iamVjdDpjb25zdHJhaW5lZEhpZ2hJbmZvXTsKICAgW2NvZGVjcyBhZGRP
YmplY3Q6Y29uc3RyYWluZWRCYXNlbGluZUluZm9dOwogI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxF
X0gyNjUpCkBAIC03NSwxMyArODIsNiBAQCAtIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9y
dHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogICBSVENWaWRlb0NvZGVjSW5mbyAqdnA4SW5m
byA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2Rl
Y1ZwOE5hbWVdOwogICBbY29kZWNzIGFkZE9iamVjdDp2cDhJbmZvXTsKIAotI2lmIGRlZmluZWQo
UlRDX0VOQUJMRV9WUDkpCi0gIGlmIChzdXBwb3J0c1ZQOSkgewotICAgIFJUQ1ZpZGVvQ29kZWNJ
bmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtS
VENWaWRlb0NvZGVjVnA5TmFtZV07Ci0gICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb107Ci0g
IH0KLSNlbmRpZgotCiAgIHJldHVybiBjb2RlY3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBj
NDA0MzZkMzdjZTQ0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1w
b3J0ICJSVENWaWRlb0RlY29kZXIuaCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9f
KChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVy
ZmFjZSBSVENWaWRlb0RlY29kZXJWVEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgor
LSAoTlNJbnRlZ2VyKWRlY29kZURhdGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZToo
c2l6ZV90KXNpemUKKyAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJjYmU3
MDU5ODIyY2M1M2M0ZDIyYzliNGEyY2I1Y2NjMDUyZDEzOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICovCisKKy8qCisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hs
eSBiYXNlZCBvbiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5LmgiCisKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1w
b3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlk
ZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0
ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1w
b3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKwor
I2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dn
aW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhh
dCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUg
aXQgYWdhaW4KKy8vIGluIHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVj
b2RlUGFyYW1zIHsKKyAgUlRDRnJhbWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJh
Y2sgY2IsIGludDY0X3QgdHMpIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJU
Q1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307
CisKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9y
OihPU1N0YXR1cyllcnJvcjsKK0BlbmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9D
TVNhbXBsZUJ1ZmZlcihjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxv
Y2tCdWZmZXJSZWYgbmV3X2Jsb2NrX2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1
ZmZlcl9zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NN
QmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVk
Q0YobmV3X2Jsb2NrX2J1ZmZlcik7CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVy
UmVwbGFjZURhdGFCeXRlcyhidWZmZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3Np
emUpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVfYnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51
bGxwdHIsIG51bGxwdHIsIHZpZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwg
JnNhbXBsZV9idWZmZXIpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNh
bXBsZV9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQg
VmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5
RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRD
RnJhbWVEZWNvZGVQYXJhbXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
UlRDRnJhbWVEZWNvZGVQYXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKKyAgICAgIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENW
aWRlb0RlY29kZXJWVEJWUDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0
YXR1c107CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUu
IFN0YXR1czogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZm
ZXIgKmZyYW1lQnVmZmVyID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVs
QnVmZmVyOmltYWdlQnVmZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAg
ICAgIFtbUlRDVmlkZW9GcmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlv
bl8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdl
dFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2Rl
ZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJh
bXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50
YXRpb24gUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIF92aWRlb0Zvcm1hdDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVz
c2lvblNlc3Npb247CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NT
dGF0dXMgX2Vycm9yOworICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQor
CistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25d
OworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0
YXJ0RGVjb2RlV2l0aE51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJu
IFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5j
b2RlZEltYWdlICopaW5wdXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3Np
bmdGcmFtZXMKKyAgICBjb2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVj
aWZpY0luZm8+KWluZm8KKyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1l
TXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2Uu
ZnJhbWVUeXBlID09IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9
IGlucHV0SW1hZ2UuZW5jb2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5j
b2RlZEhlaWdodDsKKyAgfQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilp
bnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGlt
ZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVE
YXRhOihjb25zdCB1aW50OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAg
ICAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZh
aWxlZC4iOworICAgIF9lcnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CisgIH0KKworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24gPSBudWxscHRyOworICBpZiAobm9FcnIgIT0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSwgX3dp
ZHRoLCBfaGVpZ2h0LCBudWxscHRyLCAmZm9ybWF0RGVzY3JpcHRpb24pKQorICAgIHJldHVybiBX
RUJSVENfVklERU9fQ09ERUNfRVJST1I7CisKKyAgcnRjOjpTY29wZWRDRlR5cGVSZWY8Q01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmPiBpbnB1dEZvcm1hdCA9IHJ0Yzo6U2NvcGVkQ0YoZm9ybWF0
RGVzY3JpcHRpb24pOworICBpZiAoaW5wdXRGb3JtYXQpIHsKKyAgICAvLyBDaGVjayBpZiB0aGUg
dmlkZW8gZm9ybWF0IGhhcyBjaGFuZ2VkLCBhbmQgcmVpbml0aWFsaXplIGRlY29kZXIgaWYKKyAg
ICAvLyBuZWVkZWQuCisgICAgaWYgKCFDTUZvcm1hdERlc2NyaXB0aW9uRXF1YWwoaW5wdXRGb3Jt
YXQuZ2V0KCksIF92aWRlb0Zvcm1hdCkpIHsKKyAgICAgIFtzZWxmIHNldFZpZGVvRm9ybWF0Omlu
cHV0Rm9ybWF0LmdldCgpXTsKKyAgICAgIGludCByZXNldERlY29tcHJlc3Npb25TZXNzaW9uRXJy
b3IgPSBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXTsKKyAgICAgIGlmIChyZXNldERl
Y29tcHJlc3Npb25TZXNzaW9uRXJyb3IgIT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAg
ICAgIHJldHVybiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uRXJyb3I7CisgICAgICB9CisgICAg
fQorICB9CisgIGlmICghX3ZpZGVvRm9ybWF0KSB7CisgICAgLy8gV2UgcmVjZWl2ZWQgYSBmcmFt
ZSBidXQgd2UgZG9uJ3QgaGF2ZSBmb3JtYXQgaW5mb3JtYXRpb24gc28gd2UgY2FuJ3QKKyAgICAv
LyBkZWNvZGUgaXQuCisgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGFmdGVyIGJhY2tncm91bmRpbmcu
IFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIG5leHQKKyAgICAvLyBzcHMvcHBzIGJlZm9yZSB3ZSBj
YW4gcmVzdW1lIHNvIHdlIHJlcXVlc3QgYSBrZXlmcmFtZSBieSByZXR1cm5pbmcgYW4KKyAgICAv
LyBlcnJvci4KKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJNaXNzaW5nIHZpZGVvIGZvcm1h
dC4gRnJhbWUgd2l0aCBzcHMvcHBzIHJlcXVpcmVkLiI7CisgICAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19FUlJPUjsKKyAgfQorICBhdXRvIHNhbXBsZUJ1ZmZlciA9IHJ0Yzo6U2NvcGVkQ0Yo
VlA5QnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihkYXRhLCBzaXplLCBfdmlkZW9Gb3JtYXQpKTsKKyAg
aWYgKCFzYW1wbGVCdWZmZXIpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9S
OworICB9CisKKyAgVlREZWNvZGVGcmFtZUZsYWdzIGRlY29kZUZsYWdzID0ga1ZURGVjb2RlRnJh
bWVfRW5hYmxlQXN5bmNocm9ub3VzRGVjb21wcmVzc2lvbjsKKyAgc3RkOjp1bmlxdWVfcHRyPFJU
Q0ZyYW1lRGVjb2RlUGFyYW1zPiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJhbWVEZWNvZGVQYXJh
bXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgdGltZVN0YW1wKSk7
CisgIE9TU3RhdHVzIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSgK
KyAgICAgIF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwgc2FtcGxlQnVmZmVyLmdldCgpLCBkZWNvZGVG
bGFncywgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyNpZiBkZWZpbmVk
KFdFQlJUQ19JT1MpCisgIC8vIFJlLWluaXRpYWxpemUgdGhlIGRlY29kZXIgaWYgd2UgaGF2ZSBh
biBpbnZhbGlkIHNlc3Npb24gd2hpbGUgdGhlIGFwcCBpcworICAvLyBhY3RpdmUgb3IgZGVjb2Rl
ciBtYWxmdW5jdGlvbnMgYW5kIHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4KKyAgaWYgKChzdGF0
dXMgPT0ga1ZUSW52YWxpZFNlc3Npb25FcnIgfHwgc3RhdHVzID09IGtWVFZpZGVvRGVjb2Rlck1h
bGZ1bmN0aW9uRXJyKSAmJgorICAgICAgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0g
PT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiRmFp
bGVkIHRvIGRlY29kZSBmcmFtZSB3aXRoIGNvZGU6ICIgPDwgc3RhdHVzCisgICAgICAgICAgICAg
ICAgICAgICA8PCAiIHJldHJ5aW5nIGRlY29kZSBhZnRlciBkZWNvbXByZXNzaW9uIHNlc3Npb24g
cmVzZXQiOworICAgIGZyYW1lRGVjb2RlUGFyYW1zLnJlc2V0KG5ldyBSVENGcmFtZURlY29kZVBh
cmFtcyhfY2FsbGJhY2ssIHRpbWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZURGVjb21wcmVzc2lv
blNlc3Npb25EZWNvZGVGcmFtZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1w
bGVCdWZmZXIsIGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxw
dHIpOworICB9CisjZW5kaWYKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBzdGF0
dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICByZXR1cm4g
V0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKXNldENhbGxiYWNrOihSVENWaWRl
b0RlY29kZXJDYWxsYmFjayljYWxsYmFjayB7CisgIF9jYWxsYmFjayA9IGNhbGxiYWNrOworfQor
CistICh2b2lkKXNldEVycm9yOihPU1N0YXR1cyllcnJvciB7CisgIF9lcnJvciA9IGVycm9yOwor
fQorCistIChOU0ludGVnZXIpcmVsZWFzZURlY29kZXIgeworICAvLyBOZWVkIHRvIGludmFsaWRh
dGUgdGhlIHNlc3Npb24gc28gdGhhdCBjYWxsYmFja3Mgbm8gbG9uZ2VyIG9jY3VyIGFuZCBpdAor
ICAvLyBpcyBzYWZlIHRvIG51bGwgb3V0IHRoZSBjYWxsYmFjay4KKyAgW3NlbGYgZGVzdHJveURl
Y29tcHJlc3Npb25TZXNzaW9uXTsKKyAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6bnVsbHB0cl07Cisg
IF9jYWxsYmFjayA9IG51bGxwdHI7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9
CisKKyNwcmFnbWEgbWFyayAtIFByaXZhdGUKKworLSAoaW50KXJlc2V0RGVjb21wcmVzc2lvblNl
c3Npb24geworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworCisgIC8vIE5l
ZWQgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IFNQUyB0byBpbml0aWFsaXplIGRlY29kZXIuCisgIGlm
ICghX3ZpZGVvRm9ybWF0KSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKKyAg
fQorCisgIC8vIFNldCBrZXlzIGZvciBPcGVuR0wgYW5kIElPU3VyZmFjZSBjb21wYXRpYmlsdHks
IHdoaWNoIG1ha2VzIHRoZSBlbmNvZGVyCisgIC8vIGNyZWF0ZSBwaXhlbCBidWZmZXJzIHdpdGgg
R1BVIGJhY2tlZCBtZW1vcnkuIFRoZSBpbnRlbnQgaGVyZSBpcyB0byBwYXNzCisgIC8vIHRoZSBw
aXhlbCBidWZmZXJzIGRpcmVjdGx5IHNvIHdlIGF2b2lkIGEgdGV4dHVyZSB1cGxvYWQgbGF0ZXIg
ZHVyaW5nCisgIC8vIHJlbmRlcmluZy4gVGhpcyBjdXJyZW50bHkgaXMgbW9vdCBiZWNhdXNlIHdl
IGFyZSBjb252ZXJ0aW5nIGJhY2sgdG8gYW4KKyAgLy8gSTQyMCBmcmFtZSBhZnRlciBkZWNvZGUs
IGJ1dCBldmVudHVhbGx5IHdlIHdpbGwgYmUgYWJsZSB0byBwbHVtYgorICAvLyBDVlBpeGVsQnVm
ZmVycyBkaXJlY3RseSB0byB0aGUgcmVuZGVyZXIuCisgIC8vIFRPRE8odGtjaGluKTogTWF5YmUg
b25seSBzZXQgT3BlbkdML0lPU3VyZmFjZSBrZXlzIGlmIHdlIGtub3cgdGhhdCB0aGF0CisgIC8v
IHdlIGNhbiBwYXNzIENWUGl4ZWxCdWZmZXJzIGFzIG5hdGl2ZSBoYW5kbGVzIGluIGRlY29kZXIg
b3V0cHV0LgorICBzdGF0aWMgc2l6ZV90IGNvbnN0IGF0dHJpYnV0ZXNTaXplID0gMzsKKyAgQ0ZU
eXBlUmVmIGtleXNbYXR0cmlidXRlc1NpemVdID0geworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykK
KyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTEVTQ29tcGF0aWJpbGl0eUtleSwKKyNlbGlmIGRlZmlu
ZWQoV0VCUlRDX01BQykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXks
CisjZW5kaWYKKyAgICBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXksCisgICAg
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkKKyAgfTsKKyAgQ0ZEaWN0aW9uYXJ5UmVm
IGlvU3VyZmFjZVZhbHVlID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShudWxscHRyLCBudWxscHRy
LCAwKTsKKyAgaW50NjRfdCBudjEydHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4
QmlQbGFuYXJGdWxsUmFuZ2U7CisgIENGTnVtYmVyUmVmIHBpeGVsRm9ybWF0ID0gQ0ZOdW1iZXJD
cmVhdGUobnVsbHB0ciwga0NGTnVtYmVyTG9uZ1R5cGUsICZudjEydHlwZSk7CisgIENGVHlwZVJl
ZiB2YWx1ZXNbYXR0cmlidXRlc1NpemVdID0ge2tDRkJvb2xlYW5UcnVlLCBpb1N1cmZhY2VWYWx1
ZSwgcGl4ZWxGb3JtYXR9OworICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9IENyZWF0ZUNG
VHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCBhdHRyaWJ1dGVzU2l6ZSk7CisgIGlmIChpb1N1
cmZhY2VWYWx1ZSkgeworICAgIENGUmVsZWFzZShpb1N1cmZhY2VWYWx1ZSk7CisgICAgaW9TdXJm
YWNlVmFsdWUgPSBudWxscHRyOworICB9CisgIGlmIChwaXhlbEZvcm1hdCkgeworICAgIENGUmVs
ZWFzZShwaXhlbEZvcm1hdCk7CisgICAgcGl4ZWxGb3JtYXQgPSBudWxscHRyOworICB9CisgIFZU
RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrUmVjb3JkIHJlY29yZCA9IHsKKyAgICAgIHZwOURl
Y29tcHJlc3Npb25PdXRwdXRDYWxsYmFjaywgKF9fYnJpZGdlIHZvaWQgKilzZWxmLAorICB9Owor
ICBPU1N0YXR1cyBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKAorICAgICAg
bnVsbHB0ciwgX3ZpZGVvRm9ybWF0LCBudWxscHRyLCBhdHRyaWJ1dGVzLCAmcmVjb3JkLCAmX2Rl
Y29tcHJlc3Npb25TZXNzaW9uKTsKKyAgQ0ZSZWxlYXNlKGF0dHJpYnV0ZXMpOworICBpZiAoc3Rh
dHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVh
dGUgZGVjb21wcmVzc2lvbiBzZXNzaW9uOiAiIDw8IHN0YXR1czsKKyAgICBbc2VsZiBkZXN0cm95
RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJS
T1I7CisgIH0KKyAgW3NlbGYgY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb25dOworCisgIHJl
dHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpY29uZmlndXJlRGVjb21w
cmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNLKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7Cisj
aWYgZGVmaW5lZChXRUJSVENfSU9TKQorICBWVFNlc3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVz
c2lvblNlc3Npb24sIGtWVERlY29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9v
bGVhblRydWUpOworI2VuZGlmCit9CisKKy0gKHZvaWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNz
aW9uIHsKKyAgaWYgKF9kZWNvbXByZXNzaW9uU2Vzc2lvbikgeworI2lmIGRlZmluZWQoV0VCUlRD
X1dFQktJVF9CVUlMRCkKKyAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJv
bm91c0ZyYW1lcyhfZGVjb21wcmVzc2lvblNlc3Npb24pOworI2Vsc2UKKyNpZiBkZWZpbmVkKFdF
QlJUQ19JT1MpCisgICAgaWYgKFtVSURldmljZSBpc0lPUzExT3JMYXRlcl0pIHsKKyAgICAgIFZU
RGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9kZWNvbXByZXNz
aW9uU2Vzc2lvbik7CisgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICBWVERlY29tcHJlc3Npb25T
ZXNzaW9uSW52YWxpZGF0ZShfZGVjb21wcmVzc2lvblNlc3Npb24pOworICAgIENGUmVsZWFzZShf
ZGVjb21wcmVzc2lvblNlc3Npb24pOworICAgIF9kZWNvbXByZXNzaW9uU2Vzc2lvbiA9IG51bGxw
dHI7CisgIH0KK30KKworLSAodm9pZClzZXRWaWRlb0Zvcm1hdDooQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmKXZpZGVvRm9ybWF0IHsKKyAgaWYgKF92aWRlb0Zvcm1hdCA9PSB2aWRlb0Zvcm1h
dCkgeworICAgIHJldHVybjsKKyAgfQorICBpZiAoX3ZpZGVvRm9ybWF0KSB7CisgICAgQ0ZSZWxl
YXNlKF92aWRlb0Zvcm1hdCk7CisgIH0KKyAgX3ZpZGVvRm9ybWF0ID0gdmlkZW9Gb3JtYXQ7Cisg
IGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJldGFpbihfdmlkZW9Gb3JtYXQpOworICB9Cit9
CisKKy0gKE5TU3RyaW5nICopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9U
b29sYm94IjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29i
amNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCmluZGV4IDJjYTZkMGVhNjk4YmM0Zjg5MTk2YTIx
YjQyOWQzZjc3OGJlMjViZDguLjFjZjk0OWRjMTdhM2JjMDc3ZWRlNDI4YWM4N2ZkZDhkYmIxY2Zm
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQpAQCAtMTAwLDcgKzEwMCwxMSBAQCBz
dGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3Jl
YXRlVmlkZW9EZWNvZGVyKAogICAgICAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlz
S2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgogICAgICAgLy8gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3ODIuCiAgICAgICAvLyBpZiAo
W2RlY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciBjbGFz
c11dKSB7Ci0gICAgICBpZiAoW2NvZGVjTmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2NvZGVjTmFt
ZSBpc0VxdWFsOkAiVlA5Il0pIHsKKyNpZiAhZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQor
ICAgICAgICBpZiAoW2NvZGVjTmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2NvZGVjTmFtZSBpc0Vx
dWFsOkAiVlA5Il0pIHsKKyNlbHNlCisgICAgICAgIGlmICghW2RlY29kZXIuaW1wbGVtZW50YXRp
b25OYW1lIGlzRXF1YWw6QCJWaWRlb1Rvb2xib3giXSkgeworI2VuZGlmCiAgICAgICAgIHJldHVy
biBbKFJUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgKilkZWNvZGVyIHJlbGVhc2VXcmFwcGVk
RGVjb2Rlcl07CiAgICAgICB9IGVsc2UgewogICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PE9iakNWaWRlb0RlY29kZXI+KG5ldyBPYmpDVmlkZW9EZWNvZGVyKGRlY29kZXIpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZTRhNTM4MWY4NzAwZDRiZTNjMTNlMzAwMjMy
MjI3YmJjNmMxMDgwLi5hMGIxN2NmY2E5OTE5MDg5ZWI1NDliYmUwMmNlOGJmZWNkNjNiYmQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndl
YnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OSw2ICs4OSw3IEBACiAJCTQxMjk5
QjkyMjEyNzM2N0IwMEIzNDE0QiAvKiBpc2FjX3ZhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlCOEYyMTI3MzY3QjAwQjM0MTRCIC8qIGlzYWNf
dmFkLmggKi87IH07CiAJCTQxMjk5QjkzMjEyNzM2N0IwMEIzNDE0QiAvKiBwaXRjaF9maWx0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjk5Qjkw
MjEyNzM2N0IwMEIzNDE0QiAvKiBwaXRjaF9maWx0ZXIuaCAqLzsgfTsKIAkJNDEyOTlCOTcyMTI3
MzY5MTAwQjM0MTRCIC8qIGZha2VfbmV0d29ya19waXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5OUI5NTIxMjczNjkxMDBCMzQxNEIgLyogZmFr
ZV9uZXR3b3JrX3BpcGUuaCAqLzsgfTsKKwkJNDEyRkY5MzQyNTM5Qjc2NDAwMURGMDM2IC8qIFJU
Q1ZpZGVvRGVjb2RlclZUQlZQOS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMkZGOTMyMjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJW
VEJWUDkubW0gKi87IH07CiAJCTQxMzA5MUYzMUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9f
c3RyZWFtX3JlY2VpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTMwOTFGMTFFRjhDRjkxMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNl
aXZlci5oICovOyB9OwogCQk0MTMwOTFGNDFFRjhDRjkyMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0
cmVhbV9yZWNlaXZlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMzA5MUYyMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2Vp
dmVyLmNjICovOyB9OwogCQk0MTMwOTFGQjFFRjhDRkY4MDA3NTdDNTUgLyogYnVpbHRpbl9hdWRp
b19lbmNvZGVyX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19lbmNv
ZGVyX2ZhY3RvcnkuY2MgKi87IH07CkBAIC0xNDIyLDcgKzE0MjMsNiBAQAogCQk0MTc5NTNCODIx
Njk4MjQyMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0IwMjE2OTgyNDAwMDI4
MjY2QiAvKiBSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NC5tICovOyB9OwogCQk0MTc5NTNCOTIx
Njk4MjQyMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0IxMjE2OTgyNDAwMDI4
MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovOyB9OwogCQk0MTc5NTNCQTIx
Njk4MjQyMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0IyMjE2OTgy
NDEwMDI4MjY2QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQrUHJpdmF0ZS5oICovOyB9Owot
CQk0MTc5NTNCQjIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1
M0IzMjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oICov
OyB9OwogCQk0MTc5NTNCQzIxNjk4MjRCMDAyODI2NkIgLyogaGVscGVycy5jYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTUyMUQzMjE2OTgyMUYwMDBB
QkFGNyAvKiBoZWxwZXJzLmNjICovOyB9OwogCQk0MTc5NTNCRDIxNjk4MjRCMDAyODI2NkIgLyog
aGVscGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE2MjI1RjUyMTY5ODFGNDAwQTkxQzlCIC8qIGhlbHBlcnMuaCAqLzsgfTsKIAkJNDE3OTUzQkYy
MTY5ODI0QjAwMjgyNjZCIC8qIG5hbHVfcmV3cml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTUyMUQ1MjE2OTgyMjAwMDBBQkFGNyAvKiBuYWx1
X3Jld3JpdGVyLmggKi87IH07CkBAIC00MzQ1LDYgKzQzNDUsOCBAQAogCQk0MTI5OUI5QjIxMjcz
NkRFMDBCMzQxNEIgLyogcGl0Y2hfaW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwaXRjaF9pbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjk5QjlDMjEyNzM2REUwMEIzNDE0QiAv
KiBybm4uY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBybm4uY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMjk5QjlEMjEyNzM2REYwMEIzNDE0QiAvKiBzcGVjdHJhbF9mZWF0dXJlc19p
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBzcGVjdHJhbF9mZWF0dXJlc19pbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkzMjI1MzlCM0M5MDAxREYwMzYgLyog
UlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTJGRjkzMzI1
MzlCM0M5MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTMwOTFGMTFFRjhDRjkxMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5MUYyMUVGOENGOTEwMDc1N0M1
NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjkxRUY4Q0ZGMzAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVk
aW9fZW5jb2Rlcl9mYWN0b3J5LmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gYnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3RvcnkuY2M7IHBhdGggPSBhdWRpb19jb2RlY3Mv
YnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3RvcnkuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDA1Niw2ICsxMDA1OCw4IEBACiAJCQkJNDE2MjI1RjQyMTY5ODFGMzAwQTkxQzlC
IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQubW0gKi8sCiAJCQkJNDEwMDkyMDAyNDJFM0E0MzAwQzVF
REEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUuaCAqLywKIAkJCQk0MTAwOTIwNzI0MkUzQTQ1MDBD
NUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSAqLywKKwkJCQk0MTJGRjkzMzI1MzlCM0M5
MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5LmggKi8sCisJCQkJNDEyRkY5MzIyNTM5
QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLywKIAkJCQk0MTYyMjVF
RjIxNjk4MUYyMDBBOTFDOUIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQuaCAqLywKIAkJ
CQk0MTc5NTNCMTIxNjk4MjQwMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQu
bSAqLywKIAkJCQk0MTYyMjVFQzIxNjk4MUYyMDBBOTFDOUIgLyogUlRDVmlkZW9FbmNvZGVySDI2
NC5oICovLApAQCAtMTY3MjYsNyArMTY3MzAsNiBAQAogCQkJCTQxM0U2NzhBMjE2OTg3QjkwMEVG
MzdFRCAvKiBSVENDVlBpeGVsQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1NTFG
RTE5OTFBMDAzNzNFOTkgLyogUlRDRGF0YUNoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
M0EyNDcwMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5lbENvbmZpZ3VyYXRpb24uaCBp
biBIZWFkZXJzICovLAotCQkJCTQxNzk1M0JCMjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0
VmlkZW9EZWNvZGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzIyMTY5ODI0
QjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTNBMjQ1MjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRGlzcGF0Y2hlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzQTI0NUQxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0VBR0xWaWRlb1Zp
ZXcuaCBpbiBIZWFkZXJzICovLApAQCAtMTk1MDgsNiArMTk1MTEsNyBAQAogCQkJCTQxRjI2M0JC
MjEyNjgxMTUwMDI3NEY1OSAvKiBzaWdzbG90LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhC
REIxRTQzQzJCNTAwNjIxRTkyIC8qIHNpbXBsZV9pbnRlcnBvbGF0ZV9sc2YuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4QkREMUU0M0MyQjUwMDYyMUU5MiAvKiBzaW1wbGVfbHBjX2FuYWx5c2lz
LmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyogUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCREYxRTQzQzJCNTAw
NjIxRTkyIC8qIHNpbXBsZV9sc2ZfZGVxdWFudC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhC
RTExRTQzQzJCNTAwNjIxRTkyIC8qIHNpbXBsZV9sc2ZfcXVhbnQuYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxOTI0MUQwMjEyNzU5N0QwMDYzNEZDRiAvKiBzaW11bGF0ZWRfbmV0d29yay5jYyBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBlYmNmNzE5
M2Y1YTUzMjQyMGQxNGM3OWE5OWNhNzIzYTQ2YTBkNGE1Li5jNmIyY2I5ODNlZjI3YjRkNmQwYThh
MTdiNGM3YjljYzc2OTg3NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApA
QCAtMTA4LDggKzEwOCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEgyNjVTdXBwb3J0KGJv
b2wgdmFsdWUpIHsgbV9zdXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0VlA5U3Vw
cG9ydChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNWUDkgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0
VlA5VlRCU3VwcG9ydChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNWUDlWVEIgPSB2YWx1ZTsgfQog
ICAgIGJvb2wgaXNTdXBwb3J0aW5nSDI2NSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNIMjY1
OyB9CiAgICAgYm9vbCBpc1N1cHBvcnRpbmdWUDkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRz
VlA5OyB9CisgICAgYm9vbCBpc1N1cHBvcnRpbmdWUDlWVEIoKSBjb25zdCB7IHJldHVybiBtX3N1
cHBvcnRzVlA5VlRCOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAK
ICAgICAvLyBDYWxsYmFjayBpcyBleGVjdXRlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgpAQCAt
MTUzLDYgKzE1NSw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fc3VwcG9ydHNIMjY1IHsgZmFsc2Ug
fTsKICAgICBib29sIG1fc3VwcG9ydHNWUDkgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXBwb3J0
c1ZQOVZUQiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZUxvZ2dpbmcgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX3VzZURUTFMxMCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcAppbmRleCA5MjAxZDBlMzJjMzQ4YjJkM2UzYjAw
OTdiNDc5MGQ0N2NkMjkyOGY0Li5jYjExZjgxZmQzZjExZWFmODE4OTE5NmIxNDg3YWVkMDdjNmU1
OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCkBA
IC02Myw3ICs2Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rv
cnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kCiAgICAgaWYgKCF3ZWJSVENB
dmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gd2VicnRj
OjpjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShpc1N1cHBvcnRpbmdIMjY1KCkgPyB3ZWJydGM6
OldlYktpdEgyNjU6Ok9uIDogd2VicnRjOjpXZWJLaXRIMjY1OjpPZmYsIGlzU3VwcG9ydGluZ1ZQ
OSgpID8gd2VicnRjOjpXZWJLaXRWUDk6Ok9uIDogd2VicnRjOjpXZWJLaXRWUDk6Ok9mZik7Cisg
ICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0aW5n
SDI2NSgpID8gd2VicnRjOjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T2Zm
LCBpc1N1cHBvcnRpbmdWUDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6V2Vi
S2l0VlA5OjpPZmYsIGlzU3VwcG9ydGluZ1ZQOVZUQigpID8gd2VicnRjOjpXZWJLaXRWUDlWVEI6
Ok9uIDogd2VicnRjOjpXZWJLaXRWUDlWVEI6Ok9mZik7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0
ZUVuY29kZXJGYWN0b3J5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBh
MDkzMDVmMjg0Y2VjYTY1ZDY4NDYxODllOTdkZGFiNzc1NTEwNmQ2Li40MGU3NGEzNzZjODc2ZDFi
ODFmZWU3OThmNWVlMzY0YzM0NjRmNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0xNTY2LDYgKzE1NjYsMTYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVN1
cHBvcnQoYm9vbCB2YWx1ZSkKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0V2ViUlRD
VlA5VlRCU3VwcG9ydChib29sIHZhbHVlKQoreworI2lmIFVTRShMSUJXRUJSVEMpCisgICAgaWYg
KGF1dG8qIHBhZ2UgPSBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKSB7CisgICAgICAgIHBhZ2Ut
PmxpYldlYlJUQ1Byb3ZpZGVyKCkuc2V0VlA5VlRCU3VwcG9ydCh2YWx1ZSk7CisgICAgICAgIHBh
Z2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuY2xlYXJGYWN0b3J5KCk7CisgICAgfQorI2VuZGlmCit9
CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wgdmFsdWUp
CiB7CiAjaWYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IGExNmY5NTJmMTU1MDAxYmQ2MzUyYWU1MDk3YWQ2ODY2ZjQ4N2EyNDUuLjlhN2MwNzI5NTQzZTlh
MWIxMDRmYzBhMzY3YWJkOTA3ZDg1Yzc4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtNTk1LDYgKzU5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5Um90YXRpb25Gb3JP
dXRnb2luZ1ZpZGVvU291cmNlcyhSVENQZWVyQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgc2V0V2Vi
UlRDSDI2NVN1cHBvcnQoYm9vbCk7CiAgICAgdm9pZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wp
OworICAgIHZvaWQgc2V0V2ViUlRDVlA5VlRCU3VwcG9ydChib29sKTsKICAgICB2b2lkIHNldEVu
YWJsZVdlYlJUQ0VuY3J5cHRpb24oYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEVExTMTAoYm9vbCk7
CiAgICAgdm9pZCBzZXRVc2VHUFVQcm9jZXNzRm9yV2ViUlRDKGJvb2wpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGEzZjQ1NmUwODlmN2JmYTFmZjFhNzNhZTM1ZDQ3YTRj
YjljMTk0MTEuLjUyOTM0ZGY3OWEyYThlNzQ2ZDcxMGRjZjcyMmI5NzhmYTUzNTk4YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTc5Myw2ICs3OTMsNyBAQCBlbnVtIENv
bnRlbnRTaXplQ2F0ZWdvcnkgewogICAgIFtDb25kaXRpb25hbD1XRUJfUlRDXSB1bmRlZmluZWQg
YXBwbHlSb3RhdGlvbkZvck91dGdvaW5nVmlkZW9Tb3VyY2VzKFJUQ1BlZXJDb25uZWN0aW9uIGNv
bm5lY3Rpb24pOwogICAgIFtDb25kaXRpb25hbD1XRUJfUlRDXSB1bmRlZmluZWQgc2V0V2ViUlRD
SDI2NVN1cHBvcnQoYm9vbGVhbiBhbGxvd2VkKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10g
dW5kZWZpbmVkIHNldFdlYlJUQ1ZQOVN1cHBvcnQoYm9vbGVhbiBhbGxvd2VkKTsKKyAgICBbQ29u
ZGl0aW9uYWw9V0VCX1JUQ10gdW5kZWZpbmVkIHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbGVh
biBhbGxvd2VkKTsKIAogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHVuZGVmaW5lZCBz
ZXRNb2NrQXVkaW9UcmFja0NoYW5uZWxOdW1iZXIoTWVkaWFTdHJlYW1UcmFjayB0cmFjaywgdW5z
aWduZWQgc2hvcnQgY291bnQpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHVuZGVm
aW5lZCBzZXRTaG91bGRJbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2UoYm9vbGVh
biBzaG91bGRJbnRlcnJ1cHQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM0NjJmMzhiZGQzYTNkYzEwMGI5MGYxNDgyMGY3
Yzc2ODc1OWQ5YmUuLmVhMzY0MTE5YjNjOTc0ZGM4ZTE2MmJmZTU5ZDYwOTdlZDAxNWM0NTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRv
IHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2VicnRjL3ZwOS12dGItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMv
dnA5LXZ0Yi5odG1sOiBBZGRlZC4KKwogMjAyMC0xMC0xNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJv
bm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgdGVz
dCBnYXJkZW5pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMDQ3MDYzYzEzZmY1MDQ2MmQxYzYyZmRkOGNhYWQ4YTFlNGRkNjAzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKKworCitQQVNTIFZQOSBpbiBnZXRDYXBhYmlsaXRpZXMKK1BBU1MgVmVyaWZ5IFZQ
OSBhY3RpdmF0aW9uCitQQVNTIFNldHRpbmcgdmlkZW8gZXhjaGFuZ2UKK1BBU1MgRW5zdXJpbmcg
Y29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQKK1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlk
ZW8gc2hvdWxkIG5vdCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hv
dWxkIGJlIGJsYWNrCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUg
YmxhY2sgMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi5odG1sIGIv
TGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGE0MjA2OGZmODhk
MmM4NjQ1Yjk2OGNlMDRlM2FkNzAzZDJhNGJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3ZwOS12dGIuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAg
ICAgIDx0aXRsZT5WUDkgVlRCIGluIFdlYlJUQzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBs
YXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2Fu
dmFzIGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAg
ICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZh
cz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAi
PjwvY2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KK2xldCBoYXNWUDk7Cit0ZXN0KCgpID0+IHsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFdlYlJUQ1ZQOVN1
cHBvcnQodHJ1ZSk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0V2ViUlRDVlA5VlRCU3Vw
cG9ydCh0cnVlKTsKKyAgICB9CisKKyAgICBjb2RlY3MgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJp
bGl0aWVzKCJ2aWRlbyIpLmNvZGVjczsKKyAgICBoYXNWUDkgPSBjb2RlY3Muc29tZSgoY29kZWMp
ID0+IHsgcmV0dXJuIGNvZGVjLm1pbWVUeXBlID09ICJ2aWRlby9WUDkiOyB9KTsKKyAgICBhc3Nl
cnRfdHJ1ZShoYXNWUDkpOworfSwgIlZQOSBpbiBnZXRDYXBhYmlsaXRpZXMiKTsKKworaWYgKGhh
c1ZQOSkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgICAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYy5hZGRUcmFuc2NlaXZl
cigidmlkZW8iKTsKKyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5jcmVhdGVP
ZmZlcigpOworICAgICAgICBwYy5jbG9zZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlw
dGlvbi5zZHAuaW5kZXhPZigiVlA5IikgIT09IC0xLCAiVlA5IGNvZGVjIGlzIGluIHRoZSBTRFAi
KTsKKyAgICB9LCAiVmVyaWZ5IFZQOSBhY3RpdmF0aW9uIikKKworICAgIHZhciB0cmFjazsKKyAg
ICB2YXIgcmVtb3RlVHJhY2s7CisgICAgdmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247CisgICAgcHJv
bWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCwgZmFjaW5n
TW9kZTogImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAgICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAg
ICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICAgICAg
ICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0p
OworICAgICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAg
ICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNr
OworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0p
OworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sIHsgb2JzZXJ2ZU9m
ZmVyIDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIG9mZmVyLnNkcCA9IHNldENv
ZGVjKG9mZmVyLnNkcCwgIlZQOSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2ZmZXI7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAgICAgICAg
ICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgICAgIHJldHVybiB2
aWRlby5wbGF5KCk7CisgICAgICAgIH0pOworICAgIH0sICJTZXR0aW5nIHZpZGVvIGV4Y2hhbmdl
Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBpZiAocmVjZWl2aW5nQ29u
bmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbi5vbmNvbm5l
Y3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAocmVjZWl2aW5n
Q29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAg
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgc2V0VGltZW91
dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAgICAgICB9KTsKKyAg
ICB9LCAiRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKworICAgIHBy
b21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZh
bHNlLCBjYW52YXMxLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNo
b3VsZCBub3QgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAg
ICAgICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxh
Y2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBkaXNhYmxlZCwgdmlk
ZW8gc2hvdWxkIGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAg
ICAgICAgdHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxh
Y2soZmFsc2UsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlk
ZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7Cit9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="427802"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411559</attachid>
            <date>2020-10-16 05:19:40 -0700</date>
            <delta_ts>2020-10-16 05:51:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201016141938.patch</filename>
            <type>text/plain</type>
            <size>46489</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5mOWRj
ZTc2OTY5MjljODk4Mzg3NDU0ZGRjYjM4MzZjMWI0YjYxNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwOgorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tOgorICAgICAgICAod2VicnRjOjpjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
YXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06CisgICAgICAg
ICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1lXSk6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRXaXRo
SDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkgY3JlYXRlRGVjb2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
bToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29k
ZWNzV2l0aEgyNjU6dnA5Ol0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaDogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5tbTogQWRkZWQuCisgICAgICAgIChSVENGcmFtZURlY29kZVBhcmFt
czo6UlRDRnJhbWVEZWNvZGVQYXJhbXMpOgorICAgICAgICAoVlA5QnVmZmVyVG9DTVNhbXBsZUJ1
ZmZlcik6CisgICAgICAgICh2cDlEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2spOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlY29kZTptaXNzaW5nRnJhbWVzOmNvZGVjU3BlY2lm
aWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGRlY29kZURhdGE6c2l6ZTp0aW1lU3RhbXA6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IHNldEVycm9yOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgcmVsZWFzZURl
Y29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGNvbmZpZ3Vy
ZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJW
VEJWUDkgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tOgorICAgICAgICAo
d2VicnRjOjpPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKToKKyAg
ICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0x
MyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGxl
ZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRjOGRlNGFkYTZkMWNhYjEyZjFiMWViM2UyZjRlN2E0ZjkxNGY3MmYuLmVkYmVkM2ZhNGM2
MWIxMDBmNzMxMmU0NzIzMjhhYTIyMTYyMGNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0aW5nIHN1cHBv
cnQgdG8gZW5hYmxlIFZQOSBkZWNvZGluZyB0aHJvdWdoIFZUQiBmb3IgV2ViUlRDLgorCisgICAg
ICAgIFRlc3Q6IHdlYnJ0Yy92cDktdnRiLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kZXJGYWN0b3J5
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTE2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTWVk
aWFQbGF5ZXI6Om1fdmlzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4IGUzZTYxMWEx
MTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRjYWIzYzE2MDA0MWI5Y2I4
ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAgLTEwNCw3ICsx
MDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZhY3RvcnlFdgog
X19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3ZlQ2FuZGlkYXRl
c0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxvY2F0b3JJUzRf
RUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZlcl91cmxFdgog
X19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRjMjZjcmVhdGVX
ZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKK19fWk42
d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdl
YktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVXZWJLaXRFbmNv
ZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42d2VicnRjMjlz
ZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0SDI2NExvd0xh
dGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXgg
ZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4uNjFlYTY2ZGNhYjNjMTYw
MDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4
cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGluQXVkaW9FbmNv
ZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlMTZS
ZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRpZGF0ZUVOUzFf
OWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUludGVyZmFjZTEw
c2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNFYgotX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2Vi
S2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3ZWJydGMyNmNy
ZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQog
X19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRj
MzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4
cAppbmRleCBiOWQ2MjU5NzA4ZTkwODg5ZGUxZmI2M2FkYTBmNGUwYjczYzVhN2QxLi40ZWVkZDZl
ZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0aW5BdWRpb0Vu
Y29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2Ux
NlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2FuZGlkYXRlRU5T
MV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRlSW50ZXJmYWNl
MTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1c0ViCi1fX1pO
NndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlX
ZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBX
ZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pONndlYnJ0YzI2
Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlF
CiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgogX19aTjZ3ZWJy
dGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNv
ZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXREZWNvZGVyLm1tCmluZGV4IGQwNWQwNjIyNDljNmFhZTUxYzlhNjAxNThmMzEy
ZWMzNzJkYWYzNWMuLjI4N2UxOTZmMDFiOGQ1MGFkMzAwY2E2NTY0YThkNGNkMGExMTI1ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9X
ZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KQEAgLTE2Nyw5ICsxNjcs
OSBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0
b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29ucwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFJlbW90ZVZpZGVvRGVjb2Rlcj4oaWRlbnRpZmllcik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KFdl
YktpdEgyNjUgc3VwcG9ydHNIMjY1LCBXZWJLaXRWUDkgc3VwcG9ydHNWUDkpCitzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFj
dG9yeShXZWJLaXRIMjY1IHN1cHBvcnRzSDI2NSwgV2ViS2l0VlA5IHN1cHBvcnRzVlA5LCBXZWJL
aXRWUDlWVEIgc3VwcG9ydHNWUDlWVEIpCiB7Ci0gICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBP
YmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZh
Y3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogc3VwcG9ydHNIMjY1ID09IFdlYktpdEgyNjU6Ok9u
IHZwOTogc3VwcG9ydHNWUDkgPT0gV2ViS2l0VlA5OjpPbl0pOworICAgIGF1dG8gaW50ZXJuYWxG
YWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IHN1cHBvcnRzSDI2NSA9PSBXZWJL
aXRIMjY1OjpPbiB2cDk6IHN1cHBvcnRzVlA5ID09IFdlYktpdFZQOTo6T24gdnA5VlRCOiBzdXBw
b3J0c1ZQOVZUQiA9PSBXZWJLaXRWUDlWVEI6Ok9uXSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNh
bGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7
CiAgICAgcmV0dXJuIGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oCmluZGV4IDUwOWNkZjU0NTNlMzIyNDBlMWIxODQyZmJhZTQ1MWE2NGU2
N2ZkMzQuLjA3ZDVjZTM3NGJmNjI4MGJiYzdhMmNlNGUwZTAwMjkxYjJiYmJlOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQv
V2ViS2l0VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaApAQCAtNDIsOSArNDIsMTAgQEAg
Y2xhc3MgVmlkZW9GcmFtZTsKIAogZW51bSBjbGFzcyBXZWJLaXRIMjY1IHsgT2ZmLCBPbiB9Owog
ZW51bSBjbGFzcyBXZWJLaXRWUDkgeyBPZmYsIE9uIH07CitlbnVtIGNsYXNzIFdlYktpdFZQOVZU
QiB7IE9mZiwgT24gfTsKIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFj
dG9yeT4gY3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5KTsK
LXN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktp
dERlY29kZXJGYWN0b3J5KFdlYktpdEgyNjUsIFdlYktpdFZQOSk7CitzdGQ6OnVuaXF1ZV9wdHI8
d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShX
ZWJLaXRIMjY1LCBXZWJLaXRWUDksIFdlYktpdFZQOVZUQik7CiAKIHZvaWQgc2V0QXBwbGljYXRp
b25TdGF0dXMoYm9vbCBpc0FjdGl2ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRl
b0RlY29kZXIubW0KaW5kZXggZGNlNDc5Yzg5MDkxMTNmOTFhYmE2NzdhZTJmNzMwZjIyYTZlNzRi
MC4uMmI0YWNiOTFiNDVjNjEyYTkwNTA5ZmY4OGE3ZTFhOWNhMWY4MTU0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3Zp
ZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVj
L1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0KQEAgLTU0LDcgKzU0LDkgQEAKIH0KIAog
LSAoTlNTdHJpbmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworI2lmICFkZWZpbmVkKFdFQlJUQ19X
RUJLSVRfQlVJTEQpCiAgIFJUQ19OT1RSRUFDSEVEKCk7CisjZW5kaWYKICAgcmV0dXJuIG5pbDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eS5oCmluZGV4IGUyODIwYjIzMDA5ZTlkY2VkZDE0NDc5ZjFhNWYwOTBhNTYxZDQyYjIuLjI0YTFk
NjNjZjczNTZjM2E3MWRjOTJlZTU2ZTcwOGEzNTFlMDQzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKQEAgLTIxLDcgKzIxLDcgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFJUQ19PQkpDX0VYUE9SVAogX19hdHRyaWJ1dGVfXygo
b2JqY19ydW50aW1lX25hbWUoIldLX1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IikpKQog
QGludGVyZmFjZSBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSA6IE5TT2JqZWN0IDxSVENW
aWRlb0RlY29kZXJGYWN0b3J5PgotLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRIMjY1
IHZwOTooYm9vbClzdXBwb3J0c1ZQOTsKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0
SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDkgdnA5VlRCOihib29sKXN1cHBvcnRzVlA5VlRCOwog
QGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
RGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQppbmRleCBlNWY0YTIwNDdhZDU5NjZjMDNkYjE2
NTcwZDEyMzllNjU3ZjNiOGE3Li42ODM5NWY0YTIwZjI0NjU3MTk0MmJkYmU4NDk2OWRlM2Q3ZTMw
NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeS5tCkBAIC0xNywyMyArMTcsMzAgQEAKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9Db2RlY0lu
Zm8uaCIKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZQOS5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5
LmgiCiAjZW5kaWYKICNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQogI2ltcG9ydCAiUlRD
SDI2NVByb2ZpbGVMZXZlbElkLmgiCiAjaW1wb3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCiAj
ZW5kaWYKIAorI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgorCiBAaW1wbGVt
ZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgewogICBib29sIF9zdXBwb3J0
c0gyNjU7CiAgIGJvb2wgX3N1cHBvcnRzVlA5OworICBib29sIF9zdXBwb3J0c1ZQOVZUQjsKIH0K
IAotLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRzSDI2NSB2cDk6KGJvb2wpc3VwcG9y
dHNWUDkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBwb3J0c1ZQOVZUQgogewogICBzZWxmID0gW3N1cGVy
IGluaXRdOwogICBpZiAoc2VsZikgewogICAgICAgX3N1cHBvcnRzSDI2NSA9IHN1cHBvcnRzSDI2
NTsKICAgICAgIF9zdXBwb3J0c1ZQOSA9IHN1cHBvcnRzVlA5OworICAgICAgLy8gVXNlIGtDTVZp
ZGVvQ29kZWNUeXBlX1ZQOSBvbmNlIGFkZGVkIHRvIENNRm9ybWF0RGVzY3JpcHRpb24uaAorICAg
ICAgX3N1cHBvcnRzVlA5VlRCID0gc3VwcG9ydHNWUDkgJiYgKHN1cHBvcnRzVlA5VlRCIHx8IFZU
SXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgndnAwOScpKTsKKzsKICAgfQogICByZXR1cm4gc2Vs
ZjsKIH0KQEAgLTYxLDYgKzY4LDEyIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0
c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9D
b2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NV07CiAKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICBpZiAoX3N1cHBvcnRz
VlA5KSB7CisgICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJ
bmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKKyAgICBbY29k
ZWNzIGFkZE9iamVjdDp2cDlJbmZvXTsKKyAgfQorI2VuZGlmCiAgIFtjb2RlY3MgYWRkT2JqZWN0
OmNvbnN0cmFpbmVkSGlnaEluZm9dOwogICBbY29kZWNzIGFkZE9iamVjdDpjb25zdHJhaW5lZEJh
c2VsaW5lSW5mb107CiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKQEAgLTcwLDEyICs4
Myw2IEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5CiAgIH0KICNlbmRpZgogICBbY29kZWNzIGFkZE9iamVjdDp2cDhJbmZvXTsKLSNp
ZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQotICBpZiAoX3N1cHBvcnRzVlA5KSB7Ci0gICAgUlRD
VmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0
V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKLSAgICBbY29kZWNzIGFkZE9iamVjdDp2
cDlJbmZvXTsKLSAgfQotI2VuZGlmCiAKICAgcmV0dXJuIGNvZGVjczsKIH0KQEAgLTkxLDcgKzk4
LDExIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5CiAjZW5kaWYKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2Ug
aWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsK
LSAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAgICAgIGlmIChf
c3VwcG9ydHNWUDlWVEIpIHsKKyAgICAgICAgcmV0dXJuIFtbUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGFsbG9jXSBpbml0XTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBbUlRDVmlkZW9E
ZWNvZGVyVlA5IHZwOURlY29kZXJdOworICAgICAgfQogI2VuZGlmCiAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCmluZGV4IDlmZmYw
MmRmMDE1MzVhNzQ4ODMyODFjNTQ4NWNhM2ZmNDk3YWZmNmMuLjQ5ZGYyY2M3N2MzMDczMTk3OTI2
M2YwNzIyYjg4ZDFiZWI1ZWFiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KQEAgLTYzLDYgKzYzLDEzIEBAIC0gKGlkKWluaXRXaXRo
SDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICAgTlNNdXRh
YmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CiAKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQorICBpZiAoc3VwcG9ydHNWUDkpIHsKKyAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mbyA9
IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1Zw
OU5hbWVdOworICAgIFtjb2RlY3MgYWRkT2JqZWN0OnZwOUluZm9dOworICB9CisjZW5kaWYKKwog
ICBbY29kZWNzIGFkZE9iamVjdDpjb25zdHJhaW5lZEhpZ2hJbmZvXTsKICAgW2NvZGVjcyBhZGRP
YmplY3Q6Y29uc3RyYWluZWRCYXNlbGluZUluZm9dOwogI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxF
X0gyNjUpCkBAIC03NSwxMyArODIsNiBAQCAtIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9y
dHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogICBSVENWaWRlb0NvZGVjSW5mbyAqdnA4SW5m
byA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2Rl
Y1ZwOE5hbWVdOwogICBbY29kZWNzIGFkZE9iamVjdDp2cDhJbmZvXTsKIAotI2lmIGRlZmluZWQo
UlRDX0VOQUJMRV9WUDkpCi0gIGlmIChzdXBwb3J0c1ZQOSkgewotICAgIFJUQ1ZpZGVvQ29kZWNJ
bmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtS
VENWaWRlb0NvZGVjVnA5TmFtZV07Ci0gICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb107Ci0g
IH0KLSNlbmRpZgotCiAgIHJldHVybiBjb2RlY3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBj
NDA0MzZkMzdjZTQ0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1w
b3J0ICJSVENWaWRlb0RlY29kZXIuaCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9f
KChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVy
ZmFjZSBSVENWaWRlb0RlY29kZXJWVEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgor
LSAoTlNJbnRlZ2VyKWRlY29kZURhdGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZToo
c2l6ZV90KXNpemUKKyAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUzNGEx
YmI1NmFhYzQ2M2Y3MDJmNDM4ZmM3MTJhNWQ2ZGQwNjFiMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICovCisKKy8qCisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hs
eSBiYXNlZCBvbiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5LmgiCisKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1w
b3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlk
ZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0
ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1w
b3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKwor
I2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dn
aW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhh
dCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUg
aXQgYWdhaW4KKy8vIGluIHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVj
b2RlUGFyYW1zIHsKKyAgUlRDRnJhbWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJh
Y2sgY2IsIGludDY0X3QgdHMpIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJU
Q1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307
CisKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9y
OihPU1N0YXR1cyllcnJvcjsKK0BlbmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9D
TVNhbXBsZUJ1ZmZlcihjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxv
Y2tCdWZmZXJSZWYgbmV3X2Jsb2NrX2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1
ZmZlcl9zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NN
QmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVk
Q0YobmV3X2Jsb2NrX2J1ZmZlcik7CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVy
UmVwbGFjZURhdGFCeXRlcyhidWZmZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3Np
emUpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVfYnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51
bGxwdHIsIG51bGxwdHIsIHZpZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwg
JnNhbXBsZV9idWZmZXIpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNh
bXBsZV9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQg
VmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5
RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRD
RnJhbWVEZWNvZGVQYXJhbXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
UlRDRnJhbWVEZWNvZGVQYXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKKyAgICAgIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENW
aWRlb0RlY29kZXJWVEJWUDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0
YXR1c107CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUu
IFN0YXR1czogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZm
ZXIgKmZyYW1lQnVmZmVyID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVs
QnVmZmVyOmltYWdlQnVmZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAg
ICAgIFtbUlRDVmlkZW9GcmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlv
bl8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdl
dFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2Rl
ZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJh
bXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50
YXRpb24gUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIF92aWRlb0Zvcm1hdDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVz
c2lvblNlc3Npb247CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NT
dGF0dXMgX2Vycm9yOworICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQor
CistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25d
OworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0
YXJ0RGVjb2RlV2l0aE51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJu
IFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5j
b2RlZEltYWdlICopaW5wdXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3Np
bmdGcmFtZXMKKyAgICBjb2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVj
aWZpY0luZm8+KWluZm8KKyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1l
TXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2Uu
ZnJhbWVUeXBlID09IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9
IGlucHV0SW1hZ2UuZW5jb2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5j
b2RlZEhlaWdodDsKKyAgfQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilp
bnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGlt
ZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVE
YXRhOihjb25zdCB1aW50OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAg
ICAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZh
aWxlZC4iOworICAgIF9lcnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CisgIH0KKworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24gPSBudWxscHRyOworICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2Ug
YWRkZWQgdG8gQ01Gb3JtYXREZXNjcmlwdGlvbi5oCisgIGlmIChub0VyciAhPSBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3ZwMDknLCBfd2lkdGgs
IF9oZWlnaHQsIG51bGxwdHIsICZmb3JtYXREZXNjcmlwdGlvbikpCisgICAgcmV0dXJuIFdFQlJU
Q19WSURFT19DT0RFQ19FUlJPUjsKKworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRDRihmb3JtYXREZXNj
cmlwdGlvbik7CisgIGlmIChpbnB1dEZvcm1hdCkgeworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRl
byBmb3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8v
IG5lZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5n
ZXQoKSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRG
b3JtYXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9
IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21w
cmVzc2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAg
cmV0dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9Cisg
IH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1
dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRl
Y29kZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2Ug
bmVlZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiBy
ZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVy
cm9yLgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBG
cmFtZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NP
REVDX0VSUk9SOworICB9CisgIGF1dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpTY29wZWRDRihWUDlC
dWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRhdGEsIHNpemUsIF92aWRlb0Zvcm1hdCkpOworICBpZiAo
IXNhbXBsZUJ1ZmZlcikgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7Cisg
IH0KKworICBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9F
bmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJh
bWVEZWNvZGVQYXJhbXM+IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5y
ZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKKyAg
T1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAg
ICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCksIGRlY29kZUZsYWdz
LCBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VC
UlRDX0lPUykKKyAgLy8gUmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGlu
dmFsaWQgc2Vzc2lvbiB3aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBvciBkZWNvZGVyIG1h
bGZ1bmN0aW9ucyBhbmQgcmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoKHN0YXR1cyA9
PSBrVlRJbnZhbGlkU2Vzc2lvbkVyciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9EZWNvZGVyTWFsZnVu
Y3Rpb25FcnIpICYmCisgICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBX
RUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJGYWlsZWQg
dG8gZGVjb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXMKKyAgICAgICAgICAgICAgICAg
ICAgIDw8ICIgcmV0cnlpbmcgZGVjb2RlIGFmdGVyIGRlY29tcHJlc3Npb24gc2Vzc2lvbiByZXNl
dCI7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1z
KF9jYWxsYmFjaywgdGltZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vz
c2lvbkRlY29kZUZyYW1lKAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1
ZmZlciwgZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7
CisgIH0KKyNlbmRpZgorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19F
UlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsK
KyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRGVj
b2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0g
KHZvaWQpc2V0RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vycm9yID0gZXJyb3I7Cit9CisK
Ky0gKE5TSW50ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8gaW52YWxpZGF0ZSB0
aGUgc2Vzc2lvbiBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIgYW5kIGl0CisgIC8v
IGlzIHNhZmUgdG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBkZXN0cm95RGVjb21w
cmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKKyAgX2Nh
bGxiYWNrID0gbnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKwor
I3ByYWdtYSBtYXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lv
biB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gTmVlZCB0
byB3YWl0IGZvciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KKyAgaWYgKCFf
dmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworICB9CisK
KyAgLy8gU2V0IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBhdGliaWx0eSwgd2hp
Y2ggbWFrZXMgdGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZlcnMgd2l0aCBHUFUg
YmFja2VkIG1lbW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAgLy8gdGhlIHBpeGVs
IGJ1ZmZlcnMgZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9hZCBsYXRlciBkdXJp
bmcKKyAgLy8gcmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJlY2F1c2Ugd2UgYXJl
IGNvbnZlcnRpbmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVyIGRlY29kZSwgYnV0
IGV2ZW50dWFsbHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENWUGl4ZWxCdWZmZXJz
IGRpcmVjdGx5IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBNYXliZSBvbmx5
IHNldCBPcGVuR0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRoYXQKKyAgLy8gd2Ug
Y2FuIHBhc3MgQ1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4gZGVjb2RlciBvdXRw
dXQuCisgIHN0YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVS
ZWYga2V5c1thdHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAg
IGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChX
RUJSVENfTUFDKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNl
bmRpZgorICAgIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQ
aXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9T
dXJmYWNlVmFsdWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDAp
OworICBpbnQ2NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBs
YW5hckZ1bGxSYW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPSBDRk51bWJlckNyZWF0
ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZh
bHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLCBw
aXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ3JlYXRlQ0ZUeXBl
RGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFj
ZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VW
YWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNl
KHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgVlREZWNv
bXByZXNzaW9uT3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgdnA5RGVjb21w
cmVzc2lvbk91dHB1dENhbGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAqKXNlbGYsCisgIH07CisgIE9T
U3RhdHVzIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxs
cHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsICZyZWNvcmQsICZfZGVjb21w
cmVzc2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMg
IT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBk
ZWNvbXByZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAgIFtzZWxmIGRlc3Ryb3lEZWNv
bXByZXNzaW9uU2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsK
KyAgfQorICBbc2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgcmV0dXJu
IFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNvbXByZXNz
aW9uU2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyNpZiBk
ZWZpbmVkKFdFQlJUQ19JT1MpCisgIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNvbXByZXNzaW9u
U2Vzc2lvbiwga1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFu
VHJ1ZSk7CisjZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24g
eworICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVmaW5lZChXRUJSVENfV0VC
S0lUX0JVSUxEKQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3Vz
RnJhbWVzKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lmIGRlZmluZWQoV0VCUlRD
X0lPUykKKyAgICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAgVlREZWNv
bXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25T
ZXNzaW9uKTsKKyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVjb21wcmVzc2lvblNlc3Np
b25JbnZhbGlkYXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9kZWNv
bXByZXNzaW9uU2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsK
KyAgfQorfQorCistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25SZWYpdmlkZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09IHZpZGVvRm9ybWF0KSB7
CisgICAgcmV0dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJlbGVhc2Uo
X3ZpZGVvRm9ybWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRlb0Zvcm1hdDsKKyAgaWYg
KF92aWRlb0Zvcm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zvcm1hdCk7CisgIH0KK30KKwor
LSAoTlNTdHJpbmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xi
b3giOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192
aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KaW5kZXggMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5
ZDNmNzc4YmUyNWJkOC4uMWNmOTQ5ZGMxN2EzYmMwNzdlZGU0MjhhYzg3ZmRkOGRiYjFjZmYwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3Jj
L29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAsNyArMTAwLDExIEBAIHN0ZDo6
dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVW
aWRlb0RlY29kZXIoCiAgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5k
T2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KICAgICAgIC8vIGlmIChbZGVj
b2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0p
IHsKLSAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlz
RXF1YWw6QCJWUDkiXSkgeworI2lmICFkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAg
ICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6
QCJWUDkiXSkgeworI2Vsc2UKKyAgICAgICAgaWYgKCFbZGVjb2Rlci5pbXBsZW1lbnRhdGlvbk5h
bWUgaXNFcXVhbDpAIlZpZGVvVG9vbGJveCJdKSB7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIFso
UlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNv
ZGVyXTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2Jq
Q1ZpZGVvRGVjb2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRlNGE1MzgxZjg3MDBkNGJlM2MxM2UzMDAyMzIyMjdi
YmM2YzEwODAuLmRkZWU2YjkzZWUyMTY2YjI2OGJmZWEwOTViYTU3MGM2NmNlNmIwOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRj
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKIAkJNDEyOTlCOTIy
MTI3MzY3QjAwQjM0MTRCIC8qIGlzYWNfdmFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQu
aCAqLzsgfTsKIAkJNDEyOTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlCOTAyMTI3
MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oICovOyB9OwogCQk0MTI5OUI5NzIxMjczNjkx
MDBCMzQxNEIgLyogZmFrZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25l
dHdvcmtfcGlwZS5oICovOyB9OworCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyogUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5tbSAqLzsgfTsKIAkJNDEzMDkxRjMxRUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJl
YW1fcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMzA5MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVy
LmggKi87IH07CiAJCTQxMzA5MUY0MUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFt
X3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIu
Y2MgKi87IH07CiAJCTQxMzA5MUZCMUVGOENGRjgwMDc1N0M1NSAvKiBidWlsdGluX2F1ZGlvX2Vu
Y29kZXJfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMzA5MUY5MUVGOENGRjMwMDc1N0M1NSAvKiBidWlsdGluX2F1ZGlvX2VuY29kZXJf
ZmFjdG9yeS5jYyAqLzsgfTsKQEAgLTE0MjIsNyArMTQyMyw2IEBACiAJCTQxNzk1M0I4MjE2OTgy
NDIwMDI4MjY2QiAvKiBSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NC5tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjAyMTY5ODI0MDAwMjgyNjZC
IC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gKi87IH07CiAJCTQxNzk1M0I5MjE2OTgy
NDIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjEyMTY5ODI0MDAwMjgyNjZC
IC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gKi87IH07CiAJCTQxNzk1M0JBMjE2OTgy
NDIwMDI4MjY2QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQrUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjIyMTY5ODI0MTAw
MjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi87IH07Ci0JCTQx
Nzk1M0JCMjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjMy
MTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggKi87IH07
CiAJCTQxNzk1M0JDMjE2OTgyNEIwMDI4MjY2QiAvKiBoZWxwZXJzLmNjIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNTIxRDMyMTY5ODIxRjAwMEFCQUY3
IC8qIGhlbHBlcnMuY2MgKi87IH07CiAJCTQxNzk1M0JEMjE2OTgyNEIwMDI4MjY2QiAvKiBoZWxw
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYy
MjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVscGVycy5oICovOyB9OwogCQk0MTc5NTNCRjIxNjk4
MjRCMDAyODI2NkIgLyogbmFsdV9yZXdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNTIxRDUyMTY5ODIyMDAwMEFCQUY3IC8qIG5hbHVfcmV3
cml0ZXIuaCAqLzsgfTsKQEAgLTQzNDUsNiArNDM0NSw4IEBACiAJCTQxMjk5QjlCMjEyNzM2REUw
MEIzNDE0QiAvKiBwaXRjaF9pbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBpdGNoX2luZm8uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOTlCOUMyMTI3MzZERTAwQjM0MTRCIC8qIHJu
bi5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHJubi5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEyOTlCOUQyMTI3MzZERjAwQjM0MTRCIC8qIHNwZWN0cmFsX2ZlYXR1cmVzX2ludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHNwZWN0cmFsX2ZlYXR1cmVzX2ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTMyMjUzOUIzQzkwMDFERjAzNiAvKiBSVENW
aWRlb0RlY29kZXJWVEJWUDkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRlb0RlY29k
ZXJWVEJWUDkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTMzMjUzOUIz
QzkwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRD
VmlkZW9EZWNvZGVyVlRCVlA5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5
MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8q
IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19l
bmNvZGVyX2ZhY3RvcnkuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBi
dWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgcGF0aCA9IGF1ZGlvX2NvZGVjcy9idWls
dGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEwMDU2LDYgKzEwMDU4LDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyog
UlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIg
LyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURB
MiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUzOUIzQzkwMDFE
RjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkzMjI1MzlCM0M5
MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2
OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQx
Nzk1M0IxMjE2OTgyNDAwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICov
LAogCQkJCTQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lmgg
Ki8sCkBAIC0xNjcyNiw3ICsxNjczMCw2IEBACiAJCQkJNDEzRTY3OEEyMTY5ODdCOTAwRUYzN0VE
IC8qIFJUQ0NWUGl4ZWxCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDU1MUZFMTk5
MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0
NzAxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0RhdGFDaGFubmVsQ29uZmlndXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNDMjIxNjk4MjRCMDAy
ODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxM0EyNDUyMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEaXNwYXRjaGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTNBMjQ1RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRUFHTFZpZGVvVmlldy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xOTM5OSw2ICsxOTQwMiw3IEBACiAJCQkJNDFFODRCRDIyNDM3
M0MxNDAwRDM0RTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVyVlA4Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE0MDM1RUYyNEFBMEVCQzAwQkNFOUIyIC8qIFJUQ1ZpZGVvRGVjb2Rl
clZQOS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxMkZGOTM0MjUzOUI3NjQwMDFERjAzNiAvKiBS
VENWaWRlb0RlY29kZXJWVEJWUDkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCOTIxNjk4
MjQyMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2VzICov
LAogCQkJCTQxNzk1M0NBMjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFODRCRDMyNDM3M0MxQTAwRDM0RTQxIC8qIFJUQ1ZpZGVv
RW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKaW5kZXggZWJjZjcxOTNmNWE1MzI0MjBkMTRjNzlhOTljYTcyM2E0NmEwZDRhNS4uYzZi
MmNiOTgzZWYyN2I0ZDZkMGE4YTE3YjRjN2I5Y2M3Njk4NzZlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwOCw4ICsxMDgsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRIMjY1U3VwcG9ydChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNIMjY1ID0gdmFsdWU7IH0K
ICAgICB2b2lkIHNldFZQOVN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5ID0gdmFs
dWU7IH0KKyAgICB2b2lkIHNldFZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRz
VlA5VlRCID0gdmFsdWU7IH0KICAgICBib29sIGlzU3VwcG9ydGluZ0gyNjUoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHBvcnRzSDI2NTsgfQogICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5KCkgY29uc3Qg
eyByZXR1cm4gbV9zdXBwb3J0c1ZQOTsgfQorICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5VlRCKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOVZUQjsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgaXMgZXhlY3V0ZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZC4KQEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1
cHBvcnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzVlA5IHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc3VwcG9ydHNWUDlWVEIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVM
b2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggOTIw
MWQwZTMyYzM0OGIyZDNlM2IwMDk3YjQ3OTBkNDdjZDI5MjhmNC4uY2IxMWY4MWZkM2YxMWVhZjgx
ODkxOTZiMTQ4N2FlZDA3YzZlNTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlckNvY29hLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNv
ZAogICAgIGlmICghd2ViUlRDQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0
aW5nSDI2NSgpID8gd2VicnRjOjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6
T2ZmLCBpc1N1cHBvcnRpbmdWUDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6
V2ViS2l0VlA5OjpPZmYpOworICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJG
YWN0b3J5KGlzU3VwcG9ydGluZ0gyNjUoKSA/IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T24gOiB3ZWJy
dGM6OldlYktpdEgyNjU6Ok9mZiwgaXNTdXBwb3J0aW5nVlA5KCkgPyB3ZWJydGM6OldlYktpdFZQ
OTo6T24gOiB3ZWJydGM6OldlYktpdFZQOTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDlWVEIoKSA/IHdl
YnJ0Yzo6V2ViS2l0VlA5VlRCOjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPZmYpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQ
cm92aWRlckNvY29hOjpjcmVhdGVFbmNvZGVyRmFjdG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggYTA5MzA1ZjI4NGNlY2E2NWQ2ODQ2MTg5ZTk3ZGRhYjc3NTUxMDZk
Ni4uNDBlNzRhMzc2Yzg3NmQxYjgxZmVlNzk4ZjVlZTM2NGMzNDY0Zjc1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wgdmFsdWUpCiAjZW5kaWYKIH0KIAordm9pZCBJ
bnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkKK3sKKyNpZiBVU0Uo
TElCV0VCUlRDKQorICAgIGlmIChhdXRvKiBwYWdlID0gY29udGV4dERvY3VtZW50KCktPnBhZ2Uo
KSkgeworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLnNldFZQOVZUQlN1cHBvcnQo
dmFsdWUpOworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNsZWFyRmFjdG9yeSgp
OworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c2V0RW5hYmxlV2ViUlRDRW5j
cnlwdGlvbihib29sIHZhbHVlKQogewogI2lmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCBhMTZmOTUyZjE1NTAwMWJkNjM1MmFlNTA5N2FkNjg2NmY0ODdh
MjQ1Li45YTdjMDcyOTU0M2U5YTFiMTA0ZmMwYTM2N2FiZDkwN2Q4NWM3OGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU5NSw2ICs1OTUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoUlRDUGVlckNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2wpOwogICAgIHZvaWQgc2V0V2Vi
UlRDVlA5U3VwcG9ydChib29sKTsKKyAgICB2b2lkIHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9v
bCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQg
c2V0VXNlRFRMUzEwKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhM2Y0NTZlMDg5Zjdi
ZmExZmYxYTczYWUzNWQ0N2E0Y2I5YzE5NDExLi41MjkzNGRmNzlhMmE4ZTc0NmQ3MTBkY2Y3MjJi
OTc4ZmE1MzU5OGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03OTMs
NiArNzkzLDcgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICBbQ29uZGl0aW9uYWw9
V0VCX1JUQ10gdW5kZWZpbmVkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcyhS
VENQZWVyQ29ubmVjdGlvbiBjb25uZWN0aW9uKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10g
dW5kZWZpbmVkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAgICAgW0Nv
bmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2xlYW4g
YWxsb3dlZCk7CisgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENW
UDlWVEJTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNXSB1bmRlZmluZWQgc2V0TW9ja0F1ZGlvVHJhY2tDaGFubmVsTnVtYmVyKE1lZGlhU3Ry
ZWFtVHJhY2sgdHJhY2ssIHVuc2lnbmVkIHNob3J0IGNvdW50KTsKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0U2hvdWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNp
YmlsaXR5Q2hhbmdlKGJvb2xlYW4gc2hvdWxkSW50ZXJydXB0KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDYyZjM4YmRk
M2EzZGMxMDBiOTBmMTQ4MjBmN2M3Njg3NTlkOWJlLi5lYTM2NDExOWIzYzk3NGRjOGUxNjJiZmU1
OWQ2MDk3ZWQwMTVjNDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2Rl
ciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2VicnRjL3ZwOS12dGIuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNh
aXJvXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvdnA5LXZ0Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0NzA2M2MxM2ZmNTA0NjJkMWM2MmZkZDhjYWFkOGEx
ZTRkZDYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworUEFTUyBWUDkgaW4gZ2V0Q2FwYWJpbGl0
aWVzCitQQVNTIFZlcmlmeSBWUDkgYWN0aXZhdGlvbgorUEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hh
bmdlCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkCitQQVNTIFRy
YWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sKK1BBU1MgVHJhY2sgaXMg
ZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
cnRjL3ZwOS12dGIuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDBhNDIwNjhmZjg4ZDJjODY0NWI5NjhjZTA0ZTNhZDcwM2QyYTRiZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKQEAgLTAsMCArMSw5NCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VlA5IFZUQiBpbiBXZWJSVEM8L3RpdGxlPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9
InZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92
aWRlbz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIy
NDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMyIiB3aWR0aD0iMzIwIiBo
ZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMiIHdpZHRo
PSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0
aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CitsZXQgaGFzVlA5OwordGVzdCgo
KSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRXZWJSVENWUDlTdXBwb3J0KHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQodHJ1ZSk7CisgICAgfQorCisgICAgY29kZWNzID0gUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygidmlkZW8iKS5jb2RlY3M7CisgICAgaGFzVlA5ID0g
Y29kZWNzLnNvbWUoKGNvZGVjKSA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlwZSA9PSAidmlkZW8v
VlA5IjsgfSk7CisgICAgYXNzZXJ0X3RydWUoaGFzVlA5KTsKK30sICJWUDkgaW4gZ2V0Q2FwYWJp
bGl0aWVzIik7CisKK2lmIChoYXNWUDkpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3Qp
ID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAg
ICAgcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9u
ID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgcGMuY2xvc2UoKTsKKyAgICAgICAg
YXNzZXJ0X3RydWUoZGVzY3JpcHRpb24uc2RwLmluZGV4T2YoIlZQOSIpICE9PSAtMSwgIlZQOSBj
b2RlYyBpcyBpbiB0aGUgU0RQIik7CisgICAgfSwgIlZlcmlmeSBWUDkgYWN0aXZhdGlvbiIpCisK
KyAgICB2YXIgdHJhY2s7CisgICAgdmFyIHJlbW90ZVRyYWNrOworICAgIHZhciByZWNlaXZpbmdD
b25uZWN0aW9uOworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDMyMCwg
aGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigobG9jYWxTdHJl
YW0pID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpWzBdOworCisgICAgICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVj
dGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2so
dHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlv
bikgPT4geworICAgICAgICAgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uID0gc2Vjb25k
Q29ubmVjdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNr
ID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVRyYWNr
ID0gdHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJh
Y2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICB9LCB7IG9ic2VydmVPZmZlciA6IChvZmZlcikgPT4geworICAgICAgICAgICAgICAgICAg
ICBvZmZlci5zZHAgPSBzZXRDb2RlYyhvZmZlci5zZHAsICJWUDkiKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG9mZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBv
dXQiKSwgNTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbigocmVtb3RlU3Ry
ZWFtKSA9PiB7CisgICAgICAgICAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07Cisg
ICAgICAgICAgICByZXR1cm4gdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9LCAiU2V0
dGluZyB2aWRlbyBleGNoYW5nZSIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVk
IikKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJlY2Vpdmlu
Z0Nvbm5lY3Rpb24ub25jb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVj
dGVkIikKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAw
KTsKKyAgICAgICAgfSk7CisgICAgfSwgIkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29u
bmVjdGVkIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJu
IGNoZWNrVmlkZW9CbGFjayhmYWxzZSwgY2FudmFzMSwgdmlkZW8pOworICAgIH0sICJUcmFjayBp
cyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rl
c3QoKHRlc3QpID0+IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgICAgICBy
ZXR1cm4gY2hlY2tWaWRlb0JsYWNrKHRydWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJh
Y2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90
ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgICAgICBy
ZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRy
YWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQorICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="427803"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411562</attachid>
            <date>2020-10-16 05:48:56 -0700</date>
            <delta_ts>2020-10-16 06:00:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201016144854.patch</filename>
            <type>text/plain</type>
            <size>46495</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5mOWRj
ZTc2OTY5MjljODk4Mzg3NDU0ZGRjYjM4MzZjMWI0YjYxNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwOgorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tOgorICAgICAgICAod2VicnRjOjpjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
YXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06CisgICAgICAg
ICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1lXSk6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRXaXRo
SDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkgY3JlYXRlRGVjb2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
bToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29k
ZWNzV2l0aEgyNjU6dnA5Ol0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaDogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5tbTogQWRkZWQuCisgICAgICAgIChSVENGcmFtZURlY29kZVBhcmFt
czo6UlRDRnJhbWVEZWNvZGVQYXJhbXMpOgorICAgICAgICAoVlA5QnVmZmVyVG9DTVNhbXBsZUJ1
ZmZlcik6CisgICAgICAgICh2cDlEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2spOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlY29kZTptaXNzaW5nRnJhbWVzOmNvZGVjU3BlY2lm
aWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGRlY29kZURhdGE6c2l6ZTp0aW1lU3RhbXA6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IHNldEVycm9yOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgcmVsZWFzZURl
Y29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGNvbmZpZ3Vy
ZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJW
VEJWUDkgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tOgorICAgICAgICAo
d2VicnRjOjpPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKToKKyAg
ICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0x
MyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGxl
ZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRjOGRlNGFkYTZkMWNhYjEyZjFiMWViM2UyZjRlN2E0ZjkxNGY3MmYuLmVkYmVkM2ZhNGM2
MWIxMDBmNzMxMmU0NzIzMjhhYTIyMTYyMGNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0aW5nIHN1cHBv
cnQgdG8gZW5hYmxlIFZQOSBkZWNvZGluZyB0aHJvdWdoIFZUQiBmb3IgV2ViUlRDLgorCisgICAg
ICAgIFRlc3Q6IHdlYnJ0Yy92cDktdnRiLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kZXJGYWN0b3J5
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTEwLTE2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTWVk
aWFQbGF5ZXI6Om1fdmlzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4IGUzZTYxMWEx
MTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRjYWIzYzE2MDA0MWI5Y2I4
ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAgLTEwNCw3ICsx
MDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZhY3RvcnlFdgog
X19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3ZlQ2FuZGlkYXRl
c0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxvY2F0b3JJUzRf
RUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZlcl91cmxFdgog
X19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRjMjZjcmVhdGVX
ZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKK19fWk42
d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdl
YktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVXZWJLaXRFbmNv
ZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42d2VicnRjMjlz
ZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0SDI2NExvd0xh
dGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXgg
ZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4uNjFlYTY2ZGNhYjNjMTYw
MDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4
cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGluQXVkaW9FbmNv
ZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlMTZS
ZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRpZGF0ZUVOUzFf
OWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUludGVyZmFjZTEw
c2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNFYgotX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2Vi
S2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3ZWJydGMyNmNy
ZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RQog
X19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9fWk42d2VicnRj
MzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4
cAppbmRleCBiOWQ2MjU5NzA4ZTkwODg5ZGUxZmI2M2FkYTBmNGUwYjczYzVhN2QxLi40ZWVkZDZl
ZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0aW5BdWRpb0Vu
Y29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2Ux
NlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2FuZGlkYXRlRU5T
MV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRlSW50ZXJmYWNl
MTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1c0ViCi1fX1pO
NndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlX
ZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBX
ZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pONndlYnJ0YzI2
Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlF
CiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgogX19aTjZ3ZWJy
dGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNv
ZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXREZWNvZGVyLm1tCmluZGV4IGQwNWQwNjIyNDljNmFhZTUxYzlhNjAxNThmMzEy
ZWMzNzJkYWYzNWMuLjI4N2UxOTZmMDFiOGQ1MGFkMzAwY2E2NTY0YThkNGNkMGExMTI1ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9X
ZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KQEAgLTE2Nyw5ICsxNjcs
OSBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0
b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29ucwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFJlbW90ZVZpZGVvRGVjb2Rlcj4oaWRlbnRpZmllcik7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KFdl
YktpdEgyNjUgc3VwcG9ydHNIMjY1LCBXZWJLaXRWUDkgc3VwcG9ydHNWUDkpCitzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFj
dG9yeShXZWJLaXRIMjY1IHN1cHBvcnRzSDI2NSwgV2ViS2l0VlA5IHN1cHBvcnRzVlA5LCBXZWJL
aXRWUDlWVEIgc3VwcG9ydHNWUDlWVEIpCiB7Ci0gICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBP
YmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZh
Y3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogc3VwcG9ydHNIMjY1ID09IFdlYktpdEgyNjU6Ok9u
IHZwOTogc3VwcG9ydHNWUDkgPT0gV2ViS2l0VlA5OjpPbl0pOworICAgIGF1dG8gaW50ZXJuYWxG
YWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IHN1cHBvcnRzSDI2NSA9PSBXZWJL
aXRIMjY1OjpPbiB2cDk6IHN1cHBvcnRzVlA5ID09IFdlYktpdFZQOTo6T24gdnA5VlRCOiBzdXBw
b3J0c1ZQOVZUQiA9PSBXZWJLaXRWUDlWVEI6Ok9uXSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNh
bGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7
CiAgICAgcmV0dXJuIGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oCmluZGV4IDUwOWNkZjU0NTNlMzIyNDBlMWIxODQyZmJhZTQ1MWE2NGU2
N2ZkMzQuLjA3ZDVjZTM3NGJmNjI4MGJiYzdhMmNlNGUwZTAwMjkxYjJiYmJlOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQv
V2ViS2l0VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaApAQCAtNDIsOSArNDIsMTAgQEAg
Y2xhc3MgVmlkZW9GcmFtZTsKIAogZW51bSBjbGFzcyBXZWJLaXRIMjY1IHsgT2ZmLCBPbiB9Owog
ZW51bSBjbGFzcyBXZWJLaXRWUDkgeyBPZmYsIE9uIH07CitlbnVtIGNsYXNzIFdlYktpdFZQOVZU
QiB7IE9mZiwgT24gfTsKIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFj
dG9yeT4gY3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5KTsK
LXN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktp
dERlY29kZXJGYWN0b3J5KFdlYktpdEgyNjUsIFdlYktpdFZQOSk7CitzdGQ6OnVuaXF1ZV9wdHI8
d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShX
ZWJLaXRIMjY1LCBXZWJLaXRWUDksIFdlYktpdFZQOVZUQik7CiAKIHZvaWQgc2V0QXBwbGljYXRp
b25TdGF0dXMoYm9vbCBpc0FjdGl2ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRl
b0RlY29kZXIubW0KaW5kZXggZGNlNDc5Yzg5MDkxMTNmOTFhYmE2NzdhZTJmNzMwZjIyYTZlNzRi
MC4uMmI0YWNiOTFiNDVjNjEyYTkwNTA5ZmY4OGE3ZTFhOWNhMWY4MTU0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3Zp
ZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVj
L1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0KQEAgLTU0LDcgKzU0LDkgQEAKIH0KIAog
LSAoTlNTdHJpbmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworI2lmICFkZWZpbmVkKFdFQlJUQ19X
RUJLSVRfQlVJTEQpCiAgIFJUQ19OT1RSRUFDSEVEKCk7CisjZW5kaWYKICAgcmV0dXJuIG5pbDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eS5oCmluZGV4IGUyODIwYjIzMDA5ZTlkY2VkZDE0NDc5ZjFhNWYwOTBhNTYxZDQyYjIuLjI0YTFk
NjNjZjczNTZjM2E3MWRjOTJlZTU2ZTcwOGEzNTFlMDQzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKQEAgLTIxLDcgKzIxLDcgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFJUQ19PQkpDX0VYUE9SVAogX19hdHRyaWJ1dGVfXygo
b2JqY19ydW50aW1lX25hbWUoIldLX1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IikpKQog
QGludGVyZmFjZSBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSA6IE5TT2JqZWN0IDxSVENW
aWRlb0RlY29kZXJGYWN0b3J5PgotLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRIMjY1
IHZwOTooYm9vbClzdXBwb3J0c1ZQOTsKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0
SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDkgdnA5VlRCOihib29sKXN1cHBvcnRzVlA5VlRCOwog
QGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
RGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQppbmRleCBlNWY0YTIwNDdhZDU5NjZjMDNkYjE2
NTcwZDEyMzllNjU3ZjNiOGE3Li42ODM5NWY0YTIwZjI0NjU3MTk0MmJkYmU4NDk2OWRlM2Q3ZTMw
NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeS5tCkBAIC0xNywyMyArMTcsMzAgQEAKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9Db2RlY0lu
Zm8uaCIKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZQOS5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5
LmgiCiAjZW5kaWYKICNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQogI2ltcG9ydCAiUlRD
SDI2NVByb2ZpbGVMZXZlbElkLmgiCiAjaW1wb3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCiAj
ZW5kaWYKIAorI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgorCiBAaW1wbGVt
ZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgewogICBib29sIF9zdXBwb3J0
c0gyNjU7CiAgIGJvb2wgX3N1cHBvcnRzVlA5OworICBib29sIF9zdXBwb3J0c1ZQOVZUQjsKIH0K
IAotLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRzSDI2NSB2cDk6KGJvb2wpc3VwcG9y
dHNWUDkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBwb3J0c1ZQOVZUQgogewogICBzZWxmID0gW3N1cGVy
IGluaXRdOwogICBpZiAoc2VsZikgewogICAgICAgX3N1cHBvcnRzSDI2NSA9IHN1cHBvcnRzSDI2
NTsKICAgICAgIF9zdXBwb3J0c1ZQOSA9IHN1cHBvcnRzVlA5OworICAgICAgLy8gVXNlIGtDTVZp
ZGVvQ29kZWNUeXBlX1ZQOSBvbmNlIGFkZGVkIHRvIENNRm9ybWF0RGVzY3JpcHRpb24uaAorICAg
ICAgX3N1cHBvcnRzVlA5VlRCID0gc3VwcG9ydHNWUDkgJiYgKHN1cHBvcnRzVlA5VlRCIHx8IFZU
SXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgndnAwOScpKTsKKzsKICAgfQogICByZXR1cm4gc2Vs
ZjsKIH0KQEAgLTYxLDYgKzY4LDEyIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0
c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9D
b2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NV07CiAKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICBpZiAoX3N1cHBvcnRz
VlA5KSB7CisgICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJ
bmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKKyAgICBbY29k
ZWNzIGFkZE9iamVjdDp2cDlJbmZvXTsKKyAgfQorI2VuZGlmCiAgIFtjb2RlY3MgYWRkT2JqZWN0
OmNvbnN0cmFpbmVkSGlnaEluZm9dOwogICBbY29kZWNzIGFkZE9iamVjdDpjb25zdHJhaW5lZEJh
c2VsaW5lSW5mb107CiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKQEAgLTcwLDEyICs4
Myw2IEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5CiAgIH0KICNlbmRpZgogICBbY29kZWNzIGFkZE9iamVjdDp2cDhJbmZvXTsKLSNp
ZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQotICBpZiAoX3N1cHBvcnRzVlA5KSB7Ci0gICAgUlRD
VmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0
V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKLSAgICBbY29kZWNzIGFkZE9iamVjdDp2
cDlJbmZvXTsKLSAgfQotI2VuZGlmCiAKICAgcmV0dXJuIGNvZGVjczsKIH0KQEAgLTkxLDcgKzk4
LDExIEBAIC0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1
cHBvcnRzVlA5CiAjZW5kaWYKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2Ug
aWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsK
LSAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAgICAgIGlmIChf
c3VwcG9ydHNWUDlWVEIpIHsKKyAgICAgICAgcmV0dXJuIFtbUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGFsbG9jXSBpbml0XTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBbUlRDVmlkZW9E
ZWNvZGVyVlA5IHZwOURlY29kZXJdOworICAgICAgfQogI2VuZGlmCiAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCmluZGV4IDlmZmYw
MmRmMDE1MzVhNzQ4ODMyODFjNTQ4NWNhM2ZmNDk3YWZmNmMuLjQ5ZGYyY2M3N2MzMDczMTk3OTI2
M2YwNzIyYjg4ZDFiZWI1ZWFiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KQEAgLTYzLDYgKzYzLDEzIEBAIC0gKGlkKWluaXRXaXRo
SDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5CiAKICAgTlNNdXRh
YmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CiAKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQorICBpZiAoc3VwcG9ydHNWUDkpIHsKKyAgICBSVENWaWRlb0NvZGVjSW5mbyAqdnA5SW5mbyA9
IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1Zw
OU5hbWVdOworICAgIFtjb2RlY3MgYWRkT2JqZWN0OnZwOUluZm9dOworICB9CisjZW5kaWYKKwog
ICBbY29kZWNzIGFkZE9iamVjdDpjb25zdHJhaW5lZEhpZ2hJbmZvXTsKICAgW2NvZGVjcyBhZGRP
YmplY3Q6Y29uc3RyYWluZWRCYXNlbGluZUluZm9dOwogI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxF
X0gyNjUpCkBAIC03NSwxMyArODIsNiBAQCAtIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9y
dHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogICBSVENWaWRlb0NvZGVjSW5mbyAqdnA4SW5m
byA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2Rl
Y1ZwOE5hbWVdOwogICBbY29kZWNzIGFkZE9iamVjdDp2cDhJbmZvXTsKIAotI2lmIGRlZmluZWQo
UlRDX0VOQUJMRV9WUDkpCi0gIGlmIChzdXBwb3J0c1ZQOSkgewotICAgIFJUQ1ZpZGVvQ29kZWNJ
bmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtS
VENWaWRlb0NvZGVjVnA5TmFtZV07Ci0gICAgW2NvZGVjcyBhZGRPYmplY3Q6dnA5SW5mb107Ci0g
IH0KLSNlbmRpZgotCiAgIHJldHVybiBjb2RlY3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBj
NDA0MzZkMzdjZTQ0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1w
b3J0ICJSVENWaWRlb0RlY29kZXIuaCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9f
KChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVy
ZmFjZSBSVENWaWRlb0RlY29kZXJWVEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgor
LSAoTlNJbnRlZ2VyKWRlY29kZURhdGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZToo
c2l6ZV90KXNpemUKKyAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMmJk
ODJlZjE1ZWYyOTEwMGYzYzBiYmJmYmVhNjkxYzI3OWM5YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKgorICovCisKKy8qCisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hs
eSBiYXNlZCBvbiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5LmgiCisKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1w
b3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlk
ZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0
ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1w
b3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKwor
I2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dn
aW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhh
dCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUg
aXQgYWdhaW4KKy8vIGluIHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVj
b2RlUGFyYW1zIHsKKyAgUlRDRnJhbWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJh
Y2sgY2IsIGludDY0X3QgdHMpIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJU
Q1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307
CisKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9y
OihPU1N0YXR1cyllcnJvcjsKK0BlbmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9D
TVNhbXBsZUJ1ZmZlcihjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxv
Y2tCdWZmZXJSZWYgbmV3X2Jsb2NrX2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2Nr
QnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1
ZmZlcl9zaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NN
QmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVk
Q0YobmV3X2Jsb2NrX2J1ZmZlcik7CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVy
UmVwbGFjZURhdGFCeXRlcyhidWZmZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3Np
emUpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVfYnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZl
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51
bGxwdHIsIG51bGxwdHIsIHZpZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwg
JnNhbXBsZV9idWZmZXIpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNh
bXBsZV9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQg
VmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5
RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRD
RnJhbWVEZWNvZGVQYXJhbXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
UlRDRnJhbWVEZWNvZGVQYXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKKyAgICAgIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENW
aWRlb0RlY29kZXJWVEJWUDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0
YXR1c107CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUu
IFN0YXR1czogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZm
ZXIgKmZyYW1lQnVmZmVyID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVs
QnVmZmVyOmltYWdlQnVmZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAg
ICAgIFtbUlRDVmlkZW9GcmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlv
bl8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdl
dFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2Rl
ZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJh
bXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50
YXRpb24gUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIF92aWRlb0Zvcm1hdDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVz
c2lvblNlc3Npb247CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NT
dGF0dXMgX2Vycm9yOworICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQor
CistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25d
OworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0
YXJ0RGVjb2RlV2l0aE51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJu
IFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5j
b2RlZEltYWdlICopaW5wdXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3Np
bmdGcmFtZXMKKyAgICBjb2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVj
aWZpY0luZm8+KWluZm8KKyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1l
TXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2Uu
ZnJhbWVUeXBlID09IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9
IGlucHV0SW1hZ2UuZW5jb2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5j
b2RlZEhlaWdodDsKKyAgfQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilp
bnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGlt
ZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVE
YXRhOihjb25zdCB1aW50OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAg
ICAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZh
aWxlZC4iOworICAgIF9lcnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CisgIH0KKworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVz
Y3JpcHRpb24gPSBudWxscHRyOworICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2Ug
YWRkZWQgdG8gQ01Gb3JtYXREZXNjcmlwdGlvbi5oCisgIGlmIChub0VyciAhPSBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3ZwMDknLCBfd2lkdGgs
IF9oZWlnaHQsIG51bGxwdHIsICZmb3JtYXREZXNjcmlwdGlvbikpCisgICAgcmV0dXJuIFdFQlJU
Q19WSURFT19DT0RFQ19FUlJPUjsKKworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRDRihmb3JtYXREZXNj
cmlwdGlvbik7CisgIGlmIChpbnB1dEZvcm1hdCkgeworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRl
byBmb3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8v
IG5lZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5n
ZXQoKSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRG
b3JtYXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9
IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21w
cmVzc2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAg
cmV0dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9Cisg
IH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1
dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRl
Y29kZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2Ug
bmVlZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiBy
ZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVy
cm9yLgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBG
cmFtZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NP
REVDX0VSUk9SOworICB9CisgIGF1dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpTY29wZWRDRihWUDlC
dWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRhdGEsIHNpemUsIF92aWRlb0Zvcm1hdCkpOworICBpZiAo
IXNhbXBsZUJ1ZmZlcikgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7Cisg
IH0KKworICBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9F
bmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJh
bWVEZWNvZGVQYXJhbXM+IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5y
ZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKKyAg
T1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAg
ICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCksIGRlY29kZUZsYWdz
LCBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VC
UlRDX0lPUykKKyAgLy8gUmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGlu
dmFsaWQgc2Vzc2lvbiB3aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBvciBkZWNvZGVyIG1h
bGZ1bmN0aW9ucyBhbmQgcmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoKHN0YXR1cyA9
PSBrVlRJbnZhbGlkU2Vzc2lvbkVyciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9EZWNvZGVyTWFsZnVu
Y3Rpb25FcnIpICYmCisgICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBX
RUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJGYWlsZWQg
dG8gZGVjb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXMKKyAgICAgICAgICAgICAgICAg
ICAgIDw8ICIgcmV0cnlpbmcgZGVjb2RlIGFmdGVyIGRlY29tcHJlc3Npb24gc2Vzc2lvbiByZXNl
dCI7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1z
KF9jYWxsYmFjaywgdGltZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vz
c2lvbkRlY29kZUZyYW1lKAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1
ZmZlci5nZXQoKSwgZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVs
bHB0cik7CisgIH0KKyNlbmRpZgorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0
YXR1czsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVy
biBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1Zp
ZGVvRGVjb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9
CisKKy0gKHZvaWQpc2V0RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vycm9yID0gZXJyb3I7
Cit9CisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8gaW52YWxp
ZGF0ZSB0aGUgc2Vzc2lvbiBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIgYW5kIGl0
CisgIC8vIGlzIHNhZmUgdG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBkZXN0cm95
RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsK
KyAgX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsK
K30KKworI3ByYWdtYSBtYXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXByZXNzaW9u
U2Vzc2lvbiB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8g
TmVlZCB0byB3YWl0IGZvciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KKyAg
aWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwor
ICB9CisKKyAgLy8gU2V0IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBhdGliaWx0
eSwgd2hpY2ggbWFrZXMgdGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZlcnMgd2l0
aCBHUFUgYmFja2VkIG1lbW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAgLy8gdGhl
IHBpeGVsIGJ1ZmZlcnMgZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9hZCBsYXRl
ciBkdXJpbmcKKyAgLy8gcmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJlY2F1c2Ug
d2UgYXJlIGNvbnZlcnRpbmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVyIGRlY29k
ZSwgYnV0IGV2ZW50dWFsbHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENWUGl4ZWxC
dWZmZXJzIGRpcmVjdGx5IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBNYXli
ZSBvbmx5IHNldCBPcGVuR0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRoYXQKKyAg
Ly8gd2UgY2FuIHBhc3MgQ1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4gZGVjb2Rl
ciBvdXRwdXQuCisgIHN0YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAzOworICBD
RlR5cGVSZWYga2V5c1thdHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9T
KQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVm
aW5lZChXRUJSVENfTUFDKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtl
eSwKKyNlbmRpZgorICAgIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAg
ICBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlS
ZWYgaW9TdXJmYWNlVmFsdWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxw
dHIsIDApOworICBpbnQ2NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JD
cjhCaVBsYW5hckZ1bGxSYW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPSBDRk51bWJl
ckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBl
UmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZh
bHVlLCBwaXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ3JlYXRl
Q0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlv
U3VyZmFjZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1
cmZhY2VWYWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZS
ZWxlYXNlKHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAg
VlREZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgdnA5
RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAqKXNlbGYsCisgIH07
CisgIE9TU3RhdHVzIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAg
ICBudWxscHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsICZyZWNvcmQsICZf
ZGVjb21wcmVzc2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNy
ZWF0ZSBkZWNvbXByZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAgIFtzZWxmIGRlc3Ry
b3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKyAgfQorICBbc2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAg
cmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsK
KyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbiwga1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZC
b29sZWFuVHJ1ZSk7CisjZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVjb21wcmVzc2lvblNl
c3Npb24geworICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVmaW5lZChXRUJS
VENfV0VCS0lUX0JVSUxEKQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNo
cm9ub3VzRnJhbWVzKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lmIGRlZmluZWQo
V0VCUlRDX0lPUykKKyAgICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAg
VlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJl
c3Npb25TZXNzaW9uKTsKKyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVjb21wcmVzc2lv
blNlc3Npb25JbnZhbGlkYXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNl
KF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVs
bHB0cjsKKyAgfQorfQorCistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYpdmlkZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09IHZpZGVvRm9y
bWF0KSB7CisgICAgcmV0dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJl
bGVhc2UoX3ZpZGVvRm9ybWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRlb0Zvcm1hdDsK
KyAgaWYgKF92aWRlb0Zvcm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zvcm1hdCk7CisgIH0K
K30KKworLSAoTlNTdHJpbmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRl
b1Rvb2xib3giOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMv
b2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KaW5kZXggMmNhNmQwZWE2OThiYzRmODkxOTZh
MjFiNDI5ZDNmNzc4YmUyNWJkOC4uMWNmOTQ5ZGMxN2EzYmMwNzdlZGU0MjhhYzg3ZmRkOGRiYjFj
ZmYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRp
dmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAsNyArMTAwLDExIEBA
IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpD
cmVhdGVWaWRlb0RlY29kZXIoCiAgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwg
aXNLaW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KICAgICAgIC8vIGlm
IChbZGVjb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNs
YXNzXV0pIHsKLSAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNO
YW1lIGlzRXF1YWw6QCJWUDkiXSkgeworI2lmICFkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQp
CisgICAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlz
RXF1YWw6QCJWUDkiXSkgeworI2Vsc2UKKyAgICAgICAgaWYgKCFbZGVjb2Rlci5pbXBsZW1lbnRh
dGlvbk5hbWUgaXNFcXVhbDpAIlZpZGVvVG9vbGJveCJdKSB7CisjZW5kaWYKICAgICAgICAgcmV0
dXJuIFsoUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBw
ZWREZWNvZGVyXTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8T2JqQ1ZpZGVvRGVjb2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRlNGE1MzgxZjg3MDBkNGJlM2MxM2UzMDAy
MzIyMjdiYmM2YzEwODAuLmRkZWU2YjkzZWUyMTY2YjI2OGJmZWEwOTViYTU3MGM2NmNlNmIwOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGli
d2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKIAkJNDEy
OTlCOTIyMTI3MzY3QjAwQjM0MTRCIC8qIGlzYWNfdmFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBCMzQxNEIgLyogaXNh
Y192YWQuaCAqLzsgfTsKIAkJNDEyOTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlC
OTAyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oICovOyB9OwogCQk0MTI5OUI5NzIx
MjczNjkxMDBCMzQxNEIgLyogZmFrZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEwMEIzNDE0QiAvKiBm
YWtlX25ldHdvcmtfcGlwZS5oICovOyB9OworCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyog
UlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2Rl
clZUQlZQOS5tbSAqLzsgfTsKIAkJNDEzMDkxRjMxRUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRl
b19zdHJlYW1fcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMzA5MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3Jl
Y2VpdmVyLmggKi87IH07CiAJCTQxMzA5MUY0MUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9f
c3RyZWFtX3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVj
ZWl2ZXIuY2MgKi87IH07CiAJCTQxMzA5MUZCMUVGOENGRjgwMDc1N0M1NSAvKiBidWlsdGluX2F1
ZGlvX2VuY29kZXJfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMzA5MUY5MUVGOENGRjMwMDc1N0M1NSAvKiBidWlsdGluX2F1ZGlvX2Vu
Y29kZXJfZmFjdG9yeS5jYyAqLzsgfTsKQEAgLTE0MjIsNyArMTQyMyw2IEBACiAJCTQxNzk1M0I4
MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NC5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjAyMTY5ODI0MDAw
MjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gKi87IH07CiAJCTQxNzk1M0I5
MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjEyMTY5ODI0MDAw
MjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gKi87IH07CiAJCTQxNzk1M0JB
MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQrUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjIyMTY5
ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi87IH07
Ci0JCTQxNzk1M0JCMjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
OTUzQjMyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmgg
Ki87IH07CiAJCTQxNzk1M0JDMjE2OTgyNEIwMDI4MjY2QiAvKiBoZWxwZXJzLmNjIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNTIxRDMyMTY5ODIxRjAw
MEFCQUY3IC8qIGhlbHBlcnMuY2MgKi87IH07CiAJCTQxNzk1M0JEMjE2OTgyNEIwMDI4MjY2QiAv
KiBoZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTYyMjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVscGVycy5oICovOyB9OwogCQk0MTc5NTNC
RjIxNjk4MjRCMDAyODI2NkIgLyogbmFsdV9yZXdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExNTIxRDUyMTY5ODIyMDAwMEFCQUY3IC8qIG5h
bHVfcmV3cml0ZXIuaCAqLzsgfTsKQEAgLTQzNDUsNiArNDM0NSw4IEBACiAJCTQxMjk5QjlCMjEy
NzM2REUwMEIzNDE0QiAvKiBwaXRjaF9pbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBpdGNoX2luZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOTlCOUMyMTI3MzZERTAwQjM0MTRC
IC8qIHJubi5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHJubi5jYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEyOTlCOUQyMTI3MzZERjAwQjM0MTRCIC8qIHNwZWN0cmFsX2ZlYXR1cmVz
X2ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHNwZWN0cmFsX2ZlYXR1cmVzX2ludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTMyMjUzOUIzQzkwMDFERjAzNiAv
KiBSVENWaWRlb0RlY29kZXJWVEJWUDkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRl
b0RlY29kZXJWVEJWUDkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTMz
MjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMzA5MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3
QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9h
dWRpb19lbmNvZGVyX2ZhY3RvcnkuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBidWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgcGF0aCA9IGF1ZGlvX2NvZGVj
cy9idWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwMDU2LDYgKzEwMDU4LDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFD
OUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQzMDBD
NUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNBNDUw
MEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUzOUIz
QzkwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkzMjI1
MzlCM0M5MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQxNjIy
NUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAog
CQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2
NC5tICovLAogCQkJCTQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJI
MjY0LmggKi8sCkBAIC0xNjcyNiw3ICsxNjczMCw2IEBACiAJCQkJNDEzRTY3OEEyMTY5ODdCOTAw
RUYzN0VEIC8qIFJUQ0NWUGl4ZWxCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDU1
MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzQTI0NzAxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0RhdGFDaGFubmVsQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1
bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNDMjIxNjk4
MjRCMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxM0EyNDUyMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEaXNwYXRjaGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRUFHTFZpZGVv
Vmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xOTM5OSw2ICsxOTQwMiw3IEBACiAJCQkJNDFFODRC
RDIyNDM3M0MxNDAwRDM0RTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVyVlA4Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MDM1RUYyNEFBMEVCQzAwQkNFOUIyIC8qIFJUQ1ZpZGVv
RGVjb2RlclZQOS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxMkZGOTM0MjUzOUI3NjQwMDFERjAz
NiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNC
OTIxNjk4MjQyMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxNzk1M0NBMjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJI
MjY0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFODRCRDMyNDM3M0MxQTAwRDM0RTQxIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKaW5kZXggZWJjZjcxOTNmNWE1MzI0MjBkMTRjNzlhOTljYTcyM2E0NmEwZDRh
NS4uYzZiMmNiOTgzZWYyN2I0ZDZkMGE4YTE3YjRjN2I5Y2M3Njk4NzZlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwOCw4ICsxMDgsMTAgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRIMjY1U3VwcG9ydChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNIMjY1ID0gdmFs
dWU7IH0KICAgICB2b2lkIHNldFZQOVN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5
ID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldFZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1
cHBvcnRzVlA5VlRCID0gdmFsdWU7IH0KICAgICBib29sIGlzU3VwcG9ydGluZ0gyNjUoKSBjb25z
dCB7IHJldHVybiBtX3N1cHBvcnRzSDI2NTsgfQogICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5KCkg
Y29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOTsgfQorICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5
VlRCKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOVZUQjsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgaXMgZXhlY3V0ZWQgb24g
YSBiYWNrZ3JvdW5kIHRocmVhZC4KQEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3N1cHBvcnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzVlA5IHsgZmFs
c2UgfTsKKyAgICBib29sIG1fc3VwcG9ydHNWUDlWVEIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9l
bmFibGVMb2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5k
ZXggOTIwMWQwZTMyYzM0OGIyZDNlM2IwMDk3YjQ3OTBkNDdjZDI5MjhmNC4uY2IxMWY4MWZkM2Yx
MWVhZjgxODkxOTZiMTQ4N2FlZDA3YzZlNTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlckNvY29hLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVh
dGVEZWNvZAogICAgIGlmICghd2ViUlRDQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNT
dXBwb3J0aW5nSDI2NSgpID8gd2VicnRjOjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0
SDI2NTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdl
YnJ0Yzo6V2ViS2l0VlA5OjpPZmYpOworICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdERl
Y29kZXJGYWN0b3J5KGlzU3VwcG9ydGluZ0gyNjUoKSA/IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T24g
OiB3ZWJydGM6OldlYktpdEgyNjU6Ok9mZiwgaXNTdXBwb3J0aW5nVlA5KCkgPyB3ZWJydGM6Oldl
YktpdFZQOTo6T24gOiB3ZWJydGM6OldlYktpdFZQOTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDlWVEIo
KSA/IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPZmYp
OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBMaWJX
ZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVFbmNvZGVyRmFjdG9yeSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggYTA5MzA1ZjI4NGNlY2E2NWQ2ODQ2MTg5ZTk3ZGRhYjc3
NTUxMDZkNi4uNDBlNzRhMzc2Yzg3NmQxYjgxZmVlNzk4ZjVlZTM2NGMzNDY0Zjc1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQg
SW50ZXJuYWxzOjpzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wgdmFsdWUpCiAjZW5kaWYKIH0KIAor
dm9pZCBJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkKK3sKKyNp
ZiBVU0UoTElCV0VCUlRDKQorICAgIGlmIChhdXRvKiBwYWdlID0gY29udGV4dERvY3VtZW50KCkt
PnBhZ2UoKSkgeworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLnNldFZQOVZUQlN1
cHBvcnQodmFsdWUpOworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNsZWFyRmFj
dG9yeSgpOworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c2V0RW5hYmxlV2Vi
UlRDRW5jcnlwdGlvbihib29sIHZhbHVlKQogewogI2lmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhMTZmOTUyZjE1NTAwMWJkNjM1MmFlNTA5N2FkNjg2
NmY0ODdhMjQ1Li45YTdjMDcyOTU0M2U5YTFiMTA0ZmMwYTM2N2FiZDkwN2Q4NWM3OGMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU5NSw2ICs1OTUsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoUlRDUGVlckNvbm5l
Y3Rpb24mKTsKICAgICB2b2lkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2wpOwogICAgIHZvaWQg
c2V0V2ViUlRDVlA5U3VwcG9ydChib29sKTsKKyAgICB2b2lkIHNldFdlYlJUQ1ZQOVZUQlN1cHBv
cnQoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAg
IHZvaWQgc2V0VXNlRFRMUzEwKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0Zvcldl
YlJUQyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhM2Y0NTZl
MDg5ZjdiZmExZmYxYTczYWUzNWQ0N2E0Y2I5YzE5NDExLi41MjkzNGRmNzlhMmE4ZTc0NmQ3MTBk
Y2Y3MjJiOTc4ZmE1MzU5OGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC03OTMsNiArNzkzLDcgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICBbQ29uZGl0
aW9uYWw9V0VCX1JUQ10gdW5kZWZpbmVkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291
cmNlcyhSVENQZWVyQ29ubmVjdGlvbiBjb25uZWN0aW9uKTsKICAgICBbQ29uZGl0aW9uYWw9V0VC
X1JUQ10gdW5kZWZpbmVkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAg
ICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJv
b2xlYW4gYWxsb3dlZCk7CisgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRX
ZWJSVENWUDlWVEJTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0TW9ja0F1ZGlvVHJhY2tDaGFubmVsTnVtYmVyKE1l
ZGlhU3RyZWFtVHJhY2sgdHJhY2ssIHVuc2lnbmVkIHNob3J0IGNvdW50KTsKICAgICBbQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0U2hvdWxkSW50ZXJydXB0QXVkaW9PblBh
Z2VWaXNpYmlsaXR5Q2hhbmdlKGJvb2xlYW4gc2hvdWxkSW50ZXJydXB0KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDYy
ZjM4YmRkM2EzZGMxMDBiOTBmMTQ4MjBmN2M3Njg3NTlkOWJlLi5lYTM2NDExOWIzYzk3NGRjOGUx
NjJiZmU1OWQ2MDk3ZWQwMTVjNDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTYg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJUQyBWUDkg
RGVjb2RlciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2VicnRjL3ZwOS12dGIuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAt
MTQgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAg
W1dpbkNhaXJvXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJydGMvdnA5LXZ0Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdnA5
LXZ0Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0NzA2M2MxM2ZmNTA0NjJkMWM2MmZkZDhj
YWFkOGExZTRkZDYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDkt
dnRiLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworUEFTUyBWUDkgaW4gZ2V0Q2Fw
YWJpbGl0aWVzCitQQVNTIFZlcmlmeSBWUDkgYWN0aXZhdGlvbgorUEFTUyBTZXR0aW5nIHZpZGVv
IGV4Y2hhbmdlCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkCitQ
QVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sKK1BBU1MgVHJh
Y2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBlbmFi
bGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2VicnRjL3ZwOS12dGIuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDBhNDIwNjhmZjg4ZDJjODY0NWI5NjhjZTA0ZTNhZDcwM2QyYTRiZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKQEAgLTAsMCAr
MSw5NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VlA5IFZUQiBpbiBXZWJSVEM8L3Rp
dGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlk
ZW8gaWQ9InZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0
MCI+PC92aWRlbz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjMyMCIgaGVp
Z2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMyIiB3aWR0aD0i
MzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMi
IHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlwdCBzcmMg
PSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CitsZXQgaGFzVlA5Owor
dGVzdCgoKSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93
LmludGVybmFscy5zZXRXZWJSVENWUDlTdXBwb3J0KHRydWUpOworICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQodHJ1ZSk7CisgICAgfQorCisgICAgY29kZWNz
ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygidmlkZW8iKS5jb2RlY3M7CisgICAgaGFz
VlA5ID0gY29kZWNzLnNvbWUoKGNvZGVjKSA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlwZSA9PSAi
dmlkZW8vVlA5IjsgfSk7CisgICAgYXNzZXJ0X3RydWUoaGFzVlA5KTsKK30sICJWUDkgaW4gZ2V0
Q2FwYWJpbGl0aWVzIik7CisKK2lmIChoYXNWUDkpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
KHRlc3QpID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgICAgIGNvbnN0IGRlc2Ny
aXB0aW9uID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgcGMuY2xvc2UoKTsKKyAg
ICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRpb24uc2RwLmluZGV4T2YoIlZQOSIpICE9PSAtMSwg
IlZQOSBjb2RlYyBpcyBpbiB0aGUgU0RQIik7CisgICAgfSwgIlZlcmlmeSBWUDkgYWN0aXZhdGlv
biIpCisKKyAgICB2YXIgdHJhY2s7CisgICAgdmFyIHJlbW90ZVRyYWNrOworICAgIHZhciByZWNl
aXZpbmdDb25uZWN0aW9uOworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICBy
ZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6
IDMyMCwgaGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigobG9j
YWxTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdOworCisgICAgICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0
Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRk
VHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICB9LCAoc2Vjb25kQ29u
bmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uID0g
c2Vjb25kQ29ubmVjdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5v
bnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90
ZVRyYWNrID0gdHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29s
dmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICAgICB9LCB7IG9ic2VydmVPZmZlciA6IChvZmZlcikgPT4geworICAgICAgICAgICAg
ICAgICAgICBvZmZlci5zZHAgPSBzZXRDb2RlYyhvZmZlci5zZHAsICJWUDkiKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG9mZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0
aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbigocmVt
b3RlU3RyZWFtKSA9PiB7CisgICAgICAgICAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJl
YW07CisgICAgICAgICAgICByZXR1cm4gdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9
LCAiU2V0dGluZyB2aWRlbyBleGNoYW5nZSIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29u
bmVjdGVkIikKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJl
Y2VpdmluZ0Nvbm5lY3Rpb24ub25jb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAg
ICAgICAgICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAi
Y29ubmVjdGVkIikKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIp
LCA1MDAwKTsKKyAgICAgICAgfSk7CisgICAgfSwgIkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUg
aXMgY29ubmVjdGVkIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAg
cmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxzZSwgY2FudmFzMSwgdmlkZW8pOworICAgIH0sICJU
cmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAg
ICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKHRydWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9
LCAiVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjayIpOworCisgICAgcHJv
bWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAg
ICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAg
fSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411563</attachid>
            <date>2020-10-16 06:00:32 -0700</date>
            <delta_ts>2020-10-19 02:35:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201016150029.patch</filename>
            <type>text/plain</type>
            <size>44023</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi42ZDFh
ZWY5ZTQ5NmNmYzdmYzdiYjJjNmZmYWNhMzVhYWU5NGQ0OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwOgorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tOgorICAgICAgICAod2VicnRjOjpjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
YXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06CisgICAgICAg
ICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1lXSk6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRXaXRo
SDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkgY3JlYXRlRGVjb2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENWaWRlb0RlY29kZXJWVEJWUDkubW06IEFkZGVkLgorICAgICAgICAoUlRDRnJhbWVEZWNv
ZGVQYXJhbXM6OlJUQ0ZyYW1lRGVjb2RlUGFyYW1zKToKKyAgICAgICAgKFZQOUJ1ZmZlclRvQ01T
YW1wbGVCdWZmZXIpOgorICAgICAgICAodnA5RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlYWxsb2NdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9EZWNvZGVyVlRCVlA5IHN0YXJ0RGVjb2RlV2l0aE51bWJlck9mQ29yZXM6XSk6Cisg
ICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBkZWNvZGU6bWlzc2luZ0ZyYW1lczpjb2Rl
Y1NwZWNpZmljSW5mbzpyZW5kZXJUaW1lTXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBkZWNvZGVEYXRhOnNpemU6dGltZVN0YW1wOl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgc2V0Q2FsbGJhY2s6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBzZXRFcnJvcjpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJl
bGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSByZXNldERl
Y29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBj
b25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29k
ZXJWVEJWUDkgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSBzZXRWaWRlb0Zvcm1hdDpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAgICAgICAqIFNvdXJjZS93ZWJy
dGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAg
ICAgICAgKHdlYnJ0Yzo6T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rl
cik6CisgICAgICAgICogbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjAtMTAtMTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBsZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBkYzhkZTRhZGE2ZDFjYWIxMmYxYjFlYjNlMmY0ZTdhNGY5MTRmNzJmLi5lZGJl
ZDNmYTRjNjFiMTAwZjczMTJlNDcyMzI4YWEyMjE2MjBjZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMjAtMTAtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2RlciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdGlu
ZyBzdXBwb3J0IHRvIGVuYWJsZSBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIgZm9yIFdlYlJUQy4K
KworICAgICAgICBUZXN0OiB3ZWJydGMvdnA5LXZ0Yi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZGVy
RmFjdG9yeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRXZWJSVENWUDlWVEJTdXBwb3J0KToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAy
MC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIE1lZGlhUGxheWVyOjptX3Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAppbmRleCBl
M2U2MTFhMTE4ODRjNjAwYjcyYmM3OWU4ZmY0MmFmNTZjMzQzNjZiLi42MWVhNjZkY2FiM2MxNjAw
NDFiOWNiODg0ZTU3OWJlNjBkYzJkM2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCkBAIC0x
MDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0aW5BdWRpb0VuY29kZXJGYWN0
b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2UxNlJlbW92ZUNh
bmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2FuZGlkYXRlRU5TMV85YWxsb2Nh
dG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRlSW50ZXJmYWNlMTBzZXJ2ZXJf
dXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1c0ViCi1fX1pONndlYnJ0YzI2
Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlF
CitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1
RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pONndlYnJ0YzI2Y3JlYXRlV2Vi
S2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFCiBfX1pONndl
YnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgogX19aTjZ3ZWJydGMzMXNldEgy
NjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhw
CmluZGV4IGUzZTYxMWExMTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRj
YWIzYzE2MDA0MWI5Y2I4ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
U3NpbS5leHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1
ZGlvRW5jb2RlckZhY3RvcnlFdgogX19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVy
ZmFjZTE2UmVtb3ZlQ2FuZGlkYXRlc0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRh
dGVFTlMxXzlhbGxvY2F0b3JJUzRfRUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRl
cmZhY2UxMHNlcnZlcl91cmxFdgogX19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIK
LV9fWk42d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVF
TlNfOVdlYktpdFZQOUUKK19fWk42d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVO
U18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2Vi
cnRjMjZjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktp
dFZQOUUKIF9fWk42d2VicnRjMjlzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pO
NndlYnJ0YzMxc2V0SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5l
eHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHAKaW5kZXggYjlkNjI1OTcwOGU5MDg4OWRlMWZiNjNhZGEwZjRlMGI3M2M1YTdkMS4u
NGVlZGQ2ZWU5OTZjYjZiOGE2MTkwMzYxNzA1NmQ3NGZiZTNhMmQ2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMubWFjLmV4cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGlu
QXVkaW9FbmNvZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50
ZXJmYWNlMTZSZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRp
ZGF0ZUVOUzFfOWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUlu
dGVyZmFjZTEwc2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNF
YgotX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5
RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9f
Wk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2Vi
S2l0RGVjb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQppbmRleCBkMDVkMDYyMjQ5YzZhYWU1MWM5YTYw
MTU4ZjMxMmVjMzcyZGFmMzVjLi4yODdlMTk2ZjAxYjhkNTBhZDMwMGNhNjU2NGE4ZDRjZDBhMTEy
NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tCkBAIC0xNjcs
OSArMTY3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNv
ZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMKICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29kZXI+KGlkZW50aWZpZXIpOwogfQogCi1zdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFj
dG9yeShXZWJLaXRIMjY1IHN1cHBvcnRzSDI2NSwgV2ViS2l0VlA5IHN1cHBvcnRzVlA5KQorc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVj
b2RlckZhY3RvcnkoV2ViS2l0SDI2NSBzdXBwb3J0c0gyNjUsIFdlYktpdFZQOSBzdXBwb3J0c1ZQ
OSwgV2ViS2l0VlA5VlRCIHN1cHBvcnRzVlA5VlRCKQogewotICAgIGF1dG8gaW50ZXJuYWxGYWN0
b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IHN1cHBvcnRzSDI2NSA9PSBXZWJLaXRI
MjY1OjpPbiB2cDk6IHN1cHBvcnRzVlA5ID09IFdlYktpdFZQOTo6T25dKTsKKyAgICBhdXRvIGlu
dGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoW1tSVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdpdGhIMjY1OiBzdXBwb3J0c0gyNjUg
PT0gV2ViS2l0SDI2NTo6T24gdnA5OiBzdXBwb3J0c1ZQOSA9PSBXZWJLaXRWUDk6Ok9uIHZwOVZU
Qjogc3VwcG9ydHNWUDlWVEIgPT0gV2ViS2l0VlA5VlRCOjpPbl0pOwogICAgIGlmICh2aWRlb0Rl
Y29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeT4oc3RkOjptb3ZlKGludGVybmFsRmFj
dG9yeSkpOwogICAgIHJldHVybiBpbnRlcm5hbEZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxp
dGllcy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaAppbmRleCA1MDljZGY1NDUzZTMyMjQwZTFiMTg0MmZiYWU0
NTFhNjRlNjdmZDM0Li4wN2Q1Y2UzNzRiZjYyODBiYmM3YTJjZTRlMGUwMDI5MWIyYmJiZTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKQEAgLTQyLDkgKzQy
LDEwIEBAIGNsYXNzIFZpZGVvRnJhbWU7CiAKIGVudW0gY2xhc3MgV2ViS2l0SDI2NSB7IE9mZiwg
T24gfTsKIGVudW0gY2xhc3MgV2ViS2l0VlA5IHsgT2ZmLCBPbiB9OworZW51bSBjbGFzcyBXZWJL
aXRWUDlWVEIgeyBPZmYsIE9uIH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5j
b2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdEgyNjUsIFdlYktp
dFZQOSk7Ci1zdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRIMjY1LCBXZWJLaXRWUDkpOworc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZh
Y3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5LCBXZWJLaXRWUDlWVEIpOwogCiB2b2lkIHNldEFw
cGxpY2F0aW9uU3RhdHVzKGJvb2wgaXNBY3RpdmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMv
UlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0
aXZlVmlkZW9EZWNvZGVyLm1tCmluZGV4IGRjZTQ3OWM4OTA5MTEzZjkxYWJhNjc3YWUyZjczMGYy
MmE2ZTc0YjAuLjJiNGFjYjkxYjQ1YzYxMmE5MDUwOWZmODhhN2UxYTljYTFmODE1NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2FwaS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRl
b19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCkBAIC01NCw3ICs1NCw5IEBA
CiB9CiAKIC0gKE5TU3RyaW5nICopaW1wbGVtZW50YXRpb25OYW1lIHsKKyNpZiAhZGVmaW5lZChX
RUJSVENfV0VCS0lUX0JVSUxEKQogICBSVENfTk9UUkVBQ0hFRCgpOworI2VuZGlmCiAgIHJldHVy
biBuaWw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkuaAppbmRleCBlMjgyMGIyMzAwOWU5ZGNlZGQxNDQ3OWYxYTVmMDkwYTU2MWQ0MmIy
Li4yNGExZDYzY2Y3MzU2YzNhNzFkYzkyZWU1NmU3MDhhMzUxZTA0M2U5IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0yMSw3ICsy
MSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmli
dXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgOiBOU09iamVj
dCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KLS0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBw
b3J0SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDk7CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wp
c3VwcG9ydEgyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBwb3J0c1ZQ
OVZUQjsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggZTVmNGEyMDQ3YWQ1OTY2
YzAzZGIxNjU3MGQxMjM5ZTY1N2YzYjhhNy4uZTA0MjJjZjUwMDY0N2VmY2Q4NzIyODU2MTBjZDAy
M2E2ZjRhZjAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9E
ZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkubQpAQCAtMTcsMjMgKzE3LDMwIEBACiAjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVv
Q29kZWNJbmZvLmgiCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICNpbXBvcnQgImFwaS92
aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWUDkuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRGVjb2Rl
clZUQlZQOS5oIgogI2VuZGlmCiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKICNpbXBv
cnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgogI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2
NS5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKwog
QGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IHsKICAgYm9vbCBf
c3VwcG9ydHNIMjY1OwogICBib29sIF9zdXBwb3J0c1ZQOTsKKyAgYm9vbCBfc3VwcG9ydHNWUDlW
VEI7CiB9CiAKLS0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5Oihib29s
KXN1cHBvcnRzVlA5CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1IHZwOToo
Ym9vbClzdXBwb3J0c1ZQOSB2cDlWVEI6KGJvb2wpc3VwcG9ydHNWUDlWVEIKIHsKICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKICAgaWYgKHNlbGYpIHsKICAgICAgIF9zdXBwb3J0c0gyNjUgPSBzdXBw
b3J0c0gyNjU7CiAgICAgICBfc3VwcG9ydHNWUDkgPSBzdXBwb3J0c1ZQOTsKKyAgICAgIC8vIFVz
ZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkgb25jZSBhZGRlZCB0byBDTUZvcm1hdERlc2NyaXB0aW9u
LmgKKyAgICAgIF9zdXBwb3J0c1ZQOVZUQiA9IHN1cHBvcnRzVlA5ICYmIChzdXBwb3J0c1ZQOVZU
QiB8fCBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoJ3ZwMDknKSk7Cis7CiAgIH0KICAgcmV0
dXJuIHNlbGY7CiB9CkBAIC05MSw3ICs5OCwxMSBAQCAtIChpZClpbml0V2l0aEgyNjU6KGJvb2wp
c3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogI2VuZGlmCiAjaWYgZGVmaW5lZChS
VENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzpr
UlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7Ci0gICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDkg
dnA5RGVjb2Rlcl07CisgICAgICBpZiAoX3N1cHBvcnRzVlA5VlRCKSB7CisgICAgICAgIHJldHVy
biBbW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBhbGxvY10gaW5pdF07CisgICAgICB9IGVsc2Ugewor
ICAgICAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAgICAgIH0K
ICNlbmRpZgogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQOS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBjNDA0MzZkMzdjZTQ0ODUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQOS5oCkBA
IC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0RlY29kZXIu
aCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgi
V0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVyZmFjZSBSVENWaWRlb0RlY29kZXJW
VEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorLSAoTlNJbnRlZ2VyKWRlY29kZURh
dGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZTooc2l6ZV90KXNpemUKKyAgICB0aW1l
U3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRl
b0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMmJkODJlZjE1ZWYyOTEwMGYzYzBiYmJm
YmVhNjkxYzI3OWM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKy8q
CisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hseSBiYXNlZCBvbiBSVENWaWRlb0Rl
Y29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5LmgiCisK
KyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlk
ZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9ydCAi
YmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2Zy
YW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisjaW1w
b3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlk
ZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNfYmFz
ZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAicnRj
X2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBkZWNv
ZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBk
ZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zIHsKKyAgUlRDRnJh
bWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgY2IsIGludDY0X3QgdHMpIDog
Y2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNr
IGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKK0BpbnRlcmZhY2UgUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9yOihPU1N0YXR1cyllcnJvcjsKK0Bl
bmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihjb25zdCB1
aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVm
ZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxvY2tCdWZmZXJSZWYgbmV3X2Jsb2Nr
X2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9y
eUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1ZmZlcl9zaXplLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1v
cnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAg
fQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVkQ0YobmV3X2Jsb2NrX2J1ZmZlcik7
CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhidWZm
ZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3NpemUpKSB7CisgICAgcmV0dXJuIG51
bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVfYnVmZmVyID0gbnVsbHB0
cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51bGxwdHIsIG51bGxwdHIsIHZpZGVv
X2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgJnNhbXBsZV9idWZmZXIpKSB7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNhbXBsZV9idWZmZXI7Cit9CisKKy8v
IFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdo
ZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5RGVjb21wcmVzc2lvbk91dHB1dENh
bGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU1N0YXR1
cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVERlY29kZUluZm9G
bGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVkltYWdl
QnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVGlt
ZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+IGRl
Y29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVEZWNvZGVQYXJhbXMg
Kj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ1ZpZGVvRGVj
b2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENWaWRlb0RlY29kZXJWVEJWUDkgKilk
ZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0YXR1c107CisgICAgUlRDX0xPRyhM
U19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIFN0YXR1czogIiA8PCBzdGF0dXM7
CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZmZXIgKmZyYW1lQnVmZmVyID0gW1tS
VENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVsQnVmZmVyOmltYWdlQnVmZmVyXTsK
KyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAgICAgIFtbUlRDVmlkZW9GcmFtZSBh
bGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlvbl8wCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdldFNlY29uZHModGltZXN0YW1wKSAq
IHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRl
Y29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRlY29kZWRG
cmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVy
VlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIF92aWRlb0Zvcm1hdDsKKyAg
VlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVzc2lvblNlc3Npb247CisgIFJUQ1Zp
ZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NTdGF0dXMgX2Vycm9yOworICBpbnQz
Ml90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQorCistICh2b2lkKWRlYWxsb2Mgewor
ICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zv
cm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RGVjb2RlV2l0aE51bWJlck9m
Q29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19P
SzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5jb2RlZEltYWdlICopaW5wdXRJbWFn
ZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICBjb2RlY1Nw
ZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVjaWZpY0luZm8+KWluZm8KKyAgICAg
ICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgeworICBSVENfRENIRUNLKGlu
cHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2UuZnJhbWVUeXBlID09IFJUQ0ZyYW1l
VHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9IGlucHV0SW1hZ2UuZW5jb2RlZFdp
ZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5jb2RlZEhlaWdodDsKKyAgfQorICBy
ZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZlci5ieXRl
cyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dEltYWdlLnRp
bWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICop
ZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6KHVpbnQz
Ml90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBub0VycikgeworICAgIFJUQ19MT0co
TFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOworICAgIF9lcnJvciA9
IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKworICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOwor
ICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2UgYWRkZWQgdG8gQ01Gb3JtYXREZXNj
cmlwdGlvbi5oCisgIGlmIChub0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3ZwMDknLCBfd2lkdGgsIF9oZWlnaHQsIG51bGxwdHIsICZm
b3JtYXREZXNjcmlwdGlvbikpCisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsK
KworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWY+IGlu
cHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRDRihmb3JtYXREZXNjcmlwdGlvbik7CisgIGlmIChpbnB1
dEZvcm1hdCkgeworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQs
IGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBpZiAoIUNN
Rm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9ybWF0KSkg
eworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOworICAgICAg
aW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciAh
PSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlkZW9Gb3Jt
YXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZlIGZvcm1h
dCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAvLyBUaGlz
IGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUg
bmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVxdWVzdCBh
IGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19MT0coTFNf
V0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVx
dWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIGF1
dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpTY29wZWRDRihWUDlCdWZmZXJUb0NNU2FtcGxlQnVmZmVy
KGRhdGEsIHNpemUsIF92aWRlb0Zvcm1hdCkpOworICBpZiAoIXNhbXBsZUJ1ZmZlcikgeworICAg
IHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKworICBWVERlY29kZUZyYW1l
RmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNEZWNv
bXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+IGZyYW1l
RGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVEZWNv
ZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRE
ZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Npb25TZXNz
aW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCksIGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBhcmFtcy5y
ZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8gUmUtaW5p
dGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3aGlsZSB0
aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBvciBkZWNvZGVyIG1hbGZ1bmN0aW9ucyBhbmQgcmV0cnkg
dGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vzc2lvbkVy
ciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9EZWNvZGVyTWFsZnVuY3Rpb25FcnIpICYmCisgICAgICBb
c2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBXRUJSVENfVklERU9fQ09ERUNfT0sp
IHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lIHdpdGgg
Y29kZTogIiA8PCBzdGF0dXMKKyAgICAgICAgICAgICAgICAgICAgIDw8ICIgcmV0cnlpbmcgZGVj
b2RlIGFmdGVyIGRlY29tcHJlc3Npb24gc2Vzc2lvbiByZXNldCI7CisgICAgZnJhbWVEZWNvZGVQ
YXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgdGltZVN0YW1w
KSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAg
ICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlci5nZXQoKSwgZGVjb2RlRmxh
Z3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CisgIH0KKyNlbmRpZgor
ICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxl
ZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gV0VC
UlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNf
T0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrKWNh
bGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0gKHZvaWQpc2V0RXJyb3I6
KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vycm9yID0gZXJyb3I7Cit9CisKKy0gKE5TSW50ZWdlcily
ZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgc2Vzc2lvbiBzbyB0
aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIgYW5kIGl0CisgIC8vIGlzIHNhZmUgdG8gbnVs
bCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25d
OworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKKyAgX2NhbGxiYWNrID0gbnVsbHB0
cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworI3ByYWdtYSBtYXJrIC0g
UHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRl
c3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gTmVlZCB0byB3YWl0IGZvciB0aGUg
Zmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsK
KyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworICB9CisKKyAgLy8gU2V0IGtleXMg
Zm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBhdGliaWx0eSwgd2hpY2ggbWFrZXMgdGhlIGVu
Y29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZlcnMgd2l0aCBHUFUgYmFja2VkIG1lbW9yeS4g
VGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAgLy8gdGhlIHBpeGVsIGJ1ZmZlcnMgZGlyZWN0
bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9hZCBsYXRlciBkdXJpbmcKKyAgLy8gcmVuZGVy
aW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJlY2F1c2Ugd2UgYXJlIGNvbnZlcnRpbmcgYmFj
ayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVyIGRlY29kZSwgYnV0IGV2ZW50dWFsbHkgd2Ug
d2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENWUGl4ZWxCdWZmZXJzIGRpcmVjdGx5IHRvIHRo
ZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBNYXliZSBvbmx5IHNldCBPcGVuR0wvSU9T
dXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRoYXQKKyAgLy8gd2UgY2FuIHBhc3MgQ1ZQaXhl
bEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4gZGVjb2RlciBvdXRwdXQuCisgIHN0YXRpYyBz
aXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVSZWYga2V5c1thdHRyaWJ1
dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVsQnVmZmVy
T3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFDKQorICAg
IGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAgIGtDVlBp
eGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZlclBpeGVs
Rm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFsdWUgPSBD
cmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2NF90IG52
MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsK
KyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPSBDRk51bWJlckNyZWF0ZShudWxscHRyLCBrQ0ZO
dW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRyaWJ1dGVz
U2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLCBwaXhlbEZvcm1hdH07Cisg
IENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlz
LCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7CisgICAg
Q0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxwdHI7
CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0KTsK
KyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgVlREZWNvbXByZXNzaW9uT3V0cHV0
Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgdnA5RGVjb21wcmVzc2lvbk91dHB1dENh
bGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAqKXNlbGYsCisgIH07CisgIE9TU3RhdHVzIHN0YXR1cyA9
IFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCBfdmlkZW9Gb3Jt
YXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNlc3Npb24p
OworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAg
ICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBkZWNvbXByZXNzaW9uIHNl
c3Npb246ICIgPDwgc3RhdHVzOworICAgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lv
bl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBbc2VsZiBj
b25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbiB7Cisg
IFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19J
T1MpCisgIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwga1ZURGVj
b21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYK
K30KKworLSAodm9pZClkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24geworICBpZiAoX2RlY29t
cHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQorICAg
IFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBpZiAo
W1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lv
bldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICB9
CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9k
ZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9kZWNvbXByZXNzaW9uU2Vzc2lv
bik7CisgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistICh2
b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYpdmlkZW9Gb3Jt
YXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09IHZpZGVvRm9ybWF0KSB7CisgICAgcmV0dXJuOwor
ICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJlbGVhc2UoX3ZpZGVvRm9ybWF0KTsK
KyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRlb0Zvcm1hdDsKKyAgaWYgKF92aWRlb0Zvcm1hdCkg
eworICAgIENGUmV0YWluKF92aWRlb0Zvcm1hdCk7CisgIH0KK30KKworLSAoTlNTdHJpbmcgKilp
bXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQorCitAZW5k
CisKKyNlbmRpZiAvLyBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9v
YmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2Zh
Y3RvcnkubW0KaW5kZXggMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUyNWJkOC4u
MWNmOTQ5ZGMxN2EzYmMwNzdlZGU0MjhhYzg3ZmRkOGRiYjFjZmYwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3Ny
Yy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVj
b2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAsNyArMTAwLDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRl
b0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoCiAg
ICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0
IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KICAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tpbmRPZkNs
YXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKLSAgICAgIGlmIChb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkg
eworI2lmICFkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAgICAgIGlmIChbY29kZWNO
YW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkgeworI2Vs
c2UKKyAgICAgICAgaWYgKCFbZGVjb2Rlci5pbXBsZW1lbnRhdGlvbk5hbWUgaXNFcXVhbDpAIlZp
ZGVvVG9vbGJveCJdKSB7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBlZE5hdGl2
ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVjb2Rlcj4o
bmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDRlNGE1MzgxZjg3MDBkNGJlM2MxM2UzMDAyMzIyMjdiYmM2YzEwODAuLmRkZWU2
YjkzZWUyMTY2YjI2OGJmZWEwOTViYTU3MGM2NmNlNmIwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDcgQEAKIAkJNDEyOTlCOTIyMTI3MzY3QjAwQjM0MTRC
IC8qIGlzYWNfdmFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQuaCAqLzsgfTsKIAkJNDEy
OTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlCOTAyMTI3MzY3QjAwQjM0MTRCIC8q
IHBpdGNoX2ZpbHRlci5oICovOyB9OwogCQk0MTI5OUI5NzIxMjczNjkxMDBCMzQxNEIgLyogZmFr
ZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlwZS5oICov
OyB9OworCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyRkY5
MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLzsgfTsKIAkJ
NDEzMDkxRjMxRUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzA5MUYxMUVG
OENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmggKi87IH07CiAJCTQx
MzA5MUY0MUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDkxRjIxRUY4
Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgKi87IH07CiAJCTQx
MzA5MUZCMUVGOENGRjgwMDc1N0M1NSAvKiBidWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5j
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzA5MUY5
MUVGOENGRjMwMDc1N0M1NSAvKiBidWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYyAqLzsg
fTsKQEAgLTE0MjIsNyArMTQyMyw2IEBACiAJCTQxNzk1M0I4MjE2OTgyNDIwMDI4MjY2QiAvKiBS
VENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NC5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjAyMTY5ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVj
b2RlckZhY3RvcnlIMjY0Lm0gKi87IH07CiAJCTQxNzk1M0I5MjE2OTgyNDIwMDI4MjY2QiAvKiBS
VENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjEyMTY5ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5j
b2RlckZhY3RvcnlIMjY0Lm0gKi87IH07CiAJCTQxNzk1M0JBMjE2OTgyNDIwMDI4MjY2QiAvKiBS
VENDb2RlY1NwZWNpZmljSW5mb0gyNjQrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi87IH07Ci0JCTQxNzk1M0JCMjE2OTgyNDIw
MDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3OTUzQjMyMTY5ODI0MjAwMjgyNjZC
IC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggKi87IH07CiAJCTQxNzk1M0JDMjE2
OTgyNEIwMDI4MjY2QiAvKiBoZWxwZXJzLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDExNTIxRDMyMTY5ODIxRjAwMEFCQUY3IC8qIGhlbHBlcnMuY2Mg
Ki87IH07CiAJCTQxNzk1M0JEMjE2OTgyNEIwMDI4MjY2QiAvKiBoZWxwZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyMjVGNTIxNjk4MUY0MDBB
OTFDOUIgLyogaGVscGVycy5oICovOyB9OwogCQk0MTc5NTNCRjIxNjk4MjRCMDAyODI2NkIgLyog
bmFsdV9yZXdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDExNTIxRDUyMTY5ODIyMDAwMEFCQUY3IC8qIG5hbHVfcmV3cml0ZXIuaCAqLzsgfTsK
QEAgLTQzNDUsNiArNDM0NSw4IEBACiAJCTQxMjk5QjlCMjEyNzM2REUwMEIzNDE0QiAvKiBwaXRj
aF9pbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBpdGNoX2luZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEyOTlCOUMyMTI3MzZERTAwQjM0MTRCIC8qIHJubi5jYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IHJubi5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOTlCOUQy
MTI3MzZERjAwQjM0MTRCIC8qIHNwZWN0cmFsX2ZlYXR1cmVzX2ludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHNwZWN0cmFsX2ZlYXR1cmVzX2ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMkZGOTMyMjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJW
UDkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRlb0RlY29kZXJWVEJWUDkubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTMzMjUzOUIzQzkwMDFERjAzNiAvKiBS
VENWaWRlb0RlY29kZXJWVEJWUDkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDVmlkZW9EZWNvZGVyVlRC
VlA5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5MUYxMUVGOENGOTEwMDc1
N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJl
YW1fcmVjZWl2ZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBydHBf
dmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3Rvcnku
Y2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBidWlsdGluX2F1ZGlvX2Vu
Y29kZXJfZmFjdG9yeS5jYzsgcGF0aCA9IGF1ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2VuY29k
ZXJfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDU2LDYgKzEw
MDU4LDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVy
SDI2NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNv
ZGVySDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0Rl
Y29kZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRl
b0RlY29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkzMjI1MzlCM0M5MDAxREYwMzYgLyogUlRD
VmlkZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAv
KiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAw
MDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVD
MjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8sCkBAIC0xNjcyNiw3
ICsxNjczMCw2IEBACiAJCQkJNDEzRTY3OEEyMTY5ODdCOTAwRUYzN0VEIC8qIFJUQ0NWUGl4ZWxC
dWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDU1MUZFMTk5MUEwMDM3M0U5OSAvKiBS
VENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NzAxRkUxOTkxQTAwMzcz
RTk5IC8qIFJUQ0RhdGFDaGFubmVsQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNDMjIxNjk4MjRCMDAyODI2NkIgLyogUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDUyMUZF
MTk5MUEwMDM3M0U5OSAvKiBSVENEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNB
MjQ1RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRUFHTFZpZGVvVmlldy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xOTM5OSw2ICsxOTQwMiw3IEBACiAJCQkJNDFFODRCRDIyNDM3M0MxNDAwRDM0RTQxIC8q
IFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc2ODIxNjk4
NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVyVlA4Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE0MDM1RUYyNEFBMEVCQzAwQkNFOUIyIC8qIFJUQ1ZpZGVvRGVjb2RlclZQOS5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMkZGOTM0MjUzOUI3NjQwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJW
VEJWUDkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCOTIxNjk4MjQyMDAyODI2NkIgLyog
UlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0NB
MjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFFODRCRDMyNDM3M0MxQTAwRDM0RTQxIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggZWJj
ZjcxOTNmNWE1MzI0MjBkMTRjNzlhOTljYTcyM2E0NmEwZDRhNS4uYzZiMmNiOTgzZWYyN2I0ZDZk
MGE4YTE3YjRjN2I5Y2M3Njk4NzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKQEAgLTEwOCw4ICsxMDgsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRIMjY1U3VwcG9y
dChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNIMjY1ID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFZQ
OVN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5ID0gdmFsdWU7IH0KKyAgICB2b2lk
IHNldFZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5VlRCID0gdmFsdWU7
IH0KICAgICBib29sIGlzU3VwcG9ydGluZ0gyNjUoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRz
SDI2NTsgfQogICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBw
b3J0c1ZQOTsgfQorICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5VlRCKCkgY29uc3QgeyByZXR1cm4g
bV9zdXBwb3J0c1ZQOVZUQjsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsg
fQogCiAgICAgLy8gQ2FsbGJhY2sgaXMgZXhlY3V0ZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4K
QEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2Rpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzSDI2NSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzVlA5IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3Vw
cG9ydHNWUDlWVEIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVMb2dnaW5nIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggOTIwMWQwZTMyYzM0OGIyZDNl
M2IwMDk3YjQ3OTBkNDdjZDI5MjhmNC4uY2IxMWY4MWZkM2YxMWVhZjgxODkxOTZiMTQ4N2FlZDA3
YzZlNTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNw
cApAQCAtNjMsNyArNjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJG
YWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZAogICAgIGlmICghd2Vi
UlRDQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHdl
YnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0aW5nSDI2NSgpID8gd2Vi
cnRjOjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T2ZmLCBpc1N1cHBvcnRp
bmdWUDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPZmYp
OworICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KGlzU3VwcG9y
dGluZ0gyNjUoKSA/IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T24gOiB3ZWJydGM6OldlYktpdEgyNjU6
Ok9mZiwgaXNTdXBwb3J0aW5nVlA5KCkgPyB3ZWJydGM6OldlYktpdFZQOTo6T24gOiB3ZWJydGM6
OldlYktpdFZQOTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDlWVEIoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5
VlRCOjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPZmYpOwogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpj
cmVhdGVFbmNvZGVyRmFjdG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggYTA5MzA1ZjI4NGNlY2E2NWQ2ODQ2MTg5ZTk3ZGRhYjc3NTUxMDZkNi4uNDBlNzRhMzc2Yzg3
NmQxYjgxZmVlNzk4ZjVlZTM2NGMzNDY0Zjc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRXZWJSVENW
UDlTdXBwb3J0KGJvb2wgdmFsdWUpCiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldFdl
YlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkKK3sKKyNpZiBVU0UoTElCV0VCUlRDKQorICAg
IGlmIChhdXRvKiBwYWdlID0gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKSkgeworICAgICAgICBw
YWdlLT5saWJXZWJSVENQcm92aWRlcigpLnNldFZQOVZUQlN1cHBvcnQodmFsdWUpOworICAgICAg
ICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNsZWFyRmFjdG9yeSgpOworICAgIH0KKyNlbmRp
ZgorfQorCiB2b2lkIEludGVybmFsczo6c2V0RW5hYmxlV2ViUlRDRW5jcnlwdGlvbihib29sIHZh
bHVlKQogewogI2lmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCBhMTZmOTUyZjE1NTAwMWJkNjM1MmFlNTA5N2FkNjg2NmY0ODdhMjQ1Li45YTdjMDcyOTU0
M2U5YTFiMTA0ZmMwYTM2N2FiZDkwN2Q4NWM3OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTU5NSw2ICs1OTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVJvdGF0aW9u
Rm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoUlRDUGVlckNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHNl
dFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2wpOwogICAgIHZvaWQgc2V0V2ViUlRDVlA5U3VwcG9ydChi
b29sKTsKKyAgICB2b2lkIHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRFRMUzEwKGJv
b2wpOwogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhM2Y0NTZlMDg5ZjdiZmExZmYxYTczYWUzNWQ0
N2E0Y2I5YzE5NDExLi41MjkzNGRmNzlhMmE4ZTc0NmQ3MTBkY2Y3MjJiOTc4ZmE1MzU5OGE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03OTMsNiArNzkzLDcgQEAgZW51
bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdW5kZWZp
bmVkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcyhSVENQZWVyQ29ubmVjdGlv
biBjb25uZWN0aW9uKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdW5kZWZpbmVkIHNldFdl
YlJUQ0gyNjVTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAgICAgW0NvbmRpdGlvbmFsPVdFQl9S
VENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CisgICAg
W0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlWVEJTdXBwb3J0KGJv
b2xlYW4gYWxsb3dlZCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmlu
ZWQgc2V0TW9ja0F1ZGlvVHJhY2tDaGFubmVsTnVtYmVyKE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ss
IHVuc2lnbmVkIHNob3J0IGNvdW50KTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1
bmRlZmluZWQgc2V0U2hvdWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlKGJv
b2xlYW4gc2hvdWxkSW50ZXJydXB0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDYyZjM4YmRkM2EzZGMxMDBiOTBmMTQ4
MjBmN2M3Njg3NTlkOWJlLi5lYTM2NDExOWIzYzk3NGRjOGUxNjJiZmU1OWQ2MDk3ZWQwMTVjNDU1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2RlciBzaG91bGQgYmUgYWJs
ZSB0byB1c2UgVlRCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHdlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
cnRjL3ZwOS12dGIuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIEZ1amlpIEhpcm9ub3JpICA8
SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2Vk
IHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDA0NzA2M2MxM2ZmNTA0NjJkMWM2MmZkZDhjYWFkOGExZTRkZDYwMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACisKKworUEFTUyBWUDkgaW4gZ2V0Q2FwYWJpbGl0aWVzCitQQVNTIFZlcmlm
eSBWUDkgYWN0aXZhdGlvbgorUEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlCitQQVNTIEVuc3Vy
aW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQs
IHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sKK1BBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVv
IHNob3VsZCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90
IGJlIGJsYWNrIDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRt
bCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBhNDIwNjhm
Zjg4ZDJjODY0NWI5NjhjZTA0ZTNhZDcwM2QyYTRiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICAgICAgICA8dGl0bGU+VlA5IFZUQiBpbiBXZWJSVEM8L3RpdGxlPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxh
eSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAg
PGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgor
ICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMyIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9j
YW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMiIHdpZHRoPSIzMjAiIGhlaWdodD0i
MjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQ+CitsZXQgaGFzVlA5OwordGVzdCgoKSA9PiB7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRXZWJSVENW
UDlTdXBwb3J0KHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFdlYlJUQ1ZQOVZU
QlN1cHBvcnQodHJ1ZSk7CisgICAgfQorCisgICAgY29kZWNzID0gUlRDUnRwU2VuZGVyLmdldENh
cGFiaWxpdGllcygidmlkZW8iKS5jb2RlY3M7CisgICAgaGFzVlA5ID0gY29kZWNzLnNvbWUoKGNv
ZGVjKSA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlwZSA9PSAidmlkZW8vVlA5IjsgfSk7CisgICAg
YXNzZXJ0X3RydWUoaGFzVlA5KTsKK30sICJWUDkgaW4gZ2V0Q2FwYWJpbGl0aWVzIik7CisKK2lm
IChoYXNWUDkpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgcGMuYWRkVHJhbnNj
ZWl2ZXIoInZpZGVvIik7CisgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gYXdhaXQgcGMuY3Jl
YXRlT2ZmZXIoKTsKKyAgICAgICAgcGMuY2xvc2UoKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVz
Y3JpcHRpb24uc2RwLmluZGV4T2YoIlZQOSIpICE9PSAtMSwgIlZQOSBjb2RlYyBpcyBpbiB0aGUg
U0RQIik7CisgICAgfSwgIlZlcmlmeSBWUDkgYWN0aXZhdGlvbiIpCisKKyAgICB2YXIgdHJhY2s7
CisgICAgdmFyIHJlbW90ZVRyYWNrOworICAgIHZhciByZWNlaXZpbmdDb25uZWN0aW9uOworICAg
IHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDAsIGZh
Y2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigobG9jYWxTdHJlYW0pID0+IHsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAg
ICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworCisgICAg
ICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAg
ICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3Ry
ZWFtKTsKKyAgICAgICAgICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAgICAg
ICAgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uID0gc2Vjb25kQ29ubmVjdGlvbjsKKyAg
ICAgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVRyYWNrID0gdHJhY2tFdmVudC50
cmFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJhY2tFdmVudC5zdHJlYW1z
WzBdKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9LCB7IG9ic2Vy
dmVPZmZlciA6IChvZmZlcikgPT4geworICAgICAgICAgICAgICAgICAgICBvZmZlci5zZHAgPSBz
ZXRDb2RlYyhvZmZlci5zZHAsICJWUDkiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9m
ZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbigocmVtb3RlU3RyZWFtKSA9PiB7CisgICAg
ICAgICAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgICAgICAgICByZXR1
cm4gdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9LCAiU2V0dGluZyB2aWRlbyBleGNo
YW5nZSIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgaWYgKHJlY2Vpdmlu
Z0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24ub25j
b25uZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHJlY2Vp
dmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICAgICAgfSk7
CisgICAgfSwgIkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkIik7CisKKyAg
ICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFj
ayhmYWxzZSwgY2FudmFzMSwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2aWRl
byBzaG91bGQgbm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
KyAgICAgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gY2hlY2tWaWRl
b0JsYWNrKHRydWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZGlzYWJsZWQs
IHZpZGVvIHNob3VsZCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7
CisgICAgICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gY2hlY2tWaWRl
b0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQs
IHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411729</attachid>
            <date>2020-10-19 02:35:13 -0700</date>
            <delta_ts>2020-10-19 02:38:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201019113510.patch</filename>
            <type>text/plain</type>
            <size>61209</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5kODM2
MWZjZmM0ZTQyYWMxNTVmNDY4ZDgzMTk5NDM0NzNmZjExYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMC0xMC0xOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICBBZGQgU1BJIGhlYWRlciBmaWxlcyBpbiBjYXNlIHRoZXkg
YXJlIG5vdCBhdmFpbGFibGUuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9TLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKyAgICAgICAgKiBT
b3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0U1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WVFZpZGVvRGVjb2RlclNQSS5oOiBBZGRlZC4K
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbToKKyAg
ICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAgICAgICAqIFNv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVjb2Rlci5jcHA6CisgICAgICAgICh3ZWJy
dGM6OmNyZWF0ZVdlYktpdFZQOURlY29kZXIpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06Cisg
ICAgICAgICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1l
XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGlu
aXRXaXRoSDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBjcmVhdGVEZWNvZGVyOl0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaDogQWRk
ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbTogQWRkZWQuCisgICAgICAgIChSVENGcmFtZURl
Y29kZVBhcmFtczo6UlRDRnJhbWVEZWNvZGVQYXJhbXMpOgorICAgICAgICAoVlA5QnVmZmVyVG9D
TVNhbXBsZUJ1ZmZlcik6CisgICAgICAgICh2cDlEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sp
OgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgZGVhbGxvY10pOgorICAgICAgICAo
LVtSVENWaWRlb0RlY29kZXJWVEJWUDkgc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlY29kZTptaXNzaW5nRnJhbWVzOmNv
ZGVjU3BlY2lmaWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IGRlY29kZURhdGE6c2l6ZTp0aW1lU3RhbXA6XSk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IHNldEVycm9yOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkg
cmVsZWFzZURlY29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJlc2V0
RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlclZUQlZQOSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVyVlRCVlA5IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tOgor
ICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNv
ZGVyKToKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGRjOGRlNGFkYTZkMWNhYjEyZjFiMWViM2UyZjRlN2E0ZjkxNGY3MmYuLmVk
YmVkM2ZhNGM2MWIxMDBmNzMxMmU0NzIzMjhhYTIyMTYyMGNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0
aW5nIHN1cHBvcnQgdG8gZW5hYmxlIFZQOSBkZWNvZGluZyB0aHJvdWdoIFZUQiBmb3IgV2ViUlRD
LgorCisgICAgICAgIFRlc3Q6IHdlYnJ0Yy92cDktdnRiLmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29k
ZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTEwLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgTWVkaWFQbGF5ZXI6Om1fdmlzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4
IGUzZTYxMWExMTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRjYWIzYzE2
MDA0MWI5Y2I4ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZh
Y3RvcnlFdgogX19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3Zl
Q2FuZGlkYXRlc0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxv
Y2F0b3JJUzRfRUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZl
cl91cmxFdgogX19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRj
MjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQ
OUUKK19fWk42d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgy
NjVFTlNfOVdlYktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVX
ZWJLaXRFbmNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42
d2VicnRjMjlzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0
SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKaW5kZXggZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4uNjFlYTY2
ZGNhYjNjMTYwMDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9Tc2ltLmV4cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGlu
QXVkaW9FbmNvZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50
ZXJmYWNlMTZSZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRp
ZGF0ZUVOUzFfOWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUlu
dGVyZmFjZTEwc2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNF
YgotX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5
RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9f
Wk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFj
LmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMubWFjLmV4cAppbmRleCBiOWQ2MjU5NzA4ZTkwODg5ZGUxZmI2M2FkYTBmNGUwYjczYzVhN2Qx
Li40ZWVkZDZlZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5tYWMuZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0
aW5BdWRpb0VuY29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25J
bnRlcmZhY2UxNlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2Fu
ZGlkYXRlRU5TMV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRl
SW50ZXJmYWNlMTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1
c0ViCi1fX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRI
MjY1RU5TXzlXZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3Rv
cnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pO
NndlYnJ0YzI2Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlX
ZWJLaXRWUDlFCiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgog
X19aTjZ3ZWJydGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9D
TUJhc2VPYmplY3RTUEkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU3ZGI4MTNkN2Uz
YTkxNzgzNmZhODAyOGFiMTFiZjUyNTM3OWY1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0
U1BJLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9D
RlByaXYuaD4pCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNQmFzZU9iamVjdC5oPgorI2Vsc2UKKwor
I2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBr
Q01CYXNlT2JqZWN0X0NsYXNzVmVyc2lvbl8xID0gMSwKKyAgICBrQ01CYXNlT2JqZWN0X0NsYXNz
VmVyc2lvbl8yID0gMiwKKyAgICBrQ01CYXNlT2JqZWN0X0NsYXNzVmVyc2lvbl8zID0gMworfTsK
KworZW51bSB7CisgICAga0NNQmFzZU9iamVjdF9Qcm90b2NvbFZlcnNpb25fMSA9IDEKK307CisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQmFzZU9iamVjdCAqQ01CYXNlT2JqZWN0UmVmOwordHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlQ01CYXNlQ2xhc3MgKkNNQmFzZUNsYXNzSUQ7Cit0eXBlZGVmIHN0
cnVjdCBPcGFxdWVDTUJhc2VQcm90b2NvbCAqQ01CYXNlUHJvdG9jb2xJRDsKKwordHlwZWRlZiBP
U1N0YXR1cyAoKkNNQmFzZU9iamVjdENvcHlQcm9wZXJ0eUZ1bmN0aW9uKShDTUJhc2VPYmplY3RS
ZWYsIENGU3RyaW5nUmVmIHByb3BlcnR5S2V5LCBDRkFsbG9jYXRvclJlZiwgdm9pZCAqcHJvcGVy
dHlWYWx1ZU91dCk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQ01CYXNlT2JqZWN0U2V0UHJvcGVydHlG
dW5jdGlvbikoQ01CYXNlT2JqZWN0UmVmIG9iamVjdCwgQ0ZTdHJpbmdSZWYgcHJvcGVydHlLZXks
IENGVHlwZVJlZiAgcHJvcGVydHlWYWx1ZSk7CisKKyNwcmFnbWEgcGFjayhwdXNoKQorI3ByYWdt
YSBwYWNrKCkKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBDTUJhc2VDbGFzc1ZlcnNpb24gdmVyc2lv
bjsKKyAgICBDRlN0cmluZ1JlZiAoKmNvcHlQcm90b2NvbERlYnVnRGVzY3JpcHRpb24pKENNQmFz
ZU9iamVjdFJlZik7Cit9IENNQmFzZVByb3RvY29sOworI3ByYWdtYSBwYWNrKHBvcCkKKworI3By
YWdtYSBwYWNrKHB1c2gpCisjcHJhZ21hIHBhY2soKQorc3RydWN0IENNQmFzZVByb3RvY29sVlRh
YmxlIHsKKyAgICBjb25zdCBzdHJ1Y3QgT3BhcXVlQ01CYXNlUHJvdG9jb2xWVGFibGVSZXNlcnZl
ZCAqcmVzZXJ2ZWQ7CisgICAgY29uc3QgQ01CYXNlUHJvdG9jb2wgKmJhc2VQcm90b2NvbDsKK307
CisjcHJhZ21hIHBhY2socG9wKQorCit0eXBlZGVmIHN0cnVjdCBDTUJhc2VQcm90b2NvbFRhYmxl
RW50cnkgeworICAgIENNQmFzZVByb3RvY29sSUQgKCpnZXRQcm90b2NvbElEKSh2b2lkKTsKKyAg
ICBDTUJhc2VQcm90b2NvbFZUYWJsZSAqcHJvdG9jb2xWVGFibGU7Cit9IENNQmFzZVByb3RvY29s
VGFibGVFbnRyeTsKKworc3RydWN0IENNQmFzZVByb3RvY29sVGFibGUgeworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgbnVtU3VwcG9ydGVkUHJvdG9jb2xzOworICAgIENNQmFz
ZVByb3RvY29sVGFibGVFbnRyeSAqIHN1cHBvcnRlZFByb3RvY29sczsKK307CisKKyNwcmFnbWEg
cGFjayhwdXNoLCA0KQordHlwZWRlZiBzdHJ1Y3QgeworICAgQ01CYXNlQ2xhc3NWZXJzaW9uIHZl
cnNpb247CisgICBzaXplX3QgZGVyaXZlZFN0b3JhZ2VTaXplOworCisgICBCb29sZWFuICgqZXF1
YWwpKENNQmFzZU9iamVjdFJlZiwgQ01CYXNlT2JqZWN0UmVmKTsKKyAgIE9TU3RhdHVzICgqaW52
YWxpZGF0ZSkoQ01CYXNlT2JqZWN0UmVmKTsKKyAgIHZvaWQgKCpmaW5hbGl6ZSkoQ01CYXNlT2Jq
ZWN0UmVmKTsKKyAgIENGU3RyaW5nUmVmICgqY29weURlYnVnRGVzY3JpcHRpb24pKENNQmFzZU9i
amVjdFJlZik7CisKKyAgIENNQmFzZU9iamVjdENvcHlQcm9wZXJ0eUZ1bmN0aW9uIGNvcHlQcm9w
ZXJ0eTsKKyAgIENNQmFzZU9iamVjdFNldFByb3BlcnR5RnVuY3Rpb24gc2V0UHJvcGVydHk7Cisg
ICBPU1N0YXR1cyAoKm5vdGlmaWNhdGlvbkJhcnJpZXIpKENNQmFzZU9iamVjdFJlZik7CisgICBj
b25zdCBDTUJhc2VQcm90b2NvbFRhYmxlICpwcm90b2NvbFRhYmxlOworfSBDTUJhc2VDbGFzczsK
KyNwcmFnbWEgcGFjayhwb3ApCisKKyNwcmFnbWEgcGFjayhwdXNoKQorI3ByYWdtYSBwYWNrKCkK
K3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBzdHJ1Y3QgT3BhcXVlQ01CYXNlVlRhYmxlUmVz
ZXJ2ZWQgKnJlc2VydmVkOworICAgIGNvbnN0IENNQmFzZUNsYXNzICpiYXNlQ2xhc3M7Cit9IENN
QmFzZVZUYWJsZTsKKyNwcmFnbWEgcGFjayhwb3ApCisKK0NNX0VYUE9SVCBPU1N0YXR1cyBDTURl
cml2ZWRPYmplY3RDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIGNvbnN0IENNQmFzZVZUYWJsZSosIENN
QmFzZUNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiopOworQ01fRVhQT1JUIHZvaWQgKkNNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlKENNQmFzZU9iamVjdFJlZik7CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworfSAvLyBleHRlcm4gIkMiCisjZW5kaWYKKworI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUg
JiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WVFZp
ZGVvRGVjb2RlclNQSS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9WVFZpZGVvRGVjb2RlclNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODg5MDVlZTQ3
MWRkZGE0ZDRkOTUwNTUwZDc3ODJlNDg3YTEwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1ZUVmlkZW9EZWNv
ZGVyU1BJLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9u
L0NGUHJpdi5oPikKKyNpbmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXIuaD4KKyNp
bmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXJSZWdpc3RyYXRpb24uaD4KKyNlbHNl
CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI3ByYWdtYSBw
YWNrKHB1c2gsIDQpCisKK3R5cGVkZWYgRm91ckNoYXJDb2RlIEZpZ1ZpZGVvQ29kZWNUeXBlOwor
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRWaWRlb0RlY29kZXIqIFZUVmlkZW9EZWNvZGVyUmVmOwor
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRWaWRlb0RlY29kZXJTZXNzaW9uKiBWVFZpZGVvRGVjb2Rl
clNlc3Npb247Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFZpZGVvRGVjb2RlckZyYW1lKiBWVFZp
ZGVvRGVjb2RlckZyYW1lOworCit0eXBlZGVmIE9TU3RhdHVzICgqVlRWaWRlb0RlY29kZXJGdW5j
dGlvbl9DcmVhdGVJbnN0YW5jZSkoRm91ckNoYXJDb2RlIGNvZGVjVHlwZSwgQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBWVFZpZGVvRGVjb2RlclJlZiAqaW5zdGFuY2VPdXQpOwordHlwZWRlZiBP
U1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fU3RhcnRTZXNzaW9uKShWVFZpZGVvRGVj
b2RlclJlZiwgVlRWaWRlb0RlY29kZXJTZXNzaW9uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYpOwordHlwZWRlZiBPU1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fRGVjb2RlRnJh
bWUpKFZUVmlkZW9EZWNvZGVyUmVmLCBWVFZpZGVvRGVjb2RlckZyYW1lLCBDTVNhbXBsZUJ1ZmZl
clJlZiwgVlREZWNvZGVGcmFtZUZsYWdzLCBWVERlY29kZUluZm9GbGFncyopOwordHlwZWRlZiBP
U1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEKSgpOworCitlbnVtIHsKKyAgICBr
VlRWaWRlb0RlY29kZXJfQ2xhc3NWZXJzaW9uXzEgPSAxLAorICAgIGtWVFZpZGVvRGVjb2Rlcl9D
bGFzc1ZlcnNpb25fMiA9IDIsCisgICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8zID0g
MywKK307CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBDTUJhc2VDbGFzc1ZlcnNpb24gdmVyc2lv
bjsKKworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fU3RhcnRTZXNzaW9uIHN0YXJ0U2Vzc2lv
bjsKKyAgICBWVFZpZGVvRGVjb2RlckZ1bmN0aW9uX0RlY29kZUZyYW1lIGRlY29kZUZyYW1lOwor
ICAgIAorICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNvcHlTdXBwb3J0ZWRQcm9wZXJ0
eURpY3Rpb25hcnk7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgc2V0UHJvcGVydGll
czsKKworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNvcHlTZXJpYWxpemFibGVQcm9w
ZXJ0aWVzOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNhbkFjY2VwdEZvcm1hdERl
c2NyaXB0aW9uOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGZpbmlzaERlbGF5ZWRG
cmFtZXM7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgcmVzZXJ2ZWQ3OworICAgIFZU
VmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIHJlc2VydmVkODsKKyAgICBWVFZpZGVvRGVjb2RlckZ1
bmN0aW9uX1RCRCByZXNlcnZlZDk7Cit9IFZUVmlkZW9EZWNvZGVyQ2xhc3M7CisKK3R5cGVkZWYg
c3RydWN0IHsKKyAgICBDTUJhc2VWVGFibGUgYmFzZTsKKyAgICBjb25zdCBWVFZpZGVvRGVjb2Rl
ckNsYXNzICp2aWRlb0RlY29kZXJDbGFzczsKK30gVlRWaWRlb0RlY29kZXJWVGFibGU7CisKK1ZU
X0VYUE9SVCBDTUJhc2VDbGFzc0lEIFZUVmlkZW9EZWNvZGVyR2V0Q2xhc3NJRCh2b2lkKTsKK1ZU
X0VYUE9SVCBDVlBpeGVsQnVmZmVyUG9vbFJlZiBWVERlY29kZXJTZXNzaW9uR2V0UGl4ZWxCdWZm
ZXJQb29sKFZUVmlkZW9EZWNvZGVyU2Vzc2lvbiBzZXNzaW9uICk7CitWVF9FWFBPUlQgT1NTdGF0
dXMgVlREZWNvZGVyU2Vzc2lvblNldFBpeGVsQnVmZmVyQXR0cmlidXRlcyhWVFZpZGVvRGVjb2Rl
clNlc3Npb24gc2Vzc2lvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGRlY29tcHJlc3NvclBpeGVsQnVmZmVy
QXR0cmlidXRlcyk7CitWVF9FWFBPUlQgT1NTdGF0dXMgVlREZWNvZGVyU2Vzc2lvbkVtaXREZWNv
ZGVkRnJhbWUoVlRWaWRlb0RlY29kZXJTZXNzaW9uIHNlc3Npb24sIFZUVmlkZW9EZWNvZGVyRnJh
bWUgZnJhbWUsIE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyKTsKK1ZUX0VYUE9SVCBPU1N0YXR1cyBWVFJlZ2lz
dGVyVmlkZW9EZWNvZGVyKEZpZ1ZpZGVvQ29kZWNUeXBlLCBWVFZpZGVvRGVjb2RlckZ1bmN0aW9u
X0NyZWF0ZUluc3RhbmNlKTsKKworI3ByYWdtYSBwYWNrKHBvcCkKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9IC8vIGV4dGVybiAiQyIKKyNlbmRpZgorCisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSAm
JiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dERlY29kZXIubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KaW5kZXggZDA1ZDA2MjI0OWM2YWFlNTFjOWE2MDE1
OGYzMTJlYzM3MmRhZjM1Yy4uMjg3ZTE5NmYwMWI4ZDUwYWQzMDBjYTY1NjRhOGQ0Y2QwYTExMjVm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQpAQCAtMTY3LDkg
KzE2Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IFJlbW90ZVZpZGVvRGVjb2Rl
ckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcihjb25zCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZhY3Rv
cnkoV2ViS2l0SDI2NSBzdXBwb3J0c0gyNjUsIFdlYktpdFZQOSBzdXBwb3J0c1ZQOSkKK3N0ZDo6
dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29k
ZXJGYWN0b3J5KFdlYktpdEgyNjUgc3VwcG9ydHNIMjY1LCBXZWJLaXRWUDkgc3VwcG9ydHNWUDks
IFdlYktpdFZQOVZUQiBzdXBwb3J0c1ZQOVZUQikKIHsKLSAgICBhdXRvIGludGVybmFsRmFjdG9y
eSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoW1tSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdpdGhIMjY1OiBzdXBwb3J0c0gyNjUgPT0gV2ViS2l0SDI2
NTo6T24gdnA5OiBzdXBwb3J0c1ZQOSA9PSBXZWJLaXRWUDk6Ok9uXSk7CisgICAgYXV0byBpbnRl
cm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogc3VwcG9ydHNIMjY1ID09
IFdlYktpdEgyNjU6Ok9uIHZwOTogc3VwcG9ydHNWUDkgPT0gV2ViS2l0VlA5OjpPbiB2cDlWVEI6
IHN1cHBvcnRzVlA5VlRCID09IFdlYktpdFZQOVZUQjo6T25dKTsKICAgICBpZiAodmlkZW9EZWNv
ZGVyQ2FsbGJhY2tzKCkuY3JlYXRlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3Rv
cnkpKTsKICAgICByZXR1cm4gaW50ZXJuYWxGYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNTA5Y2RmNTQ1M2UzMjI0MGUxYjE4NDJmYmFlNDUx
YTY0ZTY3ZmQzNC4uMDdkNWNlMzc0YmY2MjgwYmJjN2EyY2U0ZTBlMDAyOTFiMmJiYmU5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC00Miw5ICs0Miwx
MCBAQCBjbGFzcyBWaWRlb0ZyYW1lOwogCiBlbnVtIGNsYXNzIFdlYktpdEgyNjUgeyBPZmYsIE9u
IH07CiBlbnVtIGNsYXNzIFdlYktpdFZQOSB7IE9mZiwgT24gfTsKK2VudW0gY2xhc3MgV2ViS2l0
VlA5VlRCIHsgT2ZmLCBPbiB9OwogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29k
ZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9yeShXZWJLaXRIMjY1LCBXZWJLaXRW
UDkpOwotc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRl
V2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5KTsKK3N0ZDo6dW5pcXVl
X3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0
b3J5KFdlYktpdEgyNjUsIFdlYktpdFZQOSwgV2ViS2l0VlA5VlRCKTsKIAogdm9pZCBzZXRBcHBs
aWNhdGlvblN0YXR1cyhib29sIGlzQWN0aXZlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVy
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VlA5RGVjb2Rlci5jcHAKaW5kZXggMTE0ODU4MDY3YzRhMWJmNWU2MDBmYWU2OTVh
MzdmMGQ5Njc3ZGFjYS4uNzI0ZGU1N2JmOGY0NzZlZDU2YjZiMmFkODBjYjIxMWFmOGNiNzY4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCkBAIC0y
NSwxNiArMjUsMTUgQEAKIAogI2luY2x1ZGUgIldlYktpdFZQOURlY29kZXIuaCIKIAotI2lmIGRl
ZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlBy
aXYuaD4pCi0KICNpbmNsdWRlICJXZWJLaXRVdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxDb3JlTWVk
aWEvQ01CYXNlT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZUVmlkZW9EZWNvZGVy
Lmg+Ci0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZUVmlkZW9EZWNvZGVyUmVnaXN0cmF0aW9uLmg+
CisjaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvdnA5X2ltcGwuaCIKICNpbmNsdWRlICJydGNfYmFz
ZS9sb2dnaW5nLmgiCiAjaW5jbHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY3B1X2luZm8u
aCIKIAorI2luY2x1ZGUgIkNNQmFzZU9iamVjdFNQSS5oIgorI2luY2x1ZGUgIlZUVmlkZW9EZWNv
ZGVyU1BJLmgiCisKIG5hbWVzcGFjZSB3ZWJydGMgewogCiBzdGF0aWMgT1NTdGF0dXMgY3JlYXRl
V2ViS2l0VlA5RGVjb2RlcihGaWdWaWRlb0NvZGVjVHlwZSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBWVFZpZGVvRGVjb2RlclJlZiopOwpAQCAtNzksMjEgKzc4LDIzIEBAIHN0YXRpYyBDRlN0
cmluZ1JlZiBjb3B5VlA5RGVjb2RlckRlYnVnRGVzY3JpcHRpb24oQ01CYXNlT2JqZWN0UmVmKTsK
IHN0YXRpYyBjb25zdCBDTUJhc2VDbGFzcyBXZWJLaXRWUDlEZWNvZGVyX0Jhc2VDbGFzcyA9CiB7
CiAgICAga0NNQmFzZU9iamVjdF9DbGFzc1ZlcnNpb25fMSwKLSAgICBzaXplb2YoV2ViS2l0VlA5
RGVjb2RlciksCisgICAgNjQsIC8vc2l6ZW9mKFdlYktpdFZQOURlY29kZXIpLAogICAgIG51bGxw
dHIsIC8vIENvbXBhcmlzb24gYnkgcG9pbnRlciBlcXVhbGl0eQogICAgIGludmFsaWRhdGVWUDlE
ZWNvZGVyLAogICAgIGZpbmFsaXplVlA5RGVjb2RlciwKICAgICBjb3B5VlA5RGVjb2RlckRlYnVn
RGVzY3JpcHRpb24sCiAgICAgbnVsbHB0ciwgLy8gQ29weVByb3BlcnR5Ci0gICAgbnVsbHB0ciAv
LyBTZXRQcm9wZXJ0eQorICAgIG51bGxwdHIsIC8vIFNldFByb3BlcnR5CisgICAgbnVsbHB0ciwK
KyAgICBudWxscHRyCiB9OwogCiBzdGF0aWMgT1NTdGF0dXMgc3RhcnRWUDlEZWNvZGVyU2Vzc2lv
bihWVFZpZGVvRGVjb2RlclJlZiwgVlRWaWRlb0RlY29kZXJTZXNzaW9uLCBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYpOwogc3RhdGljIE9TU3RhdHVzIGRlY29kZVZQOURlY29kZXJGcmFtZShW
VFZpZGVvRGVjb2RlclJlZiwgVlRWaWRlb0RlY29kZXJGcmFtZSwgQ01TYW1wbGVCdWZmZXJSZWYs
IFZURGVjb2RlRnJhbWVGbGFncywgVlREZWNvZGVJbmZvRmxhZ3MqKTsKIAotc3RhdGljIGNvbnN0
IFZUVmlkZW9EZWNvZGVyQ2xhc3MgV2ViS2l0VlA5RGVjb2Rlcl9WaWRlb0VuY29kZXJDbGFzcyA9
CitzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJDbGFzcyBXZWJLaXRWUDlEZWNvZGVyX1ZpZGVv
RGVjb2RlckNsYXNzID0KIHsKLSAgICBrVlRWaWRlb0RlY29kZXJfQ2xhc3NWZXJzaW9uXzMsCisg
ICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8xLAogICAgIHN0YXJ0VlA5RGVjb2RlclNl
c3Npb24sCiAgICAgZGVjb2RlVlA5RGVjb2RlckZyYW1lLAogICAgIG51bGxwdHIsIC8vIFZUVmlk
ZW9EZWNvZGVyRnVuY3Rpb25fQ29weVN1cHBvcnRlZFByb3BlcnR5RGljdGlvbmFyeSwKQEAgLTEw
OSw3ICsxMTAsNyBAQCBzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJDbGFzcyBXZWJLaXRWUDlE
ZWNvZGVyX1ZpZGVvRW5jb2RlckNsYXNzID0KIHN0YXRpYyBjb25zdCBWVFZpZGVvRGVjb2RlclZU
YWJsZSBXZWJLaXRWUDlEZWNvZGVyVlRhYmxlID0KIHsKICAgICB7IG51bGxwdHIsICZXZWJLaXRW
UDlEZWNvZGVyX0Jhc2VDbGFzcyB9LAotICAgICZXZWJLaXRWUDlEZWNvZGVyX1ZpZGVvRW5jb2Rl
ckNsYXNzCisgICAgJldlYktpdFZQOURlY29kZXJfVmlkZW9EZWNvZGVyQ2xhc3MKIH07CiAKIE9T
U3RhdHVzIGNyZWF0ZVdlYktpdFZQOURlY29kZXIoRmlnVmlkZW9Db2RlY1R5cGUsIENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgVlRWaWRlb0RlY29kZXJSZWYqIGRlY29kZXJPdXQpCkBAIC0zODcs
MTQgKzM4OCwzIEBAIHZvaWQgV2ViS2l0VlA5RGVjb2RlclJlY2VpdmVyOjpEZWNvZGVkKFZpZGVv
RnJhbWUmIGZyYW1lLCBhYnNsOjpvcHRpb25hbDxpbnQzMl90CiB9CiAKIH0KLQotI2Vsc2UgLy8g
ZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NG
UHJpdi5oPikKLQotbmFtZXNwYWNlIHdlYnJ0YyB7Ci0KLXZvaWQgcmVnaXN0ZXJXZWJLaXRWUDlE
ZWNvZGVyKCkKLXsKLX0KLQotfQotI2VuZGlmIC8vIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBf
X2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9f
Y29kZWMvUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCmluZGV4IGRjZTQ3OWM4OTA5MTEzZjkxYWJhNjc3YWUy
ZjczMGYyMmE2ZTc0YjAuLjJiNGFjYjkxYjQ1YzYxMmE5MDUwOWZmODhhN2UxYTljYTFmODE1NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Fw
aS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCkBAIC01NCw3ICs1
NCw5IEBACiB9CiAKIC0gKE5TU3RyaW5nICopaW1wbGVtZW50YXRpb25OYW1lIHsKKyNpZiAhZGVm
aW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQogICBSVENfTk9UUkVBQ0hFRCgpOworI2VuZGlmCiAg
IHJldHVybiBuaWw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaAppbmRleCBlMjgyMGIyMzAwOWU5ZGNlZGQxNDQ3OWYxYTVmMDkwYTU2
MWQ0MmIyLi4yNGExZDYzY2Y3MzU2YzNhNzFkYzkyZWU1NmU3MDhhMzUxZTA0M2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0y
MSw3ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19FWFBPUlQKIF9f
YXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgOiBO
U09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KLS0gKGlkKWluaXRXaXRoSDI2NTooYm9v
bClzdXBwb3J0SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDk7CistIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydEgyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBw
b3J0c1ZQOVZUQjsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggZTVmNGEyMDQ3
YWQ1OTY2YzAzZGIxNjU3MGQxMjM5ZTY1N2YzYjhhNy4uZTA0MjJjZjUwMDY0N2VmY2Q4NzIyODU2
MTBjZDAyM2E2ZjRhZjAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0
VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZp
ZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTcsMjMgKzE3LDMwIEBACiAjaW1wb3J0ICJiYXNlL1JU
Q1ZpZGVvQ29kZWNJbmZvLmgiCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICNpbXBvcnQg
ImFwaS92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWUDkuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVv
RGVjb2RlclZUQlZQOS5oIgogI2VuZGlmCiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkK
ICNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgogI2ltcG9ydCAiUlRDVmlkZW9EZWNv
ZGVySDI2NS5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3gu
aD4KKwogQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IHsKICAg
Ym9vbCBfc3VwcG9ydHNIMjY1OwogICBib29sIF9zdXBwb3J0c1ZQOTsKKyAgYm9vbCBfc3VwcG9y
dHNWUDlWVEI7CiB9CiAKLS0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5
Oihib29sKXN1cHBvcnRzVlA5CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1
IHZwOTooYm9vbClzdXBwb3J0c1ZQOSB2cDlWVEI6KGJvb2wpc3VwcG9ydHNWUDlWVEIKIHsKICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKICAgaWYgKHNlbGYpIHsKICAgICAgIF9zdXBwb3J0c0gyNjUg
PSBzdXBwb3J0c0gyNjU7CiAgICAgICBfc3VwcG9ydHNWUDkgPSBzdXBwb3J0c1ZQOTsKKyAgICAg
IC8vIFVzZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkgb25jZSBhZGRlZCB0byBDTUZvcm1hdERlc2Ny
aXB0aW9uLmgKKyAgICAgIF9zdXBwb3J0c1ZQOVZUQiA9IHN1cHBvcnRzVlA5ICYmIChzdXBwb3J0
c1ZQOVZUQiB8fCBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoJ3ZwMDknKSk7Cis7CiAgIH0K
ICAgcmV0dXJuIHNlbGY7CiB9CkBAIC05MSw3ICs5OCwxMSBAQCAtIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogI2VuZGlmCiAjaWYgZGVm
aW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0
cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7Ci0gICAgcmV0dXJuIFtSVENWaWRlb0RlY29k
ZXJWUDkgdnA5RGVjb2Rlcl07CisgICAgICBpZiAoX3N1cHBvcnRzVlA5VlRCKSB7CisgICAgICAg
IHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBhbGxvY10gaW5pdF07CisgICAgICB9IGVs
c2UgeworICAgICAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAg
ICAgIH0KICNlbmRpZgogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBjNDA0MzZkMzdjZTQ0ODUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0Rl
Y29kZXIuaCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVf
bmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVyZmFjZSBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorLSAoTlNJbnRlZ2VyKWRl
Y29kZURhdGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZTooc2l6ZV90KXNpemUKKyAg
ICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMmJkODJlZjE1ZWYyOTEwMGYz
YzBiYmJmYmVhNjkxYzI3OWM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICov
CisKKy8qCisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hseSBiYXNlZCBvbiBSVENW
aWRlb0RlY29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5
LmgiCisKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1wb3J0IDxWaWRlb1Rvb2xi
b3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2lt
cG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3Zp
ZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgi
CisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKworI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVk
ZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRo
ZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGlu
IHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zIHsKKyAg
UlRDRnJhbWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgY2IsIGludDY0X3Qg
dHMpIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVjb2RlckNh
bGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKK0BpbnRlcmZhY2Ug
UlRDVmlkZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9yOihPU1N0YXR1cyllcnJv
cjsKK0BlbmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihj
b25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxvY2tCdWZmZXJSZWYgbmV3
X2Jsb2NrX2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1ZmZlcl9zaXplLCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1
cmVNZW1vcnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyAgfQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVkQ0YobmV3X2Jsb2NrX2J1
ZmZlcik7CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRl
cyhidWZmZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3NpemUpKSB7CisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVfYnVmZmVyID0g
bnVsbHB0cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51bGxwdHIsIG51bGxwdHIs
IHZpZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgJnNhbXBsZV9idWZmZXIp
KSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNhbXBsZV9idWZmZXI7Cit9
CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNh
bGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5RGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP
U1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVERlY29k
ZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJh
bXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVEZWNvZGVQ
YXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENWaWRlb0RlY29kZXJWVEJW
UDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0YXR1c107CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIFN0YXR1czogIiA8PCBz
dGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZmZXIgKmZyYW1lQnVmZmVy
ID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVsQnVmZmVyOmltYWdlQnVm
ZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAgICAgIFtbUlRDVmlkZW9G
cmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlvbl8wCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdldFNlY29uZHModGltZXN0
YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFt
cCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRl
Y29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIF92aWRlb0Zvcm1h
dDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVzc2lvblNlc3Npb247Cisg
IFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NTdGF0dXMgX2Vycm9yOwor
ICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQorCistICh2b2lkKWRlYWxs
b2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRW
aWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RGVjb2RlV2l0aE51
bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5jb2RlZEltYWdlICopaW5w
dXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICBj
b2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVjaWZpY0luZm8+KWluZm8K
KyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgeworICBSVENfRENI
RUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2UuZnJhbWVUeXBlID09IFJU
Q0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9IGlucHV0SW1hZ2UuZW5j
b2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5jb2RlZEhlaWdodDsKKyAg
fQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZl
ci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dElt
YWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50
OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6
KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBub0VycikgeworICAgIFJU
Q19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOworICAgIF9l
cnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0K
KworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxs
cHRyOworICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2UgYWRkZWQgdG8gQ01Gb3Jt
YXREZXNjcmlwdGlvbi5oCisgIGlmIChub0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3ZwMDknLCBfd2lkdGgsIF9oZWlnaHQsIG51bGxw
dHIsICZmb3JtYXREZXNjcmlwdGlvbikpCisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGlucHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRDRihmb3JtYXREZXNjcmlwdGlvbik7CisgIGlm
IChpbnB1dEZvcm1hdCkgeworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNo
YW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBp
ZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9y
bWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOwor
ICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25F
cnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlk
ZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZl
IGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAv
LyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZv
ciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVx
dWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19M
T0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9w
cHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9
CisgIGF1dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpTY29wZWRDRihWUDlCdWZmZXJUb0NNU2FtcGxl
QnVmZmVyKGRhdGEsIHNpemUsIF92aWRlb0Zvcm1hdCkpOworICBpZiAoIXNhbXBsZUJ1ZmZlcikg
eworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKworICBWVERlY29k
ZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25v
dXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+
IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJh
bWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVz
ID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Np
b25TZXNzaW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCksIGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBh
cmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8g
UmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3
aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBvciBkZWNvZGVyIG1hbGZ1bmN0aW9ucyBhbmQg
cmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vz
c2lvbkVyciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9EZWNvZGVyTWFsZnVuY3Rpb25FcnIpICYmCisg
ICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBXRUJSVENfVklERU9fQ09E
RUNfT0spIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1l
IHdpdGggY29kZTogIiA8PCBzdGF0dXMKKyAgICAgICAgICAgICAgICAgICAgIDw8ICIgcmV0cnlp
bmcgZGVjb2RlIGFmdGVyIGRlY29tcHJlc3Npb24gc2Vzc2lvbiByZXNldCI7CisgICAgZnJhbWVE
ZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgdGlt
ZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1l
KAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlci5nZXQoKSwgZGVj
b2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CisgIH0KKyNl
bmRpZgorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg
IkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxi
YWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0gKHZvaWQpc2V0
RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vycm9yID0gZXJyb3I7Cit9CisKKy0gKE5TSW50
ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgc2Vzc2lv
biBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIgYW5kIGl0CisgIC8vIGlzIHNhZmUg
dG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNl
c3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKKyAgX2NhbGxiYWNrID0g
bnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworI3ByYWdtYSBt
YXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtz
ZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gTmVlZCB0byB3YWl0IGZv
ciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KKyAgaWYgKCFfdmlkZW9Gb3Jt
YXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworICB9CisKKyAgLy8gU2V0
IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBhdGliaWx0eSwgd2hpY2ggbWFrZXMg
dGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZlcnMgd2l0aCBHUFUgYmFja2VkIG1l
bW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAgLy8gdGhlIHBpeGVsIGJ1ZmZlcnMg
ZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9hZCBsYXRlciBkdXJpbmcKKyAgLy8g
cmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJlY2F1c2Ugd2UgYXJlIGNvbnZlcnRp
bmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVyIGRlY29kZSwgYnV0IGV2ZW50dWFs
bHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENWUGl4ZWxCdWZmZXJzIGRpcmVjdGx5
IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBNYXliZSBvbmx5IHNldCBPcGVu
R0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRoYXQKKyAgLy8gd2UgY2FuIHBhc3Mg
Q1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4gZGVjb2RlciBvdXRwdXQuCisgIHN0
YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVSZWYga2V5c1th
dHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVs
QnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFD
KQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAg
IGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFs
dWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2
NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxS
YW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPSBDRk51bWJlckNyZWF0ZShudWxscHRy
LCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRy
aWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLCBwaXhlbEZvcm1h
dH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFy
eShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7
CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51
bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9y
bWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgVlREZWNvbXByZXNzaW9u
T3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgdnA5RGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAqKXNlbGYsCisgIH07CisgIE9TU3RhdHVzIHN0
YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCBfdmlk
ZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNl
c3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBkZWNvbXByZXNz
aW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9u
U2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBb
c2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lv
biB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyNpZiBkZWZpbmVkKFdF
QlJUQ19JT1MpCisgIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwg
a1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7Cisj
ZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24geworICBpZiAo
X2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxE
KQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9k
ZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAg
ICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsK
KyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25JbnZhbGlk
YXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9kZWNvbXByZXNzaW9u
U2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQor
CistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYpdmlk
ZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09IHZpZGVvRm9ybWF0KSB7CisgICAgcmV0
dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJlbGVhc2UoX3ZpZGVvRm9y
bWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRlb0Zvcm1hdDsKKyAgaWYgKF92aWRlb0Zv
cm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zvcm1hdCk7CisgIH0KK30KKworLSAoTlNTdHJp
bmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQor
CitAZW5kCisKKyNlbmRpZiAvLyBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNv
ZGVyX2ZhY3RvcnkubW0KaW5kZXggMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUy
NWJkOC4uMWNmOTQ5ZGMxN2EzYmMwNzdlZGU0MjhhYzg3ZmRkOGRiYjFjZmYwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlk
ZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAsNyArMTAwLDExIEBAIHN0ZDo6dW5pcXVlX3B0
cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29k
ZXIoCiAgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBk
b2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KICAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tp
bmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKLSAgICAg
IGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJW
UDkiXSkgeworI2lmICFkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAgICAgIGlmIChb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkg
eworI2Vsc2UKKyAgICAgICAgaWYgKCFbZGVjb2Rlci5pbXBsZW1lbnRhdGlvbk5hbWUgaXNFcXVh
bDpAIlZpZGVvVG9vbGJveCJdKSB7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBl
ZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVj
b2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDRlNGE1MzgxZjg3MDBkNGJlM2MxM2UzMDAyMzIyMjdiYmM2YzEwODAu
Ljc1NTIxMzIyNTM1ZTkxYjk1NDYxY2Y2NzJiZWVmODBkY2UzY2MwMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDkgQEAKIAkJNDEyOTlCOTIyMTI3MzY3QjAw
QjM0MTRCIC8qIGlzYWNfdmFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQuaCAqLzsgfTsK
IAkJNDEyOTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlCOTAyMTI3MzY3QjAwQjM0
MTRCIC8qIHBpdGNoX2ZpbHRlci5oICovOyB9OwogCQk0MTI5OUI5NzIxMjczNjkxMDBCMzQxNEIg
LyogZmFrZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlw
ZS5oICovOyB9OworCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVy
VlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLzsg
fTsKKwkJNDEyRkY5MzcyNTNEOEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNvZGVyU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTJGRjkzNTI1M0Q4
RjBBMDAxREYwMzYgLyogVlRWaWRlb0RlY29kZXJTUEkuaCAqLzsgfTsKKwkJNDEyRkY5MzgyNTNE
OEYwQTAwMURGMDM2IC8qIENNQmFzZU9iamVjdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyRkY5MzYyNTNEOEYwQTAwMURGMDM2IC8qIENNQmFz
ZU9iamVjdFNQSS5oICovOyB9OwogCQk0MTMwOTFGMzFFRjhDRjkyMDA3NTdDNTUgLyogcnRwX3Zp
ZGVvX3N0cmVhbV9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzMDkxRjExRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1f
cmVjZWl2ZXIuaCAqLzsgfTsKIAkJNDEzMDkxRjQxRUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRl
b19zdHJlYW1fcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTMwOTFGMjFFRjhDRjkxMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9y
ZWNlaXZlci5jYyAqLzsgfTsKIAkJNDEzMDkxRkIxRUY4Q0ZGODAwNzU3QzU1IC8qIGJ1aWx0aW5f
YXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEzMDkxRjkxRUY4Q0ZGMzAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVkaW9f
ZW5jb2Rlcl9mYWN0b3J5LmNjICovOyB9OwpAQCAtMTQyMiw3ICsxNDI1LDYgQEAKIAkJNDE3OTUz
QjgyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMDIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUz
QjkyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMTIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUz
QkEyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMjIx
Njk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLzsg
fTsKLQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnku
aCAqLzsgfTsKIAkJNDE3OTUzQkMyMTY5ODI0QjAwMjgyNjZCIC8qIGhlbHBlcnMuY2MgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1MjFEMzIxNjk4MjFG
MDAwQUJBRjcgLyogaGVscGVycy5jYyAqLzsgfTsKIAkJNDE3OTUzQkQyMTY5ODI0QjAwMjgyNjZC
IC8qIGhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNjIyNUY1MjE2OTgxRjQwMEE5MUM5QiAvKiBoZWxwZXJzLmggKi87IH07CiAJCTQxNzk1
M0JGMjE2OTgyNEIwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1MjFENTIxNjk4MjIwMDAwQUJBRjcgLyog
bmFsdV9yZXdyaXRlci5oICovOyB9OwpAQCAtMjIzNiw3ICsyMjM4LDYgQEAKIAkJNDFFQ0VBQkMy
MDY0MDNDMjAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkIyMDY0MDNDMTAwOUQ1MTQxIC8qIFdl
YktpdFV0aWxpdGllcy5oICovOyB9OwogCQk0MUVDRUFCRTIwNjQwNDk4MDA5RDUxNDEgLyogV2Vi
S2l0VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFQ0VBQkQyMDY0MDQ5ODAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5tbSAqLzsg
fTsKIAkJNDFFQ0VBQzEyMDY0MEYyODAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkYyMDY0
MEYyNzAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oICovOyB9OwotCQk0MUVDRUFGQzIw
NjQ2NjY0MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBRjkyMDY0NjY2MzAwOUQ1MTQxIC8qIEVu
Y29kZXJVdGlsaXRpZXMuaCAqLzsgfTsKIAkJNDFFQ0VBRkQyMDY0NjY2NDAwOUQ1MTQxIC8qIFZp
ZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3Np
bmdTb2Z0TGluay5jcHAgKi87IH07CiAJCTQxRUNFQUZFMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRl
b1Byb2Nlc3NpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFFQ0VBRkIyMDY0NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1Nv
ZnRMaW5rLmggKi87IH07CiAJCTQxRUVENzdDMjE1MkVEOEUwMDBGMkExNiAvKiBhdmdfbmVvbi5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5NDc4ODMy
MTUyRUQ0MzAwMjc1MjU3IC8qIGF2Z19uZW9uLmMgKi87IH07CkBAIC00MzQ1LDYgKzQzNDYsMTAg
QEAKIAkJNDEyOTlCOUIyMTI3MzZERTAwQjM0MTRCIC8qIHBpdGNoX2luZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGl0Y2hfaW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5
QzIxMjczNkRFMDBCMzQxNEIgLyogcm5uLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcm5uLmNjOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5RDIxMjczNkRGMDBCMzQxNEIgLyog
c3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc3BlY3RyYWxfZmVh
dHVyZXNfaW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzIy
NTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDEyRkY5MzMyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJWVEJWUDkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzUyNTNEOEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNv
ZGVyU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUVmlkZW9EZWNvZGVy
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTM2MjUzRDhGMEEwMDFE
RjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ01CYXNlT2JqZWN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5
MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8q
IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19l
bmNvZGVyX2ZhY3RvcnkuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBi
dWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgcGF0aCA9IGF1ZGlvX2NvZGVjcy9idWls
dGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTY2OTQsNyArNjY5OSw2IEBACiAJCTQxRUNFQUJCMjA2NDAzQzEwMDlENTE0MSAvKiBXZWJL
aXRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUJEMjA2NDA0OTgw
MDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJLaXRVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRUNFQUJGMjA2NDBGMjcwMDlENTE0MSAvKiBOU1N0cmluZytTdGRTdHJpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gIk5TU3RyaW5nK1N0ZFN0cmluZy5oIjsg
cGF0aCA9ICJDb21tb24vTlNTdHJpbmcrU3RkU3RyaW5nLmgiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MUVDRUFGOTIwNjQ2NjYzMDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVyVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBW
aWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxRUNFQUZCMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdT
b2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUVFRDc3ODIxNTJFRDgz
MDAwRjJBMTYgLyogc2F2ZV9yZWdfbmVvbi5hc20gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbS5hc207IHBhdGggPSBzYXZlX3Jl
Z19uZW9uLmFzbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDU2LDYgKzEwMDYw
LDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2
NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVy
SDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29k
ZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkzMjI1MzlCM0M5MDAxREYwMzYgLyogUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBS
VENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4
MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2
OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8sCkBAIC0xMDc1MSw3ICsx
MDc1Nyw4IEBACiAJCTQxOUM4NDk2MUZFMkZFOUMwMDQwQzMwRiAvKiBXZWJLaXQgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQxRUNFQUY5MjA2NDY2NjMw
MDlENTE0MSAvKiBFbmNvZGVyVXRpbGl0aWVzLmggKi8sCisJCQkJNDEyRkY5MzYyNTNEOEYwQTAw
MURGMDM2IC8qIENNQmFzZU9iamVjdFNQSS5oICovLAorCQkJCTQxMkZGOTM1MjUzRDhGMEEwMDFE
RjAzNiAvKiBWVFZpZGVvRGVjb2RlclNQSS5oICovLAogCQkJCTQxRUNFQUZBMjA2NDY2NjMwMDlE
NTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHAgKi8sCiAJCQkJNDFFQ0VBRkIyMDY0
NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmggKi8sCiAJCQkJNDFFODRC
QzkyNDM0QzRBMjAwRDM0RTQxIC8qIFdlYktpdERlY29kZXIuaCAqLywKQEAgLTE2MTY4LDcgKzE2
MTc1LDYgQEAKIAkJCQk1Q0REODVBMDFFNDNCNUMwMDA2MjFFOTIgLyogZW5jb2Rlcl9ydGNwX2Zl
ZWRiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5MzkzRTI0MkE3MEFFMDA3RkRDNDEgLyog
ZW5jb2Rlcl9zZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMyODMyMzRCOENDNDAw
MjhBNjE1IC8qIGVuY29kZXJfc2ltdWxjYXN0X3Byb3h5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MUVDRUFGQzIwNjQ2NjY0MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhCOTkxRTQzQzJCNTAwNjIxRTkyIC8qIGVuZXJneV9pbnZlcnNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REOEI5QjFFNDNDMkI1MDA2MjFFOTIgLyogZW5oX3Vwc2FtcGxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI5RjFFNDNDMkI1MDA2MjFFOTIgLyogZW5oYW5j
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTY2MTUsNiArMTY2MjEsNyBAQAogCQkJCTVDREQ4NUFC
MUU0M0I1QzAwMDYyMUU5MiAvKiByZWNlaXZlX3N0YXRpc3RpY3NfcHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRDZCNDU4MjEyNzMxNTkwMDhGOTM1MyAvKiByZWNlaXZlX3RpbWVfY2FsY3Vs
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzRjUxRTQzOUE2RjAwNjIxRTkyIC8qIHJl
Y2VpdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTJGRjkzODI1M0Q4RjBBMDAxREYwMzYgLyog
Q01CYXNlT2JqZWN0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk1RjFFNDNCRjNBMDA2
MjFFOTIgLyogcmVjZWl2ZXJfcmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTAwOTFERDI0
MkUwQkJDMDBDNUVEQTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEE0RTFFNDNCRkIzMDA2MjFFOTIgLyogcmVkX3BheWxvYWRfc3BsaXR0ZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTY3MjYsNyArMTY3MzMsNiBAQAogCQkJCTQxM0U2NzhBMjE2
OTg3QjkwMEVGMzdFRCAvKiBSVENDVlBpeGVsQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNBMjQ1NTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRGF0YUNoYW5uZWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxM0EyNDcwMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5lbENvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxNzk1M0JCMjE2OTgyNDIwMDI4MjY2QiAvKiBS
VENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUz
QzIyMTY5ODI0QjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1MjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRGlzcGF0Y2hl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NUQxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0VB
R0xWaWRlb1ZpZXcuaCBpbiBIZWFkZXJzICovLApAQCAtMTcwMzMsNiArMTcwMzksNyBAQAogCQkJ
CTVDREQ4QkYwMUU0M0MyQjUwMDYyMUU5MiAvKiBzd2FwX2J5dGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTMxQzEwNzIzNEI4OUUyMDAyOEE2MTUgLyogc3dhcF9xdWV1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE5MjQxQTkyMTI3NThEMzAwNjM0RkNGIC8qIHN5bW1ldHJpY19tYXRyaXhfYnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTJGRjkzNzI1M0Q4RjBBMDAxREYwMzYgLyogVlRW
aWRlb0RlY29kZXJTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQkU3MUEzMjE1QzQ2MzcwMEE3
QjE5NiAvKiBzeW1yZWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTU1MUU0M0JGQjMwMDYy
MUU5MiAvKiBzeW5jX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0QkYxRTZBNUY5
RjAwOTRGREM4IC8qIHN5bmNhYmxlLmggaW4gSGVhZGVycyAqLywKQEAgLTE5Mzk5LDYgKzE5NDA2
LDcgQEAKIAkJCQk0MUU4NEJEMjI0MzczQzE0MDBEMzRFNDEgLyogUlRDVmlkZW9EZWNvZGVySDI2
NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxM0U2NzY4MjE2OTg1NEIwMEVGMzdFRCAvKiBSVENW
aWRlb0RlY29kZXJWUDgubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTQwMzVFRjI0QUEwRUJDMDBC
Q0U5QjIgLyogUlRDVmlkZW9EZWNvZGVyVlA5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEyRkY5
MzQyNTM5Qjc2NDAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxNzk1M0I5MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0
b3J5SDI2NC5tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzQ0EyMTY5ODI0QjAwMjgyNjZCIC8q
IFJUQ1ZpZGVvRW5jb2RlckgyNjQubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUU4NEJEMzI0Mzcz
QzFBMDBEMzRFNDEgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBlYmNmNzE5M2Y1YTUzMjQyMGQxNGM3
OWE5OWNhNzIzYTQ2YTBkNGE1Li5jNmIyY2I5ODNlZjI3YjRkNmQwYThhMTdiNGM3YjljYzc2OTg3
NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtMTA4LDggKzEwOCwx
MCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEgyNjVTdXBwb3J0KGJvb2wgdmFsdWUpIHsgbV9z
dXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0VlA5U3VwcG9ydChib29sIHZhbHVl
KSB7IG1fc3VwcG9ydHNWUDkgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0VlA5VlRCU3VwcG9ydChi
b29sIHZhbHVlKSB7IG1fc3VwcG9ydHNWUDlWVEIgPSB2YWx1ZTsgfQogICAgIGJvb2wgaXNTdXBw
b3J0aW5nSDI2NSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNIMjY1OyB9CiAgICAgYm9vbCBp
c1N1cHBvcnRpbmdWUDkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzVlA5OyB9CisgICAgYm9v
bCBpc1N1cHBvcnRpbmdWUDlWVEIoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzVlA5VlRCOyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKICAgICAvLyBDYWxsYmFj
ayBpcyBleGVjdXRlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgpAQCAtMTUzLDYgKzE1NSw3IEBA
IHByb3RlY3RlZDoKICAgICBib29sIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fc3VwcG9ydHNIMjY1IHsgZmFsc2UgfTsKICAgICBib29sIG1f
c3VwcG9ydHNWUDkgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXBwb3J0c1ZQOVZUQiB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2VuYWJsZUxvZ2dpbmcgeyB0cnVlIH07CiAgICAgYm9vbCBtX3VzZURU
TFMxMCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlckNvY29hLmNwcAppbmRleCA5MjAxZDBlMzJjMzQ4YjJkM2UzYjAwOTdiNDc5MGQ0N2NkMjky
OGY0Li5jYjExZjgxZmQzZjExZWFmODE4OTE5NmIxNDg3YWVkMDdjNmU1OWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCkBAIC02Myw3ICs2Myw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IExpYldlYlJUQ1By
b3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kCiAgICAgaWYgKCF3ZWJSVENBdmFpbGFibGUoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gd2VicnRjOjpjcmVhdGVXZWJLaXRE
ZWNvZGVyRmFjdG9yeShpc1N1cHBvcnRpbmdIMjY1KCkgPyB3ZWJydGM6OldlYktpdEgyNjU6Ok9u
IDogd2VicnRjOjpXZWJLaXRIMjY1OjpPZmYsIGlzU3VwcG9ydGluZ1ZQOSgpID8gd2VicnRjOjpX
ZWJLaXRWUDk6Ok9uIDogd2VicnRjOjpXZWJLaXRWUDk6Ok9mZik7CisgICAgcmV0dXJuIHdlYnJ0
Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0aW5nSDI2NSgpID8gd2VicnRj
OjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T2ZmLCBpc1N1cHBvcnRpbmdW
UDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPZmYsIGlz
U3VwcG9ydGluZ1ZQOVZUQigpID8gd2VicnRjOjpXZWJLaXRWUDlWVEI6Ok9uIDogd2VicnRjOjpX
ZWJLaXRWUDlWVEI6Ok9mZik7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5j
b2RlckZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kZXJGYWN0b3J5
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBhMDkzMDVmMjg0Y2VjYTY1
ZDY4NDYxODllOTdkZGFiNzc1NTEwNmQ2Li40MGU3NGEzNzZjODc2ZDFiODFmZWU3OThmNWVlMzY0
YzM0NjRmNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNTY2LDYg
KzE1NjYsMTYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVN1cHBvcnQoYm9vbCB2YWx1
ZSkKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0V2ViUlRDVlA5VlRCU3VwcG9ydChi
b29sIHZhbHVlKQoreworI2lmIFVTRShMSUJXRUJSVEMpCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBj
b250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKSB7CisgICAgICAgIHBhZ2UtPmxpYldlYlJUQ1Byb3Zp
ZGVyKCkuc2V0VlA5VlRCU3VwcG9ydCh2YWx1ZSk7CisgICAgICAgIHBhZ2UtPmxpYldlYlJUQ1By
b3ZpZGVyKCkuY2xlYXJGYWN0b3J5KCk7CisgICAgfQorI2VuZGlmCit9CisKIHZvaWQgSW50ZXJu
YWxzOjpzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wgdmFsdWUpCiB7CiAjaWYgVVNFKExJ
QldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGExNmY5NTJmMTU1MDAx
YmQ2MzUyYWU1MDk3YWQ2ODY2ZjQ4N2EyNDUuLjlhN2MwNzI5NTQzZTlhMWIxMDRmYzBhMzY3YWJk
OTA3ZDg1Yzc4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTk1LDYgKzU5
NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291
cmNlcyhSVENQZWVyQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgc2V0V2ViUlRDSDI2NVN1cHBvcnQo
Ym9vbCk7CiAgICAgdm9pZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wpOworICAgIHZvaWQgc2V0
V2ViUlRDVlA5VlRCU3VwcG9ydChib29sKTsKICAgICB2b2lkIHNldEVuYWJsZVdlYlJUQ0VuY3J5
cHRpb24oYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEVExTMTAoYm9vbCk7CiAgICAgdm9pZCBzZXRV
c2VHUFVQcm9jZXNzRm9yV2ViUlRDKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IGEzZjQ1NmUwODlmN2JmYTFmZjFhNzNhZTM1ZDQ3YTRjYjljMTk0MTEuLjUyOTM0
ZGY3OWEyYThlNzQ2ZDcxMGRjZjcyMmI5NzhmYTUzNTk4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTc5Myw2ICs3OTMsNyBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdv
cnkgewogICAgIFtDb25kaXRpb25hbD1XRUJfUlRDXSB1bmRlZmluZWQgYXBwbHlSb3RhdGlvbkZv
ck91dGdvaW5nVmlkZW9Tb3VyY2VzKFJUQ1BlZXJDb25uZWN0aW9uIGNvbm5lY3Rpb24pOwogICAg
IFtDb25kaXRpb25hbD1XRUJfUlRDXSB1bmRlZmluZWQgc2V0V2ViUlRDSDI2NVN1cHBvcnQoYm9v
bGVhbiBhbGxvd2VkKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdW5kZWZpbmVkIHNldFdl
YlJUQ1ZQOVN1cHBvcnQoYm9vbGVhbiBhbGxvd2VkKTsKKyAgICBbQ29uZGl0aW9uYWw9V0VCX1JU
Q10gdW5kZWZpbmVkIHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbGVhbiBhbGxvd2VkKTsKIAog
ICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHVuZGVmaW5lZCBzZXRNb2NrQXVkaW9UcmFj
a0NoYW5uZWxOdW1iZXIoTWVkaWFTdHJlYW1UcmFjayB0cmFjaywgdW5zaWduZWQgc2hvcnQgY291
bnQpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHVuZGVmaW5lZCBzZXRTaG91bGRJ
bnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2UoYm9vbGVhbiBzaG91bGRJbnRlcnJ1
cHQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGM0NjJmMzhiZGQzYTNkYzEwMGI5MGYxNDgyMGY3Yzc2ODc1OWQ5YmUuLjI1
NTBiYTkxNmY4N2Y3MmM5MmJkODM2YjJmYzhlZjUyNTdhMjY1MjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NyBAQAorMjAyMC0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGZpeC0yMTc4MTEKKwor
ICAgICAgICBmdXJ0aGVyLWZpeAorCisgICAgICAgICogd2VicnRjL3ZwOS12dGItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdnA5LXZ0Yi5odG1sOiBBZGRlZC4KKworMjAy
MC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
UlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2VicnRjL3ZwOS12dGItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdnA5LXZ0Yi5odG1sOiBBZGRlZC4KKwog
MjAyMC0xMC0xNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAog
ICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDQ3MDYzYzEzZmY1MDQ2MmQx
YzYyZmRkOGNhYWQ4YTFlNGRkNjAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
cnRjL3ZwOS12dGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCitQQVNTIFZQOSBp
biBnZXRDYXBhYmlsaXRpZXMKK1BBU1MgVmVyaWZ5IFZQOSBhY3RpdmF0aW9uCitQQVNTIFNldHRp
bmcgdmlkZW8gZXhjaGFuZ2UKK1BBU1MgRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25u
ZWN0ZWQKK1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjawor
UEFTUyBUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrCitQQVNTIFRyYWNr
IGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12
dGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMGE0MjA2OGZmODhkMmM4NjQ1Yjk2OGNlMDRlM2FkNzAzZDJh
NGJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRtbApA
QCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5WUDkgVlRCIGluIFdl
YlJUQzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhl
aWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMxIiB3aWR0aD0i
MzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIi
IHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0i
Y2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8c2Ny
aXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK2xldCBo
YXNWUDk7Cit0ZXN0KCgpID0+IHsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFdlYlJUQ1ZQOVN1cHBvcnQodHJ1ZSk7CisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0V2ViUlRDVlA5VlRCU3VwcG9ydCh0cnVlKTsKKyAgICB9CisKKyAg
ICBjb2RlY3MgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCJ2aWRlbyIpLmNvZGVjczsK
KyAgICBoYXNWUDkgPSBjb2RlY3Muc29tZSgoY29kZWMpID0+IHsgcmV0dXJuIGNvZGVjLm1pbWVU
eXBlID09ICJ2aWRlby9WUDkiOyB9KTsKKyAgICBhc3NlcnRfdHJ1ZShoYXNWUDkpOworfSwgIlZQ
OSBpbiBnZXRDYXBhYmlsaXRpZXMiKTsKKworaWYgKGhhc1ZQOSkgeworICAgIHByb21pc2VfdGVz
dChhc3luYyAodGVzdCkgPT4geworICAgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgICAgICBwYy5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICAgICAgY29u
c3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgICAgICBwYy5jbG9z
ZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdGlvbi5zZHAuaW5kZXhPZigiVlA5Iikg
IT09IC0xLCAiVlA5IGNvZGVjIGlzIGluIHRoZSBTRFAiKTsKKyAgICB9LCAiVmVyaWZ5IFZQOSBh
Y3RpdmF0aW9uIikKKworICAgIHZhciB0cmFjazsKKyAgICB2YXIgcmVtb3RlVHJhY2s7CisgICAg
dmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247CisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Cisg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86
IHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCwgZmFjaW5nTW9kZTogImVudmlyb25tZW50In19KS50
aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFt
LmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9u
cygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVj
dGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAgICAgICAgICAgICAgIH0sIChz
ZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5l
Y3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAgICAgICAgICAgICBzZWNvbmRDb25u
ZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgIH0sIHsgb2JzZXJ2ZU9mZmVyIDogKG9mZmVyKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIG9mZmVyLnNkcCA9IHNldENvZGVjKG9mZmVyLnNkcCwgIlZQOSIpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2ZmZXI7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0
KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS50
aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHJl
bW90ZVN0cmVhbTsKKyAgICAgICAgICAgIHJldHVybiB2aWRlby5wbGF5KCk7CisgICAgICAgIH0p
OworICAgIH0sICJTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlIik7CisKKyAgICBwcm9taXNlX3Rlc3Qo
KCkgPT4geworICAgICAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUg
PT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+
IHsKKyAgICAgICAgICAgICAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3Rh
dGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgICAgICB9OworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGlt
ZWQgb3V0IiksIDUwMDApOworICAgICAgICB9KTsKKyAgICB9LCAiRW5zdXJpbmcgY29ubmVjdGlv
biBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewor
ICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMxLCB2aWRlbyk7Cisg
ICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2siKTsKKwor
ICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICB0cmFjay5lbmFibGVkID0gZmFs
c2U7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8p
OworICAgIH0sICJUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IHRy
dWU7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2soZmFsc2UsIGNhbnZhczIsIHZpZGVv
KTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAy
Iik7Cit9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411730</attachid>
            <date>2020-10-19 02:38:12 -0700</date>
            <delta_ts>2020-10-19 06:05:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201019113809.patch</filename>
            <type>text/plain</type>
            <size>60910</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5kODM2
MWZjZmM0ZTQyYWMxNTVmNDY4ZDgzMTk5NDM0NzNmZjExYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMC0xMC0xOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICBBZGQgU1BJIGhlYWRlciBmaWxlcyBpbiBjYXNlIHRoZXkg
YXJlIG5vdCBhdmFpbGFibGUuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9TLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKyAgICAgICAgKiBT
b3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0U1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WVFZpZGVvRGVjb2RlclNQSS5oOiBBZGRlZC4K
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbToKKyAg
ICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAgICAgICAqIFNv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVjb2Rlci5jcHA6CisgICAgICAgICh3ZWJy
dGM6OmNyZWF0ZVdlYktpdFZQOURlY29kZXIpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06Cisg
ICAgICAgICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1l
XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGlu
aXRXaXRoSDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBjcmVhdGVEZWNvZGVyOl0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaDogQWRk
ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbTogQWRkZWQuCisgICAgICAgIChSVENGcmFtZURl
Y29kZVBhcmFtczo6UlRDRnJhbWVEZWNvZGVQYXJhbXMpOgorICAgICAgICAoVlA5QnVmZmVyVG9D
TVNhbXBsZUJ1ZmZlcik6CisgICAgICAgICh2cDlEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sp
OgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgZGVhbGxvY10pOgorICAgICAgICAo
LVtSVENWaWRlb0RlY29kZXJWVEJWUDkgc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlY29kZTptaXNzaW5nRnJhbWVzOmNv
ZGVjU3BlY2lmaWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IGRlY29kZURhdGE6c2l6ZTp0aW1lU3RhbXA6XSk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IHNldEVycm9yOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkg
cmVsZWFzZURlY29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJlc2V0
RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlclZUQlZQOSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVyVlRCVlA5IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tOgor
ICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNv
ZGVyKToKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGRjOGRlNGFkYTZkMWNhYjEyZjFiMWViM2UyZjRlN2E0ZjkxNGY3MmYuLmVk
YmVkM2ZhNGM2MWIxMDBmNzMxMmU0NzIzMjhhYTIyMTYyMGNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0
aW5nIHN1cHBvcnQgdG8gZW5hYmxlIFZQOSBkZWNvZGluZyB0aHJvdWdoIFZUQiBmb3IgV2ViUlRD
LgorCisgICAgICAgIFRlc3Q6IHdlYnJ0Yy92cDktdnRiLmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29k
ZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTEwLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgTWVkaWFQbGF5ZXI6Om1fdmlzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4
IGUzZTYxMWExMTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRjYWIzYzE2
MDA0MWI5Y2I4ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZh
Y3RvcnlFdgogX19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3Zl
Q2FuZGlkYXRlc0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxv
Y2F0b3JJUzRfRUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZl
cl91cmxFdgogX19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRj
MjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQ
OUUKK19fWk42d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgy
NjVFTlNfOVdlYktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVX
ZWJLaXRFbmNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42
d2VicnRjMjlzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0
SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKaW5kZXggZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4uNjFlYTY2
ZGNhYjNjMTYwMDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9Tc2ltLmV4cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGlu
QXVkaW9FbmNvZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50
ZXJmYWNlMTZSZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRp
ZGF0ZUVOUzFfOWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUlu
dGVyZmFjZTEwc2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNF
YgotX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5
RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9f
Wk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFj
LmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMubWFjLmV4cAppbmRleCBiOWQ2MjU5NzA4ZTkwODg5ZGUxZmI2M2FkYTBmNGUwYjczYzVhN2Qx
Li40ZWVkZDZlZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5tYWMuZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0
aW5BdWRpb0VuY29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25J
bnRlcmZhY2UxNlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2Fu
ZGlkYXRlRU5TMV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRl
SW50ZXJmYWNlMTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1
c0ViCi1fX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRI
MjY1RU5TXzlXZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3Rv
cnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pO
NndlYnJ0YzI2Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlX
ZWJLaXRWUDlFCiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgog
X19aTjZ3ZWJydGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9D
TUJhc2VPYmplY3RTUEkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU3ZGI4MTNkN2Uz
YTkxNzgzNmZhODAyOGFiMTFiZjUyNTM3OWY1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0
U1BJLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9D
RlByaXYuaD4pCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNQmFzZU9iamVjdC5oPgorI2Vsc2UKKwor
I2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBr
Q01CYXNlT2JqZWN0X0NsYXNzVmVyc2lvbl8xID0gMSwKKyAgICBrQ01CYXNlT2JqZWN0X0NsYXNz
VmVyc2lvbl8yID0gMiwKKyAgICBrQ01CYXNlT2JqZWN0X0NsYXNzVmVyc2lvbl8zID0gMworfTsK
KworZW51bSB7CisgICAga0NNQmFzZU9iamVjdF9Qcm90b2NvbFZlcnNpb25fMSA9IDEKK307CisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQmFzZU9iamVjdCAqQ01CYXNlT2JqZWN0UmVmOwordHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlQ01CYXNlQ2xhc3MgKkNNQmFzZUNsYXNzSUQ7Cit0eXBlZGVmIHN0
cnVjdCBPcGFxdWVDTUJhc2VQcm90b2NvbCAqQ01CYXNlUHJvdG9jb2xJRDsKKwordHlwZWRlZiBP
U1N0YXR1cyAoKkNNQmFzZU9iamVjdENvcHlQcm9wZXJ0eUZ1bmN0aW9uKShDTUJhc2VPYmplY3RS
ZWYsIENGU3RyaW5nUmVmIHByb3BlcnR5S2V5LCBDRkFsbG9jYXRvclJlZiwgdm9pZCAqcHJvcGVy
dHlWYWx1ZU91dCk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQ01CYXNlT2JqZWN0U2V0UHJvcGVydHlG
dW5jdGlvbikoQ01CYXNlT2JqZWN0UmVmIG9iamVjdCwgQ0ZTdHJpbmdSZWYgcHJvcGVydHlLZXks
IENGVHlwZVJlZiAgcHJvcGVydHlWYWx1ZSk7CisKKyNwcmFnbWEgcGFjayhwdXNoKQorI3ByYWdt
YSBwYWNrKCkKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBDTUJhc2VDbGFzc1ZlcnNpb24gdmVyc2lv
bjsKKyAgICBDRlN0cmluZ1JlZiAoKmNvcHlQcm90b2NvbERlYnVnRGVzY3JpcHRpb24pKENNQmFz
ZU9iamVjdFJlZik7Cit9IENNQmFzZVByb3RvY29sOworI3ByYWdtYSBwYWNrKHBvcCkKKworI3By
YWdtYSBwYWNrKHB1c2gpCisjcHJhZ21hIHBhY2soKQorc3RydWN0IENNQmFzZVByb3RvY29sVlRh
YmxlIHsKKyAgICBjb25zdCBzdHJ1Y3QgT3BhcXVlQ01CYXNlUHJvdG9jb2xWVGFibGVSZXNlcnZl
ZCAqcmVzZXJ2ZWQ7CisgICAgY29uc3QgQ01CYXNlUHJvdG9jb2wgKmJhc2VQcm90b2NvbDsKK307
CisjcHJhZ21hIHBhY2socG9wKQorCit0eXBlZGVmIHN0cnVjdCBDTUJhc2VQcm90b2NvbFRhYmxl
RW50cnkgeworICAgIENNQmFzZVByb3RvY29sSUQgKCpnZXRQcm90b2NvbElEKSh2b2lkKTsKKyAg
ICBDTUJhc2VQcm90b2NvbFZUYWJsZSAqcHJvdG9jb2xWVGFibGU7Cit9IENNQmFzZVByb3RvY29s
VGFibGVFbnRyeTsKKworc3RydWN0IENNQmFzZVByb3RvY29sVGFibGUgeworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgbnVtU3VwcG9ydGVkUHJvdG9jb2xzOworICAgIENNQmFz
ZVByb3RvY29sVGFibGVFbnRyeSAqIHN1cHBvcnRlZFByb3RvY29sczsKK307CisKKyNwcmFnbWEg
cGFjayhwdXNoLCA0KQordHlwZWRlZiBzdHJ1Y3QgeworICAgQ01CYXNlQ2xhc3NWZXJzaW9uIHZl
cnNpb247CisgICBzaXplX3QgZGVyaXZlZFN0b3JhZ2VTaXplOworCisgICBCb29sZWFuICgqZXF1
YWwpKENNQmFzZU9iamVjdFJlZiwgQ01CYXNlT2JqZWN0UmVmKTsKKyAgIE9TU3RhdHVzICgqaW52
YWxpZGF0ZSkoQ01CYXNlT2JqZWN0UmVmKTsKKyAgIHZvaWQgKCpmaW5hbGl6ZSkoQ01CYXNlT2Jq
ZWN0UmVmKTsKKyAgIENGU3RyaW5nUmVmICgqY29weURlYnVnRGVzY3JpcHRpb24pKENNQmFzZU9i
amVjdFJlZik7CisKKyAgIENNQmFzZU9iamVjdENvcHlQcm9wZXJ0eUZ1bmN0aW9uIGNvcHlQcm9w
ZXJ0eTsKKyAgIENNQmFzZU9iamVjdFNldFByb3BlcnR5RnVuY3Rpb24gc2V0UHJvcGVydHk7Cisg
ICBPU1N0YXR1cyAoKm5vdGlmaWNhdGlvbkJhcnJpZXIpKENNQmFzZU9iamVjdFJlZik7CisgICBj
b25zdCBDTUJhc2VQcm90b2NvbFRhYmxlICpwcm90b2NvbFRhYmxlOworfSBDTUJhc2VDbGFzczsK
KyNwcmFnbWEgcGFjayhwb3ApCisKKyNwcmFnbWEgcGFjayhwdXNoKQorI3ByYWdtYSBwYWNrKCkK
K3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBzdHJ1Y3QgT3BhcXVlQ01CYXNlVlRhYmxlUmVz
ZXJ2ZWQgKnJlc2VydmVkOworICAgIGNvbnN0IENNQmFzZUNsYXNzICpiYXNlQ2xhc3M7Cit9IENN
QmFzZVZUYWJsZTsKKyNwcmFnbWEgcGFjayhwb3ApCisKK0NNX0VYUE9SVCBPU1N0YXR1cyBDTURl
cml2ZWRPYmplY3RDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIGNvbnN0IENNQmFzZVZUYWJsZSosIENN
QmFzZUNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiopOworQ01fRVhQT1JUIHZvaWQgKkNNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlKENNQmFzZU9iamVjdFJlZik7CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworfSAvLyBleHRlcm4gIkMiCisjZW5kaWYKKworI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUg
JiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WVFZp
ZGVvRGVjb2RlclNQSS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9WVFZpZGVvRGVjb2RlclNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODg5MDVlZTQ3
MWRkZGE0ZDRkOTUwNTUwZDc3ODJlNDg3YTEwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1ZUVmlkZW9EZWNv
ZGVyU1BJLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9u
L0NGUHJpdi5oPikKKyNpbmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXIuaD4KKyNp
bmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXJSZWdpc3RyYXRpb24uaD4KKyNlbHNl
CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI3ByYWdtYSBw
YWNrKHB1c2gsIDQpCisKK3R5cGVkZWYgRm91ckNoYXJDb2RlIEZpZ1ZpZGVvQ29kZWNUeXBlOwor
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRWaWRlb0RlY29kZXIqIFZUVmlkZW9EZWNvZGVyUmVmOwor
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRWaWRlb0RlY29kZXJTZXNzaW9uKiBWVFZpZGVvRGVjb2Rl
clNlc3Npb247Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFZpZGVvRGVjb2RlckZyYW1lKiBWVFZp
ZGVvRGVjb2RlckZyYW1lOworCit0eXBlZGVmIE9TU3RhdHVzICgqVlRWaWRlb0RlY29kZXJGdW5j
dGlvbl9DcmVhdGVJbnN0YW5jZSkoRm91ckNoYXJDb2RlIGNvZGVjVHlwZSwgQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBWVFZpZGVvRGVjb2RlclJlZiAqaW5zdGFuY2VPdXQpOwordHlwZWRlZiBP
U1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fU3RhcnRTZXNzaW9uKShWVFZpZGVvRGVj
b2RlclJlZiwgVlRWaWRlb0RlY29kZXJTZXNzaW9uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYpOwordHlwZWRlZiBPU1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fRGVjb2RlRnJh
bWUpKFZUVmlkZW9EZWNvZGVyUmVmLCBWVFZpZGVvRGVjb2RlckZyYW1lLCBDTVNhbXBsZUJ1ZmZl
clJlZiwgVlREZWNvZGVGcmFtZUZsYWdzLCBWVERlY29kZUluZm9GbGFncyopOwordHlwZWRlZiBP
U1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEKSgpOworCitlbnVtIHsKKyAgICBr
VlRWaWRlb0RlY29kZXJfQ2xhc3NWZXJzaW9uXzEgPSAxLAorICAgIGtWVFZpZGVvRGVjb2Rlcl9D
bGFzc1ZlcnNpb25fMiA9IDIsCisgICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8zID0g
MywKK307CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBDTUJhc2VDbGFzc1ZlcnNpb24gdmVyc2lv
bjsKKworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fU3RhcnRTZXNzaW9uIHN0YXJ0U2Vzc2lv
bjsKKyAgICBWVFZpZGVvRGVjb2RlckZ1bmN0aW9uX0RlY29kZUZyYW1lIGRlY29kZUZyYW1lOwor
ICAgIAorICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNvcHlTdXBwb3J0ZWRQcm9wZXJ0
eURpY3Rpb25hcnk7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgc2V0UHJvcGVydGll
czsKKworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNvcHlTZXJpYWxpemFibGVQcm9w
ZXJ0aWVzOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNhbkFjY2VwdEZvcm1hdERl
c2NyaXB0aW9uOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGZpbmlzaERlbGF5ZWRG
cmFtZXM7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgcmVzZXJ2ZWQ3OworICAgIFZU
VmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIHJlc2VydmVkODsKKyAgICBWVFZpZGVvRGVjb2RlckZ1
bmN0aW9uX1RCRCByZXNlcnZlZDk7Cit9IFZUVmlkZW9EZWNvZGVyQ2xhc3M7CisKK3R5cGVkZWYg
c3RydWN0IHsKKyAgICBDTUJhc2VWVGFibGUgYmFzZTsKKyAgICBjb25zdCBWVFZpZGVvRGVjb2Rl
ckNsYXNzICp2aWRlb0RlY29kZXJDbGFzczsKK30gVlRWaWRlb0RlY29kZXJWVGFibGU7CisKK1ZU
X0VYUE9SVCBDTUJhc2VDbGFzc0lEIFZUVmlkZW9EZWNvZGVyR2V0Q2xhc3NJRCh2b2lkKTsKK1ZU
X0VYUE9SVCBDVlBpeGVsQnVmZmVyUG9vbFJlZiBWVERlY29kZXJTZXNzaW9uR2V0UGl4ZWxCdWZm
ZXJQb29sKFZUVmlkZW9EZWNvZGVyU2Vzc2lvbiBzZXNzaW9uICk7CitWVF9FWFBPUlQgT1NTdGF0
dXMgVlREZWNvZGVyU2Vzc2lvblNldFBpeGVsQnVmZmVyQXR0cmlidXRlcyhWVFZpZGVvRGVjb2Rl
clNlc3Npb24gc2Vzc2lvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGRlY29tcHJlc3NvclBpeGVsQnVmZmVy
QXR0cmlidXRlcyk7CitWVF9FWFBPUlQgT1NTdGF0dXMgVlREZWNvZGVyU2Vzc2lvbkVtaXREZWNv
ZGVkRnJhbWUoVlRWaWRlb0RlY29kZXJTZXNzaW9uIHNlc3Npb24sIFZUVmlkZW9EZWNvZGVyRnJh
bWUgZnJhbWUsIE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyKTsKK1ZUX0VYUE9SVCBPU1N0YXR1cyBWVFJlZ2lz
dGVyVmlkZW9EZWNvZGVyKEZpZ1ZpZGVvQ29kZWNUeXBlLCBWVFZpZGVvRGVjb2RlckZ1bmN0aW9u
X0NyZWF0ZUluc3RhbmNlKTsKKworI3ByYWdtYSBwYWNrKHBvcCkKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9IC8vIGV4dGVybiAiQyIKKyNlbmRpZgorCisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSAm
JiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dERlY29kZXIubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KaW5kZXggZDA1ZDA2MjI0OWM2YWFlNTFjOWE2MDE1
OGYzMTJlYzM3MmRhZjM1Yy4uMjg3ZTE5NmYwMWI4ZDUwYWQzMDBjYTY1NjRhOGQ0Y2QwYTExMjVm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQpAQCAtMTY3LDkg
KzE2Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IFJlbW90ZVZpZGVvRGVjb2Rl
ckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcihjb25zCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZhY3Rv
cnkoV2ViS2l0SDI2NSBzdXBwb3J0c0gyNjUsIFdlYktpdFZQOSBzdXBwb3J0c1ZQOSkKK3N0ZDo6
dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29k
ZXJGYWN0b3J5KFdlYktpdEgyNjUgc3VwcG9ydHNIMjY1LCBXZWJLaXRWUDkgc3VwcG9ydHNWUDks
IFdlYktpdFZQOVZUQiBzdXBwb3J0c1ZQOVZUQikKIHsKLSAgICBhdXRvIGludGVybmFsRmFjdG9y
eSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoW1tSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdpdGhIMjY1OiBzdXBwb3J0c0gyNjUgPT0gV2ViS2l0SDI2
NTo6T24gdnA5OiBzdXBwb3J0c1ZQOSA9PSBXZWJLaXRWUDk6Ok9uXSk7CisgICAgYXV0byBpbnRl
cm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogc3VwcG9ydHNIMjY1ID09
IFdlYktpdEgyNjU6Ok9uIHZwOTogc3VwcG9ydHNWUDkgPT0gV2ViS2l0VlA5OjpPbiB2cDlWVEI6
IHN1cHBvcnRzVlA5VlRCID09IFdlYktpdFZQOVZUQjo6T25dKTsKICAgICBpZiAodmlkZW9EZWNv
ZGVyQ2FsbGJhY2tzKCkuY3JlYXRlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3Rv
cnkpKTsKICAgICByZXR1cm4gaW50ZXJuYWxGYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNTA5Y2RmNTQ1M2UzMjI0MGUxYjE4NDJmYmFlNDUx
YTY0ZTY3ZmQzNC4uMDdkNWNlMzc0YmY2MjgwYmJjN2EyY2U0ZTBlMDAyOTFiMmJiYmU5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC00Miw5ICs0Miwx
MCBAQCBjbGFzcyBWaWRlb0ZyYW1lOwogCiBlbnVtIGNsYXNzIFdlYktpdEgyNjUgeyBPZmYsIE9u
IH07CiBlbnVtIGNsYXNzIFdlYktpdFZQOSB7IE9mZiwgT24gfTsKK2VudW0gY2xhc3MgV2ViS2l0
VlA5VlRCIHsgT2ZmLCBPbiB9OwogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29k
ZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9yeShXZWJLaXRIMjY1LCBXZWJLaXRW
UDkpOwotc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRl
V2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5KTsKK3N0ZDo6dW5pcXVl
X3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0
b3J5KFdlYktpdEgyNjUsIFdlYktpdFZQOSwgV2ViS2l0VlA5VlRCKTsKIAogdm9pZCBzZXRBcHBs
aWNhdGlvblN0YXR1cyhib29sIGlzQWN0aXZlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVy
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VlA5RGVjb2Rlci5jcHAKaW5kZXggMTE0ODU4MDY3YzRhMWJmNWU2MDBmYWU2OTVh
MzdmMGQ5Njc3ZGFjYS4uNzI0ZGU1N2JmOGY0NzZlZDU2YjZiMmFkODBjYjIxMWFmOGNiNzY4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCkBAIC0y
NSwxNiArMjUsMTUgQEAKIAogI2luY2x1ZGUgIldlYktpdFZQOURlY29kZXIuaCIKIAotI2lmIGRl
ZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlBy
aXYuaD4pCi0KICNpbmNsdWRlICJXZWJLaXRVdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxDb3JlTWVk
aWEvQ01CYXNlT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZUVmlkZW9EZWNvZGVy
Lmg+Ci0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZUVmlkZW9EZWNvZGVyUmVnaXN0cmF0aW9uLmg+
CisjaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvdnA5X2ltcGwuaCIKICNpbmNsdWRlICJydGNfYmFz
ZS9sb2dnaW5nLmgiCiAjaW5jbHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY3B1X2luZm8u
aCIKIAorI2luY2x1ZGUgIkNNQmFzZU9iamVjdFNQSS5oIgorI2luY2x1ZGUgIlZUVmlkZW9EZWNv
ZGVyU1BJLmgiCisKIG5hbWVzcGFjZSB3ZWJydGMgewogCiBzdGF0aWMgT1NTdGF0dXMgY3JlYXRl
V2ViS2l0VlA5RGVjb2RlcihGaWdWaWRlb0NvZGVjVHlwZSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBWVFZpZGVvRGVjb2RlclJlZiopOwpAQCAtNzksMjEgKzc4LDIzIEBAIHN0YXRpYyBDRlN0
cmluZ1JlZiBjb3B5VlA5RGVjb2RlckRlYnVnRGVzY3JpcHRpb24oQ01CYXNlT2JqZWN0UmVmKTsK
IHN0YXRpYyBjb25zdCBDTUJhc2VDbGFzcyBXZWJLaXRWUDlEZWNvZGVyX0Jhc2VDbGFzcyA9CiB7
CiAgICAga0NNQmFzZU9iamVjdF9DbGFzc1ZlcnNpb25fMSwKLSAgICBzaXplb2YoV2ViS2l0VlA5
RGVjb2RlciksCisgICAgNjQsIC8vc2l6ZW9mKFdlYktpdFZQOURlY29kZXIpLAogICAgIG51bGxw
dHIsIC8vIENvbXBhcmlzb24gYnkgcG9pbnRlciBlcXVhbGl0eQogICAgIGludmFsaWRhdGVWUDlE
ZWNvZGVyLAogICAgIGZpbmFsaXplVlA5RGVjb2RlciwKICAgICBjb3B5VlA5RGVjb2RlckRlYnVn
RGVzY3JpcHRpb24sCiAgICAgbnVsbHB0ciwgLy8gQ29weVByb3BlcnR5Ci0gICAgbnVsbHB0ciAv
LyBTZXRQcm9wZXJ0eQorICAgIG51bGxwdHIsIC8vIFNldFByb3BlcnR5CisgICAgbnVsbHB0ciwK
KyAgICBudWxscHRyCiB9OwogCiBzdGF0aWMgT1NTdGF0dXMgc3RhcnRWUDlEZWNvZGVyU2Vzc2lv
bihWVFZpZGVvRGVjb2RlclJlZiwgVlRWaWRlb0RlY29kZXJTZXNzaW9uLCBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYpOwogc3RhdGljIE9TU3RhdHVzIGRlY29kZVZQOURlY29kZXJGcmFtZShW
VFZpZGVvRGVjb2RlclJlZiwgVlRWaWRlb0RlY29kZXJGcmFtZSwgQ01TYW1wbGVCdWZmZXJSZWYs
IFZURGVjb2RlRnJhbWVGbGFncywgVlREZWNvZGVJbmZvRmxhZ3MqKTsKIAotc3RhdGljIGNvbnN0
IFZUVmlkZW9EZWNvZGVyQ2xhc3MgV2ViS2l0VlA5RGVjb2Rlcl9WaWRlb0VuY29kZXJDbGFzcyA9
CitzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJDbGFzcyBXZWJLaXRWUDlEZWNvZGVyX1ZpZGVv
RGVjb2RlckNsYXNzID0KIHsKLSAgICBrVlRWaWRlb0RlY29kZXJfQ2xhc3NWZXJzaW9uXzMsCisg
ICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8xLAogICAgIHN0YXJ0VlA5RGVjb2RlclNl
c3Npb24sCiAgICAgZGVjb2RlVlA5RGVjb2RlckZyYW1lLAogICAgIG51bGxwdHIsIC8vIFZUVmlk
ZW9EZWNvZGVyRnVuY3Rpb25fQ29weVN1cHBvcnRlZFByb3BlcnR5RGljdGlvbmFyeSwKQEAgLTEw
OSw3ICsxMTAsNyBAQCBzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJDbGFzcyBXZWJLaXRWUDlE
ZWNvZGVyX1ZpZGVvRW5jb2RlckNsYXNzID0KIHN0YXRpYyBjb25zdCBWVFZpZGVvRGVjb2RlclZU
YWJsZSBXZWJLaXRWUDlEZWNvZGVyVlRhYmxlID0KIHsKICAgICB7IG51bGxwdHIsICZXZWJLaXRW
UDlEZWNvZGVyX0Jhc2VDbGFzcyB9LAotICAgICZXZWJLaXRWUDlEZWNvZGVyX1ZpZGVvRW5jb2Rl
ckNsYXNzCisgICAgJldlYktpdFZQOURlY29kZXJfVmlkZW9EZWNvZGVyQ2xhc3MKIH07CiAKIE9T
U3RhdHVzIGNyZWF0ZVdlYktpdFZQOURlY29kZXIoRmlnVmlkZW9Db2RlY1R5cGUsIENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgVlRWaWRlb0RlY29kZXJSZWYqIGRlY29kZXJPdXQpCkBAIC0zODcs
MTQgKzM4OCwzIEBAIHZvaWQgV2ViS2l0VlA5RGVjb2RlclJlY2VpdmVyOjpEZWNvZGVkKFZpZGVv
RnJhbWUmIGZyYW1lLCBhYnNsOjpvcHRpb25hbDxpbnQzMl90CiB9CiAKIH0KLQotI2Vsc2UgLy8g
ZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NG
UHJpdi5oPikKLQotbmFtZXNwYWNlIHdlYnJ0YyB7Ci0KLXZvaWQgcmVnaXN0ZXJXZWJLaXRWUDlE
ZWNvZGVyKCkKLXsKLX0KLQotfQotI2VuZGlmIC8vIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBf
X2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9f
Y29kZWMvUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCmluZGV4IGRjZTQ3OWM4OTA5MTEzZjkxYWJhNjc3YWUy
ZjczMGYyMmE2ZTc0YjAuLjJiNGFjYjkxYjQ1YzYxMmE5MDUwOWZmODhhN2UxYTljYTFmODE1NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Fw
aS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCkBAIC01NCw3ICs1
NCw5IEBACiB9CiAKIC0gKE5TU3RyaW5nICopaW1wbGVtZW50YXRpb25OYW1lIHsKKyNpZiAhZGVm
aW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQogICBSVENfTk9UUkVBQ0hFRCgpOworI2VuZGlmCiAg
IHJldHVybiBuaWw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaAppbmRleCBlMjgyMGIyMzAwOWU5ZGNlZGQxNDQ3OWYxYTVmMDkwYTU2
MWQ0MmIyLi4yNGExZDYzY2Y3MzU2YzNhNzFkYzkyZWU1NmU3MDhhMzUxZTA0M2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0y
MSw3ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19FWFBPUlQKIF9f
YXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgOiBO
U09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KLS0gKGlkKWluaXRXaXRoSDI2NTooYm9v
bClzdXBwb3J0SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDk7CistIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydEgyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBw
b3J0c1ZQOVZUQjsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggZTVmNGEyMDQ3
YWQ1OTY2YzAzZGIxNjU3MGQxMjM5ZTY1N2YzYjhhNy4uZTA0MjJjZjUwMDY0N2VmY2Q4NzIyODU2
MTBjZDAyM2E2ZjRhZjAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0
VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZp
ZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTcsMjMgKzE3LDMwIEBACiAjaW1wb3J0ICJiYXNlL1JU
Q1ZpZGVvQ29kZWNJbmZvLmgiCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICNpbXBvcnQg
ImFwaS92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWUDkuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVv
RGVjb2RlclZUQlZQOS5oIgogI2VuZGlmCiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkK
ICNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgogI2ltcG9ydCAiUlRDVmlkZW9EZWNv
ZGVySDI2NS5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3gu
aD4KKwogQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IHsKICAg
Ym9vbCBfc3VwcG9ydHNIMjY1OwogICBib29sIF9zdXBwb3J0c1ZQOTsKKyAgYm9vbCBfc3VwcG9y
dHNWUDlWVEI7CiB9CiAKLS0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5
Oihib29sKXN1cHBvcnRzVlA5CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1
IHZwOTooYm9vbClzdXBwb3J0c1ZQOSB2cDlWVEI6KGJvb2wpc3VwcG9ydHNWUDlWVEIKIHsKICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKICAgaWYgKHNlbGYpIHsKICAgICAgIF9zdXBwb3J0c0gyNjUg
PSBzdXBwb3J0c0gyNjU7CiAgICAgICBfc3VwcG9ydHNWUDkgPSBzdXBwb3J0c1ZQOTsKKyAgICAg
IC8vIFVzZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkgb25jZSBhZGRlZCB0byBDTUZvcm1hdERlc2Ny
aXB0aW9uLmgKKyAgICAgIF9zdXBwb3J0c1ZQOVZUQiA9IHN1cHBvcnRzVlA5ICYmIChzdXBwb3J0
c1ZQOVZUQiB8fCBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoJ3ZwMDknKSk7Cis7CiAgIH0K
ICAgcmV0dXJuIHNlbGY7CiB9CkBAIC05MSw3ICs5OCwxMSBAQCAtIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogI2VuZGlmCiAjaWYgZGVm
aW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0
cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7Ci0gICAgcmV0dXJuIFtSVENWaWRlb0RlY29k
ZXJWUDkgdnA5RGVjb2Rlcl07CisgICAgICBpZiAoX3N1cHBvcnRzVlA5VlRCKSB7CisgICAgICAg
IHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBhbGxvY10gaW5pdF07CisgICAgICB9IGVs
c2UgeworICAgICAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAg
ICAgIH0KICNlbmRpZgogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBjNDA0MzZkMzdjZTQ0ODUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0Rl
Y29kZXIuaCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVf
bmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVyZmFjZSBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorLSAoTlNJbnRlZ2VyKWRl
Y29kZURhdGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZTooc2l6ZV90KXNpemUKKyAg
ICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMmJkODJlZjE1ZWYyOTEwMGYz
YzBiYmJmYmVhNjkxYzI3OWM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICov
CisKKy8qCisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hseSBiYXNlZCBvbiBSVENW
aWRlb0RlY29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5
LmgiCisKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1wb3J0IDxWaWRlb1Rvb2xi
b3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2lt
cG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3Zp
ZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgi
CisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKworI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVk
ZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRo
ZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGlu
IHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zIHsKKyAg
UlRDRnJhbWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgY2IsIGludDY0X3Qg
dHMpIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVjb2RlckNh
bGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKK0BpbnRlcmZhY2Ug
UlRDVmlkZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9yOihPU1N0YXR1cyllcnJv
cjsKK0BlbmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihj
b25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxvY2tCdWZmZXJSZWYgbmV3
X2Jsb2NrX2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1ZmZlcl9zaXplLCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1
cmVNZW1vcnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyAgfQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVkQ0YobmV3X2Jsb2NrX2J1
ZmZlcik7CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRl
cyhidWZmZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3NpemUpKSB7CisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVfYnVmZmVyID0g
bnVsbHB0cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51bGxwdHIsIG51bGxwdHIs
IHZpZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgJnNhbXBsZV9idWZmZXIp
KSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNhbXBsZV9idWZmZXI7Cit9
CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNh
bGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5RGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP
U1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVERlY29k
ZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJh
bXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVEZWNvZGVQ
YXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENWaWRlb0RlY29kZXJWVEJW
UDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0YXR1c107CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIFN0YXR1czogIiA8PCBz
dGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZmZXIgKmZyYW1lQnVmZmVy
ID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVsQnVmZmVyOmltYWdlQnVm
ZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAgICAgIFtbUlRDVmlkZW9G
cmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlvbl8wCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdldFNlY29uZHModGltZXN0
YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFt
cCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRl
Y29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIF92aWRlb0Zvcm1h
dDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVzc2lvblNlc3Npb247Cisg
IFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NTdGF0dXMgX2Vycm9yOwor
ICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQorCistICh2b2lkKWRlYWxs
b2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRW
aWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RGVjb2RlV2l0aE51
bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5jb2RlZEltYWdlICopaW5w
dXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICBj
b2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVjaWZpY0luZm8+KWluZm8K
KyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgeworICBSVENfRENI
RUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2UuZnJhbWVUeXBlID09IFJU
Q0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9IGlucHV0SW1hZ2UuZW5j
b2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5jb2RlZEhlaWdodDsKKyAg
fQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZl
ci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dElt
YWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50
OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6
KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBub0VycikgeworICAgIFJU
Q19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOworICAgIF9l
cnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0K
KworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxs
cHRyOworICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2UgYWRkZWQgdG8gQ01Gb3Jt
YXREZXNjcmlwdGlvbi5oCisgIGlmIChub0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3ZwMDknLCBfd2lkdGgsIF9oZWlnaHQsIG51bGxw
dHIsICZmb3JtYXREZXNjcmlwdGlvbikpCisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGlucHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRDRihmb3JtYXREZXNjcmlwdGlvbik7CisgIGlm
IChpbnB1dEZvcm1hdCkgeworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNo
YW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBp
ZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9y
bWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOwor
ICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25F
cnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlk
ZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZl
IGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAv
LyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZv
ciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVx
dWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19M
T0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9w
cHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9
CisgIGF1dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpTY29wZWRDRihWUDlCdWZmZXJUb0NNU2FtcGxl
QnVmZmVyKGRhdGEsIHNpemUsIF92aWRlb0Zvcm1hdCkpOworICBpZiAoIXNhbXBsZUJ1ZmZlcikg
eworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKworICBWVERlY29k
ZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25v
dXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+
IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJh
bWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVz
ID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Np
b25TZXNzaW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCksIGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBh
cmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8g
UmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3
aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBvciBkZWNvZGVyIG1hbGZ1bmN0aW9ucyBhbmQg
cmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vz
c2lvbkVyciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9EZWNvZGVyTWFsZnVuY3Rpb25FcnIpICYmCisg
ICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBXRUJSVENfVklERU9fQ09E
RUNfT0spIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1l
IHdpdGggY29kZTogIiA8PCBzdGF0dXMKKyAgICAgICAgICAgICAgICAgICAgIDw8ICIgcmV0cnlp
bmcgZGVjb2RlIGFmdGVyIGRlY29tcHJlc3Npb24gc2Vzc2lvbiByZXNldCI7CisgICAgZnJhbWVE
ZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgdGlt
ZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1l
KAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlci5nZXQoKSwgZGVj
b2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CisgIH0KKyNl
bmRpZgorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg
IkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxi
YWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0gKHZvaWQpc2V0
RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vycm9yID0gZXJyb3I7Cit9CisKKy0gKE5TSW50
ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgc2Vzc2lv
biBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIgYW5kIGl0CisgIC8vIGlzIHNhZmUg
dG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNl
c3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKKyAgX2NhbGxiYWNrID0g
bnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworI3ByYWdtYSBt
YXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtz
ZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gTmVlZCB0byB3YWl0IGZv
ciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KKyAgaWYgKCFfdmlkZW9Gb3Jt
YXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworICB9CisKKyAgLy8gU2V0
IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBhdGliaWx0eSwgd2hpY2ggbWFrZXMg
dGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZlcnMgd2l0aCBHUFUgYmFja2VkIG1l
bW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAgLy8gdGhlIHBpeGVsIGJ1ZmZlcnMg
ZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9hZCBsYXRlciBkdXJpbmcKKyAgLy8g
cmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJlY2F1c2Ugd2UgYXJlIGNvbnZlcnRp
bmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVyIGRlY29kZSwgYnV0IGV2ZW50dWFs
bHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENWUGl4ZWxCdWZmZXJzIGRpcmVjdGx5
IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBNYXliZSBvbmx5IHNldCBPcGVu
R0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRoYXQKKyAgLy8gd2UgY2FuIHBhc3Mg
Q1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4gZGVjb2RlciBvdXRwdXQuCisgIHN0
YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVSZWYga2V5c1th
dHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVs
QnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFD
KQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAg
IGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFs
dWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2
NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxS
YW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPSBDRk51bWJlckNyZWF0ZShudWxscHRy
LCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRy
aWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLCBwaXhlbEZvcm1h
dH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFy
eShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7
CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51
bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9y
bWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgVlREZWNvbXByZXNzaW9u
T3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgdnA5RGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAqKXNlbGYsCisgIH07CisgIE9TU3RhdHVzIHN0
YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCBfdmlk
ZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNl
c3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBkZWNvbXByZXNz
aW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9u
U2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBb
c2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lv
biB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyNpZiBkZWZpbmVkKFdF
QlJUQ19JT1MpCisgIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwg
a1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7Cisj
ZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24geworICBpZiAo
X2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxE
KQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9k
ZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAg
ICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsK
KyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25JbnZhbGlk
YXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9kZWNvbXByZXNzaW9u
U2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQor
CistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYpdmlk
ZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09IHZpZGVvRm9ybWF0KSB7CisgICAgcmV0
dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJlbGVhc2UoX3ZpZGVvRm9y
bWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRlb0Zvcm1hdDsKKyAgaWYgKF92aWRlb0Zv
cm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zvcm1hdCk7CisgIH0KK30KKworLSAoTlNTdHJp
bmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQor
CitAZW5kCisKKyNlbmRpZiAvLyBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNv
ZGVyX2ZhY3RvcnkubW0KaW5kZXggMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUy
NWJkOC4uMWNmOTQ5ZGMxN2EzYmMwNzdlZGU0MjhhYzg3ZmRkOGRiYjFjZmYwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlk
ZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAsNyArMTAwLDExIEBAIHN0ZDo6dW5pcXVlX3B0
cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29k
ZXIoCiAgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBk
b2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KICAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tp
bmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKLSAgICAg
IGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJW
UDkiXSkgeworI2lmICFkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAgICAgIGlmIChb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkg
eworI2Vsc2UKKyAgICAgICAgaWYgKCFbZGVjb2Rlci5pbXBsZW1lbnRhdGlvbk5hbWUgaXNFcXVh
bDpAIlZpZGVvVG9vbGJveCJdKSB7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBl
ZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVj
b2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDRlNGE1MzgxZjg3MDBkNGJlM2MxM2UzMDAyMzIyMjdiYmM2YzEwODAu
LjdiZjBkNTdkNDQ4MTVlYjZiODFmN2VjYjYxOWMzMzAxZDgxY2ZmMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDkgQEAKIAkJNDEyOTlCOTIyMTI3MzY3QjAw
QjM0MTRCIC8qIGlzYWNfdmFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQuaCAqLzsgfTsK
IAkJNDEyOTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlCOTAyMTI3MzY3QjAwQjM0
MTRCIC8qIHBpdGNoX2ZpbHRlci5oICovOyB9OwogCQk0MTI5OUI5NzIxMjczNjkxMDBCMzQxNEIg
LyogZmFrZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlw
ZS5oICovOyB9OworCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVy
VlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLzsg
fTsKKwkJNDEyRkY5MzcyNTNEOEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNvZGVyU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTJGRjkzNTI1M0Q4
RjBBMDAxREYwMzYgLyogVlRWaWRlb0RlY29kZXJTUEkuaCAqLzsgfTsKKwkJNDEyRkY5MzgyNTNE
OEYwQTAwMURGMDM2IC8qIENNQmFzZU9iamVjdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyRkY5MzYyNTNEOEYwQTAwMURGMDM2IC8qIENNQmFz
ZU9iamVjdFNQSS5oICovOyB9OwogCQk0MTMwOTFGMzFFRjhDRjkyMDA3NTdDNTUgLyogcnRwX3Zp
ZGVvX3N0cmVhbV9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzMDkxRjExRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1f
cmVjZWl2ZXIuaCAqLzsgfTsKIAkJNDEzMDkxRjQxRUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRl
b19zdHJlYW1fcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTMwOTFGMjFFRjhDRjkxMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9y
ZWNlaXZlci5jYyAqLzsgfTsKIAkJNDEzMDkxRkIxRUY4Q0ZGODAwNzU3QzU1IC8qIGJ1aWx0aW5f
YXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEzMDkxRjkxRUY4Q0ZGMzAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVkaW9f
ZW5jb2Rlcl9mYWN0b3J5LmNjICovOyB9OwpAQCAtMTQyMiw3ICsxNDI1LDYgQEAKIAkJNDE3OTUz
QjgyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMDIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUz
QjkyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMTIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUz
QkEyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMjIx
Njk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLzsg
fTsKLQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnku
aCAqLzsgfTsKIAkJNDE3OTUzQkMyMTY5ODI0QjAwMjgyNjZCIC8qIGhlbHBlcnMuY2MgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1MjFEMzIxNjk4MjFG
MDAwQUJBRjcgLyogaGVscGVycy5jYyAqLzsgfTsKIAkJNDE3OTUzQkQyMTY5ODI0QjAwMjgyNjZC
IC8qIGhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNjIyNUY1MjE2OTgxRjQwMEE5MUM5QiAvKiBoZWxwZXJzLmggKi87IH07CiAJCTQxNzk1
M0JGMjE2OTgyNEIwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1MjFENTIxNjk4MjIwMDAwQUJBRjcgLyog
bmFsdV9yZXdyaXRlci5oICovOyB9OwpAQCAtMjIzNiw3ICsyMjM4LDYgQEAKIAkJNDFFQ0VBQkMy
MDY0MDNDMjAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkIyMDY0MDNDMTAwOUQ1MTQxIC8qIFdl
YktpdFV0aWxpdGllcy5oICovOyB9OwogCQk0MUVDRUFCRTIwNjQwNDk4MDA5RDUxNDEgLyogV2Vi
S2l0VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFQ0VBQkQyMDY0MDQ5ODAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5tbSAqLzsg
fTsKIAkJNDFFQ0VBQzEyMDY0MEYyODAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkYyMDY0
MEYyNzAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oICovOyB9OwotCQk0MUVDRUFGQzIw
NjQ2NjY0MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBRjkyMDY0NjY2MzAwOUQ1MTQxIC8qIEVu
Y29kZXJVdGlsaXRpZXMuaCAqLzsgfTsKIAkJNDFFQ0VBRkQyMDY0NjY2NDAwOUQ1MTQxIC8qIFZp
ZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3Np
bmdTb2Z0TGluay5jcHAgKi87IH07CiAJCTQxRUNFQUZFMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRl
b1Byb2Nlc3NpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFFQ0VBRkIyMDY0NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1Nv
ZnRMaW5rLmggKi87IH07CiAJCTQxRUVENzdDMjE1MkVEOEUwMDBGMkExNiAvKiBhdmdfbmVvbi5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5NDc4ODMy
MTUyRUQ0MzAwMjc1MjU3IC8qIGF2Z19uZW9uLmMgKi87IH07CkBAIC00MzQ1LDYgKzQzNDYsMTAg
QEAKIAkJNDEyOTlCOUIyMTI3MzZERTAwQjM0MTRCIC8qIHBpdGNoX2luZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGl0Y2hfaW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5
QzIxMjczNkRFMDBCMzQxNEIgLyogcm5uLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcm5uLmNjOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5RDIxMjczNkRGMDBCMzQxNEIgLyog
c3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc3BlY3RyYWxfZmVh
dHVyZXNfaW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzIy
NTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDEyRkY5MzMyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJWVEJWUDkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzUyNTNEOEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNv
ZGVyU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUVmlkZW9EZWNvZGVy
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTM2MjUzRDhGMEEwMDFE
RjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ01CYXNlT2JqZWN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5
MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8q
IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19l
bmNvZGVyX2ZhY3RvcnkuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBi
dWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgcGF0aCA9IGF1ZGlvX2NvZGVjcy9idWls
dGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTY2OTQsNyArNjY5OSw2IEBACiAJCTQxRUNFQUJCMjA2NDAzQzEwMDlENTE0MSAvKiBXZWJL
aXRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUJEMjA2NDA0OTgw
MDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJLaXRVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRUNFQUJGMjA2NDBGMjcwMDlENTE0MSAvKiBOU1N0cmluZytTdGRTdHJpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gIk5TU3RyaW5nK1N0ZFN0cmluZy5oIjsg
cGF0aCA9ICJDb21tb24vTlNTdHJpbmcrU3RkU3RyaW5nLmgiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MUVDRUFGOTIwNjQ2NjYzMDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVyVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBW
aWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxRUNFQUZCMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdT
b2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUVFRDc3ODIxNTJFRDgz
MDAwRjJBMTYgLyogc2F2ZV9yZWdfbmVvbi5hc20gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbS5hc207IHBhdGggPSBzYXZlX3Jl
Z19uZW9uLmFzbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDU2LDYgKzEwMDYw
LDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2
NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVy
SDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29k
ZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkzMjI1MzlCM0M5MDAxREYwMzYgLyogUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBS
VENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4
MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2
OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8sCkBAIC0xMDc1MSw5ICsx
MDc1NywxMCBAQAogCQk0MTlDODQ5NjFGRTJGRTlDMDA0MEMzMEYgLyogV2ViS2l0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MUVDRUFGOTIwNjQ2NjYz
MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oICovLAorCQkJCTQxMkZGOTM2MjUzRDhGMEEw
MDFERjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAqLywKIAkJCQk0MUVDRUFGQTIwNjQ2NjYzMDA5
RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwICovLAogCQkJCTQxRUNFQUZCMjA2
NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oICovLAorCQkJCTQxMkZG
OTM1MjUzRDhGMEEwMDFERjAzNiAvKiBWVFZpZGVvRGVjb2RlclNQSS5oICovLAogCQkJCTQxRTg0
QkM5MjQzNEM0QTIwMEQzNEU0MSAvKiBXZWJLaXREZWNvZGVyLmggKi8sCiAJCQkJNDFFODRCQ0Ey
NDM0QzRBMzAwRDM0RTQxIC8qIFdlYktpdERlY29kZXIubW0gKi8sCiAJCQkJNDE1ODY0OTYyM0JF
MDVFODAwQTBBNjFFIC8qIFdlYktpdEVuY29kZXIuaCAqLywKQEAgLTE2MDI4LDYgKzE2MDM1LDcg
QEAKIAkJCQk1QzA4ODUyQTFFNEE5OUQyMDA0MDM5OTUgLyogY2lwaGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODZBMjFFNDNCOTk0MDA2MjFFOTIgLyogY2lyY3VsYXJfYnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzM3MzIzNEI5NTdEMDAyOEE2MTUgLyogY2xvY2tkcmlmdF9k
ZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEyRkY5MzgyNTNEOEYwQTAwMURGMDM2IC8q
IENNQmFzZU9iamVjdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCNzYyMUIxRkZBNDAw
QTVERjI3IC8qIGNvY29hX3RocmVhZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3QjAx
RTQzQkMwNTAwNjIxRTkyIC8qIGNvZGVjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0NGMzFG
NzlCMzM0MDAzODdCNEQgLyogY29kZWMuaCBpbiBIZWFkZXJzICovLApAQCAtMTYxNjgsNyArMTYx
NzYsNiBAQAogCQkJCTVDREQ4NUEwMUU0M0I1QzAwMDYyMUU5MiAvKiBlbmNvZGVyX3J0Y3BfZmVl
ZGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOTNFMjQyQTcwQUUwMDdGREM0MSAvKiBl
bmNvZGVyX3NldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzI4MzIzNEI4Q0M0MDAy
OEE2MTUgLyogZW5jb2Rlcl9zaW11bGNhc3RfcHJveHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
RUNFQUZDMjA2NDY2NjQwMDlENTE0MSAvKiBFbmNvZGVyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEI5OTFFNDNDMkI1MDA2MjFFOTIgLyogZW5lcmd5X2ludmVyc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4QjlCMUU0M0MyQjUwMDYyMUU5MiAvKiBlbmhfdXBzYW1wbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QjlGMUU0M0MyQjUwMDYyMUU5MiAvKiBlbmhhbmNl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNjcyNiw3ICsxNjczMyw2IEBACiAJCQkJNDEzRTY3OEEy
MTY5ODdCOTAwRUYzN0VEIC8qIFJUQ0NWUGl4ZWxCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxM0EyNDU1MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzQTI0NzAxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0RhdGFDaGFubmVsQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8q
IFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5
NTNDMjIxNjk4MjRCMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0EyNDUyMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEaXNwYXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRD
RUFHTFZpZGVvVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzIwNCw2ICsxNzIxMCw3IEBACiAJ
CQkJNDEzMUJGQTcyMzRCODhBNjAwMjhBNjE1IC8qIHZwOV9wcm9maWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEJGNDFFNDNDMkI1MDA2MjFFOTIgLyogdnEzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEJGNjFFNDNDMkI1MDA2MjFFOTIgLyogdnE0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTJGRjkzNzI1M0Q4RjBBMDAxREYwMzYgLyogVlRWaWRlb0RlY29kZXJTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDNEI0QzgxMUU0MzFGOUMwMDI2NTFDOCAvKiB3YXZfZmlsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUM0QjRDODQxRTQzMUY5QzAwMjY1MUM4IC8qIHdhdl9oZWFkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDMTYzMjM0Qjg5RTIwMDI4QTYxNSAvKiB3ZWFrX3B0ci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xOTM5OSw2ICsxOTQwNiw3IEBACiAJCQkJNDFFODRCRDIyNDM3
M0MxNDAwRDM0RTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVyVlA4Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE0MDM1RUYyNEFBMEVCQzAwQkNFOUIyIC8qIFJUQ1ZpZGVvRGVjb2Rl
clZQOS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxMkZGOTM0MjUzOUI3NjQwMDFERjAzNiAvKiBS
VENWaWRlb0RlY29kZXJWVEJWUDkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCOTIxNjk4
MjQyMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2VzICov
LAogCQkJCTQxNzk1M0NBMjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFODRCRDMyNDM3M0MxQTAwRDM0RTQxIC8qIFJUQ1ZpZGVv
RW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKaW5kZXggZWJjZjcxOTNmNWE1MzI0MjBkMTRjNzlhOTljYTcyM2E0NmEwZDRhNS4uYzZi
MmNiOTgzZWYyN2I0ZDZkMGE4YTE3YjRjN2I5Y2M3Njk4NzZlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwOCw4ICsxMDgsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRIMjY1U3VwcG9ydChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNIMjY1ID0gdmFsdWU7IH0K
ICAgICB2b2lkIHNldFZQOVN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5ID0gdmFs
dWU7IH0KKyAgICB2b2lkIHNldFZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRz
VlA5VlRCID0gdmFsdWU7IH0KICAgICBib29sIGlzU3VwcG9ydGluZ0gyNjUoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHBvcnRzSDI2NTsgfQogICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5KCkgY29uc3Qg
eyByZXR1cm4gbV9zdXBwb3J0c1ZQOTsgfQorICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5VlRCKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOVZUQjsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgaXMgZXhlY3V0ZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZC4KQEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1
cHBvcnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzVlA5IHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc3VwcG9ydHNWUDlWVEIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVM
b2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggOTIw
MWQwZTMyYzM0OGIyZDNlM2IwMDk3YjQ3OTBkNDdjZDI5MjhmNC4uY2IxMWY4MWZkM2YxMWVhZjgx
ODkxOTZiMTQ4N2FlZDA3YzZlNTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlckNvY29hLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNv
ZAogICAgIGlmICghd2ViUlRDQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0
aW5nSDI2NSgpID8gd2VicnRjOjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6
T2ZmLCBpc1N1cHBvcnRpbmdWUDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6
V2ViS2l0VlA5OjpPZmYpOworICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJG
YWN0b3J5KGlzU3VwcG9ydGluZ0gyNjUoKSA/IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T24gOiB3ZWJy
dGM6OldlYktpdEgyNjU6Ok9mZiwgaXNTdXBwb3J0aW5nVlA5KCkgPyB3ZWJydGM6OldlYktpdFZQ
OTo6T24gOiB3ZWJydGM6OldlYktpdFZQOTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDlWVEIoKSA/IHdl
YnJ0Yzo6V2ViS2l0VlA5VlRCOjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPZmYpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQ
cm92aWRlckNvY29hOjpjcmVhdGVFbmNvZGVyRmFjdG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggYTA5MzA1ZjI4NGNlY2E2NWQ2ODQ2MTg5ZTk3ZGRhYjc3NTUxMDZk
Ni4uNDBlNzRhMzc2Yzg3NmQxYjgxZmVlNzk4ZjVlZTM2NGMzNDY0Zjc1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wgdmFsdWUpCiAjZW5kaWYKIH0KIAordm9pZCBJ
bnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkKK3sKKyNpZiBVU0Uo
TElCV0VCUlRDKQorICAgIGlmIChhdXRvKiBwYWdlID0gY29udGV4dERvY3VtZW50KCktPnBhZ2Uo
KSkgeworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLnNldFZQOVZUQlN1cHBvcnQo
dmFsdWUpOworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNsZWFyRmFjdG9yeSgp
OworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c2V0RW5hYmxlV2ViUlRDRW5j
cnlwdGlvbihib29sIHZhbHVlKQogewogI2lmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCBhMTZmOTUyZjE1NTAwMWJkNjM1MmFlNTA5N2FkNjg2NmY0ODdh
MjQ1Li45YTdjMDcyOTU0M2U5YTFiMTA0ZmMwYTM2N2FiZDkwN2Q4NWM3OGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU5NSw2ICs1OTUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoUlRDUGVlckNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2wpOwogICAgIHZvaWQgc2V0V2Vi
UlRDVlA5U3VwcG9ydChib29sKTsKKyAgICB2b2lkIHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9v
bCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQg
c2V0VXNlRFRMUzEwKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhM2Y0NTZlMDg5Zjdi
ZmExZmYxYTczYWUzNWQ0N2E0Y2I5YzE5NDExLi41MjkzNGRmNzlhMmE4ZTc0NmQ3MTBkY2Y3MjJi
OTc4ZmE1MzU5OGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03OTMs
NiArNzkzLDcgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICBbQ29uZGl0aW9uYWw9
V0VCX1JUQ10gdW5kZWZpbmVkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcyhS
VENQZWVyQ29ubmVjdGlvbiBjb25uZWN0aW9uKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10g
dW5kZWZpbmVkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAgICAgW0Nv
bmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2xlYW4g
YWxsb3dlZCk7CisgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENW
UDlWVEJTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNXSB1bmRlZmluZWQgc2V0TW9ja0F1ZGlvVHJhY2tDaGFubmVsTnVtYmVyKE1lZGlhU3Ry
ZWFtVHJhY2sgdHJhY2ssIHVuc2lnbmVkIHNob3J0IGNvdW50KTsKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0U2hvdWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNp
YmlsaXR5Q2hhbmdlKGJvb2xlYW4gc2hvdWxkSW50ZXJydXB0KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDYyZjM4YmRk
M2EzZGMxMDBiOTBmMTQ4MjBmN2M3Njg3NTlkOWJlLi5lYTM2NDExOWIzYzk3NGRjOGUxNjJiZmU1
OWQ2MDk3ZWQwMTVjNDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2Rl
ciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2VicnRjL3ZwOS12dGIuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMTQgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNh
aXJvXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvdnA5LXZ0Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0NzA2M2MxM2ZmNTA0NjJkMWM2MmZkZDhjYWFkOGEx
ZTRkZDYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworUEFTUyBWUDkgaW4gZ2V0Q2FwYWJpbGl0
aWVzCitQQVNTIFZlcmlmeSBWUDkgYWN0aXZhdGlvbgorUEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hh
bmdlCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkCitQQVNTIFRy
YWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sKK1BBU1MgVHJhY2sgaXMg
ZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
cnRjL3ZwOS12dGIuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDBhNDIwNjhmZjg4ZDJjODY0NWI5NjhjZTA0ZTNhZDcwM2QyYTRiZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLmh0bWwKQEAgLTAsMCArMSw5NCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VlA5IFZUQiBpbiBXZWJSVEM8L3RpdGxlPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9
InZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92
aWRlbz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIy
NDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMyIiB3aWR0aD0iMzIwIiBo
ZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMiIHdpZHRo
PSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0
aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CitsZXQgaGFzVlA5OwordGVzdCgo
KSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRXZWJSVENWUDlTdXBwb3J0KHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQodHJ1ZSk7CisgICAgfQorCisgICAgY29kZWNzID0gUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygidmlkZW8iKS5jb2RlY3M7CisgICAgaGFzVlA5ID0g
Y29kZWNzLnNvbWUoKGNvZGVjKSA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlwZSA9PSAidmlkZW8v
VlA5IjsgfSk7CisgICAgYXNzZXJ0X3RydWUoaGFzVlA5KTsKK30sICJWUDkgaW4gZ2V0Q2FwYWJp
bGl0aWVzIik7CisKK2lmIChoYXNWUDkpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3Qp
ID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAg
ICAgcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9u
ID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgcGMuY2xvc2UoKTsKKyAgICAgICAg
YXNzZXJ0X3RydWUoZGVzY3JpcHRpb24uc2RwLmluZGV4T2YoIlZQOSIpICE9PSAtMSwgIlZQOSBj
b2RlYyBpcyBpbiB0aGUgU0RQIik7CisgICAgfSwgIlZlcmlmeSBWUDkgYWN0aXZhdGlvbiIpCisK
KyAgICB2YXIgdHJhY2s7CisgICAgdmFyIHJlbW90ZVRyYWNrOworICAgIHZhciByZWNlaXZpbmdD
b25uZWN0aW9uOworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDMyMCwg
aGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigobG9jYWxTdHJl
YW0pID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpWzBdOworCisgICAgICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVj
dGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2so
dHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlv
bikgPT4geworICAgICAgICAgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uID0gc2Vjb25k
Q29ubmVjdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNr
ID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW90ZVRyYWNr
ID0gdHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJh
Y2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICB9LCB7IG9ic2VydmVPZmZlciA6IChvZmZlcikgPT4geworICAgICAgICAgICAgICAgICAg
ICBvZmZlci5zZHAgPSBzZXRDb2RlYyhvZmZlci5zZHAsICJWUDkiKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG9mZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBv
dXQiKSwgNTAwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbigocmVtb3RlU3Ry
ZWFtKSA9PiB7CisgICAgICAgICAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07Cisg
ICAgICAgICAgICByZXR1cm4gdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9LCAiU2V0
dGluZyB2aWRlbyBleGNoYW5nZSIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
ICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVk
IikKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJlY2Vpdmlu
Z0Nvbm5lY3Rpb24ub25jb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVj
dGVkIikKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAw
KTsKKyAgICAgICAgfSk7CisgICAgfSwgIkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29u
bmVjdGVkIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJu
IGNoZWNrVmlkZW9CbGFjayhmYWxzZSwgY2FudmFzMSwgdmlkZW8pOworICAgIH0sICJUcmFjayBp
cyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rl
c3QoKHRlc3QpID0+IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgICAgICBy
ZXR1cm4gY2hlY2tWaWRlb0JsYWNrKHRydWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJh
Y2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90
ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgICAgICBy
ZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRy
YWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQorICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411742</attachid>
            <date>2020-10-19 06:06:01 -0700</date>
            <delta_ts>2020-10-21 08:43:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217811-20201019150559.patch</filename>
            <type>text/plain</type>
            <size>62268</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5kODM2
MWZjZmM0ZTQyYWMxNTVmNDY4ZDgzMTk5NDM0NzNmZjExYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMC0xMC0xOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBSVENWaWRlb0RlY29kZXJWVEJWUDkgYXMgYSBWUDkgZGVjb2Rl
ciB1c2luZyB0aGUgVlRCIEFQSS4KKyAgICAgICAgRW5hYmxlIHRoaXMgY29kZSBwYXRoIGJ5IGRl
ZmF1bHQgaWYgVlA5IGlzIGVuYWJsZWQgYW5kIGhhcmR3YXJlIFZQOSBkZWNvZGluZyBpcyBzdXBw
b3J0ZWQuCisgICAgICAgIEFsbG93IHRvIG92ZXJyaWRlIHRoaXMgc2V0dGluZyBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4KKworICAgICAgICBBZGQgU1BJIGhlYWRlciBmaWxlcyBpbiBjYXNlIHRoZXkg
YXJlIG5vdCBhdmFpbGFibGUuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9TLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKyAgICAgICAgKiBT
b3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0U1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WVFZpZGVvRGVjb2RlclNQSS5oOiBBZGRlZC4K
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbToKKyAg
ICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAgICAgICAqIFNv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVjb2Rlci5jcHA6CisgICAgICAgICh3ZWJy
dGM6OmNyZWF0ZVdlYktpdFZQOURlY29kZXIpOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L29iamMvYXBpL3ZpZGVvX2NvZGVjL1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW06Cisg
ICAgICAgICgtW1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgaW1wbGVtZW50YXRpb25OYW1l
XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGlu
aXRXaXRoSDI2NTp2cDk6dnA5VlRCOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBjcmVhdGVEZWNvZGVyOl0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaDogQWRk
ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbTogQWRkZWQuCisgICAgICAgIChSVENGcmFtZURl
Y29kZVBhcmFtczo6UlRDRnJhbWVEZWNvZGVQYXJhbXMpOgorICAgICAgICAoVlA5QnVmZmVyVG9D
TVNhbXBsZUJ1ZmZlcik6CisgICAgICAgICh2cDlEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sp
OgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkgZGVhbGxvY10pOgorICAgICAgICAo
LVtSVENWaWRlb0RlY29kZXJWVEJWUDkgc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlY29kZTptaXNzaW5nRnJhbWVzOmNv
ZGVjU3BlY2lmaWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IGRlY29kZURhdGE6c2l6ZTp0aW1lU3RhbXA6XSk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVyVlRCVlA5IHNldEVycm9yOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJWVEJWUDkg
cmVsZWFzZURlY29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJlc2V0
RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5
IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlclZUQlZQOSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVyVlRCVlA5IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tOgor
ICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNv
ZGVyKToKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0xMC0xMyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGxlZnRvdmVyIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3ggc3VwcG9ydApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGRjOGRlNGFkYTZkMWNhYjEyZjFiMWViM2UyZjRlN2E0ZjkxNGY3MmYuLmVk
YmVkM2ZhNGM2MWIxMDBmNzMxMmU0NzIzMjhhYTIyMTYyMGNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgxMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0
aW5nIHN1cHBvcnQgdG8gZW5hYmxlIFZQOSBkZWNvZGluZyB0aHJvdWdoIFZUQiBmb3IgV2ViUlRD
LgorCisgICAgICAgIFRlc3Q6IHdlYnJ0Yy92cDktdnRiLmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29k
ZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTEwLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgTWVkaWFQbGF5ZXI6Om1fdmlzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmluZGV4
IGUzZTYxMWExMTg4NGM2MDBiNzJiYzc5ZThmZjQyYWY1NmMzNDM2NmIuLjYxZWE2NmRjYWIzYzE2
MDA0MWI5Y2I4ODRlNTc5YmU2MGRjMmQzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCBfX1pONndlYnJ0YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZh
Y3RvcnlFdgogX19aTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3Zl
Q2FuZGlkYXRlc0VSS05TdDNfXzE2dmVjdG9ySU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxv
Y2F0b3JJUzRfRUVFRQogX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZl
cl91cmxFdgogX19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRj
MjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQ
OUUKK19fWk42d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgy
NjVFTlNfOVdlYktpdFZQOUVOU18xMldlYktpdFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVX
ZWJLaXRFbmNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42
d2VicnRjMjlzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0
SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5l
eHAKaW5kZXggZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4uNjFlYTY2
ZGNhYjNjMTYwMDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMu
aU9Tc2ltLmV4cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGlu
QXVkaW9FbmNvZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50
ZXJmYWNlMTZSZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRp
ZGF0ZUVOUzFfOWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUlu
dGVyZmFjZTEwc2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNF
YgotX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5
RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9f
Wk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFj
LmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMubWFjLmV4cAppbmRleCBiOWQ2MjU5NzA4ZTkwODg5ZGUxZmI2M2FkYTBmNGUwYjczYzVhN2Qx
Li40ZWVkZDZlZTk5NmNiNmI4YTYxOTAzNjE3MDU2ZDc0ZmJlM2EyZDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5l
eHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5tYWMuZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMzMkNyZWF0ZUJ1aWx0
aW5BdWRpb0VuY29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25J
bnRlcmZhY2UxNlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklON2NyaWNrZXQ5Q2Fu
ZGlkYXRlRU5TMV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIxSWNlQ2FuZGlkYXRl
SW50ZXJmYWNlMTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBsaWNhdGlvblN0YXR1
c0ViCi1fX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRI
MjY1RU5TXzlXZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3Rv
cnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRWUDlWVEJFCiBfX1pO
NndlYnJ0YzI2Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlX
ZWJLaXRWUDlFCiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgog
X19aTjZ3ZWJydGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRFYgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9D
TUJhc2VPYmplY3RTUEkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU3ZGI4MTNkN2Uz
YTkxNzgzNmZhODAyOGFiMTFiZjUyNTM3OWY1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvQ01CYXNlT2JqZWN0
U1BJLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9D
RlByaXYuaD4pCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNQmFzZU9iamVjdC5oPgorI2Vsc2UKKwor
I2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBr
Q01CYXNlT2JqZWN0X0NsYXNzVmVyc2lvbl8xID0gMSwKKyAgICBrQ01CYXNlT2JqZWN0X0NsYXNz
VmVyc2lvbl8yID0gMiwKKyAgICBrQ01CYXNlT2JqZWN0X0NsYXNzVmVyc2lvbl8zID0gMworfTsK
KworZW51bSB7CisgICAga0NNQmFzZU9iamVjdF9Qcm90b2NvbFZlcnNpb25fMSA9IDEKK307CisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQmFzZU9iamVjdCAqQ01CYXNlT2JqZWN0UmVmOwordHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlQ01CYXNlQ2xhc3MgKkNNQmFzZUNsYXNzSUQ7Cit0eXBlZGVmIHN0
cnVjdCBPcGFxdWVDTUJhc2VQcm90b2NvbCAqQ01CYXNlUHJvdG9jb2xJRDsKKwordHlwZWRlZiBP
U1N0YXR1cyAoKkNNQmFzZU9iamVjdENvcHlQcm9wZXJ0eUZ1bmN0aW9uKShDTUJhc2VPYmplY3RS
ZWYsIENGU3RyaW5nUmVmIHByb3BlcnR5S2V5LCBDRkFsbG9jYXRvclJlZiwgdm9pZCAqcHJvcGVy
dHlWYWx1ZU91dCk7Cit0eXBlZGVmIE9TU3RhdHVzICgqQ01CYXNlT2JqZWN0U2V0UHJvcGVydHlG
dW5jdGlvbikoQ01CYXNlT2JqZWN0UmVmIG9iamVjdCwgQ0ZTdHJpbmdSZWYgcHJvcGVydHlLZXks
IENGVHlwZVJlZiAgcHJvcGVydHlWYWx1ZSk7CisKKyNwcmFnbWEgcGFjayhwdXNoKQorI3ByYWdt
YSBwYWNrKCkKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBDTUJhc2VDbGFzc1ZlcnNpb24gdmVyc2lv
bjsKKyAgICBDRlN0cmluZ1JlZiAoKmNvcHlQcm90b2NvbERlYnVnRGVzY3JpcHRpb24pKENNQmFz
ZU9iamVjdFJlZik7Cit9IENNQmFzZVByb3RvY29sOworI3ByYWdtYSBwYWNrKHBvcCkKKworI3By
YWdtYSBwYWNrKHB1c2gpCisjcHJhZ21hIHBhY2soKQorc3RydWN0IENNQmFzZVByb3RvY29sVlRh
YmxlIHsKKyAgICBjb25zdCBzdHJ1Y3QgT3BhcXVlQ01CYXNlUHJvdG9jb2xWVGFibGVSZXNlcnZl
ZCAqcmVzZXJ2ZWQ7CisgICAgY29uc3QgQ01CYXNlUHJvdG9jb2wgKmJhc2VQcm90b2NvbDsKK307
CisjcHJhZ21hIHBhY2socG9wKQorCit0eXBlZGVmIHN0cnVjdCBDTUJhc2VQcm90b2NvbFRhYmxl
RW50cnkgeworICAgIENNQmFzZVByb3RvY29sSUQgKCpnZXRQcm90b2NvbElEKSh2b2lkKTsKKyAg
ICBDTUJhc2VQcm90b2NvbFZUYWJsZSAqcHJvdG9jb2xWVGFibGU7Cit9IENNQmFzZVByb3RvY29s
VGFibGVFbnRyeTsKKworc3RydWN0IENNQmFzZVByb3RvY29sVGFibGUgeworICAgIHVpbnQzMl90
IHZlcnNpb247CisgICAgdWludDMyX3QgbnVtU3VwcG9ydGVkUHJvdG9jb2xzOworICAgIENNQmFz
ZVByb3RvY29sVGFibGVFbnRyeSAqIHN1cHBvcnRlZFByb3RvY29sczsKK307CisKKyNwcmFnbWEg
cGFjayhwdXNoLCA0KQordHlwZWRlZiBzdHJ1Y3QgeworICAgQ01CYXNlQ2xhc3NWZXJzaW9uIHZl
cnNpb247CisgICBzaXplX3QgZGVyaXZlZFN0b3JhZ2VTaXplOworCisgICBCb29sZWFuICgqZXF1
YWwpKENNQmFzZU9iamVjdFJlZiwgQ01CYXNlT2JqZWN0UmVmKTsKKyAgIE9TU3RhdHVzICgqaW52
YWxpZGF0ZSkoQ01CYXNlT2JqZWN0UmVmKTsKKyAgIHZvaWQgKCpmaW5hbGl6ZSkoQ01CYXNlT2Jq
ZWN0UmVmKTsKKyAgIENGU3RyaW5nUmVmICgqY29weURlYnVnRGVzY3JpcHRpb24pKENNQmFzZU9i
amVjdFJlZik7CisKKyAgIENNQmFzZU9iamVjdENvcHlQcm9wZXJ0eUZ1bmN0aW9uIGNvcHlQcm9w
ZXJ0eTsKKyAgIENNQmFzZU9iamVjdFNldFByb3BlcnR5RnVuY3Rpb24gc2V0UHJvcGVydHk7Cisg
ICBPU1N0YXR1cyAoKm5vdGlmaWNhdGlvbkJhcnJpZXIpKENNQmFzZU9iamVjdFJlZik7CisgICBj
b25zdCBDTUJhc2VQcm90b2NvbFRhYmxlICpwcm90b2NvbFRhYmxlOworfSBDTUJhc2VDbGFzczsK
KyNwcmFnbWEgcGFjayhwb3ApCisKKyNwcmFnbWEgcGFjayhwdXNoKQorI3ByYWdtYSBwYWNrKCkK
K3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBzdHJ1Y3QgT3BhcXVlQ01CYXNlVlRhYmxlUmVz
ZXJ2ZWQgKnJlc2VydmVkOworICAgIGNvbnN0IENNQmFzZUNsYXNzICpiYXNlQ2xhc3M7Cit9IENN
QmFzZVZUYWJsZTsKKyNwcmFnbWEgcGFjayhwb3ApCisKK0NNX0VYUE9SVCBPU1N0YXR1cyBDTURl
cml2ZWRPYmplY3RDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYsIGNvbnN0IENNQmFzZVZUYWJsZSosIENN
QmFzZUNsYXNzSUQsIENNQmFzZU9iamVjdFJlZiopOworQ01fRVhQT1JUIHZvaWQgKkNNQmFzZU9i
amVjdEdldERlcml2ZWRTdG9yYWdlKENNQmFzZU9iamVjdFJlZik7CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworfSAvLyBleHRlcm4gIkMiCisjZW5kaWYKKworI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUg
JiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WVFZp
ZGVvRGVjb2RlclNQSS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9WVFZpZGVvRGVjb2RlclNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODg5MDVlZTQ3
MWRkZGE0ZDRkOTUwNTUwZDc3ODJlNDg3YTEwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1ZUVmlkZW9EZWNv
ZGVyU1BJLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9u
L0NGUHJpdi5oPikKKyNpbmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXIuaD4KKyNp
bmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXJSZWdpc3RyYXRpb24uaD4KKyNlbHNl
CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI3ByYWdtYSBw
YWNrKHB1c2gsIDQpCisKK3R5cGVkZWYgRm91ckNoYXJDb2RlIEZpZ1ZpZGVvQ29kZWNUeXBlOwor
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRWaWRlb0RlY29kZXIqIFZUVmlkZW9EZWNvZGVyUmVmOwor
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlVlRWaWRlb0RlY29kZXJTZXNzaW9uKiBWVFZpZGVvRGVjb2Rl
clNlc3Npb247Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFZpZGVvRGVjb2RlckZyYW1lKiBWVFZp
ZGVvRGVjb2RlckZyYW1lOworCit0eXBlZGVmIE9TU3RhdHVzICgqVlRWaWRlb0RlY29kZXJGdW5j
dGlvbl9DcmVhdGVJbnN0YW5jZSkoRm91ckNoYXJDb2RlIGNvZGVjVHlwZSwgQ0ZBbGxvY2F0b3JS
ZWYgYWxsb2NhdG9yLCBWVFZpZGVvRGVjb2RlclJlZiAqaW5zdGFuY2VPdXQpOwordHlwZWRlZiBP
U1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fU3RhcnRTZXNzaW9uKShWVFZpZGVvRGVj
b2RlclJlZiwgVlRWaWRlb0RlY29kZXJTZXNzaW9uLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYpOwordHlwZWRlZiBPU1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fRGVjb2RlRnJh
bWUpKFZUVmlkZW9EZWNvZGVyUmVmLCBWVFZpZGVvRGVjb2RlckZyYW1lLCBDTVNhbXBsZUJ1ZmZl
clJlZiwgVlREZWNvZGVGcmFtZUZsYWdzLCBWVERlY29kZUluZm9GbGFncyopOwordHlwZWRlZiBP
U1N0YXR1cyAoKlZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEKSgpOworCitlbnVtIHsKKyAgICBr
VlRWaWRlb0RlY29kZXJfQ2xhc3NWZXJzaW9uXzEgPSAxLAorICAgIGtWVFZpZGVvRGVjb2Rlcl9D
bGFzc1ZlcnNpb25fMiA9IDIsCisgICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8zID0g
MywKK307CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBDTUJhc2VDbGFzc1ZlcnNpb24gdmVyc2lv
bjsKKworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fU3RhcnRTZXNzaW9uIHN0YXJ0U2Vzc2lv
bjsKKyAgICBWVFZpZGVvRGVjb2RlckZ1bmN0aW9uX0RlY29kZUZyYW1lIGRlY29kZUZyYW1lOwor
ICAgIAorICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNvcHlTdXBwb3J0ZWRQcm9wZXJ0
eURpY3Rpb25hcnk7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgc2V0UHJvcGVydGll
czsKKworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNvcHlTZXJpYWxpemFibGVQcm9w
ZXJ0aWVzOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGNhbkFjY2VwdEZvcm1hdERl
c2NyaXB0aW9uOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIGZpbmlzaERlbGF5ZWRG
cmFtZXM7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgcmVzZXJ2ZWQ3OworICAgIFZU
VmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIHJlc2VydmVkODsKKyAgICBWVFZpZGVvRGVjb2RlckZ1
bmN0aW9uX1RCRCByZXNlcnZlZDk7Cit9IFZUVmlkZW9EZWNvZGVyQ2xhc3M7CisKK3R5cGVkZWYg
c3RydWN0IHsKKyAgICBDTUJhc2VWVGFibGUgYmFzZTsKKyAgICBjb25zdCBWVFZpZGVvRGVjb2Rl
ckNsYXNzICp2aWRlb0RlY29kZXJDbGFzczsKK30gVlRWaWRlb0RlY29kZXJWVGFibGU7CisKK1ZU
X0VYUE9SVCBDTUJhc2VDbGFzc0lEIFZUVmlkZW9EZWNvZGVyR2V0Q2xhc3NJRCh2b2lkKTsKK1ZU
X0VYUE9SVCBDVlBpeGVsQnVmZmVyUG9vbFJlZiBWVERlY29kZXJTZXNzaW9uR2V0UGl4ZWxCdWZm
ZXJQb29sKFZUVmlkZW9EZWNvZGVyU2Vzc2lvbiBzZXNzaW9uICk7CitWVF9FWFBPUlQgT1NTdGF0
dXMgVlREZWNvZGVyU2Vzc2lvblNldFBpeGVsQnVmZmVyQXR0cmlidXRlcyhWVFZpZGVvRGVjb2Rl
clNlc3Npb24gc2Vzc2lvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGRlY29tcHJlc3NvclBpeGVsQnVmZmVy
QXR0cmlidXRlcyk7CitWVF9FWFBPUlQgT1NTdGF0dXMgVlREZWNvZGVyU2Vzc2lvbkVtaXREZWNv
ZGVkRnJhbWUoVlRWaWRlb0RlY29kZXJTZXNzaW9uIHNlc3Npb24sIFZUVmlkZW9EZWNvZGVyRnJh
bWUgZnJhbWUsIE9TU3RhdHVzIHN0YXR1cywgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLCBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyKTsKK1ZUX0VYUE9SVCBPU1N0YXR1cyBWVFJlZ2lz
dGVyVmlkZW9EZWNvZGVyKEZpZ1ZpZGVvQ29kZWNUeXBlLCBWVFZpZGVvRGVjb2RlckZ1bmN0aW9u
X0NyZWF0ZUluc3RhbmNlKTsKKworI3ByYWdtYSBwYWNrKHBvcCkKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9IC8vIGV4dGVybiAiQyIKKyNlbmRpZgorCisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSAm
JiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dERlY29kZXIubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KaW5kZXggZDA1ZDA2MjI0OWM2YWFlNTFjOWE2MDE1
OGYzMTJlYzM3MmRhZjM1Yy4uMjg3ZTE5NmYwMWI4ZDUwYWQzMDBjYTY1NjRhOGQ0Y2QwYTExMjVm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQpAQCAtMTY3LDkg
KzE2Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IFJlbW90ZVZpZGVvRGVjb2Rl
ckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcihjb25zCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZhY3Rv
cnkoV2ViS2l0SDI2NSBzdXBwb3J0c0gyNjUsIFdlYktpdFZQOSBzdXBwb3J0c1ZQOSkKK3N0ZDo6
dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29k
ZXJGYWN0b3J5KFdlYktpdEgyNjUgc3VwcG9ydHNIMjY1LCBXZWJLaXRWUDkgc3VwcG9ydHNWUDks
IFdlYktpdFZQOVZUQiBzdXBwb3J0c1ZQOVZUQikKIHsKLSAgICBhdXRvIGludGVybmFsRmFjdG9y
eSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoW1tSVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdpdGhIMjY1OiBzdXBwb3J0c0gyNjUgPT0gV2ViS2l0SDI2
NTo6T24gdnA5OiBzdXBwb3J0c1ZQOSA9PSBXZWJLaXRWUDk6Ok9uXSk7CisgICAgYXV0byBpbnRl
cm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogc3VwcG9ydHNIMjY1ID09
IFdlYktpdEgyNjU6Ok9uIHZwOTogc3VwcG9ydHNWUDkgPT0gV2ViS2l0VlA5OjpPbiB2cDlWVEI6
IHN1cHBvcnRzVlA5VlRCID09IFdlYktpdFZQOVZUQjo6T25dKTsKICAgICBpZiAodmlkZW9EZWNv
ZGVyQ2FsbGJhY2tzKCkuY3JlYXRlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk+KHN0ZDo6bW92ZShpbnRlcm5hbEZhY3Rv
cnkpKTsKICAgICByZXR1cm4gaW50ZXJuYWxGYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNTA5Y2RmNTQ1M2UzMjI0MGUxYjE4NDJmYmFlNDUx
YTY0ZTY3ZmQzNC4uMDdkNWNlMzc0YmY2MjgwYmJjN2EyY2U0ZTBlMDAyOTFiMmJiYmU5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC00Miw5ICs0Miwx
MCBAQCBjbGFzcyBWaWRlb0ZyYW1lOwogCiBlbnVtIGNsYXNzIFdlYktpdEgyNjUgeyBPZmYsIE9u
IH07CiBlbnVtIGNsYXNzIFdlYktpdFZQOSB7IE9mZiwgT24gfTsKK2VudW0gY2xhc3MgV2ViS2l0
VlA5VlRCIHsgT2ZmLCBPbiB9OwogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29k
ZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9yeShXZWJLaXRIMjY1LCBXZWJLaXRW
UDkpOwotc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRl
V2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5KTsKK3N0ZDo6dW5pcXVl
X3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0
b3J5KFdlYktpdEgyNjUsIFdlYktpdFZQOSwgV2ViS2l0VlA5VlRCKTsKIAogdm9pZCBzZXRBcHBs
aWNhdGlvblN0YXR1cyhib29sIGlzQWN0aXZlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVy
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VlA5RGVjb2Rlci5jcHAKaW5kZXggMTE0ODU4MDY3YzRhMWJmNWU2MDBmYWU2OTVh
MzdmMGQ5Njc3ZGFjYS4uNzI0ZGU1N2JmOGY0NzZlZDU2YjZiMmFkODBjYjIxMWFmOGNiNzY4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCkBAIC0y
NSwxNiArMjUsMTUgQEAKIAogI2luY2x1ZGUgIldlYktpdFZQOURlY29kZXIuaCIKIAotI2lmIGRl
ZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlBy
aXYuaD4pCi0KICNpbmNsdWRlICJXZWJLaXRVdGlsaXRpZXMuaCIKLSNpbmNsdWRlIDxDb3JlTWVk
aWEvQ01CYXNlT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZUVmlkZW9EZWNvZGVy
Lmg+Ci0jaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZUVmlkZW9EZWNvZGVyUmVnaXN0cmF0aW9uLmg+
CisjaW5jbHVkZSA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvdnA5X2ltcGwuaCIKICNpbmNsdWRlICJydGNfYmFz
ZS9sb2dnaW5nLmgiCiAjaW5jbHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY3B1X2luZm8u
aCIKIAorI2luY2x1ZGUgIkNNQmFzZU9iamVjdFNQSS5oIgorI2luY2x1ZGUgIlZUVmlkZW9EZWNv
ZGVyU1BJLmgiCisKIG5hbWVzcGFjZSB3ZWJydGMgewogCiBzdGF0aWMgT1NTdGF0dXMgY3JlYXRl
V2ViS2l0VlA5RGVjb2RlcihGaWdWaWRlb0NvZGVjVHlwZSwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2Nh
dG9yLCBWVFZpZGVvRGVjb2RlclJlZiopOwpAQCAtNzksMjEgKzc4LDIzIEBAIHN0YXRpYyBDRlN0
cmluZ1JlZiBjb3B5VlA5RGVjb2RlckRlYnVnRGVzY3JpcHRpb24oQ01CYXNlT2JqZWN0UmVmKTsK
IHN0YXRpYyBjb25zdCBDTUJhc2VDbGFzcyBXZWJLaXRWUDlEZWNvZGVyX0Jhc2VDbGFzcyA9CiB7
CiAgICAga0NNQmFzZU9iamVjdF9DbGFzc1ZlcnNpb25fMSwKLSAgICBzaXplb2YoV2ViS2l0VlA5
RGVjb2RlciksCisgICAgNjQsIC8vc2l6ZW9mKFdlYktpdFZQOURlY29kZXIpLAogICAgIG51bGxw
dHIsIC8vIENvbXBhcmlzb24gYnkgcG9pbnRlciBlcXVhbGl0eQogICAgIGludmFsaWRhdGVWUDlE
ZWNvZGVyLAogICAgIGZpbmFsaXplVlA5RGVjb2RlciwKICAgICBjb3B5VlA5RGVjb2RlckRlYnVn
RGVzY3JpcHRpb24sCiAgICAgbnVsbHB0ciwgLy8gQ29weVByb3BlcnR5Ci0gICAgbnVsbHB0ciAv
LyBTZXRQcm9wZXJ0eQorICAgIG51bGxwdHIsIC8vIFNldFByb3BlcnR5CisgICAgbnVsbHB0ciwK
KyAgICBudWxscHRyCiB9OwogCiBzdGF0aWMgT1NTdGF0dXMgc3RhcnRWUDlEZWNvZGVyU2Vzc2lv
bihWVFZpZGVvRGVjb2RlclJlZiwgVlRWaWRlb0RlY29kZXJTZXNzaW9uLCBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYpOwogc3RhdGljIE9TU3RhdHVzIGRlY29kZVZQOURlY29kZXJGcmFtZShW
VFZpZGVvRGVjb2RlclJlZiwgVlRWaWRlb0RlY29kZXJGcmFtZSwgQ01TYW1wbGVCdWZmZXJSZWYs
IFZURGVjb2RlRnJhbWVGbGFncywgVlREZWNvZGVJbmZvRmxhZ3MqKTsKIAotc3RhdGljIGNvbnN0
IFZUVmlkZW9EZWNvZGVyQ2xhc3MgV2ViS2l0VlA5RGVjb2Rlcl9WaWRlb0VuY29kZXJDbGFzcyA9
CitzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJDbGFzcyBXZWJLaXRWUDlEZWNvZGVyX1ZpZGVv
RGVjb2RlckNsYXNzID0KIHsKLSAgICBrVlRWaWRlb0RlY29kZXJfQ2xhc3NWZXJzaW9uXzMsCisg
ICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8xLAogICAgIHN0YXJ0VlA5RGVjb2RlclNl
c3Npb24sCiAgICAgZGVjb2RlVlA5RGVjb2RlckZyYW1lLAogICAgIG51bGxwdHIsIC8vIFZUVmlk
ZW9EZWNvZGVyRnVuY3Rpb25fQ29weVN1cHBvcnRlZFByb3BlcnR5RGljdGlvbmFyeSwKQEAgLTEw
OSw3ICsxMTAsNyBAQCBzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJDbGFzcyBXZWJLaXRWUDlE
ZWNvZGVyX1ZpZGVvRW5jb2RlckNsYXNzID0KIHN0YXRpYyBjb25zdCBWVFZpZGVvRGVjb2RlclZU
YWJsZSBXZWJLaXRWUDlEZWNvZGVyVlRhYmxlID0KIHsKICAgICB7IG51bGxwdHIsICZXZWJLaXRW
UDlEZWNvZGVyX0Jhc2VDbGFzcyB9LAotICAgICZXZWJLaXRWUDlEZWNvZGVyX1ZpZGVvRW5jb2Rl
ckNsYXNzCisgICAgJldlYktpdFZQOURlY29kZXJfVmlkZW9EZWNvZGVyQ2xhc3MKIH07CiAKIE9T
U3RhdHVzIGNyZWF0ZVdlYktpdFZQOURlY29kZXIoRmlnVmlkZW9Db2RlY1R5cGUsIENGQWxsb2Nh
dG9yUmVmIGFsbG9jYXRvciwgVlRWaWRlb0RlY29kZXJSZWYqIGRlY29kZXJPdXQpCkBAIC0zODcs
MTQgKzM4OCwzIEBAIHZvaWQgV2ViS2l0VlA5RGVjb2RlclJlY2VpdmVyOjpEZWNvZGVkKFZpZGVv
RnJhbWUmIGZyYW1lLCBhYnNsOjpvcHRpb25hbDxpbnQzMl90CiB9CiAKIH0KLQotI2Vsc2UgLy8g
ZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NG
UHJpdi5oPikKLQotbmFtZXNwYWNlIHdlYnJ0YyB7Ci0KLXZvaWQgcmVnaXN0ZXJXZWJLaXRWUDlE
ZWNvZGVyKCkKLXsKLX0KLQotfQotI2VuZGlmIC8vIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBf
X2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9f
Y29kZWMvUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCmluZGV4IGRjZTQ3OWM4OTA5MTEzZjkxYWJhNjc3YWUy
ZjczMGYyMmE2ZTc0YjAuLjJiNGFjYjkxYjQ1YzYxMmE5MDUwOWZmODhhN2UxYTljYTFmODE1NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Fw
aS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tCkBAIC01NCw3ICs1
NCw5IEBACiB9CiAKIC0gKE5TU3RyaW5nICopaW1wbGVtZW50YXRpb25OYW1lIHsKKyNpZiAhZGVm
aW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQogICBSVENfTk9UUkVBQ0hFRCgpOworI2VuZGlmCiAg
IHJldHVybiBuaWw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaAppbmRleCBlMjgyMGIyMzAwOWU5ZGNlZGQxNDQ3OWYxYTVmMDkwYTU2
MWQ0MmIyLi4yNGExZDYzY2Y3MzU2YzNhNzFkYzkyZWU1NmU3MDhhMzUxZTA0M2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0y
MSw3ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19FWFBPUlQKIF9f
YXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgOiBO
U09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KLS0gKGlkKWluaXRXaXRoSDI2NTooYm9v
bClzdXBwb3J0SDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDk7CistIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydEgyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5IHZwOVZUQjooYm9vbClzdXBw
b3J0c1ZQOVZUQjsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggZTVmNGEyMDQ3
YWQ1OTY2YzAzZGIxNjU3MGQxMjM5ZTY1N2YzYjhhNy4uZTA0MjJjZjUwMDY0N2VmY2Q4NzIyODU2
MTBjZDAyM2E2ZjRhZjAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0
VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZp
ZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTcsMjMgKzE3LDMwIEBACiAjaW1wb3J0ICJiYXNlL1JU
Q1ZpZGVvQ29kZWNJbmZvLmgiCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICNpbXBvcnQg
ImFwaS92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWUDkuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVv
RGVjb2RlclZUQlZQOS5oIgogI2VuZGlmCiAjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkK
ICNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgogI2ltcG9ydCAiUlRDVmlkZW9EZWNv
ZGVySDI2NS5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3gu
aD4KKwogQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IHsKICAg
Ym9vbCBfc3VwcG9ydHNIMjY1OwogICBib29sIF9zdXBwb3J0c1ZQOTsKKyAgYm9vbCBfc3VwcG9y
dHNWUDlWVEI7CiB9CiAKLS0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0c0gyNjUgdnA5
Oihib29sKXN1cHBvcnRzVlA5CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1
IHZwOTooYm9vbClzdXBwb3J0c1ZQOSB2cDlWVEI6KGJvb2wpc3VwcG9ydHNWUDlWVEIKIHsKICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKICAgaWYgKHNlbGYpIHsKICAgICAgIF9zdXBwb3J0c0gyNjUg
PSBzdXBwb3J0c0gyNjU7CiAgICAgICBfc3VwcG9ydHNWUDkgPSBzdXBwb3J0c1ZQOTsKKyAgICAg
IC8vIFVzZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkgb25jZSBhZGRlZCB0byBDTUZvcm1hdERlc2Ny
aXB0aW9uLmgKKyAgICAgIF9zdXBwb3J0c1ZQOVZUQiA9IHN1cHBvcnRzVlA5ICYmIChzdXBwb3J0
c1ZQOVZUQiB8fCBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoJ3ZwMDknKSk7Cis7CiAgIH0K
ICAgcmV0dXJuIHNlbGY7CiB9CkBAIC05MSw3ICs5OCwxMSBAQCAtIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOQogI2VuZGlmCiAjaWYgZGVm
aW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0
cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7Ci0gICAgcmV0dXJuIFtSVENWaWRlb0RlY29k
ZXJWUDkgdnA5RGVjb2Rlcl07CisgICAgICBpZiAoX3N1cHBvcnRzVlA5VlRCKSB7CisgICAgICAg
IHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBhbGxvY10gaW5pdF07CisgICAgICB9IGVs
c2UgeworICAgICAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyAg
ICAgIH0KICNlbmRpZgogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg2MTAzMmM2ZDIxMmM0MjQ4YmI1MzI5OTBjNDA0MzZkMzdjZTQ0ODUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0Rl
Y29kZXIuaCIKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVf
bmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVyVlRCVlA5IikpKQorQGludGVyZmFjZSBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorLSAoTlNJbnRlZ2VyKWRl
Y29kZURhdGE6KGNvbnN0IHVpbnQ4X3QgKilkYXRhCisgICAgc2l6ZTooc2l6ZV90KXNpemUKKyAg
ICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJWVEJWUDkubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkzMmJkODJlZjE1ZWYyOTEwMGYz
YzBiYmJmYmVhNjkxYzI3OWM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tCkBAIC0wLDAgKzEsMzE5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICov
CisKKy8qCisgKiBWUDkgZGVjb2RpbmcgdGhyb3VnaCBWVEIsIGhpZ2hseSBiYXNlZCBvbiBSVENW
aWRlb0RlY29kZXJIMjY0Lm1tCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyVlRCVlA5
LmgiCisKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorCisjaW1wb3J0IDxWaWRlb1Rvb2xi
b3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2lt
cG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3Zp
ZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgi
CisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKworI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVk
ZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRo
ZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGlu
IHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zIHsKKyAg
UlRDRnJhbWVEZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgY2IsIGludDY0X3Qg
dHMpIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVjb2RlckNh
bGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKK0BpbnRlcmZhY2Ug
UlRDVmlkZW9EZWNvZGVyVlRCVlA5ICgpCistICh2b2lkKXNldEVycm9yOihPU1N0YXR1cyllcnJv
cjsKK0BlbmQKKworQ01TYW1wbGVCdWZmZXJSZWYgVlA5QnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihj
b25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0KSB7CisgIENNQmxvY2tCdWZmZXJSZWYgbmV3
X2Jsb2NrX2J1ZmZlcjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGJ1ZmZlcl9zaXplLCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBidWZmZXJfc2l6ZSwga0NNQmxvY2tCdWZmZXJBc3N1
cmVNZW1vcnlOb3dGbGFnLCAmbmV3X2Jsb2NrX2J1ZmZlcikpIHsKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyAgfQorICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVkQ0YobmV3X2Jsb2NrX2J1
ZmZlcik7CisKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRl
cyhidWZmZXIsIGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3NpemUpKSB7CisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVfYnVmZmVyID0g
bnVsbHB0cjsKKyAgaWYgKGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBibG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51bGxwdHIsIG51bGxwdHIs
IHZpZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgJnNhbXBsZV9idWZmZXIp
KSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHNhbXBsZV9idWZmZXI7Cit9
CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNh
bGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgdnA5RGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP
U1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVERlY29k
ZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
VkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJh
bXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVEZWNvZGVQ
YXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChfX2JyaWRnZSBSVENWaWRlb0RlY29kZXJWVEJW
UDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVyIHNldEVycm9yOnN0YXR1c107CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIFN0YXR1czogIiA8PCBz
dGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJUQ0NWUGl4ZWxCdWZmZXIgKmZyYW1lQnVmZmVy
ID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVsQnVmZmVyOmltYWdlQnVm
ZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2RlZEZyYW1lID0KKyAgICAgIFtbUlRDVmlkZW9G
cmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRDVmlkZW9Sb3RhdGlvbl8wCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdldFNlY29uZHModGltZXN0
YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFt
cCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRl
Y29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIF92aWRlb0Zvcm1h
dDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVzc2lvblNlc3Npb247Cisg
IFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NTdGF0dXMgX2Vycm9yOwor
ICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBfaGVpZ2h0OworfQorCistICh2b2lkKWRlYWxs
b2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRW
aWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RGVjb2RlV2l0aE51
bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5jb2RlZEltYWdlICopaW5w
dXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICBj
b2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVjaWZpY0luZm8+KWluZm8K
KyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgeworICBSVENfRENI
RUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYgKGlucHV0SW1hZ2UuZnJhbWVUeXBlID09IFJU
Q0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgIF93aWR0aCA9IGlucHV0SW1hZ2UuZW5j
b2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlucHV0SW1hZ2UuZW5jb2RlZEhlaWdodDsKKyAg
fQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTogKHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZl
ci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dElt
YWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50
OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXplX3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6
KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYgKF9lcnJvciAhPSBub0VycikgeworICAgIFJU
Q19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOworICAgIF9l
cnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0K
KworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxs
cHRyOworICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2UgYWRkZWQgdG8gQ01Gb3Jt
YXREZXNjcmlwdGlvbi5oCisgIGlmIChub0VyciAhPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3ZwMDknLCBfd2lkdGgsIF9oZWlnaHQsIG51bGxw
dHIsICZmb3JtYXREZXNjcmlwdGlvbikpCisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGlucHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRDRihmb3JtYXREZXNjcmlwdGlvbik7CisgIGlm
IChpbnB1dEZvcm1hdCkgeworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNo
YW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBp
ZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9y
bWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOwor
ICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25F
cnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlk
ZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZl
IGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAv
LyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZv
ciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVx
dWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19M
T0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9w
cHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9
CisgIGF1dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpTY29wZWRDRihWUDlCdWZmZXJUb0NNU2FtcGxl
QnVmZmVyKGRhdGEsIHNpemUsIF92aWRlb0Zvcm1hdCkpOworICBpZiAoIXNhbXBsZUJ1ZmZlcikg
eworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKworICBWVERlY29k
ZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25v
dXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+
IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJh
bWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVz
ID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Np
b25TZXNzaW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCksIGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBh
cmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8g
UmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3
aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBvciBkZWNvZGVyIG1hbGZ1bmN0aW9ucyBhbmQg
cmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vz
c2lvbkVyciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9EZWNvZGVyTWFsZnVuY3Rpb25FcnIpICYmCisg
ICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBXRUJSVENfVklERU9fQ09E
RUNfT0spIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1l
IHdpdGggY29kZTogIiA8PCBzdGF0dXMKKyAgICAgICAgICAgICAgICAgICAgIDw8ICIgcmV0cnlp
bmcgZGVjb2RlIGFmdGVyIGRlY29tcHJlc3Npb24gc2Vzc2lvbiByZXNldCI7CisgICAgZnJhbWVE
ZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgdGlt
ZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1l
KAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlci5nZXQoKSwgZGVj
b2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CisgIH0KKyNl
bmRpZgorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg
IkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxi
YWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0gKHZvaWQpc2V0
RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vycm9yID0gZXJyb3I7Cit9CisKKy0gKE5TSW50
ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgc2Vzc2lv
biBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIgYW5kIGl0CisgIC8vIGlzIHNhZmUg
dG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNl
c3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKKyAgX2NhbGxiYWNrID0g
bnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworI3ByYWdtYSBt
YXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtz
ZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gTmVlZCB0byB3YWl0IGZv
ciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KKyAgaWYgKCFfdmlkZW9Gb3Jt
YXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworICB9CisKKyAgLy8gU2V0
IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBhdGliaWx0eSwgd2hpY2ggbWFrZXMg
dGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZlcnMgd2l0aCBHUFUgYmFja2VkIG1l
bW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAgLy8gdGhlIHBpeGVsIGJ1ZmZlcnMg
ZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9hZCBsYXRlciBkdXJpbmcKKyAgLy8g
cmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJlY2F1c2Ugd2UgYXJlIGNvbnZlcnRp
bmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVyIGRlY29kZSwgYnV0IGV2ZW50dWFs
bHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENWUGl4ZWxCdWZmZXJzIGRpcmVjdGx5
IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBNYXliZSBvbmx5IHNldCBPcGVu
R0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRoYXQKKyAgLy8gd2UgY2FuIHBhc3Mg
Q1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4gZGVjb2RlciBvdXRwdXQuCisgIHN0
YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVSZWYga2V5c1th
dHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVs
QnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFD
KQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAg
IGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFs
dWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2
NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxS
YW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPSBDRk51bWJlckNyZWF0ZShudWxscHRy
LCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRy
aWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLCBwaXhlbEZvcm1h
dH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFy
eShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7
CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51
bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9y
bWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgVlREZWNvbXByZXNzaW9u
T3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgdnA5RGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAqKXNlbGYsCisgIH07CisgIE9TU3RhdHVzIHN0
YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCBfdmlk
ZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNl
c3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIp
IHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBkZWNvbXByZXNz
aW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9u
U2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBb
c2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lv
biB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyNpZiBkZWZpbmVkKFdF
QlJUQ19JT1MpCisgIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwg
a1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7Cisj
ZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24geworICBpZiAo
X2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxE
KQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9k
ZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAg
ICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsK
KyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25JbnZhbGlk
YXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9kZWNvbXByZXNzaW9u
U2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQor
CistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYpdmlk
ZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09IHZpZGVvRm9ybWF0KSB7CisgICAgcmV0
dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJlbGVhc2UoX3ZpZGVvRm9y
bWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRlb0Zvcm1hdDsKKyAgaWYgKF92aWRlb0Zv
cm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zvcm1hdCk7CisgIH0KK30KKworLSAoTlNTdHJp
bmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQor
CitAZW5kCisKKyNlbmRpZiAvLyBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNv
ZGVyX2ZhY3RvcnkubW0KaW5kZXggMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUy
NWJkOC4uMWNmOTQ5ZGMxN2EzYmMwNzdlZGU0MjhhYzg3ZmRkOGRiYjFjZmYwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlk
ZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAsNyArMTAwLDExIEBAIHN0ZDo6dW5pcXVlX3B0
cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29k
ZXIoCiAgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBk
b2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KICAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tp
bmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKLSAgICAg
IGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJW
UDkiXSkgeworI2lmICFkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAgICAgIGlmIChb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkg
eworI2Vsc2UKKyAgICAgICAgaWYgKCFbZGVjb2Rlci5pbXBsZW1lbnRhdGlvbk5hbWUgaXNFcXVh
bDpAIlZpZGVvVG9vbGJveCJdKSB7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBl
ZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVj
b2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDRlNGE1MzgxZjg3MDBkNGJlM2MxM2UzMDAyMzIyMjdiYmM2YzEwODAu
LjdiZjBkNTdkNDQ4MTVlYjZiODFmN2VjYjYxOWMzMzAxZDgxY2ZmMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDkgQEAKIAkJNDEyOTlCOTIyMTI3MzY3QjAw
QjM0MTRCIC8qIGlzYWNfdmFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQuaCAqLzsgfTsK
IAkJNDEyOTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOTlCOTAyMTI3MzY3QjAwQjM0
MTRCIC8qIHBpdGNoX2ZpbHRlci5oICovOyB9OwogCQk0MTI5OUI5NzIxMjczNjkxMDBCMzQxNEIg
LyogZmFrZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlw
ZS5oICovOyB9OworCQk0MTJGRjkzNDI1MzlCNzY0MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVy
VlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLzsg
fTsKKwkJNDEyRkY5MzcyNTNEOEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNvZGVyU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTJGRjkzNTI1M0Q4
RjBBMDAxREYwMzYgLyogVlRWaWRlb0RlY29kZXJTUEkuaCAqLzsgfTsKKwkJNDEyRkY5MzgyNTNE
OEYwQTAwMURGMDM2IC8qIENNQmFzZU9iamVjdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyRkY5MzYyNTNEOEYwQTAwMURGMDM2IC8qIENNQmFz
ZU9iamVjdFNQSS5oICovOyB9OwogCQk0MTMwOTFGMzFFRjhDRjkyMDA3NTdDNTUgLyogcnRwX3Zp
ZGVvX3N0cmVhbV9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzMDkxRjExRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1f
cmVjZWl2ZXIuaCAqLzsgfTsKIAkJNDEzMDkxRjQxRUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRl
b19zdHJlYW1fcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTMwOTFGMjFFRjhDRjkxMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9y
ZWNlaXZlci5jYyAqLzsgfTsKIAkJNDEzMDkxRkIxRUY4Q0ZGODAwNzU3QzU1IC8qIGJ1aWx0aW5f
YXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEzMDkxRjkxRUY4Q0ZGMzAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVkaW9f
ZW5jb2Rlcl9mYWN0b3J5LmNjICovOyB9OwpAQCAtMTQyMiw3ICsxNDI1LDYgQEAKIAkJNDE3OTUz
QjgyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMDIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUz
QjkyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMTIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUz
QkEyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMjIx
Njk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLzsg
fTsKLQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnku
aCAqLzsgfTsKIAkJNDE3OTUzQkMyMTY5ODI0QjAwMjgyNjZCIC8qIGhlbHBlcnMuY2MgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1MjFEMzIxNjk4MjFG
MDAwQUJBRjcgLyogaGVscGVycy5jYyAqLzsgfTsKIAkJNDE3OTUzQkQyMTY5ODI0QjAwMjgyNjZC
IC8qIGhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNjIyNUY1MjE2OTgxRjQwMEE5MUM5QiAvKiBoZWxwZXJzLmggKi87IH07CiAJCTQxNzk1
M0JGMjE2OTgyNEIwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTE1MjFENTIxNjk4MjIwMDAwQUJBRjcgLyog
bmFsdV9yZXdyaXRlci5oICovOyB9OwpAQCAtMjIzNiw3ICsyMjM4LDYgQEAKIAkJNDFFQ0VBQkMy
MDY0MDNDMjAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkIyMDY0MDNDMTAwOUQ1MTQxIC8qIFdl
YktpdFV0aWxpdGllcy5oICovOyB9OwogCQk0MUVDRUFCRTIwNjQwNDk4MDA5RDUxNDEgLyogV2Vi
S2l0VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFQ0VBQkQyMDY0MDQ5ODAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5tbSAqLzsg
fTsKIAkJNDFFQ0VBQzEyMDY0MEYyODAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkYyMDY0
MEYyNzAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oICovOyB9OwotCQk0MUVDRUFGQzIw
NjQ2NjY0MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBRjkyMDY0NjY2MzAwOUQ1MTQxIC8qIEVu
Y29kZXJVdGlsaXRpZXMuaCAqLzsgfTsKIAkJNDFFQ0VBRkQyMDY0NjY2NDAwOUQ1MTQxIC8qIFZp
ZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3Np
bmdTb2Z0TGluay5jcHAgKi87IH07CiAJCTQxRUNFQUZFMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRl
b1Byb2Nlc3NpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFFQ0VBRkIyMDY0NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1Nv
ZnRMaW5rLmggKi87IH07CiAJCTQxRUVENzdDMjE1MkVEOEUwMDBGMkExNiAvKiBhdmdfbmVvbi5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5NDc4ODMy
MTUyRUQ0MzAwMjc1MjU3IC8qIGF2Z19uZW9uLmMgKi87IH07CkBAIC00MzQ1LDYgKzQzNDYsMTAg
QEAKIAkJNDEyOTlCOUIyMTI3MzZERTAwQjM0MTRCIC8qIHBpdGNoX2luZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGl0Y2hfaW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5
QzIxMjczNkRFMDBCMzQxNEIgLyogcm5uLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcm5uLmNjOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5RDIxMjczNkRGMDBCMzQxNEIgLyog
c3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gc3BlY3RyYWxfZmVh
dHVyZXNfaW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzIy
NTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDEyRkY5MzMyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJWVEJWUDkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzUyNTNEOEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNv
ZGVyU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUVmlkZW9EZWNvZGVy
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMkZGOTM2MjUzRDhGMEEwMDFE
RjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ01CYXNlT2JqZWN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5
MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8q
IHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTMwOTFGOTFFRjhDRkYzMDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19l
bmNvZGVyX2ZhY3RvcnkuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBi
dWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgcGF0aCA9IGF1ZGlvX2NvZGVjcy9idWls
dGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTY2OTQsNyArNjY5OSw2IEBACiAJCTQxRUNFQUJCMjA2NDAzQzEwMDlENTE0MSAvKiBXZWJL
aXRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUJEMjA2NDA0OTgw
MDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJLaXRVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRUNFQUJGMjA2NDBGMjcwMDlENTE0MSAvKiBOU1N0cmluZytTdGRTdHJpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gIk5TU3RyaW5nK1N0ZFN0cmluZy5oIjsg
cGF0aCA9ICJDb21tb24vTlNTdHJpbmcrU3RkU3RyaW5nLmgiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0MUVDRUFGOTIwNjQ2NjYzMDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVyVXRpbGl0aWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBW
aWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxRUNFQUZCMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0
TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdT
b2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUVFRDc3ODIxNTJFRDgz
MDAwRjJBMTYgLyogc2F2ZV9yZWdfbmVvbi5hc20gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbS5hc207IHBhdGggPSBzYXZlX3Jl
Z19uZW9uLmFzbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDU2LDYgKzEwMDYw
LDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2
NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVy
SDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29k
ZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUzOUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkzMjI1MzlCM0M5MDAxREYwMzYgLyogUlRDVmlk
ZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBS
VENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4
MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2
OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8sCkBAIC0xMDc1MSw5ICsx
MDc1NywxMCBAQAogCQk0MTlDODQ5NjFGRTJGRTlDMDA0MEMzMEYgLyogV2ViS2l0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MUVDRUFGOTIwNjQ2NjYz
MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oICovLAorCQkJCTQxMkZGOTM2MjUzRDhGMEEw
MDFERjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAqLywKIAkJCQk0MUVDRUFGQTIwNjQ2NjYzMDA5
RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwICovLAogCQkJCTQxRUNFQUZCMjA2
NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oICovLAorCQkJCTQxMkZG
OTM1MjUzRDhGMEEwMDFERjAzNiAvKiBWVFZpZGVvRGVjb2RlclNQSS5oICovLAogCQkJCTQxRTg0
QkM5MjQzNEM0QTIwMEQzNEU0MSAvKiBXZWJLaXREZWNvZGVyLmggKi8sCiAJCQkJNDFFODRCQ0Ey
NDM0QzRBMzAwRDM0RTQxIC8qIFdlYktpdERlY29kZXIubW0gKi8sCiAJCQkJNDE1ODY0OTYyM0JF
MDVFODAwQTBBNjFFIC8qIFdlYktpdEVuY29kZXIuaCAqLywKQEAgLTE2MDI4LDYgKzE2MDM1LDcg
QEAKIAkJCQk1QzA4ODUyQTFFNEE5OUQyMDA0MDM5OTUgLyogY2lwaGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODZBMjFFNDNCOTk0MDA2MjFFOTIgLyogY2lyY3VsYXJfYnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzM3MzIzNEI5NTdEMDAyOEE2MTUgLyogY2xvY2tkcmlmdF9k
ZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEyRkY5MzgyNTNEOEYwQTAwMURGMDM2IC8q
IENNQmFzZU9iamVjdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCNzYyMUIxRkZBNDAw
QTVERjI3IC8qIGNvY29hX3RocmVhZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3QjAx
RTQzQkMwNTAwNjIxRTkyIC8qIGNvZGVjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0NGMzFG
NzlCMzM0MDAzODdCNEQgLyogY29kZWMuaCBpbiBIZWFkZXJzICovLApAQCAtMTYxNjgsNyArMTYx
NzYsNiBAQAogCQkJCTVDREQ4NUEwMUU0M0I1QzAwMDYyMUU5MiAvKiBlbmNvZGVyX3J0Y3BfZmVl
ZGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOTNFMjQyQTcwQUUwMDdGREM0MSAvKiBl
bmNvZGVyX3NldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzI4MzIzNEI4Q0M0MDAy
OEE2MTUgLyogZW5jb2Rlcl9zaW11bGNhc3RfcHJveHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
RUNFQUZDMjA2NDY2NjQwMDlENTE0MSAvKiBFbmNvZGVyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEI5OTFFNDNDMkI1MDA2MjFFOTIgLyogZW5lcmd5X2ludmVyc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4QjlCMUU0M0MyQjUwMDYyMUU5MiAvKiBlbmhfdXBzYW1wbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QjlGMUU0M0MyQjUwMDYyMUU5MiAvKiBlbmhhbmNl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNjcyNiw3ICsxNjczMyw2IEBACiAJCQkJNDEzRTY3OEEy
MTY5ODdCOTAwRUYzN0VEIC8qIFJUQ0NWUGl4ZWxCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxM0EyNDU1MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzQTI0NzAxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0RhdGFDaGFubmVsQ29uZmln
dXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8q
IFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5
NTNDMjIxNjk4MjRCMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0EyNDUyMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEaXNwYXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRD
RUFHTFZpZGVvVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzIwNCw2ICsxNzIxMCw3IEBACiAJ
CQkJNDEzMUJGQTcyMzRCODhBNjAwMjhBNjE1IC8qIHZwOV9wcm9maWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEJGNDFFNDNDMkI1MDA2MjFFOTIgLyogdnEzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEJGNjFFNDNDMkI1MDA2MjFFOTIgLyogdnE0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTJGRjkzNzI1M0Q4RjBBMDAxREYwMzYgLyogVlRWaWRlb0RlY29kZXJTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDNEI0QzgxMUU0MzFGOUMwMDI2NTFDOCAvKiB3YXZfZmlsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUM0QjRDODQxRTQzMUY5QzAwMjY1MUM4IC8qIHdhdl9oZWFkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDMTYzMjM0Qjg5RTIwMDI4QTYxNSAvKiB3ZWFrX3B0ci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xOTM5OSw2ICsxOTQwNiw3IEBACiAJCQkJNDFFODRCRDIyNDM3
M0MxNDAwRDM0RTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVyVlA4Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE0MDM1RUYyNEFBMEVCQzAwQkNFOUIyIC8qIFJUQ1ZpZGVvRGVjb2Rl
clZQOS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxMkZGOTM0MjUzOUI3NjQwMDFERjAzNiAvKiBS
VENWaWRlb0RlY29kZXJWVEJWUDkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCOTIxNjk4
MjQyMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2VzICov
LAogCQkJCTQxNzk1M0NBMjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFODRCRDMyNDM3M0MxQTAwRDM0RTQxIC8qIFJUQ1ZpZGVv
RW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKaW5kZXggZWJjZjcxOTNmNWE1MzI0MjBkMTRjNzlhOTljYTcyM2E0NmEwZDRhNS4uYzZi
MmNiOTgzZWYyN2I0ZDZkMGE4YTE3YjRjN2I5Y2M3Njk4NzZlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwOCw4ICsxMDgsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRIMjY1U3VwcG9ydChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNIMjY1ID0gdmFsdWU7IH0K
ICAgICB2b2lkIHNldFZQOVN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5ID0gdmFs
dWU7IH0KKyAgICB2b2lkIHNldFZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRz
VlA5VlRCID0gdmFsdWU7IH0KICAgICBib29sIGlzU3VwcG9ydGluZ0gyNjUoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHBvcnRzSDI2NTsgfQogICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5KCkgY29uc3Qg
eyByZXR1cm4gbV9zdXBwb3J0c1ZQOTsgfQorICAgIGJvb2wgaXNTdXBwb3J0aW5nVlA5VlRCKCkg
Y29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOVZUQjsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgaXMgZXhlY3V0ZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZC4KQEAgLTE1Myw2ICsxNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1
cHBvcnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzVlA5IHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc3VwcG9ydHNWUDlWVEIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVM
b2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggOTIw
MWQwZTMyYzM0OGIyZDNlM2IwMDk3YjQ3OTBkNDdjZDI5MjhmNC4uY2IxMWY4MWZkM2YxMWVhZjgx
ODkxOTZiMTQ4N2FlZDA3YzZlNTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlckNvY29hLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNv
ZAogICAgIGlmICghd2ViUlRDQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0
aW5nSDI2NSgpID8gd2VicnRjOjpXZWJLaXRIMjY1OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6
T2ZmLCBpc1N1cHBvcnRpbmdWUDkoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6
V2ViS2l0VlA5OjpPZmYpOworICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJG
YWN0b3J5KGlzU3VwcG9ydGluZ0gyNjUoKSA/IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T24gOiB3ZWJy
dGM6OldlYktpdEgyNjU6Ok9mZiwgaXNTdXBwb3J0aW5nVlA5KCkgPyB3ZWJydGM6OldlYktpdFZQ
OTo6T24gOiB3ZWJydGM6OldlYktpdFZQOTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDlWVEIoKSA/IHdl
YnJ0Yzo6V2ViS2l0VlA5VlRCOjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPZmYpOwogfQog
CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0VuY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQ
cm92aWRlckNvY29hOjpjcmVhdGVFbmNvZGVyRmFjdG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggYTA5MzA1ZjI4NGNlY2E2NWQ2ODQ2MTg5ZTk3ZGRhYjc3NTUxMDZk
Ni4uNDBlNzRhMzc2Yzg3NmQxYjgxZmVlNzk4ZjVlZTM2NGMzNDY0Zjc1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU2Niw2ICsxNTY2LDE2IEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wgdmFsdWUpCiAjZW5kaWYKIH0KIAordm9pZCBJ
bnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCB2YWx1ZSkKK3sKKyNpZiBVU0Uo
TElCV0VCUlRDKQorICAgIGlmIChhdXRvKiBwYWdlID0gY29udGV4dERvY3VtZW50KCktPnBhZ2Uo
KSkgeworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLnNldFZQOVZUQlN1cHBvcnQo
dmFsdWUpOworICAgICAgICBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLmNsZWFyRmFjdG9yeSgp
OworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIEludGVybmFsczo6c2V0RW5hYmxlV2ViUlRDRW5j
cnlwdGlvbihib29sIHZhbHVlKQogewogI2lmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAppbmRleCBhMTZmOTUyZjE1NTAwMWJkNjM1MmFlNTA5N2FkNjg2NmY0ODdh
MjQ1Li45YTdjMDcyOTU0M2U5YTFiMTA0ZmMwYTM2N2FiZDkwN2Q4NWM3OGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU5NSw2ICs1OTUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoUlRDUGVlckNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2wpOwogICAgIHZvaWQgc2V0V2Vi
UlRDVlA5U3VwcG9ydChib29sKTsKKyAgICB2b2lkIHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9v
bCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENFbmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQg
c2V0VXNlRFRMUzEwKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhM2Y0NTZlMDg5Zjdi
ZmExZmYxYTczYWUzNWQ0N2E0Y2I5YzE5NDExLi41MjkzNGRmNzlhMmE4ZTc0NmQ3MTBkY2Y3MjJi
OTc4ZmE1MzU5OGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03OTMs
NiArNzkzLDcgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKICAgICBbQ29uZGl0aW9uYWw9
V0VCX1JUQ10gdW5kZWZpbmVkIGFwcGx5Um90YXRpb25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcyhS
VENQZWVyQ29ubmVjdGlvbiBjb25uZWN0aW9uKTsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10g
dW5kZWZpbmVkIHNldFdlYlJUQ0gyNjVTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAgICAgW0Nv
bmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2xlYW4g
YWxsb3dlZCk7CisgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENW
UDlWVEJTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFf
U1RSRUFNXSB1bmRlZmluZWQgc2V0TW9ja0F1ZGlvVHJhY2tDaGFubmVsTnVtYmVyKE1lZGlhU3Ry
ZWFtVHJhY2sgdHJhY2ssIHVuc2lnbmVkIHNob3J0IGNvdW50KTsKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0U2hvdWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNp
YmlsaXR5Q2hhbmdlKGJvb2xlYW4gc2hvdWxkSW50ZXJydXB0KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDYyZjM4YmRk
M2EzZGMxMDBiOTBmMTQ4MjBmN2M3Njg3NTlkOWJlLi42NTExZmFlNDkwNDU4YTFlMjk3ZmE3NWY5
MmI0YjMzODQ0OWUxODRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTAtMTkgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2Rl
ciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB3ZWJydGMvdnA5LXZ0Yi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy92cDktdnRiLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEw
LTE0ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFtXaW5DYWlyb10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYzA5MDNkYmU0ODk4NDJjZWVmN2M3OWE5MTA1OTA0MGY1MWIzOTI3Ni4uMzVhMDA2NGUyYmI0
NjQzYmIyYTU2YmRiNjdhMjYxM2Y3Y2ZkZjVlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTIy
LDYgKzE5MjIsOCBAQCB3ZWJraXQub3JnL2IvMTQ2MTgyIGVkaXRpbmcvc2VsZWN0aW9uL2xlYWst
ZG9jdW1lbnQtd2l0aC1zZWxlY3Rpb24taW5zaWRlLmh0bWwgWwogIyBFeHBlcmltZW50YWwgSDI2
NSBzdXBwb3J0Lgogd2VicnRjL2gyNjUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKK3dlYnJ0Yy92
cDktdnRiLmh0bWwgWyBTa2lwIF0KKwogd2VicnRjL3NpbXVsY2FzdC1oMjY0Lmh0bWwgWyBTbG93
IF0KIHdlYnJ0Yy9oMjY0LWJhc2VsaW5lLmh0bWwgWyBTbG93IF0KIHdlYnJ0Yy9oMjY0LWhpZ2gu
aHRtbCBbIFNsb3cgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGI5M2UzYTIwZGQ1NTZiZmQ5MjZjZjFkMWQ1N2I3YmE3MTA5OWQ4N2IuLmM2
Y2Y1YjJhNDYwM2RhOWU3M2FhMzQ5OTBkZGY5NjY4MThiNDJmYTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyNzMsNiArMTI3Myw3IEBA
IHdlYmtpdC5vcmcvYi8yMTU2MTEgWyBEZWJ1ZyBdIGZhc3Qvc2Nyb2xsaW5nL21hYy9zY3JvbGxi
YXJzL292ZXJmbG93LW92ZXJsYXktc2NyCiAKICMgcmRhcjovLzY1MjY5NTg5IChbIG1hY09TIGFu
ZCBpT1MgXSBtZWRpYS92cDkuaHRtbCBpcyBmYWlsaW5nIGNvbnNpc3RlbnRseS4pCiBbIEJpZ1N1
cisgXSBtZWRpYS92cDkuaHRtbCBbIFBhc3MgXQorWyBCaWdTdXIrIF0gd2VicnRjL3ZwOS12dGIu
aHRtbCBbIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMjE1NzAwIFsgRGVidWcgXSBmYXN0L3Njcm9s
bGluZy9tYWMvc2Nyb2xsYmFycy9vdmVybGF5LXNjcm9sbGJhci1ob3ZlcmVkLmh0bWwgWyBQYXNz
IEZhaWx1cmUgVGltZW91dCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92cDkt
dnRiLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMDQ3MDYzYzEzZmY1MDQ2MmQxYzYyZmRkOGNhYWQ4YTFlNGRkNjAzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKKworCitQQVNTIFZQOSBpbiBnZXRDYXBhYmlsaXRpZXMKK1BBU1Mg
VmVyaWZ5IFZQOSBhY3RpdmF0aW9uCitQQVNTIFNldHRpbmcgdmlkZW8gZXhjaGFuZ2UKK1BBU1Mg
RW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQKK1BBU1MgVHJhY2sgaXMgZW5h
YmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBkaXNhYmxlZCwg
dmlkZW8gc2hvdWxkIGJlIGJsYWNrCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3Vs
ZCBub3QgYmUgYmxhY2sgMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0
Yi5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGE0
MjA2OGZmODhkMmM4NjQ1Yjk2OGNlMDRlM2FkNzAzZDJhNGJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgICAgIDx0aXRsZT5WUDkgVlRCIGluIFdlYlJUQzwvdGl0bGU+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1
dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAg
ICAgICA8Y2FudmFzIGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52
YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQw
Ij48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVp
Z2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK2xldCBoYXNWUDk7Cit0ZXN0KCgpID0+IHsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFdl
YlJUQ1ZQOVN1cHBvcnQodHJ1ZSk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0V2ViUlRD
VlA5VlRCU3VwcG9ydCh0cnVlKTsKKyAgICB9CisKKyAgICBjb2RlY3MgPSBSVENSdHBTZW5kZXIu
Z2V0Q2FwYWJpbGl0aWVzKCJ2aWRlbyIpLmNvZGVjczsKKyAgICBoYXNWUDkgPSBjb2RlY3Muc29t
ZSgoY29kZWMpID0+IHsgcmV0dXJuIGNvZGVjLm1pbWVUeXBlID09ICJ2aWRlby9WUDkiOyB9KTsK
KyAgICBhc3NlcnRfdHJ1ZShoYXNWUDkpOworfSwgIlZQOSBpbiBnZXRDYXBhYmlsaXRpZXMiKTsK
KworaWYgKGhhc1ZQOSkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAg
ICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYy5hZGRU
cmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBw
Yy5jcmVhdGVPZmZlcigpOworICAgICAgICBwYy5jbG9zZSgpOworICAgICAgICBhc3NlcnRfdHJ1
ZShkZXNjcmlwdGlvbi5zZHAuaW5kZXhPZigiVlA5IikgIT09IC0xLCAiVlA5IGNvZGVjIGlzIGlu
IHRoZSBTRFAiKTsKKyAgICB9LCAiVmVyaWZ5IFZQOSBhY3RpdmF0aW9uIikKKworICAgIHZhciB0
cmFjazsKKyAgICB2YXIgcmVtb3RlVHJhY2s7CisgICAgdmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247
CisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0
MCwgZmFjaW5nTW9kZTogImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkgPT4gewor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAg
ICAgICAgICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisK
KyAgICAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9j
YWxTdHJlYW0pOworICAgICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9u
OworICAgICAgICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tF
dmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2
ZW50LnRyYWNrOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0
cmVhbXNbMF0pOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sIHsg
b2JzZXJ2ZU9mZmVyIDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIG9mZmVyLnNk
cCA9IHNldENvZGVjKG9mZmVyLnNkcCwgIlZQOSIpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gb2ZmZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAw
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsK
KyAgICAgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgICAg
IHJldHVybiB2aWRlby5wbGF5KCk7CisgICAgICAgIH0pOworICAgIH0sICJTZXR0aW5nIHZpZGVv
IGV4Y2hhbmdlIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBpZiAocmVj
ZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlv
bi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
cmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAg
c2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAgICAg
ICB9KTsKKyAgICB9LCAiRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsK
KworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tWaWRl
b0JsYWNrKGZhbHNlLCBjYW52YXMxLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQs
IHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkg
PT4geworICAgICAgICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBjaGVj
a1ZpZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBkaXNh
YmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBjaGVj
a1ZpZGVvQmxhY2soZmFsc2UsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5h
YmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7Cit9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411989</attachid>
            <date>2020-10-21 08:43:44 -0700</date>
            <delta_ts>2020-10-21 10:14:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217811-20201021174341.patch</filename>
            <type>text/plain</type>
            <size>62379</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBkNTZkYWI5NmMxMzQ4ZGUxZTU3NGM1NDY3YWVkZWIyYmZjYjUwY2MwLi5jYzM3
YWRkZTJiZmFkMTM4YWFiZjc4MWRiNzkzYzQwN2EzZmM2MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMC0xMC0yMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIFZQOSBEZWNvZGVyIHNo
b3VsZCBiZSBhYmxlIHRvIHVzZSBWVEIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzgxMQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNv
bi4KKworICAgICAgICBBZGQgUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGFzIGEgVlA5IGRlY29kZXIg
dXNpbmcgdGhlIFZUQiBBUEkuCisgICAgICAgIEVuYWJsZSB0aGlzIGNvZGUgcGF0aCBieSBkZWZh
dWx0IGlmIFZQOSBpcyBlbmFibGVkIGFuZCBoYXJkd2FyZSBWUDkgZGVjb2RpbmcgaXMgc3VwcG9y
dGVkLgorICAgICAgICBBbGxvdyB0byBvdmVycmlkZSB0aGlzIHNldHRpbmcgZm9yIHRlc3Rpbmcg
cHVycG9zZXMuCisKKyAgICAgICAgQWRkIFNQSSBoZWFkZXIgZmlsZXMgaW4gY2FzZSB0aGV5IGFy
ZSBub3QgYXZhaWxhYmxlLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
Uy5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHA6Cisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHA6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L0NNQmFzZU9iamVjdFNQSS5oOiBBZGRlZC4KKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvVlRWaWRlb0RlY29kZXJTUEkuaDogQWRkZWQuCisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW06CisgICAg
ICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg6CisgICAgICAgICogU291cmNl
L3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwOgorICAgICAgICAod2VicnRj
OjpjcmVhdGVXZWJLaXRWUDlEZWNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2FwaS92aWRlb19jb2RlYy9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tOgorICAg
ICAgICAoLVtSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGltcGxlbWVudGF0aW9uTmFtZV0p
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5tOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBpbml0
V2l0aEgyNjU6dnA5OnZwOVZUQjpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkgY3JlYXRlRGVjb2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENWaWRlb0RlY29kZXJWVEJWUDkubW06IEFkZGVkLgorICAgICAgICAoUlRDRnJhbWVEZWNv
ZGVQYXJhbXM6OlJUQ0ZyYW1lRGVjb2RlUGFyYW1zKToKKyAgICAgICAgKFZQOUJ1ZmZlclRvQ01T
YW1wbGVCdWZmZXIpOgorICAgICAgICAodnA5RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IGRlYWxsb2NdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9EZWNvZGVyVlRCVlA5IHN0YXJ0RGVjb2RlV2l0aE51bWJlck9mQ29yZXM6XSk6Cisg
ICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBkZWNvZGU6bWlzc2luZ0ZyYW1lczpjb2Rl
Y1NwZWNpZmljSW5mbzpyZW5kZXJUaW1lTXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBkZWNvZGVEYXRhOnNpemU6dGltZVN0YW1wOl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJWVEJWUDkgc2V0Q2FsbGJhY2s6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOSBzZXRFcnJvcjpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHJl
bGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSByZXNldERl
Y29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSBj
b25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29k
ZXJWVEJWUDkgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRGVjb2RlclZUQlZQOSBzZXRWaWRlb0Zvcm1hdDpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAgICAgICAqIFNvdXJjZS93ZWJy
dGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAg
ICAgICAgKHdlYnJ0Yzo6T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rl
cik6CisgICAgICAgICogbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjAtMTAtMTMgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBsZWZ0b3ZlciBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4IHN1cHBvcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBiZTM1MmMxZjNiOGJjYzcyYzliMGI4NDA2NjMxNmEwYzg1ZTU4ODJiLi5hY2U3
YjFjZjY2MWQ0ZmI2ZmViODIzZTRkMDkzN2Q0Zjc3M2MwMDhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMjAtMTAtMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2RlciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHRlc3Rpbmcg
c3VwcG9ydCB0byBlbmFibGUgVlA5IGRlY29kaW5nIHRocm91Z2ggVlRCIGZvciBXZWJSVEMuCisK
KyAgICAgICAgVGVzdDogd2VicnRjL3ZwOS12dGIuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3JlYXRlRGVjb2RlckZh
Y3RvcnkpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0V2ViUlRDVlA5VlRCU3VwcG9ydCk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAt
MTAtMjAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW2Nzcy1mbGV4Ym94XSBmbGV4LWJhc2lzIG5vdCBhbmltYXRhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5l
eHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
LmlPUy5leHAKaW5kZXggZTNlNjExYTExODg0YzYwMGI3MmJjNzllOGZmNDJhZjU2YzM0MzY2Yi4u
NjFlYTY2ZGNhYjNjMTYwMDQxYjljYjg4NGU1NzliZTYwZGMyZDNkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMuaU9TLmV4cApAQCAtMTA0LDcgKzEwNCw3IEBAIF9fWk42d2VicnRjMzJDcmVhdGVCdWlsdGlu
QXVkaW9FbmNvZGVyRmFjdG9yeUV2CiBfX1pONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50
ZXJmYWNlMTZSZW1vdmVDYW5kaWRhdGVzRVJLTlN0M19fMTZ2ZWN0b3JJTjdjcmlja2V0OUNhbmRp
ZGF0ZUVOUzFfOWFsbG9jYXRvcklTNF9FRUVFCiBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUlu
dGVyZmFjZTEwc2VydmVyX3VybEV2CiBfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNF
YgotX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2
NUVOU185V2ViS2l0VlA5RQorX19aTjZ3ZWJydGMyNmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5
RU5TXzEwV2ViS2l0SDI2NUVOU185V2ViS2l0VlA5RU5TXzEyV2ViS2l0VlA5VlRCRQogX19aTjZ3
ZWJydGMyNmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5RU5TXzEwV2ViS2l0SDI2NUVOU185V2Vi
S2l0VlA5RQogX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkRWIKIF9f
Wk42d2VicnRjMzFzZXRIMjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkRWIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9T
c2ltLmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3
ZWJydGMuaU9Tc2ltLmV4cAppbmRleCBlM2U2MTFhMTE4ODRjNjAwYjcyYmM3OWU4ZmY0MmFmNTZj
MzQzNjZiLi42MWVhNjZkY2FiM2MxNjAwNDFiOWNiODg0ZTU3OWJlNjBkYzJkM2Q2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
LmlPU3NpbS5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRp
b25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwCkBAIC0xMDQsNyArMTA0LDcgQEAgX19aTjZ3ZWJydGMz
MkNyZWF0ZUJ1aWx0aW5BdWRpb0VuY29kZXJGYWN0b3J5RXYKIF9fWk42d2VicnRjMjdTZXNzaW9u
RGVzY3JpcHRpb25JbnRlcmZhY2UxNlJlbW92ZUNhbmRpZGF0ZXNFUktOU3QzX18xNnZlY3RvcklO
N2NyaWNrZXQ5Q2FuZGlkYXRlRU5TMV85YWxsb2NhdG9ySVM0X0VFRUUKIF9fWk5LNndlYnJ0YzIx
SWNlQ2FuZGlkYXRlSW50ZXJmYWNlMTBzZXJ2ZXJfdXJsRXYKIF9fWk42d2VicnRjMjBzZXRBcHBs
aWNhdGlvblN0YXR1c0ViCi1fX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnlF
TlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFCitfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0
RGVjb2RlckZhY3RvcnlFTlNfMTBXZWJLaXRIMjY1RU5TXzlXZWJLaXRWUDlFTlNfMTJXZWJLaXRW
UDlWVEJFCiBfX1pONndlYnJ0YzI2Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnlFTlNfMTBXZWJL
aXRIMjY1RU5TXzlXZWJLaXRWUDlFCiBfX1pONndlYnJ0YzI5c2V0SDI2NEhhcmR3YXJlRW5jb2Rl
ckFsbG93ZWRFYgogX19aTjZ3ZWJydGMzMXNldEgyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWRF
YgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25z
L2xpYndlYnJ0Yy5tYWMuZXhwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3Vy
YXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCmluZGV4IGI5ZDYyNTk3MDhlOTA4ODlkZTFmYjYzYWRh
MGY0ZTBiNzNjNWE3ZDEuLjRlZWRkNmVlOTk2Y2I2YjhhNjE5MDM2MTcwNTZkNzRmYmUzYTJkNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMubWFjLmV4cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmln
dXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBfX1pONndlYnJ0
YzMyQ3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZhY3RvcnlFdgogX19aTjZ3ZWJydGMyN1Nlc3Np
b25EZXNjcmlwdGlvbkludGVyZmFjZTE2UmVtb3ZlQ2FuZGlkYXRlc0VSS05TdDNfXzE2dmVjdG9y
SU43Y3JpY2tldDlDYW5kaWRhdGVFTlMxXzlhbGxvY2F0b3JJUzRfRUVFRQogX19aTks2d2VicnRj
MjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZlcl91cmxFdgogX19aTjZ3ZWJydGMyMHNldEFw
cGxpY2F0aW9uU3RhdHVzRWIKLV9fWk42d2VicnRjMjZjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9y
eUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUUKK19fWk42d2VicnRjMjZjcmVhdGVXZWJL
aXREZWNvZGVyRmFjdG9yeUVOU18xMFdlYktpdEgyNjVFTlNfOVdlYktpdFZQOUVOU18xMldlYktp
dFZQOVZUQkUKIF9fWk42d2VicnRjMjZjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9yeUVOU18xMFdl
YktpdEgyNjVFTlNfOVdlYktpdFZQOUUKIF9fWk42d2VicnRjMjlzZXRIMjY0SGFyZHdhcmVFbmNv
ZGVyQWxsb3dlZEViCiBfX1pONndlYnJ0YzMxc2V0SDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxl
ZEViCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvV2ViS2l0L0NNQmFzZU9iamVjdFNQSS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9DTUJhc2VPYmplY3RTUEkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNTdkYjgxM2Q3ZTNhOTE3ODM2ZmE4MDI4YWIxMWJmNTI1Mzc5ZjVjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktp
dC9DTUJhc2VPYmplY3RTUEkuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENv
cmVGb3VuZGF0aW9uL0NGUHJpdi5oPikKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01CYXNlT2JqZWN0
Lmg+CisjZWxzZQorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
K2VudW0geworICAgIGtDTUJhc2VPYmplY3RfQ2xhc3NWZXJzaW9uXzEgPSAxLAorICAgIGtDTUJh
c2VPYmplY3RfQ2xhc3NWZXJzaW9uXzIgPSAyLAorICAgIGtDTUJhc2VPYmplY3RfQ2xhc3NWZXJz
aW9uXzMgPSAzCit9OworCitlbnVtIHsKKyAgICBrQ01CYXNlT2JqZWN0X1Byb3RvY29sVmVyc2lv
bl8xID0gMQorfTsKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01CYXNlT2JqZWN0ICpDTUJhc2VP
YmplY3RSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVDTUJhc2VDbGFzcyAqQ01CYXNlQ2xhc3NJ
RDsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQmFzZVByb3RvY29sICpDTUJhc2VQcm90b2NvbElE
OworCit0eXBlZGVmIE9TU3RhdHVzICgqQ01CYXNlT2JqZWN0Q29weVByb3BlcnR5RnVuY3Rpb24p
KENNQmFzZU9iamVjdFJlZiwgQ0ZTdHJpbmdSZWYgcHJvcGVydHlLZXksIENGQWxsb2NhdG9yUmVm
LCB2b2lkICpwcm9wZXJ0eVZhbHVlT3V0KTsKK3R5cGVkZWYgT1NTdGF0dXMgKCpDTUJhc2VPYmpl
Y3RTZXRQcm9wZXJ0eUZ1bmN0aW9uKShDTUJhc2VPYmplY3RSZWYgb2JqZWN0LCBDRlN0cmluZ1Jl
ZiBwcm9wZXJ0eUtleSwgQ0ZUeXBlUmVmICBwcm9wZXJ0eVZhbHVlKTsKKworI3ByYWdtYSBwYWNr
KHB1c2gpCisjcHJhZ21hIHBhY2soKQordHlwZWRlZiBzdHJ1Y3QgeworICAgIENNQmFzZUNsYXNz
VmVyc2lvbiB2ZXJzaW9uOworICAgIENGU3RyaW5nUmVmICgqY29weVByb3RvY29sRGVidWdEZXNj
cmlwdGlvbikoQ01CYXNlT2JqZWN0UmVmKTsKK30gQ01CYXNlUHJvdG9jb2w7CisjcHJhZ21hIHBh
Y2socG9wKQorCisjcHJhZ21hIHBhY2socHVzaCkKKyNwcmFnbWEgcGFjaygpCitzdHJ1Y3QgQ01C
YXNlUHJvdG9jb2xWVGFibGUgeworICAgIGNvbnN0IHN0cnVjdCBPcGFxdWVDTUJhc2VQcm90b2Nv
bFZUYWJsZVJlc2VydmVkICpyZXNlcnZlZDsKKyAgICBjb25zdCBDTUJhc2VQcm90b2NvbCAqYmFz
ZVByb3RvY29sOworfTsKKyNwcmFnbWEgcGFjayhwb3ApCisKK3R5cGVkZWYgc3RydWN0IENNQmFz
ZVByb3RvY29sVGFibGVFbnRyeSB7CisgICAgQ01CYXNlUHJvdG9jb2xJRCAoKmdldFByb3RvY29s
SUQpKHZvaWQpOworICAgIENNQmFzZVByb3RvY29sVlRhYmxlICpwcm90b2NvbFZUYWJsZTsKK30g
Q01CYXNlUHJvdG9jb2xUYWJsZUVudHJ5OworCitzdHJ1Y3QgQ01CYXNlUHJvdG9jb2xUYWJsZSB7
CisgICAgdWludDMyX3QgdmVyc2lvbjsKKyAgICB1aW50MzJfdCBudW1TdXBwb3J0ZWRQcm90b2Nv
bHM7CisgICAgQ01CYXNlUHJvdG9jb2xUYWJsZUVudHJ5ICogc3VwcG9ydGVkUHJvdG9jb2xzOwor
fTsKKworI3ByYWdtYSBwYWNrKHB1c2gsIDQpCit0eXBlZGVmIHN0cnVjdCB7CisgICBDTUJhc2VD
bGFzc1ZlcnNpb24gdmVyc2lvbjsKKyAgIHNpemVfdCBkZXJpdmVkU3RvcmFnZVNpemU7CisKKyAg
IEJvb2xlYW4gKCplcXVhbCkoQ01CYXNlT2JqZWN0UmVmLCBDTUJhc2VPYmplY3RSZWYpOworICAg
T1NTdGF0dXMgKCppbnZhbGlkYXRlKShDTUJhc2VPYmplY3RSZWYpOworICAgdm9pZCAoKmZpbmFs
aXplKShDTUJhc2VPYmplY3RSZWYpOworICAgQ0ZTdHJpbmdSZWYgKCpjb3B5RGVidWdEZXNjcmlw
dGlvbikoQ01CYXNlT2JqZWN0UmVmKTsKKworICAgQ01CYXNlT2JqZWN0Q29weVByb3BlcnR5RnVu
Y3Rpb24gY29weVByb3BlcnR5OworICAgQ01CYXNlT2JqZWN0U2V0UHJvcGVydHlGdW5jdGlvbiBz
ZXRQcm9wZXJ0eTsKKyAgIE9TU3RhdHVzICgqbm90aWZpY2F0aW9uQmFycmllcikoQ01CYXNlT2Jq
ZWN0UmVmKTsKKyAgIGNvbnN0IENNQmFzZVByb3RvY29sVGFibGUgKnByb3RvY29sVGFibGU7Cit9
IENNQmFzZUNsYXNzOworI3ByYWdtYSBwYWNrKHBvcCkKKworI3ByYWdtYSBwYWNrKHB1c2gpCisj
cHJhZ21hIHBhY2soKQordHlwZWRlZiBzdHJ1Y3QgeworICAgIGNvbnN0IHN0cnVjdCBPcGFxdWVD
TUJhc2VWVGFibGVSZXNlcnZlZCAqcmVzZXJ2ZWQ7CisgICAgY29uc3QgQ01CYXNlQ2xhc3MgKmJh
c2VDbGFzczsKK30gQ01CYXNlVlRhYmxlOworI3ByYWdtYSBwYWNrKHBvcCkKKworQ01fRVhQT1JU
IE9TU3RhdHVzIENNRGVyaXZlZE9iamVjdENyZWF0ZShDRkFsbG9jYXRvclJlZiwgY29uc3QgQ01C
YXNlVlRhYmxlKiwgQ01CYXNlQ2xhc3NJRCwgQ01CYXNlT2JqZWN0UmVmKik7CitDTV9FWFBPUlQg
dm9pZCAqQ01CYXNlT2JqZWN0R2V0RGVyaXZlZFN0b3JhZ2UoQ01CYXNlT2JqZWN0UmVmKTsKKwor
I2lmZGVmIF9fY3BsdXNwbHVzCit9IC8vIGV4dGVybiAiQyIKKyNlbmRpZgorCisjZW5kaWYgLy8g
X19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1ZUVmlkZW9EZWNvZGVyU1BJLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1ZUVmlkZW9EZWNvZGVyU1BJLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjQ4ODkwNWVlNDcxZGRkYTRkNGQ5NTA1NTBkNzc4MmU0ODdhMTBhMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvVlRWaWRlb0RlY29kZXJTUEkuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5jbHVkZSg8
Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQorI2luY2x1ZGUgPFZpZGVvVG9vbGJveC9WVFZpZGVv
RGVjb2Rlci5oPgorI2luY2x1ZGUgPFZpZGVvVG9vbGJveC9WVFZpZGVvRGVjb2RlclJlZ2lzdHJh
dGlvbi5oPgorI2Vsc2UKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCisjcHJhZ21hIHBhY2socHVzaCwgNCkKKwordHlwZWRlZiBGb3VyQ2hhckNvZGUgRmlnVmlk
ZW9Db2RlY1R5cGU7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFZpZGVvRGVjb2RlciogVlRWaWRl
b0RlY29kZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVFZpZGVvRGVjb2RlclNlc3Npb24q
IFZUVmlkZW9EZWNvZGVyU2Vzc2lvbjsKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZVZUVmlkZW9EZWNv
ZGVyRnJhbWUqIFZUVmlkZW9EZWNvZGVyRnJhbWU7CisKK3R5cGVkZWYgT1NTdGF0dXMgKCpWVFZp
ZGVvRGVjb2RlckZ1bmN0aW9uX0NyZWF0ZUluc3RhbmNlKShGb3VyQ2hhckNvZGUgY29kZWNUeXBl
LCBDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3IsIFZUVmlkZW9EZWNvZGVyUmVmICppbnN0YW5jZU91
dCk7Cit0eXBlZGVmIE9TU3RhdHVzICgqVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9TdGFydFNlc3Np
b24pKFZUVmlkZW9EZWNvZGVyUmVmLCBWVFZpZGVvRGVjb2RlclNlc3Npb24sIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZik7Cit0eXBlZGVmIE9TU3RhdHVzICgqVlRWaWRlb0RlY29kZXJGdW5j
dGlvbl9EZWNvZGVGcmFtZSkoVlRWaWRlb0RlY29kZXJSZWYsIFZUVmlkZW9EZWNvZGVyRnJhbWUs
IENNU2FtcGxlQnVmZmVyUmVmLCBWVERlY29kZUZyYW1lRmxhZ3MsIFZURGVjb2RlSW5mb0ZsYWdz
Kik7Cit0eXBlZGVmIE9TU3RhdHVzICgqVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQpKCk7CisK
K2VudW0geworICAgIGtWVFZpZGVvRGVjb2Rlcl9DbGFzc1ZlcnNpb25fMSA9IDEsCisgICAga1ZU
VmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8yID0gMiwKKyAgICBrVlRWaWRlb0RlY29kZXJfQ2xh
c3NWZXJzaW9uXzMgPSAzLAorfTsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIENNQmFzZUNsYXNz
VmVyc2lvbiB2ZXJzaW9uOworCisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9TdGFydFNlc3Np
b24gc3RhcnRTZXNzaW9uOworICAgIFZUVmlkZW9EZWNvZGVyRnVuY3Rpb25fRGVjb2RlRnJhbWUg
ZGVjb2RlRnJhbWU7CisgICAgCisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgY29weVN1
cHBvcnRlZFByb3BlcnR5RGljdGlvbmFyeTsKKyAgICBWVFZpZGVvRGVjb2RlckZ1bmN0aW9uX1RC
RCBzZXRQcm9wZXJ0aWVzOworCisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgY29weVNl
cmlhbGl6YWJsZVByb3BlcnRpZXM7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgY2Fu
QWNjZXB0Rm9ybWF0RGVzY3JpcHRpb247CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQg
ZmluaXNoRGVsYXllZEZyYW1lczsKKyAgICBWVFZpZGVvRGVjb2RlckZ1bmN0aW9uX1RCRCByZXNl
cnZlZDc7CisgICAgVlRWaWRlb0RlY29kZXJGdW5jdGlvbl9UQkQgcmVzZXJ2ZWQ4OworICAgIFZU
VmlkZW9EZWNvZGVyRnVuY3Rpb25fVEJEIHJlc2VydmVkOTsKK30gVlRWaWRlb0RlY29kZXJDbGFz
czsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIENNQmFzZVZUYWJsZSBiYXNlOworICAgIGNvbnN0
IFZUVmlkZW9EZWNvZGVyQ2xhc3MgKnZpZGVvRGVjb2RlckNsYXNzOworfSBWVFZpZGVvRGVjb2Rl
clZUYWJsZTsKKworVlRfRVhQT1JUIENNQmFzZUNsYXNzSUQgVlRWaWRlb0RlY29kZXJHZXRDbGFz
c0lEKHZvaWQpOworVlRfRVhQT1JUIENWUGl4ZWxCdWZmZXJQb29sUmVmIFZURGVjb2RlclNlc3Np
b25HZXRQaXhlbEJ1ZmZlclBvb2woVlRWaWRlb0RlY29kZXJTZXNzaW9uIHNlc3Npb24gKTsKK1ZU
X0VYUE9SVCBPU1N0YXR1cyBWVERlY29kZXJTZXNzaW9uU2V0UGl4ZWxCdWZmZXJBdHRyaWJ1dGVz
KFZUVmlkZW9EZWNvZGVyU2Vzc2lvbiBzZXNzaW9uLCBDRkRpY3Rpb25hcnlSZWYgZGVjb21wcmVz
c29yUGl4ZWxCdWZmZXJBdHRyaWJ1dGVzKTsKK1ZUX0VYUE9SVCBPU1N0YXR1cyBWVERlY29kZXJT
ZXNzaW9uRW1pdERlY29kZWRGcmFtZShWVFZpZGVvRGVjb2RlclNlc3Npb24gc2Vzc2lvbiwgVlRW
aWRlb0RlY29kZXJGcmFtZSBmcmFtZSwgT1NTdGF0dXMgc3RhdHVzLCBWVERlY29kZUluZm9GbGFn
cyBpbmZvRmxhZ3MsIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIpOworVlRfRVhQT1JUIE9T
U3RhdHVzIFZUUmVnaXN0ZXJWaWRlb0RlY29kZXIoRmlnVmlkZW9Db2RlY1R5cGUsIFZUVmlkZW9E
ZWNvZGVyRnVuY3Rpb25fQ3JlYXRlSW5zdGFuY2UpOworCisjcHJhZ21hIHBhY2socG9wKQorCisj
aWZkZWYgX19jcGx1c3BsdXMKK30gLy8gZXh0ZXJuICJDIgorI2VuZGlmCisKKyNlbmRpZiAvLyBf
X2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5oPikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQppbmRleCBkMDVkMDYyMjQ5
YzZhYWU1MWM5YTYwMTU4ZjMxMmVjMzcyZGFmMzVjLi4yODdlMTk2ZjAxYjhkNTBhZDMwMGNhNjU2
NGE4ZDRjZDBhMTEyNWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVy
Lm1tCkBAIC0xNjcsOSArMTY3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVt
b3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMKICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29kZXI+KGlkZW50aWZpZXIpOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJL
aXREZWNvZGVyRmFjdG9yeShXZWJLaXRIMjY1IHN1cHBvcnRzSDI2NSwgV2ViS2l0VlA5IHN1cHBv
cnRzVlA5KQorc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3Jl
YXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0SDI2NSBzdXBwb3J0c0gyNjUsIFdlYktpdFZQ
OSBzdXBwb3J0c1ZQOSwgV2ViS2l0VlA5VlRCIHN1cHBvcnRzVlA5VlRCKQogewotICAgIGF1dG8g
aW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0Rl
ZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IHN1cHBvcnRzSDI2
NSA9PSBXZWJLaXRIMjY1OjpPbiB2cDk6IHN1cHBvcnRzVlA5ID09IFdlYktpdFZQOTo6T25dKTsK
KyAgICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3Rv
cnkoW1tSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdpdGhIMjY1OiBz
dXBwb3J0c0gyNjUgPT0gV2ViS2l0SDI2NTo6T24gdnA5OiBzdXBwb3J0c1ZQOSA9PSBXZWJLaXRW
UDk6Ok9uIHZwOVZUQjogc3VwcG9ydHNWUDlWVEIgPT0gV2ViS2l0VlA5VlRCOjpPbl0pOwogICAg
IGlmICh2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKICAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeT4oc3RkOjptb3Zl
KGludGVybmFsRmFjdG9yeSkpOwogICAgIHJldHVybiBpbnRlcm5hbEZhY3Rvcnk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdFV0aWxpdGllcy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAppbmRleCA1MDljZGY1NDUzZTMyMjQw
ZTFiMTg0MmZiYWU0NTFhNjRlNjdmZDM0Li4wN2Q1Y2UzNzRiZjYyODBiYmM3YTJjZTRlMGUwMDI5
MWIyYmJiZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgK
QEAgLTQyLDkgKzQyLDEwIEBAIGNsYXNzIFZpZGVvRnJhbWU7CiAKIGVudW0gY2xhc3MgV2ViS2l0
SDI2NSB7IE9mZiwgT24gfTsKIGVudW0gY2xhc3MgV2ViS2l0VlA5IHsgT2ZmLCBPbiB9OworZW51
bSBjbGFzcyBXZWJLaXRWUDlWVEIgeyBPZmYsIE9uIH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktp
dEgyNjUsIFdlYktpdFZQOSk7Ci1zdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJG
YWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRIMjY1LCBXZWJLaXRWUDkp
Oworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2Vi
S2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0SDI2NSwgV2ViS2l0VlA5LCBXZWJLaXRWUDlWVEIpOwog
CiB2b2lkIHNldEFwcGxpY2F0aW9uU3RhdHVzKGJvb2wgaXNBY3RpdmUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFZQOURlY29kZXIuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRWUDlEZWNvZGVyLmNwcAppbmRleCAxMTQ4NTgwNjdjNGEx
YmY1ZTYwMGZhZTY5NWEzN2YwZDk2NzdkYWNhLi5lMmQ3NTQyNTczYTBkMDBlMDEzNjRkNjZhMmQz
ZTI2NDZjMWUxMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFZQOURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VlA5RGVj
b2Rlci5jcHAKQEAgLTI1LDE2ICsyNSwxNSBAQAogCiAjaW5jbHVkZSAiV2ViS2l0VlA5RGVjb2Rl
ci5oIgogCi0jaWYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVG
b3VuZGF0aW9uL0NGUHJpdi5oPikKLQogI2luY2x1ZGUgIldlYktpdFV0aWxpdGllcy5oIgotI2lu
Y2x1ZGUgPENvcmVNZWRpYS9DTUJhc2VPYmplY3QuaD4KLSNpbmNsdWRlIDxWaWRlb1Rvb2xib3gv
VlRWaWRlb0RlY29kZXIuaD4KLSNpbmNsdWRlIDxWaWRlb1Rvb2xib3gvVlRWaWRlb0RlY29kZXJS
ZWdpc3RyYXRpb24uaD4KKyNpbmNsdWRlIDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CiAj
aW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS92cDlfaW1wbC5oIgogI2lu
Y2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKICNpbmNsdWRlICJzeXN0ZW1fd3JhcHBlcnMvaW5j
bHVkZS9jcHVfaW5mby5oIgogCisjaW5jbHVkZSAiQ01CYXNlT2JqZWN0U1BJLmgiCisjaW5jbHVk
ZSAiVlRWaWRlb0RlY29kZXJTUEkuaCIKKwogbmFtZXNwYWNlIHdlYnJ0YyB7CiAKIHN0YXRpYyBP
U1N0YXR1cyBjcmVhdGVXZWJLaXRWUDlEZWNvZGVyKEZpZ1ZpZGVvQ29kZWNUeXBlLCBDRkFsbG9j
YXRvclJlZiBhbGxvY2F0b3IsIFZUVmlkZW9EZWNvZGVyUmVmKik7CkBAIC04NSwxNSArODQsMTcg
QEAgc3RhdGljIGNvbnN0IENNQmFzZUNsYXNzIFdlYktpdFZQOURlY29kZXJfQmFzZUNsYXNzID0K
ICAgICBmaW5hbGl6ZVZQOURlY29kZXIsCiAgICAgY29weVZQOURlY29kZXJEZWJ1Z0Rlc2NyaXB0
aW9uLAogICAgIG51bGxwdHIsIC8vIENvcHlQcm9wZXJ0eQotICAgIG51bGxwdHIgLy8gU2V0UHJv
cGVydHkKKyAgICBudWxscHRyLCAvLyBTZXRQcm9wZXJ0eQorICAgIG51bGxwdHIsCisgICAgbnVs
bHB0cgogfTsKIAogc3RhdGljIE9TU3RhdHVzIHN0YXJ0VlA5RGVjb2RlclNlc3Npb24oVlRWaWRl
b0RlY29kZXJSZWYsIFZUVmlkZW9EZWNvZGVyU2Vzc2lvbiwgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmKTsKIHN0YXRpYyBPU1N0YXR1cyBkZWNvZGVWUDlEZWNvZGVyRnJhbWUoVlRWaWRlb0Rl
Y29kZXJSZWYsIFZUVmlkZW9EZWNvZGVyRnJhbWUsIENNU2FtcGxlQnVmZmVyUmVmLCBWVERlY29k
ZUZyYW1lRmxhZ3MsIFZURGVjb2RlSW5mb0ZsYWdzKik7CiAKLXN0YXRpYyBjb25zdCBWVFZpZGVv
RGVjb2RlckNsYXNzIFdlYktpdFZQOURlY29kZXJfVmlkZW9FbmNvZGVyQ2xhc3MgPQorc3RhdGlj
IGNvbnN0IFZUVmlkZW9EZWNvZGVyQ2xhc3MgV2ViS2l0VlA5RGVjb2Rlcl9WaWRlb0RlY29kZXJD
bGFzcyA9CiB7Ci0gICAga1ZUVmlkZW9EZWNvZGVyX0NsYXNzVmVyc2lvbl8zLAorICAgIGtWVFZp
ZGVvRGVjb2Rlcl9DbGFzc1ZlcnNpb25fMSwKICAgICBzdGFydFZQOURlY29kZXJTZXNzaW9uLAog
ICAgIGRlY29kZVZQOURlY29kZXJGcmFtZSwKICAgICBudWxscHRyLCAvLyBWVFZpZGVvRGVjb2Rl
ckZ1bmN0aW9uX0NvcHlTdXBwb3J0ZWRQcm9wZXJ0eURpY3Rpb25hcnksCkBAIC0xMDksNyArMTEw
LDcgQEAgc3RhdGljIGNvbnN0IFZUVmlkZW9EZWNvZGVyQ2xhc3MgV2ViS2l0VlA5RGVjb2Rlcl9W
aWRlb0VuY29kZXJDbGFzcyA9CiBzdGF0aWMgY29uc3QgVlRWaWRlb0RlY29kZXJWVGFibGUgV2Vi
S2l0VlA5RGVjb2RlclZUYWJsZSA9CiB7CiAgICAgeyBudWxscHRyLCAmV2ViS2l0VlA5RGVjb2Rl
cl9CYXNlQ2xhc3MgfSwKLSAgICAmV2ViS2l0VlA5RGVjb2Rlcl9WaWRlb0VuY29kZXJDbGFzcwor
ICAgICZXZWJLaXRWUDlEZWNvZGVyX1ZpZGVvRGVjb2RlckNsYXNzCiB9OwogCiBPU1N0YXR1cyBj
cmVhdGVXZWJLaXRWUDlEZWNvZGVyKEZpZ1ZpZGVvQ29kZWNUeXBlLCBDRkFsbG9jYXRvclJlZiBh
bGxvY2F0b3IsIFZUVmlkZW9EZWNvZGVyUmVmKiBkZWNvZGVyT3V0KQpAQCAtMzg3LDE0ICszODgs
MyBAQCB2b2lkIFdlYktpdFZQOURlY29kZXJSZWNlaXZlcjo6RGVjb2RlZChWaWRlb0ZyYW1lJiBm
cmFtZSwgYWJzbDo6b3B0aW9uYWw8aW50MzJfdAogfQogCiB9Ci0KLSNlbHNlIC8vIGRlZmluZWQg
X19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4p
Ci0KLW5hbWVzcGFjZSB3ZWJydGMgewotCi12b2lkIHJlZ2lzdGVyV2ViS2l0VlA5RGVjb2Rlcigp
Ci17Ci19Ci0KLX0KLSNlbmRpZiAvLyBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5j
bHVkZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3ZpZGVvX2NvZGVjL1JU
Q1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9fY29kZWMvUlRDV3JhcHBlZE5hdGl2
ZVZpZGVvRGVjb2Rlci5tbQppbmRleCBkY2U0NzljODkwOTExM2Y5MWFiYTY3N2FlMmY3MzBmMjJh
NmU3NGIwLi4yYjRhY2I5MWI0NWM2MTJhOTA1MDlmZjg4YTdlMWE5Y2ExZjgxNTRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9h
cGkvdmlkZW9fY29kZWMvUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvdmlkZW9f
Y29kZWMvUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbQpAQCAtNTQsNyArNTQsOSBAQAog
fQogCiAtIChOU1N0cmluZyAqKWltcGxlbWVudGF0aW9uTmFtZSB7CisjaWYgIWRlZmluZWQoV0VC
UlRDX1dFQktJVF9CVUlMRCkKICAgUlRDX05PVFJFQUNIRUQoKTsKKyNlbmRpZgogICByZXR1cm4g
bmlsOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5LmgKaW5kZXggZTI4MjBiMjMwMDllOWRjZWRkMTQ0NzlmMWE1ZjA5MGE1NjFkNDJiMi4u
MjRhMWQ2M2NmNzM1NmMzYTcxZGM5MmVlNTZlNzA4YTM1MWUwNDNlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaApAQCAtMjEsNyArMjEs
NyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogUlRDX09CSkNfRVhQT1JUCiBfX2F0dHJpYnV0
ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnki
KSkpCiBAaW50ZXJmYWNlIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IDogTlNPYmplY3Qg
PFJUQ1ZpZGVvRGVjb2RlckZhY3Rvcnk+Ci0tIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9y
dEgyNjUgdnA5Oihib29sKXN1cHBvcnRzVlA5OworLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1
cHBvcnRIMjY1IHZwOTooYm9vbClzdXBwb3J0c1ZQOSB2cDlWVEI6KGJvb2wpc3VwcG9ydHNWUDlW
VEI7CiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCmluZGV4IGU1ZjRhMjA0N2FkNTk2NmMw
M2RiMTY1NzBkMTIzOWU2NTdmM2I4YTcuLmUwNDIyY2Y1MDA2NDdlZmNkODcyMjg1NjEwY2QwMjNh
NmY0YWYwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkubQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5Lm0KQEAgLTE3LDIzICsxNywzMCBAQAogI2ltcG9ydCAiYmFzZS9SVENWaWRlb0Nv
ZGVjSW5mby5oIgogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAjaW1wb3J0ICJhcGkvdmlk
ZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlA5LmgiCisjaW1wb3J0ICJSVENWaWRlb0RlY29kZXJW
VEJWUDkuaCIKICNlbmRpZgogI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxFX0gyNjUpCiAjaW1wb3J0
ICJSVENIMjY1UHJvZmlsZUxldmVsSWQuaCIKICNpbXBvcnQgIlJUQ1ZpZGVvRGVjb2RlckgyNjUu
aCIKICNlbmRpZgogCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKIEBp
bXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSB7CiAgIGJvb2wgX3N1
cHBvcnRzSDI2NTsKICAgYm9vbCBfc3VwcG9ydHNWUDk7CisgIGJvb2wgX3N1cHBvcnRzVlA5VlRC
OwogfQogCi0tIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydHNIMjY1IHZwOTooYm9vbClz
dXBwb3J0c1ZQOQorLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRzSDI2NSB2cDk6KGJv
b2wpc3VwcG9ydHNWUDkgdnA5VlRCOihib29sKXN1cHBvcnRzVlA5VlRCCiB7CiAgIHNlbGYgPSBb
c3VwZXIgaW5pdF07CiAgIGlmIChzZWxmKSB7CiAgICAgICBfc3VwcG9ydHNIMjY1ID0gc3VwcG9y
dHNIMjY1OwogICAgICAgX3N1cHBvcnRzVlA5ID0gc3VwcG9ydHNWUDk7CisgICAgICAvLyBVc2Ug
a0NNVmlkZW9Db2RlY1R5cGVfVlA5IG9uY2UgYWRkZWQgdG8gQ01Gb3JtYXREZXNjcmlwdGlvbi5o
CisgICAgICBfc3VwcG9ydHNWUDlWVEIgPSBzdXBwb3J0c1ZQOSAmJiAoc3VwcG9ydHNWUDlWVEIg
fHwgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKCd2cDA5JykpOworOwogICB9CiAgIHJldHVy
biBzZWxmOwogfQpAQCAtOTEsNyArOTgsMTEgQEAgLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1
cHBvcnRzSDI2NSB2cDk6KGJvb2wpc3VwcG9ydHNWUDkKICNlbmRpZgogI2lmIGRlZmluZWQoUlRD
X0VOQUJMRV9WUDkpCiAgIH0gZWxzZSBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6a1JU
Q1ZpZGVvQ29kZWNWcDlOYW1lXSkgewotICAgIHJldHVybiBbUlRDVmlkZW9EZWNvZGVyVlA5IHZw
OURlY29kZXJdOworICAgICAgaWYgKF9zdXBwb3J0c1ZQOVZUQikgeworICAgICAgICByZXR1cm4g
W1tSVENWaWRlb0RlY29kZXJWVEJWUDkgYWxsb2NdIGluaXRdOworICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDkgdnA5RGVjb2Rlcl07CisgICAgICB9CiAj
ZW5kaWYKICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
clZUQlZQOS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NjEwMzJjNmQyMTJjNDI0OGJiNTMyOTkwYzQwNDM2ZDM3Y2U0NDg1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJWVEJWUDkuaApAQCAt
MCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyLmgi
CisKK1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldL
X1JUQ1ZpZGVvRGVjb2RlclZUQlZQOSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVyVlRC
VlA5IDogTlNPYmplY3QgPFJUQ1ZpZGVvRGVjb2Rlcj4KKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRh
Oihjb25zdCB1aW50OF90ICopZGF0YQorICAgIHNpemU6KHNpemVfdClzaXplCisgICAgdGltZVN0
YW1wOih1aW50MzJfdCl0aW1lU3RhbXA7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlclZUQlZQOS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9E
ZWNvZGVyVlRCVlA5Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliY2MzYjY4MjE2M2VmZTE1NWE4M2U4OWM0YjNh
MDE1ODkwN2ZiNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVv
RGVjb2RlclZUQlZQOS5tbQpAQCAtMCwwICsxLDMyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisvKgor
ICogVlA5IGRlY29kaW5nIHRocm91Z2ggVlRCLCBoaWdobHkgYmFzZWQgb24gUlRDVmlkZW9EZWNv
ZGVySDI2NC5tbQorICovCisKKyNpbXBvcnQgIlJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5oIgorCisj
aWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKKworI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZpZGVv
VG9vbGJveC5oPgorCisjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWUuaCIKKyNpbXBvcnQgImJh
c2UvUlRDVmlkZW9GcmFtZUJ1ZmZlci5oIgorI2ltcG9ydCAiY29tcG9uZW50cy92aWRlb19mcmFt
ZV9idWZmZXIvUlRDQ1ZQaXhlbEJ1ZmZlci5oIgorI2ltcG9ydCAiaGVscGVycy5oIgorI2ltcG9y
dCAiaGVscGVycy9zY29wZWRfY2Z0eXBlcmVmLmgiCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVv
X2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Vycm9yX2NvZGVzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2Uv
Y2hlY2tzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorI2luY2x1ZGUgInJ0Y19i
YXNlL3RpbWVfdXRpbHMuaCIKKworLy8gU3RydWN0IHRoYXQgd2UgcGFzcyB0byB0aGUgZGVjb2Rl
ciBwZXIgZnJhbWUgdG8gZGVjb2RlLiBXZSByZWNlaXZlIGl0IGFnYWluCisvLyBpbiB0aGUgZGVj
b2RlciBjYWxsYmFjay4KK3N0cnVjdCBSVENGcmFtZURlY29kZVBhcmFtcyB7CisgIFJUQ0ZyYW1l
RGVjb2RlUGFyYW1zKFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNiLCBpbnQ2NF90IHRzKSA6IGNh
bGxiYWNrKGNiKSwgdGltZXN0YW1wKHRzKSB7fQorICBSVENWaWRlb0RlY29kZXJDYWxsYmFjayBj
YWxsYmFjazsKKyAgaW50NjRfdCB0aW1lc3RhbXA7Cit9OworCitAaW50ZXJmYWNlIFJUQ1ZpZGVv
RGVjb2RlclZUQlZQOSAoKQorLSAodm9pZClzZXRFcnJvcjooT1NTdGF0dXMpZXJyb3I7CitAZW5k
CisKK0NNU2FtcGxlQnVmZmVyUmVmIFZQOUJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWlu
dDhfdCogYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZl
cl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIHZpZGVvX2Zvcm1hdCkgeworICBDTUJsb2NrQnVmZmVyUmVmIG5ld19ibG9ja19i
dWZmZXI7CisgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jayhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBidWZmZXJfc2l6ZSwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgTlVMTCwgMCwgYnVmZmVyX3NpemUsIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5
Tm93RmxhZywgJm5ld19ibG9ja19idWZmZXIpKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg
IlZQOUJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIgQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlC
bG9jayBmYWlsZWQgd2l0aDogIiA8PCBlcnJvcjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQor
ICBhdXRvIGJsb2NrX2J1ZmZlciA9IHJ0Yzo6U2NvcGVkQ0YobmV3X2Jsb2NrX2J1ZmZlcik7CisK
KyAgaWYgKGF1dG8gZXJyb3IgPSBDTUJsb2NrQnVmZmVyUmVwbGFjZURhdGFCeXRlcyhidWZmZXIs
IGJsb2NrX2J1ZmZlci5nZXQoKSwgMCwgYnVmZmVyX3NpemUpKSB7CisgICAgUlRDX0xPRyhMU19F
UlJPUikgPDwgIlZQOUJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIgQ01CbG9ja0J1ZmZlclJlcGxhY2VE
YXRhQnl0ZXMgZmFpbGVkIHdpdGg6ICIgPDwgZXJyb3I7CisgICAgcmV0dXJuIG51bGxwdHI7Cisg
IH0KKworICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVfYnVmZmVyID0gbnVsbHB0cjsKKyAgaWYg
KGF1dG8gZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBi
bG9ja19idWZmZXIuZ2V0KCksIHRydWUsIG51bGxwdHIsIG51bGxwdHIsIHZpZGVvX2Zvcm1hdCwg
MSwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgJnNhbXBsZV9idWZmZXIpKSB7CisgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIlZQOUJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIgQ01TYW1wbGVCdWZmZXJD
cmVhdGUgZmFpbGVkIHdpdGg6ICIgPDwgZXJyb3I7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0K
KyAgcmV0dXJuIHNhbXBsZV9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1
bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0
ZS4KK3ZvaWQgdnA5RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQgKmRlY29kZXJSZWYs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwYXJhbXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBWVERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDVkltYWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVu
aXF1ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVEZWNvZGVQYXJhbXMgKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOSAqZGVjb2RlciA9IChf
X2JyaWRnZSBSVENWaWRlb0RlY29kZXJWVEJWUDkgKilkZWNvZGVyUmVmOworICAgIFtkZWNvZGVy
IHNldEVycm9yOnN0YXR1c107CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBk
ZWNvZGUgZnJhbWUuIFN0YXR1czogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIFJU
Q0NWUGl4ZWxCdWZmZXIgKmZyYW1lQnVmZmVyID0gW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBp
bml0V2l0aFBpeGVsQnVmZmVyOmltYWdlQnVmZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSAqZGVjb2Rl
ZEZyYW1lID0KKyAgICAgIFtbUlRDVmlkZW9GcmFtZSBhbGxvY10gaW5pdFdpdGhCdWZmZXI6ZnJh
bWVCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246UlRD
VmlkZW9Sb3RhdGlvbl8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTdGFt
cE5zOkNNVGltZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2Vj
XTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOwor
ICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIu
CitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVyVlRCVlA5IHsKKyAgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIF92aWRlb0Zvcm1hdDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJl
ZiBfZGVjb21wcmVzc2lvblNlc3Npb247CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxs
YmFjazsKKyAgT1NTdGF0dXMgX2Vycm9yOworICBpbnQzMl90IF93aWR0aDsKKyAgaW50MzJfdCBf
aGVpZ2h0OworfQorCistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0cm95RGVjb21wcmVz
c2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsKK30KKworLSAo
TlNJbnRlZ2VyKXN0YXJ0RGVjb2RlV2l0aE51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVz
IHsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAoTlNJbnRlZ2VyKWRl
Y29kZTooUlRDRW5jb2RlZEltYWdlICopaW5wdXRJbWFnZQorICAgICAgICBtaXNzaW5nRnJhbWVz
OihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICBjb2RlY1NwZWNpZmljSW5mbzoobnVsbGFibGUgaWQ8
UlRDQ29kZWNTcGVjaWZpY0luZm8+KWluZm8KKyAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRf
dClyZW5kZXJUaW1lTXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgaWYg
KGlucHV0SW1hZ2UuZnJhbWVUeXBlID09IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAg
ICAgIF93aWR0aCA9IGlucHV0SW1hZ2UuZW5jb2RlZFdpZHRoOworICAgICAgX2hlaWdodCA9IGlu
cHV0SW1hZ2UuZW5jb2RlZEhlaWdodDsKKyAgfQorICByZXR1cm4gW3NlbGYgZGVjb2RlRGF0YTog
KHVpbnQ4X3QgKilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcyBzaXplOiBpbnB1dEltYWdlLmJ1ZmZl
ci5sZW5ndGggdGltZVN0YW1wOiBpbnB1dEltYWdlLnRpbWVTdGFtcF07Cit9CisKKy0gKE5TSW50
ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0YQorICAgICAgICBzaXplOihzaXpl
X3Qpc2l6ZQorICAgICAgICB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcCB7CisKKyAgaWYg
KF9lcnJvciAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJh
bWUgZGVjb2RlIGZhaWxlZC4iOworICAgIF9lcnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25S
ZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOworICAvLyBVc2Uga0NNVmlkZW9Db2RlY1R5
cGVfVlA5IG9uY2UgYWRkZWQgdG8gQ01Gb3JtYXREZXNjcmlwdGlvbi5oCisgIGlmIChub0VyciAh
PSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgJ3Zw
MDknLCBfd2lkdGgsIF9oZWlnaHQsIG51bGxwdHIsICZmb3JtYXREZXNjcmlwdGlvbikpCisgICAg
cmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKworICBydGM6OlNjb3BlZENGVHlwZVJl
ZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWY+IGlucHV0Rm9ybWF0ID0gcnRjOjpTY29wZWRD
Rihmb3JtYXREZXNjcmlwdGlvbik7CisgIGlmIChpbnB1dEZvcm1hdCkgeworICAgIC8vIENoZWNr
IGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2Rl
ciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChp
bnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9G
b3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNl
c3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYg
KHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0sp
IHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAg
IH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZl
ZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4n
dAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dy
b3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVm
b3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBh
bgorICAgIC8vIGVycm9yLgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk1pc3Npbmcgdmlk
ZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VC
UlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIGF1dG8gc2FtcGxlQnVmZmVyID0gcnRjOjpT
Y29wZWRDRihWUDlCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGRhdGEsIHNpemUsIF92aWRlb0Zvcm1h
dCkpOworICBpZiAoIXNhbXBsZUJ1ZmZlcikgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CisgIH0KKworICBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3MgPSBrVlRE
ZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1
ZV9wdHI8UlRDRnJhbWVEZWNvZGVQYXJhbXM+IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURl
Y29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1l
U3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29k
ZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIuZ2V0KCks
IGRlY29kZUZsYWdzLCBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lm
IGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8gUmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3
ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBv
ciBkZWNvZGVyIG1hbGZ1bmN0aW9ucyBhbmQgcmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBp
ZiAoKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vzc2lvbkVyciB8fCBzdGF0dXMgPT0ga1ZUVmlkZW9E
ZWNvZGVyTWFsZnVuY3Rpb25FcnIpICYmCisgICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25T
ZXNzaW9uXSA9PSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICBSVENfTE9HKExTX0lORk8p
IDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXMKKyAgICAg
ICAgICAgICAgICAgICAgIDw8ICIgcmV0cnlpbmcgZGVjb2RlIGFmdGVyIGRlY29tcHJlc3Npb24g
c2Vzc2lvbiByZXNldCI7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1l
RGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgdGltZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNv
bXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Np
b24sIHNhbXBsZUJ1ZmZlci5nZXQoKSwgZGVjb2RlRmxhZ3MsIGZyYW1lRGVjb2RlUGFyYW1zLnJl
bGVhc2UoKSwgbnVsbHB0cik7CisgIH0KKyNlbmRpZgorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7
CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBj
b2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwor
ICB9CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2Fs
bGJhY2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0g
Y2FsbGJhY2s7Cit9CisKKy0gKHZvaWQpc2V0RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKKyAgX2Vy
cm9yID0gZXJyb3I7Cit9CisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5l
ZWQgdG8gaW52YWxpZGF0ZSB0aGUgc2Vzc2lvbiBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIg
b2NjdXIgYW5kIGl0CisgIC8vIGlzIHNhZmUgdG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBb
c2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1h
dDpudWxscHRyXTsKKyAgX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19PSzsKK30KKworI3ByYWdtYSBtYXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXRE
ZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lv
bl07CisKKyAgLy8gTmVlZCB0byB3YWl0IGZvciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUg
ZGVjb2Rlci4KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVP
X0NPREVDX09LOworICB9CisKKyAgLy8gU2V0IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNl
IGNvbXBhdGliaWx0eSwgd2hpY2ggbWFrZXMgdGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVs
IGJ1ZmZlcnMgd2l0aCBHUFUgYmFja2VkIG1lbW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBh
c3MKKyAgLy8gdGhlIHBpeGVsIGJ1ZmZlcnMgZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJl
IHVwbG9hZCBsYXRlciBkdXJpbmcKKyAgLy8gcmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBt
b290IGJlY2F1c2Ugd2UgYXJlIGNvbnZlcnRpbmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1l
IGFmdGVyIGRlY29kZSwgYnV0IGV2ZW50dWFsbHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisg
IC8vIENWUGl4ZWxCdWZmZXJzIGRpcmVjdGx5IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0
a2NoaW4pOiBNYXliZSBvbmx5IHNldCBPcGVuR0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0
aGF0IHRoYXQKKyAgLy8gd2UgY2FuIHBhc3MgQ1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRs
ZXMgaW4gZGVjb2RlciBvdXRwdXQuCisgIHN0YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1Np
emUgPSAzOworICBDRlR5cGVSZWYga2V5c1thdHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5l
ZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5
LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFDKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29t
cGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAgIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVy
dGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBD
RkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFsdWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51
bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRU
eXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3Jt
YXQgPSBDRk51bWJlckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBl
KTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUs
IGlvU3VyZmFjZVZhbHVlLCBwaXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1
dGVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXpl
KTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVl
KTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0
KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxw
dHI7CisgIH0KKyAgVlREZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0g
eworICAgICAgdnA5RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrLCAoX19icmlkZ2Ugdm9pZCAq
KXNlbGYsCisgIH07CisgIE9TU3RhdHVzIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25D
cmVhdGUoCisgICAgICBudWxscHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMs
ICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRl
cyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIGNyZWF0ZSBkZWNvbXByZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAg
IFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBbc2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vz
c2lvbl07CisKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZClj
b25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Np
b25TZXNzaW9uKTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIFZUU2Vzc2lvblNldFByb3Bl
cnR5KF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwga1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1Jl
YWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVj
b21wcmVzc2lvblNlc3Npb24geworICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYg
ZGVmaW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25X
YWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQor
I2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVy
XSkgeworICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFt
ZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZU
RGVjb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7Cisg
ICAgQ0ZSZWxlYXNlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25T
ZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZp
ZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYpdmlkZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0
ID09IHZpZGVvRm9ybWF0KSB7CisgICAgcmV0dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQp
IHsKKyAgICBDRlJlbGVhc2UoX3ZpZGVvRm9ybWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2
aWRlb0Zvcm1hdDsKKyAgaWYgKF92aWRlb0Zvcm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zv
cm1hdCk7CisgIH0KK30KKworLSAoTlNTdHJpbmcgKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICBy
ZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBkZWZpbmVkKFJU
Q19FTkFCTEVfVlA5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9y
eS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KaW5kZXggMmNhNmQwZWE2
OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUyNWJkOC4uMWNmOTQ5ZGMxN2EzYmMwNzdlZGU0Mjhh
Yzg3ZmRkOGRiYjFjZmYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFj
dG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xMDAs
NyArMTAwLDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29k
ZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoCiAgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJv
bCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCiAgICAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4K
ICAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlk
ZW9EZWNvZGVyIGNsYXNzXV0pIHsKLSAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgi
XSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkgeworI2lmICFkZWZpbmVkKFdFQlJUQ19X
RUJLSVRfQlVJTEQpCisgICAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkgeworI2Vsc2UKKyAgICAgICAgaWYgKCFbZGVjb2Rl
ci5pbXBsZW1lbnRhdGlvbk5hbWUgaXNFcXVhbDpAIlZpZGVvVG9vbGJveCJdKSB7CisjZW5kaWYK
ICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIg
cmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBz
dGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVjb2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVj
b2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0
Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRlNGE1MzgxZjg3MDBk
NGJlM2MxM2UzMDAyMzIyMjdiYmM2YzEwODAuLjdiZjBkNTdkNDQ4MTVlYjZiODFmN2VjYjYxOWMz
MzAxZDgxY2ZmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3
ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5
LDkgQEAKIAkJNDEyOTlCOTIyMTI3MzY3QjAwQjM0MTRCIC8qIGlzYWNfdmFkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5OUI4RjIxMjczNjdCMDBC
MzQxNEIgLyogaXNhY192YWQuaCAqLzsgfTsKIAkJNDEyOTlCOTMyMTI3MzY3QjAwQjM0MTRCIC8q
IHBpdGNoX2ZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEyOTlCOTAyMTI3MzY3QjAwQjM0MTRCIC8qIHBpdGNoX2ZpbHRlci5oICovOyB9Owog
CQk0MTI5OUI5NzIxMjczNjkxMDBCMzQxNEIgLyogZmFrZV9uZXR3b3JrX3BpcGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjk5Qjk1MjEyNzM2OTEw
MEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlwZS5oICovOyB9OworCQk0MTJGRjkzNDI1MzlCNzY0
MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJU
Q1ZpZGVvRGVjb2RlclZUQlZQOS5tbSAqLzsgfTsKKwkJNDEyRkY5MzcyNTNEOEYwQTAwMURGMDM2
IC8qIFZUVmlkZW9EZWNvZGVyU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTJGRjkzNTI1M0Q4RjBBMDAxREYwMzYgLyogVlRWaWRlb0RlY29kZXJT
UEkuaCAqLzsgfTsKKwkJNDEyRkY5MzgyNTNEOEYwQTAwMURGMDM2IC8qIENNQmFzZU9iamVjdFNQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyRkY5
MzYyNTNEOEYwQTAwMURGMDM2IC8qIENNQmFzZU9iamVjdFNQSS5oICovOyB9OwogCQk0MTMwOTFG
MzFFRjhDRjkyMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDkxRjExRUY4Q0Y5MTAw
NzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaCAqLzsgfTsKIAkJNDEzMDkxRjQx
RUY4Q0Y5MjAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMwOTFGMjFFRjhDRjkxMDA3
NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYyAqLzsgfTsKIAkJNDEzMDkxRkIx
RUY4Q0ZGODAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDkxRjkxRUY4Q0ZG
MzAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmNjICovOyB9OwpAQCAt
MTQyMiw3ICsxNDI1LDYgQEAKIAkJNDE3OTUzQjgyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVv
RGVjb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTc5NTNCMDIxNjk4MjQwMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFj
dG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUzQjkyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVv
RW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTc5NTNCMTIxNjk4MjQwMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVyRmFj
dG9yeUgyNjQubSAqLzsgfTsKIAkJNDE3OTUzQkEyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMjIxNjk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLzsgfTsKLQkJNDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZC
IC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyogUlRD
RGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCAqLzsgfTsKIAkJNDE3OTUzQkMyMTY5ODI0QjAw
MjgyNjZCIC8qIGhlbHBlcnMuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTE1MjFEMzIxNjk4MjFGMDAwQUJBRjcgLyogaGVscGVycy5jYyAqLzsgfTsK
IAkJNDE3OTUzQkQyMTY5ODI0QjAwMjgyNjZCIC8qIGhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjIyNUY1MjE2OTgxRjQwMEE5MUM5QiAv
KiBoZWxwZXJzLmggKi87IH07CiAJCTQxNzk1M0JGMjE2OTgyNEIwMDI4MjY2QiAvKiBuYWx1X3Jl
d3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTE1MjFENTIxNjk4MjIwMDAwQUJBRjcgLyogbmFsdV9yZXdyaXRlci5oICovOyB9OwpAQCAtMjIz
Niw3ICsyMjM4LDYgQEAKIAkJNDFFQ0VBQkMyMDY0MDNDMjAwOUQ1MTQxIC8qIFdlYktpdFV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFF
Q0VBQkIyMDY0MDNDMTAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oICovOyB9OwogCQk0MUVD
RUFCRTIwNjQwNDk4MDA5RDUxNDEgLyogV2ViS2l0VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkQyMDY0MDQ5ODAwOUQ1MTQx
IC8qIFdlYktpdFV0aWxpdGllcy5tbSAqLzsgfTsKIAkJNDFFQ0VBQzEyMDY0MEYyODAwOUQ1MTQx
IC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFFQ0VBQkYyMDY0MEYyNzAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0
cmluZy5oICovOyB9OwotCQk0MUVDRUFGQzIwNjQ2NjY0MDA5RDUxNDEgLyogRW5jb2RlclV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFF
Q0VBRjkyMDY0NjY2MzAwOUQ1MTQxIC8qIEVuY29kZXJVdGlsaXRpZXMuaCAqLzsgfTsKIAkJNDFF
Q0VBRkQyMDY0NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUNFQUZBMjA2NDY2
NjMwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHAgKi87IH07CiAJCTQxRUNF
QUZFMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBRkIyMDY0NjY2NDAw
OUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmggKi87IH07CiAJCTQxRUVENzdDMjE1
MkVEOEUwMDBGMkExNiAvKiBhdmdfbmVvbi5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE5NDc4ODMyMTUyRUQ0MzAwMjc1MjU3IC8qIGF2Z19uZW9uLmMg
Ki87IH07CkBAIC00MzQ1LDYgKzQzNDYsMTAgQEAKIAkJNDEyOTlCOUIyMTI3MzZERTAwQjM0MTRC
IC8qIHBpdGNoX2luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGl0Y2hfaW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTI5OUI5QzIxMjczNkRFMDBCMzQxNEIgLyogcm5uLmNjICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gcm5uLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTI5OUI5RDIxMjczNkRGMDBCMzQxNEIgLyogc3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gc3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzIyNTM5QjNDOTAwMURGMDM2IC8qIFJUQ1ZpZGVvRGVj
b2RlclZUQlZQOS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2RlclZUQlZQ
OS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzMyNTM5QjNDOTAwMURG
MDM2IC8qIFJUQ1ZpZGVvRGVjb2RlclZUQlZQOS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0Rl
Y29kZXJWVEJWUDkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyRkY5MzUyNTNE
OEYwQTAwMURGMDM2IC8qIFZUVmlkZW9EZWNvZGVyU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZUVmlkZW9EZWNvZGVyU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxMkZGOTM2MjUzRDhGMEEwMDFERjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ01CYXNlT2JqZWN0U1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzA5MUYxMUVGOENGOTEwMDc1N0M1NSAvKiBydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0
cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEzMDkxRjIxRUY4Q0Y5MTAwNzU3QzU1IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2Mg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBydHBfdmlkZW9fc3RyZWFtX3Jl
Y2VpdmVyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMwOTFGOTFFRjhDRkYz
MDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3RvcnkuY2MgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBidWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5j
YzsgcGF0aCA9IGF1ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5jYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2OTQsNyArNjY5OSw2IEBACiAJCTQxRUNF
QUJCMjA2NDAzQzEwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxRUNFQUJEMjA2NDA0OTgwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRVdGlsaXRpZXMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUJGMjA2NDBGMjcwMDlENTE0
MSAvKiBOU1N0cmluZytTdGRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gIk5TU3RyaW5nK1N0ZFN0cmluZy5oIjsgcGF0aCA9ICJDb21tb24vTlNTdHJpbmcrU3RkU3Ry
aW5nLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MUVDRUFGOTIwNjQ2NjYzMDA5
RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFbmNvZGVyVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGlu
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUNFQUZCMjA2NDY2NjQwMDlE
NTE0MSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUVFRDc3ODIxNTJFRDgzMDAwRjJBMTYgLyogc2F2ZV9yZWdfbmVvbi5hc20g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmFzbS5hc207IHBhdGggPSBzYXZlX3JlZ19uZW9uLmFzbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMDU2LDYgKzEwMDYwLDggQEAKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBB
OTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLywKIAkJCQk0MTAwOTIwMDI0MkUzQTQz
MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovLAogCQkJCTQxMDA5MjA3MjQyRTNB
NDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICovLAorCQkJCTQxMkZGOTMzMjUz
OUIzQzkwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkuaCAqLywKKwkJCQk0MTJGRjkz
MjI1MzlCM0M5MDAxREYwMzYgLyogUlRDVmlkZW9EZWNvZGVyVlRCVlA5Lm1tICovLAogCQkJCTQx
NjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICov
LAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5
SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29k
ZXJIMjY0LmggKi8sCkBAIC0xMDc1MSw5ICsxMDc1NywxMCBAQAogCQk0MTlDODQ5NjFGRTJGRTlD
MDA0MEMzMEYgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQk0MUVDRUFGOTIwNjQ2NjYzMDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5o
ICovLAorCQkJCTQxMkZGOTM2MjUzRDhGMEEwMDFERjAzNiAvKiBDTUJhc2VPYmplY3RTUEkuaCAq
LywKIAkJCQk0MUVDRUFGQTIwNjQ2NjYzMDA5RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5nU29mdExp
bmsuY3BwICovLAogCQkJCTQxRUNFQUZCMjA2NDY2NjQwMDlENTE0MSAvKiBWaWRlb1Byb2Nlc3Np
bmdTb2Z0TGluay5oICovLAorCQkJCTQxMkZGOTM1MjUzRDhGMEEwMDFERjAzNiAvKiBWVFZpZGVv
RGVjb2RlclNQSS5oICovLAogCQkJCTQxRTg0QkM5MjQzNEM0QTIwMEQzNEU0MSAvKiBXZWJLaXRE
ZWNvZGVyLmggKi8sCiAJCQkJNDFFODRCQ0EyNDM0QzRBMzAwRDM0RTQxIC8qIFdlYktpdERlY29k
ZXIubW0gKi8sCiAJCQkJNDE1ODY0OTYyM0JFMDVFODAwQTBBNjFFIC8qIFdlYktpdEVuY29kZXIu
aCAqLywKQEAgLTE2MDI4LDYgKzE2MDM1LDcgQEAKIAkJCQk1QzA4ODUyQTFFNEE5OUQyMDA0MDM5
OTUgLyogY2lwaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODZBMjFFNDNCOTk0MDA2MjFF
OTIgLyogY2lyY3VsYXJfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzM3MzIzNEI5
NTdEMDAyOEE2MTUgLyogY2xvY2tkcmlmdF9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEyRkY5MzgyNTNEOEYwQTAwMURGMDM2IC8qIENNQmFzZU9iamVjdFNQSS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDFGQ0JCNzYyMUIxRkZBNDAwQTVERjI3IC8qIGNvY29hX3RocmVhZGluZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3QjAxRTQzQkMwNTAwNjIxRTkyIC8qIGNvZGVjLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTQzM0NGMzFGNzlCMzM0MDAzODdCNEQgLyogY29kZWMuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTYxNjgsNyArMTYxNzYsNiBAQAogCQkJCTVDREQ4NUEwMUU0M0I1QzAw
MDYyMUU5MiAvKiBlbmNvZGVyX3J0Y3BfZmVlZGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
ODkzOTNFMjQyQTcwQUUwMDdGREM0MSAvKiBlbmNvZGVyX3NldHRpbmdzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQzI4MzIzNEI4Q0M0MDAyOEE2MTUgLyogZW5jb2Rlcl9zaW11bGNhc3RfcHJv
eHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxRUNFQUZDMjA2NDY2NjQwMDlENTE0MSAvKiBFbmNv
ZGVyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI5OTFFNDNDMkI1MDA2MjFF
OTIgLyogZW5lcmd5X2ludmVyc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QjlCMUU0M0My
QjUwMDYyMUU5MiAvKiBlbmhfdXBzYW1wbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QjlG
MUU0M0MyQjUwMDYyMUU5MiAvKiBlbmhhbmNlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNjcyNiw3
ICsxNjczMyw2IEBACiAJCQkJNDEzRTY3OEEyMTY5ODdCOTAwRUYzN0VEIC8qIFJUQ0NWUGl4ZWxC
dWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDU1MUZFMTk5MUEwMDM3M0U5OSAvKiBS
VENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NzAxRkUxOTkxQTAwMzcz
RTk5IC8qIFJUQ0RhdGFDaGFubmVsQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDE3OTUzQkIyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNDMjIxNjk4MjRCMDAyODI2NkIgLyogUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDUyMUZF
MTk5MUEwMDM3M0U5OSAvKiBSVENEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNB
MjQ1RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRUFHTFZpZGVvVmlldy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNzIwNCw2ICsxNzIxMCw3IEBACiAJCQkJNDEzMUJGQTcyMzRCODhBNjAwMjhBNjE1IC8q
IHZwOV9wcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJGNDFFNDNDMkI1MDA2MjFF
OTIgLyogdnEzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJGNjFFNDNDMkI1MDA2MjFFOTIg
LyogdnE0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTJGRjkzNzI1M0Q4RjBBMDAxREYwMzYgLyog
VlRWaWRlb0RlY29kZXJTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0QzgxMUU0MzFGOUMw
MDI2NTFDOCAvKiB3YXZfZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDODQxRTQzMUY5
QzAwMjY1MUM4IC8qIHdhdl9oZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTYzMjM0
Qjg5RTIwMDI4QTYxNSAvKiB3ZWFrX3B0ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xOTM5OSw2ICsx
OTQwNiw3IEBACiAJCQkJNDFFODRCRDIyNDM3M0MxNDAwRDM0RTQxIC8qIFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyog
UlRDVmlkZW9EZWNvZGVyVlA4Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MDM1RUYyNEFBMEVC
QzAwQkNFOUIyIC8qIFJUQ1ZpZGVvRGVjb2RlclZQOS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQx
MkZGOTM0MjUzOUI3NjQwMDFERjAzNiAvKiBSVENWaWRlb0RlY29kZXJWVEJWUDkubW0gaW4gU291
cmNlcyAqLywKIAkJCQk0MTc5NTNCOTIxNjk4MjQyMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVy
RmFjdG9yeUgyNjQubSBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0NBMjE2OTgyNEIwMDI4MjY2
QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFODRCRDMy
NDM3M0MxQTAwRDM0RTQxIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggZWJjZjcxOTNmNWE1MzI0MjBk
MTRjNzlhOTljYTcyM2E0NmEwZDRhNS4uYzZiMmNiOTgzZWYyN2I0ZDZkMGE4YTE3YjRjN2I5Y2M3
Njk4NzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwOCw4ICsx
MDgsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRIMjY1U3VwcG9ydChib29sIHZhbHVlKSB7
IG1fc3VwcG9ydHNIMjY1ID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFZQOVN1cHBvcnQoYm9vbCB2
YWx1ZSkgeyBtX3N1cHBvcnRzVlA5ID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldFZQOVZUQlN1cHBv
cnQoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzVlA5VlRCID0gdmFsdWU7IH0KICAgICBib29sIGlz
U3VwcG9ydGluZ0gyNjUoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzSDI2NTsgfQogICAgIGJv
b2wgaXNTdXBwb3J0aW5nVlA5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOTsgfQorICAg
IGJvb2wgaXNTdXBwb3J0aW5nVlA5VlRCKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1ZQOVZU
QjsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7
IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgLy8gQ2Fs
bGJhY2sgaXMgZXhlY3V0ZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KQEAgLTE1Myw2ICsxNTUs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9u
cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N1cHBvcnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3N1cHBvcnRzVlA5IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3VwcG9ydHNWUDlWVEIgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVMb2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91
c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggOTIwMWQwZTMyYzM0OGIyZDNlM2IwMDk3YjQ3OTBkNDdj
ZDI5MjhmNC4uY2IxMWY4MWZkM2YxMWVhZjgxODkxOTZiMTQ4N2FlZDA3YzZlNTljYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcApAQCAtNjMsNyArNjMs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJS
VENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZAogICAgIGlmICghd2ViUlRDQXZhaWxhYmxlKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2Vi
S2l0RGVjb2RlckZhY3RvcnkoaXNTdXBwb3J0aW5nSDI2NSgpID8gd2VicnRjOjpXZWJLaXRIMjY1
OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0SDI2NTo6T2ZmLCBpc1N1cHBvcnRpbmdWUDkoKSA/IHdlYnJ0
Yzo6V2ViS2l0VlA5OjpPbiA6IHdlYnJ0Yzo6V2ViS2l0VlA5OjpPZmYpOworICAgIHJldHVybiB3
ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KGlzU3VwcG9ydGluZ0gyNjUoKSA/IHdl
YnJ0Yzo6V2ViS2l0SDI2NTo6T24gOiB3ZWJydGM6OldlYktpdEgyNjU6Ok9mZiwgaXNTdXBwb3J0
aW5nVlA5KCkgPyB3ZWJydGM6OldlYktpdFZQOTo6T24gOiB3ZWJydGM6OldlYktpdFZQOTo6T2Zm
LCBpc1N1cHBvcnRpbmdWUDlWVEIoKSA/IHdlYnJ0Yzo6V2ViS2l0VlA5VlRCOjpPbiA6IHdlYnJ0
Yzo6V2ViS2l0VlA5VlRCOjpPZmYpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRl
b0VuY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVFbmNvZGVyRmFj
dG9yeSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMjk2MzRiYjFkZjQ0
MzZkZWJkODk3OWFkOTQ1ODk2M2QyYjE0NjAzMS4uNGJjYmIxMmEyYjI1OTYwOWMxYWRhMzk3MjUx
Y2MwYTA3MWFmODY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTU2
OCw2ICsxNTY4LDE2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRXZWJSVENWUDlTdXBwb3J0KGJvb2wg
dmFsdWUpCiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldFdlYlJUQ1ZQOVZUQlN1cHBv
cnQoYm9vbCB2YWx1ZSkKK3sKKyNpZiBVU0UoTElCV0VCUlRDKQorICAgIGlmIChhdXRvKiBwYWdl
ID0gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKSkgeworICAgICAgICBwYWdlLT5saWJXZWJSVENQ
cm92aWRlcigpLnNldFZQOVZUQlN1cHBvcnQodmFsdWUpOworICAgICAgICBwYWdlLT5saWJXZWJS
VENQcm92aWRlcigpLmNsZWFyRmFjdG9yeSgpOworICAgIH0KKyNlbmRpZgorfQorCiB2b2lkIElu
dGVybmFsczo6c2V0RW5hYmxlV2ViUlRDRW5jcnlwdGlvbihib29sIHZhbHVlKQogewogI2lmIFVT
RShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA0OTRiNDZhOWQ1
M2QyZDQ2NGYwOTk3NGJkZjIwYzk1ODU3YzdjZmFjLi4zZmYzZTg5NGM2MzQ4Y2JmMjRkNTczMmEy
ZWQ2ZjIyODJjYzBlZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU5OSw2
ICs1OTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRl
b1NvdXJjZXMoUlRDUGVlckNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHNldFdlYlJUQ0gyNjVTdXBw
b3J0KGJvb2wpOwogICAgIHZvaWQgc2V0V2ViUlRDVlA5U3VwcG9ydChib29sKTsKKyAgICB2b2lk
IHNldFdlYlJUQ1ZQOVZUQlN1cHBvcnQoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmFibGVXZWJSVENF
bmNyeXB0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRFRMUzEwKGJvb2wpOwogICAgIHZvaWQg
c2V0VXNlR1BVUHJvY2Vzc0ZvcldlYlJUQyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCAwYjhlYzdhMTZhNzEyYjQ3ZTQwZGViYjQ1MzJmZDA1ZWI5MTI4NzhkLi5i
NjJmYmMzMzMwOTMxY2ZjOWE4YTI1YWIxZGMzYjkxMzdkM2NmOWMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCkBAIC03OTMsNiArNzkzLDcgQEAgZW51bSBDb250ZW50U2l6ZUNh
dGVnb3J5IHsKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdW5kZWZpbmVkIGFwcGx5Um90YXRp
b25Gb3JPdXRnb2luZ1ZpZGVvU291cmNlcyhSVENQZWVyQ29ubmVjdGlvbiBjb25uZWN0aW9uKTsK
ICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdW5kZWZpbmVkIHNldFdlYlJUQ0gyNjVTdXBwb3J0
KGJvb2xlYW4gYWxsb3dlZCk7CiAgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHVuZGVmaW5lZCBz
ZXRXZWJSVENWUDlTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7CisgICAgW0NvbmRpdGlvbmFsPVdF
Ql9SVENdIHVuZGVmaW5lZCBzZXRXZWJSVENWUDlWVEJTdXBwb3J0KGJvb2xlYW4gYWxsb3dlZCk7
CiAKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0TW9ja0F1ZGlv
VHJhY2tDaGFubmVsTnVtYmVyKE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIHVuc2lnbmVkIHNob3J0
IGNvdW50KTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB1bmRlZmluZWQgc2V0U2hv
dWxkSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlKGJvb2xlYW4gc2hvdWxkSW50
ZXJydXB0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyZDhkMWQ2MzgzM2JhNmVlNTE4ZTZhZmFkYmEyNDk5NDk1ZGExNTIy
Li41YWE1ZDZmOTgwNjk0ZTY5OWU5MmRkYWZmMDRiY2E2NmE2NTBkNGE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjAtMTAtMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYlJUQyBWUDkgRGVjb2RlciBzaG91bGQgYmUgYWJsZSB0byB1c2UgVlRCCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBUZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2Vi
cnRjL3ZwOS12dGItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdnA5LXZ0
Yi5odG1sOiBBZGRlZC4KKwogMjAyMC0xMC0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gRGlzYWJsZSBhdWRpbyBjYXB0dXJlIGluIHRoZSBiYWNr
Z3JvdW5kIGZvciBub24gU2FmYXJpIGFwcGxpY2F0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
MDZhODBlZjI0NzQ2ZTJhOWE1ZGE0ZmM0Zjc4MTFmOTAxN2U0YmJiYi4uN2FiNzU3YmUxZTMwZDFm
ODljNzFjNWEyMzQyODBkMmUzMDE3NmEwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xOTIzLDYg
KzE5MjMsOCBAQCB3ZWJraXQub3JnL2IvMTQ2MTgyIGVkaXRpbmcvc2VsZWN0aW9uL2xlYWstZG9j
dW1lbnQtd2l0aC1zZWxlY3Rpb24taW5zaWRlLmh0bWwgWwogIyBFeHBlcmltZW50YWwgSDI2NSBz
dXBwb3J0Lgogd2VicnRjL2gyNjUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKK3dlYnJ0Yy92cDkt
dnRiLmh0bWwgWyBTa2lwIF0KKwogd2VicnRjL3NpbXVsY2FzdC1oMjY0Lmh0bWwgWyBTbG93IF0K
IHdlYnJ0Yy9oMjY0LWJhc2VsaW5lLmh0bWwgWyBTbG93IF0KIHdlYnJ0Yy9oMjY0LWhpZ2guaHRt
bCBbIFNsb3cgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDFmMDViMGFkMjc4MDAxYTU3OWQ5YjBlMTI3OTE3ZTFmM2M5MGRmZGYuLmRjNWVm
Y2E4OWI5Y2FjMGZmOGZmMWNkMjRjNjA3NTE1YWQyZmIzMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyNzMsNiArMTI3Myw3IEBAIHdl
YmtpdC5vcmcvYi8yMTU2MTEgWyBEZWJ1ZyBdIGZhc3Qvc2Nyb2xsaW5nL21hYy9zY3JvbGxiYXJz
L292ZXJmbG93LW92ZXJsYXktc2NyCiAKICMgcmRhcjovLzY1MjY5NTg5IChbIG1hY09TIGFuZCBp
T1MgXSBtZWRpYS92cDkuaHRtbCBpcyBmYWlsaW5nIGNvbnNpc3RlbnRseS4pCiBbIEJpZ1N1cisg
XSBtZWRpYS92cDkuaHRtbCBbIFBhc3MgXQorWyBCaWdTdXIrIF0gd2VicnRjL3ZwOS12dGIuaHRt
bCBbIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMjE1NzAwIFsgRGVidWcgXSBmYXN0L3Njcm9sbGlu
Zy9tYWMvc2Nyb2xsYmFycy9vdmVybGF5LXNjcm9sbGJhci1ob3ZlcmVkLmh0bWwgWyBQYXNzIEZh
aWx1cmUgVGltZW91dCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRi
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDktdnRiLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDQ3MDYzYzEzZmY1MDQ2MmQxYzYyZmRkOGNhYWQ4YTFlNGRkNjAzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKKworCitQQVNTIFZQOSBpbiBnZXRDYXBhYmlsaXRpZXMKK1BBU1MgVmVy
aWZ5IFZQOSBhY3RpdmF0aW9uCitQQVNTIFNldHRpbmcgdmlkZW8gZXhjaGFuZ2UKK1BBU1MgRW5z
dXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQKK1BBU1MgVHJhY2sgaXMgZW5hYmxl
ZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjaworUEFTUyBUcmFjayBpcyBkaXNhYmxlZCwgdmlk
ZW8gc2hvdWxkIGJlIGJsYWNrCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBu
b3QgYmUgYmxhY2sgMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdnA5LXZ0Yi5o
dG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGE0MjA2
OGZmODhkMmM4NjQ1Yjk2OGNlMDRlM2FkNzAzZDJhNGJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2VicnRjL3ZwOS12dGIuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgICAgIDx0aXRsZT5WUDkgVlRCIGluIFdlYlJUQzwvdGl0bGU+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9w
bGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAg
ICA8Y2FudmFzIGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+
CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48
L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0
PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK2xldCBoYXNWUDk7Cit0ZXN0KCgpID0+IHsKKyAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFdlYlJU
Q1ZQOVN1cHBvcnQodHJ1ZSk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0V2ViUlRDVlA5
VlRCU3VwcG9ydCh0cnVlKTsKKyAgICB9CisKKyAgICBjb2RlY3MgPSBSVENSdHBTZW5kZXIuZ2V0
Q2FwYWJpbGl0aWVzKCJ2aWRlbyIpLmNvZGVjczsKKyAgICBoYXNWUDkgPSBjb2RlY3Muc29tZSgo
Y29kZWMpID0+IHsgcmV0dXJuIGNvZGVjLm1pbWVUeXBlID09ICJ2aWRlby9WUDkiOyB9KTsKKyAg
ICBhc3NlcnRfdHJ1ZShoYXNWUDkpOworfSwgIlZQOSBpbiBnZXRDYXBhYmlsaXRpZXMiKTsKKwor
aWYgKGhhc1ZQOSkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYy5hZGRUcmFu
c2NlaXZlcigidmlkZW8iKTsKKyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5j
cmVhdGVPZmZlcigpOworICAgICAgICBwYy5jbG9zZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShk
ZXNjcmlwdGlvbi5zZHAuaW5kZXhPZigiVlA5IikgIT09IC0xLCAiVlA5IGNvZGVjIGlzIGluIHRo
ZSBTRFAiKTsKKyAgICB9LCAiVmVyaWZ5IFZQOSBhY3RpdmF0aW9uIikKKworICAgIHZhciB0cmFj
azsKKyAgICB2YXIgcmVtb3RlVHJhY2s7CisgICAgdmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247Cisg
ICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCwg
ZmFjaW5nTW9kZTogImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAg
ICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAg
ICAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxT
dHJlYW0pOworICAgICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOwor
ICAgICAgICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVu
dCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50
LnRyYWNrOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVh
bXNbMF0pOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sIHsgb2Jz
ZXJ2ZU9mZmVyIDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIG9mZmVyLnNkcCA9
IHNldENvZGVjKG9mZmVyLnNkcCwgIlZQOSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
b2ZmZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAg
ICAgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgICAgIHJl
dHVybiB2aWRlby5wbGF5KCk7CisgICAgICAgIH0pOworICAgIH0sICJTZXR0aW5nIHZpZGVvIGV4
Y2hhbmdlIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBpZiAocmVjZWl2
aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbi5v
bmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAocmVj
ZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAgICAgICB9
KTsKKyAgICB9LCAiRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKwor
ICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0Js
YWNrKGZhbHNlLCBjYW52YXMxLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZp
ZGVvIHNob3VsZCBub3QgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4g
eworICAgICAgICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBjaGVja1Zp
ZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBkaXNhYmxl
ZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBjaGVja1Zp
ZGVvQmxhY2soZmFsc2UsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxl
ZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7Cit9CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>