<?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>214099</bug_id>
          
          <creation_ts>2020-07-08 14:51:03 -0700</creation_ts>
          <short_desc>Move XPCEndpoint and XPCEndpointClient classes from WebCore to WebKit</short_desc>
          <delta_ts>2020-07-09 14:55:15 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1669904</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-08 14:51:03 -0700</bug_when>
    <thetext>These classes should not be in WebCore, but in WebKit, since they are only expected to be used there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670196</commentid>
    <comment_count>1</comment_count>
      <attachid>403894</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-09 11:45:37 -0700</bug_when>
    <thetext>Created attachment 403894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670207</commentid>
    <comment_count>2</comment_count>
      <attachid>403899</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-09 12:00:55 -0700</bug_when>
    <thetext>Created attachment 403899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670210</commentid>
    <comment_count>3</comment_count>
      <attachid>403902</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-09 12:10:43 -0700</bug_when>
    <thetext>Created attachment 403902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670253</commentid>
    <comment_count>4</comment_count>
      <attachid>403911</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-09 13:33:23 -0700</bug_when>
    <thetext>Created attachment 403911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670271</commentid>
    <comment_count>5</comment_count>
      <attachid>403917</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-09 14:09:22 -0700</bug_when>
    <thetext>Created attachment 403917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670273</commentid>
    <comment_count>6</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-07-09 14:11:57 -0700</bug_when>
    <thetext>Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670291</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-09 14:54:27 -0700</bug_when>
    <thetext>Committed r264199: &lt;https://trac.webkit.org/changeset/264199&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403917.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670292</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-09 14:55:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/65292581&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403894</attachid>
            <date>2020-07-09 11:45:37 -0700</date>
            <delta_ts>2020-07-09 12:00:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214099-20200709114536.patch</filename>
            <type>text/plain</type>
            <size>42877</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50
IGFuZCBYUENFbmRwb2ludENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNsYXNz
ZXMgc2hvdWxkIG5vdCBiZSBpbiBXZWJDb3JlLCBidXQgaW4gV2ViS2l0LCBzaW5jZSB0aGV5IGFy
ZSBvbmx5IGV4cGVjdGVkIHRvIGJlIHVzZWQgdGhlcmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBzaW5jZSB0aGlzIHBhdGNoIGlzIG9ubHkgbW92aW5nIHNvdXJjZSBmaWxlcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9YUENFbmRwb2ludC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1hQQ0VuZHBvaW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvWFBDRW5k
cG9pbnRDbGllbnQubW06IFJlbW92ZWQuCisKIDIwMjAtMDctMDkgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzZXQgQVZTeXN0ZW1Db250cm9sbGVy
X1BJRFRvSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9tIHdoZW4gbWVkaWFzZXJ2ZXJkIGRpZXMK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAwMywxMCArNDAwMyw2IEBA
CiAJCUMxNDlENTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QTI0MkVBNEY5MDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNDlENTY3MjQy
RUI4NEEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzE0RDMwNDkyNEI0RUFCMTAwNDgwMzg3IC8qIFhQQ0Vu
ZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTREMzA0NzI0QjRFQUE4MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDMTREMzA0QjI0QjRGN0VGMDA0ODAz
ODcgLyogWFBDRW5kcG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMTREMzA0QTI0QjRFQjFFMDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi87
IH07Ci0JCUMxNEQzMDRFMjRCNEY4RkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDRDMjRC
NEY4RjYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAqLzsgfTsKLQkJQzE0RDMwNEYy
NEI0RjhGRjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzA0RDI0QjRGOEY3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDMTY5MkREMjIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREQx
MjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovOyB9OwogCQlDMTY5MkRENTIz
RDIzRTA4MDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3Rl
bUJhdHRlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDMUUxRDIzNjIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzFFMUQyMzUyMDNERjE1
NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM3MzgsMTAgKzEzNzM0LDYgQEAKIAkJQzE0OUQ1
NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVySWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0NzI0QjRFQUE4
MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFBDRW5kcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzE0RDMwNEEy
NEI0RUIxRTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUMxNEQzMDRDMjRCNEY4RjYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFhQQ0VuZHBvaW50Q2xpZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0RDI0QjRGOEY3MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFBDRW5kcG9pbnRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE2
OTJERDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTeXN0ZW1CYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTeXN0ZW1CYXR0ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEZCNTE4
MjQyRjkzODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjM2NDgsMTAgKzIzNjQwLDYgQEAKIAkJCQlDREM5NzlGMzFDNDk4QzA5MDBEQjUwRDQg
LyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAqLywKIAkJCQlDREM5NzlGMjFDNDk4QzA5MDBEQjUw
RDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gKi8sCiAJCQkJNURGRUJBQjYxODU5MkI2RDAw
Qzc1QkVCIC8qIFdlYktpdEF2YWlsYWJpbGl0eS5oICovLAotCQkJCUMxNEQzMDQ3MjRCNEVBQTgw
MDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovLAotCQkJCUMxNEQzMDRBMjRCNEVCMUUwMDQ4MDM4
NyAvKiBYUENFbmRwb2ludC5tbSAqLywKLQkJCQlDMTREMzA0RDI0QjRGOEY3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLywKLQkJCQlDMTREMzA0QzI0QjRGOEY2MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0MDE4LDggKzM0MDA2LDYgQEAKIAkJCQkxQUI3RkM4
NDBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhVdGlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3
RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUMxNEQzMDQ5MjRCNEVBQjEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQzE0RDMwNEYyNEI0RjhGRjAwNDgwMzg3IC8qIFhQQ0VuZHBv
aW50Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYg
LyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRThCOTcy
NDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI4RjI0
MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTIxNSw4ICszNTIwMSw2IEBACiAJCQkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8q
IFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4MEMwQTJDRjI1NjAwRDU3
NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNUEzNkQ5MTEwNDU3Mjcw
MEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUMxNEQzMDRCMjRC
NEY3RUYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovLAotCQkJCUMxNEQz
MDRFMjRCNEY4RkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUUxRUU4QjdBMjQxMzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRThCQTcyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRThCOTUyNDEzMTk1
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQuaAkocmV2aXNp
b24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQu
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9zcGkvZGFy
d2luL1hQQ1NQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFhQQ0VuZHBvaW50
IHsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBYUENFbmRwb2ludCgpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0OwotCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCk7
Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9pbnRfdD4gZW5kcG9p
bnQoKSBjb25zdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4cGNNZXNzYWdlTmFtZUtl
eSA9ICJtZXNzYWdlLW5hbWUiOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciog
eHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHhwY0VuZHBvaW50TWVzc2FnZU5hbWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBj
b25zdCBjaGFyKiB4cGNFbmRwb2ludE5hbWVLZXkoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGhhbmRsZUV2ZW50KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCkgPSAwOwotCi0g
ICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOwotICAgIE9TT2Jq
ZWN0UHRyPHhwY19lbmRwb2ludF90PiBtX2VuZHBvaW50OwotfTsKLQotfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2NDE4
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Lm1tCShub25l
eGlzdGVudCkKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKLQotI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVt
ZW50cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVhQQ0VuZHBvaW50OjpYUENFbmRwb2lu
dCgpCi17Ci0gICAgbV9jb25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9j
cmVhdGUobnVsbHB0ciwgbnVsbHB0cikpOwotICAgIG1fZW5kcG9pbnQgPSBhZG9wdE9TT2JqZWN0
KHhwY19lbmRwb2ludF9jcmVhdGUobV9jb25uZWN0aW9uLmdldCgpKSk7Ci0KLSAgICB4cGNfY29u
bmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9j
b25uZWN0aW9uLmdldCgpLCBeKHhwY19vYmplY3RfdCBtZXNzYWdlKSB7Ci0gICAgICAgIHhwY190
eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKLQotICAgICAgICBpZiAodHlwZSA9
PSBYUENfVFlQRV9DT05ORUNUSU9OKSB7Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24gPSBtZXNzYWdlOwotICAgICAgICAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2Vu
OwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKGNvbm5lY3Rpb24s
ICZhdWRpdFRva2VuKTsKLQotICAgICAgICAgICAgaWYgKCFXVEY6Omhhc0VudGl0bGVtZW50KGF1
ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQudXNlLXhwYy1lbmRwb2ludCIpKSB7
Ci0gICAgICAgICAgICAgICAgLy8gVW5jb21tZW50IGJlZm9yZSBsYW5kaW5nOyB0aGlzIGlzIGNv
bW1lbnRlZCBvdXQgYmVjYXVzZSB0aGUgYm90cyBkb2VzIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUg
ZW50aXRsZW1lbnRzIG9uIGluY3JlbWVudGFsIGJ1aWxkcy4KLSAgICAgICAgICAgICAgICAvLyBX
VEZMb2dBbHdheXMoIkF1ZGl0IHRva2VuIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZW50aXRsZW1l
bnQiKTsKLSAgICAgICAgICAgICAgICAvLyByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24sIGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCkpOwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50
X2hhbmRsZXIoY29ubmVjdGlvbiwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgICAg
ICAgICBoYW5kbGVFdmVudChjb25uZWN0aW9uLCBldmVudCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShjb25uZWN0aW9uKTsKLSAgICAgICAgfQot
ICAgIH0pOwotICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwot
fQotCi12b2lkIFhQQ0VuZHBvaW50OjpzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uKQotewotICAgIGlmICghY29ubmVjdGlvbikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYXV0byBtZXNzYWdlID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9j
cmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcobWVzc2FnZS5nZXQoKSwgeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpLCB4cGNFbmRwb2lu
dE1lc3NhZ2VOYW1lKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShtZXNzYWdlLmdl
dCgpLCB4cGNFbmRwb2ludE5hbWVLZXkoKSwgbV9lbmRwb2ludC5nZXQoKSk7Ci0KLSAgICB4cGNf
Y29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZS5nZXQoKSk7Ci19Ci0K
LU9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBYUENFbmRwb2ludDo6ZW5kcG9pbnQoKSBjb25z
dAotewotICAgIHJldHVybiBtX2VuZHBvaW50OwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgJKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5Y
UENFbmRwb2ludENsaWVudCgpIHsgfQotCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmRw
b2ludCh4cGNfZW5kcG9pbnRfdCk7Ci0KLXByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBP
U09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3RfdCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDb25uZWN0KCkgPSAwOwotCi0gICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rp
b25fdD4gbV9jb25uZWN0aW9uOwotICAgIExvY2sgbV9sb2NrOwotfTsKLQotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0J
KHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50Lm1tCShub25leGlzdGVudCkKQEAgLTEsODEgKzAsMCBAQAotLyoKLSogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSoKLSogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0qIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotKiBhcmUgbWV0OgotKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0q
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSoKLSogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIlhQQ0VuZHBvaW50Q2xpZW50LmgiCi0KLSNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRp
dGxlbWVudHMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFhQQ0VuZHBvaW50Q2xp
ZW50OjpzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCBlbmRwb2ludCkKLXsKLSAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7Ci0KLSAgICAgICAgaWYgKG1fY29ubmVjdGlv
bikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9T
T2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9mcm9tX2VuZHBvaW50KGVuZHBvaW50KSk7Ci0K
LSAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShtX2Nvbm5lY3Rpb24uZ2V0
KCksIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCkpOwotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nv
bm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIHhw
Y190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKLSAgICAgICAgICAgIGlmICh0
eXBlID09IFhQQ19UWVBFX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCB8fCBtZXNzYWdlID09IFhQQ19FUlJPUl9URVJN
SU5BVElPTl9JTU1JTkVOVCkgewotICAgICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwotICAgICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAodHlwZSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgYXV0byBjb25uZWN0aW9uID0geHBjX2RpY3Rp
b25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKG1lc3NhZ2UpOwotICAgICAgICAgICAgaWYgKCFj
b25uZWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGF1ZGl0X3Rv
a2VuX3QgYXVkaXRUb2tlbjsKLSAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX2dldF9hdWRpdF90
b2tlbihjb25uZWN0aW9uLCAmYXVkaXRUb2tlbik7Ci0gICAgICAgICAgICBpZiAoIVdURjo6aGFz
RW50aXRsZW1lbnQoYXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBj
LWVuZHBvaW50IikpIHsKLSAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRp
bmc7IHRoaXMgaXMgY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0g
dG8gdXBkYXRlIHRoZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgotICAgICAg
ICAgICAgICAgIC8vIFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1
aXJlZCBlbnRpdGxlbWVudCIpOwotICAgICAgICAgICAgICAgIC8vIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGhhbmRsZUV2ZW50KG1lc3NhZ2UpOwotICAgICAgICB9KTsKLQot
ICAgICAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUobV9jb25uZWN0aW9uLmdldCgpKTsKLSAgICB9
Ci0KLSAgICBkaWRDb25uZWN0KCk7Ci19Ci0KLU9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IFhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0aW9uKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwotICAgIHJldHVybiBtX2Nvbm5lY3Rpb247Ci19Ci0KLX0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTA5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50IGFuZCBYUENFbmRwb2lu
dENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1
bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1hQ
Q0VuZHBvaW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQ
Q0VuZHBvaW50LmguCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbS4KKyAg
ICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50OjpYUENFbmRwb2ludCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6c2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50OjplbmRwb2ludCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lmgu
CisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludENsaWVudDo6flhQQ0VuZHBvaW50Q2xpZW50
KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW06
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xp
ZW50Lm1tLgorICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQ6OnNldEVuZHBvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU1hbmFnZXIubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisKIDIwMjAtMDctMDkgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gQnVpbGRmaXggd2hlbiBXUEVCYWNrZW5kLWZkbyBpcyBub3QgYXZhaWxhYmxl
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VPYnNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmgJKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBw
bGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2luY2x1ZGUgIlhQ
Q0VuZHBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRw
b2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBv
aW50LmgJKHJldmlzaW9uIDI2NDE4MCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvWFBDRW5kcG9pbnQuaDoyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Y
UENFbmRwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFhQQ0VuZHBvaW50IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBYUENFbmRwb2ludCgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0Owor
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nv
bm5lY3Rpb25fdCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9p
bnRfdD4gZW5kcG9pbnQoKSBjb25zdDsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4cGNN
ZXNzYWdlTmFtZUtleSA9ICJtZXNzYWdlLW5hbWUiOworCitwcml2YXRlOgorICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHhwY0VuZHBvaW50TWVzc2FnZU5hbWUoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiB4cGNFbmRwb2ludE5hbWVLZXkoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3Rf
dCkgPSAwOworCisgICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9u
OworICAgIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBtX2VuZHBvaW50OworfTsKKworfQpJ
bmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCShyZXZpc2lvbiAy
NjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwxNiArMjgsMTYgQEAKICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIu
aD4KICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KIAotbmFtZXNwYWNlIFdlYkNv
cmUgeworbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFhQQ0VuZHBvaW50IHsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBYUENFbmRwb2ludCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0OworICAgIFdLX0VYUE9SVCBYUENFbmRwb2lu
dCgpOworICAgIFdLX0VYUE9SVCB2aXJ0dWFsIH5YUENFbmRwb2ludCgpID0gZGVmYXVsdDsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKHhwY19jb25u
ZWN0aW9uX3QpOworICAgIFdLX0VYUE9SVCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4
cGNfY29ubmVjdGlvbl90KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19l
bmRwb2ludF90PiBlbmRwb2ludCgpIGNvbnN0OworICAgIFdLX0VYUE9SVCBPU09iamVjdFB0cjx4
cGNfZW5kcG9pbnRfdD4gZW5kcG9pbnQoKSBjb25zdDsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byB4cGNNZXNzYWdlTmFtZUtleSA9ICJtZXNzYWdlLW5hbWUiOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5tbQkocmV2aXNpb24gMjY0MTgwKQkoZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbToyNjQxODApCisr
KyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5tbQkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJYUENFbmRwb2ludC5oIgorCisjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworWFBDRW5kcG9pbnQ6OlhQQ0VuZHBvaW50KCkKK3sK
KyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZShu
dWxscHRyLCBudWxscHRyKSk7CisgICAgbV9lbmRwb2ludCA9IGFkb3B0T1NPYmplY3QoeHBjX2Vu
ZHBvaW50X2NyZWF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpKTsKKworICAgIHhwY19jb25uZWN0aW9u
X3NldF90YXJnZXRfcXVldWUobV9jb25uZWN0aW9uLmdldCgpLCBkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpKTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rp
b24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKKyAgICAgICAgeHBjX3R5cGVfdCB0
eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOworCisgICAgICAgIGlmICh0eXBlID09IFhQQ19U
WVBFX0NPTk5FQ1RJT04pIHsKKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlv
biA9IG1lc3NhZ2U7CisgICAgICAgICAgICBhdWRpdF90b2tlbl90IGF1ZGl0VG9rZW47CisgICAg
ICAgICAgICB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oY29ubmVjdGlvbiwgJmF1ZGl0
VG9rZW4pOworCisgICAgICAgICAgICBpZiAoIVdURjo6aGFzRW50aXRsZW1lbnQoYXVkaXRUb2tl
biwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBjLWVuZHBvaW50IikpIHsKKyAgICAg
ICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRpbmc7IHRoaXMgaXMgY29tbWVudGVk
IG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0gdG8gdXBkYXRlIHRoZSBlbnRpdGxl
bWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgorICAgICAgICAgICAgICAgIC8vIFdURkxvZ0Fs
d2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBlbnRpdGxlbWVudCIpOwor
ICAgICAgICAgICAgICAgIC8vIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhw
Y19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSk7CisgICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxl
cihjb25uZWN0aW9uLCBeKHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICAgICAgICAgIGhh
bmRsZUV2ZW50KGNvbm5lY3Rpb24sIGV2ZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKGNvbm5lY3Rpb24pOworICAgICAgICB9CisgICAgfSk7
CisgICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKG1fY29ubmVjdGlvbi5nZXQoKSk7Cit9CisKK3Zv
aWQgWFBDRW5kcG9pbnQ6OnNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90
IGNvbm5lY3Rpb24pCit7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShu
dWxscHRyLCBudWxscHRyLCAwKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhtZXNz
YWdlLmdldCgpLCB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCksIHhwY0VuZHBvaW50TWVzc2Fn
ZU5hbWUoKSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKG1lc3NhZ2UuZ2V0KCksIHhw
Y0VuZHBvaW50TmFtZUtleSgpLCBtX2VuZHBvaW50LmdldCgpKTsKKworICAgIHhwY19jb25uZWN0
aW9uX3NlbmRfbWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlLmdldCgpKTsKK30KKworT1NPYmpl
Y3RQdHI8eHBjX2VuZHBvaW50X3Q+IFhQQ0VuZHBvaW50OjplbmRwb2ludCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZW5kcG9pbnQ7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL1hQQ0VuZHBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL1hQQ0VuZHBvaW50Lm1tCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgs
NyBAQAogCiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAKLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKK25hbWVzcGFjZSBXZWJLaXQgewogCiBYUENFbmRwb2ludDo6WFBDRW5kcG9pbnQo
KQogewpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENs
aWVudC5oCShyZXZpc2lvbiAyNjQxODApCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1hQQ0VuZHBvaW50Q2xpZW50Lmg6MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2lu
Y2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQ
SS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5YUENFbmRwb2ludENsaWVudCgpIHsgfQorCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCk7CisKK3Byb3RlY3Rl
ZDoKKyAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25u
ZWN0aW9uKCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19v
YmplY3RfdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb25uZWN0KCkgPSAwOworCisgICAg
T1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOworICAgIExvY2sgbV9s
b2NrOworfTsKKworfQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9p
bnRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENF
bmRwb2ludENsaWVudC5oCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjks
MTYgQEAKICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2Rh
cndpbi9YUENTUEkuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5YUENF
bmRwb2ludENsaWVudCgpIHsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmRwb2lu
dCh4cGNfZW5kcG9pbnRfdCk7CisgICAgV0tfRVhQT1JUIHZvaWQgc2V0RW5kcG9pbnQoeHBjX2Vu
ZHBvaW50X3QpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgT1NPYmplY3RQdHI8
eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbigpOworICAgIFdLX0VYUE9SVCBPU09iamVjdFB0
cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7CiAKIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3RfdCkgPSAwOwpJbmRleDogU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0JKHJldmlzaW9uIDI2NDE4
MCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQu
bW06MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGll
bnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAorLyoKKyogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlhQQ0VuZHBvaW50Q2xpZW50LmgiCisKKyNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFhQQ0VuZHBvaW50Q2xpZW50OjpzZXRF
bmRwb2ludCh4cGNfZW5kcG9pbnRfdCBlbmRwb2ludCkKK3sKKyAgICB7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbG9jayk7CisKKyAgICAgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2JqZWN0KHhw
Y19jb25uZWN0aW9uX2NyZWF0ZV9mcm9tX2VuZHBvaW50KGVuZHBvaW50KSk7CisKKyAgICAgICAg
eHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShtX2Nvbm5lY3Rpb24uZ2V0KCksIGRpc3Bh
dGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCkp
OworICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24u
Z2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHhwY190eXBlX3Qg
dHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IFhQ
Q19UWVBFX0VSUk9SKSB7CisgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UgPT0gWFBDX0VSUk9S
X0NPTk5FQ1RJT05fSU5WQUxJRCB8fCBtZXNzYWdlID09IFhQQ19FUlJPUl9URVJNSU5BVElPTl9J
TU1JTkVOVCkgeworICAgICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2sp
OworICAgICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAodHlwZSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAgICAgYXV0byBjb25uZWN0aW9uID0geHBjX2RpY3Rpb25hcnlfZ2V0
X3JlbW90ZV9jb25uZWN0aW9uKG1lc3NhZ2UpOworICAgICAgICAgICAgaWYgKCFjb25uZWN0aW9u
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGF1ZGl0X3Rva2VuX3QgYXVk
aXRUb2tlbjsKKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX2dldF9hdWRpdF90b2tlbihjb25u
ZWN0aW9uLCAmYXVkaXRUb2tlbik7CisgICAgICAgICAgICBpZiAoIVdURjo6aGFzRW50aXRsZW1l
bnQoYXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBjLWVuZHBvaW50
IikpIHsKKyAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRpbmc7IHRoaXMg
aXMgY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0gdG8gdXBkYXRl
IHRoZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgorICAgICAgICAgICAgICAg
IC8vIFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBlbnRp
dGxlbWVudCIpOworICAgICAgICAgICAgICAgIC8vIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGhhbmRsZUV2ZW50KG1lc3NhZ2UpOworICAgICAgICB9KTsKKworICAgICAgICB4
cGNfY29ubmVjdGlvbl9yZXN1bWUobV9jb25uZWN0aW9uLmdldCgpKTsKKyAgICB9CisKKyAgICBk
aWRDb25uZWN0KCk7Cit9CisKK09TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IFhQQ0VuZHBv
aW50Q2xpZW50Ojpjb25uZWN0aW9uKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2sp
OworICAgIHJldHVybiBtX2Nvbm5lY3Rpb247Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1tCShyZXZpc2lvbiAyNjQxODAp
CisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRs
ZW1lbnRzLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXZWJLaXQgewogCiB2
b2lkIFhQQ0VuZHBvaW50Q2xpZW50OjpzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCBlbmRwb2lu
dCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCShyZXZpc2lvbiAyNjQxODApCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1wb3J0ICJMYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgot
I2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTY4NCw2ICsxNjg0LDggQEAKIAkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRj
aGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzExQTlFQ0IyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRjaGluZ0dQVUNsaWVudC5o
ICovOyB9OwogCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExRTE2OTIyMTJC
ODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcgLyogV2Vi
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhl
c2lzQ2xpZW50LmggKi87IH07CisJCUMxNEQzMDY5MjRCNzlCRTAwMDQ4MDM4NyAvKiBYUENFbmRw
b2ludC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
NEQzMDY1MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSAqLzsgfTsKKwkJQzE0RDMw
NkEyNEI3OUJFNDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0RDMwNjYyNEI3OTRFNzAwNDgwMzg3
IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovOyB9OwogCQlDMTREMzdGRTI0QUNFMDg2MDA3RkYw
MTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzdGRDI0QUNFMDg2MDA3RkYwMTQgLyog
TGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi87IH07CiAJCUMxNUNCQjM2MjNGMzc3
NzEwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDVDQzBFMjNEQ0E0MjcwMDNBNUVFQiAvKiBQcmVm
ZXJlbmNlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlDMTVDQkIzNzIzRjM3RUNCMDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE1Q0JC
MzMyM0YzNEMzODAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSAqLzsgfTsKQEAgLTUw
MjEsNiArNTAyMywxMCBAQAogCQlDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3
MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNDkzODBBMjIzODUzQkUwMDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMTREMzA2NTI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBYUENFbmRwb2ludC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0RDMwNjYyNEI3OTRFNzAwNDgwMzg3IC8q
IFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gWFBDRW5kcG9pbnRDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMxNEQzMDY3MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBYUENFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMTREMzA2ODI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBDRW5kcG9pbnRDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0RDM3RkMyNEFDREY0NTAwN0ZGMDE0IC8qIExh
dW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNEQz
N0ZEMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyog
UHJlZmVyZW5jZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJlZmVyZW5jZU9i
c2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzUyNiw2ICs3NTMyLDEw
IEBACiAJCQkJMzdCRjJGMDUxOTQ3REVCNDAwNzIzQzQ4IC8qIFdLTlNVUkxSZXF1ZXN0Lm1tICov
LAogCQkJCTM3OEUxQTNGMTgxRURBMDEwMDMxMDA3QSAvKiBXS09iamVjdC5oICovLAogCQkJCTM3
NDQzNjg3MTgyMEU3MjQwMDQ5NTc5RiAvKiBXS09iamVjdC5tbSAqLywKKwkJCQlDMTREMzA2NzI0
Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLywKKwkJCQlDMTREMzA2NTI0Qjc5NEU3
MDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi8sCisJCQkJQzE0RDMwNjgyNEI3OTRFNzAwNDgw
Mzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50LmggKi8sCisJCQkJQzE0RDMwNjYyNEI3OTRFNzAwNDgw
Mzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsK
IAkJCXBhdGggPSBDb2NvYTsKQEAgLTEzMTE0LDYgKzEzMTI0LDggQEAKIAkJCQkxREIwMTk0NDIx
MUNGMDA1MDA5RkIzRTggLyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3
OEZGMzMyMjQxOTE5QjAwOTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0UyMTIxNjAyNDBFRTU3MTAwNkVENDQzIC8qIFdLVGV4dFBsYWNlaG9sZGVy
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0RDMwNjkyNEI3OUJFMDAwNDgwMzg3IC8qIFhQQ0Vu
ZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0RDMwNkEyNEI3OUJFNDAwNDgwMzg3IC8q
IFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRh
YmFzZU1hbmFnZXIuaAkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbXBvcnQgPFdlYkNvcmUvWFBD
RW5kcG9pbnRDbGllbnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBvaW50Q2xpZW50LmgiCiAjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAy
NjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNE
YXRhYmFzZU1hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpbXBv
cnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgiCiAKICNpbXBvcnQgIkxhdW5jaFNl
cnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9p
bnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAj
aW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjY0MTgw
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCIKICNpbXBvcnQg
IldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCisjaW1wb3J0ICJYUENFbmRwb2ludC5oIgog
I2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5o
PgpAQCAtNzEsNyArNzIsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJ
VXRpbGl0aWVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1hQQ0VuZHBvaW50Lmg+CiAjaW1wb3J0IDxh
bGdvcml0aG0+CiAjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjQxODMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0wOSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBYUENFbmRwb2ludCBhbmQgWFBDRW5kcG9pbnRD
bGllbnQgY2xhc3NlcyBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQwOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1hQQ0VuZHBvaW50Lm1tOgorCiAyMDIwLTA3LTA5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgogCiAgICAgICAgIExvY2FsIGludGVybmFsIGJ1aWxkcyBmYWlsIG9uIEFw
cGxlIFNpbGljb24gKGJ1aWxkaW5nIHlhc20pCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9YUENFbmRwb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbQkocmV2aXNpb24gMjY0MTgwKQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5kcG9pbnQubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDggKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgotI2ltcG9y
dCA8V2ViQ29yZS9YUENFbmRwb2ludENsaWVudC5oPgorI2ltcG9ydCA8V2ViS2l0L1hQQ0VuZHBv
aW50Lmg+CisjaW1wb3J0IDxXZWJLaXQvWFBDRW5kcG9pbnRDbGllbnQuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBzdGF0aWMgYm9vbCBjbGllbnRDb25uZWN0ZWRUb0VuZHBv
aW50ID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403899</attachid>
            <date>2020-07-09 12:00:55 -0700</date>
            <delta_ts>2020-07-09 12:10:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214099-20200709120054.patch</filename>
            <type>text/plain</type>
            <size>43012</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50
