<?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>204733</bug_id>
          
          <creation_ts>2019-12-01 15:32:02 -0800</creation_ts>
          <short_desc>[LFC][IFC] Adjust trailing container start/end inline run position when trailing content is trimmed</short_desc>
          <delta_ts>2019-12-02 12:26:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>204749</dup_id>
          
          <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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594447</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 15:32:02 -0800</bug_when>
    <thetext>&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt; &lt;- when the trailing whitespace is trimmed the span runs&apos; horizontal position need adjustment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594448</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-01 15:32:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/57546699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594450</commentid>
    <comment_count>2</comment_count>
      <attachid>384583</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 15:33:44 -0800</bug_when>
    <thetext>Created attachment 384583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594452</commentid>
    <comment_count>3</comment_count>
      <attachid>384584</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 15:47:22 -0800</bug_when>
    <thetext>Created attachment 384584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594462</commentid>
    <comment_count>4</comment_count>
      <attachid>384586</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 17:00:40 -0800</bug_when>
    <thetext>Created attachment 384586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594467</commentid>
    <comment_count>5</comment_count>
      <attachid>384588</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 18:03:57 -0800</bug_when>
    <thetext>Created attachment 384588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594742</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-02 12:26:03 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 204749 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384583</attachid>
            <date>2019-12-01 15:33:44 -0800</date>
            <delta_ts>2019-12-01 15:47:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204733-20191201153343.patch</filename>
            <type>text/plain</type>
            <size>26017</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQzMDE5ZDU0ZDkyYTJl
ZWEzMmU5OWNiN2M4NzI1YWE1YjdhNDhhOS4uMzhkN2QyY2Q1YTgyZWM3ODhlNWMyNDU0YjBhMzkx
ZGE2ZjUzZmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3Qg
dHJhaWxpbmcgY29udGFpbmVyIHN0YXJ0L2VuZCBpbmxpbmUgcnVuIHBvc2l0aW9uIHdoZW4gdHJh
aWxpbmcgY29udGVudCBpcyB0cmltbWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ3MzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTQ2Njk5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUAor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlv
bi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6UmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQ6OmNhblVzZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNvbnRlbnRCb3hIZWlnaHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwYWludCk6CisgICAg
ICAgICogbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xp
bmVMYXlvdXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0LmguCisKIDIwMTktMTItMDEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFRyaW0gdHJhaWxpbmcgbGV0dGVyIHNwYWNp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGYzNmY2MGRlMTA3NjQ5YzcxMjAyNWE3OTZhZTQ1NTAwMjdk
YTY4ZTUuLjEwZjcyMWMyYjdlOTU2M2RjMmQ0Y2UyNGExNzNhODRmMDRmNTMzZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNDIyLDcgKzE0MjIsNiBAQCBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKIGxh
eW91dC9MYXlvdXRQaGFzZS5jcHAKIGxheW91dC9MYXlvdXRTdGF0ZS5jcHAKIGxheW91dC9MYXlv
dXRVbml0cy5jcHAKLWxheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcAogbGF5b3V0
L1ZlcmlmaWNhdGlvbi5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4
dEdlb21ldHJ5LmNwcApAQCAtMTQ1MSw2ICsxNDUwLDcgQEAgbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Qm94LmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWQuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAKK2xheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGlu
Z1N0YXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDBmMDhhM2JkNmMyOWI5OTllN2ZlYjY5ZDMzNTQ1MTdlYTAxMDZkNWMu
LmRmZDFmMDczN2U2ZTExMjlhZTQ1YTNhNjIwZGQ5MGMyYzk5Y2JiMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3OSw2ICsz
NzksNyBAQAogCQkxMTM0MDlEQTIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJD
b250aW51YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDExMzQwOUQ4MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVh
dGlvbi5oICovOyB9OwogCQkxMTNBM0NCNDIzODU4NjAxMDBBRTNFQ0UgLyogVGV4dENvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExM0EzQ0Iy
MjM4NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExM0QwQjUyMUY5RkREMkIwMEY2MTFCQiAvKiBG
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTExNDkzM0NCMjM5NDgzM0IwMEY5RjIwQiAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTQ5MzND
QTIzOTQ4MzNBMDBGOUYyMEIgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExNUNGQTZBMjA4QUY3
RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Q0ZBNjgyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1h
dHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTE1Q0ZBNkUyMDhBRkFCNzAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUNG
QTZDMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTE1Q0ZBNzYyMDhBRkUz
MDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1Q0ZBNzQyMDhBRkUzMDAwMUU2OTkxIC8qIEZvcm1hdHRp
bmdTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC00ODUzLDcgKzQ4NTQsNiBAQAogCQlFNEE4MTREQTFDNzBFMTBEMDBCRjg1QUMgLyogQXR0
cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNEE4MTREOTFDNzBFMTBEMDBCRjg1QUMgLyogQXR0cmlidXRlQ2hh
bmdlSW52YWxpZGF0aW9uLmggKi87IH07CiAJCUU0QTgxNEUwMUM3MzM4RUIwMEJGODVBQyAvKiBJ
ZENoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTRBODE0REYxQzczMzhFQjAwQkY4NUFDIC8qIElkQ2hhbmdlSW52YWxpZGF0
aW9uLmggKi87IH07CiAJCUU0QThEMjE2MjI1NzhEQjcwMEE4NDYzQyAvKiBFdmVudFJlZ2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBOEQyMTQy
MjU3OERBMDAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTRBQkFCREQyMzYwODhGRTAwRkE0MzQ1IC8qIFJl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0QUJBQkRCMjM2MDg4RkQwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmggKi87IH07CiAJCUU0QUJBQkU0MjM2MUEzMjkwMEZBNDM0NSAvKiBQcm9w
ZXJ0eUNhc2NhZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0QUJBQkUyMjM2MUEzMjkwMEZBNDM0NSAvKiBQcm9wZXJ0eUNhc2NhZGUuaCAqLzsgfTsK
IAkJRTRBQkFCRjMyMzY4Qjk1OTAwRkE0MzQ1IC8qIFN0eWxlQnVpbGRlclN0YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFCQUJGMjIzNjhCOTU4
MDBGQTQzNDUgLyogU3R5bGVCdWlsZGVyU3RhdGUuaCAqLzsgfTsKIAkJRTRBQkFCRjUyMzY4QzZF
RjAwRkE0MzQ1IC8qIENhc2NhZGVMZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRBQkFCRjQyMzY4QzZFRjAwRkE0MzQ1IC8qIENhc2NhZGVMZXZl
bC5oICovOyB9OwpAQCAtNTg3MCw2ICs1ODcwLDggQEAKIAkJMTEzQTNDQjIyMzg1ODYwMDAwQUUz
RUNFIC8qIFRleHRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
eHRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExM0QwQjRGMUY5RkRE
MkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTExNDkzM0M5MjM5NDgzMjkwMEY5RjIwQiAvKiBSZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuY3BwOyBwYXRoID0gbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJ
CTExNDkzM0NBMjM5NDgzM0EwMEY5RjIwQiAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQuaDsgcGF0aCA9IGxheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJMTE1Q0E4
MzAyMzMyOEIxRTAwRkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExheW91dFVuaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1Q0ZBNjgy
MDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZv
cm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUNGQTY5
MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGb3JtYXR0aW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTIxOSw4ICsxNTIyMSw2IEBACiAJCUU0QTgxNERGMUM3MzM4RUIwMEJGODVBQyAvKiBJZENo
YW5nZUludmFsaWRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZENo
YW5nZUludmFsaWRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEE4RDIx
NDIyNTc4REEwMDBBODQ2M0MgLyogRXZlbnRSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRXZlbnRSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTRBOEQyMTUyMjU3OERBMDAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50UmVnaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFNEFCQUJE
RTIzNjA4OTNEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBQkFCRTIyMzYxQTMyOTAwRkE0
MzQ1IC8qIFByb3BlcnR5Q2FzY2FkZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQcm9wZXJ0eUNhc2NhZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBQkFC
RTUyMzYxQTM0MjAwRkE0MzQ1IC8qIFByb3BlcnR5Q2FzY2FkZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQcm9wZXJ0eUNhc2NhZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NEFCQUJGMDIzNjhCOTE4MDBGQTQzNDUgLyogU3R5bGVCdWlsZGVyU3RhdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3R5bGVCdWlsZGVyU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2MTgsNiArMTY2MTgsMjQgQEAKIAkJCXBhdGggPSBkaXNwbGF5bGlzdHM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxMTQ5MzNDNzIzOTQ4MkI3MDBGOUYy
MEIgLyogbWlzYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMTE0OTMzQzgyMzk0ODJDMzAwRjlGMjBCIC8qIHJlbmRlcnRyZWVpbnRlZ3JhdGlvbiAqLywK
KwkJCSk7CisJCQlwYXRoID0gbWlzYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTExNDkzM0M4MjM5NDgyQzMwMEY5RjIwQiAvKiByZW5kZXJ0cmVlaW50ZWdyYXRpb24gKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTExNDkzM0M5MjM5
NDgzMjkwMEY5RjIwQiAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLywKKwkJCQkx
MTQ5MzNDQTIzOTQ4MzNBMDBGOUYyMEIgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICov
LAorCQkJKTsKKwkJCW5hbWUgPSByZW5kZXJ0cmVlaW50ZWdyYXRpb247CisJCQlwYXRoID0gIi4u
L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uIjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTExNUNGQTY2MjA4QUY3MjAwMDFFNjk5MSAvKiBsYXlvdXQgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTY2MjcsNiArMTY2NDUsNyBAQAog
CQkJCTExNUNGQTlBMjA4QkMxNDAwMDFFNjk5MSAvKiBpbmxpbmVmb3JtYXR0aW5nICovLAogCQkJ
CTZGOTVERTRBMjM3Qjg4MzAwMEU1MTdFMSAvKiBpbnZhbGlkYXRpb24gKi8sCiAJCQkJMTE1Q0ZB
OTAyMDhCOTQ0MTAwMUU2OTkxIC8qIGxheW91dHRyZWUgKi8sCisJCQkJMTE0OTMzQzcyMzk0ODJC
NzAwRjlGMjBCIC8qIG1pc2MgKi8sCiAJCQkJNkZDNUNBOTEyMkUzNTkzMzAwQjEzRTExIC8qIHRh
YmxlZm9ybWF0dGluZyAqLywKIAkJCQkxMTVDRkE2OTIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0
dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTExNUNGQTY4MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3Jt
YXR0aW5nQ29udGV4dC5oICovLApAQCAtMTY2NDMsOCArMTY2NjIsNiBAQAogCQkJCTExNUNBODMw
MjMzMjhCMUUwMEZEM0IwOCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2
Q0VERDAwNkFGMjYyIC8qIExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAw
Mjk2RENEIC8qIE1hcmdpblR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREUyMzYwODkzRDAwRkE0MzQ1
IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwICovLAotCQkJCUU0QUJBQkRCMjM2MDg4
RkQwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggKi8sCiAJCQkJMTFGRjAy
RDUyMEJBM0M4MTAwODNGMjVCIC8qIFZlcmlmaWNhdGlvbi5jcHAgKi8sCiAJCQkpOwogCQkJcGF0
aCA9IGxheW91dDsKQEAgLTI4NzMxLDggKzI4NzQ4LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEw
MDA1MTQ1MzQgLyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAw
OUFERTZBIC8qIExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUz
MDMwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzky
Nzc4MzAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJ
RTQzNDNEMjQyMzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0
aC5oICovLAorCQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVy
c2FsU2ltcGxlUGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5l
V2lkdGguY3BwICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGgu
aCAqLywKIAkJCQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNw
cCAqLywKQEAgLTMwNTQzLDcgKzMwNTYwLDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0
MjUgLyogSlNGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMz
QjlFMzYxRjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJh
dmVyc2FsQ29tcGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYw
MDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2
REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVB
OTFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MTE5OCw2ICszMTIxNCw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVM
YXlvdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1
MzQgLyogTGluZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1
MzI1MDA5QURFNkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTQzNDNEMjUyMzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0
aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4
M0QyN0I3MDA0MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMw
QjFERjQ0REY0MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0
M0IyNjMxREREMTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMx
NjkxLDcgKzMxNzA5LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGlj
S2V5Q3JlZGVudGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYw
MDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTczMDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2
IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzMwM0JFQjIwMDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNV
UkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU3LDcgKzMxNzc0LDcgQEAKIAkJCQk3
Q0Q0OTRDRDFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93
LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTE0OTMzQ0IyMzk0ODMz
QjAwRjlGMjBCIC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRUE0ODYyMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRUIxNzlDMTQzMzc5RjUwMDUyRUFFOSAvKiBSZW5kZXJCb3hGcmFnbWVudEluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTZEQjQzMEYzQTg4MEUwMDU3M0NCMyAvKiBSZW5kZXJC
b3hNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgxZDA4ZGMzMjZjMTBmNWY5NGVjMGI4ZDNmODY2YTFkMDdhNjg1YjEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJEaXNwbGF5Qm94LmgiCi0jaW5jbHVkZSAiRGlzcGxh
eVBhaW50ZXIuaCIKLSNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRl
ICJJbnZhbGlkYXRpb25TdGF0ZS5oIgotI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKLSNpbmNs
dWRlICJMYXlvdXRUcmVlQnVpbGRlci5oIgotI2luY2x1ZGUgIlBhaW50SW5mby5oIgotI2luY2x1
ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgotI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aCIKLSNpbmNsdWRlICJTaW1wbGVMaW5lTGF5b3V0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LW5hbWVzcGFjZSBMYXlvdXQgewotCi1SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdykKLSAgICA6IG1f
ZmxvdyhmbG93KQotewotICAgIG1fdHJlZUNvbnRlbnQgPSBUcmVlQnVpbGRlcjo6YnVpbGRMYXlv
dXRUcmVlKGZsb3cpOwotfQotCi1SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojp+UmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dCgpID0gZGVmYXVsdDsKLQotYm9vbCBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0OjpjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93KQotewotICAgIGlm
ICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0
aW5nQ29udGV4dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgLy8gSW5pdGlhbGx5IG9ubHkgYSBzdWJzZXQgb2YgU0xMIGZlYXR1cmVz
IGlzIHN1cHBvcnRlZC4KLSAgICBpZiAoIVNpbXBsZUxpbmVMYXlvdXQ6OmNhblVzZUZvcihmbG93
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGZsb3cuc3R5bGUoKS50ZXh0VHJh
bnNmb3JtKCkgPT0gVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6ZSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKGZsb3cuZnJhZ21lbnRlZEZsb3dTdGF0ZSgpICE9IFJlbmRlck9iamVj
dDo6Tm90SW5zaWRlRnJhZ21lbnRlZEZsb3cpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IHJldHVybiB0cnVlOwotfQotCi12b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmxheW91
dCgpCi17Ci0gICAgaWYgKCFtX2xheW91dFN0YXRlKQotICAgICAgICBtX2xheW91dFN0YXRlID0g
bWFrZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNvbnRlbnQpOwotCi0gICAgYXV0byYgcm9v
dENvbnRhaW5lciA9IG1fbGF5b3V0U3RhdGUtPnJvb3QoKTsKLSAgICBhdXRvIGxheW91dENvbnRl
eHQgPSBMYXlvdXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUgfTsKLSAgICBhdXRvIGludmFsaWRh
dGlvblN0YXRlID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9OwotICAgIGxheW91dENvbnRleHQubGF5
b3V0KG1fZmxvdy5jb250ZW50U2l6ZSgpLCBpbnZhbGlkYXRpb25TdGF0ZSk7Ci0KLSAgICBhdXRv
JiBsaW5lQm94ZXMgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3Rh
dGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RDb250YWluZXIpKS5saW5lQm94ZXMo
KTsKLSAgICBhdXRvIGhlaWdodCA9IGxpbmVCb3hlcy5sYXN0KCkubG9naWNhbEJvdHRvbSgpOwot
Ci0gICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3RhdGUtPmRpc3BsYXlCb3hGb3JMYXlv
dXRCb3gocm9vdENvbnRhaW5lcik7Ci0gICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94SGVpZ2h0
KGhlaWdodCk7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y29u
dGVudEJveEhlaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUgPyBtX2xh
eW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fbGF5b3V0U3RhdGUtPnJvb3QoKSku
Y29udGVudEJveEhlaWdodCgpIDogMF9sdTsKLX0KLQotdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0KQotewotICAgIGF1dG8mIGdyYXBoaWNzQ29udGV4dCA9IHBhaW50SW5mby5jb250
ZXh0KCk7Ci0KLSAgICBncmFwaGljc0NvbnRleHQuc2F2ZSgpOwotICAgIGdyYXBoaWNzQ29udGV4
dC50cmFuc2xhdGUocGFpbnRPZmZzZXQpOwotCi0gICAgRGlzcGxheTo6UGFpbnRlcjo6cGFpbnRJ
bmxpbmVGbG93KCptX2xheW91dFN0YXRlLCBwYWludEluZm8uY29udGV4dCgpKTsKLQotICAgIGdy
YXBoaWNzQ29udGV4dC5yZXN0b3JlKCk7Ci19Ci0KLX0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzk3MDQxNmQ0MGViNDI3Zjk4NWQ1OTY4Mzk2MTVlNWE5ZWNm
M2E4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oCisrKyAvZGV2L251
bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJMYXlvdXRQb2ludC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNz
IFJlbmRlckJsb2NrRmxvdzsKLXN0cnVjdCBQYWludEluZm87Ci0KLW5hbWVzcGFjZSBMYXlvdXQg
ewotCi1jbGFzcyBMYXlvdXRUcmVlQ29udGVudDsKLWNsYXNzIExheW91dFN0YXRlOwotCi1jbGFz
cyBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KGNvbnN0IFJlbmRlckJs
b2NrRmxvdyYpOwotICAgIH5SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KCk7Ci0KLSAgICBzdGF0
aWMgYm9vbCBjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7Ci0KLSAgICB2b2lkIGxh
eW91dCgpOwotICAgIAotICAgIExheW91dFVuaXQgY29udGVudEJveEhlaWdodCgpIGNvbnN0Owot
Ci0gICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZz
ZXQpOwotCi1wcml2YXRlOgotICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgbV9mbG93OwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRUcmVlQ29udGVudD4gbV90cmVlQ29udGVudDsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IG1fbGF5b3V0U3RhdGU7Ci19OwotCi19Ci19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVuZGVydHJl
ZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZDA4ZGMzMjZjMTBmNWY5NGVjMGI4ZDNmODY2YTFkMDdh
Njg1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbWlzYy9yZW5k
ZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKQEAgLTAsMCAr
MSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpCisKKyNpbmNsdWRlICJEaXNwbGF5Qm94LmgiCisjaW5jbHVkZSAiRGlzcGxheVBh
aW50ZXIuaCIKKyNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJJ
bnZhbGlkYXRpb25TdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNsdWRl
ICJMYXlvdXRUcmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlBhaW50SW5mby5oIgorI2luY2x1ZGUg
IlJlbmRlckJsb2NrRmxvdy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
KyNpbmNsdWRlICJTaW1wbGVMaW5lTGF5b3V0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBMYXlvdXQgeworCitSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpSZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdykKKyAgICA6IG1fZmxv
dyhmbG93KQoreworICAgIG1fdHJlZUNvbnRlbnQgPSBUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRU
cmVlKGZsb3cpOworfQorCitSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojp+UmVuZGVyQmxvY2tG
bG93TGluZUxheW91dCgpID0gZGVmYXVsdDsKKworYm9vbCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5
b3V0OjpjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93KQoreworICAgIGlmICgh
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5n
Q29udGV4dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgLy8gSW5pdGlhbGx5IG9ubHkgYSBzdWJzZXQgb2YgU0xMIGZlYXR1cmVzIGlz
IHN1cHBvcnRlZC4KKyAgICBpZiAoIVNpbXBsZUxpbmVMYXlvdXQ6OmNhblVzZUZvcihmbG93KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGZsb3cuc3R5bGUoKS50ZXh0VHJhbnNm
b3JtKCkgPT0gVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKGZsb3cuZnJhZ21lbnRlZEZsb3dTdGF0ZSgpICE9IFJlbmRlck9iamVjdDo6
Tm90SW5zaWRlRnJhZ21lbnRlZEZsb3cpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCit2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmxheW91dCgp
Cit7CisgICAgaWYgKCFtX2xheW91dFN0YXRlKQorICAgICAgICBtX2xheW91dFN0YXRlID0gbWFr
ZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNvbnRlbnQpOworCisgICAgYXV0byYgcm9vdENv
bnRhaW5lciA9IG1fbGF5b3V0U3RhdGUtPnJvb3QoKTsKKyAgICBhdXRvIGxheW91dENvbnRleHQg
PSBMYXlvdXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUgfTsKKyAgICBhdXRvIGludmFsaWRhdGlv
blN0YXRlID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9OworICAgIGxheW91dENvbnRleHQubGF5b3V0
KG1fZmxvdy5jb250ZW50U2l6ZSgpLCBpbnZhbGlkYXRpb25TdGF0ZSk7CisKKyAgICBhdXRvJiBs
aW5lQm94ZXMgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUt
PmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RDb250YWluZXIpKS5saW5lQm94ZXMoKTsK
KyAgICBhdXRvIGhlaWdodCA9IGxpbmVCb3hlcy5sYXN0KCkubG9naWNhbEJvdHRvbSgpOworCisg
ICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3RhdGUtPmRpc3BsYXlCb3hGb3JMYXlvdXRC
b3gocm9vdENvbnRhaW5lcik7CisgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94SGVpZ2h0KGhl
aWdodCk7Cit9CisKK0xheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y29udGVu
dEJveEhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUgPyBtX2xheW91
dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fbGF5b3V0U3RhdGUtPnJvb3QoKSkuY29u
dGVudEJveEhlaWdodCgpIDogMF9sdTsKK30KKwordm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5
b3V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0KQoreworICAgIGF1dG8mIGdyYXBoaWNzQ29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0
KCk7CisKKyAgICBncmFwaGljc0NvbnRleHQuc2F2ZSgpOworICAgIGdyYXBoaWNzQ29udGV4dC50
cmFuc2xhdGUocGFpbnRPZmZzZXQpOworCisgICAgRGlzcGxheTo6UGFpbnRlcjo6cGFpbnRJbmxp
bmVGbG93KCptX2xheW91dFN0YXRlLCBwYWludEluZm8uY29udGV4dCgpKTsKKworICAgIGdyYXBo
aWNzQ29udGV4dC5yZXN0b3JlKCk7Cit9CisKK30KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVuZGVydHJl
ZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTcw
NDE2ZDQwZWI0MjdmOTg1ZDU5NjgzOTYxNWU1YTllY2YzYThlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1
ZGUgIkxheW91dFBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OworY2xhc3MgUmVuZGVyQmxvY2tGbG93Oworc3RydWN0IFBhaW50SW5mbzsKKwor
bmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIExheW91dFRyZWVDb250ZW50OworY2xhc3MgTGF5
b3V0U3RhdGU7CisKK2NsYXNzIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQoY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CisgICAgflJlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQoKTsKKworICAgIHN0YXRpYyBib29sIGNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cm
KTsKKworICAgIHZvaWQgbGF5b3V0KCk7CisgICAgCisgICAgTGF5b3V0VW5pdCBjb250ZW50Qm94
SGVpZ2h0KCkgY29uc3Q7CisKKyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCk7CisKK3ByaXZhdGU6CisgICAgY29uc3QgUmVuZGVyQmxvY2tG
bG93JiBtX2Zsb3c7CisgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFRyZWVDb250ZW50PiBtX3Ry
ZWVDb250ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0
ZTsKK307CisKK30KK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384584</attachid>
            <date>2019-12-01 15:47:22 -0800</date>
            <delta_ts>2019-12-01 17:00:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204733-20191201154721.patch</filename>
            <type>text/plain</type>
            <size>25974</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQzMDE5ZDU0ZDkyYTJl