IGFuZCBYUENFbmRwb2ludENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNsYXNz
ZXMgc2hvdWxkIG5vdCBiZSBpbiBXZWJDb3JlLCBidXQgaW4gV2ViS2l0LCBzaW5jZSB0aGV5IGFy
ZSBvbmx5IGV4cGVjdGVkIHRvIGJlIHVzZWQgdGhlcmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBzaW5jZSB0aGlzIHBhdGNoIGlzIG9ubHkgbW92aW5nIHNvdXJjZSBmaWxlcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9YUENFbmRwb2ludC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1hQQ0VuZHBvaW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvWFBDRW5k
cG9pbnRDbGllbnQubW06IFJlbW92ZWQuCisKIDIwMjAtMDctMDkgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzZXQgQVZTeXN0ZW1Db250cm9sbGVy
X1BJRFRvSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9tIHdoZW4gbWVkaWFzZXJ2ZXJkIGRpZXMK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAwMywxMCArNDAwMyw2IEBA
CiAJCUMxNDlENTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QTI0MkVBNEY5MDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNDlENTY3MjQy
RUI4NEEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzE0RDMwNDkyNEI0RUFCMTAwNDgwMzg3IC8qIFhQQ0Vu
ZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTREMzA0NzI0QjRFQUE4MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDMTREMzA0QjI0QjRGN0VGMDA0ODAz
ODcgLyogWFBDRW5kcG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMTREMzA0QTI0QjRFQjFFMDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi87
IH07Ci0JCUMxNEQzMDRFMjRCNEY4RkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDRDMjRC
NEY4RjYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAqLzsgfTsKLQkJQzE0RDMwNEYy
NEI0RjhGRjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzA0RDI0QjRGOEY3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDMTY5MkREMjIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREQx
MjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovOyB9OwogCQlDMTY5MkRENTIz
RDIzRTA4MDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3Rl
bUJhdHRlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDMUUxRDIzNjIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzFFMUQyMzUyMDNERjE1
NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM3MzgsMTAgKzEzNzM0LDYgQEAKIAkJQzE0OUQ1
NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVySWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0NzI0QjRFQUE4
MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFBDRW5kcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzE0RDMwNEEy
NEI0RUIxRTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUMxNEQzMDRDMjRCNEY4RjYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFhQQ0VuZHBvaW50Q2xpZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0RDI0QjRGOEY3MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFBDRW5kcG9pbnRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE2
OTJERDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTeXN0ZW1CYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTeXN0ZW1CYXR0ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEZCNTE4
MjQyRjkzODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjM2NDgsMTAgKzIzNjQwLDYgQEAKIAkJCQlDREM5NzlGMzFDNDk4QzA5MDBEQjUwRDQg
LyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAqLywKIAkJCQlDREM5NzlGMjFDNDk4QzA5MDBEQjUw
RDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gKi8sCiAJCQkJNURGRUJBQjYxODU5MkI2RDAw
Qzc1QkVCIC8qIFdlYktpdEF2YWlsYWJpbGl0eS5oICovLAotCQkJCUMxNEQzMDQ3MjRCNEVBQTgw
MDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovLAotCQkJCUMxNEQzMDRBMjRCNEVCMUUwMDQ4MDM4
NyAvKiBYUENFbmRwb2ludC5tbSAqLywKLQkJCQlDMTREMzA0RDI0QjRGOEY3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLywKLQkJCQlDMTREMzA0QzI0QjRGOEY2MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0MDE4LDggKzM0MDA2LDYgQEAKIAkJCQkxQUI3RkM4
NDBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhVdGlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3
RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUMxNEQzMDQ5MjRCNEVBQjEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQzE0RDMwNEYyNEI0RjhGRjAwNDgwMzg3IC8qIFhQQ0VuZHBv
aW50Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYg
LyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRThCOTcy
NDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI4RjI0
MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTIxNSw4ICszNTIwMSw2IEBACiAJCQkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8q
IFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4MEMwQTJDRjI1NjAwRDU3
NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNUEzNkQ5MTEwNDU3Mjcw
MEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUMxNEQzMDRCMjRC
NEY3RUYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovLAotCQkJCUMxNEQz
MDRFMjRCNEY4RkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUUxRUU4QjdBMjQxMzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRThCQTcyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRThCOTUyNDEzMTk1
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQuaAkocmV2aXNp
b24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQu
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9zcGkvZGFy
d2luL1hQQ1NQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFhQQ0VuZHBvaW50
IHsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBYUENFbmRwb2ludCgpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0OwotCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCk7
Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9pbnRfdD4gZW5kcG9p
bnQoKSBjb25zdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4cGNNZXNzYWdlTmFtZUtl
eSA9ICJtZXNzYWdlLW5hbWUiOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciog
eHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHhwY0VuZHBvaW50TWVzc2FnZU5hbWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBj
b25zdCBjaGFyKiB4cGNFbmRwb2ludE5hbWVLZXkoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGhhbmRsZUV2ZW50KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCkgPSAwOwotCi0g
ICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOwotICAgIE9TT2Jq
ZWN0UHRyPHhwY19lbmRwb2ludF90PiBtX2VuZHBvaW50OwotfTsKLQotfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2NDE4
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Lm1tCShub25l
eGlzdGVudCkKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKLQotI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVt
ZW50cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVhQQ0VuZHBvaW50OjpYUENFbmRwb2lu
dCgpCi17Ci0gICAgbV9jb25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9j
cmVhdGUobnVsbHB0ciwgbnVsbHB0cikpOwotICAgIG1fZW5kcG9pbnQgPSBhZG9wdE9TT2JqZWN0
KHhwY19lbmRwb2ludF9jcmVhdGUobV9jb25uZWN0aW9uLmdldCgpKSk7Ci0KLSAgICB4cGNfY29u
bmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9j
b25uZWN0aW9uLmdldCgpLCBeKHhwY19vYmplY3RfdCBtZXNzYWdlKSB7Ci0gICAgICAgIHhwY190
eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKLQotICAgICAgICBpZiAodHlwZSA9
PSBYUENfVFlQRV9DT05ORUNUSU9OKSB7Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24gPSBtZXNzYWdlOwotICAgICAgICAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2Vu
OwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKGNvbm5lY3Rpb24s
ICZhdWRpdFRva2VuKTsKLQotICAgICAgICAgICAgaWYgKCFXVEY6Omhhc0VudGl0bGVtZW50KGF1
ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQudXNlLXhwYy1lbmRwb2ludCIpKSB7
Ci0gICAgICAgICAgICAgICAgLy8gVW5jb21tZW50IGJlZm9yZSBsYW5kaW5nOyB0aGlzIGlzIGNv
bW1lbnRlZCBvdXQgYmVjYXVzZSB0aGUgYm90cyBkb2VzIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUg
ZW50aXRsZW1lbnRzIG9uIGluY3JlbWVudGFsIGJ1aWxkcy4KLSAgICAgICAgICAgICAgICAvLyBX
VEZMb2dBbHdheXMoIkF1ZGl0IHRva2VuIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZW50aXRsZW1l
bnQiKTsKLSAgICAgICAgICAgICAgICAvLyByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24sIGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCkpOwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50
X2hhbmRsZXIoY29ubmVjdGlvbiwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgICAg
ICAgICBoYW5kbGVFdmVudChjb25uZWN0aW9uLCBldmVudCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShjb25uZWN0aW9uKTsKLSAgICAgICAgfQot
ICAgIH0pOwotICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwot
fQotCi12b2lkIFhQQ0VuZHBvaW50OjpzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uKQotewotICAgIGlmICghY29ubmVjdGlvbikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYXV0byBtZXNzYWdlID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9j
cmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcobWVzc2FnZS5nZXQoKSwgeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpLCB4cGNFbmRwb2lu
dE1lc3NhZ2VOYW1lKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShtZXNzYWdlLmdl
dCgpLCB4cGNFbmRwb2ludE5hbWVLZXkoKSwgbV9lbmRwb2ludC5nZXQoKSk7Ci0KLSAgICB4cGNf
Y29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZS5nZXQoKSk7Ci19Ci0K
LU9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBYUENFbmRwb2ludDo6ZW5kcG9pbnQoKSBjb25z
dAotewotICAgIHJldHVybiBtX2VuZHBvaW50OwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgJKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5Y
UENFbmRwb2ludENsaWVudCgpIHsgfQotCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmRw
b2ludCh4cGNfZW5kcG9pbnRfdCk7Ci0KLXByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBP
U09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3RfdCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDb25uZWN0KCkgPSAwOwotCi0gICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rp
b25fdD4gbV9jb25uZWN0aW9uOwotICAgIExvY2sgbV9sb2NrOwotfTsKLQotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0J
KHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50Lm1tCShub25leGlzdGVudCkKQEAgLTEsODEgKzAsMCBAQAotLyoKLSogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSoKLSogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0qIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotKiBhcmUgbWV0OgotKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0q
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSoKLSogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIlhQQ0VuZHBvaW50Q2xpZW50LmgiCi0KLSNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRp
dGxlbWVudHMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFhQQ0VuZHBvaW50Q2xp
ZW50OjpzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCBlbmRwb2ludCkKLXsKLSAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7Ci0KLSAgICAgICAgaWYgKG1fY29ubmVjdGlv
bikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9T
T2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9mcm9tX2VuZHBvaW50KGVuZHBvaW50KSk7Ci0K
LSAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShtX2Nvbm5lY3Rpb24uZ2V0
KCksIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCkpOwotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nv
bm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIHhw
Y190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKLSAgICAgICAgICAgIGlmICh0
eXBlID09IFhQQ19UWVBFX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCB8fCBtZXNzYWdlID09IFhQQ19FUlJPUl9URVJN
SU5BVElPTl9JTU1JTkVOVCkgewotICAgICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwotICAgICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAodHlwZSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgYXV0byBjb25uZWN0aW9uID0geHBjX2RpY3Rp
b25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKG1lc3NhZ2UpOwotICAgICAgICAgICAgaWYgKCFj
b25uZWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGF1ZGl0X3Rv
a2VuX3QgYXVkaXRUb2tlbjsKLSAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX2dldF9hdWRpdF90
b2tlbihjb25uZWN0aW9uLCAmYXVkaXRUb2tlbik7Ci0gICAgICAgICAgICBpZiAoIVdURjo6aGFz
RW50aXRsZW1lbnQoYXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBj
LWVuZHBvaW50IikpIHsKLSAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRp
bmc7IHRoaXMgaXMgY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0g
dG8gdXBkYXRlIHRoZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgotICAgICAg
ICAgICAgICAgIC8vIFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1
aXJlZCBlbnRpdGxlbWVudCIpOwotICAgICAgICAgICAgICAgIC8vIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGhhbmRsZUV2ZW50KG1lc3NhZ2UpOwotICAgICAgICB9KTsKLQot
ICAgICAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUobV9jb25uZWN0aW9uLmdldCgpKTsKLSAgICB9
Ci0KLSAgICBkaWRDb25uZWN0KCk7Ci19Ci0KLU9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IFhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0aW9uKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwotICAgIHJldHVybiBtX2Nvbm5lY3Rpb247Ci19Ci0KLX0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTA5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50IGFuZCBYUENFbmRwb2lu
dENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1
bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1hQ
Q0VuZHBvaW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQ
Q0VuZHBvaW50LmguCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbS4KKyAg
ICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50OjpYUENFbmRwb2ludCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6c2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50OjplbmRwb2ludCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lmgu
CisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludENsaWVudDo6flhQQ0VuZHBvaW50Q2xpZW50
KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW06
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xp
ZW50Lm1tLgorICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQ6OnNldEVuZHBvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU1hbmFnZXIubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisKIDIwMjAtMDctMDkgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gQnVpbGRmaXggd2hlbiBXUEVCYWNrZW5kLWZkbyBpcyBub3QgYXZhaWxhYmxl
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VPYnNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmgJKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBw
bGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2luY2x1ZGUgIlhQ
Q0VuZHBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRw
b2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBv
aW50LmgJKHJldmlzaW9uIDI2NDE4MCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvWFBDRW5kcG9pbnQuaDoyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Y
UENFbmRwb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFhQQ0VuZHBvaW50IHsKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBYUENFbmRwb2ludCgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0Owor
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nv
bm5lY3Rpb25fdCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9p
bnRfdD4gZW5kcG9pbnQoKSBjb25zdDsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4cGNN
ZXNzYWdlTmFtZUtleSA9ICJtZXNzYWdlLW5hbWUiOworCitwcml2YXRlOgorICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHhwY0VuZHBvaW50TWVzc2FnZU5hbWUoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiB4cGNFbmRwb2ludE5hbWVLZXkoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3Rf
dCkgPSAwOworCisgICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9u
OworICAgIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBtX2VuZHBvaW50OworfTsKKworfQpJ
bmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCShyZXZpc2lvbiAy
NjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxOSArMjUsMjAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oIgogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgogCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7CituYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgWFBDRW5kcG9pbnQgewogcHVibGljOgot
ICAgIFdFQkNPUkVfRVhQT1JUIFhQQ0VuZHBvaW50KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7CisgICAgV0tfRVhQT1JUIFhQQ0VuZHBvaW50
KCk7CisgICAgV0tfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0OwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5l
Y3Rpb25fdCk7CisgICAgV0tfRVhQT1JUIHZvaWQgc2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKHhw
Y19jb25uZWN0aW9uX3QpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgT1NPYmplY3RQdHI8eHBjX2Vu
ZHBvaW50X3Q+IGVuZHBvaW50KCkgY29uc3Q7CisgICAgV0tfRVhQT1JUIE9TT2JqZWN0UHRyPHhw
Y19lbmRwb2ludF90PiBlbmRwb2ludCgpIGNvbnN0OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBh
dXRvIHhwY01lc3NhZ2VOYW1lS2V5ID0gIm1lc3NhZ2UtbmFtZSI7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tCShyZXZpc2lvbiAyNjQxODApCShmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Lm1tOjI2NDE4MCkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlhQQ0VuZHBvaW50LmgiCisKKyNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitYUENFbmRwb2ludDo6WFBDRW5kcG9pbnQoKQorewor
ICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlKG51
bGxwdHIsIG51bGxwdHIpKTsKKyAgICBtX2VuZHBvaW50ID0gYWRvcHRPU09iamVjdCh4cGNfZW5k
cG9pbnRfY3JlYXRlKG1fY29ubmVjdGlvbi5nZXQoKSkpOworCisgICAgeHBjX2Nvbm5lY3Rpb25f
c2V0X3RhcmdldF9xdWV1ZShtX2Nvbm5lY3Rpb24uZ2V0KCksIGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCkpOworICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVjdGlv
bi5nZXQoKSwgXih4cGNfb2JqZWN0X3QgbWVzc2FnZSkgeworICAgICAgICB4cGNfdHlwZV90IHR5
cGUgPSB4cGNfZ2V0X3R5cGUobWVzc2FnZSk7CisKKyAgICAgICAgaWYgKHR5cGUgPT0gWFBDX1RZ
UEVfQ09OTkVDVElPTikgeworICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9u
ID0gbWVzc2FnZTsKKyAgICAgICAgICAgIGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbjsKKyAgICAg
ICAgICAgIHhwY19jb25uZWN0aW9uX2dldF9hdWRpdF90b2tlbihjb25uZWN0aW9uLCAmYXVkaXRU
b2tlbik7CisKKyAgICAgICAgICAgIGlmICghV1RGOjpoYXNFbnRpdGxlbWVudChhdWRpdFRva2Vu
LCAiY29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVzZS14cGMtZW5kcG9pbnQiKSkgeworICAgICAg
ICAgICAgICAgIC8vIFVuY29tbWVudCBiZWZvcmUgbGFuZGluZzsgdGhpcyBpcyBjb21tZW50ZWQg
b3V0IGJlY2F1c2UgdGhlIGJvdHMgZG9lcyBub3Qgc2VlbSB0byB1cGRhdGUgdGhlIGVudGl0bGVt
ZW50cyBvbiBpbmNyZW1lbnRhbCBidWlsZHMuCisgICAgICAgICAgICAgICAgLy8gV1RGTG9nQWx3
YXlzKCJBdWRpdCB0b2tlbiBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGVudGl0bGVtZW50Iik7Cisg
ICAgICAgICAgICAgICAgLy8gcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeHBj
X2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShjb25uZWN0aW9uLCBkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpKTsKKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVy
KGNvbm5lY3Rpb24sIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgICAgICAgICAgaGFu
ZGxlRXZlbnQoY29ubmVjdGlvbiwgZXZlbnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB4cGNfY29ubmVjdGlvbl9yZXN1bWUoY29ubmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9KTsK
KyAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUobV9jb25uZWN0aW9uLmdldCgpKTsKK30KKwordm9p
ZCBYUENFbmRwb2ludDo6c2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3Qg
Y29ubmVjdGlvbikKK3sKKyAgICBpZiAoIWNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gbWVzc2FnZSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51
bGxwdHIsIG51bGxwdHIsIDApKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKG1lc3Nh
Z2UuZ2V0KCksIHhwY0VuZHBvaW50TWVzc2FnZU5hbWVLZXkoKSwgeHBjRW5kcG9pbnRNZXNzYWdl
TmFtZSgpKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUobWVzc2FnZS5nZXQoKSwgeHBj
RW5kcG9pbnROYW1lS2V5KCksIG1fZW5kcG9pbnQuZ2V0KCkpOworCisgICAgeHBjX2Nvbm5lY3Rp
b25fc2VuZF9tZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2UuZ2V0KCkpOworfQorCitPU09iamVj
dFB0cjx4cGNfZW5kcG9pbnRfdD4gWFBDRW5kcG9pbnQ6OmVuZHBvaW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9lbmRwb2ludDsKK30KKworfQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KIAotbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIFdlYktpdCB7CiAKIFhQQ0VuZHBvaW50OjpYUENFbmRwb2ludCgp
CiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xp
ZW50LmgJKHJldmlzaW9uIDI2NDE4MCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvWFBDRW5kcG9pbnRDbGllbnQuaDoyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9YUENFbmRwb2ludENsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5j
bHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJ
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFBDRW5kcG9pbnRDbGllbnQgewor
cHVibGljOgorICAgIHZpcnR1YWwgflhQQ0VuZHBvaW50Q2xpZW50KCkgeyB9CisKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldEVuZHBvaW50KHhwY19lbmRwb2ludF90KTsKKworcHJvdGVjdGVk
OgorICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5l
Y3Rpb24oKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoeHBjX29i
amVjdF90KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7CisKKyAgICBP
U09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgTG9jayBtX2xv
Y2s7Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50LmgJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDIwICsyNSwy
MSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIldLRGVjbGFyYXRpb25TcGVjaWZpZXJz
LmgiCiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUg
eworbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5YUENFbmRwb2ludENsaWVudCgpIHsgfQogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCk7CisgICAgV0tfRVhQT1JUIHZv
aWQgc2V0RW5kcG9pbnQoeHBjX2VuZHBvaW50X3QpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbigpOworICAg
IFdLX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3RfdCkgPSAw
OwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGll
bnQubW0JKHJldmlzaW9uIDI2NDE4MCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvWFBDRW5kcG9pbnRDbGllbnQubW06MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIlhQQ0VuZHBvaW50Q2xpZW50LmgiCisKKyNpbXBvcnQgPHd0
Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFhQ
Q0VuZHBvaW50Q2xpZW50OjpzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCBlbmRwb2ludCkKK3sK
KyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisKKyAgICAgICAgaWYg
KG1fY29ubmVjdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2Nvbm5lY3Rp
b24gPSBhZG9wdE9TT2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9mcm9tX2VuZHBvaW50KGVu
ZHBvaW50KSk7CisKKyAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShtX2Nv
bm5lY3Rpb24uZ2V0KCksIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVf
UFJJT1JJVFlfREVGQVVMVCwgMCkpOworICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRf
aGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKKyAg
ICAgICAgICAgIHhwY190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKKyAgICAg
ICAgICAgIGlmICh0eXBlID09IFhQQ19UWVBFX0VSUk9SKSB7CisgICAgICAgICAgICAgICAgaWYg
KG1lc3NhZ2UgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCB8fCBtZXNzYWdlID09IFhQ
Q19FUlJPUl9URVJNSU5BVElPTl9JTU1JTkVOVCkgeworICAgICAgICAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24g
PSBudWxscHRyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHlwZSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZ
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjb25uZWN0aW9u
ID0geHBjX2RpY3Rpb25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKG1lc3NhZ2UpOworICAgICAg
ICAgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbjsKKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9u
X2dldF9hdWRpdF90b2tlbihjb25uZWN0aW9uLCAmYXVkaXRUb2tlbik7CisgICAgICAgICAgICBp
ZiAoIVdURjo6aGFzRW50aXRsZW1lbnQoYXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndl
YmtpdC51c2UteHBjLWVuZHBvaW50IikpIHsKKyAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQg
YmVmb3JlIGxhbmRpbmc7IHRoaXMgaXMgY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRv
ZXMgbm90IHNlZW0gdG8gdXBkYXRlIHRoZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVp
bGRzLgorICAgICAgICAgICAgICAgIC8vIFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBu
b3QgaGF2ZSByZXF1aXJlZCBlbnRpdGxlbWVudCIpOworICAgICAgICAgICAgICAgIC8vIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGhhbmRsZUV2ZW50KG1lc3NhZ2UpOworICAg
ICAgICB9KTsKKworICAgICAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUobV9jb25uZWN0aW9uLmdl
dCgpKTsKKyAgICB9CisKKyAgICBkaWRDb25uZWN0KCk7Cit9CisKK09TT2JqZWN0UHRyPHhwY19j
b25uZWN0aW9uX3Q+IFhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0aW9uKCkKK3sKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOworICAgIHJldHVybiBtX2Nvbm5lY3Rpb247Cit9CisKK30K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
Lm1tCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENF
bmRwb2ludENsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1w
b3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFhQQ0VuZHBvaW50Q2xpZW50OjpzZXRFbmRwb2ludCh4
cGNfZW5kcG9pbnRfdCBlbmRwb2ludCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCShy
ZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAog
CiAjaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzUG9vbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2lt
cG9ydCAiWFBDRW5kcG9pbnQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTY4NCw2ICsxNjg0LDggQEAKIAkJQzExQTlFQ0MyMTQwMzVG
ODAwQ0ZCMjBBIC8qIFdlYlN3aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExQTlFQ0IyMTQwMzVGODAwQ0ZCMjBBIC8qIFdl
YlN3aXRjaGluZ0dQVUNsaWVudC5oICovOyB9OwogCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVGRjYg
LyogV0tNb2NrRGlzcGxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzExRTE2OTIyMTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMTQ5MzgwOTIy
MzQ3MTA0MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3
MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi87IH07CisJCUMxNEQzMDY5MjRCNzlC
RTAwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDY1MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2lu
dC5tbSAqLzsgfTsKKwkJQzE0RDMwNkEyNEI3OUJFNDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xp
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0
RDMwNjYyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovOyB9OwogCQlD
MTREMzdGRTI0QUNFMDg2MDA3RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzdG
RDI0QUNFMDg2MDA3RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi87
IH07CiAJCUMxNUNCQjM2MjNGMzc3NzEwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDVDQzBFMjNE
Q0E0MjcwMDNBNUVFQiAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMTVDQkIzNzIzRjM3RUNCMDAzMDBDQzcg
LyogUHJlZmVyZW5jZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzE1Q0JCMzMyM0YzNEMzODAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNl
cnZlci5tbSAqLzsgfTsKQEAgLTUwMjEsNiArNTAyMywxMCBAQAogCQlDMTQ5MzgwMjIyMzQxQzYw
MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODBBMjIzODUzQkUwMDBDRDcwNyAvKiBXZWJTcGVl
Y2hTeW50aGVzaXNWb2ljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTREMzA2NTI0Qjc5NEU3MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBYUENFbmRwb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzE0RDMw
NjYyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnRDbGllbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNEQzMDY3MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRw
b2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUENFbmRwb2ludC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTREMzA2ODI0Qjc5NEU3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBD
RW5kcG9pbnRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0RDM3RkMy
NEFDREY0NTAwN0ZGMDE0IC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMxNEQzN0ZEMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VNYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTVDQkIz
MzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUHJlZmVyZW5jZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNzUyNiw2ICs3NTMyLDEwIEBACiAJCQkJMzdCRjJGMDUxOTQ3REVCNDAwNzIzQzQ4IC8q
IFdLTlNVUkxSZXF1ZXN0Lm1tICovLAogCQkJCTM3OEUxQTNGMTgxRURBMDEwMDMxMDA3QSAvKiBX
S09iamVjdC5oICovLAogCQkJCTM3NDQzNjg3MTgyMEU3MjQwMDQ5NTc5RiAvKiBXS09iamVjdC5t
bSAqLywKKwkJCQlDMTREMzA2NzI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLywK
KwkJCQlDMTREMzA2NTI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi8sCisJCQkJ
QzE0RDMwNjgyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50LmggKi8sCisJCQkJ
QzE0RDMwNjYyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovLAogCQkJ
KTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXBhdGggPSBDb2NvYTsKQEAgLTEzMTE0LDYgKzEzMTI0
LDggQEAKIAkJCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTggLyogV0tTaGFyZVNoZWV0Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0E3OEZGMzMyMjQxOTE5QjAwOTY0ODNFIC8qIFdLU3RvcmFnZUFj
Y2Vzc0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UyMTIxNjAyNDBFRTU3MTAwNkVENDQz
IC8qIFdLVGV4dFBsYWNlaG9sZGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0RDMwNjkyNEI3
OUJFMDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0RDMw
NkEyNEI3OUJFNDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRh
YmFzZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaAkocmV2aXNpb24gMjY0MTgwKQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9pbnRDbGllbnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBv
aW50Q2xpZW50LmgiCiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0
Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VN
YW5hZ2VyLm1tCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI3LDcgKzI3LDcgQEAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgi
CiAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKLSNpbXBv
cnQgPFdlYkNvcmUvWFBDRW5kcG9pbnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvY29j
b2EvRW50aXRsZW1lbnRzLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2lt
cG9ydCAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlNsZWVwRGlzYWJs
ZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCisjaW1w
b3J0ICJYUENFbmRwb2ludC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5o
PgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5oPgpAQCAtNzEsNyArNzIsNiBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9TV0NvbnRleHRNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1hQQ0Vu
ZHBvaW50Lmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRj
aC5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjQxODMpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0wOSAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBYUENFbmRw
b2ludCBhbmQgWFBDRW5kcG9pbnRDbGllbnQgY2xhc3NlcyBmcm9tIFdlYkNvcmUgdG8gV2ViS2l0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQwOTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1hQQ0VuZHBvaW50Lm1tOgorCiAyMDIwLTA3LTA5ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIExvY2FsIGludGVy
bmFsIGJ1aWxkcyBmYWlsIG9uIEFwcGxlIFNpbGljb24gKGJ1aWxkaW5nIHlhc20pCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbQkocmV2
aXNpb24gMjY0MTgwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5k
cG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDggQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9Y
UENFbmRwb2ludC5oPgotI2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludENsaWVudC5oPgorI2lt
cG9ydCA8V2ViS2l0L1hQQ0VuZHBvaW50Lmg+CisjaW1wb3J0IDxXZWJLaXQvWFBDRW5kcG9pbnRD
bGllbnQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBzdGF0aWMgYm9vbCBj
bGllbnRDb25uZWN0ZWRUb0VuZHBvaW50ID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403902</attachid>
            <date>2020-07-09 12:10:43 -0700</date>
            <delta_ts>2020-07-09 12:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214099-20200709121043.patch</filename>
            <type>text/plain</type>
            <size>44200</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50
IGFuZCBYUENFbmRwb2ludENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNsYXNz
ZXMgc2hvdWxkIG5vdCBiZSBpbiBXZWJDb3JlLCBidXQgaW4gV2ViS2l0LCBzaW5jZSB0aGV5IGFy
ZSBvbmx5IGV4cGVjdGVkIHRvIGJlIHVzZWQgdGhlcmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBzaW5jZSB0aGlzIHBhdGNoIGlzIG9ubHkgbW92aW5nIHNvdXJjZSBmaWxlcy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9YUENFbmRwb2ludC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1hQQ0VuZHBvaW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvWFBDRW5k
cG9pbnRDbGllbnQubW06IFJlbW92ZWQuCisKIDIwMjAtMDctMDkgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzZXQgQVZTeXN0ZW1Db250cm9sbGVy
X1BJRFRvSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9tIHdoZW4gbWVkaWFzZXJ2ZXJkIGRpZXMK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAwMywxMCArNDAwMyw2IEBA
CiAJCUMxNDlENTVEMjQyRUE2QjkwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU1QTI0MkVBNEY5MDAz
RUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUMxNDlENTVGMjQyRUE3QjgwMDNFQkIxMiAvKiBTbGVlcERpc2Fi
bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNDlENTY3MjQy
RUI4NEEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEy
IC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQzE0RDMwNDkyNEI0RUFCMTAwNDgwMzg3IC8qIFhQQ0Vu
ZHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTREMzA0NzI0QjRFQUE4MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDMTREMzA0QjI0QjRGN0VGMDA0ODAz
ODcgLyogWFBDRW5kcG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMTREMzA0QTI0QjRFQjFFMDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi87
IH07Ci0JCUMxNEQzMDRFMjRCNEY4RkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDRDMjRC
NEY4RjYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAqLzsgfTsKLQkJQzE0RDMwNEYy
NEI0RjhGRjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzA0RDI0QjRGOEY3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDMTY5MkREMjIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREQx
MjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5Lm1tICovOyB9OwogCQlDMTY5MkRENTIz
RDIzRTA4MDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJERDQyM0QyM0FFMDAwNkU4OEY3IC8qIFN5c3Rl
bUJhdHRlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDMUUxRDIzNjIwM0RGMTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzFFMUQyMzUyMDNERjE1
NDAwNTg0NjY1IC8qIFNjcmVlblByb3BlcnRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM3MzgsMTAgKzEzNzM0LDYgQEAKIAkJQzE0OUQ1
NUEyNDJFQTRGOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2xlZXBEaXNhYmxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMTQ5RDU1QjI0MkVBNEZBMDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlckNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDlENTY1MjQyRUI3NjUwMDNFQkIxMiAvKiBT
bGVlcERpc2FibGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVySWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0NzI0QjRFQUE4
MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFBDRW5kcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzE0RDMwNEEy
NEI0RUIxRTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUMxNEQzMDRDMjRCNEY4RjYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFhQQ0VuZHBvaW50Q2xpZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0RDI0QjRGOEY3MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFBDRW5kcG9pbnRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE2
OTJERDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTeXN0ZW1CYXR0ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTeXN0ZW1CYXR0ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEZCNTE4
MjQyRjkzODIwMDdFOTg3NSAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjM2NDgsMTAgKzIzNjQwLDYgQEAKIAkJCQlDREM5NzlGMzFDNDk4QzA5MDBEQjUwRDQg
LyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCAqLywKIAkJCQlDREM5NzlGMjFDNDk4QzA5MDBEQjUw
RDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMubW0gKi8sCiAJCQkJNURGRUJBQjYxODU5MkI2RDAw
Qzc1QkVCIC8qIFdlYktpdEF2YWlsYWJpbGl0eS5oICovLAotCQkJCUMxNEQzMDQ3MjRCNEVBQTgw
MDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovLAotCQkJCUMxNEQzMDRBMjRCNEVCMUUwMDQ4MDM4
NyAvKiBYUENFbmRwb2ludC5tbSAqLywKLQkJCQlDMTREMzA0RDI0QjRGOEY3MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQuaCAqLywKLQkJCQlDMTREMzA0QzI0QjRGOEY2MDA0ODAzODcgLyog
WFBDRW5kcG9pbnRDbGllbnQubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0MDE4LDggKzM0MDA2LDYgQEAKIAkJCQkxQUI3RkM4
NDBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhVdGlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3
RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUMxNEQzMDQ5MjRCNEVBQjEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQzE0RDMwNEYyNEI0RjhGRjAwNDgwMzg3IC8qIFhQQ0VuZHBv
aW50Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI5QzI0MTMxOTUwMDBFNzk0RDYg
LyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRThCOTcy
NDEzMTk1MDAwRTc5NEQ2IC8qIFhSRXllLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI4RjI0
MTMxOTUwMDBFNzk0RDYgLyogWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTIxNSw4ICszNTIwMSw2IEBACiAJCQkJQTgzM0M3Q0MwQTJDRjA3NDAwRDU3NjY0IC8q
IFhMaW5rTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzM0M4MEMwQTJDRjI1NjAwRDU3
NjY0IC8qIFhNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNUEzNkQ5MTEwNDU3Mjcw
MEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUMxNEQzMDRCMjRC
NEY3RUYwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovLAotCQkJCUMxNEQz
MDRFMjRCNEY4RkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUUxRUU4QjdBMjQxMzE5MUYwMEU3OTRENiAvKiBYUklucHV0U291cmNlRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRThCQTcyNDEzMTk2MzAwRTc5NEQ2IC8qIFhSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFFRThCOTUyNDEzMTk1
MDAwRTc5NEQ2IC8qIFhSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQuaAkocmV2aXNp
b24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQu
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9zcGkvZGFy
d2luL1hQQ1NQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFhQQ0VuZHBvaW50
IHsKLXB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBYUENFbmRwb2ludCgpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkgPSBkZWZhdWx0OwotCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCk7
Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9pbnRfdD4gZW5kcG9p
bnQoKSBjb25zdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4cGNNZXNzYWdlTmFtZUtl
eSA9ICJtZXNzYWdlLW5hbWUiOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciog
eHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHhwY0VuZHBvaW50TWVzc2FnZU5hbWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBj
b25zdCBjaGFyKiB4cGNFbmRwb2ludE5hbWVLZXkoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGhhbmRsZUV2ZW50KHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCkgPSAwOwotCi0g
ICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gbV9jb25uZWN0aW9uOwotICAgIE9TT2Jq
ZWN0UHRyPHhwY19lbmRwb2ludF90PiBtX2VuZHBvaW50OwotfTsKLQotfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2NDE4
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Lm1tCShub25l
eGlzdGVudCkKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKLQotI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVt
ZW50cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVhQQ0VuZHBvaW50OjpYUENFbmRwb2lu
dCgpCi17Ci0gICAgbV9jb25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9j
cmVhdGUobnVsbHB0ciwgbnVsbHB0cikpOwotICAgIG1fZW5kcG9pbnQgPSBhZG9wdE9TT2JqZWN0
KHhwY19lbmRwb2ludF9jcmVhdGUobV9jb25uZWN0aW9uLmdldCgpKSk7Ci0KLSAgICB4cGNfY29u
bmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5nZXQoKSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9j
b25uZWN0aW9uLmdldCgpLCBeKHhwY19vYmplY3RfdCBtZXNzYWdlKSB7Ci0gICAgICAgIHhwY190
eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKLQotICAgICAgICBpZiAodHlwZSA9
PSBYUENfVFlQRV9DT05ORUNUSU9OKSB7Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24gPSBtZXNzYWdlOwotICAgICAgICAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2Vu
OwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKGNvbm5lY3Rpb24s
ICZhdWRpdFRva2VuKTsKLQotICAgICAgICAgICAgaWYgKCFXVEY6Omhhc0VudGl0bGVtZW50KGF1
ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQudXNlLXhwYy1lbmRwb2ludCIpKSB7
Ci0gICAgICAgICAgICAgICAgLy8gVW5jb21tZW50IGJlZm9yZSBsYW5kaW5nOyB0aGlzIGlzIGNv
bW1lbnRlZCBvdXQgYmVjYXVzZSB0aGUgYm90cyBkb2VzIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUg
ZW50aXRsZW1lbnRzIG9uIGluY3JlbWVudGFsIGJ1aWxkcy4KLSAgICAgICAgICAgICAgICAvLyBX
VEZMb2dBbHdheXMoIkF1ZGl0IHRva2VuIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZW50aXRsZW1l
bnQiKTsKLSAgICAgICAgICAgICAgICAvLyByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24sIGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCkpOwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50
X2hhbmRsZXIoY29ubmVjdGlvbiwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgICAg
ICAgICBoYW5kbGVFdmVudChjb25uZWN0aW9uLCBldmVudCk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShjb25uZWN0aW9uKTsKLSAgICAgICAgfQot
ICAgIH0pOwotICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwot
fQotCi12b2lkIFhQQ0VuZHBvaW50OjpzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uKQotewotICAgIGlmICghY29ubmVjdGlvbikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYXV0byBtZXNzYWdlID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9j
cmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcobWVzc2FnZS5nZXQoKSwgeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpLCB4cGNFbmRwb2lu
dE1lc3NhZ2VOYW1lKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShtZXNzYWdlLmdl
dCgpLCB4cGNFbmRwb2ludE5hbWVLZXkoKSwgbV9lbmRwb2ludC5nZXQoKSk7Ci0KLSAgICB4cGNf
Y29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZS5nZXQoKSk7Ci19Ci0K
LU9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBYUENFbmRwb2ludDo6ZW5kcG9pbnQoKSBjb25z
dAotewotICAgIHJldHVybiBtX2VuZHBvaW50OwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgJKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5Y
UENFbmRwb2ludENsaWVudCgpIHsgfQotCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmRw
b2ludCh4cGNfZW5kcG9pbnRfdCk7Ci0KLXByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBP
U09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3RfdCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDb25uZWN0KCkgPSAwOwotCi0gICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rp
b25fdD4gbV9jb25uZWN0aW9uOwotICAgIExvY2sgbV9sb2NrOwotfTsKLQotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0J
KHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0Vu
ZHBvaW50Q2xpZW50Lm1tCShub25leGlzdGVudCkKQEAgLTEsODEgKzAsMCBAQAotLyoKLSogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSoKLSogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0qIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotKiBhcmUgbWV0OgotKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0q
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSoKLSogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIlhQQ0VuZHBvaW50Q2xpZW50LmgiCi0KLSNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRp
dGxlbWVudHMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFhQQ0VuZHBvaW50Q2xp
ZW50OjpzZXRFbmRwb2ludCh4cGNfZW5kcG9pbnRfdCBlbmRwb2ludCkKLXsKLSAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7Ci0KLSAgICAgICAgaWYgKG1fY29ubmVjdGlv
bikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9T
T2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZV9mcm9tX2VuZHBvaW50KGVuZHBvaW50KSk7Ci0K
LSAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShtX2Nvbm5lY3Rpb24uZ2V0
KCksIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCkpOwotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nv
bm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIHhw
Y190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShtZXNzYWdlKTsKLSAgICAgICAgICAgIGlmICh0
eXBlID09IFhQQ19UWVBFX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCB8fCBtZXNzYWdlID09IFhQQ19FUlJPUl9URVJN
SU5BVElPTl9JTU1JTkVOVCkgewotICAgICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwotICAgICAgICAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAodHlwZSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgYXV0byBjb25uZWN0aW9uID0geHBjX2RpY3Rp
b25hcnlfZ2V0X3JlbW90ZV9jb25uZWN0aW9uKG1lc3NhZ2UpOwotICAgICAgICAgICAgaWYgKCFj
b25uZWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGF1ZGl0X3Rv
a2VuX3QgYXVkaXRUb2tlbjsKLSAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX2dldF9hdWRpdF90
b2tlbihjb25uZWN0aW9uLCAmYXVkaXRUb2tlbik7Ci0gICAgICAgICAgICBpZiAoIVdURjo6aGFz
RW50aXRsZW1lbnQoYXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBj
LWVuZHBvaW50IikpIHsKLSAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRp
bmc7IHRoaXMgaXMgY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0g
dG8gdXBkYXRlIHRoZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgotICAgICAg
ICAgICAgICAgIC8vIFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1
aXJlZCBlbnRpdGxlbWVudCIpOwotICAgICAgICAgICAgICAgIC8vIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGhhbmRsZUV2ZW50KG1lc3NhZ2UpOwotICAgICAgICB9KTsKLQot
ICAgICAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUobV9jb25uZWN0aW9uLmdldCgpKTsKLSAgICB9
Ci0KLSAgICBkaWRDb25uZWN0KCk7Ci19Ci0KLU9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IFhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0aW9uKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOwotICAgIHJldHVybiBtX2Nvbm5lY3Rpb247Ci19Ci0KLX0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTA5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50IGFuZCBYUENFbmRwb2lu
dENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1
bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1hQ
Q0VuZHBvaW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQ
Q0VuZHBvaW50LmguCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbS4KKyAg
ICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50OjpYUENFbmRwb2ludCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6c2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50OjplbmRwb2ludCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lmgu
CisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludENsaWVudDo6flhQQ0VuZHBvaW50Q2xpZW50
KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW06
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xp
ZW50Lm1tLgorICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQ6OnNldEVuZHBvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50Q2xpZW50Ojpjb25uZWN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU1hbmFnZXIubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisKIDIwMjAtMDctMDkgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gQnVpbGRmaXggd2hlbiBXUEVCYWNrZW5kLWZkbyBpcyBub3QgYXZhaWxhYmxl
CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VPYnNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmgJKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEzICsyNywxMyBAQAog
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1N1
cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1hQQ0VuZHBvaW50Lmg+CisjaW5jbHVkZSAi
WFBDRW5kcG9pbnQuaCIKICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBMYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29yZTo6WFBDRW5kcG9pbnQsIHB1Ymxp
YyBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQgeworY2xhc3MgTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU9ic2VydmVyIDogcHVibGljIFdlYktpdDo6WFBDRW5kcG9pbnQsIHB1YmxpYyBOZXR3b3JrUHJv
Y2Vzc1N1cHBsZW1lbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlcihOZXR3b3JrUHJvY2VzcyYpOwpJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCShyZXZpc2lvbiAyNjQx
ODApCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Lmg6MjY0
MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUENFbmRwb2ludCB7CitwdWJs
aWM6CisgICAgV0VCQ09SRV9FWFBPUlQgWFBDRW5kcG9pbnQoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIH5YUENFbmRwb2ludCgpID0gZGVmYXVsdDsKKworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QpOworCisgICAg
V0VCQ09SRV9FWFBPUlQgT1NPYmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IGVuZHBvaW50KCkgY29u
c3Q7CisKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8geHBjTWVzc2FnZU5hbWVLZXkgPSAibWVz
c2FnZS1uYW1lIjsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHhwY0VuZHBv
aW50TWVzc2FnZU5hbWVLZXkoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiB4
cGNFbmRwb2ludE1lc3NhZ2VOYW1lKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogeHBjRW5kcG9pbnROYW1lS2V5KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVFdmVudCh4cGNfY29ubmVjdGlvbl90LCB4cGNfb2JqZWN0X3QpID0gMDsKKworICAgIE9TT2Jq
ZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKKyAgICBPU09iamVjdFB0cjx4
cGNfZW5kcG9pbnRfdD4gbV9lbmRwb2ludDsKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTkg
KzI1LDIwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiV0tEZWNsYXJhdGlvblNwZWNp
ZmllcnMuaCIKICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbmNsdWRlIDx3dGYvc3Bp
L2Rhcndpbi9YUENTUEkuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFhQQ0VuZHBvaW50IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBY
UENFbmRwb2ludCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflhQQ0VuZHBvaW50KCkg
PSBkZWZhdWx0OworICAgIFdLX0VYUE9SVCBYUENFbmRwb2ludCgpOworICAgIFdLX0VYUE9SVCB2
aXJ0dWFsIH5YUENFbmRwb2ludCgpID0gZGVmYXVsdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2VuZEVuZHBvaW50VG9Db25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QpOworICAgIFdLX0VY
UE9SVCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90KTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBlbmRwb2ludCgp
IGNvbnN0OworICAgIFdLX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9pbnRfdD4gZW5kcG9p
bnQoKSBjb25zdDsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byB4cGNNZXNzYWdlTmFtZUtl
eSA9ICJtZXNzYWdlLW5hbWUiOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Y
UENFbmRwb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Y
UENFbmRwb2ludC5tbQkocmV2aXNpb24gMjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbToyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9YUENFbmRwb2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJYUENFbmRwb2ludC5oIgor
CisjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworWFBDRW5kcG9pbnQ6OlhQQ0VuZHBvaW50KCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBh
ZG9wdE9TT2JqZWN0KHhwY19jb25uZWN0aW9uX2NyZWF0ZShudWxscHRyLCBudWxscHRyKSk7Cisg
ICAgbV9lbmRwb2ludCA9IGFkb3B0T1NPYmplY3QoeHBjX2VuZHBvaW50X2NyZWF0ZShtX2Nvbm5l
Y3Rpb24uZ2V0KCkpKTsKKworICAgIHhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUobV9j
b25uZWN0aW9uLmdldCgpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKKyAgICB4cGNfY29u
bmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihtX2Nvbm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVj
dF90IG1lc3NhZ2UpIHsKKyAgICAgICAgeHBjX3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1l
c3NhZ2UpOworCisgICAgICAgIGlmICh0eXBlID09IFhQQ19UWVBFX0NPTk5FQ1RJT04pIHsKKyAg
ICAgICAgICAgIHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiA9IG1lc3NhZ2U7CisgICAgICAg
ICAgICBhdWRpdF90b2tlbl90IGF1ZGl0VG9rZW47CisgICAgICAgICAgICB4cGNfY29ubmVjdGlv
bl9nZXRfYXVkaXRfdG9rZW4oY29ubmVjdGlvbiwgJmF1ZGl0VG9rZW4pOworCisgICAgICAgICAg
ICBpZiAoIVdURjo6aGFzRW50aXRsZW1lbnQoYXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRl
LndlYmtpdC51c2UteHBjLWVuZHBvaW50IikpIHsKKyAgICAgICAgICAgICAgICAvLyBVbmNvbW1l
bnQgYmVmb3JlIGxhbmRpbmc7IHRoaXMgaXMgY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3Rz
IGRvZXMgbm90IHNlZW0gdG8gdXBkYXRlIHRoZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwg
YnVpbGRzLgorICAgICAgICAgICAgICAgIC8vIFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9l
cyBub3QgaGF2ZSByZXF1aXJlZCBlbnRpdGxlbWVudCIpOworICAgICAgICAgICAgICAgIC8vIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3NldF90YXJn
ZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAgICAg
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLCBeKHhwY19v
YmplY3RfdCBldmVudCkgeworICAgICAgICAgICAgICAgIGhhbmRsZUV2ZW50KGNvbm5lY3Rpb24s
IGV2ZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fcmVz
dW1lKGNvbm5lY3Rpb24pOworICAgICAgICB9CisgICAgfSk7CisgICAgeHBjX2Nvbm5lY3Rpb25f
cmVzdW1lKG1fY29ubmVjdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgWFBDRW5kcG9pbnQ6OnNlbmRF
bmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pCit7CisgICAg
aWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG1lc3NhZ2UgPSBh
ZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7
CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhtZXNzYWdlLmdldCgpLCB4cGNFbmRwb2lu
dE1lc3NhZ2VOYW1lS2V5KCksIHhwY0VuZHBvaW50TWVzc2FnZU5hbWUoKSk7CisgICAgeHBjX2Rp
Y3Rpb25hcnlfc2V0X3ZhbHVlKG1lc3NhZ2UuZ2V0KCksIHhwY0VuZHBvaW50TmFtZUtleSgpLCBt
X2VuZHBvaW50LmdldCgpKTsKKworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlLmdldCgpKTsKK30KKworT1NPYmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+
IFhQQ0VuZHBvaW50OjplbmRwb2ludCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZW5kcG9pbnQ7
Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Lm1t
CShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRw
b2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAjaW1wb3J0IDx3dGYv
Y29jb2EvRW50aXRsZW1lbnRzLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBX
ZWJLaXQgewogCiBYUENFbmRwb2ludDo6WFBDRW5kcG9pbnQoKQogewpJbmRleDogU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5oCShyZXZpc2lvbiAyNjQx
ODApCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
Lmg6MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5YUENFbmRwb2ludENsaWVudCgpIHsgfQorCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRF
bmRwb2ludCh4cGNfZW5kcG9pbnRfdCk7CisKK3Byb3RlY3RlZDoKKyAgICBXRUJDT1JFX0VYUE9S
VCBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3RfdCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRDb25uZWN0KCkgPSAwOworCisgICAgT1NPYmplY3RQdHI8eHBjX2Nvbm5l
Y3Rpb25fdD4gbV9jb25uZWN0aW9uOworICAgIExvY2sgbV9sb2NrOworfTsKKworfQpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5oCShyZXZp
c2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwyMCArMjUsMjEgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oIgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9k
YXJ3aW4vWFBDU1BJLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBYUENFbmRwb2ludENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+WFBD
RW5kcG9pbnRDbGllbnQoKSB7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RW5kcG9p
bnQoeHBjX2VuZHBvaW50X3QpOworICAgIFdLX0VYUE9SVCB2b2lkIHNldEVuZHBvaW50KHhwY19l
bmRwb2ludF90KTsKIAogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24oKTsKKyAgICBXS19FWFBPUlQgT1NPYmplY3RQ
dHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbigpOwogCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVFdmVudCh4cGNfb2JqZWN0X3QpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1tCShyZXZpc2lvbiAyNjQx
ODApCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
Lm1tOjI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xp
ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODEgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJYUENFbmRwb2ludENsaWVudC5oIgorCisjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRz
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBYUENFbmRwb2ludENsaWVudDo6c2V0
RW5kcG9pbnQoeHBjX2VuZHBvaW50X3QgZW5kcG9pbnQpCit7CisgICAgeworICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOworCisgICAgICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9jb25uZWN0aW9uID0gYWRvcHRPU09iamVjdCh4
cGNfY29ubmVjdGlvbl9jcmVhdGVfZnJvbV9lbmRwb2ludChlbmRwb2ludCkpOworCisgICAgICAg
IHhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUobV9jb25uZWN0aW9uLmdldCgpLCBkaXNw
YXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDAp
KTsKKyAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9u
LmdldCgpLCBeKHhwY19vYmplY3RfdCBtZXNzYWdlKSB7CisgICAgICAgICAgICB4cGNfdHlwZV90
IHR5cGUgPSB4cGNfZ2V0X3R5cGUobWVzc2FnZSk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBY
UENfVFlQRV9FUlJPUikgeworICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlID09IFhQQ19FUlJP
Ul9DT05ORUNUSU9OX0lOVkFMSUQgfHwgbWVzc2FnZSA9PSBYUENfRVJST1JfVEVSTUlOQVRJT05f
SU1NSU5FTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKHR5cGUgIT0gWFBDX1RZUEVfRElDVElPTkFSWSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IHhwY19kaWN0aW9uYXJ5X2dl
dF9yZW1vdGVfY29ubmVjdGlvbihtZXNzYWdlKTsKKyAgICAgICAgICAgIGlmICghY29ubmVjdGlv
bikKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBhdWRpdF90b2tlbl90IGF1
ZGl0VG9rZW47CisgICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oY29u
bmVjdGlvbiwgJmF1ZGl0VG9rZW4pOworICAgICAgICAgICAgaWYgKCFXVEY6Omhhc0VudGl0bGVt
ZW50KGF1ZGl0VG9rZW4sICJjb20uYXBwbGUucHJpdmF0ZS53ZWJraXQudXNlLXhwYy1lbmRwb2lu
dCIpKSB7CisgICAgICAgICAgICAgICAgLy8gVW5jb21tZW50IGJlZm9yZSBsYW5kaW5nOyB0aGlz
IGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSB0aGUgYm90cyBkb2VzIG5vdCBzZWVtIHRvIHVwZGF0
ZSB0aGUgZW50aXRsZW1lbnRzIG9uIGluY3JlbWVudGFsIGJ1aWxkcy4KKyAgICAgICAgICAgICAg
ICAvLyBXVEZMb2dBbHdheXMoIkF1ZGl0IHRva2VuIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZW50
aXRsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICAvLyByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBoYW5kbGVFdmVudChtZXNzYWdlKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
eHBjX2Nvbm5lY3Rpb25fcmVzdW1lKG1fY29ubmVjdGlvbi5nZXQoKSk7CisgICAgfQorCisgICAg
ZGlkQ29ubmVjdCgpOworfQorCitPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBYUENFbmRw
b2ludENsaWVudDo6Y29ubmVjdGlvbigpCit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2Nr
KTsKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uOworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQkocmV2aXNpb24gMjY0MTgw
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0
bGVtZW50cy5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2ViS2l0IHsKIAog
dm9pZCBYUENFbmRwb2ludENsaWVudDo6c2V0RW5kcG9pbnQoeHBjX2VuZHBvaW50X3QgZW5kcG9p
bnQpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjY0MTgwKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2ltcG9ydCAiTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIK
LSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9pbnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBvaW50Lmgi
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2ODQsNiArMTY4NCw4IEBACiAJCUMxMUE5RUNDMjE0MDM1RjgwMENGQjIwQSAvKiBXZWJTd2l0
Y2hpbmdHUFVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMxMUE5RUNCMjE0MDM1RjgwMENGQjIwQSAvKiBXZWJTd2l0Y2hpbmdHUFVDbGllbnQu
aCAqLzsgfTsKIAkJQzExRTE2OTQyMTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMUUxNjkyMjEy
Qjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OTM4MDkyMjM0NzEwNDAwMENENzA3IC8qIFdl
YlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oICovOyB9OworCQlDMTREMzA2OTI0Qjc5QkUwMDA0ODAzODcgLyogWFBDRW5k
cG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTREMzA2NTI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi87IH07CisJCUMxNEQz
MDZBMjRCNzlCRTQwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDY2MjRCNzk0RTcwMDQ4MDM4
NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAqLzsgfTsKIAkJQzE0RDM3RkUyNEFDRTA4NjAwN0ZG
MDE0IC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0RDM3RkQyNEFDRTA4NjAwN0ZGMDE0IC8q
IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tICovOyB9OwogCQlDMTVDQkIzNjIzRjM3
NzcxMDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1Q0MwRTIzRENBNDI3MDAzQTVFRUIgLyogUHJl
ZmVyZW5jZU9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNUNC
QjMzMjNGMzRDMzgwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIubW0gKi87IH07CkBAIC01
MDIxLDYgKzUwMjMsMTAgQEAKIAkJQzE0OTM4MDIyMjM0MUM2MDAwMENENzA3IC8qIFdlYlNwZWVj
aFN5bnRoZXNpc0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVlY2hTeW50aGVzaXNDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0OTM4MDMyMjM0MURGNzAwMENE
NzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMTQ5MzgwQTIyMzg1M0JFMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoU3ludGhlc2lzVm9pY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzE0RDMwNjUyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNEQzMDY2MjRCNzk0RTcwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFhQQ0VuZHBvaW50Q2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMTREMzA2NzI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWFBDRW5kcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzE0RDMwNjgyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQQ0VuZHBvaW50Q2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNEQzN0ZDMjRBQ0RGNDUwMDdGRjAxNCAvKiBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTRE
MzdGRDI0QUNFMDg2MDA3RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE1Q0JCMzMyM0YzNEMzODAwMzAwQ0M3IC8q
IFByZWZlcmVuY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByZWZlcmVuY2VP
YnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc1MjYsNiArNzUzMiwx
MCBAQAogCQkJCTM3QkYyRjA1MTk0N0RFQjQwMDcyM0M0OCAvKiBXS05TVVJMUmVxdWVzdC5tbSAq
LywKIAkJCQkzNzhFMUEzRjE4MUVEQTAxMDAzMTAwN0EgLyogV0tPYmplY3QuaCAqLywKIAkJCQkz
NzQ0MzY4NzE4MjBFNzI0MDA0OTU3OUYgLyogV0tPYmplY3QubW0gKi8sCisJCQkJQzE0RDMwNjcy
NEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50LmggKi8sCisJCQkJQzE0RDMwNjUyNEI3OTRF
NzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovLAorCQkJCUMxNEQzMDY4MjRCNzk0RTcwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5oICovLAorCQkJCUMxNEQzMDY2MjRCNzk0RTcwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7
CiAJCQlwYXRoID0gQ29jb2E7CkBAIC0xMzExNCw2ICsxMzEyNCw4IEBACiAJCQkJMURCMDE5NDQy
MTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdB
NzhGRjMzMjI0MTkxOUIwMDk2NDgzRSAvKiBXS1N0b3JhZ2VBY2Nlc3NBbGVydC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNFMjEyMTYwMjQwRUU1NzEwMDZFRDQ0MyAvKiBXS1RleHRQbGFjZWhvbGRl
ci5tbSBpbiBTb3VyY2VzICovLAorCQkJCUMxNEQzMDY5MjRCNzlCRTAwMDQ4MDM4NyAvKiBYUENF
bmRwb2ludC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUMxNEQzMDZBMjRCNzlCRTQwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0
YWJhc2VNYW5hZ2VyLmgJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSwxMyArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbXBvcnQgPFdlYkNvcmUv
WFBDRW5kcG9pbnRDbGllbnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBvaW50Q2xpZW50LmgiCiAjaW1w
b3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNl
bWFwaG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTGF1bmNoU2VydmljZXNE
YXRhYmFzZU1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQgeworY2xh
c3MgTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIgOiBwdWJsaWMgV2ViS2l0OjpYUENFbmRw
b2ludENsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VN
YW5hZ2VyJiBzaW5nbGV0b24oKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5t
bQkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xh
dW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsy
Nyw3IEBACiAjaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oIgogCiAjaW1w
b3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgiCi0jaW1wb3J0IDxXZWJD
b3JlL1hQQ0VuZHBvaW50Lmg+CisjaW1wb3J0ICJYUENFbmRwb2ludC5oIgogI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0
bGVtZW50cy5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgIldl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgorI2ltcG9ydCAiWFBD
RW5kcG9pbnQuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL09wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3NldE1J
TUVUeXBlQ2FjaGUuaD4KQEAgLTcxLDcgKzcyLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvU1dDb250
ZXh0TWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludC5o
PgogI2ltcG9ydCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNp
bXBvcnQgPG9iamMvcnVudGltZS5oPgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY0MTgzKQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDctMDkgIFBlciBBcm5lIFZv
bGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgWFBDRW5kcG9pbnQgYW5k
IFhQQ0VuZHBvaW50Q2xpZW50IGNsYXNzZXMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbToKKwogMjAyMC0wNy0wOSAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBMb2NhbCBpbnRlcm5hbCBidWls
ZHMgZmFpbCBvbiBBcHBsZSBTaWxpY29uIChidWlsZGluZyB5YXNtKQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2
NDE4MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1hQQ0VuZHBvaW50Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAKLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9p
bnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9pbnRDbGllbnQuaD4KKyNpbXBvcnQgPFdl
YktpdC9YUENFbmRwb2ludC5oPgorI2ltcG9ydCA8V2ViS2l0L1hQQ0VuZHBvaW50Q2xpZW50Lmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogc3RhdGljIGJvb2wgY2xpZW50Q29u
bmVjdGVkVG9FbmRwb2ludCA9IGZhbHNlOwpAQCAtMzcsNyArMzcsNyBAQCBzdGF0aWMgYm9vbCBj
bGllbnRSZWNlaXZlZE1lc3NhZ2VGcm9tRW5kCiBzdGF0aWMgY29uc3RleHByIGF1dG8gdGVzdE1l
c3NhZ2VGcm9tRW5kcG9pbnQgPSAidGVzdC1tZXNzYWdlLWZyb20tZW5kcG9pbnQiOwogc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHRlc3RNZXNzYWdlRnJvbUNsaWVudCA9ICJ0ZXN0LW1lc3NhZ2UtZnJv
bS1jbGllbnQiOwogCi1jbGFzcyBYUENFbmRwb2ludCA6IHB1YmxpYyBXZWJDb3JlOjpYUENFbmRw
b2ludCB7CitjbGFzcyBYUENFbmRwb2ludCA6IHB1YmxpYyBXZWJLaXQ6OlhQQ0VuZHBvaW50IHsK
IHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtleSgpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewpAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIH0KIH07
CiAKLWNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OlhQQ0VuZHBvaW50
Q2xpZW50IHsKK2NsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IDogcHVibGljIFdlYktpdDo6WFBDRW5k
cG9pbnRDbGllbnQgewogcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUV2ZW50KHhwY19vYmplY3Rf
dCBldmVudCkgb3ZlcnJpZGUKICAgICB7Cg==
</data>
<flag name="review"
          id="419300"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403911</attachid>
            <date>2020-07-09 13:33:23 -0700</date>
            <delta_ts>2020-07-09 14:11:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214099-20200709133322.patch</filename>
            <type>text/plain</type>
            <size>44421</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50