ZWEzMmU5OWNiN2M4NzI1YWE1YjdhNDhhOS4uMzhkN2QyY2Q1YTgyZWM3ODhlNWMyNDU0YjBhMzkx
ZGE2ZjUzZmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3Qg
dHJhaWxpbmcgY29udGFpbmVyIHN0YXJ0L2VuZCBpbmxpbmUgcnVuIHBvc2l0aW9uIHdoZW4gdHJh
aWxpbmcgY29udGVudCBpcyB0cmltbWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ3MzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTQ2Njk5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUAor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlv
bi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6UmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQ6OmNhblVzZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNvbnRlbnRCb3hIZWlnaHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwYWludCk6CisgICAg
ICAgICogbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xp
bmVMYXlvdXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0LmguCisKIDIwMTktMTItMDEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFRyaW0gdHJhaWxpbmcgbGV0dGVyIHNwYWNp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGYzNmY2MGRlMTA3NjQ5YzcxMjAyNWE3OTZhZTQ1NTAwMjdk
YTY4ZTUuLjEwZjcyMWMyYjdlOTU2M2RjMmQ0Y2UyNGExNzNhODRmMDRmNTMzZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNDIyLDcgKzE0MjIsNiBAQCBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKIGxh
eW91dC9MYXlvdXRQaGFzZS5jcHAKIGxheW91dC9MYXlvdXRTdGF0ZS5jcHAKIGxheW91dC9MYXlv
dXRVbml0cy5jcHAKLWxheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcAogbGF5b3V0
L1ZlcmlmaWNhdGlvbi5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4
dEdlb21ldHJ5LmNwcApAQCAtMTQ1MSw2ICsxNDUwLDcgQEAgbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Qm94LmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWQuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAKK2xheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGlu
Z1N0YXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDBmMDhhM2JkNmMyOWI5OTllN2ZlYjY5ZDMzNTQ1MTdlYTAxMDZkNWMu
LjRjMzk0MmE5NzQ4YTExNTYyYjU0MzgwNjJmNmVjYTYwNDQ2ZGIxNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3OSw2ICsz
NzksNyBAQAogCQkxMTM0MDlEQTIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJD
b250aW51YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDExMzQwOUQ4MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVh
dGlvbi5oICovOyB9OwogCQkxMTNBM0NCNDIzODU4NjAxMDBBRTNFQ0UgLyogVGV4dENvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExM0EzQ0Iy
MjM4NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExM0QwQjUyMUY5RkREMkIwMEY2MTFCQiAvKiBG
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMTNEMEI1MDFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTExNDkzM0NCMjM5NDgzM0IwMEY5RjIwQiAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTQ5MzND
QTIzOTQ4MzNBMDBGOUYyMEIgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovOyB9Owog
CQkxMTVDRkE2QTIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUNGQTY4MjA4QUY3RDAw
MDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExNUNGQTZFMjA4QUZBQjcwMDFFNjk5MSAvKiBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxMTVDRkE2QzIwOEFGQUI2MDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTExNUNGQTc2MjA4QUZFMzAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUNGQTc0MjA4QUZFMzAwMDFF
Njk5MSAvKiBGb3JtYXR0aW5nU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNDg1Myw3ICs0ODU0LDYgQEAKIAkJRTRBODE0REExQzcwRTEw
RDAwQkY4NUFDIC8qIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBODE0RDkxQzcwRTEwRDAwQkY4NUFD
IC8qIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5oICovOyB9OwogCQlFNEE4MTRFMDFDNzMz
OEVCMDBCRjg1QUMgLyogSWRDaGFuZ2VJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTgxNERGMUM3MzM4RUIwMEJGODVBQyAvKiBJ
ZENoYW5nZUludmFsaWRhdGlvbi5oICovOyB9OwogCQlFNEE4RDIxNjIyNTc4REI3MDBBODQ2M0Mg
LyogRXZlbnRSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0QThEMjE0MjI1NzhEQTAwMEE4NDYzQyAvKiBFdmVudFJlZ2lvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUU0QUJBQkREMjM2MDg4
RkUwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUg
LyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovOyB9OwogCQlFNEFCQUJFNDIzNjFBMzI5
MDBGQTQzNDUgLyogUHJvcGVydHlDYXNjYWRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFCQUJFMjIzNjFBMzI5MDBGQTQzNDUgLyogUHJvcGVydHlD
YXNjYWRlLmggKi87IH07CiAJCUU0QUJBQkYzMjM2OEI5NTkwMEZBNDM0NSAvKiBTdHlsZUJ1aWxk
ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTRBQkFCRjIyMzY4Qjk1ODAwRkE0MzQ1IC8qIFN0eWxlQnVpbGRlclN0YXRlLmggKi87IH07CiAJ
CUU0QUJBQkY1MjM2OEM2RUYwMEZBNDM0NSAvKiBDYXNjYWRlTGV2ZWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QUJBQkY0MjM2OEM2RUYwMEZBNDM0
NSAvKiBDYXNjYWRlTGV2ZWwuaCAqLzsgfTsKQEAgLTU4NzAsNiArNTg3MCw4IEBACiAJCTExM0Ez
Q0IyMjM4NTg2MDAwMEFFM0VDRSAvKiBUZXh0Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxMTNEMEI0RjFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzRDBCNTAxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1lVmll
d0xheW91dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxMTQ5MzNDOTIzOTQ4MzI5MDBGOUYyMEIg
LyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW5k
ZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcDsgcGF0aCA9IGxheW91dC9taXNjL3JlbmRlcnRyZWVp
bnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OworCQkxMTQ5MzNDQTIzOTQ4MzNBMDBGOUYyMEIgLyogUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0Lmg7IHBhdGggPSBsYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdy
YXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CiAJCTExNUNBODMwMjMzMjhCMUUwMEZEM0IwOCAvKiBMYXlvdXRVbml0cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMYXlvdXRVbml0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTExNUNGQTY4MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxMTVDRkE2OTIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0dGluZ0NvbnRleHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTUyMTksOCArMTUyMjEsNiBAQAogCQlFNEE4MTRERjFDNzMzOEVC
MDBCRjg1QUMgLyogSWRDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSWRDaGFuZ2VJbnZhbGlkYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTRBOEQyMTQyMjU3OERBMDAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UmVnaW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0QThEMjE1MjI1NzhEQTAwMEE4NDYzQyAvKiBFdmVudFJlZ2lvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFJlZ2lvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0QUJBQkRCMjM2MDg4RkQwMEZBNDM0NSAv
KiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTRBQkFCREUyMzYwODkzRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QUJB
QkUyMjM2MUEzMjkwMEZBNDM0NSAvKiBQcm9wZXJ0eUNhc2NhZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVydHlDYXNjYWRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0QUJBQkU1MjM2MUEzNDIwMEZBNDM0NSAvKiBQcm9wZXJ0eUNhc2NhZGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlDYXNjYWRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTRBQkFCRjAyMzY4QjkxODAwRkE0MzQ1IC8qIFN0eWxlQnVpbGRlclN0
YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlQnVpbGRlclN0YXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NjE4LDYgKzE2NjE4LDI0IEBACiAJCQlwYXRoID0g
ZGlzcGxheWxpc3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMTE0OTMz
QzcyMzk0ODJCNzAwRjlGMjBCIC8qIG1pc2MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTExNDkzM0M4MjM5NDgyQzMwMEY5RjIwQiAvKiByZW5kZXJ0cmVl
aW50ZWdyYXRpb24gKi8sCisJCQkpOworCQkJcGF0aCA9IG1pc2M7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OworCQkxMTQ5MzNDODIzOTQ4MkMzMDBGOUYyMEIgLyogcmVuZGVydHJl
ZWludGVncmF0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQkxMTQ5MzNDOTIzOTQ4MzI5MDBGOUYyMEIgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91
dC5jcHAgKi8sCisJCQkJMTE0OTMzQ0EyMzk0ODMzQTAwRjlGMjBCIC8qIFJlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXQuaCAqLywKKwkJCSk7CisJCQluYW1lID0gcmVuZGVydHJlZWludGVncmF0aW9u
OworCQkJcGF0aCA9IC4uL21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMTE1Q0ZBNjYyMDhBRjcyMDAwMUU2OTkxIC8qIGxheW91
dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjYyNyw2
ICsxNjY0NSw3IEBACiAJCQkJMTE1Q0ZBOUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1h
dHRpbmcgKi8sCiAJCQkJNkY5NURFNEEyMzdCODgzMDAwRTUxN0UxIC8qIGludmFsaWRhdGlvbiAq
LywKIAkJCQkxMTVDRkE5MDIwOEI5NDQxMDAxRTY5OTEgLyogbGF5b3V0dHJlZSAqLywKKwkJCQkx
MTQ5MzNDNzIzOTQ4MkI3MDBGOUYyMEIgLyogbWlzYyAqLywKIAkJCQk2RkM1Q0E5MTIyRTM1OTMz
MDBCMTNFMTEgLyogdGFibGVmb3JtYXR0aW5nICovLAogCQkJCTExNUNGQTY5MjA4QUY3RDAwMDFF
Njk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJMTE1Q0ZBNjgyMDhBRjdEMDAw
MUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggKi8sCkBAIC0xNjY0Myw4ICsxNjY2Miw2IEBA
CiAJCQkJMTE1Q0E4MzAyMzMyOEIxRTAwRkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLywKIAkJ
CQk2RjczOTE4QzIxMDZDRUREMDA2QUYyNjIgLyogTGF5b3V0VW5pdHMuaCAqLywKIAkJCQk2RkU3
QUEyNjIxQzM3QjYzMDAyOTZEQ0QgLyogTWFyZ2luVHlwZXMuaCAqLywKLQkJCQlFNEFCQUJERTIz
NjA4OTNEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCi0JCQkJ
RTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAq
LywKIAkJCQkxMUZGMDJENTIwQkEzQzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gbGF5b3V0OwpAQCAtMjg3MzEsOCArMjg3NDgsOCBAQAogCQkJCUZG
RUZBQjI5MTgzODBEQTAwMDUxNDUzNCAvKiBMaW5lTGF5b3V0U3RhdGUuaCAqLywKIAkJCQlFNDg0
QTMzRDIzMDU1MzAzMDA5QURFNkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5jcHAgKi8sCiAJCQkJ
RTQ4NEEzM0IyMzA1NTMwMzAwOUFERTZBIC8qIExpbmVMYXlvdXRUcmF2ZXJzYWwuaCAqLywKLQkJ
CQlFNDM0M0QyMTIzOTI3NzgzMDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBh
dGguaCAqLywKIAkJCQlFNDM0M0QyNDIzOTI3NzhGMDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZl
cnNhbENvbXBsZXhQYXRoLmggKi8sCisJCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJCQjY2IC8qIExp
bmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRkZEQkMwNDYxODNEMjdCNzAw
NDA3MTA5IC8qIExpbmVXaWR0aC5jcHAgKi8sCiAJCQkJRkZEQkMwNDUxODNEMjdCNzAwNDA3MTA5
IC8qIExpbmVXaWR0aC5oICovLAogCQkJCUZGQUMzMEZEMTg0RkIxNDUwMDhDNEYxRSAvKiBUcmFp
bGluZ09iamVjdHMuY3BwICovLApAQCAtMzA1NDMsNyArMzA1NjAsNiBAQAogCQkJCTgzNzA1Njkw
MUY1MDkxNUMwMEQ5MzQyNSAvKiBKU0ZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyogSlNGaWxlU3lzdGVtRmlsZUVu
dHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTJCRTQ4ODFGRTg2ODZBMDAyMDMxQ0MgLyogSlNG
aWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjUyMzkyNzc5MDAwRUJCQjY2IC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjZE
OUQyN0IxNEVBQzA4NjAwOTBENzVFIC8qIEpTRm9jdXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzI4MDgzM0YxQzZEQzI2RjAwMTQ1MUI2IC8qIEpTRm9udEZhY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDMjRFRUE5MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxMTk4LDYgKzMxMjE0LDggQEAKIAkJCQk2RjI2RUI0ODIzNDAwNEE1MDA2
OTA2RTIgLyogTGluZUxheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGRUZBQjJB
MTgzODBEQTAwMDUxNDUzNCAvKiBMaW5lTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0ODRBMzNFMjMwNTUzMjUwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNDM0M0QyNTIzOTI3NzkwMDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZl
cnNhbENvbXBsZXhQYXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDM0M0QyMzIzOTI3Nzg0MDBF
QkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCBpbiBIZWFkZXJzICovLAog
CQkJCUZGREJDMDQ3MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCBpbiBIZWFkZXJzICov
LAogCQkJCUNCQTlEQzBCMURGNDRERjQwMDA1Njc1QyAvKiBMaW5rSGVhZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTQzQjI2MzFEREQxNTIwMDAxNEZBQzYgLyogTGlua0ljb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMzE2OTEsNyArMzE3MDksNiBAQAogCQkJCTU3RENFRDc0MjE0MzA1RjAwMDE2
Qjg0NyAvKiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNCRUYyMDA5ODBDNjAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0MwQTIwMDk5QkFEMDAzNTU5NjUgLyogUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDM0M0QyMzIz
OTI3Nzg0MDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU3MzAzQkVCMjAwOTdGNDAwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50
aWFsVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDA4MUZGMDAxNkIwQTJEMzAwOEFBQTdBIC8q
IFB1YmxpY1N1ZmZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTBGQjA4NEIxNEUxNUM3RTAwQTNE
Qjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3NTcsNyArMzE3
NzQsNyBAQAogCQkJCTdDRDQ5NENEMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg2MDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVy
QmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTBENzY4MTdEOEVFNzEwMDVFMjYyNiAvKiBS
ZW5kZXJCbG9ja0Zsb3cuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0QUJBQkREMjM2MDg4RkUwMEZB
NDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkx
MTQ5MzNDQjIzOTQ4MzNCMDBGOUYyMEIgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJveC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJFQUU5IC8qIFJlbmRlckJv
eEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRCNDMwRjNBODgwRTAwNTcz
Q0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFkMDhkYzMyNmMxMGY1Zjk0ZWMwYjhkM2Y4NjZhMWQw
N2E2ODViMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgiCi0KLSNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgIkRpc3BsYXlCb3guaCIKLSNp
bmNsdWRlICJEaXNwbGF5UGFpbnRlci5oIgotI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0
ZS5oIgotI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCi0jaW5jbHVkZSAiTGF5b3V0Q29u
dGV4dC5oIgotI2luY2x1ZGUgIkxheW91dFRyZWVCdWlsZGVyLmgiCi0jaW5jbHVkZSAiUGFpbnRJ
bmZvLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCi0jaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgotI2luY2x1ZGUgIlNpbXBsZUxpbmVMYXlvdXQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLVJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBm
bG93KQotICAgIDogbV9mbG93KGZsb3cpCi17Ci0gICAgbV90cmVlQ29udGVudCA9IFRyZWVCdWls
ZGVyOjpidWlsZExheW91dFRyZWUoZmxvdyk7Ci19Ci0KLVJlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQ6On5SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KCkgPSBkZWZhdWx0OwotCi1ib29sIFJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZs
b3cpCi17Ci0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxheW91dEZvcm1hdHRpbmdDb250ZXh0UmVuZGVyVHJlZUludGVncmF0aW9uRW5hYmxlZCgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBJbml0aWFsbHkgb25seSBhIHN1YnNldCBv
ZiBTTEwgZmVhdHVyZXMgaXMgc3VwcG9ydGVkLgotICAgIGlmICghU2ltcGxlTGluZUxheW91dDo6
Y2FuVXNlRm9yKGZsb3cpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZmxvdy5z
dHlsZSgpLnRleHRUcmFuc2Zvcm0oKSA9PSBUZXh0VHJhbnNmb3JtOjpDYXBpdGFsaXplKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZmxvdy5mcmFnbWVudGVkRmxvd1N0YXRlKCkg
IT0gUmVuZGVyT2JqZWN0OjpOb3RJbnNpZGVGcmFnbWVudGVkRmxvdykKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dDo6bGF5b3V0KCkKLXsKLSAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCi0gICAgICAgIG1f
bGF5b3V0U3RhdGUgPSBtYWtlVW5pcXVlPExheW91dFN0YXRlPigqbV90cmVlQ29udGVudCk7Ci0K
LSAgICBhdXRvJiByb290Q29udGFpbmVyID0gbV9sYXlvdXRTdGF0ZS0+cm9vdCgpOwotICAgIGF1
dG8gbGF5b3V0Q29udGV4dCA9IExheW91dENvbnRleHQgeyAqbV9sYXlvdXRTdGF0ZSB9OwotICAg
IGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07Ci0gICAgbGF5
b3V0Q29udGV4dC5sYXlvdXQobV9mbG93LmNvbnRlbnRTaXplKCksIGludmFsaWRhdGlvblN0YXRl
KTsKLQotICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0
ZT4obV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdENvbnRhaW5l
cikpLmxpbmVCb3hlcygpOwotICAgIGF1dG8gaGVpZ2h0ID0gbGluZUJveGVzLmxhc3QoKS5sb2dp
Y2FsQm90dG9tKCk7Ci0KLSAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbV9sYXlvdXRTdGF0ZS0+ZGlz
cGxheUJveEZvckxheW91dEJveChyb290Q29udGFpbmVyKTsKLSAgICBkaXNwbGF5Qm94LnNldENv
bnRlbnRCb3hIZWlnaHQoaGVpZ2h0KTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0Ojpjb250ZW50Qm94SGVpZ2h0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sYXlv
dXRTdGF0ZSA/IG1fbGF5b3V0U3RhdGUtPmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobV9sYXlvdXRT
dGF0ZS0+cm9vdCgpKS5jb250ZW50Qm94SGVpZ2h0KCkgOiAwX2x1OwotfQotCi12b2lkIFJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCi17Ci0gICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0g
cGFpbnRJbmZvLmNvbnRleHQoKTsKLQotICAgIGdyYXBoaWNzQ29udGV4dC5zYXZlKCk7Ci0gICAg
Z3JhcGhpY3NDb250ZXh0LnRyYW5zbGF0ZShwYWludE9mZnNldCk7Ci0KLSAgICBEaXNwbGF5OjpQ
YWludGVyOjpwYWludElubGluZUZsb3coKm1fbGF5b3V0U3RhdGUsIHBhaW50SW5mby5jb250ZXh0
KCkpOwotCi0gICAgZ3JhcGhpY3NDb250ZXh0LnJlc3RvcmUoKTsKLX0KLQotfQotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTcwNDE2ZDQwZWI0MjdmOTg1ZDU5
NjgzOTYxNWU1YTllY2YzYThlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUg
IkxheW91dFBvaW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgR3JhcGhpY3ND
b250ZXh0OwotY2xhc3MgUmVuZGVyQmxvY2tGbG93Owotc3RydWN0IFBhaW50SW5mbzsKLQotbmFt
ZXNwYWNlIExheW91dCB7Ci0KLWNsYXNzIExheW91dFRyZWVDb250ZW50OwotY2xhc3MgTGF5b3V0
U3RhdGU7Ci0KLWNsYXNzIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQgewotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQo
Y29uc3QgUmVuZGVyQmxvY2tGbG93Jik7Ci0gICAgflJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQo
KTsKLQotICAgIHN0YXRpYyBib29sIGNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsK
LQotICAgIHZvaWQgbGF5b3V0KCk7Ci0gICAgCi0gICAgTGF5b3V0VW5pdCBjb250ZW50Qm94SGVp
Z2h0KCkgY29uc3Q7Ci0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCk7Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgUmVuZGVyQmxvY2tGbG93
JiBtX2Zsb3c7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFRyZWVDb250ZW50PiBtX3RyZWVD
b250ZW50OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsK
LX07Ci0KLX0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFkMDhkYzMyNmMxMGY1Zjk0ZWMw
YjhkM2Y4NjZhMWQwN2E2ODViMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
LmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgiCisKKyNpZiBFTkFCTEUoTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkRpc3BsYXlCb3guaCIKKyNpbmNs
dWRlICJEaXNwbGF5UGFpbnRlci5oIgorI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5o
IgorI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGV4
dC5oIgorI2luY2x1ZGUgIkxheW91dFRyZWVCdWlsZGVyLmgiCisjaW5jbHVkZSAiUGFpbnRJbmZv
LmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNpbXBsZUxpbmVMYXlvdXQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK1JlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93
KQorICAgIDogbV9mbG93KGZsb3cpCit7CisgICAgbV90cmVlQ29udGVudCA9IFRyZWVCdWlsZGVy
OjpidWlsZExheW91dFRyZWUoZmxvdyk7Cit9CisKK1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6
On5SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KCkgPSBkZWZhdWx0OworCitib29sIFJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OmNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cp
Cit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxh
eW91dEZvcm1hdHRpbmdDb250ZXh0UmVuZGVyVHJlZUludGVncmF0aW9uRW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJbml0aWFsbHkgb25seSBhIHN1YnNldCBvZiBT
TEwgZmVhdHVyZXMgaXMgc3VwcG9ydGVkLgorICAgIGlmICghU2ltcGxlTGluZUxheW91dDo6Y2Fu
VXNlRm9yKGZsb3cpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZmxvdy5zdHls
ZSgpLnRleHRUcmFuc2Zvcm0oKSA9PSBUZXh0VHJhbnNmb3JtOjpDYXBpdGFsaXplKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoZmxvdy5mcmFnbWVudGVkRmxvd1N0YXRlKCkgIT0g
UmVuZGVyT2JqZWN0OjpOb3RJbnNpZGVGcmFnbWVudGVkRmxvdykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dDo6bGF5b3V0KCkKK3sKKyAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCisgICAgICAgIG1fbGF5
b3V0U3RhdGUgPSBtYWtlVW5pcXVlPExheW91dFN0YXRlPigqbV90cmVlQ29udGVudCk7CisKKyAg
ICBhdXRvJiByb290Q29udGFpbmVyID0gbV9sYXlvdXRTdGF0ZS0+cm9vdCgpOworICAgIGF1dG8g
bGF5b3V0Q29udGV4dCA9IExheW91dENvbnRleHQgeyAqbV9sYXlvdXRTdGF0ZSB9OworICAgIGF1
dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07CisgICAgbGF5b3V0
Q29udGV4dC5sYXlvdXQobV9mbG93LmNvbnRlbnRTaXplKCksIGludmFsaWRhdGlvblN0YXRlKTsK
KworICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4o
bV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdENvbnRhaW5lcikp
LmxpbmVCb3hlcygpOworICAgIGF1dG8gaGVpZ2h0ID0gbGluZUJveGVzLmxhc3QoKS5sb2dpY2Fs
Qm90dG9tKCk7CisKKyAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbV9sYXlvdXRTdGF0ZS0+ZGlzcGxh
eUJveEZvckxheW91dEJveChyb290Q29udGFpbmVyKTsKKyAgICBkaXNwbGF5Qm94LnNldENvbnRl
bnRCb3hIZWlnaHQoaGVpZ2h0KTsKK30KKworTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0Ojpjb250ZW50Qm94SGVpZ2h0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sYXlvdXRT
dGF0ZSA/IG1fbGF5b3V0U3RhdGUtPmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobV9sYXlvdXRTdGF0
ZS0+cm9vdCgpKS5jb250ZW50Qm94SGVpZ2h0KCkgOiAwX2x1OworfQorCit2b2lkIFJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKTsKKworICAgIGdyYXBoaWNzQ29udGV4dC5zYXZlKCk7CisgICAgZ3Jh
cGhpY3NDb250ZXh0LnRyYW5zbGF0ZShwYWludE9mZnNldCk7CisKKyAgICBEaXNwbGF5OjpQYWlu
dGVyOjpwYWludElubGluZUZsb3coKm1fbGF5b3V0U3RhdGUsIHBhaW50SW5mby5jb250ZXh0KCkp
OworCisgICAgZ3JhcGhpY3NDb250ZXh0LnJlc3RvcmUoKTsKK30KKworfQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3Jh
dGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM5NzA0MTZkNDBlYjQyN2Y5ODVkNTk2ODM5NjE1ZTVhOWVjZjNhOGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdy
YXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQorCisjaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBSZW5kZXJCbG9ja0Zsb3c7CitzdHJ1Y3Qg
UGFpbnRJbmZvOworCituYW1lc3BhY2UgTGF5b3V0IHsKKworY2xhc3MgTGF5b3V0VHJlZUNvbnRl
bnQ7CitjbGFzcyBMYXlvdXRTdGF0ZTsKKworY2xhc3MgUmVuZGVyQmxvY2tGbG93TGluZUxheW91
dCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKKyAgICB+UmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dCgpOworCisgICAgc3RhdGljIGJvb2wgY2FuVXNlRm9yKGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYpOworCisgICAgdm9pZCBsYXlvdXQoKTsKKyAgICAKKyAgICBMYXlvdXRV
bml0IGNvbnRlbnRCb3hIZWlnaHQoKSBjb25zdDsKKworICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKKworcHJpdmF0ZToKKyAgICBjb25z
dCBSZW5kZXJCbG9ja0Zsb3cmIG1fZmxvdzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0VHJl
ZUNvbnRlbnQ+IG1fdHJlZUNvbnRlbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRl
PiBtX2xheW91dFN0YXRlOworfTsKKworfQorfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384586</attachid>
            <date>2019-12-01 17:00:40 -0800</date>
            <delta_ts>2019-12-01 17:51:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204733-20191201170039.patch</filename>
            <type>text/plain</type>
            <size>18742</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQzMDE5ZDU0ZDkyYTJl