IGFuZCBYUENFbmRwb2ludENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVGhlc2UgY2xh
c3NlcyBzaG91bGQgbm90IGJlIGluIFdlYkNvcmUsIGJ1dCBpbiBXZWJLaXQsIHNpbmNlIHRoZXkg
YXJlIG9ubHkgZXhwZWN0ZWQgdG8gYmUgdXNlZCB0aGVyZS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgb25seSBtb3Zpbmcgc291cmNlIGZpbGVzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1hQQ0VuZHBvaW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29j
b2EvWFBDRW5kcG9pbnQubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvWFBD
RW5kcG9pbnRDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9YUENF
bmRwb2ludENsaWVudC5tbTogUmVtb3ZlZC4KKwogMjAyMC0wNy0wOSAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNldCBBVlN5c3RlbUNvbnRyb2xs
ZXJfUElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20gd2hlbiBtZWRpYXNlcnZlcmQgZGll
cwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MDAzLDEwICs0MDAzLDYg
QEAKIAkJQzE0OUQ1NUQyNDJFQTZCOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTVBMjQyRUE0Rjkw
MDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OUQ1NUYyNDJFQTdCODAwM0VCQjEyIC8qIFNsZWVwRGlz
YWJsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OUQ1Njcy
NDJFQjg0QTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU2NTI0MkVCNzY1MDAzRUJC
MTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDMTREMzA0OTI0QjRFQUIxMDA0ODAzODcgLyogWFBD
RW5kcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMxNEQzMDQ3MjRCNEVBQTgwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUMxNEQzMDRCMjRCNEY3RUYwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMxNEQzMDRBMjRCNEVCMUUwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSAq
LzsgfTsKLQkJQzE0RDMwNEUyNEI0RjhGQTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0RDMwNEMy
NEI0RjhGNjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovOyB9OwotCQlDMTREMzA0
RjI0QjRGOEZGMDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDREMjRCNEY4RjcwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJE
RDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi87IH07CiAJCUMxNjkyREQ1
MjNEMjNFMDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lz
dGVtQmF0dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMUUxRDIzNTIwM0RG
MTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzczOCwxMCArMTM3MzQsNiBAQAogCQlDMTQ5
RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEyIC8q
IFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMxNEQzMDQ3MjRCNEVB
QTgwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUENFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0
QTI0QjRFQjFFMDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBYUENFbmRwb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQzE0RDMwNEMyNEI0RjhGNjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnRDbGll
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMxNEQzMDREMjRCNEY4RjcwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUENFbmRwb2ludENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5c3RlbUJhdHRlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1
MTgyNDJGOTM4MjAwN0U5ODc1IC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMzY0OCwxMCArMjM2NDAsNiBAQAogCQkJCUNEQzk3OUYzMUM0OThDMDkwMERCNTBE
NCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5oICovLAogCQkJCUNEQzk3OUYyMUM0OThDMDkwMERC
NTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLywKIAkJCQk1REZFQkFCNjE4NTkyQjZE
MDBDNzVCRUIgLyogV2ViS2l0QXZhaWxhYmlsaXR5LmggKi8sCi0JCQkJQzE0RDMwNDcyNEI0RUFB
ODAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50LmggKi8sCi0JCQkJQzE0RDMwNEEyNEI0RUIxRTAwNDgw
Mzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovLAotCQkJCUMxNEQzMDREMjRCNEY4RjcwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5oICovLAotCQkJCUMxNEQzMDRDMjRCNEY4RjYwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzQwMTgsOCArMzQwMDYsNiBAQAogCQkJCTFBQjdG
Qzg0MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
QjdGQzg2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI3RkM4ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQzE0RDMwNDkyNEI0RUFCMTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQlDMTREMzA0RjI0QjRGOEZGMDA0ODAzODcgLyogWFBDRW5k
cG9pbnRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4QjlDMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI5
NzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFeWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4QjhG
MjQxMzE5NTAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKQEAgLTM1MjE1LDggKzM1MjAxLDYgQEAKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQg
LyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNGMjU2MDBE
NTc2NjQgLyogWE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1QTM2RDkxMTA0NTcy
NzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzE0RDMwNEIy
NEI0RjdFRjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQzE0
RDMwNEUyNEI0RjhGQTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTFFRThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVFOEI5NTI0MTMx
OTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5oCShyZXZp
c2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2lu
dC5oCShub25leGlzdGVudCkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3NwaS9k
YXJ3aW4vWFBDU1BJLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgWFBDRW5kcG9p
bnQgewotcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFhQQ0VuZHBvaW50KCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90
KTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBlbmRw
b2ludCgpIGNvbnN0OwotCi0gICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHhwY01lc3NhZ2VOYW1l
S2V5ID0gIm1lc3NhZ2UtbmFtZSI7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFy
KiB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29u
c3QgY2hhciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHhwY0VuZHBvaW50TmFtZUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90KSA9IDA7Ci0K
LSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247Ci0gICAgT1NP
YmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IG1fZW5kcG9pbnQ7Ci19OwotCi19CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbQkocmV2aXNpb24gMjY0
MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0JKG5v
bmV4aXN0ZW50KQpAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJYUENFbmRwb2ludC5oIgotCi0jaW1wb3J0IDx3dGYvY29jb2EvRW50aXRs
ZW1lbnRzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotWFBDRW5kcG9pbnQ6OlhQQ0VuZHBv
aW50KCkKLXsKLSAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2JqZWN0KHhwY19jb25uZWN0aW9u
X2NyZWF0ZShudWxscHRyLCBudWxscHRyKSk7Ci0gICAgbV9lbmRwb2ludCA9IGFkb3B0T1NPYmpl
Y3QoeHBjX2VuZHBvaW50X2NyZWF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpKTsKLQotICAgIHhwY19j
b25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUobV9jb25uZWN0aW9uLmdldCgpLCBkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlciht
X2Nvbm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKLSAgICAgICAgeHBj
X3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOwotCi0gICAgICAgIGlmICh0eXBl
ID09IFhQQ19UWVBFX0NPTk5FQ1RJT04pIHsKLSAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3Qg
Y29ubmVjdGlvbiA9IG1lc3NhZ2U7Ci0gICAgICAgICAgICBhdWRpdF90b2tlbl90IGF1ZGl0VG9r
ZW47Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oY29ubmVjdGlv
biwgJmF1ZGl0VG9rZW4pOwotCi0gICAgICAgICAgICBpZiAoIVdURjo6aGFzRW50aXRsZW1lbnQo
YXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBjLWVuZHBvaW50Iikp
IHsKLSAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRpbmc7IHRoaXMgaXMg
Y29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0gdG8gdXBkYXRlIHRo
ZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgotICAgICAgICAgICAgICAgIC8v
IFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBlbnRpdGxl
bWVudCIpOwotICAgICAgICAgICAgICAgIC8vIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSk7Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZl
bnRfaGFuZGxlcihjb25uZWN0aW9uLCBeKHhwY19vYmplY3RfdCBldmVudCkgewotICAgICAgICAg
ICAgICAgIGhhbmRsZUV2ZW50KGNvbm5lY3Rpb24sIGV2ZW50KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKGNvbm5lY3Rpb24pOwotICAgICAgICB9
Ci0gICAgfSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKG1fY29ubmVjdGlvbi5nZXQoKSk7
Ci19Ci0KLXZvaWQgWFBDRW5kcG9pbnQ6OnNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29u
bmVjdGlvbl90IGNvbm5lY3Rpb24pCi17Ci0gICAgaWYgKCFjb25uZWN0aW9uKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7Ci0gICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0
cmluZyhtZXNzYWdlLmdldCgpLCB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCksIHhwY0VuZHBv
aW50TWVzc2FnZU5hbWUoKSk7Ci0gICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKG1lc3NhZ2Uu
Z2V0KCksIHhwY0VuZHBvaW50TmFtZUtleSgpLCBtX2VuZHBvaW50LmdldCgpKTsKLQotICAgIHhw
Y19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlLmdldCgpKTsKLX0K
LQotT1NPYmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IFhQQ0VuZHBvaW50OjplbmRwb2ludCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQ7Ci19Ci0KLX0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAkocmV2aXNpb24g
MjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGll
bnQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgWFBDRW5kcG9pbnRDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwg
flhQQ0VuZHBvaW50Q2xpZW50KCkgeyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVu
ZHBvaW50KHhwY19lbmRwb2ludF90KTsKLQotcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JU
IE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24oKTsKLQotcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoeHBjX29iamVjdF90KSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7Ci0KLSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVj
dGlvbl90PiBtX2Nvbm5lY3Rpb247Ci0gICAgTG9jayBtX2xvY2s7Ci19OwotCi19CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5t
bQkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBD
RW5kcG9pbnRDbGllbnQubW0JKG5vbmV4aXN0ZW50KQpAQCAtMSw4MSArMCwwIEBACi0vKgotKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0qIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0q
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiWFBDRW5kcG9pbnRDbGllbnQuaCIKLQotI2ltcG9ydCA8d3RmL2NvY29hL0Vu
dGl0bGVtZW50cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgWFBDRW5kcG9pbnRD
bGllbnQ6OnNldEVuZHBvaW50KHhwY19lbmRwb2ludF90IGVuZHBvaW50KQotewotICAgIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKLQotICAgICAgICBpZiAobV9jb25uZWN0
aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0
T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX2Zyb21fZW5kcG9pbnQoZW5kcG9pbnQpKTsK
LQotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5n
ZXQoKSwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9E
RUZBVUxULCAwKSk7Ci0gICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1f
Y29ubmVjdGlvbi5nZXQoKSwgXih4cGNfb2JqZWN0X3QgbWVzc2FnZSkgewotICAgICAgICAgICAg
eHBjX3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOwotICAgICAgICAgICAgaWYg
KHR5cGUgPT0gWFBDX1RZUEVfRVJST1IpIHsKLSAgICAgICAgICAgICAgICBpZiAobWVzc2FnZSA9
PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEIHx8IG1lc3NhZ2UgPT0gWFBDX0VSUk9SX1RF
Uk1JTkFUSU9OX0lNTUlORU5UKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgICAgICAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmICh0eXBlICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSB4cGNfZGlj
dGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24obWVzc2FnZSk7Ci0gICAgICAgICAgICBpZiAo
IWNvbm5lY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYXVkaXRf
dG9rZW5fdCBhdWRpdFRva2VuOwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0
X3Rva2VuKGNvbm5lY3Rpb24sICZhdWRpdFRva2VuKTsKLSAgICAgICAgICAgIGlmICghV1RGOjpo
YXNFbnRpdGxlbWVudChhdWRpdFRva2VuLCAiY29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVzZS14
cGMtZW5kcG9pbnQiKSkgewotICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBiZWZvcmUgbGFu
ZGluZzsgdGhpcyBpcyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGJvdHMgZG9lcyBub3Qgc2Vl
bSB0byB1cGRhdGUgdGhlIGVudGl0bGVtZW50cyBvbiBpbmNyZW1lbnRhbCBidWlsZHMuCi0gICAg
ICAgICAgICAgICAgLy8gV1RGTG9nQWx3YXlzKCJBdWRpdCB0b2tlbiBkb2VzIG5vdCBoYXZlIHJl
cXVpcmVkIGVudGl0bGVtZW50Iik7Ci0gICAgICAgICAgICAgICAgLy8gcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaGFuZGxlRXZlbnQobWVzc2FnZSk7Ci0gICAgICAgIH0pOwot
Ci0gICAgICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotICAg
IH0KLQotICAgIGRpZENvbm5lY3QoKTsKLX0KLQotT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25f
dD4gWFBDRW5kcG9pbnRDbGllbnQ6OmNvbm5lY3Rpb24oKQotewotICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIG1fY29ubmVjdGlvbjsKLX0KLQotfQpJbmRleDogU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDctMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgWFBDRW5kcG9pbnQgYW5kIFhQQ0VuZHBv
aW50Q2xpZW50IGNsYXNzZXMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDk5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oOgorICAgICAgICAqIFNoYXJlZC9Db2Nv
YS9YUENFbmRwb2ludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9YUENFbmRwb2ludC5oLgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0u
CisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6WFBDRW5kcG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnQ6OnNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6ZW5kcG9pbnQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVu
dC5oLgorICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQ6On5YUENFbmRwb2ludENs
aWVudCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
Lm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2lu
dENsaWVudC5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50Q2xpZW50OjpzZXRFbmRw
b2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludENsaWVudDo6Y29u
bmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0
YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tOgorCiAyMDIwLTA3LTA5ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1aWxkZml4IHdoZW4gV1BFQmFja2VuZC1mZG8gaXMgbm90IGF2YWls
YWJsZQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlT2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oCShyZXZpc2lv
biAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNl
cnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMg
QEAKIAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2luY2x1
ZGUgIlhQQ0VuZHBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTGF1bmNo
U2VydmljZXNEYXRhYmFzZU9ic2VydmVyIDogcHVibGljIFdlYkNvcmU6OlhQQ0VuZHBvaW50LCBw
dWJsaWMgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50IHsKK2NsYXNzIExhdW5jaFNlcnZpY2VzRGF0
YWJhc2VPYnNlcnZlciA6IHB1YmxpYyBXZWJLaXQ6OlhQQ0VuZHBvaW50LCBwdWJsaWMgTmV0d29y
a1Byb2Nlc3NTdXBwbGVtZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIoTmV0d29ya1Byb2Nlc3MmKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAkocmV2aXNpb24g
MjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5o
OjI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4v
WFBDU1BJLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFBDRW5kcG9pbnQgewor
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFhQQ0VuZHBvaW50KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90KTsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBlbmRwb2ludCgp
IGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHhwY01lc3NhZ2VOYW1lS2V5ID0g
Im1lc3NhZ2UtbmFtZSI7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiB4cGNF
bmRwb2ludE1lc3NhZ2VOYW1lS2V5KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHhwY0VuZHBvaW50TmFtZUtleSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlRXZlbnQoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90KSA9IDA7CisKKyAgICBP
U09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgT1NPYmplY3RQ
dHI8eHBjX2VuZHBvaW50X3Q+IG1fZW5kcG9pbnQ7Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDE5ICsyNSwyMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIldLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmgiCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBYUENFbmRwb2ludCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgWFBDRW5kcG9pbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5YUENFbmRwb2lu
dCgpID0gZGVmYXVsdDsKKyAgICBXS19FWFBPUlQgWFBDRW5kcG9pbnQoKTsKKyAgICBXS19FWFBP
UlQgdmlydHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90KTsKKyAgICBX
S19FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9pbnRfdD4gZW5kcG9p
bnQoKSBjb25zdDsKKyAgICBXS19FWFBPUlQgT1NPYmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IGVu
ZHBvaW50KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgY29uc3RleHByIGF1dG8geHBjTWVzc2FnZU5h
bWVLZXkgPSAibWVzc2FnZS1uYW1lIjsKIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2NDE4MCkJKGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW06MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiWFBDRW5kcG9pbnQu
aCIKKworI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1hQQ0VuZHBvaW50OjpYUENFbmRwb2ludCgpCit7CisgICAgbV9jb25uZWN0aW9u
ID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVhdGUobnVsbHB0ciwgbnVsbHB0cikp
OworICAgIG1fZW5kcG9pbnQgPSBhZG9wdE9TT2JqZWN0KHhwY19lbmRwb2ludF9jcmVhdGUobV9j
b25uZWN0aW9uLmdldCgpKSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVl
KG1fY29ubmVjdGlvbi5nZXQoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAgeHBj
X2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBeKHhwY19v
YmplY3RfdCBtZXNzYWdlKSB7CisgICAgICAgIHhwY190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlw
ZShtZXNzYWdlKTsKKworICAgICAgICBpZiAodHlwZSA9PSBYUENfVFlQRV9DT05ORUNUSU9OKSB7
CisgICAgICAgICAgICB4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24gPSBtZXNzYWdlOworICAg
ICAgICAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuOworICAgICAgICAgICAgeHBjX2Nvbm5l
Y3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKGNvbm5lY3Rpb24sICZhdWRpdFRva2VuKTsKKworICAgICAg
ICAgICAgaWYgKCFXVEY6Omhhc0VudGl0bGVtZW50KGF1ZGl0VG9rZW4sICJjb20uYXBwbGUucHJp
dmF0ZS53ZWJraXQudXNlLXhwYy1lbmRwb2ludCIpKSB7CisgICAgICAgICAgICAgICAgLy8gVW5j
b21tZW50IGJlZm9yZSBsYW5kaW5nOyB0aGlzIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSB0aGUg
Ym90cyBkb2VzIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUgZW50aXRsZW1lbnRzIG9uIGluY3JlbWVu
dGFsIGJ1aWxkcy4KKyAgICAgICAgICAgICAgICAvLyBXVEZMb2dBbHdheXMoIkF1ZGl0IHRva2Vu
IGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZW50aXRsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICAv
LyByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRf
dGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24sIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOworICAg
ICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoY29ubmVjdGlvbiwgXih4
cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVFdmVudChjb25uZWN0
aW9uLCBldmVudCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9u
X3Jlc3VtZShjb25uZWN0aW9uKTsKKyAgICAgICAgfQorICAgIH0pOworICAgIHhwY19jb25uZWN0
aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworfQorCit2b2lkIFhQQ0VuZHBvaW50Ojpz
ZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uKQorewor
ICAgIGlmICghY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBtZXNzYWdl
ID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwg
MCkpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcobWVzc2FnZS5nZXQoKSwgeHBjRW5k
cG9pbnRNZXNzYWdlTmFtZUtleSgpLCB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lKCkpOworICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF92YWx1ZShtZXNzYWdlLmdldCgpLCB4cGNFbmRwb2ludE5hbWVLZXko
KSwgbV9lbmRwb2ludC5nZXQoKSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZS5nZXQoKSk7Cit9CisKK09TT2JqZWN0UHRyPHhwY19lbmRwb2lu
dF90PiBYUENFbmRwb2ludDo6ZW5kcG9pbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2VuZHBv
aW50OworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dC5tbQkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBD
RW5kcG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2ltcG9ydCA8
d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogWFBDRW5kcG9pbnQ6OlhQQ0VuZHBvaW50KCkKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAkocmV2aXNpb24g
MjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENs
aWVudC5oOjI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvT1NPYmpl
Y3RQdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBYUENFbmRwb2ludENsaWVudCB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+WFBDRW5kcG9pbnRDbGllbnQoKSB7IH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0RW5kcG9pbnQoeHBjX2VuZHBvaW50X3QpOworCitwcm90ZWN0ZWQ6CisgICAgV0VCQ09SRV9F
WFBPUlQgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbigpOworCitwcml2
YXRlOgorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudCh4cGNfb2JqZWN0X3QpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpID0gMDsKKworICAgIE9TT2JqZWN0UHRyPHhwY19j
b25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKKyAgICBMb2NrIG1fbG9jazsKK307CisKK30KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAko
cmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9p
bnRDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjAgKzI1LDIxIEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaCIKICNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9z
cGkvZGFyd2luL1hQQ1NQSS5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgWFBDRW5kcG9pbnRDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwg
flhQQ0VuZHBvaW50Q2xpZW50KCkgeyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVu
ZHBvaW50KHhwY19lbmRwb2ludF90KTsKKyAgICBXS19FWFBPUlQgdm9pZCBzZXRFbmRwb2ludCh4
cGNfZW5kcG9pbnRfdCk7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVj
dFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7CisgICAgV0tfRVhQT1JUIE9TT2Jq
ZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24oKTsKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoeHBjX29iamVjdF90KSA9IDA7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQkocmV2aXNpb24g
MjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENs
aWVudC5tbToyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dENsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiWFBDRW5kcG9pbnRDbGllbnQuaCIKKworI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVt
ZW50cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgWFBDRW5kcG9pbnRDbGllbnQ6
OnNldEVuZHBvaW50KHhwY19lbmRwb2ludF90IGVuZHBvaW50KQoreworICAgIHsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKworICAgICAgICBpZiAobV9jb25uZWN0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0T1NPYmpl
Y3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX2Zyb21fZW5kcG9pbnQoZW5kcG9pbnQpKTsKKworICAg
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5nZXQoKSwg
ZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxU
LCAwKSk7CisgICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVj
dGlvbi5nZXQoKSwgXih4cGNfb2JqZWN0X3QgbWVzc2FnZSkgeworICAgICAgICAgICAgeHBjX3R5
cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOworICAgICAgICAgICAgaWYgKHR5cGUg
PT0gWFBDX1RZUEVfRVJST1IpIHsKKyAgICAgICAgICAgICAgICBpZiAobWVzc2FnZSA9PSBYUENf
RVJST1JfQ09OTkVDVElPTl9JTlZBTElEIHx8IG1lc3NhZ2UgPT0gWFBDX0VSUk9SX1RFUk1JTkFU
SU9OX0lNTUlORU5UKSB7CisgICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgICAgICAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICh0eXBlICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSB4cGNfZGljdGlvbmFy
eV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24obWVzc2FnZSk7CisgICAgICAgICAgICBpZiAoIWNvbm5l
Y3Rpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYXVkaXRfdG9rZW5f
dCBhdWRpdFRva2VuOworICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2Vu
KGNvbm5lY3Rpb24sICZhdWRpdFRva2VuKTsKKyAgICAgICAgICAgIGlmICghV1RGOjpoYXNFbnRp
dGxlbWVudChhdWRpdFRva2VuLCAiY29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVzZS14cGMtZW5k
cG9pbnQiKSkgeworICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBiZWZvcmUgbGFuZGluZzsg
dGhpcyBpcyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGJvdHMgZG9lcyBub3Qgc2VlbSB0byB1
cGRhdGUgdGhlIGVudGl0bGVtZW50cyBvbiBpbmNyZW1lbnRhbCBidWlsZHMuCisgICAgICAgICAg
ICAgICAgLy8gV1RGTG9nQWx3YXlzKCJBdWRpdCB0b2tlbiBkb2VzIG5vdCBoYXZlIHJlcXVpcmVk
IGVudGl0bGVtZW50Iik7CisgICAgICAgICAgICAgICAgLy8gcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaGFuZGxlRXZlbnQobWVzc2FnZSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIH0KKwor
ICAgIGRpZENvbm5lY3QoKTsKK30KKworT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gWFBD
RW5kcG9pbnRDbGllbnQ6OmNvbm5lY3Rpb24oKQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbjsKK30KKworfQpJbmRleDogU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0JKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgPHd0Zi9jb2NvYS9F
bnRpdGxlbWVudHMuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYktpdCB7
CiAKIHZvaWQgWFBDRW5kcG9pbnRDbGllbnQ6OnNldEVuZHBvaW50KHhwY19lbmRwb2ludF90IGVu
ZHBvaW50KQogewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHJldmlzaW9uIDI2NDE4MCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgIkxhdW5j
aFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29s
LmgiCi0jaW1wb3J0IDxXZWJDb3JlL1hQQ0VuZHBvaW50Lmg+CisjaW1wb3J0ICJYUENFbmRwb2lu
dC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjg0LDYgKzE2ODQsOCBAQAogCQlDMTFBOUVDQzIxNDAzNUY4MDBDRkIyMEEgLyogV2Vi
U3dpdGNoaW5nR1BVQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMTFBOUVDQjIxNDAzNUY4MDBDRkIyMEEgLyogV2ViU3dpdGNoaW5nR1BVQ2xp
ZW50LmggKi87IH07CiAJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTFFMTY5
MjIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNDkzODA5MjIzNDcxMDQwMDBDRDcwNyAv
KiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQuaCAqLzsgfTsKKwkJQzE0RDMwNjkyNEI3OUJFMDAwNDgwMzg3IC8qIFhQ
Q0VuZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzE0RDMwNjUyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovOyB9OworCQlD
MTREMzA2QTI0Qjc5QkU0MDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzA2NjI0Qjc5NEU3MDA0
ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQubW0gKi87IH07CiAJCUMxNEQzN0ZFMjRBQ0UwODYw
MDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzN0ZEMjRBQ0UwODYwMDdGRjAx
NCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbSAqLzsgfTsKIAkJQzE1Q0JCMzYy
M0YzNzc3MTAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0NUNDMEUyM0RDQTQyNzAwM0E1RUVCIC8q
IFByZWZlcmVuY2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUMxNUNCQjM3MjNGMzdFQ0IwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2Jz
ZXJ2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1tICovOyB9OwpA
QCAtNTAyMSw2ICs1MDIzLDEwIEBACiAJCUMxNDkzODAyMjIzNDFDNjAwMDBDRDcwNyAvKiBXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3BlZWNoU3ludGhlc2lz
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODAzMjIzNDFERjcw
MDBDRDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzE0OTM4MEEyMjM4NTNCRTAwMENENzA3IC8qIFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMxNEQzMDY1MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2lu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFhQQ0VuZHBvaW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTREMzA2NjI0Qjc5NEU3MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBYUENFbmRwb2ludENsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzE0RDMwNjcyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQQ0VuZHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMxNEQzMDY4MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUENFbmRwb2ludENsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTREMzdGQzI0QUNERjQ1MDA3RkYwMTQg
LyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF1bmNo
U2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzE0RDM3RkQyNEFDRTA4NjAwN0ZGMDE0IC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNUNCQjMzMjNGMzRDMzgwMDMwMEND
NyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcmVmZXJl
bmNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTI2LDYgKzc1
MzIsMTAgQEAKIAkJCQkzN0JGMkYwNTE5NDdERUI0MDA3MjNDNDggLyogV0tOU1VSTFJlcXVlc3Qu
bW0gKi8sCiAJCQkJMzc4RTFBM0YxODFFREEwMTAwMzEwMDdBIC8qIFdLT2JqZWN0LmggKi8sCiAJ
CQkJMzc0NDM2ODcxODIwRTcyNDAwNDk1NzlGIC8qIFdLT2JqZWN0Lm1tICovLAorCQkJCUMxNEQz
MDY3MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovLAorCQkJCUMxNEQzMDY1MjRC
Nzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSAqLywKKwkJCQlDMTREMzA2ODI0Qjc5NEU3
MDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCAqLywKKwkJCQlDMTREMzA2NjI0Qjc5NEU3
MDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNv
Y29hOwogCQkJcGF0aCA9IENvY29hOwpAQCAtMTMxMTQsNiArMTMxMjQsOCBAQAogCQkJCTFEQjAx
OTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QTc4RkYzMzIyNDE5MTlCMDA5NjQ4M0UgLyogV0tTdG9yYWdlQWNjZXNzQWxlcnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDRTIxMjE2MDI0MEVFNTcxMDA2RUQ0NDMgLyogV0tUZXh0UGxhY2Vo
b2xkZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMTREMzA2OTI0Qjc5QkUwMDA0ODAzODcgLyog
WFBDRW5kcG9pbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMTREMzA2QTI0Qjc5QkU0MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnRDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlTWFuYWdlci5oCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjUsMTMgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0IDxXZWJD
b3JlL1hQQ0VuZHBvaW50Q2xpZW50Lmg+CisjaW1wb3J0ICJYUENFbmRwb2ludENsaWVudC5oIgog
I2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvdGhyZWFkcy9CaW5h
cnlTZW1hcGhvcmUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIExhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OlhQQ0VuZHBvaW50Q2xpZW50IHsK
K2NsYXNzIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyIDogcHVibGljIFdlYktpdDo6WFBD
RW5kcG9pbnRDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlTWFuYWdlciYgc2luZ2xldG9uKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFn
ZXIubW0JKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKIAog
I2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oIgotI2ltcG9ydCA8
V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKICNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9F
bnRpdGxlbWVudHMuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgpAQCAtMzUs
OCArMzUsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyJiBMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlTWFuYWdlcjo6c2luZ2xldG9uKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TGF1
bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXI+IG1hbmFnZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1w
b3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgorI2ltcG9ydCAiWFBDRW5kcG9pbnQu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL09wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2Fj
aGUuaD4KQEAgLTcxLDcgKzcyLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1VUSVV0aWxpdGllcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgogI2ltcG9y
dCA8YWxnb3JpdGhtPgogI2ltcG9ydCA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNpbXBvcnQgPG9i
amMvcnVudGltZS5oPgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjY0MTgzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDctMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgWFBDRW5kcG9pbnQgYW5kIFhQQ0VuZHBv
aW50Q2xpZW50IGNsYXNzZXMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDk5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1hQQ0VuZHBvaW50Lm1tOgorCiAyMDIwLTA3LTA5ICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIExvY2FsIGludGVybmFsIGJ1aWxkcyBmYWls
IG9uIEFwcGxlIFNpbGljb24gKGJ1aWxkaW5nIHlhc20pCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbQkocmV2aXNpb24gMjY0MTgwKQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5kcG9pbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgot
I2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludENsaWVudC5oPgorI2ltcG9ydCA8V2ViS2l0L1hQ
Q0VuZHBvaW50Lmg+CisjaW1wb3J0IDxXZWJLaXQvWFBDRW5kcG9pbnRDbGllbnQuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBzdGF0aWMgYm9vbCBjbGllbnRDb25uZWN0ZWRU
b0VuZHBvaW50ID0gZmFsc2U7CkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBib29sIGNsaWVudFJl
Y2VpdmVkTWVzc2FnZUZyb21FbmQKIHN0YXRpYyBjb25zdGV4cHIgYXV0byB0ZXN0TWVzc2FnZUZy
b21FbmRwb2ludCA9ICJ0ZXN0LW1lc3NhZ2UtZnJvbS1lbmRwb2ludCI7CiBzdGF0aWMgY29uc3Rl
eHByIGF1dG8gdGVzdE1lc3NhZ2VGcm9tQ2xpZW50ID0gInRlc3QtbWVzc2FnZS1mcm9tLWNsaWVu
dCI7CiAKLWNsYXNzIFhQQ0VuZHBvaW50IDogcHVibGljIFdlYkNvcmU6OlhQQ0VuZHBvaW50IHsK
K2NsYXNzIFhQQ0VuZHBvaW50IDogcHVibGljIFdlYktpdDo6WFBDRW5kcG9pbnQgewogcHJpdmF0
ZToKICAgICBjb25zdCBjaGFyKiB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCkgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAotY2xh
c3MgWFBDRW5kcG9pbnRDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQg
eworY2xhc3MgWFBDRW5kcG9pbnRDbGllbnQgOiBwdWJsaWMgV2ViS2l0OjpYUENFbmRwb2ludENs
aWVudCB7CiBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlRXZlbnQoeHBjX29iamVjdF90IGV2ZW50
KSBvdmVycmlkZQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403917</attachid>
            <date>2020-07-09 14:09:22 -0700</date>
            <delta_ts>2020-07-09 14:54:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214099-20200709140921.patch</filename>
            <type>text/plain</type>
            <size>45802</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA3LTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50
IGFuZCBYUENFbmRwb2ludENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVGhlc2UgY2xh
c3NlcyBzaG91bGQgbm90IGJlIGluIFdlYkNvcmUsIGJ1dCBpbiBXZWJLaXQsIHNpbmNlIHRoZXkg
YXJlIG9ubHkgZXhwZWN0ZWQgdG8gYmUgdXNlZCB0aGVyZS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgb25seSBtb3Zpbmcgc291cmNlIGZpbGVzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1hQQ0VuZHBvaW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29j
b2EvWFBDRW5kcG9pbnQubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvWFBD
RW5kcG9pbnRDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9YUENF
bmRwb2ludENsaWVudC5tbTogUmVtb3ZlZC4KKwogMjAyMC0wNy0wOSAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXNldCBBVlN5c3RlbUNvbnRyb2xs
ZXJfUElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20gd2hlbiBtZWRpYXNlcnZlcmQgZGll
cwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MDAzLDEwICs0MDAzLDYg
QEAKIAkJQzE0OUQ1NUQyNDJFQTZCOTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDlENTVBMjQyRUE0Rjkw
MDNFQkIxMiAvKiBTbGVlcERpc2FibGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OUQ1NUYyNDJFQTdCODAwM0VCQjEyIC8qIFNsZWVwRGlz
YWJsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzE0OUQ1Njcy
NDJFQjg0QTAwM0VCQjEyIC8qIFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5RDU2NTI0MkVCNzY1MDAzRUJC
MTIgLyogU2xlZXBEaXNhYmxlcklkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlDMTREMzA0OTI0QjRFQUIxMDA0ODAzODcgLyogWFBD
RW5kcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMxNEQzMDQ3MjRCNEVBQTgwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUMxNEQzMDRCMjRCNEY3RUYwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMxNEQzMDRBMjRCNEVCMUUwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSAq
LzsgfTsKLQkJQzE0RDMwNEUyNEI0RjhGQTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0RDMwNEMy
NEI0RjhGNjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovOyB9OwotCQlDMTREMzA0
RjI0QjRGOEZGMDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQzMDREMjRCNEY4RjcwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUMxNjkyREQyMjNEMjNBQkQwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJE
RDEyM0QyM0FCRDAwNkU4OEY3IC8qIFN5c3RlbUJhdHRlcnkubW0gKi87IH07CiAJCUMxNjkyREQ1
MjNEMjNFMDgwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRENDIzRDIzQUUwMDA2RTg4RjcgLyogU3lz
dGVtQmF0dGVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUMxRTFEMjM2MjAzREYxNTQwMDU4NDY2NSAvKiBTY3JlZW5Qcm9wZXJ0aWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMUUxRDIzNTIwM0RG
MTU0MDA1ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzczOCwxMCArMTM3MzQsNiBAQAogCQlDMTQ5
RDU1QTI0MkVBNEY5MDAzRUJCMTIgLyogU2xlZXBEaXNhYmxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTbGVlcERpc2FibGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxNDlENTVCMjQyRUE0RkEwMDNFQkIxMiAvKiBTbGVlcERpc2FibGVyQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE0OUQ1NjUyNDJFQjc2NTAwM0VCQjEyIC8q
IFNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXJJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMxNEQzMDQ3MjRCNEVB
QTgwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUENFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMTREMzA0
QTI0QjRFQjFFMDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBYUENFbmRwb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQzE0RDMwNEMyNEI0RjhGNjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnRDbGll
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMxNEQzMDREMjRCNEY4RjcwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYUENFbmRwb2ludENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MTY5MkREMTIzRDIzQUJEMDA2RTg4RjcgLyogU3lzdGVtQmF0dGVyeS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFN5c3RlbUJhdHRlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUMxNjkyREQ0MjNEMjNBRTAwMDZFODhGNyAvKiBTeXN0ZW1CYXR0ZXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5c3RlbUJhdHRlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1
MTgyNDJGOTM4MjAwN0U5ODc1IC8qIFNsZWVwRGlzYWJsZXJDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2xlZXBEaXNhYmxlckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMzY0OCwxMCArMjM2NDAsNiBAQAogCQkJCUNEQzk3OUYzMUM0OThDMDkwMERCNTBE
NCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5oICovLAogCQkJCUNEQzk3OUYyMUM0OThDMDkwMERC
NTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5tbSAqLywKIAkJCQk1REZFQkFCNjE4NTkyQjZE
MDBDNzVCRUIgLyogV2ViS2l0QXZhaWxhYmlsaXR5LmggKi8sCi0JCQkJQzE0RDMwNDcyNEI0RUFB
ODAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50LmggKi8sCi0JCQkJQzE0RDMwNEEyNEI0RUIxRTAwNDgw
Mzg3IC8qIFhQQ0VuZHBvaW50Lm1tICovLAotCQkJCUMxNEQzMDREMjRCNEY4RjcwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5oICovLAotCQkJCUMxNEQzMDRDMjRCNEY4RjYwMDQ4MDM4NyAv
KiBYUENFbmRwb2ludENsaWVudC5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzQwMTgsOCArMzQwMDYsNiBAQAogCQkJCTFBQjdG
Qzg0MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
QjdGQzg2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI3RkM4ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQzE0RDMwNDkyNEI0RUFCMTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQlDMTREMzA0RjI0QjRGOEZGMDA0ODAzODcgLyogWFBDRW5k
cG9pbnRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4QjlDMjQxMzE5NTAwMEU3OTRE
NiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI5
NzI0MTMxOTUwMDBFNzk0RDYgLyogWFJFeWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4QjhG
MjQxMzE5NTAwMEU3OTRENiAvKiBYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKQEAgLTM1MjE1LDggKzM1MjAxLDYgQEAKIAkJCQlBODMzQzdDQzBBMkNGMDc0MDBENTc2NjQg
LyogWExpbmtOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODMzQzgwQzBBMkNGMjU2MDBE
NTc2NjQgLyogWE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1QTM2RDkxMTA0NTcy
NzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzE0RDMwNEIy
NEI0RjdFRjAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQzE0
RDMwNEUyNEI0RjhGQTAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTFFRThCN0EyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSSW5wdXRTb3VyY2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVFOEJBNzI0MTMxOTYzMDBFNzk0RDYgLyogWFJJbnB1
dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUVFOEI5NTI0MTMx
OTUwMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5oCShyZXZp
c2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2lu
dC5oCShub25leGlzdGVudCkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3NwaS9k
YXJ3aW4vWFBDU1BJLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgWFBDRW5kcG9p
bnQgewotcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFhQQ0VuZHBvaW50KCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90
KTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBlbmRw
b2ludCgpIGNvbnN0OwotCi0gICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHhwY01lc3NhZ2VOYW1l
S2V5ID0gIm1lc3NhZ2UtbmFtZSI7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFy
KiB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29u
c3QgY2hhciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHhwY0VuZHBvaW50TmFtZUtleSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90KSA9IDA7Ci0K
LSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247Ci0gICAgT1NP
YmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IG1fZW5kcG9pbnQ7Ci19OwotCi19CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5tbQkocmV2aXNpb24gMjY0
MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0JKG5v
bmV4aXN0ZW50KQpAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJYUENFbmRwb2ludC5oIgotCi0jaW1wb3J0IDx3dGYvY29jb2EvRW50aXRs
ZW1lbnRzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotWFBDRW5kcG9pbnQ6OlhQQ0VuZHBv
aW50KCkKLXsKLSAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE9TT2JqZWN0KHhwY19jb25uZWN0aW9u
X2NyZWF0ZShudWxscHRyLCBudWxscHRyKSk7Ci0gICAgbV9lbmRwb2ludCA9IGFkb3B0T1NPYmpl
Y3QoeHBjX2VuZHBvaW50X2NyZWF0ZShtX2Nvbm5lY3Rpb24uZ2V0KCkpKTsKLQotICAgIHhwY19j
b25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUobV9jb25uZWN0aW9uLmdldCgpLCBkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlciht
X2Nvbm5lY3Rpb24uZ2V0KCksIF4oeHBjX29iamVjdF90IG1lc3NhZ2UpIHsKLSAgICAgICAgeHBj
X3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOwotCi0gICAgICAgIGlmICh0eXBl
ID09IFhQQ19UWVBFX0NPTk5FQ1RJT04pIHsKLSAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3Qg
Y29ubmVjdGlvbiA9IG1lc3NhZ2U7Ci0gICAgICAgICAgICBhdWRpdF90b2tlbl90IGF1ZGl0VG9r
ZW47Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9nZXRfYXVkaXRfdG9rZW4oY29ubmVjdGlv
biwgJmF1ZGl0VG9rZW4pOwotCi0gICAgICAgICAgICBpZiAoIVdURjo6aGFzRW50aXRsZW1lbnQo
YXVkaXRUb2tlbiwgImNvbS5hcHBsZS5wcml2YXRlLndlYmtpdC51c2UteHBjLWVuZHBvaW50Iikp
IHsKLSAgICAgICAgICAgICAgICAvLyBVbmNvbW1lbnQgYmVmb3JlIGxhbmRpbmc7IHRoaXMgaXMg
Y29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBib3RzIGRvZXMgbm90IHNlZW0gdG8gdXBkYXRlIHRo
ZSBlbnRpdGxlbWVudHMgb24gaW5jcmVtZW50YWwgYnVpbGRzLgotICAgICAgICAgICAgICAgIC8v
IFdURkxvZ0Fsd2F5cygiQXVkaXQgdG9rZW4gZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBlbnRpdGxl
bWVudCIpOwotICAgICAgICAgICAgICAgIC8vIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSk7Ci0gICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZl
bnRfaGFuZGxlcihjb25uZWN0aW9uLCBeKHhwY19vYmplY3RfdCBldmVudCkgewotICAgICAgICAg
ICAgICAgIGhhbmRsZUV2ZW50KGNvbm5lY3Rpb24sIGV2ZW50KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKGNvbm5lY3Rpb24pOwotICAgICAgICB9
Ci0gICAgfSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKG1fY29ubmVjdGlvbi5nZXQoKSk7
Ci19Ci0KLXZvaWQgWFBDRW5kcG9pbnQ6OnNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29u
bmVjdGlvbl90IGNvbm5lY3Rpb24pCi17Ci0gICAgaWYgKCFjb25uZWN0aW9uKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBhdXRvIG1lc3NhZ2UgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7Ci0gICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0
cmluZyhtZXNzYWdlLmdldCgpLCB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lS2V5KCksIHhwY0VuZHBv
aW50TWVzc2FnZU5hbWUoKSk7Ci0gICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKG1lc3NhZ2Uu
Z2V0KCksIHhwY0VuZHBvaW50TmFtZUtleSgpLCBtX2VuZHBvaW50LmdldCgpKTsKLQotICAgIHhw
Y19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlLmdldCgpKTsKLX0K
LQotT1NPYmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IFhQQ0VuZHBvaW50OjplbmRwb2ludCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQ7Ci19Ci0KLX0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAkocmV2aXNpb24g
MjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnRDbGll
bnQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgWFBDRW5kcG9pbnRDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwg
flhQQ0VuZHBvaW50Q2xpZW50KCkgeyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVu
ZHBvaW50KHhwY19lbmRwb2ludF90KTsKLQotcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JU
IE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24oKTsKLQotcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoeHBjX29iamVjdF90KSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7Ci0KLSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVj
dGlvbl90PiBtX2Nvbm5lY3Rpb247Ci0gICAgTG9jayBtX2xvY2s7Ci19OwotCi19CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVudC5t
bQkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBD
RW5kcG9pbnRDbGllbnQubW0JKG5vbmV4aXN0ZW50KQpAQCAtMSw4MSArMCwwIEBACi0vKgotKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0qIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0q
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiWFBDRW5kcG9pbnRDbGllbnQuaCIKLQotI2ltcG9ydCA8d3RmL2NvY29hL0Vu
dGl0bGVtZW50cy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgWFBDRW5kcG9pbnRD
bGllbnQ6OnNldEVuZHBvaW50KHhwY19lbmRwb2ludF90IGVuZHBvaW50KQotewotICAgIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKLQotICAgICAgICBpZiAobV9jb25uZWN0
aW9uKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0
T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX2Zyb21fZW5kcG9pbnQoZW5kcG9pbnQpKTsK
LQotICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5n
ZXQoKSwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9E
RUZBVUxULCAwKSk7Ci0gICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1f
Y29ubmVjdGlvbi5nZXQoKSwgXih4cGNfb2JqZWN0X3QgbWVzc2FnZSkgewotICAgICAgICAgICAg
eHBjX3R5cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOwotICAgICAgICAgICAgaWYg
KHR5cGUgPT0gWFBDX1RZUEVfRVJST1IpIHsKLSAgICAgICAgICAgICAgICBpZiAobWVzc2FnZSA9
PSBYUENfRVJST1JfQ09OTkVDVElPTl9JTlZBTElEIHx8IG1lc3NhZ2UgPT0gWFBDX0VSUk9SX1RF
Uk1JTkFUSU9OX0lNTUlORU5UKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgICAgICAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmICh0eXBlICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSB4cGNfZGlj
dGlvbmFyeV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24obWVzc2FnZSk7Ci0gICAgICAgICAgICBpZiAo
IWNvbm5lY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYXVkaXRf
dG9rZW5fdCBhdWRpdFRva2VuOwotICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0
X3Rva2VuKGNvbm5lY3Rpb24sICZhdWRpdFRva2VuKTsKLSAgICAgICAgICAgIGlmICghV1RGOjpo
YXNFbnRpdGxlbWVudChhdWRpdFRva2VuLCAiY29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVzZS14
cGMtZW5kcG9pbnQiKSkgewotICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBiZWZvcmUgbGFu
ZGluZzsgdGhpcyBpcyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGJvdHMgZG9lcyBub3Qgc2Vl
bSB0byB1cGRhdGUgdGhlIGVudGl0bGVtZW50cyBvbiBpbmNyZW1lbnRhbCBidWlsZHMuCi0gICAg
ICAgICAgICAgICAgLy8gV1RGTG9nQWx3YXlzKCJBdWRpdCB0b2tlbiBkb2VzIG5vdCBoYXZlIHJl
cXVpcmVkIGVudGl0bGVtZW50Iik7Ci0gICAgICAgICAgICAgICAgLy8gcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaGFuZGxlRXZlbnQobWVzc2FnZSk7Ci0gICAgICAgIH0pOwot
Ci0gICAgICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotICAg
IH0KLQotICAgIGRpZENvbm5lY3QoKTsKLX0KLQotT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25f
dD4gWFBDRW5kcG9pbnRDbGllbnQ6OmNvbm5lY3Rpb24oKQotewotICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7Ci0gICAgcmV0dXJuIG1fY29ubmVjdGlvbjsKLX0KLQotfQpJbmRleDogU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDctMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgWFBDRW5kcG9pbnQgYW5kIFhQQ0VuZHBv
aW50Q2xpZW50IGNsYXNzZXMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDk5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oOgorICAgICAgICAqIFNoYXJlZC9Db2Nv
YS9YUENFbmRwb2ludC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9YUENFbmRwb2ludC5oLgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5tbTog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW0u
CisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6WFBDRW5kcG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnQ6OnNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludDo6ZW5kcG9pbnQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENsaWVu
dC5oLgorICAgICAgICAoV2ViQ29yZTo6WFBDRW5kcG9pbnRDbGllbnQ6On5YUENFbmRwb2ludENs
aWVudCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50
Lm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2lu
dENsaWVudC5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlhQQ0VuZHBvaW50Q2xpZW50OjpzZXRFbmRw
b2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYUENFbmRwb2ludENsaWVudDo6Y29u
bmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0
YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tOgorCiAyMDIwLTA3LTA5ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEJ1aWxkZml4IHdoZW4gV1BFQmFja2VuZC1mZG8gaXMgbm90IGF2YWls
YWJsZQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlT2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oCShyZXZpc2lv
biAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL0xhdW5jaFNl
cnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMyArMjcsMTMg
QEAKIAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9YUENFbmRwb2ludC5oPgorI2luY2x1
ZGUgIlhQQ0VuZHBvaW50LmgiCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTGF1bmNo
U2VydmljZXNEYXRhYmFzZU9ic2VydmVyIDogcHVibGljIFdlYkNvcmU6OlhQQ0VuZHBvaW50LCBw
dWJsaWMgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50IHsKK2NsYXNzIExhdW5jaFNlcnZpY2VzRGF0
YWJhc2VPYnNlcnZlciA6IHB1YmxpYyBXZWJLaXQ6OlhQQ0VuZHBvaW50LCBwdWJsaWMgTmV0d29y
a1Byb2Nlc3NTdXBwbGVtZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIoTmV0d29ya1Byb2Nlc3MmKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQuaAkocmV2aXNpb24g
MjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludC5o
OjI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4v
WFBDU1BJLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWFBDRW5kcG9pbnQgewor
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIFhQQ0VuZHBvaW50KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90KTsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIE9TT2JqZWN0UHRyPHhwY19lbmRwb2ludF90PiBlbmRwb2ludCgp
IGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHhwY01lc3NhZ2VOYW1lS2V5ID0g
Im1lc3NhZ2UtbmFtZSI7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiB4cGNF
bmRwb2ludE1lc3NhZ2VOYW1lS2V5KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHhwY0VuZHBvaW50TmFtZUtleSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlRXZlbnQoeHBjX2Nvbm5lY3Rpb25fdCwgeHBjX29iamVjdF90KSA9IDA7CisKKyAgICBP
U09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rpb247CisgICAgT1NPYmplY3RQ
dHI8eHBjX2VuZHBvaW50X3Q+IG1fZW5kcG9pbnQ7Cit9OworCit9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgJKHJldmlzaW9uIDI2NDE4MCkKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDE5ICsyNSwyMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIldLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmgiCiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBYUENFbmRwb2ludCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgWFBDRW5kcG9pbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5YUENFbmRwb2lu
dCgpID0gZGVmYXVsdDsKKyAgICBXS19FWFBPUlQgWFBDRW5kcG9pbnQoKTsKKyAgICBXS19FWFBP
UlQgdmlydHVhbCB+WFBDRW5kcG9pbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNlbmRFbmRwb2ludFRvQ29ubmVjdGlvbih4cGNfY29ubmVjdGlvbl90KTsKKyAgICBX
S19FWFBPUlQgdm9pZCBzZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVjdFB0cjx4cGNfZW5kcG9pbnRfdD4gZW5kcG9p
bnQoKSBjb25zdDsKKyAgICBXS19FWFBPUlQgT1NPYmplY3RQdHI8eHBjX2VuZHBvaW50X3Q+IGVu
ZHBvaW50KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgY29uc3RleHByIGF1dG8geHBjTWVzc2FnZU5h
bWVLZXkgPSAibWVzc2FnZS1uYW1lIjsKIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvWFBDRW5kcG9pbnQubW0JKHJldmlzaW9uIDI2NDE4MCkJKGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvWFBDRW5kcG9pbnQubW06MjY0MTgwKQorKysgU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvWFBDRW5kcG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiWFBDRW5kcG9pbnQu
aCIKKworI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1hQQ0VuZHBvaW50OjpYUENFbmRwb2ludCgpCit7CisgICAgbV9jb25uZWN0aW9u
ID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jcmVhdGUobnVsbHB0ciwgbnVsbHB0cikp
OworICAgIG1fZW5kcG9pbnQgPSBhZG9wdE9TT2JqZWN0KHhwY19lbmRwb2ludF9jcmVhdGUobV9j
b25uZWN0aW9uLmdldCgpKSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVl
KG1fY29ubmVjdGlvbi5nZXQoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAgeHBj
X2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIobV9jb25uZWN0aW9uLmdldCgpLCBeKHhwY19v
YmplY3RfdCBtZXNzYWdlKSB7CisgICAgICAgIHhwY190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlw
ZShtZXNzYWdlKTsKKworICAgICAgICBpZiAodHlwZSA9PSBYUENfVFlQRV9DT05ORUNUSU9OKSB7
CisgICAgICAgICAgICB4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24gPSBtZXNzYWdlOworICAg
ICAgICAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuOworICAgICAgICAgICAgeHBjX2Nvbm5l
Y3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKGNvbm5lY3Rpb24sICZhdWRpdFRva2VuKTsKKworICAgICAg
ICAgICAgaWYgKCFXVEY6Omhhc0VudGl0bGVtZW50KGF1ZGl0VG9rZW4sICJjb20uYXBwbGUucHJp
dmF0ZS53ZWJraXQudXNlLXhwYy1lbmRwb2ludCIpKSB7CisgICAgICAgICAgICAgICAgLy8gVW5j
b21tZW50IGJlZm9yZSBsYW5kaW5nOyB0aGlzIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSB0aGUg
Ym90cyBkb2VzIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUgZW50aXRsZW1lbnRzIG9uIGluY3JlbWVu
dGFsIGJ1aWxkcy4KKyAgICAgICAgICAgICAgICAvLyBXVEZMb2dBbHdheXMoIkF1ZGl0IHRva2Vu
IGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgZW50aXRsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICAv
LyByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4cGNfY29ubmVjdGlvbl9zZXRf
dGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24sIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOworICAg
ICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoY29ubmVjdGlvbiwgXih4
cGNfb2JqZWN0X3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVFdmVudChjb25uZWN0
aW9uLCBldmVudCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHhwY19jb25uZWN0aW9u
X3Jlc3VtZShjb25uZWN0aW9uKTsKKyAgICAgICAgfQorICAgIH0pOworICAgIHhwY19jb25uZWN0
aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworfQorCit2b2lkIFhQQ0VuZHBvaW50Ojpz
ZW5kRW5kcG9pbnRUb0Nvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uKQorewor
ICAgIGlmICghY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBtZXNzYWdl
ID0gYWRvcHRPU09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwg
MCkpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcobWVzc2FnZS5nZXQoKSwgeHBjRW5k
cG9pbnRNZXNzYWdlTmFtZUtleSgpLCB4cGNFbmRwb2ludE1lc3NhZ2VOYW1lKCkpOworICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF92YWx1ZShtZXNzYWdlLmdldCgpLCB4cGNFbmRwb2ludE5hbWVLZXko
KSwgbV9lbmRwb2ludC5nZXQoKSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZS5nZXQoKSk7Cit9CisKK09TT2JqZWN0UHRyPHhwY19lbmRwb2lu
dF90PiBYUENFbmRwb2ludDo6ZW5kcG9pbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2VuZHBv
aW50OworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dC5tbQkocmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBD
RW5kcG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2ltcG9ydCA8
d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogWFBDRW5kcG9pbnQ6OlhQQ0VuZHBvaW50KCkKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAkocmV2aXNpb24g
MjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENs
aWVudC5oOjI2NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvT1NPYmpl
Y3RQdHIuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBYUENFbmRwb2ludENsaWVudCB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+WFBDRW5kcG9pbnRDbGllbnQoKSB7IH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0RW5kcG9pbnQoeHBjX2VuZHBvaW50X3QpOworCitwcm90ZWN0ZWQ6CisgICAgV0VCQ09SRV9F
WFBPUlQgT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbigpOworCitwcml2
YXRlOgorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudCh4cGNfb2JqZWN0X3QpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpID0gMDsKKworICAgIE9TT2JqZWN0UHRyPHhwY19j
b25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKKyAgICBMb2NrIG1fbG9jazsKK307CisKK30KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQuaAko
cmV2aXNpb24gMjY0MTgwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9p
bnRDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjAgKzI1LDIxIEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaCIKICNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9z
cGkvZGFyd2luL1hQQ1NQSS5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgWFBDRW5kcG9pbnRDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwg
flhQQ0VuZHBvaW50Q2xpZW50KCkgeyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVu
ZHBvaW50KHhwY19lbmRwb2ludF90KTsKKyAgICBXS19FWFBPUlQgdm9pZCBzZXRFbmRwb2ludCh4
cGNfZW5kcG9pbnRfdCk7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBPU09iamVj
dFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uKCk7CisgICAgV0tfRVhQT1JUIE9TT2Jq
ZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24oKTsKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoeHBjX29iamVjdF90KSA9IDA7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2ludENsaWVudC5tbQkocmV2aXNpb24g
MjY0MTgwKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9YUENFbmRwb2ludENs
aWVudC5tbToyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9YUENFbmRwb2lu
dENsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiWFBDRW5kcG9pbnRDbGllbnQuaCIKKworI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVt
ZW50cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgWFBDRW5kcG9pbnRDbGllbnQ6
OnNldEVuZHBvaW50KHhwY19lbmRwb2ludF90IGVuZHBvaW50KQoreworICAgIHsKKyAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKworICAgICAgICBpZiAobV9jb25uZWN0aW9uKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0T1NPYmpl
Y3QoeHBjX2Nvbm5lY3Rpb25fY3JlYXRlX2Zyb21fZW5kcG9pbnQoZW5kcG9pbnQpKTsKKworICAg
ICAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKG1fY29ubmVjdGlvbi5nZXQoKSwg
ZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxU
LCAwKSk7CisgICAgICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKG1fY29ubmVj
dGlvbi5nZXQoKSwgXih4cGNfb2JqZWN0X3QgbWVzc2FnZSkgeworICAgICAgICAgICAgeHBjX3R5
cGVfdCB0eXBlID0geHBjX2dldF90eXBlKG1lc3NhZ2UpOworICAgICAgICAgICAgaWYgKHR5cGUg
PT0gWFBDX1RZUEVfRVJST1IpIHsKKyAgICAgICAgICAgICAgICBpZiAobWVzc2FnZSA9PSBYUENf
RVJST1JfQ09OTkVDVElPTl9JTlZBTElEIHx8IG1lc3NhZ2UgPT0gWFBDX0VSUk9SX1RFUk1JTkFU
SU9OX0lNTUlORU5UKSB7CisgICAgICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgICAgICAgICAgICAgICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICh0eXBlICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSB4cGNfZGljdGlvbmFy
eV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24obWVzc2FnZSk7CisgICAgICAgICAgICBpZiAoIWNvbm5l
Y3Rpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYXVkaXRfdG9rZW5f
dCBhdWRpdFRva2VuOworICAgICAgICAgICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2Vu
KGNvbm5lY3Rpb24sICZhdWRpdFRva2VuKTsKKyAgICAgICAgICAgIGlmICghV1RGOjpoYXNFbnRp
dGxlbWVudChhdWRpdFRva2VuLCAiY29tLmFwcGxlLnByaXZhdGUud2Via2l0LnVzZS14cGMtZW5k
cG9pbnQiKSkgeworICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBiZWZvcmUgbGFuZGluZzsg
dGhpcyBpcyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGJvdHMgZG9lcyBub3Qgc2VlbSB0byB1
cGRhdGUgdGhlIGVudGl0bGVtZW50cyBvbiBpbmNyZW1lbnRhbCBidWlsZHMuCisgICAgICAgICAg
ICAgICAgLy8gV1RGTG9nQWx3YXlzKCJBdWRpdCB0b2tlbiBkb2VzIG5vdCBoYXZlIHJlcXVpcmVk
IGVudGl0bGVtZW50Iik7CisgICAgICAgICAgICAgICAgLy8gcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaGFuZGxlRXZlbnQobWVzc2FnZSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIH0KKwor
ICAgIGRpZENvbm5lY3QoKTsKK30KKworT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gWFBD
RW5kcG9pbnRDbGllbnQ6OmNvbm5lY3Rpb24oKQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbjsKK30KKworfQpJbmRleDogU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvWFBDRW5kcG9pbnRDbGllbnQubW0JKHJldmlzaW9uIDI2
NDE4MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1hQQ0VuZHBvaW50Q2xpZW50Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgPHd0Zi9jb2NvYS9F
bnRpdGxlbWVudHMuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFdlYktpdCB7
CiAKIHZvaWQgWFBDRW5kcG9pbnRDbGllbnQ6OnNldEVuZHBvaW50KHhwY19lbmRwb2ludF90IGVu
ZHBvaW50KQogewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0JKHJldmlzaW9uIDI2NDE4MCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNv
Y29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgIkxhdW5j
aFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29s
LmgiCi0jaW1wb3J0IDxXZWJDb3JlL1hQQ0VuZHBvaW50Lmg+CisjaW1wb3J0ICJYUENFbmRwb2lu
dC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjg0LDkgKzE2ODQsMTMgQEAKIAkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdl
YlN3aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzExQTlFQ0IyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3aXRjaGluZ0dQVUNs
aWVudC5oICovOyB9OwogCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxh
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzExRTE2
OTIyMTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMTQ5MzgwOTIyMzQ3MTA0MDAwQ0Q3MDcg
LyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggKi87IH07CisJCUMxNEQzMDY5MjRCNzlCRTAwMDQ4MDM4NyAvKiBY
UENFbmRwb2ludC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNEQzMDY1MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSAqLzsgfTsKKwkJ
QzE0RDMwNkEyNEI3OUJFNDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE0RDMwNjYyNEI3OTRFNzAw
NDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tICovOyB9OwogCQlDMTREMzdGRTI0QUNFMDg2
MDA3RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzdGRDI0QUNFMDg2MDA3RkYw
MTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi87IH07CiAJCUMxNUNCQjM2
MjNGMzc3NzEwMDMwMENDNyAvKiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNDVDQzBFMjNEQ0E0MjcwMDNBNUVFQiAv
KiBQcmVmZXJlbmNlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDMTVDQkIzNzIzRjM3RUNCMDAzMDBDQzcgLyogUHJlZmVyZW5jZU9i
c2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzE1Q0JCMzMyM0YzNEMzODAwMzAwQ0M3IC8qIFByZWZlcmVuY2VPYnNlcnZlci5tbSAqLzsgfTsK
KwkJQzE1RTZDQjMyNEI3QkU2RjAwRTUwMUEyIC8qIFhQQ0VuZHBvaW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTREMzA2NzI0Qjc5NEU3MDA0ODAz
ODcgLyogWFBDRW5kcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDMTVFNkNCNDI0QjdCRTc2MDBFNTAxQTIgLyogWFBDRW5kcG9pbnRDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNEQz
MDY4MjRCNzk0RTcwMDQ4MDM4NyAvKiBYUENFbmRwb2ludENsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMxNjYzRTVCMjRBRUFBMkYwMEM2
QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY2M0U1QTI0QUVBNzQyMDBDNkEz
QjIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oICovOyB9OwogCQlDMTcx
MENGNzI0QUE2NDMyMDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE3MTBDRjYy
NEFBNjQzMjAwRDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLzsg
fTsKIAkJQzE4MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTgxNzM2MDIwNTg0MjQ3MDBE
RkRBNjUgLyogRGlzcGxheUxpbmsuaCAqLzsgfTsKQEAgLTUwMjEsNiArNTAyNSwxMCBAQAogCQlD
MTQ5MzgwMjIyMzQxQzYwMDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMTQ5MzgwMzIyMzQxREY3MDAwQ0Q3MDcgLyogV2ViU3BlZWNoU3ludGhl
c2lzQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNDkzODBBMjIzODUzQkUwMDBD
RDcwNyAvKiBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTcGVl
Y2hTeW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTREMzA2
NTI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBYUENFbmRwb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzE0RDMwNjYyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gWFBDRW5kcG9pbnRDbGll
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNEQzMDY3MjRCNzk0RTcwMDQ4
MDM4NyAvKiBYUENFbmRwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
UENFbmRwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMTREMzA2ODI0Qjc5
NEU3MDA0ODAzODcgLyogWFBDRW5kcG9pbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWFBDRW5kcG9pbnRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzE0RDM3RkMyNEFDREY0NTAwN0ZGMDE0IC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNEQzN0ZEMjRBQ0UwODYwMDdGRjAxNCAv
KiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMTVDQkIzMzIzRjM0QzM4MDAzMDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJlZmVyZW5jZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzUyNiw2ICs3NTM0LDEwIEBACiAJCQkJMzdCRjJGMDUxOTQ3
REVCNDAwNzIzQzQ4IC8qIFdLTlNVUkxSZXF1ZXN0Lm1tICovLAogCQkJCTM3OEUxQTNGMTgxRURB
MDEwMDMxMDA3QSAvKiBXS09iamVjdC5oICovLAogCQkJCTM3NDQzNjg3MTgyMEU3MjQwMDQ5NTc5
RiAvKiBXS09iamVjdC5tbSAqLywKKwkJCQlDMTREMzA2NzI0Qjc5NEU3MDA0ODAzODcgLyogWFBD
RW5kcG9pbnQuaCAqLywKKwkJCQlDMTREMzA2NTI0Qjc5NEU3MDA0ODAzODcgLyogWFBDRW5kcG9p
bnQubW0gKi8sCisJCQkJQzE0RDMwNjgyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xp
ZW50LmggKi8sCisJCQkJQzE0RDMwNjYyNEI3OTRFNzAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xp
ZW50Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXBhdGggPSBDb2NvYTsKQEAg
LTExODY1LDYgKzExODc3LDggQEAKIAkJCQkxQUQ2MEY2MDE4RTIwRjc0MDAyMEMwMzQgLyogV0tX
aW5kb3dGZWF0dXJlc0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QTUwODBCRjFGMEVE
QUFBMDBFNjE3QzUgLyogV0tXaW5kb3dGZWF0dXJlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBN0MwREY3MUI3RDFGMTAwMEE5Qjg0OCAvKiBXS1dpbmRvd0ZlYXR1cmVzUmVmLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDMTVFNkNCMzI0QjdCRTZGMDBFNTAxQTIgLyogWFBDRW5kcG9pbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUMxNUU2Q0I0MjRCN0JFNzYwMEU1MDFBMiAvKiBYUENFbmRw
b2ludENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCRUNERTgxNkI2NDE2ODAwMDQ3QTFB
IC8qIFhQQ1NlcnZpY2VFbnRyeVBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTEzMTE0LDYgKzEzMTI4LDgg
QEAKIAkJCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTggLyogV0tTaGFyZVNoZWV0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0E3OEZGMzMyMjQxOTE5QjAwOTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vz
c0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UyMTIxNjAyNDBFRTU3MTAwNkVENDQzIC8q
IFdLVGV4dFBsYWNlaG9sZGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0RDMwNjkyNEI3OUJF
MDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzE0RDMwNkEy
NEI3OUJFNDAwNDgwMzg3IC8qIFhQQ0VuZHBvaW50Q2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFz
ZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
TGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaAkocmV2aXNpb24gMjY0MTgwKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2Vy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEzICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2ltcG9ydCA8V2ViQ29yZS9YUENFbmRwb2ludENsaWVudC5oPgorI2ltcG9ydCAiWFBDRW5kcG9p
bnRDbGllbnQuaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3Rm
L3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3JlOjpYUENFbmRw
b2ludENsaWVudCB7CitjbGFzcyBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlciA6IHB1Ymxp
YyBXZWJLaXQ6OlhQQ0VuZHBvaW50Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTGF1bmNo
U2VydmljZXNEYXRhYmFzZU1hbmFnZXImIHNpbmdsZXRvbigpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0xhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VN
YW5hZ2VyLmgiCiAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMu
aCIKLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9pbnQuaD4KKyNpbXBvcnQgIlhQQ0VuZHBvaW50
LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0
IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9YUENT
UEkuaD4KQEAgLTM1LDggKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlciYgTGF1bmNo
U2VydmljZXNEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpCiB7CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyPiBtYW5hZ2VyOwpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CShyZXZpc2lvbiAyNjQxODApCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0
ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViU2xlZXBEaXNhYmxlckNs
aWVudC5oIgogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKKyNpbXBvcnQg
IlhQQ0VuZHBvaW50LmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAj
aW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmg+CkBAIC03MSw3ICs3Miw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NX
Q29udGV4dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9p
bnQuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+
CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDE4MykKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFhQQ0VuZHBvaW50
IGFuZCBYUENFbmRwb2ludENsaWVudCBjbGFzc2VzIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9YUENFbmRwb2ludC5tbToKKwogMjAyMC0wNy0wOSAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBMb2NhbCBpbnRlcm5h
bCBidWlsZHMgZmFpbCBvbiBBcHBsZSBTaWxpY29uIChidWlsZGluZyB5YXNtKQpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5kcG9pbnQubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvWFBDRW5kcG9pbnQubW0JKHJldmlz
aW9uIDI2NDE4MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1hQQ0VuZHBv
aW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBACiAjaW1wb3J0ICJjb25maWcu
aCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAKLSNpbXBvcnQgPFdlYkNvcmUvWFBD
RW5kcG9pbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvWFBDRW5kcG9pbnRDbGllbnQuaD4KKyNpbXBv
cnQgPFdlYktpdC9YUENFbmRwb2ludC5oPgorI2ltcG9ydCA8V2ViS2l0L1hQQ0VuZHBvaW50Q2xp
ZW50Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogc3RhdGljIGJvb2wgY2xp
ZW50Q29ubmVjdGVkVG9FbmRwb2ludCA9IGZhbHNlOwpAQCAtMzcsNyArMzcsNyBAQCBzdGF0aWMg
Ym9vbCBjbGllbnRSZWNlaXZlZE1lc3NhZ2VGcm9tRW5kCiBzdGF0aWMgY29uc3RleHByIGF1dG8g
dGVzdE1lc3NhZ2VGcm9tRW5kcG9pbnQgPSAidGVzdC1tZXNzYWdlLWZyb20tZW5kcG9pbnQiOwog
c3RhdGljIGNvbnN0ZXhwciBhdXRvIHRlc3RNZXNzYWdlRnJvbUNsaWVudCA9ICJ0ZXN0LW1lc3Nh
Z2UtZnJvbS1jbGllbnQiOwogCi1jbGFzcyBYUENFbmRwb2ludCA6IHB1YmxpYyBXZWJDb3JlOjpY
UENFbmRwb2ludCB7CitjbGFzcyBYUENFbmRwb2ludCA6IHB1YmxpYyBXZWJLaXQ6OlhQQ0VuZHBv
aW50IHsKIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogeHBjRW5kcG9pbnRNZXNzYWdlTmFtZUtl
eSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAg
IH0KIH07CiAKLWNsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OlhQQ0Vu
ZHBvaW50Q2xpZW50IHsKK2NsYXNzIFhQQ0VuZHBvaW50Q2xpZW50IDogcHVibGljIFdlYktpdDo6
WFBDRW5kcG9pbnRDbGllbnQgewogcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUV2ZW50KHhwY19v
YmplY3RfdCBldmVudCkgb3ZlcnJpZGUKICAgICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>