ZWEzMmU5OWNiN2M4NzI1YWE1YjdhNDhhOS4uOGZkZDQ1NjJlNDM5NDNhMGIwOTVhNmUyMTUyNDkx
MGRiYTRkMGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTEyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3Qg
dHJhaWxpbmcgY29udGFpbmVyIHN0YXJ0L2VuZCBpbmxpbmUgcnVuIHBvc2l0aW9uIHdoZW4gdHJh
aWxpbmcgY29udGVudCBpcyB0cmltbWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ3MzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTQ2Njk5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUC4K
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBsYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpjYW5Vc2VGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpsYXlvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojpj
b250ZW50Qm94SGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVy
QmxvY2tGbG93TGluZUxheW91dDo6cGFpbnQpOgorICAgICAgICAqIGxheW91dC9taXNjL3JlbmRl
cnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oLgorCiAy
MDE5LTEyLTAxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSUZDXSBUcmltIHRyYWlsaW5nIGxldHRlciBzcGFjaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBmMDhhM2JkNmMyOWI5
OTllN2ZlYjY5ZDMzNTQ1MTdlYTAxMDZkNWMuLmI0ZDBmMGZjYjk3MjE1ZDc4N2YwYjQxZTQwYjg3
YzJlYTY2NzAyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE2NjI3LDYgKzE2NjI3LDcgQEAKIAkJCQkxMTVDRkE5QTIwOEJD
MTQwMDAxRTY5OTEgLyogaW5saW5lZm9ybWF0dGluZyAqLywKIAkJCQk2Rjk1REU0QTIzN0I4ODMw
MDBFNTE3RTEgLyogaW52YWxpZGF0aW9uICovLAogCQkJCTExNUNGQTkwMjA4Qjk0NDEwMDFFNjk5
MSAvKiBsYXlvdXR0cmVlICovLAorCQkJCTExRDlDRTM5MjM5NDk4NkEwMEQ5NkI2MCAvKiBtaXNj
ICovLAogCQkJCTZGQzVDQTkxMjJFMzU5MzMwMEIxM0UxMSAvKiB0YWJsZWZvcm1hdHRpbmcgKi8s
CiAJCQkJMTE1Q0ZBNjkyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LywKIAkJCQkxMTVDRkE2ODIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0dGluZ0NvbnRleHQuaCAq
LywKQEAgLTE2NjQzLDggKzE2NjQ0LDYgQEAKIAkJCQkxMTVDQTgzMDIzMzI4QjFFMDBGRDNCMDgg
LyogTGF5b3V0VW5pdHMuY3BwICovLAogCQkJCTZGNzM5MThDMjEwNkNFREQwMDZBRjI2MiAvKiBM
YXlvdXRVbml0cy5oICovLAogCQkJCTZGRTdBQTI2MjFDMzdCNjMwMDI5NkRDRCAvKiBNYXJnaW5U
eXBlcy5oICovLAotCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmNwcCAqLywKLQkJCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovLAogCQkJCTExRkYwMkQ1MjBCQTNDODEwMDgzRjI1
QiAvKiBWZXJpZmljYXRpb24uY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBsYXlvdXQ7CkBAIC0x
NjcyMiw2ICsxNjcyMSwyMyBAQAogCQkJcGF0aCA9IGRpc3BsYXl0cmVlOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMTFEOUNFMzkyMzk0OTg2QTAwRDk2QjYwIC8qIG1pc2Mg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTExRDlDRTNC
MjM5NDk4QTkwMEQ5NkI2MCAvKiByZW5kZXJ0cmVlaW50ZWdyYXRpb24gKi8sCisJCQkpOworCQkJ
cGF0aCA9IG1pc2M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkxMUQ5Q0Uz
QjIzOTQ5OEE5MDBEOTZCNjAgLyogcmVuZGVydHJlZWludGVncmF0aW9uICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQz
NDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYw
ODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKKwkJCSk7CisJ
CQlwYXRoID0gcmVuZGVydHJlZWludGVncmF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJMTIyMUUwNTgxQzAyQjQwOTAwNkExQTAwIC8qIEFuaW1hdGlvbiAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yODczMSw4ICsyODc0Nyw4
IEBACiAJCQkJRkZFRkFCMjkxODM4MERBMDAwNTE0NTM0IC8qIExpbmVMYXlvdXRTdGF0ZS5oICov
LAogCQkJCUU0ODRBMzNEMjMwNTUzMDMwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmNw
cCAqLywKIAkJCQlFNDg0QTMzQjIzMDU1MzAzMDA5QURFNkEgLyogTGluZUxheW91dFRyYXZlcnNh
bC5oICovLAotCQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVy
c2FsU2ltcGxlUGF0aC5oICovLAogCQkJCUU0MzQzRDI0MjM5Mjc3OEYwMEVCQkI2NiAvKiBMaW5l
TGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCAqLywKKwkJCQlFNDM0M0QyMTIzOTI3NzgzMDBF
QkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCAqLywKIAkJCQlGRkRCQzA0
NjE4M0QyN0I3MDA0MDcxMDkgLyogTGluZVdpZHRoLmNwcCAqLywKIAkJCQlGRkRCQzA0NTE4M0Qy
N0I3MDA0MDcxMDkgLyogTGluZVdpZHRoLmggKi8sCiAJCQkJRkZBQzMwRkQxODRGQjE0NTAwOEM0
RjFFIC8qIFRyYWlsaW5nT2JqZWN0cy5jcHAgKi8sCkBAIC0zMDU0Myw3ICszMDU1OSw2IEBACiAJ
CQkJODM3MDU2OTAxRjUwOTE1QzAwRDkzNDI1IC8qIEpTRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzM0I5RTM2MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMkJFNDg4MUZFODY4NkEwMDIw
MzFDQyAvKiBKU0ZpbGxNb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDM0M0QyNTIzOTI3Nzkw
MDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbENvbXBsZXhQYXRoLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCNkQ5RDI3QjE0RUFDMDg2MDA5MEQ3NUUgLyogSlNGb2N1c0V2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMjgwODMzRjFDNkRDMjZGMDAxNDUxQjYgLyogSlNGb250RmFjZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTkxQzcyQTdCNDAwODBGOEZDIC8qIEpTRm9udEZhY2VT
ZXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzExOTgsNiArMzEyMTMsOCBAQAogCQkJCTZGMjZFQjQ4
MjM0MDA0QTUwMDY5MDZFMiAvKiBMaW5lTGF5b3V0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkZFRkFCMkExODM4MERBMDAwNTE0NTM0IC8qIExpbmVMYXlvdXRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTQ4NEEzM0UyMzA1NTMyNTAwOUFERTZBIC8qIExpbmVMYXlvdXRUcmF2ZXJz
YWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5l
TGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCBpbiBIZWFkZXJzICovLAorCQkJCUU0MzQzRDIz
MjM5Mjc3ODQwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxlUGF0aC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkZEQkMwNDcxODNEMjdCNzAwNDA3MTA5IC8qIExpbmVXaWR0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0JBOURDMEIxREY0NERGNDAwMDU2NzVDIC8qIExpbmtIZWFkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxNDNCMjYzMURERDE1MjAwMDE0RkFDNiAvKiBMaW5rSWNv
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTY5MSw3ICszMTcwOCw2IEBACiAJCQkJNTdEQ0VENzQy
MTQzMDVGMDAwMTZCODQ3IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1NzMwM0JFRjIwMDk4MEM2MDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbERl
c2NyaXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQzBBMjAwOTlCQUQwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUU0MzQzRDIzMjM5Mjc3ODQwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxlUGF0
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRUIyMDA5N0Y0MDAwMzU1OTY1IC8qIFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDgxRkYwMDE2QjBBMkQz
MDA4QUFBN0EgLyogUHVibGljU3VmZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMEZCMDg0QjE0
RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZDA4ZGMzMjZjMTBmNWY5NGVjMGI4ZDNm
ODY2YTFkMDdhNjg1YjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIgotCi0jaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJEaXNwbGF5Qm94
LmgiCi0jaW5jbHVkZSAiRGlzcGxheVBhaW50ZXIuaCIKLSNpbmNsdWRlICJJbmxpbmVGb3JtYXR0
aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJJbnZhbGlkYXRpb25TdGF0ZS5oIgotI2luY2x1ZGUgIkxh
eW91dENvbnRleHQuaCIKLSNpbmNsdWRlICJMYXlvdXRUcmVlQnVpbGRlci5oIgotI2luY2x1ZGUg
IlBhaW50SW5mby5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgotI2luY2x1ZGUgIlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKLSNpbmNsdWRlICJTaW1wbGVMaW5lTGF5b3V0LmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgewotCi1SZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KGNvbnN0IFJlbmRlckJsb2Nr
RmxvdyYgZmxvdykKLSAgICA6IG1fZmxvdyhmbG93KQotewotICAgIG1fdHJlZUNvbnRlbnQgPSBU
cmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGZsb3cpOwotfQotCi1SZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0Ojp+UmVuZGVyQmxvY2tGbG93TGluZUxheW91dCgpID0gZGVmYXVsdDsKLQotYm9v
bCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxvY2tG
bG93JiBmbG93KQotewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJs
ZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8gSW5pdGlhbGx5IG9ubHkgYSBz
dWJzZXQgb2YgU0xMIGZlYXR1cmVzIGlzIHN1cHBvcnRlZC4KLSAgICBpZiAoIVNpbXBsZUxpbmVM
YXlvdXQ6OmNhblVzZUZvcihmbG93KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYg
KGZsb3cuc3R5bGUoKS50ZXh0VHJhbnNmb3JtKCkgPT0gVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6
ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGZsb3cuZnJhZ21lbnRlZEZsb3dT
dGF0ZSgpICE9IFJlbmRlck9iamVjdDo6Tm90SW5zaWRlRnJhZ21lbnRlZEZsb3cpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQ6OmxheW91dCgpCi17Ci0gICAgaWYgKCFtX2xheW91dFN0YXRlKQotICAg
ICAgICBtX2xheW91dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNvbnRl
bnQpOwotCi0gICAgYXV0byYgcm9vdENvbnRhaW5lciA9IG1fbGF5b3V0U3RhdGUtPnJvb3QoKTsK
LSAgICBhdXRvIGxheW91dENvbnRleHQgPSBMYXlvdXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUg
fTsKLSAgICBhdXRvIGludmFsaWRhdGlvblN0YXRlID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9Owot
ICAgIGxheW91dENvbnRleHQubGF5b3V0KG1fZmxvdy5jb250ZW50U2l6ZSgpLCBpbnZhbGlkYXRp
b25TdGF0ZSk7Ci0KLSAgICBhdXRvJiBsaW5lQm94ZXMgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0
aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RD
b250YWluZXIpKS5saW5lQm94ZXMoKTsKLSAgICBhdXRvIGhlaWdodCA9IGxpbmVCb3hlcy5sYXN0
KCkubG9naWNhbEJvdHRvbSgpOwotCi0gICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3Rh
dGUtPmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gocm9vdENvbnRhaW5lcik7Ci0gICAgZGlzcGxheUJv
eC5zZXRDb250ZW50Qm94SGVpZ2h0KGhlaWdodCk7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dDo6Y29udGVudEJveEhlaWdodCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fbGF5b3V0U3RhdGUgPyBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1f
bGF5b3V0U3RhdGUtPnJvb3QoKSkuY29udGVudEJveEhlaWdodCgpIDogMF9sdTsKLX0KLQotdm9p
ZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQotewotICAgIGF1dG8mIGdyYXBoaWNzQ29u
dGV4dCA9IHBhaW50SW5mby5jb250ZXh0KCk7Ci0KLSAgICBncmFwaGljc0NvbnRleHQuc2F2ZSgp
OwotICAgIGdyYXBoaWNzQ29udGV4dC50cmFuc2xhdGUocGFpbnRPZmZzZXQpOwotCi0gICAgRGlz
cGxheTo6UGFpbnRlcjo6cGFpbnRJbmxpbmVGbG93KCptX2xheW91dFN0YXRlLCBwYWludEluZm8u
Y29udGV4dCgpKTsKLQotICAgIGdyYXBoaWNzQ29udGV4dC5yZXN0b3JlKCk7Ci19Ci0KLX0KLX0K
LQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xp
bmVMYXlvdXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk3MDQxNmQ0MGViNDI3
Zjk4NWQ1OTY4Mzk2MTVlNWE5ZWNmM2E4ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNp
bmNsdWRlICJMYXlvdXRQb2ludC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdy
YXBoaWNzQ29udGV4dDsKLWNsYXNzIFJlbmRlckJsb2NrRmxvdzsKLXN0cnVjdCBQYWludEluZm87
Ci0KLW5hbWVzcGFjZSBMYXlvdXQgewotCi1jbGFzcyBMYXlvdXRUcmVlQ29udGVudDsKLWNsYXNz
IExheW91dFN0YXRlOwotCi1jbGFzcyBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0IHsKLSAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwotICAgIH5SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0KCk7Ci0KLSAgICBzdGF0aWMgYm9vbCBjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxvY2tG
bG93Jik7Ci0KLSAgICB2b2lkIGxheW91dCgpOwotICAgIAotICAgIExheW91dFVuaXQgY29udGVu
dEJveEhlaWdodCgpIGNvbnN0OwotCi0gICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpOwotCi1wcml2YXRlOgotICAgIGNvbnN0IFJlbmRlckJs
b2NrRmxvdyYgbV9mbG93OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRUcmVlQ29udGVudD4g
bV90cmVlQ29udGVudDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IG1fbGF5b3V0
U3RhdGU7Ci19OwotCi19Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9u
L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZDA4ZGMzMjZjMTBm
NWY5NGVjMGI4ZDNmODY2YTFkMDdhNjg1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIgorCisjaWYgRU5B
QkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJEaXNwbGF5Qm94Lmgi
CisjaW5jbHVkZSAiRGlzcGxheVBhaW50ZXIuaCIKKyNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5n
U3RhdGUuaCIKKyNpbmNsdWRlICJJbnZhbGlkYXRpb25TdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91
dENvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRUcmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlBh
aW50SW5mby5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgorI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTaW1wbGVMaW5lTGF5b3V0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitSZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYgZmxvdykKKyAgICA6IG1fZmxvdyhmbG93KQoreworICAgIG1fdHJlZUNvbnRlbnQgPSBUcmVl
QnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGZsb3cpOworfQorCitSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0Ojp+UmVuZGVyQmxvY2tGbG93TGluZUxheW91dCgpID0gZGVmYXVsdDsKKworYm9vbCBS
ZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpjYW5Vc2VGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93
JiBmbG93KQoreworICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSW5pdGlhbGx5IG9ubHkgYSBzdWJz
ZXQgb2YgU0xMIGZlYXR1cmVzIGlzIHN1cHBvcnRlZC4KKyAgICBpZiAoIVNpbXBsZUxpbmVMYXlv
dXQ6OmNhblVzZUZvcihmbG93KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGZs
b3cuc3R5bGUoKS50ZXh0VHJhbnNmb3JtKCkgPT0gVGV4dFRyYW5zZm9ybTo6Q2FwaXRhbGl6ZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGZsb3cuZnJhZ21lbnRlZEZsb3dTdGF0
ZSgpICE9IFJlbmRlck9iamVjdDo6Tm90SW5zaWRlRnJhZ21lbnRlZEZsb3cpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXQ6OmxheW91dCgpCit7CisgICAgaWYgKCFtX2xheW91dFN0YXRlKQorICAgICAg
ICBtX2xheW91dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNvbnRlbnQp
OworCisgICAgYXV0byYgcm9vdENvbnRhaW5lciA9IG1fbGF5b3V0U3RhdGUtPnJvb3QoKTsKKyAg
ICBhdXRvIGxheW91dENvbnRleHQgPSBMYXlvdXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUgfTsK
KyAgICBhdXRvIGludmFsaWRhdGlvblN0YXRlID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9OworICAg
IGxheW91dENvbnRleHQubGF5b3V0KG1fZmxvdy5jb250ZW50U2l6ZSgpLCBpbnZhbGlkYXRpb25T
dGF0ZSk7CisKKyAgICBhdXRvJiBsaW5lQm94ZXMgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5n
U3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RDb250
YWluZXIpKS5saW5lQm94ZXMoKTsKKyAgICBhdXRvIGhlaWdodCA9IGxpbmVCb3hlcy5sYXN0KCku
bG9naWNhbEJvdHRvbSgpOworCisgICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3RhdGUt
PmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gocm9vdENvbnRhaW5lcik7CisgICAgZGlzcGxheUJveC5z
ZXRDb250ZW50Qm94SGVpZ2h0KGhlaWdodCk7Cit9CisKK0xheW91dFVuaXQgUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dDo6Y29udGVudEJveEhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
bGF5b3V0U3RhdGUgPyBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fbGF5
b3V0U3RhdGUtPnJvb3QoKSkuY29udGVudEJveEhlaWdodCgpIDogMF9sdTsKK30KKwordm9pZCBS
ZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAgIGF1dG8mIGdyYXBoaWNzQ29udGV4
dCA9IHBhaW50SW5mby5jb250ZXh0KCk7CisKKyAgICBncmFwaGljc0NvbnRleHQuc2F2ZSgpOwor
ICAgIGdyYXBoaWNzQ29udGV4dC50cmFuc2xhdGUocGFpbnRPZmZzZXQpOworCisgICAgRGlzcGxh
eTo6UGFpbnRlcjo6cGFpbnRJbmxpbmVGbG93KCptX2xheW91dFN0YXRlLCBwYWludEluZm8uY29u
dGV4dCgpKTsKKworICAgIGdyYXBoaWNzQ29udGV4dC5yZXN0b3JlKCk7Cit9CisKK30KK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbWlzYy9yZW5kZXJ0cmVl
aW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jOTcwNDE2ZDQwZWI0MjdmOTg1ZDU5NjgzOTYxNWU1YTllY2YzYThl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVuZGVydHJl
ZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApAQCAtMCwwICsxLDY2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJ
TkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgUmVuZGVyQmxvY2tGbG93Owor
c3RydWN0IFBhaW50SW5mbzsKKworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIExheW91dFRy
ZWVDb250ZW50OworY2xhc3MgTGF5b3V0U3RhdGU7CisKK2NsYXNzIFJlbmRlckJsb2NrRmxvd0xp
bmVMYXlvdXQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CisgICAgflJl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoKTsKKworICAgIHN0YXRpYyBib29sIGNhblVzZUZvcihj
b25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKKworICAgIHZvaWQgbGF5b3V0KCk7CisgICAgCisgICAg
TGF5b3V0VW5pdCBjb250ZW50Qm94SGVpZ2h0KCkgY29uc3Q7CisKKyAgICB2b2lkIHBhaW50KFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCk7CisKK3ByaXZhdGU6Cisg
ICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBtX2Zsb3c7CisgICAgc3RkOjp1bmlxdWVfcHRyPExh
eW91dFRyZWVDb250ZW50PiBtX3RyZWVDb250ZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlv
dXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsKK307CisKK30KK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384588</attachid>
            <date>2019-12-01 18:03:57 -0800</date>
            <delta_ts>2019-12-02 12:26:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204733-20191201180356.patch</filename>
            <type>text/plain</type>
            <size>19661</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQzMDE5ZDU0ZDkyYTJl
ZWEzMmU5OWNiN2M4NzI1YWE1YjdhNDhhOS4uOGZkZDQ1NjJlNDM5NDNhMGIwOTVhNmUyMTUyNDkx
MGRiYTRkMGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTEyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGp1c3Qg
dHJhaWxpbmcgY29udGFpbmVyIHN0YXJ0L2VuZCBpbmxpbmUgcnVuIHBvc2l0aW9uIHdoZW4gdHJh
aWxpbmcgY29udGVudCBpcyB0cmltbWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQ3MzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NTQ2Njk5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUC4K
KworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBsYXlvdXQvbWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpjYW5Vc2VGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpsYXlvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojpj
b250ZW50Qm94SGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVy
QmxvY2tGbG93TGluZUxheW91dDo6cGFpbnQpOgorICAgICAgICAqIGxheW91dC9taXNjL3JlbmRl
cnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oLgorCiAy
MDE5LTEyLTAxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSUZDXSBUcmltIHRyYWlsaW5nIGxldHRlciBzcGFjaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBm
MzZmNjBkZTEwNzY0OWM3MTIwMjVhNzk2YWU0NTUwMDI3ZGE2OGU1Li4xMGY3MjFjMmI3ZTk1NjNk
YzJkNGNlMjRhMTczYTg0ZjA0ZjUzM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQyMiw3ICsxNDIy
LDYgQEAgbGF5b3V0L0xheW91dENvbnRleHQuY3BwCiBsYXlvdXQvTGF5b3V0UGhhc2UuY3BwCiBs
YXlvdXQvTGF5b3V0U3RhdGUuY3BwCiBsYXlvdXQvTGF5b3V0VW5pdHMuY3BwCi1sYXlvdXQvUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKIGxheW91dC9WZXJpZmljYXRpb24uY3BwCiBsYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTE0NTEs
NiArMTQ1MCw3IEBAIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKIGxheW91dC9sYXlv
dXR0cmVlL0xheW91dENvbnRhaW5lci5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJlcGxh
Y2VkLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCitsYXlvdXQv
bWlzYy9yZW5kZXJ0cmVlaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAK
IGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKIGxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAogbGF5
b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZjA4YTNi
ZDZjMjliOTk5ZTdmZWI2OWQzMzU0NTE3ZWEwMTA2ZDVjLi5iNGQwZjBmY2I5NzIxNWQ3ODdmMGI0
MWU0MGI4N2MyZWE2NjcwMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjYyNyw2ICsxNjYyNyw3IEBACiAJCQkJMTE1Q0ZB
OUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRpbmcgKi8sCiAJCQkJNkY5NURFNEEy
MzdCODgzMDAwRTUxN0UxIC8qIGludmFsaWRhdGlvbiAqLywKIAkJCQkxMTVDRkE5MDIwOEI5NDQx
MDAxRTY5OTEgLyogbGF5b3V0dHJlZSAqLywKKwkJCQkxMUQ5Q0UzOTIzOTQ5ODZBMDBEOTZCNjAg
LyogbWlzYyAqLywKIAkJCQk2RkM1Q0E5MTIyRTM1OTMzMDBCMTNFMTEgLyogdGFibGVmb3JtYXR0
aW5nICovLAogCQkJCTExNUNGQTY5MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJMTE1Q0ZBNjgyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250
ZXh0LmggKi8sCkBAIC0xNjY0Myw4ICsxNjY0NCw2IEBACiAJCQkJMTE1Q0E4MzAyMzMyOEIxRTAw
RkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLywKIAkJCQk2RjczOTE4QzIxMDZDRUREMDA2QUYy
NjIgLyogTGF5b3V0VW5pdHMuaCAqLywKIAkJCQk2RkU3QUEyNjIxQzM3QjYzMDAyOTZEQ0QgLyog
TWFyZ2luVHlwZXMuaCAqLywKLQkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1
IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEzQzgx
MDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5b3V0
OwpAQCAtMTY3MjIsNiArMTY3MjEsMjMgQEAKIAkJCXBhdGggPSBkaXNwbGF5dHJlZTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTExRDlDRTM5MjM5NDk4NkEwMEQ5NkI2MCAv
KiBtaXNjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkx
MUQ5Q0UzQjIzOTQ5OEE5MDBEOTZCNjAgLyogcmVuZGVydHJlZWludGVncmF0aW9uICovLAorCQkJ
KTsKKwkJCXBhdGggPSBtaXNjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
MTFEOUNFM0IyMzk0OThBOTAwRDk2QjYwIC8qIHJlbmRlcnRyZWVpbnRlZ3JhdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTRBQkFCREUyMzYwODkz
RDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwICovLAorCQkJCUU0QUJB
QkRCMjM2MDg4RkQwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggKi8sCisJ
CQkpOworCQkJcGF0aCA9IHJlbmRlcnRyZWVpbnRlZ3JhdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTEyMjFFMDU4MUMwMkI0MDkwMDZBMUEwMCAvKiBBbmltYXRpb24g
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjg3MzEsOCAr
Mjg3NDcsOCBAQAogCQkJCUZGRUZBQjI5MTgzODBEQTAwMDUxNDUzNCAvKiBMaW5lTGF5b3V0U3Rh
dGUuaCAqLywKIAkJCQlFNDg0QTMzRDIzMDU1MzAzMDA5QURFNkEgLyogTGluZUxheW91dFRyYXZl
cnNhbC5jcHAgKi8sCiAJCQkJRTQ4NEEzM0IyMzA1NTMwMzAwOUFERTZBIC8qIExpbmVMYXlvdXRU
cmF2ZXJzYWwuaCAqLywKLQkJCQlFNDM0M0QyMTIzOTI3NzgzMDBFQkJCNjYgLyogTGluZUxheW91
dFRyYXZlcnNhbFNpbXBsZVBhdGguaCAqLywKIAkJCQlFNDM0M0QyNDIzOTI3NzhGMDBFQkJCNjYg
LyogTGluZUxheW91dFRyYXZlcnNhbENvbXBsZXhQYXRoLmggKi8sCisJCQkJRTQzNDNEMjEyMzky
Nzc4MzAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJ
RkZEQkMwNDYxODNEMjdCNzAwNDA3MTA5IC8qIExpbmVXaWR0aC5jcHAgKi8sCiAJCQkJRkZEQkMw
NDUxODNEMjdCNzAwNDA3MTA5IC8qIExpbmVXaWR0aC5oICovLAogCQkJCUZGQUMzMEZEMTg0RkIx
NDUwMDhDNEYxRSAvKiBUcmFpbGluZ09iamVjdHMuY3BwICovLApAQCAtMzA1NDMsNyArMzA1NTks
NiBAQAogCQkJCTgzNzA1NjkwMUY1MDkxNUMwMEQ5MzQyNSAvKiBKU0ZpbGVTeXN0ZW1FbnRyeUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzNCOUUzNjFGNTA4RDg1MDBFMEU0MjggLyog
SlNGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTJCRTQ4ODFGRTg2
ODZBMDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjZEOUQyN0IxNEVBQzA4NjAwOTBENzVFIC8qIEpTRm9jdXNFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzI4MDgzM0YxQzZEQzI2RjAwMTQ1MUI2IC8qIEpTRm9udEZh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMjRFRUE5MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0Zv
bnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxMTk4LDYgKzMxMjEzLDggQEAKIAkJCQk2
RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIgLyogTGluZUxheW91dENvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZGRUZBQjJBMTgzODBEQTAwMDUxNDUzNCAvKiBMaW5lTGF5b3V0U3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0ODRBMzNFMjMwNTUzMjUwMDlBREU2QSAvKiBMaW5lTGF5b3V0
VHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDM0M0QyNTIzOTI3NzkwMDBFQkJCNjYg
LyogTGluZUxheW91dFRyYXZlcnNhbENvbXBsZXhQYXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NDM0M0QyMzIzOTI3Nzg0MDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZGREJDMDQ3MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lk
dGguaCBpbiBIZWFkZXJzICovLAogCQkJCUNCQTlEQzBCMURGNDRERjQwMDA1Njc1QyAvKiBMaW5r
SGVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQzQjI2MzFEREQxNTIwMDAxNEZBQzYgLyog
TGlua0ljb24uaCBpbiBIZWFkZXJzICovLApAQCAtMzE2OTEsNyArMzE3MDgsNiBAQAogCQkJCTU3
RENFRDc0MjE0MzA1RjAwMDE2Qjg0NyAvKiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTczMDNCRUYyMDA5ODBDNjAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRl
bnRpYWxEZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0MwQTIwMDk5QkFEMDAz
NTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmggaW4gSGVhZGVycyAq
LywKLQkJCQlFNDM0M0QyMzIzOTI3Nzg0MDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNp
bXBsZVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVCMjAwOTdGNDAwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDA4MUZGMDAx
NkIwQTJEMzAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTBG
QjA4NEIxNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWQwOGRjMzI2YzEwZjVmOTRl
YzBiOGQzZjg2NmExZDA3YTY4NWIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5
b3V0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCIK
LQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiRGlz
cGxheUJveC5oIgotI2luY2x1ZGUgIkRpc3BsYXlQYWludGVyLmgiCi0jaW5jbHVkZSAiSW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmgiCi0jaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKLSNpbmNs
dWRlICJMYXlvdXRDb250ZXh0LmgiCi0jaW5jbHVkZSAiTGF5b3V0VHJlZUJ1aWxkZXIuaCIKLSNp
bmNsdWRlICJQYWludEluZm8uaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKLSNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU2ltcGxlTGluZUxheW91
dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dChjb25zdCBSZW5k
ZXJCbG9ja0Zsb3cmIGZsb3cpCi0gICAgOiBtX2Zsb3coZmxvdykKLXsKLSAgICBtX3RyZWVDb250
ZW50ID0gVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShmbG93KTsKLX0KLQotUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dDo6flJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoKSA9IGRlZmF1bHQ7
Ci0KLWJvb2wgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y2FuVXNlRm9yKGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyYgZmxvdykKLXsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSZW5kZXJUcmVlSW50ZWdyYXRp
b25FbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIEluaXRpYWxseSBv
bmx5IGEgc3Vic2V0IG9mIFNMTCBmZWF0dXJlcyBpcyBzdXBwb3J0ZWQuCi0gICAgaWYgKCFTaW1w
bGVMaW5lTGF5b3V0OjpjYW5Vc2VGb3IoZmxvdykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGlmIChmbG93LnN0eWxlKCkudGV4dFRyYW5zZm9ybSgpID09IFRleHRUcmFuc2Zvcm06OkNh
cGl0YWxpemUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChmbG93LmZyYWdtZW50
ZWRGbG93U3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6Ok5vdEluc2lkZUZyYWdtZW50ZWRGbG93KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZW5k
ZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpsYXlvdXQoKQotewotICAgIGlmICghbV9sYXlvdXRTdGF0
ZSkKLSAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG1ha2VVbmlxdWU8TGF5b3V0U3RhdGU+KCptX3Ry
ZWVDb250ZW50KTsKLQotICAgIGF1dG8mIHJvb3RDb250YWluZXIgPSBtX2xheW91dFN0YXRlLT5y
b290KCk7Ci0gICAgYXV0byBsYXlvdXRDb250ZXh0ID0gTGF5b3V0Q29udGV4dCB7ICptX2xheW91
dFN0YXRlIH07Ci0gICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9IEludmFsaWRhdGlvblN0YXRl
IHsgfTsKLSAgICBsYXlvdXRDb250ZXh0LmxheW91dChtX2Zsb3cuY29udGVudFNpemUoKSwgaW52
YWxpZGF0aW9uU3RhdGUpOwotCi0gICAgYXV0byYgbGluZUJveGVzID0gZG93bmNhc3Q8SW5saW5l
Rm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0
ZShyb290Q29udGFpbmVyKSkubGluZUJveGVzKCk7Ci0gICAgYXV0byBoZWlnaHQgPSBsaW5lQm94
ZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20oKTsKLQotICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBtX2xh
eW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KHJvb3RDb250YWluZXIpOwotICAgIGRp
c3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChoZWlnaHQpOwotfQotCi1MYXlvdXRVbml0IFJl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNvbnRlbnRCb3hIZWlnaHQoKSBjb25zdAotewotICAg
IHJldHVybiBtX2xheW91dFN0YXRlID8gbV9sYXlvdXRTdGF0ZS0+ZGlzcGxheUJveEZvckxheW91
dEJveChtX2xheW91dFN0YXRlLT5yb290KCkpLmNvbnRlbnRCb3hIZWlnaHQoKSA6IDBfbHU7Ci19
Ci0KLXZvaWQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKLXsKLSAgICBhdXRvJiBncmFw
aGljc0NvbnRleHQgPSBwYWludEluZm8uY29udGV4dCgpOwotCi0gICAgZ3JhcGhpY3NDb250ZXh0
LnNhdmUoKTsKLSAgICBncmFwaGljc0NvbnRleHQudHJhbnNsYXRlKHBhaW50T2Zmc2V0KTsKLQot
ICAgIERpc3BsYXk6OlBhaW50ZXI6OnBhaW50SW5saW5lRmxvdygqbV9sYXlvdXRTdGF0ZSwgcGFp
bnRJbmZvLmNvbnRleHQoKSk7Ci0KLSAgICBncmFwaGljc0NvbnRleHQucmVzdG9yZSgpOwotfQot
Ci19Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5NzA0MTZk
NDBlYjQyN2Y5ODVkNTk2ODM5NjE1ZTVhOWVjZjNhOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQotCi0jaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBHcmFwaGljc0NvbnRleHQ7Ci1jbGFzcyBSZW5kZXJCbG9ja0Zsb3c7Ci1zdHJ1Y3QgUGFp
bnRJbmZvOwotCi1uYW1lc3BhY2UgTGF5b3V0IHsKLQotY2xhc3MgTGF5b3V0VHJlZUNvbnRlbnQ7
Ci1jbGFzcyBMYXlvdXRTdGF0ZTsKLQotY2xhc3MgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dCB7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKLSAgICB+UmVuZGVyQmxvY2tG
bG93TGluZUxheW91dCgpOwotCi0gICAgc3RhdGljIGJvb2wgY2FuVXNlRm9yKGNvbnN0IFJlbmRl
ckJsb2NrRmxvdyYpOwotCi0gICAgdm9pZCBsYXlvdXQoKTsKLSAgICAKLSAgICBMYXlvdXRVbml0
IGNvbnRlbnRCb3hIZWlnaHQoKSBjb25zdDsKLQotICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKLQotcHJpdmF0ZToKLSAgICBjb25zdCBS
ZW5kZXJCbG9ja0Zsb3cmIG1fZmxvdzsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0VHJlZUNv
bnRlbnQ+IG1fdHJlZUNvbnRlbnQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBt
X2xheW91dFN0YXRlOwotfTsKLQotfQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9taXNjL3JlbmRlcnRyZWVpbnRl
Z3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWQwOGRj
MzI2YzEwZjVmOTRlYzBiOGQzZjg2NmExZDA3YTY4NWIxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVuZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCIKKwor
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiRGlzcGxh
eUJveC5oIgorI2luY2x1ZGUgIkRpc3BsYXlQYWludGVyLmgiCisjaW5jbHVkZSAiSW5saW5lRm9y
bWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKKyNpbmNsdWRl
ICJMYXlvdXRDb250ZXh0LmgiCisjaW5jbHVkZSAiTGF5b3V0VHJlZUJ1aWxkZXIuaCIKKyNpbmNs
dWRlICJQYWludEluZm8uaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKKyNpbmNsdWRl
ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2ltcGxlTGluZUxheW91dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dChjb25zdCBSZW5kZXJC
bG9ja0Zsb3cmIGZsb3cpCisgICAgOiBtX2Zsb3coZmxvdykKK3sKKyAgICBtX3RyZWVDb250ZW50
ID0gVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShmbG93KTsKK30KKworUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dDo6flJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoKSA9IGRlZmF1bHQ7CisK
K2Jvb2wgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y2FuVXNlRm9yKGNvbnN0IFJlbmRlckJs
b2NrRmxvdyYgZmxvdykKK3sKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSZW5kZXJUcmVlSW50ZWdyYXRpb25F
bmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEluaXRpYWxseSBvbmx5
IGEgc3Vic2V0IG9mIFNMTCBmZWF0dXJlcyBpcyBzdXBwb3J0ZWQuCisgICAgaWYgKCFTaW1wbGVM
aW5lTGF5b3V0OjpjYW5Vc2VGb3IoZmxvdykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmIChmbG93LnN0eWxlKCkudGV4dFRyYW5zZm9ybSgpID09IFRleHRUcmFuc2Zvcm06OkNhcGl0
YWxpemUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChmbG93LmZyYWdtZW50ZWRG
bG93U3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6Ok5vdEluc2lkZUZyYWdtZW50ZWRGbG93KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0OjpsYXlvdXQoKQoreworICAgIGlmICghbV9sYXlvdXRTdGF0ZSkK
KyAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG1ha2VVbmlxdWU8TGF5b3V0U3RhdGU+KCptX3RyZWVD
b250ZW50KTsKKworICAgIGF1dG8mIHJvb3RDb250YWluZXIgPSBtX2xheW91dFN0YXRlLT5yb290
KCk7CisgICAgYXV0byBsYXlvdXRDb250ZXh0ID0gTGF5b3V0Q29udGV4dCB7ICptX2xheW91dFN0
YXRlIH07CisgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9IEludmFsaWRhdGlvblN0YXRlIHsg
fTsKKyAgICBsYXlvdXRDb250ZXh0LmxheW91dChtX2Zsb3cuY29udGVudFNpemUoKSwgaW52YWxp
ZGF0aW9uU3RhdGUpOworCisgICAgYXV0byYgbGluZUJveGVzID0gZG93bmNhc3Q8SW5saW5lRm9y
bWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShy
b290Q29udGFpbmVyKSkubGluZUJveGVzKCk7CisgICAgYXV0byBoZWlnaHQgPSBsaW5lQm94ZXMu
bGFzdCgpLmxvZ2ljYWxCb3R0b20oKTsKKworICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBtX2xheW91
dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KHJvb3RDb250YWluZXIpOworICAgIGRpc3Bs
YXlCb3guc2V0Q29udGVudEJveEhlaWdodChoZWlnaHQpOworfQorCitMYXlvdXRVbml0IFJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNvbnRlbnRCb3hIZWlnaHQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2xheW91dFN0YXRlID8gbV9sYXlvdXRTdGF0ZS0+ZGlzcGxheUJveEZvckxheW91dEJv
eChtX2xheW91dFN0YXRlLT5yb290KCkpLmNvbnRlbnRCb3hIZWlnaHQoKSA6IDBfbHU7Cit9CisK
K3ZvaWQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBhdXRvJiBncmFwaGlj
c0NvbnRleHQgPSBwYWludEluZm8uY29udGV4dCgpOworCisgICAgZ3JhcGhpY3NDb250ZXh0LnNh
dmUoKTsKKyAgICBncmFwaGljc0NvbnRleHQudHJhbnNsYXRlKHBhaW50T2Zmc2V0KTsKKworICAg
IERpc3BsYXk6OlBhaW50ZXI6OnBhaW50SW5saW5lRmxvdygqbV9sYXlvdXRTdGF0ZSwgcGFpbnRJ
bmZvLmNvbnRleHQoKSk7CisKKyAgICBncmFwaGljc0NvbnRleHQucmVzdG9yZSgpOworfQorCit9
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L21pc2MvcmVu
ZGVydHJlZWludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9taXNjL3JlbmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk3MDQxNmQ0MGViNDI3Zjk4NWQ1OTY4Mzk2MTVlNWE5
ZWNmM2E4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9taXNjL3Jl
bmRlcnRyZWVpbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIFJlbmRlckJsb2Nr
RmxvdzsKK3N0cnVjdCBQYWludEluZm87CisKK25hbWVzcGFjZSBMYXlvdXQgeworCitjbGFzcyBM
YXlvdXRUcmVlQ29udGVudDsKK2NsYXNzIExheW91dFN0YXRlOworCitjbGFzcyBSZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwor
ICAgIH5SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0KCk7CisKKyAgICBzdGF0aWMgYm9vbCBjYW5V
c2VGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CisKKyAgICB2b2lkIGxheW91dCgpOworICAg
IAorICAgIExheW91dFVuaXQgY29udGVudEJveEhlaWdodCgpIGNvbnN0OworCisgICAgdm9pZCBw
YWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpOworCitwcml2
YXRlOgorICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgbV9mbG93OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxMYXlvdXRUcmVlQ29udGVudD4gbV90cmVlQ29udGVudDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8TGF5b3V0U3RhdGU+IG1fbGF5b3V0U3RhdGU7Cit9OworCit9Cit9CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>