<?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>85265</bug_id>
          
          <creation_ts>2012-04-30 23:17:59 -0700</creation_ts>
          <short_desc>[Shadow DOM] ShadowTree needs a better name</short_desc>
          <delta_ts>2012-05-06 23:05:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85263</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>613259</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-30 23:17:59 -0700</bug_when>
    <thetext>This is part of the refactoring series Bug 85263.

ShadowTree is confusing name because it&apos;s a stack of tree, not tree itself.
On the other hand, the original intention of the class was that Shadow DOM concept should
be isolated from non-shadow part. This idea has been making sense. What we need is just a good name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613281</commentid>
    <comment_count>1</comment_count>
      <attachid>139597</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-01 00:24:21 -0700</bug_when>
    <thetext>Created attachment 139597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613286</commentid>
    <comment_count>2</comment_count>
      <attachid>139597</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-05-01 00:33:36 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12581585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613294</commentid>
    <comment_count>3</comment_count>
      <attachid>139597</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-01 00:54:03 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12587504</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613296</commentid>
    <comment_count>4</comment_count>
      <attachid>139597</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-01 00:56:19 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12595429</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613299</commentid>
    <comment_count>5</comment_count>
      <attachid>139597</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-01 00:59:05 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12586548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613302</commentid>
    <comment_count>6</comment_count>
      <attachid>139597</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-01 01:01:58 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12590509</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613312</commentid>
    <comment_count>7</comment_count>
      <attachid>139597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-01 01:27:18 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12598327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613360</commentid>
    <comment_count>8</comment_count>
      <attachid>139597</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-01 06:12:13 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

Attachment 139597 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12595486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613441</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-01 09:14:26 -0700</bug_when>
    <thetext>I like new names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613442</commentid>
    <comment_count>10</comment_count>
      <attachid>139597</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-01 09:15:12 -0700</bug_when>
    <thetext>Comment on attachment 139597
Patch

rs=me, but please make it build first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617252</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-06 18:27:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 139597 [details])
&gt; rs=me, but please make it build first.
gah, what were I doing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617255</commentid>
    <comment_count>12</comment_count>
      <attachid>140447</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-06 18:33:22 -0700</bug_when>
    <thetext>Created attachment 140447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617271</commentid>
    <comment_count>13</comment_count>
      <attachid>140447</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-06 19:00:04 -0700</bug_when>
    <thetext>Comment on attachment 140447
Patch

Attachment 140447 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12628891</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617345</commentid>
    <comment_count>14</comment_count>
      <attachid>140466</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-06 20:54:54 -0700</bug_when>
    <thetext>Created attachment 140466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617406</commentid>
    <comment_count>15</comment_count>
      <attachid>140466</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 23:05:02 -0700</bug_when>
    <thetext>Comment on attachment 140466
Patch

Clearing flags on attachment: 140466

Committed r116277: &lt;http://trac.webkit.org/changeset/116277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617407</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 23:05:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139597</attachid>
            <date>2012-05-01 00:24:21 -0700</date>
            <delta_ts>2012-05-06 18:26:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85265-20120501162419.patch</filename>
            <type>text/plain</type>
            <size>100817</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1Njk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4MmNlMjdiODgyYjIw
ZWYzYTE4NWViMDYxNDgzMTAzN2M4YzNjZi4uZWQ5NWYxODU2M2UwYmVlOWU1M2QzM2VlZTFlOWM0
ZTM3OWJkMTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxMi0wNS0wMSAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyNjUKKyAgICAgICAgW1NoYWRvdyBET01dIFNo
YWRvd1RyZWUgbmVlZHMgYSBiZXR0ZXIgbmFtZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgU2hhZG93VHJlZSB0byBFbGVtZW50U2hhZG93
LCBUaGUgRWxlbWVudFNoYWRvdyBjbGFzcyBpcworICAgICAgICBnb2luZyB0byBiZSBhIGZhY2Fk
ZSBvZiBTaGFkb3cgcmVsYXRlZCBBUElzLgorCisgICAgICAgIEZvbGxvd2luZyByZW5hbWVzIGZv
bGxvdzoKKyAgICAgICAgLSBFbGVtZW50OjpzaGFkb3dUcmVlKCkgdG8gRWxlbWVudDo6c2hhZG93
KCkKKyAgICAgICAgLSBTaGFkb3dSb290Ojp0cmVlKCkgdG8gU2hhZG93Um9vdDo6b3duZXIoKQor
ICAgICAgICAtIFNoYWRvd1RyZWU6OnJlY2FsY1NoYWRvd1RyZWVTdHlsZSgpIHRvIEVsZW1lbnRT
aGFkb3c6OnJlY2FsY1N0eWxlKCkKKworICAgICAgICBObyBuZXcgdGVzdHMuIEp1c3QgcmVuYW1l
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93Rm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRv
d09mUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OnRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudCk6CisgICAgICAg
ICogZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
aWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpub3RpZnlEZXNjZW5kYW50SW5zZXJ0ZWRJbnRvRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5v
dGlmeURlc2NlbmRhbnRJbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxk
Tm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudFJlbW92ZWRGcm9tRG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGROb2RlUmVtb3ZhbE5vdGlmaWVyOjpub3RpZnlEZXNj
ZW5kYW50UmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YnVpbGRBY2Nlc3NLZXlNYXApOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6On5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OndpbGxSZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YXR0YWNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpyZWNhbGNTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpoYXNTaGFkb3dSb290
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjplbnN1cmVTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5z
dXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAg
KEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6On5F
bGVtZW50UmFyZURhdGEpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93LmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6RWxlbWVudFNoYWRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojp+RWxlbWVudFNoYWRvdyk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dFNoYWRvdzo6YWRkU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93
OjpyZW1vdmVBbGxTaGFkb3dSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93
Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnNldFBhcmVu
dFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjphdHRhY2gpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6YXR0YWNoSG9zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50U2hhZG93OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dFNoYWRvdzo6ZGV0YWNoSG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojpp
bnNlcnRpb25Qb2ludEZvcik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpzZWxl
Y3Rpb25Gb3IpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6cmVhdHRhY2gpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6Y2hpbGROZWVkc1N0eWxlUmVjYWxjKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6Om5lZWRzU3R5bGVSZWNhbGMpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudFNoYWRvdzo6bmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6cmVhdHRh
Y2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3cpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRTaGFkb3c6Omhhc1NoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNo
YWRvdzo6eW91bmdlc3RTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFk
b3c6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6
c2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6Y2xlYXJOZWVkc1Jl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRT
aGFkb3c6Omhvc3QpOgorICAgICAgICAoU2hhZG93Um9vdFZlY3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290VmVjdG9yOjpTaGFkb3dSb290VmVjdG9yKToKKyAgICAgICAgKiBkb20v
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvbGRlc3RTaGFkb3dSb290Rm9yKToKKyAgICAg
ICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAg
KiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpvd25lcik6CisgICAgICAgICog
ZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2hhZG93Um9v
dCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2hhZG93Rm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVU
cmVlVG9OZXdTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
VHJlZVRvTmV3RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6
bW92ZVNoYWRvd1RvTmV3RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVy
Lmg6CisgICAgICAgIChUcmVlU2NvcGVBZG9wdGVyKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzaGFkb3dDb2xv
clN3YXRjaCk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV0
YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93
U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9scyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1s
L0hUTUxTdW1tYXJ5RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlubmVyVGV4
dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRl
UGxhY2Vob2xkZXJUZXh0KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBo
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBl
OjpoYW5kbGVNb3VzZURvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRl
UGxhY2Vob2xkZXJUZXh0KToKKyAgICAgICAgKiBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
aW9uUG9pbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6ZGV0
YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENo
aWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1
dGlvbik6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaDoKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2xpZGVyVGh1bWJFbGVtZW50T2YpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyQ29u
dGFpbmVyOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6dHJhY2tMaW1pdGVyRWxlbWVudE9m
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpnZXREZWNvcmF0aW9uUm9vdEFuZERlY29yYXRlZFJvb3QpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUpOgorICAgICAgICAqIHBhZ2UvRm9jdXND
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzU2NvcGU6OmZvY3VzU2NvcGVP
Zik6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c1Njb3BlOjpmb2N1c1Njb3BlT3duZWRCeVNoYWRv
d0hvc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2FkQnV0dG9u
KToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VS
ZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmJ1aWxkU2hhZG93
QW5kSW5zdGFuY2VUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OmJ1aWxk
U2hhZG93VHJlZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjplbnN1cmVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6eW91bmdlc3RTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6b2xkZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJl
bW92ZVNoYWRvd1Jvb3QpOgorCiAyMDEyLTA0LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgSGFyZGVuIGFyaXRobWV0aWMgaW4gSW1hZ2VCdWZmZXJEYXRhQ0cK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZWU2ODJiYmQ0ODc2ZmE5ZDJhMTdhYjdiZWM3MWZkMjgw
MWMzYzY4NS4uYWVmN2VjNDNjMzZjY2NkZTIzNTA5MzAyYjM5Y2Y1MDhjYTMwZGNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTU2Niw2ICs1NjYsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAKICAgICBkb20vRWRpdGluZ1RleHQuY3BwCiAgICAg
ZG9tL0VsZW1lbnQuY3BwCisgICAgZG9tL0VsZW1lbnRTaGFkb3cuY3BwCiAgICAgZG9tL0VsZW1l
bnRBdHRyaWJ1dGVEYXRhLmNwcAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCiAgICAgZG9t
L0Vycm9yRXZlbnQuY3BwCkBAIC02MjEsNyArNjIyLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCiAg
ICAgZG9tL1NoYWRvd1Jvb3QuY3BwCi0gICAgZG9tL1NoYWRvd1RyZWUuY3BwCiAgICAgZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuY3BwCiAgICAgZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAKICAg
ICBkb20vU3RhdGljTm9kZUxpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCAyZjUzMjgyMzlkYjNkNmU3MTJmYWQ3ZmE0NTM0ODEwYzk0YTZkMDAwLi41NzNhNzM5YmJlZGQ3
NjNiNTEwMjBmMjdiNGI4ZDk4MDNjOWZjYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTE4MjcsNiArMTgyNyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0VkaXRpbmdUZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRTaGFkb3cuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oIFwKQEAgLTE5NTYsOCArMTk1OCw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0
U3RyaW5nLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggOGU4YzcxNDYwYWRjMTk4MTY0YWRjYWZjYzgwOTA1ZjFiNWMxZWEyZC4uN2M5MDEzYzE0
MWMyMWVkOTNkNTI2ODEyNjhmOWEzNzc3MDgzMjQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NDMsNiAr
NTQzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAgXAogICAg
IGRvbS9FZGl0aW5nVGV4dC5jcHAgXAogICAgIGRvbS9FbGVtZW50LmNwcCBcCisgICAgZG9tL0Vs
ZW1lbnRTaGFkb3cuY3BwIFwKICAgICBkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIFwKICAg
ICBkb20vRW50aXR5UmVmZXJlbmNlLmNwcCBcCiAgICAgZG9tL0Vycm9yRXZlbnQuY3BwIFwKQEAg
LTYwMSw3ICs2MDIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNw
cCBcCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwIFwKICAgICBkb20vU2hhZG93Um9vdC5jcHAg
XAotICAgIGRvbS9TaGFkb3dUcmVlLmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
IFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5j
cHAgXApAQCAtMTcwMCw2ICsxNzAwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0R5bmFtaWNO
b2RlTGlzdC5oIFwKICAgICBkb20vRWRpdGluZ1RleHQuaCBcCiAgICAgZG9tL0VsZW1lbnQuaCBc
CisgICAgZG9tL0VsZW1lbnRTaGFkb3cuaCBcCiAgICAgZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRh
LmggXAogICAgIGRvbS9FbnRpdHkuaCBcCiAgICAgZG9tL0VudGl0eVJlZmVyZW5jZS5oIFwKQEAg
LTE3NDksNyArMTc1MCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmggXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmggXAogICAgIGRvbS9TaGFkb3dSb290
LmggXAotICAgIGRvbS9TaGFkb3dUcmVlLmggXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmgg
XAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNzU5YzIyYjAzMDU2NGZmYzJkYjA1ODc1NDIxNWNlMDY4
ZjFmOTA5OC4uMDNkMGI2YTc1NWFhN2U2MTIyYmRkZjJlMmEwZjg2M2FlNWNiOTJmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KQEAgLTE0Nyw3ICsxNDcsNiBAQCBfX1pON1dlYkNvcmUxMEpTRG9jdW1l
bnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3Jt
TW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFF
UktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVF
aWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIK
IF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEwY29tcG9zaXRvckV2Ci1fX1pON1dlYkNvcmUxMFNo
YWRvd1RyZWUyMHJlbW92ZUFsbFNoYWRvd1Jvb3RzRXYKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmll
dzE3c2V0VXNlRml4ZWRMYXlvdXRFYgogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MThzZXRGaXhl
ZExheW91dFNpemVFUktOU183SW50U2l6ZUUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIxc2V0
RGVsZWdhdGVzU2Nyb2xsaW5nRWIKQEAgLTMwMiw2ICszMDEsNyBAQCBfX1pON1dlYkNvcmUxM0FY
T2JqZWN0Q2FjaGUxOHJvb3RPYmplY3RGb3JGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3Jl
MTNBWE9iamVjdENhY2hlMjFnQWNjZXNzaWJpbGl0eUVuYWJsZWRFCiBfX1pON1dlYkNvcmUxM0FY
T2JqZWN0Q2FjaGUyM2ZvY3VzZWRVSUVsZW1lbnRGb3JQYWdlRVBLTlNfNFBhZ2VFCiBfX1pON1dl
YkNvcmUxM0FYT2JqZWN0Q2FjaGU0MmdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNl
RW5hYmxlZEUKK19fWk43V2ViQ29yZTEzRWxlbWVudFNoYWRvdzIwcmVtb3ZlQWxsU2hhZG93Um9v
dHNFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQ
SGVhZGVyTWFwRDFFdgogX19aTjdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KQEAgLTE0
ODAsNyArMTQ4MCw3IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5n
V2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29u
dGFpbmluZ1dpbmRvd0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1l
UmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgotX19aTks3V2ViQ29y
ZTdFbGVtZW50MTBzaGFkb3dUcmVlRXYKK19fWk5LN1dlYkNvcmU3RWxlbWVudDZzaGFkb3dFdgog
X19aTks3V2ViQ29yZTdFbGVtZW50MTJnZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxpZmllZE5hbWVF
CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxM2hhc1NoYWRvd1Jvb3RFdgogX19aTks3V2ViQ29yZTdJ
bnRSZWN0MTBpbnRlcnNlY3RzRVJLUzBfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODIzZjY4MmEzMjVk
ZWI1MTE3OTZhYmNiNWM4YWVmZjU4YzM4MmQ1OC4uMTc0ZTY5ZmM4ZmQzZjgwOTU0ZDAxMGFlMzMz
M2MwNjk2MjE0Yzg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjI1LDYgKzYyNSw3IEBACiAgICAg
ICAgICAgICAnZG9tL0RvY3VtZW50VGltaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVu
dFR5cGUuaCcsCiAgICAgICAgICAgICAnZG9tL0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnZG9t
L0VsZW1lbnRTaGFkb3cuaCcsCiAgICAgICAgICAgICAnZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRh
LmgnLAogICAgICAgICAgICAgJ2RvbS9FdmVudC5oJywKICAgICAgICAgICAgICdkb20vRXZlbnRM
aXN0ZW5lci5oJywKQEAgLTY1Miw3ICs2NTMsNiBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAg
ICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd1Ry
ZWUuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAg
ICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC01
MjI2LDYgKzUyMjYsNyBAQAogICAgICAgICAgICAgJ2RvbS9EeW5hbWljTm9kZUxpc3QuaCcsCiAg
ICAgICAgICAgICAnZG9tL0VkaXRpbmdUZXh0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0VkaXRp
bmdUZXh0LmgnLAorICAgICAgICAgICAgJ2RvbS9FbGVtZW50U2hhZG93LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRWxlbWVudEF0dHJpYnV0
ZURhdGEuY3BwJywKICAgICAgICAgICAgICdkb20vRWxlbWVudFJhcmVEYXRhLmgnLApAQCAtNTMz
MSw4ICs1MzMyLDYgQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKICAgICAg
ICAgICAgICdkb20vU2hhZG93Um9vdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290
LmgnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dUcmVlLmNwcCcsCi0gICAgICAgICAgICAnZG9t
L1NoYWRvd1RyZWUuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywK
ICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMjU1NTVhM2I1NGU4NWVjYTZh
YmU0NjQ0ZmYyZTIzYjMyZTZmYTllLi4zNmUxM2U2N2JiMWIzZDdkNTA2MzJhZmQ5YzkyZWQyNjEx
MWY1MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNTg5LDggKzE1ODksOCBAQAogCQk1N0I3OTFBQTE0QzZBNjMzMDBGMjAy
RDEgLyogSFRNTENvbnRlbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0I3OTFBODE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRF
bGVtZW50LmggKi87IH07CiAJCTU3Q0Y0OTc0MTRFRTM2RDcwMEVDRkYxNCAvKiBJbnNlcnRpb25Q
b2ludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
N0NGNDk3MjE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuY3BwICovOyB9OwogCQk1
N0NGNDk3NTE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Q0Y0OTczMTRFRTM2RDcwMEVDRkYx
NCAvKiBJbnNlcnRpb25Qb2ludC5oICovOyB9OwotCQk1N0NGNEM4NjE0Rjc1OTdBMDBFQ0ZGMTQg
LyogU2hhZG93VHJlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0NGNEM4NDE0Rjc1OTdBMDBFQ0ZGMTQgLyogU2hhZG93VHJlZS5jcHAgKi87IH07
Ci0JCTU3Q0Y0Qzg3MTRGNzU5N0EwMEVDRkYxNCAvKiBTaGFkb3dUcmVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNEM4NTE0Rjc1OTdBMDBFQ0ZG
MTQgLyogU2hhZG93VHJlZS5oICovOyB9OworCQk1N0NGNEM4NjE0Rjc1OTdBMDBFQ0ZGMTQgLyog
RWxlbWVudFNoYWRvdy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0NGNEM4NDE0Rjc1OTdBMDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5jcHAgKi87
IH07CisJCTU3Q0Y0Qzg3MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNEM4NTE0Rjc1OTdB
MDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5oICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBG
MTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdl
ci5jcHAgKi87IH07CiAJCTU5MDVBREMwMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURC
RTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTEx
RTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBE
ZXZpY2VPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04NTkyLDggKzg1OTIsOCBAQAogCQk1N0I3OTFBODE0QzZBNjMzMDBGMjAy
RDEgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhUTUxDb250ZW50RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
N0NGNDk3MjE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zZXJ0aW9uUG9pbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0NGNDk3MzE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9u
UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zZXJ0aW9uUG9pbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTdDRjRDODQxNEY3NTk3QTAwRUNGRjE0
IC8qIFNoYWRvd1RyZWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2hhZG93VHJlZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3Q0Y0Qzg1MTRG
NzU5N0EwMEVDRkYxNCAvKiBTaGFkb3dUcmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNoYWRvd1RyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdDRjRD
ODQxNEY3NTk3QTAwRUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRWxlbWVudFNoYWRvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3Q0Y0Qzg1MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRTaGFkb3cuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwNUFEQkQxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRy
ZWVWaWV3ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MVHJl
ZVZpZXdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJFMTMwMkYz
Q0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhNTFRyZWVWaWV3ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkw
RTFCNDgxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTA5MSw2ICsyMTA5MSw4IEBACiAJCQkJQThDNEE3RjYwOUQ1NjMy
NzAwMDNBQzhEIC8qIEVsZW1lbnQuY3BwICovLAogCQkJCUE4QzRBN0Y1MDlENTYzMjcwMDAzQUM4
RCAvKiBFbGVtZW50LmggKi8sCiAJCQkJOTNFRUMxRUEwOUMyODc3NzAwQzUxNUQxIC8qIEVsZW1l
bnQuaWRsICovLAorCQkJCTU3Q0Y0Qzg0MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93
LmNwcCAqLywKKwkJCQk1N0NGNEM4NTE0Rjc1OTdBMDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5o
ICovLAogCQkJCTJDRjY4Nzg3MTREMzJFQjUwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0
YS5jcHAgKi8sCiAJCQkJMkNGNjg3ODkxNEQzMkVGRjAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1
dGVEYXRhLmggKi8sCiAJCQkJNjM3QjdBREUwRTg3NjdCODAwRTMyMTk0IC8qIEVsZW1lbnRSYXJl
RGF0YS5oICovLApAQCAtMjEyNjAsOCArMjEyNjIsNiBAQAogCQkJCUE2RDE2OTYxMTM0NkI0OUIw
MDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKIAkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3
NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUE3REI0MTgxMTRDRTFGMEEwMEEyRTMxNiAvKiBT
aGFkb3dSb290LmlkbCAqLywKLQkJCQk1N0NGNEM4NDE0Rjc1OTdBMDBFQ0ZGMTQgLyogU2hhZG93
VHJlZS5jcHAgKi8sCi0JCQkJNTdDRjRDODUxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUu
aCAqLywKIAkJCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5j
cHAgKi8sCiAJCQkJRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcu
aCAqLywKIAkJCQlDRUEzOTQ5QTExRDQ1Q0RBMDAzMDk0Q0YgLyogU3RhdGljSGFzaFNldE5vZGVM
aXN0LmNwcCAqLywKQEAgLTIyNjY5LDYgKzIyNjY5LDcgQEAKIAkJCQk0QkFFOTVCMTBCMkZBOUNF
MDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRlQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0ZE
QUZDQTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEM0QTgwNzA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTdDRjRDODcxNEY3NTk3QTAwRUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJDRjY4NzhBMTREMzJFRkYwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmli
dXRlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjNGNUQ0RjcwRThDNEI3MTAwQzBCRDA0IC8q
IEVsZW1lbnRSYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQxNUYxODQwRDlBMUE4MzAw
MzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDIwMSw3
ICsyNDIwMiw2IEBACiAJCQkJMEYzREQ0NTAxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOEM0MEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hh
ZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTdDRjRDODcxNEY3NTk3QTAwRUNGRjE0IC8q
IFNoYWRvd1RyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0U4MEExOTg5Q0EwMDdGQjhD
NSAvKiBTaGFkb3dWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOTQwRDAwQTVERjAw
MzAwNzREIC8qIFNoYXBlQXJhYmljLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOTU0RTBCNEVE
Q0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI1ODM5LDYg
KzI1ODM5LDcgQEAKIAkJCQk5M0EzOEI0QjBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFRDUwMURDNjBCMjQ5RjI5MDBBRTE4RDkgLyogRWRp
dG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8q
IEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTdDRjRDODYxNEY3NTk3QTAwRUNGRjE0
IC8qIEVsZW1lbnRTaGFkb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkNGNjg3ODgxNEQzMkVC
NTAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4Q0ZGNkNCMEExNTYxQ0QwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGNTVCM0RCQjEyNTFGMTJEMDAzRUYyNjkgLyogRW1haWxJbnB1dFR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNzMzOSw3ICsyNzM0MCw2IEBACiAJCQkJMEYzREQ0NEYxMkY1RUEx
QjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI4QzMw
RTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTZE
MTY5NjIxMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNTdDRjRDODYxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTgwRTZDRjQwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyQUZGQzkzMEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTk1NEQwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1
ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggOWZkY2I5Zjg5ZTBkMjExZTAyN2Q2N2RlNDFlYjFi
ZDZiMTIwZDlkZi4uNWE2OTM2YzhjMjIxZmVjYTMzZTc4NmI4NDQ5M2E2MTUyOGNlODU1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAg
LTI4LDkgKzI4LDEwIEBACiAjaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCiAK
ICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1
ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgot
I2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKKwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5
LDE3ICs0MCwxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUq
IG5vZGUpCiAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxl
bWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpOwogfQogCi1zdGF0aWMgaW5saW5lIFNoYWRvd1Ry
ZWUqIHNoYWRvd1RyZWVGb3IoY29uc3QgTm9kZSogbm9kZSkKK3N0YXRpYyBpbmxpbmUgRWxlbWVu
dFNoYWRvdyogc2hhZG93Rm9yKGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUgJiYg
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm4gdG9FbGVtZW50KG5vZGUpLT5z
aGFkb3dUcmVlKCk7CisgICAgICAgIHJldHVybiB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpOwog
ICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVP
ZlBhcmVudChjb25zdCBOb2RlKiBub2RlKQorc3RhdGljIGlubGluZSBFbGVtZW50U2hhZG93KiBz
aGFkb3dPZlBhcmVudChjb25zdCBOb2RlKiBub2RlKQogewogICAgIGlmIChub2RlICYmIG5vZGUt
PnBhcmVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIHNoYWRvd1RyZWVGb3Iobm9kZS0+cGFyZW50
Tm9kZSgpKTsKKyAgICAgICAgcmV0dXJuIHNoYWRvd0Zvcihub2RlLT5wYXJlbnROb2RlKCkpOwog
ICAgIHJldHVybiAwOwogfQogCkBAIC05Nyw4ICs5OCw4IEBAIE5vZGUqIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJl
Y3RpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnko
KSkgewotICAgICAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlID0gc2hhZG93VHJlZUZvcihub2Rl
KTsKLSAgICAgICAgcmV0dXJuIChzaGFkb3dUcmVlICYmIHNoYWRvd1RyZWUtPmhhc1NoYWRvd1Jv
b3QoKSkgPyB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93VHJlZS0+eW91bmdlc3RTaGFkb3dS
b290KCksIGRpcmVjdGlvbikKKyAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gc2hhZG93
Rm9yKG5vZGUpOworICAgICAgICByZXR1cm4gKHNoYWRvdyAmJiBzaGFkb3ctPmhhc1NoYWRvd1Jv
b3QoKSkgPyB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3Qo
KSwgZGlyZWN0aW9uKQogICAgICAgICAgICAgOiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwg
ZGlyZWN0aW9uKTsKICAgICB9CiAgICAgaWYgKGlzU2hhZG93SG9zdChub2RlKSkKQEAgLTE0Mywx
MCArMTQ0LDEwIEBAIHZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxp
bmcoKQogTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJh
Y2tUb0luc2VydGlvblBvaW50KGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBk
aXJlY3Rpb24pCiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIFNoYWRvd1RyZWUqIHNoYWRvd1Ry
ZWUgPSBzaGFkb3dUcmVlT2ZQYXJlbnQobm9kZSk7Ci0gICAgaWYgKCFzaGFkb3dUcmVlKQorICAg
IEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd09mUGFyZW50KG5vZGUpOworICAgIGlmICgh
c2hhZG93KQogICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2Rl
LCBkaXJlY3Rpb24pOwotICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFk
b3dUcmVlLT5zZWxlY3Rpb25Gb3Iobm9kZSk7CisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNl
bGVjdGlvbiA9IHNoYWRvdy0+c2VsZWN0aW9uRm9yKG5vZGUpOwogICAgIGlmICghc2VsZWN0aW9u
KQogICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJl
Y3Rpb24pOwogICAgIGlmIChIVE1MQ29udGVudFNlbGVjdGlvbiogbmV4dFNlbGVjdGlvbiA9IChk
aXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IHNlbGVjdGlvbi0+bmV4dCgp
IDogc2VsZWN0aW9uLT5wcmV2aW91cygpKSkKQEAgLTIwNyw4ICsyMDgsOCBAQCBOb2RlKiBDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpIGNv
bnN0CiAgICAgICAgIEFTU0VSVCh0b1NoYWRvd1Jvb3Qobm9kZSktPmlzWW91bmdlc3QoKSk7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBpZiAoU2hhZG93VHJlZSogc2hhZG93VHJlZSA9
IHNoYWRvd1RyZWVPZlBhcmVudChub2RlKSkgewotICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxl
Y3Rpb24qIHNlbGVjdGlvbiA9IHNoYWRvd1RyZWUtPnNlbGVjdGlvbkZvcihub2RlKSkKKyAgICBp
ZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gc2hhZG93T2ZQYXJlbnQobm9kZSkpIHsKKyAgICAg
ICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3ctPnNlbGVjdGlv
bkZvcihub2RlKSkKICAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVBhcmVudChzZWxlY3Rpb24t
Pmluc2VydGlvblBvaW50KCkpOwogICAgIH0KICAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnRJbkN1
cnJlbnRUcmVlKG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxn
b3JpdGhtcy5jcHAKaW5kZXggZWRiODRkYTVmZTgxM2Q5ZTMxYThiNmVkMzhiNzExNjUwMzlkZDFk
Yy4uOGM0Y2U1ZWFkNjU1YzA4ZWJkODI2YjI3Y2FhZjRjZjc5YWViZjJhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCkBAIC0yNyw3ICsyNyw3
IEBACiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKIAogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRv
dy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDggKzQ2LDggQEAgdm9pZCBDaGls
ZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3Vt
ZW50KENvbnRhaW5lck4KICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUgPSB0b0VsZW1lbnQobm9kZSktPnNo
YWRvd1RyZWUoKSkgewotICAgICAgICBTaGFkb3dSb290VmVjdG9yIHJvb3RzKHRyZWUpOworICAg
IGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKSB7
CisgICAgICAgIFNoYWRvd1Jvb3RWZWN0b3Igcm9vdHMoc2hhZG93KTsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCByb290cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIG5vdGlmeU5v
ZGVJbnNlcnRlZEludG9Eb2N1bWVudChyb290c1tpXS5nZXQoKSk7CiAgICAgfQpAQCAtNjMsOCAr
NjMsOCBAQCB2b2lkIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpub3RpZnlEZXNjZW5kYW50
SW5zZXJ0ZWRJbnRvVHJlZShDb250YWluZXJOb2RlKgogICAgIGlmICghbm9kZS0+aXNFbGVtZW50
Tm9kZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHRv
RWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpKSB7Ci0gICAgICAgIGZvciAoU2hhZG93Um9vdCog
cm9vdCA9IHRyZWUtPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpCisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93KCkpIHsKKyAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gc2hh
ZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93
Um9vdCgpKQogICAgICAgICAgICAgbm90aWZ5Tm9kZUluc2VydGVkSW50b1RyZWUocm9vdCk7CiAg
ICAgfQogfQpAQCAtODcsOCArODcsOCBAQCB2b2lkIENoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6
bm90aWZ5RGVzY2VuZGFudFJlbW92ZWRGcm9tRG9jdW1lbnQoQ29udGFpbmVyTm9kZQogICAgIGlm
IChub2RlLT5kb2N1bWVudCgpLT5jc3NUYXJnZXQoKSA9PSBub2RlKQogICAgICAgICBub2RlLT5k
b2N1bWVudCgpLT5zZXRDU1NUYXJnZXQoMCk7CiAKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9
IHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpKSB7Ci0gICAgICAgIFNoYWRvd1Jvb3RWZWN0
b3Igcm9vdHModHJlZSk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93KCkpIHsKKyAgICAgICAgU2hhZG93Um9vdFZlY3RvciByb290cyhzaGFk
b3cpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJvb3RzLnNpemUoKTsgKytpKQog
ICAgICAgICAgICAgbm90aWZ5Tm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQocm9vdHNbaV0uZ2V0KCkp
OwogICAgIH0KQEAgLTEwNCw4ICsxMDQsOCBAQCB2b2lkIENoaWxkTm9kZVJlbW92YWxOb3RpZmll
cjo6bm90aWZ5RGVzY2VuZGFudFJlbW92ZWRGcm9tVHJlZShDb250YWluZXJOb2RlKiBubwogICAg
IGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
U2hhZG93VHJlZSogdHJlZSA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpKSB7Ci0gICAg
ICAgIFNoYWRvd1Jvb3RWZWN0b3Igcm9vdHModHJlZSk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cq
IHNoYWRvdyA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCkpIHsKKyAgICAgICAgU2hhZG93Um9v
dFZlY3RvciByb290cyhzaGFkb3cpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJv
b3RzLnNpemUoKTsgKytpKQogICAgICAgICAgICAgbm90aWZ5Tm9kZVJlbW92ZWRGcm9tVHJlZShy
b290c1tpXS5nZXQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXgg
NDI2YThjYTU1NmVhYWUwMTVjNDc3OWZhMTU4NWI1NjBkNjdlNjZmZC4uNmY2NWMwMDEzNjM3ZmMz
ZjRkNjIwYTI0ODA0N2I4YzI1YjUwYWEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ1RleHQuY3BwIgogI2luY2x1ZGUg
IkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkVsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCIKKyNpbmNs
dWRlICJFbGVtZW50U2hhZG93LmNwcCIKICNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuY3BwIgog
I2luY2x1ZGUgIkVycm9yRXZlbnQuY3BwIgogI2luY2x1ZGUgIkV2ZW50LmNwcCIKQEAgLTExOCw3
ICsxMTksNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2Vs
ZWN0b3JRdWVyeS5jcHAiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5jcHAiCi0jaW5jbHVkZSAiU2hh
ZG93VHJlZS5jcHAiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAi
U3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5jcHAi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkMTE3MzU1YTZkMDc5OWFmNjQ1NjA4YWVkNDVm
MDVhMjYwMDlhODdjLi44M2Q4NTVhYWE1ZmE5NTA5NThlMGE1YTUwYzY0MjE5YzA1ZTJjOWQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlICJFZGl0
aW5nVGV4dC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEZhY3RvcnkuaCIKQEAgLTE0MCw3ICsx
NDEsNiBAQAogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNp
bmNsdWRlICJTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lk
IERvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcChUcmVlU2NvcGUqIHNjb3BlKQogICAgICAgICAg
ICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5LnNldChhY2Nlc3NLZXkuaW1wbCgpLCBlbGVtZW50KTsK
IAogICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBm
b3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAg
ICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RT
aGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAg
ICAgICAgICAgICBidWlsZEFjY2Vzc0tleU1hcChyb290KTsKICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAppbmRleCBiN2I3MGNlNWExMzFkN2VmNmNhZWEzZjQzYjZmZGVmNTI5
ZGRmNDJjLi5lYTljOWQ0ZDc2NDNjOGRmMWNiYzIwNzU2MzMyYmQwMDEyNDcwNDYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC0xMzMsOCArMTMzLDggQEAgRWxlbWVudDo6fkVsZW1lbnQoKQog
ICAgIH0KICNlbmRpZgogCi0gICAgaWYgKHNoYWRvd1RyZWUoKSkKLSAgICAgICAgcmFyZURhdGEo
KS0+bV9zaGFkb3dUcmVlLmNsZWFyKCk7CisgICAgaWYgKHNoYWRvdygpKQorICAgICAgICByYXJl
RGF0YSgpLT5tX3NoYWRvdy5jbGVhcigpOwogICAgIGlmIChtX2F0dHJpYnV0ZURhdGEpCiAgICAg
ICAgIG1fYXR0cmlidXRlRGF0YS0+Y2xlYXJBdHRyaWJ1dGVzKHRoaXMpOwogfQpAQCAtOTA0LDgg
KzkwNCw4IEBAIHZvaWQgRWxlbWVudDo6d2lsbFJlbW92ZSgpCiAgICAgaWYgKGNvbnRhaW5zRnVs
bFNjcmVlbkVsZW1lbnQoKSkKICAgICAgICAgc2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9u
QW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2UpOwogI2VuZGlmCi0gICAgaWYg
KFNoYWRvd1RyZWUqIHRyZWUgPSBzaGFkb3dUcmVlKCkpCi0gICAgICAgIHRyZWUtPndpbGxSZW1v
dmUoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisg
ICAgICAgIHNoYWRvdy0+d2lsbFJlbW92ZSgpOwogICAgIENvbnRhaW5lck5vZGU6OndpbGxSZW1v
dmUoKTsKIH0KIApAQCAtOTcwLDkgKzk3MCw5IEBAIHZvaWQgRWxlbWVudDo6YXR0YWNoKCkKICAg
ICBTdHlsZVJlc29sdmVyUGFyZW50UHVzaGVyIHBhcmVudFB1c2hlcih0aGlzKTsKIAogICAgIC8v
IFdoZW4gYSBzaGFkb3cgcm9vdCBleGlzdHMsIGl0IGRvZXMgdGhlIHdvcmsgb2YgYXR0YWNoaW5n
IHRoZSBjaGlsZHJlbi4KLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHNoYWRvd1RyZWUoKSkg
eworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkgewogICAg
ICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwotICAgICAgICB0cmVlLT5hdHRhY2hIb3N0KHRoaXMp
OworICAgICAgICBzaGFkb3ctPmF0dGFjaEhvc3QodGhpcyk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaWYgKGZpcnN0Q2hpbGQoKSkKICAgICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CkBA
IC0xMDA4LDggKzEwMDgsOCBAQCB2b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgaWYgKGhhc1Jh
cmVEYXRhKCkpCiAgICAgICAgIHJhcmVEYXRhKCktPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogCi0g
ICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUgPSBzaGFkb3dUcmVlKCkpCi0gICAgICAgIHRyZWUtPmRl
dGFjaEhvc3QodGhpcyk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMtPnNo
YWRvdygpKQorICAgICAgICBzaGFkb3ctPmRldGFjaEhvc3QodGhpcyk7CiAgICAgZWxzZQogICAg
ICAgICBDb250YWluZXJOb2RlOjpkZXRhY2goKTsKIApAQCAtMTE3NSwxMCArMTE3NSwxMCBAQCB2
b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICB9CiAgICAg
Ly8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBX
aWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgogICAgIGlmIChoYXNTaGFkb3dSb290KCkp
IHsKLSAgICAgICAgU2hhZG93VHJlZSogdHJlZSA9IHNoYWRvd1RyZWUoKTsKLSAgICAgICAgaWYg
KGNoYW5nZSA+PSBJbmhlcml0IHx8IHRyZWUtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHRy
ZWUtPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cg
PSB0aGlzLT5zaGFkb3coKTsKKyAgICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IHNoYWRv
dy0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hhZG93LT5uZWVkc1N0eWxlUmVjYWxjKCkp
IHsKICAgICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7Ci0gICAgICAgICAgICB0cmVlLT5y
ZWNhbGNTaGFkb3dUcmVlU3R5bGUoY2hhbmdlKTsKKyAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxj
U3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTE5MSwzMiArMTE5MSwzMiBA
QCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIAogYm9vbCBF
bGVtZW50OjpoYXNTaGFkb3dSb290KCkgY29uc3QKIHsKLSAgICBpZiAoU2hhZG93VHJlZSogdHJl
ZSA9IHNoYWRvd1RyZWUoKSkKLSAgICAgICAgcmV0dXJuIHRyZWUtPmhhc1NoYWRvd1Jvb3QoKTsK
KyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAg
IHJldHVybiBzaGFkb3ctPmhhc1NoYWRvd1Jvb3QoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVNoYWRvd1RyZWUqIEVsZW1lbnQ6OnNoYWRvd1RyZWUoKSBjb25zdAorRWxlbWVudFNoYWRvdyog
RWxlbWVudDo6c2hhZG93KCkgY29uc3QKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQo
KTsKKyAgICByZXR1cm4gcmFyZURhdGEoKS0+bV9zaGFkb3cuZ2V0KCk7CiB9CiAKLVNoYWRvd1Ry
ZWUqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1RyZWUoKQorRWxlbWVudFNoYWRvdyogRWxlbWVudDo6
ZW5zdXJlU2hhZG93KCkKIHsKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IGVuc3VyZVJhcmVE
YXRhKCktPm1fc2hhZG93VHJlZS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHRyZWU7CisgICAgaWYg
KEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93LmdldCgp
KQorICAgICAgICByZXR1cm4gc2hhZG93OwogCi0gICAgcmFyZURhdGEoKS0+bV9zaGFkb3dUcmVl
ID0gYWRvcHRQdHIobmV3IFNoYWRvd1RyZWUoKSk7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPm1f
c2hhZG93VHJlZS5nZXQoKTsKKyAgICByYXJlRGF0YSgpLT5tX3NoYWRvdyA9IGFkb3B0UHRyKG5l
dyBFbGVtZW50U2hhZG93KCkpOworICAgIHJldHVybiByYXJlRGF0YSgpLT5tX3NoYWRvdy5nZXQo
KTsKIH0KIAogU2hhZG93Um9vdCogRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCiB7CiAgICAg
aWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIHNoYWRvd1RyZWUoKS0+b2xkZXN0
U2hhZG93Um9vdCgpOworICAgICAgICByZXR1cm4gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KTsKIAogICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3Jl
YXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KS5nZXQoKTsKIH0KQEAgLTEzNTMsNyArMTM1Myw3IEBA
IHZvaWQgRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2Rl
KiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmCiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgewogICAg
ICAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgc2hhZG93VHJlZSgpLT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgICAgICBzaGFkb3coKS0+aG9zdENoaWxkcmVuQ2hh
bmdlZCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggZGI1YjhkMDAyZjkzY2Vl
NWRlM2JiM2QwOWI5ZDZjYTc2YTg1ZDIzYS4uN2YzZDYwN2Q3YzE4N2YxMGQ5NmQ5ZGVhODJiYWZj
YzI4NWNjOTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIERP
TVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFz
cyBTaGFkb3dSb290OwotY2xhc3MgU2hhZG93VHJlZTsKK2NsYXNzIEVsZW1lbnRTaGFkb3c7CiBj
bGFzcyBXZWJLaXRBbmltYXRpb25MaXN0OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0
ZSB7CkBAIC0yNjIsOCArMjYyLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5
bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKICAgICBib29sIGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsK
LSAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlKCkgY29uc3Q7Ci0gICAgU2hhZG93VHJlZSogZW5z
dXJlU2hhZG93VHJlZSgpOworICAgIEVsZW1lbnRTaGFkb3cqIHNoYWRvdygpIGNvbnN0OworICAg
IEVsZW1lbnRTaGFkb3cqIGVuc3VyZVNoYWRvdygpOwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSBF
bGVtZW50OjplbnN1cmVTaGFkb3dSb290CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5k
ZXggOGJiMjZhNGZhMmIzZGNiZGYyNzQ2ZDJiMWQ4NjRlNGEzMDFmNzRhOS4uOGU3YmNiY2Y0Mjdl
MWY5YjY1MzkzNTk5MGRmMTQ2MjExM2FiYjc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaApAQCAtMjUsMTAgKzI1LDEwIEBACiAjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5j
bHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNs
dWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKLSNpbmNsdWRl
ICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKIAogICAgIE93blB0cjxEYXRhc2V0RE9N
U3RyaW5nTWFwPiBtX2RhdGFzZXRET01TdHJpbmdNYXA7CiAgICAgT3duUHRyPENsYXNzTGlzdD4g
bV9jbGFzc0xpc3Q7Ci0gICAgT3duUHRyPFNoYWRvd1RyZWU+IG1fc2hhZG93VHJlZTsKKyAgICBP
d25QdHI8RWxlbWVudFNoYWRvdz4gbV9zaGFkb3c7CiAgICAgT3duUHRyPE5hbWVkTm9kZU1hcD4g
bV9hdHRyaWJ1dGVNYXA7CiAKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHk7CkBAIC05
OCw3ICs5OCw3IEBAIGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSgpCiAK
IGlubGluZSBFbGVtZW50UmFyZURhdGE6On5FbGVtZW50UmFyZURhdGEoKQogewotICAgIEFTU0VS
VCghbV9zaGFkb3dUcmVlKTsKKyAgICBBU1NFUlQoIW1fc2hhZG93KTsKIH0KIAogaW5saW5lIHZv
aWQgRWxlbWVudFJhcmVEYXRhOjpyZXNldENvbXB1dGVkU3R5bGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRTaGFkb3cuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYzIyZTk0NjNjYTE2MWZjYzhhZWYzZTdmNTk0
ZGVmZGFkYzYxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5jcHAKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRWxlbWVudFNoYWRvdy5oIgorCisjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MU2hhZG93RWxlbWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJT
aGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFbGVtZW50U2hhZG93OjpFbGVtZW50U2hhZG93
KCkKKyAgICA6IG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQoZmFsc2UpCit7Cit9CisKK0VsZW1l
bnRTaGFkb3c6On5FbGVtZW50U2hhZG93KCkKK3sKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQor
ICAgICAgICByZW1vdmVBbGxTaGFkb3dSb290cygpOworfQorCitzdGF0aWMgYm9vbCB2YWxpZGF0
ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXNoYWRvd1Jvb3QpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgaWYgKHNoYWRvd1Jvb3QtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBl
YyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIGlmIChzaGFkb3dSb290LT5kb2N1bWVudCgpICE9IGRvY3VtZW50KSB7CisgICAgICAg
IGVjID0gV1JPTkdfRE9DVU1FTlRfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6YWRkU2hhZG93Um9v
dChFbGVtZW50KiBzaGFkb3dIb3N0LCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3Qs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChzaGFkb3dIb3N0KTsKKyAgICBBU1NF
UlQoc2hhZG93Um9vdCk7CisKKyAgICBpZiAoIXZhbGlkYXRlU2hhZG93Um9vdChzaGFkb3dIb3N0
LT5kb2N1bWVudCgpLCBzaGFkb3dSb290LmdldCgpLCBlYykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRvd0hvc3Qoc2hhZG93SG9zdCk7CisgICAgQ2hpbGROb2Rl
SW5zZXJ0aW9uTm90aWZpZXIoc2hhZG93SG9zdCkubm90aWZ5KHNoYWRvd1Jvb3QuZ2V0KCkpOwor
CisgICAgaWYgKHNoYWRvd0hvc3QtPmF0dGFjaGVkKCkpIHsKKyAgICAgICAgc2hhZG93Um9vdC0+
bGF6eUF0dGFjaCgpOworICAgICAgICBkZXRhY2goKTsKKyAgICAgICAgc2hhZG93SG9zdC0+ZGV0
YWNoQ2hpbGRyZW4oKTsKKyAgICB9CisKKyAgICBtX3NoYWRvd1Jvb3RzLnB1c2goc2hhZG93Um9v
dC5nZXQoKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQdXNoU2hhZG93Um9v
dChzaGFkb3dIb3N0LCBzaGFkb3dSb290LmdldCgpKTsKK30KKwordm9pZCBFbGVtZW50U2hhZG93
OjpyZW1vdmVBbGxTaGFkb3dSb290cygpCit7CisgICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIERvbnQgcHJvdGVjdCB0aGlzIHJlZiBjb3VudC4KKyAg
ICBFbGVtZW50KiBzaGFkb3dIb3N0ID0gaG9zdCgpOworCisgICAgd2hpbGUgKFJlZlB0cjxTaGFk
b3dSb290PiBvbGRSb290ID0gbV9zaGFkb3dSb290cy5yZW1vdmVIZWFkKCkpIHsKKyAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUG9wU2hhZG93Um9vdChzaGFkb3dIb3N0LCBv
bGRSb290LmdldCgpKTsKKyAgICAgICAgc2hhZG93SG9zdC0+ZG9jdW1lbnQoKS0+cmVtb3ZlRm9j
dXNlZE5vZGVPZlN1YnRyZWUob2xkUm9vdC5nZXQoKSk7CisKKyAgICAgICAgaWYgKG9sZFJvb3Qt
PmF0dGFjaGVkKCkpCisgICAgICAgICAgICBvbGRSb290LT5kZXRhY2goKTsKKworICAgICAgICBv
bGRSb290LT5zZXRTaGFkb3dIb3N0KDApOworICAgICAgICBvbGRSb290LT5zZXRQcmV2KDApOwor
ICAgICAgICBvbGRSb290LT5zZXROZXh0KDApOworICAgICAgICBzaGFkb3dIb3N0LT5kb2N1bWVu
dCgpLT5hZG9wdElmTmVlZGVkKG9sZFJvb3QuZ2V0KCkpOworICAgICAgICBDaGlsZE5vZGVSZW1v
dmFsTm90aWZpZXIoc2hhZG93SG9zdCkubm90aWZ5KG9sZFJvb3QuZ2V0KCkpOworICAgIH0KKwor
ICAgIGlmIChzaGFkb3dIb3N0LT5hdHRhY2hlZCgpKQorICAgICAgICBzaGFkb3dIb3N0LT5hdHRh
Y2hDaGlsZHJlbkxhemlseSgpOworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OndpbGxSZW1vdmUo
KQoreworICAgIFNoYWRvd1Jvb3RWZWN0b3Igcm9vdHModGhpcyk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCByb290cy5zaXplKCk7ICsraSkKKyAgICAgICAgcm9vdHNbaV0tPndpbGxSZW1v
dmUoKTsKK30KKwordm9pZCBFbGVtZW50U2hhZG93OjpzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNj
b3BlKiBzY29wZSkKK3sKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRv
d1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICBy
b290LT5zZXRQYXJlbnRUcmVlU2NvcGUoc2NvcGUpOworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6
OmF0dGFjaCgpCit7CisgICAgLy8gQ2hpbGRyZW4gb2YgbV9zZWxlY3RvciBpcyBwb3B1bGF0ZWQg
bGF6aWx5IGluCisgICAgLy8gZW5zdXJlU2VsZWN0b3IoKSwgYW5kIGhlcmUgd2UganVzdCBlbnN1
cmUgdGhhdCBpdCBpcyBpbiBjbGVhbiBzdGF0ZS4KKyAgICBBU1NFUlQoIXNlbGVjdG9yKCkuaGFz
UG9wdWxhdGVkKCkpOworCisgICAgc2VsZWN0b3IoKS53aWxsU2VsZWN0KCk7CisgICAgZm9yIChT
aGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290
LT5vbGRlclNoYWRvd1Jvb3QoKSkgeworICAgICAgICBpZiAoIXJvb3QtPmF0dGFjaGVkKCkpCisg
ICAgICAgICAgICByb290LT5hdHRhY2goKTsKKyAgICB9CisgICAgc2VsZWN0b3IoKS5kaWRTZWxl
Y3QoKTsKK30KKwordm9pZCBFbGVtZW50U2hhZG93OjphdHRhY2hIb3N0KEVsZW1lbnQqIGhvc3Qp
Cit7CisgICAgYXR0YWNoKCk7CisgICAgaG9zdC0+YXR0YWNoQ2hpbGRyZW5JZk5lZWRlZCgpOwor
ICAgIGhvc3QtPmF0dGFjaEFzTm9kZSgpOworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmRldGFj
aCgpCit7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7
IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkgeworICAgICAgICBpZiAocm9v
dC0+YXR0YWNoZWQoKSkKKyAgICAgICAgICAgIHJvb3QtPmRldGFjaCgpOworICAgIH0KK30KKwor
dm9pZCBFbGVtZW50U2hhZG93OjpkZXRhY2hIb3N0KEVsZW1lbnQqIGhvc3QpCit7CisgICAgaG9z
dC0+ZGV0YWNoQ2hpbGRyZW5JZk5lZWRlZCgpOworICAgIGRldGFjaCgpOworICAgIGhvc3QtPmRl
dGFjaEFzTm9kZSgpOworfQorCitJbnNlcnRpb25Qb2ludCogRWxlbWVudFNoYWRvdzo6aW5zZXJ0
aW9uUG9pbnRGb3IoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSAm
JiBub2RlLT5wYXJlbnROb2RlKCkpOworCisgICAgaWYgKG5vZGUtPnBhcmVudE5vZGUoKS0+aXNT
aGFkb3dSb290KCkpIHsKKyAgICAgICAgaWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2lu
dCA9IHRvU2hhZG93Um9vdChub2RlLT5wYXJlbnROb2RlKCkpLT5hc3NpZ25lZFRvKCkpCisgICAg
ICAgICAgICByZXR1cm4gaW5zZXJ0aW9uUG9pbnQ7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorCisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIGZvdW5kID0gc2VsZWN0b3IoKS5maW5kRm9y
KG5vZGUpOworICAgIGlmICghZm91bmQpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBm
b3VuZC0+aW5zZXJ0aW9uUG9pbnQoKTsKK30KKworSFRNTENvbnRlbnRTZWxlY3Rpb24qIEVsZW1l
bnRTaGFkb3c6OnNlbGVjdGlvbkZvcihjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJl
dHVybiBtX3NlbGVjdG9yLmZpbmRGb3Iobm9kZSk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6
cmVhdHRhY2goKQoreworICAgIGRldGFjaCgpOworICAgIGF0dGFjaCgpOworfQorCitib29sIEVs
ZW1lbnRTaGFkb3c6OmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpCit7CisgICAgQVNTRVJUKHlvdW5n
ZXN0U2hhZG93Um9vdCgpKTsKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAg
ICBpZiAocm9vdC0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpuZWVk
c1N0eWxlUmVjYWxjKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOworICAg
IGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIGlmIChyb290LT5uZWVkc1N0eWxl
UmVjYWxjKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBFbGVtZW50U2hhZG93OjpyZWNhbGNTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBj
aGFuZ2UpCit7CisgICAgU2hhZG93Um9vdCogeW91bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsKKyAgICBpZiAoIXlvdW5nZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobmVlZHNS
ZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpKQorICAgICAgICByZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpOworICAgIGVsc2UgeworICAgICAgICBTdHlsZVJlc29sdmVyKiBzdHls
ZVJlc29sdmVyID0geW91bmdlc3QtPmRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKTsKKworICAg
ICAgICBzdHlsZVJlc29sdmVyLT5wdXNoUGFyZW50U2hhZG93Um9vdCh5b3VuZ2VzdCk7CisgICAg
ICAgIGZvciAoTm9kZSogbiA9IHlvdW5nZXN0LT5maXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0
U2libGluZygpKSB7CisgICAgICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKS0+cmVjYWxjU3R5bGUoY2hhbmdlKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKG4tPmlzVGV4dE5vZGUoKSkKKyAgICAgICAgICAgICAgICB0
b1RleHQobiktPnJlY2FsY1RleHRTdHlsZShjaGFuZ2UpOworICAgICAgICB9CisgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnBvcFBhcmVudFNoYWRvd1Jvb3QoeW91bmdlc3QpOworICAgIH0KKworICAg
IGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIGZvciAoU2hh
ZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+
b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAgcm9vdC0+Y2xlYXJOZWVkc1N0eWxlUmVjYWxj
KCk7CisgICAgICAgIHJvb3QtPmNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgfQor
fQorCitib29sIEVsZW1lbnRTaGFkb3c6Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFk
b3coKQoreworICAgIHJldHVybiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IHx8ICh5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKSAmJiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aGFzSW5zZXJ0aW9uUG9pbnQo
KSk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6aG9zdENoaWxkcmVuQ2hhbmdlZCgpCit7Cisg
ICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKworICAgIGlmICgheW91bmdlc3RTaGFk
b3dSb290KCktPmhhc0luc2VydGlvblBvaW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93
IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9vdDo6cmVjYWxjU3R5bGUoKS4KKyAgICBzZXROZWVk
c1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRv
dzo6c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgbV9uZWVk
c1JlY2FsY3VsYXRlQ29udGVudCA9IHRydWU7CisKKyAgICBob3N0KCktPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKK30KKwordm9pZCBFbGVtZW50U2hhZG93OjpyZWF0dGFjaEhvc3RDaGlsZHJlbkFu
ZFNoYWRvdygpCit7CisgICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKworICAgIEVs
ZW1lbnQqIGhvc3ROb2RlID0geW91bmdlc3RTaGFkb3dSb290KCktPmhvc3QoKTsKKyAgICBob3N0
Tm9kZS0+ZGV0YWNoQ2hpbGRyZW5JZk5lZWRlZCgpOworICAgIHJlYXR0YWNoKCk7CisgICAgaG9z
dE5vZGUtPmF0dGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFNoYWRvdy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNDgwYjgwMmE1OGM2MTA2YmQy
M2I2MTlkMThiMTQ3ZjRmZTA5NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFNoYWRvdy5oCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFbGVtZW50U2hh
ZG93X2gKKyNkZWZpbmUgRWxlbWVudFNoYWRvd19oCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKKyNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBOb2RlOworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEluc2VydGlvblBvaW50Owor
Y2xhc3MgVHJlZVNjb3BlOworY2xhc3MgSFRNTENvbnRlbnRTZWxlY3Rpb247CisKK2NsYXNzIEVs
ZW1lbnRTaGFkb3cgeworcHVibGljOgorICAgIEVsZW1lbnRTaGFkb3coKTsKKyAgICB+RWxlbWVu
dFNoYWRvdygpOworCisgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0OworCisgICAgYm9vbCBoYXNT
aGFkb3dSb290KCkgY29uc3Q7CisgICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCkg
Y29uc3Q7CisgICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0OworCisgICAg
dm9pZCBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93
Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7
CisKKyAgICB2b2lkIHdpbGxSZW1vdmUoKTsKKworICAgIHZvaWQgc2V0UGFyZW50VHJlZVNjb3Bl
KFRyZWVTY29wZSopOworCisgICAgdm9pZCBhdHRhY2goKTsKKyAgICB2b2lkIGRldGFjaCgpOwor
ICAgIHZvaWQgcmVhdHRhY2goKTsKKyAgICB2b2lkIGF0dGFjaEhvc3QoRWxlbWVudCopOworICAg
IHZvaWQgZGV0YWNoSG9zdChFbGVtZW50Kik7CisKKyAgICBib29sIGNoaWxkTmVlZHNTdHlsZVJl
Y2FsYygpOworICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpOworICAgIHZvaWQgcmVjYWxjU3R5
bGUoTm9kZTo6U3R5bGVDaGFuZ2UpOworICAgIHZvaWQgc2V0TmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpOworICAgIHZvaWQgY2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCk7CisgICAgYm9vbCBuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93
KCk7CisgICAgdm9pZCByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIHZvaWQg
aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworCisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBv
aW50Rm9yKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBIVE1MQ29udGVudFNlbGVjdGlvbiogc2Vs
ZWN0aW9uRm9yKGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIEhUTUxDb250ZW50U2VsZWN0b3Im
IHNlbGVjdG9yKCk7CisgICAgY29uc3QgSFRNTENvbnRlbnRTZWxlY3RvciYgc2VsZWN0b3IoKSBj
b25zdDsKKworcHJpdmF0ZToKKworICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4gbV9z
aGFkb3dSb290czsKKyAgICBIVE1MQ29udGVudFNlbGVjdG9yIG1fc2VsZWN0b3I7CisgICAgYm9v
bCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShFbGVtZW50U2hhZG93KTsKK307CisKK2lubGluZSBib29sIEVsZW1lbnRTaGFkb3c6Omhhc1No
YWRvd1Jvb3QoKSBjb25zdAoreworICAgIHJldHVybiAhbV9zaGFkb3dSb290cy5pc0VtcHR5KCk7
Cit9CisKK2lubGluZSBTaGFkb3dSb290KiBFbGVtZW50U2hhZG93Ojp5b3VuZ2VzdFNoYWRvd1Jv
b3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3NoYWRvd1Jvb3RzLmhlYWQoKTsKK30KKworaW5s
aW5lIFNoYWRvd1Jvb3QqIEVsZW1lbnRTaGFkb3c6Om9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdAor
eworICAgIHJldHVybiBtX3NoYWRvd1Jvb3RzLnRhaWwoKTsKK30KKworaW5saW5lIEhUTUxDb250
ZW50U2VsZWN0b3ImIEVsZW1lbnRTaGFkb3c6OnNlbGVjdG9yKCkKK3sKKyAgICByZXR1cm4gbV9z
ZWxlY3RvcjsKK30KKworaW5saW5lIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0b3ImIEVsZW1lbnRT
aGFkb3c6OnNlbGVjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3RvcjsKK30KKwor
aW5saW5lIHZvaWQgRWxlbWVudFNoYWRvdzo6Y2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCkKK3sKKyAgICBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50ID0gZmFsc2U7Cit9
CisKK2lubGluZSBFbGVtZW50KiBFbGVtZW50U2hhZG93Ojpob3N0KCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4geW91bmdlc3RTaGFkb3dSb290KCkt
Pmhvc3QoKTsKK30KKworY2xhc3MgU2hhZG93Um9vdFZlY3RvciA6IHB1YmxpYyBWZWN0b3I8UmVm
UHRyPFNoYWRvd1Jvb3Q+ID4geworcHVibGljOgorICAgIGV4cGxpY2l0IFNoYWRvd1Jvb3RWZWN0
b3IoRWxlbWVudFNoYWRvdyogdHJlZSkKKyAgICB7CisgICAgICAgIGZvciAoU2hhZG93Um9vdCog
cm9vdCA9IHRyZWUtPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpCisgICAgICAgICAgICBhcHBlbmQocm9vdCk7CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMzlhNDAwYzY2NGVh
NjJhODAzNjNhZDRlZDI0MmJmNDc5NzQ1Mzc5Ny4uODc2MjMxYzZmN2M0MjA4ZGEzMTcwNDFlYzZh
MDdiNzVkNzRlN2U4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1
ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNo
TWVkaWF0b3IuaCIKQEAgLTg1LDcgKzg2LDYgQEAKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVk
ZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAi
U3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtODM1LDcgKzgz
NSw3IEBAIGJvb2wgTm9kZTo6aGFzTm9uRW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAKIGlubGlu
ZSBzdGF0aWMgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdEZvcihjb25zdCBOb2RlKiBub2Rl
KQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUp
LT5oYXNTaGFkb3dSb290KCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKS0+b2xkZXN0
U2hhZG93Um9vdCgpIDogMDsKKyAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRv
RWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3co
KS0+b2xkZXN0U2hhZG93Um9vdCgpIDogMDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5
bGVDaGFuZ2UoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyNWY2YTJiMjVmNTY2YzFlYWIzYjU2ZmI5
NjUzOTgyZDIwMzk0NWYzLi4yNzFmNWNhZDBiZTEwYzRiYzJjMjFlNjk2MDgwZjIyNDVhMDM5OWRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVk
ZSAiQ29udGFpbmVyTm9kZS5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRl
ICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKQEAgLTM4LDcgKzM5LDYgQEAKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKIAogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTU1LDcgKzU1LDcgQEAgTm9kZVJlbmRlcmlu
Z0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgOiBtX3BoYXNl
KEF0dGFjaGluZ05vdEluVHJlZSkKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoMCkKLSAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93VHJl
ZSgwKQorICAgICwgbV92aXN1YWxQYXJlbnRTaGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9uUG9p
bnQoMCkKICAgICAsIG1fc3R5bGUoMCkKICAgICAsIG1fcGFyZW50Rmxvd1JlbmRlcmVyKDApCkBA
IC03MiwxMiArNzIsMTIgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250
ZXh0KE5vZGUqIG5vZGUpCiAKICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkgfHwgcGFy
ZW50LT5pc1NoYWRvd1Jvb3QoKSkgewogICAgICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2Rl
KCkgJiYgdG9FbGVtZW50KHBhcmVudCktPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIG1f
dmlzdWFsUGFyZW50U2hhZG93VHJlZSA9IHRvRWxlbWVudChwYXJlbnQpLT5zaGFkb3dUcmVlKCk7
CisgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvdyA9IHRvRWxlbWVudChwYXJlbnQpLT5z
aGFkb3coKTsKICAgICAgICAgZWxzZSBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAg
ICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93VHJlZSA9IHRvU2hhZG93Um9vdChwYXJlbnQpLT50
cmVlKCk7CisgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvdyA9IHRvU2hhZG93Um9vdChw
YXJlbnQpLT5vd25lcigpOwogCi0gICAgICAgIGlmIChtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUp
IHsKLSAgICAgICAgICAgIGlmICgobV9pbnNlcnRpb25Qb2ludCA9IG1fdmlzdWFsUGFyZW50U2hh
ZG93VHJlZS0+aW5zZXJ0aW9uUG9pbnRGb3IobV9ub2RlKSkpIHsKKyAgICAgICAgaWYgKG1fdmlz
dWFsUGFyZW50U2hhZG93KSB7CisgICAgICAgICAgICBpZiAoKG1faW5zZXJ0aW9uUG9pbnQgPSBt
X3Zpc3VhbFBhcmVudFNoYWRvdy0+aW5zZXJ0aW9uUG9pbnRGb3IobV9ub2RlKSkpIHsKICAgICAg
ICAgICAgICAgICBpZiAodG9TaGFkb3dSb290KG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1RyZWVS
b290Tm9kZSgpKS0+aXNVc2VkRm9yUmVuZGVyaW5nKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
bV9waGFzZSA9IEF0dGFjaGluZ0Rpc3RyaWJ1dGVkOwogICAgICAgICAgICAgICAgICAgICBtX3Bh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5z
ZXJ0aW9uUG9pbnQpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwpAQCAtMTE4LDcg
KzExOCw3IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2Rl
KiBub2RlLCBSZW5kZXJTdHlsZSogc3R5bGUpCiAgICAgOiBtX3BoYXNlKENhbGN1bGF0aW5nKQog
ICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSgwKQotICAgICwgbV92aXN1YWxQYXJlbnRTaGFkb3dUcmVlKDApCisgICAgLCBtX3Zpc3VhbFBh
cmVudFNoYWRvdygwKQogICAgICwgbV9pbnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZShz
dHlsZSkKICAgICAsIG1fcGFyZW50Rmxvd1JlbmRlcmVyKDApCkBAIC0yOTMsOCArMjkzLDggQEAg
UmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cGFyZW50UmVuZGVyZXIoKSBjb25z
dAogCiB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKIHsK
LSAgICBpZiAobV9waGFzZSA9PSBBdHRhY2hpbmdOb3REaXN0cmlidXRlZCAmJiBtX3Zpc3VhbFBh
cmVudFNoYWRvd1RyZWUpCi0gICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93VHJlZS0+aG9zdENo
aWxkcmVuQ2hhbmdlZCgpOworICAgIGlmIChtX3BoYXNlID09IEF0dGFjaGluZ05vdERpc3RyaWJ1
dGVkICYmIG1fdmlzdWFsUGFyZW50U2hhZG93KQorICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRv
dy0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogfQogCiBib29sIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjpzaG91bGRDcmVhdGVSZW5kZXJlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5oCmluZGV4IDFlZGU3MDhhYmY0OWI3MTM0ODUyNDViMTQwNDBkNWM0MGIz
MGY4N2YuLjFkM2RhZjNmYzU0MjY3ZDNiNDdjZGExYmI5MTcxZTJhYTIxYTM5YTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNzIFNoYWRvd1RyZWU7CitjbGFzcyBFbGVtZW50
U2hhZG93OwogCiBjbGFzcyBOb2RlUmVuZGVyaW5nQ29udGV4dCB7CiBwdWJsaWM6CkBAIC04Myw3
ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgQXR0YWNoaW5nUGhhc2UgbV9waGFzZTsKICAgICBOb2Rl
KiBtX25vZGU7CiAgICAgQ29udGFpbmVyTm9kZSogbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5k
U3R5bGU7Ci0gICAgU2hhZG93VHJlZSogbV92aXN1YWxQYXJlbnRTaGFkb3dUcmVlOworICAgIEVs
ZW1lbnRTaGFkb3cqIG1fdmlzdWFsUGFyZW50U2hhZG93OwogICAgIEluc2VydGlvblBvaW50KiBt
X2luc2VydGlvblBvaW50OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKICAgICBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQqIG1fcGFyZW50Rmxvd1JlbmRlcmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCmluZGV4IDhjMWQ4YjJkOGM2NDk3ZWUwZDRkMTkwYzNmN2E2NDI2YjY2NDc3
MzguLjc3MjYxM2Y3MTc4ZTU4YzVjZGQyNTA5NThkMTMzMmI4NmVlMTc0MDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKQEAgLTMyLDEyICszMiwxMiBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRh
LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5j
bHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTE4LDcgKzEx
OCw3IEBAIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQq
IGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNo
YWRvd1Jvb3QgPSBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChlbGVtZW50LT5kb2N1bWVudCgpKSk7
CiAKICAgICBlYyA9IDA7Ci0gICAgZWxlbWVudC0+ZW5zdXJlU2hhZG93VHJlZSgpLT5hZGRTaGFk
b3dSb290KGVsZW1lbnQsIHNoYWRvd1Jvb3QsIGVjKTsKKyAgICBlbGVtZW50LT5lbnN1cmVTaGFk
b3coKS0+YWRkU2hhZG93Um9vdChlbGVtZW50LCBzaGFkb3dSb290LCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKICAgICBBU1NFUlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5o
b3N0KCkpOwpAQCAtMTcxLDEwICsxNzEsMTAgQEAgYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVB
bGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgfQogfQogCi1TaGFkb3dUcmVlKiBTaGFk
b3dSb290Ojp0cmVlKCkgY29uc3QKK0VsZW1lbnRTaGFkb3cqIFNoYWRvd1Jvb3Q6Om93bmVyKCkg
Y29uc3QKIHsKICAgICBpZiAoaG9zdCgpKQotICAgICAgICByZXR1cm4gaG9zdCgpLT5zaGFkb3dU
cmVlKCk7CisgICAgICAgIHJldHVybiBob3N0KCktPnNoYWRvdygpOwogICAgIHJldHVybiAwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBlNWIyMjFiNzNhMzM3MWEwNTQ1ZjBjNDk1
OTcxNjY4ZGE4MjY5YWE4Li42OGJjNDdhZjZmYzIxNTg0ZmQ0YjgyZDA0YjllYjZlNTdhODBmYzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgRE9NU2Vs
ZWN0aW9uOwogY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3MgSFRNTENvbnRlbnRTZWxl
Y3RvcjsKIGNsYXNzIEluc2VydGlvblBvaW50OwotY2xhc3MgU2hhZG93VHJlZTsKK2NsYXNzIEVs
ZW1lbnRTaGFkb3c7CiAKIGNsYXNzIFNoYWRvd1Jvb3QgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVu
dCwgcHVibGljIFRyZWVTY29wZSwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jv
b3Q+IHsKICAgICBmcmllbmQgY2xhc3MgV1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dS
b290PjsKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JT
aGVldHMoYm9vbCk7CiAKICAgICBFbGVtZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4gc2hhZG93
SG9zdCgpOyB9Ci0gICAgU2hhZG93VHJlZSogdHJlZSgpIGNvbnN0OworICAgIEVsZW1lbnRTaGFk
b3cqIG93bmVyKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1RyZWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTU5ZDFl
ODM4NmJmYjMyYTQ5MTM3NDMxMzk0NjU5ZTVkZjIxY2VhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKLQotI2luY2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0
aG1zLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKLSNpbmNsdWRlICJUZXh0
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU2hhZG93VHJlZTo6U2hhZG93VHJlZSgpCi0g
ICAgOiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQotewotfQotCi1TaGFkb3dUcmVl
Ojp+U2hhZG93VHJlZSgpCi17Ci0gICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVt
b3ZlQWxsU2hhZG93Um9vdHMoKTsKLX0KLQotc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290
KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgaWYgKCFzaGFkb3dSb290KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgIGlmIChzaGFkb3dSb290LT5zaGFkb3dIb3N0KCkpIHsKLSAgICAgICAgZWMgPSBISUVSQVJD
SFlfUkVRVUVTVF9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAo
c2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAhPSBkb2N1bWVudCkgewotICAgICAgICBlYyA9IFdST05H
X0RPQ1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVy
biB0cnVlOwotfQotCi12b2lkIFNoYWRvd1RyZWU6OmFkZFNoYWRvd1Jvb3QoRWxlbWVudCogc2hh
ZG93SG9zdCwgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBBU1NFUlQoc2hhZG93SG9zdCk7Ci0gICAgQVNTRVJUKHNoYWRvd1Jvb3Qp
OwotCi0gICAgaWYgKCF2YWxpZGF0ZVNoYWRvd1Jvb3Qoc2hhZG93SG9zdC0+ZG9jdW1lbnQoKSwg
c2hhZG93Um9vdC5nZXQoKSwgZWMpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzaGFkb3dSb290
LT5zZXRTaGFkb3dIb3N0KHNoYWRvd0hvc3QpOwotICAgIENoaWxkTm9kZUluc2VydGlvbk5vdGlm
aWVyKHNoYWRvd0hvc3QpLm5vdGlmeShzaGFkb3dSb290LmdldCgpKTsKLQotICAgIGlmIChzaGFk
b3dIb3N0LT5hdHRhY2hlZCgpKSB7Ci0gICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsK
LSAgICAgICAgZGV0YWNoKCk7Ci0gICAgICAgIHNoYWRvd0hvc3QtPmRldGFjaENoaWxkcmVuKCk7
Ci0gICAgfQotCi0gICAgbV9zaGFkb3dSb290cy5wdXNoKHNoYWRvd1Jvb3QuZ2V0KCkpOwotICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUHVzaFNoYWRvd1Jvb3Qoc2hhZG93SG9zdCwg
c2hhZG93Um9vdC5nZXQoKSk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6cmVtb3ZlQWxsU2hhZG93
Um9vdHMoKQotewotICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICAvLyBEb250IHByb3RlY3QgdGhpcyByZWYgY291bnQuCi0gICAgRWxlbWVudCogc2hhZG93
SG9zdCA9IGhvc3QoKTsKLQotICAgIHdoaWxlIChSZWZQdHI8U2hhZG93Um9vdD4gb2xkUm9vdCA9
IG1fc2hhZG93Um9vdHMucmVtb3ZlSGVhZCgpKSB7Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFBvcFNoYWRvd1Jvb3Qoc2hhZG93SG9zdCwgb2xkUm9vdC5nZXQoKSk7Ci0g
ICAgICAgIHNoYWRvd0hvc3QtPmRvY3VtZW50KCktPnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVl
KG9sZFJvb3QuZ2V0KCkpOwotCi0gICAgICAgIGlmIChvbGRSb290LT5hdHRhY2hlZCgpKQotICAg
ICAgICAgICAgb2xkUm9vdC0+ZGV0YWNoKCk7Ci0KLSAgICAgICAgb2xkUm9vdC0+c2V0U2hhZG93
SG9zdCgwKTsKLSAgICAgICAgb2xkUm9vdC0+c2V0UHJldigwKTsKLSAgICAgICAgb2xkUm9vdC0+
c2V0TmV4dCgwKTsKLSAgICAgICAgc2hhZG93SG9zdC0+ZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRl
ZChvbGRSb290LmdldCgpKTsKLSAgICAgICAgQ2hpbGROb2RlUmVtb3ZhbE5vdGlmaWVyKHNoYWRv
d0hvc3QpLm5vdGlmeShvbGRSb290LmdldCgpKTsKLSAgICB9Ci0KLSAgICBpZiAoc2hhZG93SG9z
dC0+YXR0YWNoZWQoKSkKLSAgICAgICAgc2hhZG93SG9zdC0+YXR0YWNoQ2hpbGRyZW5MYXppbHko
KTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjp3aWxsUmVtb3ZlKCkKLXsKLSAgICBTaGFkb3dSb290
VmVjdG9yIHJvb3RzKHRoaXMpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcm9vdHMuc2l6
ZSgpOyArK2kpCi0gICAgICAgIHJvb3RzW2ldLT53aWxsUmVtb3ZlKCk7Ci19Ci0KLXZvaWQgU2hh
ZG93VHJlZTo6c2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpCi17Ci0gICAgZm9y
IChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcm9vdC0+c2V0UGFyZW50VHJlZVNjb3Bl
KHNjb3BlKTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjphdHRhY2goKQotewotICAgIC8vIENoaWxk
cmVuIG9mIG1fc2VsZWN0b3IgaXMgcG9wdWxhdGVkIGxhemlseSBpbgotICAgIC8vIGVuc3VyZVNl
bGVjdG9yKCksIGFuZCBoZXJlIHdlIGp1c3QgZW5zdXJlIHRoYXQgaXQgaXMgaW4gY2xlYW4gc3Rh
dGUuCi0gICAgQVNTRVJUKCFzZWxlY3RvcigpLmhhc1BvcHVsYXRlZCgpKTsKLQotICAgIHNlbGVj
dG9yKCkud2lsbFNlbGVjdCgpOwotICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0
U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKLSAg
ICAgICAgaWYgKCFyb290LT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgcm9vdC0+YXR0YWNoKCk7
Ci0gICAgfQotICAgIHNlbGVjdG9yKCkuZGlkU2VsZWN0KCk7Ci19Ci0KLXZvaWQgU2hhZG93VHJl
ZTo6YXR0YWNoSG9zdChFbGVtZW50KiBob3N0KQotewotICAgIGF0dGFjaCgpOwotICAgIGhvc3Qt
PmF0dGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKLSAgICBob3N0LT5hdHRhY2hBc05vZGUoKTsKLX0K
LQotdm9pZCBTaGFkb3dUcmVlOjpkZXRhY2goKQotewotICAgIGZvciAoU2hhZG93Um9vdCogcm9v
dCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dS
b290KCkpIHsKLSAgICAgICAgaWYgKHJvb3QtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICByb290
LT5kZXRhY2goKTsKLSAgICB9Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6ZGV0YWNoSG9zdChFbGVt
ZW50KiBob3N0KQotewotICAgIGhvc3QtPmRldGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKLSAgICBk
ZXRhY2goKTsKLSAgICBob3N0LT5kZXRhY2hBc05vZGUoKTsKLX0KLQotSW5zZXJ0aW9uUG9pbnQq
IFNoYWRvd1RyZWU6Omluc2VydGlvblBvaW50Rm9yKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+cGFyZW50Tm9kZSgpKTsKLQotICAgIGlmIChub2Rl
LT5wYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGlmIChJbnNlcnRpb25Q
b2ludCogaW5zZXJ0aW9uUG9pbnQgPSB0b1NoYWRvd1Jvb3Qobm9kZS0+cGFyZW50Tm9kZSgpKS0+
YXNzaWduZWRUbygpKQotICAgICAgICAgICAgcmV0dXJuIGluc2VydGlvblBvaW50OwotCi0gICAg
ICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBmb3VuZCA9
IHNlbGVjdG9yKCkuZmluZEZvcihub2RlKTsKLSAgICBpZiAoIWZvdW5kKQotICAgICAgICByZXR1
cm4gMDsKLSAgICByZXR1cm4gZm91bmQtPmluc2VydGlvblBvaW50KCk7Ci19Ci0KLUhUTUxDb250
ZW50U2VsZWN0aW9uKiBTaGFkb3dUcmVlOjpzZWxlY3Rpb25Gb3IoY29uc3QgTm9kZSogbm9kZSkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9zZWxlY3Rvci5maW5kRm9yKG5vZGUpOwotfQotCi12b2lk
IFNoYWRvd1RyZWU6OnJlYXR0YWNoKCkKLXsKLSAgICBkZXRhY2goKTsKLSAgICBhdHRhY2goKTsK
LX0KLQotYm9vbCBTaGFkb3dUcmVlOjpjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKQotewotICAgIEFT
U0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7Ci0gICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKLSAgICAgICAgaWYgKHJvb3QtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpKQotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgU2hhZG93VHJl
ZTo6bmVlZHNTdHlsZVJlY2FsYygpCi17Ci0gICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgp
KTsKLSAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9v
dDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQotICAgICAgICBpZiAocm9vdC0+bmVl
ZHNTdHlsZVJlY2FsYygpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6cmVjYWxjU2hhZG93VHJlZVN0eWxlKE5vZGU6
OlN0eWxlQ2hhbmdlIGNoYW5nZSkKLXsKLSAgICBTaGFkb3dSb290KiB5b3VuZ2VzdCA9IHlvdW5n
ZXN0U2hhZG93Um9vdCgpOwotICAgIGlmICgheW91bmdlc3QpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkpCi0gICAgICAgIHJl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFN0eWxl
UmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIgPSB5b3VuZ2VzdC0+ZG9jdW1lbnQoKS0+c3R5bGVSZXNv
bHZlcigpOwotCi0gICAgICAgIHN0eWxlUmVzb2x2ZXItPnB1c2hQYXJlbnRTaGFkb3dSb290KHlv
dW5nZXN0KTsKLSAgICAgICAgZm9yIChOb2RlKiBuID0geW91bmdlc3QtPmZpcnN0Q2hpbGQoKTsg
bjsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChuLT5pc0VsZW1lbnRO
b2RlKCkpCi0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pLT5yZWNhbGNT
dHlsZShjaGFuZ2UpOwotICAgICAgICAgICAgZWxzZSBpZiAobi0+aXNUZXh0Tm9kZSgpKQotICAg
ICAgICAgICAgICAgIHRvVGV4dChuKS0+cmVjYWxjVGV4dFN0eWxlKGNoYW5nZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgc3R5bGVSZXNvbHZlci0+cG9wUGFyZW50U2hhZG93Um9vdCh5b3VuZ2VzdCk7
Ci0gICAgfQotCi0gICAgY2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7
Ci0gICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7
IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkgewotICAgICAgICByb290LT5jbGVhck5l
ZWRzU3R5bGVSZWNhbGMoKTsKLSAgICAgICAgcm9vdC0+Y2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKTsKLSAgICB9Ci19Ci0KLWJvb2wgU2hhZG93VHJlZTo6bmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgcmV0dXJuIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQg
fHwgKHlvdW5nZXN0U2hhZG93Um9vdCgpICYmIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNJbnNl
cnRpb25Qb2ludCgpKTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjpob3N0Q2hpbGRyZW5DaGFuZ2Vk
KCkKLXsKLSAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOwotCi0gICAgaWYgKCF5b3Vu
Z2VzdFNoYWRvd1Jvb3QoKS0+aGFzSW5zZXJ0aW9uUG9pbnQoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgLy8gVGhpcyByZXN1bHRzIGluIGZvcmNlZCBkZXRhY2hpbmcvYXR0YWNoaW5nIG9mIHRo
ZSBzaGFkb3cgcmVuZGVyIHRyZWUuIFNlZSBTaGFkb3dSb290OjpyZWNhbGNTdHlsZSgpLgotICAg
IHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKLX0KLQotdm9pZCBTaGFk
b3dUcmVlOjpzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBt
X25lZWRzUmVjYWxjdWxhdGVDb250ZW50ID0gdHJ1ZTsKLQotICAgIGhvc3QoKS0+c2V0TmVlZHNT
dHlsZVJlY2FsYygpOwotfQotCi12b2lkIFNoYWRvd1RyZWU6OnJlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCkKLXsKLSAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOwotCi0gICAg
RWxlbWVudCogaG9zdE5vZGUgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aG9zdCgpOwotICAgIGhv
c3ROb2RlLT5kZXRhY2hDaGlsZHJlbklmTmVlZGVkKCk7Ci0gICAgcmVhdHRhY2goKTsKLSAgICBo
b3N0Tm9kZS0+YXR0YWNoQ2hpbGRyZW5JZk5lZWRlZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dUcmVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiYTA4
NmQ4YmNiMThhNTM5MGU2MGEyMjMzMjhhNWMxNjc1NzM3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUu
aAorKysgL2Rldi9udWxsCkBAIC0xLDE0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTaGFkb3dUcmVlX2gK
LSNkZWZpbmUgU2hhZG93VHJlZV9oCi0KLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5j
bHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNp
bmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBOb2RlOwotY2xhc3MgRWxlbWVudDsKLWNsYXNzIEluc2VydGlvblBvaW50OwotY2xhc3MgVHJl
ZVNjb3BlOwotY2xhc3MgSFRNTENvbnRlbnRTZWxlY3Rpb247Ci0KLWNsYXNzIFNoYWRvd1RyZWUg
ewotcHVibGljOgotICAgIFNoYWRvd1RyZWUoKTsKLSAgICB+U2hhZG93VHJlZSgpOwotCi0gICAg
RWxlbWVudCogaG9zdCgpIGNvbnN0OwotCi0gICAgYm9vbCBoYXNTaGFkb3dSb290KCkgY29uc3Q7
Ci0gICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCkgY29uc3Q7Ci0gICAgU2hhZG93
Um9vdCogb2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0OwotCi0gICAgdm9pZCBhZGRTaGFkb3dSb290
KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7Ci0KLSAgICB2b2lkIHdpbGxS
ZW1vdmUoKTsKLQotICAgIHZvaWQgc2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSopOwotCi0g
ICAgdm9pZCBhdHRhY2goKTsKLSAgICB2b2lkIGRldGFjaCgpOwotICAgIHZvaWQgcmVhdHRhY2go
KTsKLSAgICB2b2lkIGF0dGFjaEhvc3QoRWxlbWVudCopOwotICAgIHZvaWQgZGV0YWNoSG9zdChF
bGVtZW50Kik7Ci0KLSAgICBib29sIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGJvb2wg
bmVlZHNTdHlsZVJlY2FsYygpOwotICAgIHZvaWQgcmVjYWxjU2hhZG93VHJlZVN0eWxlKE5vZGU6
OlN0eWxlQ2hhbmdlKTsKLSAgICB2b2lkIHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRT
aGFkb3coKTsKLSAgICB2b2lkIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRv
dygpOwotICAgIGJvb2wgbmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAg
IHZvaWQgcmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKLSAgICB2b2lkIGhvc3RDaGls
ZHJlbkNoYW5nZWQoKTsKLQotICAgIEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihj
b25zdCBOb2RlKikgY29uc3Q7Ci0gICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbkZv
cihjb25zdCBOb2RlKikgY29uc3Q7Ci0KLSAgICBIVE1MQ29udGVudFNlbGVjdG9yJiBzZWxlY3Rv
cigpOwotICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0b3ImIHNlbGVjdG9yKCkgY29uc3Q7Ci0K
LXByaXZhdGU6Ci0KLSAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9v
dHM7Ci0gICAgSFRNTENvbnRlbnRTZWxlY3RvciBtX3NlbGVjdG9yOwotICAgIGJvb2wgbV9uZWVk
c1JlY2FsY3VsYXRlQ29udGVudCA6IDE7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2hhZG93
VHJlZSk7Ci19OwotCi1pbmxpbmUgYm9vbCBTaGFkb3dUcmVlOjpoYXNTaGFkb3dSb290KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gIW1fc2hhZG93Um9vdHMuaXNFbXB0eSgpOwotfQotCi1pbmxpbmUg
U2hhZG93Um9vdCogU2hhZG93VHJlZTo6eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9zaGFkb3dSb290cy5oZWFkKCk7Ci19Ci0KLWlubGluZSBTaGFkb3dSb290KiBT
aGFkb3dUcmVlOjpvbGRlc3RTaGFkb3dSb290KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zaGFk
b3dSb290cy50YWlsKCk7Ci19Ci0KLWlubGluZSBIVE1MQ29udGVudFNlbGVjdG9yJiBTaGFkb3dU
cmVlOjpzZWxlY3RvcigpCi17Ci0gICAgcmV0dXJuIG1fc2VsZWN0b3I7Ci19Ci0KLWlubGluZSBj
b25zdCBIVE1MQ29udGVudFNlbGVjdG9yJiBTaGFkb3dUcmVlOjpzZWxlY3RvcigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fc2VsZWN0b3I7Ci19Ci0KLWlubGluZSB2b2lkIFNoYWRvd1RyZWU6OmNs
ZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgbV9uZWVkc1Jl
Y2FsY3VsYXRlQ29udGVudCA9IGZhbHNlOwotfQotCi1pbmxpbmUgRWxlbWVudCogU2hhZG93VHJl
ZTo6aG9zdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgcmV0
dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7Ci19Ci0KLWNsYXNzIFNoYWRvd1Jvb3RW
ZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTaGFkb3dSb290PiA+IHsKLXB1YmxpYzoKLSAg
ICBleHBsaWNpdCBTaGFkb3dSb290VmVjdG9yKFNoYWRvd1RyZWUqIHRyZWUpCi0gICAgewotICAg
ICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0cmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsg
cm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgYXBwZW5k
KHJvb3QpOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCmluZGV4IDgyZWE0Nzc0NzgzYjViMTA3ZGJlNzE3
MjZhYjJlYWY4NjcxYmY1OTEuLmVkMzc0NTZhMGVhZjRiMTE5YWZlMDY3ODcwZDkyYmZjZmQyMWFl
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKQEAgLTI2LDE1ICsy
NiwxNSBAQAogI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKIAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0
YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBTaGFkb3dUcmVlKiBzaGFkb3dU
cmVlRm9yKE5vZGUqIG5vZGUpCitzdGF0aWMgaW5saW5lIEVsZW1lbnRTaGFkb3cqIHNoYWRvd0Zv
cihOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0Vs
ZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKSA6IDA7CisgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCkgOiAwOwogfQogCiB2b2lkIFRyZWVT
Y29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdApAQCAtNjMs
MTAgKzYzLDEwIEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKE5v
ZGUqIHJvb3QpIGNvbnN0CiAgICAgICAgIGlmICh3aWxsTW92ZVRvTmV3RG9jdW1lbnQpCiAgICAg
ICAgICAgICBtb3ZlTm9kZVRvTmV3RG9jdW1lbnQobm9kZSwgb2xkRG9jdW1lbnQsIG5ld0RvY3Vt
ZW50KTsKIAotICAgICAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHNoYWRvd1RyZWVGb3Iobm9k
ZSkpIHsKLSAgICAgICAgICAgIHRyZWUtPnNldFBhcmVudFRyZWVTY29wZShtX25ld1Njb3BlKTsK
KyAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd0Zvcihub2RlKSkgewor
ICAgICAgICAgICAgc2hhZG93LT5zZXRQYXJlbnRUcmVlU2NvcGUobV9uZXdTY29wZSk7CiAgICAg
ICAgICAgICBpZiAod2lsbE1vdmVUb05ld0RvY3VtZW50KQotICAgICAgICAgICAgICAgIG1vdmVT
aGFkb3dUcmVlVG9OZXdEb2N1bWVudCh0cmVlLCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwor
ICAgICAgICAgICAgICAgIG1vdmVTaGFkb3dUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1l
bnQsIG5ld0RvY3VtZW50KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTc1LDE0ICs3NSwxNCBA
QCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdEb2N1bWVudChOb2RlKiByb290
LCBEb2N1bWVudCogb2xkRG9jdW1lbnQsCiB7CiAgICAgZm9yIChOb2RlKiBub2RlID0gcm9vdDsg
bm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUocm9vdCkpIHsKICAgICAgICAgbW92
ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUsIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7Ci0gICAg
ICAgIGlmIChTaGFkb3dUcmVlKiB0cmVlID0gc2hhZG93VHJlZUZvcihub2RlKSkKLSAgICAgICAg
ICAgIG1vdmVTaGFkb3dUcmVlVG9OZXdEb2N1bWVudCh0cmVlLCBvbGREb2N1bWVudCwgbmV3RG9j
dW1lbnQpOworICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gc2hhZG93Rm9yKG5v
ZGUpKQorICAgICAgICAgICAgbW92ZVNoYWRvd1RvTmV3RG9jdW1lbnQoc2hhZG93LCBvbGREb2N1
bWVudCwgbmV3RG9jdW1lbnQpOwogICAgIH0KIH0KIAotaW5saW5lIHZvaWQgVHJlZVNjb3BlQWRv
cHRlcjo6bW92ZVNoYWRvd1RyZWVUb05ld0RvY3VtZW50KFNoYWRvd1RyZWUqIHRyZWUsIERvY3Vt
ZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdAoraW5saW5lIHZv
aWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVNoYWRvd1RvTmV3RG9jdW1lbnQoRWxlbWVudFNoYWRv
dyogc2hhZG93LCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkg
Y29uc3QKIHsKLSAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0cmVlLT55b3VuZ2VzdFNoYWRv
d1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgIGZvciAo
U2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJv
b3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3Vt
ZW50KHJvb3QsIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5oCmluZGV4IDk0MjU1ZjQ3OWRhMzJiNTFjZGQ0NzhkMGQ5MTg0NDhh
YzE0ODJhODMuLmMzMmExMTJhODZjYjJkZDJlZDc1MWM4ZWRhOGZlMTNlNDExZjczZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgbW92ZVRyZWVUb05ld1Njb3BlKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIG1v
dmVUcmVlVG9OZXdEb2N1bWVudChOb2RlKiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVu
dCogbmV3RG9jdW1lbnQpIGNvbnN0OwogICAgIHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5v
ZGUqLCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7
Ci0gICAgdm9pZCBtb3ZlU2hhZG93VHJlZVRvTmV3RG9jdW1lbnQoU2hhZG93VHJlZSosIERvY3Vt
ZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdDsKKyAgICB2b2lk
IG1vdmVTaGFkb3dUb05ld0RvY3VtZW50KEVsZW1lbnRTaGFkb3cqLCBEb2N1bWVudCogb2xkRG9j
dW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7CiAKICAgICBOb2RlKiBtX3RvQWRv
cHQ7CiAgICAgVHJlZVNjb3BlKiBtX25ld1Njb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmNwcAppbmRleCAwODUzOGU1NzU3MDNhZTBmYmQ5MjYyNTQzOTY2ZmU2NzJkNTczMzRj
Li43MDI5OWUxMjFkMDcxMmU2MTFkYTdkOWJhNjE4ZTlkOTZjMDFiZGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMzQsMTIgKzM0LDEyIEBACiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvbG9y
LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKIAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMTcsNyArMTE3LDcgQEAgdm9p
ZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgd3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKGNvbG9yU3dhdGNoLnJl
bGVhc2UoKSwgZWMpOwogICAgIEFTU0VSVCghZWMpOwotICAgIGVsZW1lbnQoKS0+c2hhZG93VHJl
ZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVh
c2UoKSwgZWMpOworICAgIGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+
YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBlYyk7CiAgICAgQVNTRVJUKCFl
Yyk7CiAgICAgCiAgICAgdXBkYXRlQ29sb3JTd2F0Y2goKTsKQEAgLTE4Niw3ICsxODYsNyBAQCB2
b2lkIENvbG9ySW5wdXRUeXBlOjp1cGRhdGVDb2xvclN3YXRjaCgpCiAKIEhUTUxFbGVtZW50KiBD
b2xvcklucHV0VHlwZTo6c2hhZG93Q29sb3JTd2F0Y2goKSBjb25zdAogewotICAgIFNoYWRvd1Jv
b3QqIHNoYWRvdyA9IGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7
CisgICAgU2hhZG93Um9vdCogc2hhZG93ID0gZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hh
ZG93Um9vdCgpOwogICAgIHJldHVybiBzaGFkb3cgPyB0b0hUTUxFbGVtZW50KHNoYWRvdy0+Zmly
c3RDaGlsZCgpLT5maXJzdENoaWxkKCkpIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggYmM2OGUzNjM3ZWFhMTY4MGVjOWEyZGQ5MjQ3M2YxZGRkZDlhMDJl
NS4uNDRiZDEzZmYyYmEzNjFjZTA4MWU3NDk2OGI1YTIzMDI0NTNmZjhmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiRmls
ZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRWxlbWVudFNo
YWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUg
IkZpbGVMaXN0LmgiCkBAIC0zNiw3ICszNyw2IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI5NCwxMyArMjk0LDEzIEBAIHZvaWQgRmlsZUlucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFz
U2hhZG93Um9vdCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBlbGVtZW50KCkt
PnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCkt
Pm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVt
ZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgp
LT5kb2N1bWVudCgpKSwgZWMpOworICAgIGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2Fk
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAog
dm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQogewogICAgIEFT
U0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgVXBsb2FkQnV0dG9uRWxlbWVu
dCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+
c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CisgICAgVXBs
b2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVu
dCo+KGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgp
KTsKICAgICBpZiAoYnV0dG9uKQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS0+
bXVsdGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA6IGZpbGVC
dXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRh
aWxzRWxlbWVudC5jcHAKaW5kZXggMzMyZjFhNzQwOWY4YjEzZDcxYTU0NjY4MDFmOGMzNDg4ODAz
MTNiOS4uZTRlNGE5MjQ4MTM0NDY3ZGZmZDk4ZmQwZDViODVlNDQwODNkMGJkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMjMsNiArMjMsNyBAQAog
CiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5j
bHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50LmgiCkBAIC0zMSw3ICszMiw2IEBACiAjaW5jbHVkZSAi
Tm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjQsNyArMTI0LDcgQEAgRWxlbWVudCog
SFRNTERldGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkoKSBjb25zdAogICAgICAgICAgICAg
cmV0dXJuIHRvRWxlbWVudChjaGlsZCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PERldGFpbHNTdW1tYXJ5RWxlbWVudCo+KHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgp
LT5maXJzdENoaWxkKCkpLT5mYWxsYmFja1N1bW1hcnkoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RGV0YWlsc1N1bW1hcnlFbGVtZW50Kj4oc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+
Zmlyc3RDaGlsZCgpKS0+ZmFsbGJhY2tTdW1tYXJ5KCk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IDMwOTRjOTM1MjNlNTYzZGQxN2I5MjE5NDQ1
ZWM3MjllZGY4ZDY0MTMuLmIxMDk5ZjE5N2UzMWRiZGJiOGQyZjE0MTk1ZWIxMjk2ZGFmNDNiNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC0yNywxMyAr
MjcsMTMgQEAKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTEzMiw4
ICsxMzIsOCBAQCB2b2lkIEhUTUxLZXlnZW5FbGVtZW50OjpyZXNldCgpCiBIVE1MU2VsZWN0RWxl
bWVudCogSFRNTEtleWdlbkVsZW1lbnQ6OnNoYWRvd1NlbGVjdCgpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93VHJl
ZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7Ci0gICAgcmV0dXJuIHNoYWRvdyA/IHRvSFRNTFNlbGVj
dEVsZW1lbnQoc2hhZG93LT5maXJzdENoaWxkKCkpIDogMDsKKyAgICBTaGFkb3dSb290KiByb290
ID0gdGhpcy0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gcm9vdCA/
IHRvSFRNTFNlbGVjdEVsZW1lbnQocm9vdC0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBl
YjZkZWI4ODI4N2ZlYWJkODBlZjI1YjE3ZTYxZTA3NjNjMmEyNzUxLi4zN2NlN2Y2Zjg3MDc2YmUz
MDY4ZjFjMDA3NDIzYjBiNDIxZTZjNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTc1
LDcgKzc2LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIK
ICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVVVJRC5oIgogI2luY2x1ZGUgPGxp
bWl0cz4KQEAgLTQwNjYsNyArNDA2Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJpdmF0
ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2UoKQogCiBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYUNvbnRyb2xzKCkKIHsKLSAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRv
d1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOworICAgIHJldHVybiB0
b01lZGlhQ29udHJvbHMoc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgp
KTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKCkKQEAgLTQw
NzQsNyArNDA3NCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scygp
CiAgICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IE5vZGUqIG5vZGUgPSBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGls
ZCgpOworICAgIE5vZGUqIG5vZGUgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJz
dENoaWxkKCk7CiAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNNZWRpYUNvbnRyb2xzKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCA1NTU3
YzQ1NTZhZDJlMzFlMTMyNTIwMGZkOWFkMDY2ZDI5ODQxOTg3Li4xMzMxOTYzZjRlMTRiNTcyMDM4
YTBiMWZkNmJkYTE0NzIwZmE1OGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKICNp
bmNsdWRlICJEZXRhaWxzTWFya2VyQ29udHJvbC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cu
aCIKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGV0YWls
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTMzLDcgKzM0LDYgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgog
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAKaW5kZXggMzQ3ZWNjZjQ2ZTIyMDUxNjI2NGMyYzlmMDc2NjMwM2Y1YjQzMTY5NS4uNjM2
NjNhOTdmY2M3YjBjYmZmZWY5MWY1OWI0N2Y1ZTRlMTRmYjI0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgpAQCAtMzgsNyArMzksNiBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5j
bHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9y
LmgiCkBAIC0yOTQsNyArMjk0LDcgQEAgU3RyaW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNhbml0
aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlLAogCiBIVE1MRWxl
bWVudCogSFRNTFRleHRBcmVhRWxlbWVudDo6aW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0CiB7Ci0g
ICAgTm9kZSogbm9kZSA9IHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENo
aWxkKCk7CisgICAgTm9kZSogbm9kZSA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKTsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShkaXZUYWcp
KTsKICAgICByZXR1cm4gdG9IVE1MRWxlbWVudChub2RlKTsKIH0KQEAgLTQ3Miw3ICs0NzIsNyBA
QCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAg
U3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAo
cGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikg
ewotICAgICAgICAgICAgc2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPnJlbW92ZUNo
aWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVjKTsKKyAgICAgICAgICAgIHNoYWRvdygpLT5vbGRl
c3RTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVjKTsKICAg
ICAgICAgICAgIEFTU0VSVCghZWMpOwogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigp
OwogICAgICAgICB9CkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewogICAg
ICAgICBtX3BsYWNlaG9sZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
ICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQt
cGxhY2Vob2xkZXIiKTsKLSAgICAgICAgc2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCkt
Pmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jv
b3QoKS0+Zmlyc3RDaGlsZCgpLT5uZXh0U2libGluZygpLCBlYyk7CisgICAgICAgIHNoYWRvdygp
LT5vbGRlc3RTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBzaGFkb3co
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsK
ICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVy
VGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRl
eCA5YTNkYTRkZWVhYzhmNzZkMzJjZjVjYmY1MDBjZjRmYmY0OGI1OWNlLi40NjAxNzBmNDBiZmQ2
YWNmMGQwODQ3M2QzNDA3MDhkNzgwMWUzMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRGF0ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUg
IkRhdGVUaW1lSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
IgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFbWFpbElucHV0VHlwZS5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlSW5wdXRUeXBlLmgi
CkBAIC01OCw3ICs1OSw2IEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgog
I2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNp
bmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU3VibWl0SW5wdXRUeXBlLmgiCiAjaW5j
bHVkZSAiVGVsZXBob25lSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dElucHV0VHlwZS5oIgpA
QCAtMzg2LDcgKzM4Niw3IEBAIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgp
CiAgICAgaWYgKCFlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RT
aGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQocm9vdCk7CiAgICAgcm9vdC0+cmVtb3Zl
QWxsQ2hpbGRyZW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRl
eCA0ZmFmNzg2ZTY1NWJjMzc4OTczMmY4Yzc4ZmQ1NzAwOGEyZjM3YTQ1Li5hMjZlYmViYTg3YWQ2
M2UyZDBkY2NjNTRkNWJjNzM2MGZmNTk0YTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlJhbmdlSW5wdXRUeXBlLmgi
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5o
IgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtNDIsNyArNDMsNiBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU2xp
ZGVyVGh1bWJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8bGlt
aXRzPgpAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNl
RG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0g
TGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChl
bGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgaWYgKHRhcmdldE5vZGUgIT0gZWxlbWVu
dCgpICYmICF0YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1RyZWUo
KS0+b2xkZXN0U2hhZG93Um9vdCgpKSkKKyAgICBpZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkg
JiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVz
dFNoYWRvd1Jvb3QoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQq
IHRodW1iID0gc2xpZGVyVGh1bWJFbGVtZW50T2YoZWxlbWVudCgpKTsKICAgICBpZiAodGFyZ2V0
Tm9kZSA9PSB0aHVtYikKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9
IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udGFpbmVy
LT5hcHBlbmRDaGlsZCh0cmFjay5yZWxlYXNlKCksIGVjKTsKICAgICBjb250YWluZXItPmFwcGVu
ZENoaWxkKFRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCksIGVjKTsKLSAgICBl
bGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChj
b250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0
U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7CiB9CiAK
IFJlbmRlck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCmluZGV4IGY0ZmMxNGU4MjcyNzcyMzI2ZDBlMzQ4YWJhZWM2YWZhOTA1
NTNkYmUuLmM0NzVjODU1MWZlNTI4ZmM4Y2I1ZGYzNjZmNmExZDhjNWY1YjI2MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkNocm9tZS5o
IgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIK
ICNpbmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTQ1LDcgKzQ2LDYgQEAKICNpbmNsdWRlICJSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0yMzYsMTEgKzIzNiwxMSBAQCB2b2lkIFRleHRGaWVsZElu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQo
KS0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1faW5uZXJU
ZXh0LCBlYyk7CisgICAgICAgIGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+
b2xkZXN0U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50
KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93
UHNldWRvSWQoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAg
c2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIGVjKTsKQEAgLTQwNSw3ICs0MDUs
NyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAg
ICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhv
bGRlci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKLSAg
ICAgICAgZWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+aW5zZXJ0
QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250YWluZXItPm5leHRTaWJs
aW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAgICAg
ZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9w
bGFjZWhvbGRlciwgbV9jb250YWluZXIgPyBtX2NvbnRhaW5lci0+bmV4dFNpYmxpbmcoKSA6IGlu
bmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNpYmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVj
KTsKICAgICB9CiAgICAgbV9wbGFjZWhvbGRlci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4
dCwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBi
ZmRhOTg2MGI5ODU3NTMzZGFiMzNiZDEzMzY3ODllYjk0MDMyYjMxLi5hMTQ0YmFiNTkxOTc1YjIz
MWJiZjdmNjBlNTYyZWJkY2NmNmRmMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJFbGVtZW50
U2hhZG93LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVk
ZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgpA
QCAtNDMsNyArNDQsNiBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUu
aCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBWYWxpZGF0aW9u
TWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAg
ICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKICAgICAgICAgSFRNTEVsZW1lbnQqIGhvc3QgPSB0b0hU
TUxFbGVtZW50KG1fZWxlbWVudCk7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAg
IGhvc3QtPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1
YmJsZS5nZXQoKSwgZWMpOworICAgICAgICBob3N0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwogICAgICAgICBtX2J1YmJsZSA9
IDA7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggMjQ0M2QxNTVkZTkx
MmIzMzFhZDQwYTFmZGI3NGZmMmU2ZmMyZTdmOC4uNTQzNjc5NTA2MWY5MzlhMDQ4YjJmOTg2NTNj
ODM4NmE5YzNlZmE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuY3BwCkBAIC0yOCwxMiArMjgsMTIgQEAKICNpbmNsdWRlICJIVE1MQ29u
dGVudEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisjaW5j
bHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
LSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgSFRNTENvbnRlbnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBzZWxlY3RBdHRyKSB7CiAgICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0g
dG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkKLSAgICAgICAgICAgIHJvb3QtPnRy
ZWUoKS0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgICAgICAg
ICAgcm9vdC0+b3duZXIoKS0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygp
OwogICAgIH0gZWxzZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0
cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Q
b2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAK
aW5kZXggNzBhZjg1ZTA5ZTNhMzZlZTJhOWNlYTkyNDA0MjgwZjI3NjFmNzAzMC4uMzdlNTEwMWMz
N2IyMDk3ZTQ0MWY4YTQ0MTI4ODJlZWYzZjUyOTUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCiAKKyNpbmNsdWRlICJFbGVt
ZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1Ry
ZWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgSW5z
ZXJ0aW9uUG9pbnQ6OmF0dGFjaCgpCiAgICAgaWYgKGlzU2hhZG93Qm91bmRhcnkoKSkgewogICAg
ICAgICBTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHRyZWVTY29wZSgpLT5yb290Tm9k
ZSgpKTsKICAgICAgICAgaWYgKGRvZXNTZWxlY3RGcm9tSG9zdENoaWxkcmVuKCkpIHsKLSAgICAg
ICAgICAgIGRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4ocm9vdC0+dHJlZSgpKTsKKyAgICAgICAgICAg
IGRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4ocm9vdC0+b3duZXIoKSk7CiAgICAgICAgICAgICBhdHRh
Y2hEaXN0cmlidXRlZE5vZGUoKTsKICAgICAgICAgfSBlbHNlIGlmICghcm9vdC0+b2xkZXJTaGFk
b3dSb290KCktPmFzc2lnbmVkVG8oKSkgewogICAgICAgICAgICAgQVNTRVJUKCFyb290LT5vbGRl
clNoYWRvd1Jvb3QoKS0+YXR0YWNoZWQoKSk7CkBAIC02NywxNiArNjcsMTYgQEAgdm9pZCBJbnNl
cnRpb25Qb2ludDo6ZGV0YWNoKCkKIHsKICAgICBTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dS
b290KHNoYWRvd1RyZWVSb290Tm9kZSgpKTsKICAgICBpZiAocm9vdCAmJiBpc0FjdGl2ZSgpKSB7
Ci0gICAgICAgIFNoYWRvd1RyZWUqIHRyZWUgPSByb290LT50cmVlKCk7CisgICAgICAgIEVsZW1l
bnRTaGFkb3cqIHNoYWRvdyA9IHJvb3QtPm93bmVyKCk7CiAKICAgICAgICAgaWYgKGRvZXNTZWxl
Y3RGcm9tSG9zdENoaWxkcmVuKCkpCi0gICAgICAgICAgICBjbGVhckRpc3RyaWJ1dGlvbih0cmVl
KTsKKyAgICAgICAgICAgIGNsZWFyRGlzdHJpYnV0aW9uKHNoYWRvdyk7CiAgICAgICAgIGVsc2Ug
aWYgKFNoYWRvd1Jvb3QqIGFzc2lnbmVkU2hhZG93Um9vdCA9IGFzc2lnbmVkRnJvbSgpKQogICAg
ICAgICAgICAgY2xlYXJBc3NpZ25tZW50KGFzc2lnbmVkU2hhZG93Um9vdCk7CiAKICAgICAgICAg
Ly8gV2hlbiBzaGFkb3cgZWxlbWVudCBpcyBkZXRhY2hlZCwgc2hhZG93IHRyZWUgc2hvdWxkIGJl
IHJlY3JlYXRlZCB0byByZS1jYWxjdWxhdGUgc2VsZWN0b3IgZm9yCiAgICAgICAgIC8vIG90aGVy
IGluc2VydGlvbiBwb2ludHMuCi0gICAgICAgIHRyZWUtPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3coKTsKKyAgICAgICAgc2hhZG93LT5zZXROZWVkc1JlYXR0YWNoSG9zdENo
aWxkcmVuQW5kU2hhZG93KCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fc2VsZWN0aW9ucy5pc0Vt
cHR5KCkpOwpAQCAtMTE3LDIzICsxMTcsMjMgQEAgYm9vbCBJbnNlcnRpb25Qb2ludDo6cmVuZGVy
ZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKICAgICByZXR1
cm4gIWlzU2hhZG93Qm91bmRhcnkoKSAmJiBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChj
b250ZXh0KTsKIH0KIAotaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmRpc3RyaWJ1dGVIb3N0
Q2hpbGRyZW4oU2hhZG93VHJlZSogdHJlZSkKK2lubGluZSB2b2lkIEluc2VydGlvblBvaW50Ojpk
aXN0cmlidXRlSG9zdENoaWxkcmVuKEVsZW1lbnRTaGFkb3cqIHNoYWRvdykKIHsKLSAgICBpZiAo
IXRyZWUtPnNlbGVjdG9yKCkuaXNTZWxlY3RpbmcoKSkgeworICAgIGlmICghc2hhZG93LT5zZWxl
Y3RvcigpLmlzU2VsZWN0aW5nKCkpIHsKICAgICAgICAgLy8gSWYgSFRNTENvbnRlbnRTZWxlY3Rv
ciBpcyBub3QgaW50IHNlbGVjdGluZyBwaGFzZSwgaXQgbWVhbnMgSW5zZXJ0aW9uUG9pbnQgaXMg
YXR0YWNoZWQgZnJvbQotICAgICAgICAvLyBub24tU2hhZG93VHJlZSBub2RlLiBUbyBydW4gZGlz
dHJpYnV0ZSBhbGdvcml0aG0sIHdlIGhhdmUgdG8gcmVhdHRhY2ggU2hhZG93VHJlZS4KLSAgICAg
ICAgdHJlZS0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgICAg
ICAvLyBub24tRWxlbWVudFNoYWRvdyBub2RlLiBUbyBydW4gZGlzdHJpYnV0ZSBhbGdvcml0aG0s
IHdlIGhhdmUgdG8gcmVhdHRhY2ggRWxlbWVudFNoYWRvdy4KKyAgICAgICAgc2hhZG93LT5zZXRO
ZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICB0cmVlLT5zZWxlY3RvcigpLnBvcHVsYXRlSWZOZWNlc3NhcnkodHJlZS0+aG9z
dCgpKTsKLSAgICB0cmVlLT5zZWxlY3RvcigpLnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwotICAg
IHRyZWUtPnNlbGVjdG9yKCkuc2VsZWN0KHRoaXMsICZtX3NlbGVjdGlvbnMpOworICAgIHNoYWRv
dy0+c2VsZWN0b3IoKS5wb3B1bGF0ZUlmTmVjZXNzYXJ5KHNoYWRvdy0+aG9zdCgpKTsKKyAgICBz
aGFkb3ctPnNlbGVjdG9yKCkudW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7CisgICAgc2hhZG93LT5z
ZWxlY3RvcigpLnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rpb25zKTsKIH0KIAotaW5saW5lIHZvaWQg
SW5zZXJ0aW9uUG9pbnQ6OmNsZWFyRGlzdHJpYnV0aW9uKFNoYWRvd1RyZWUqIHRyZWUpCitpbmxp
bmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6Y2xlYXJEaXN0cmlidXRpb24oRWxlbWVudFNoYWRvdyog
c2hhZG93KQogewotICAgIHRyZWUtPnNlbGVjdG9yKCkudW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7
CisgICAgc2hhZG93LT5zZWxlY3RvcigpLnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwogfQogCiBp
bmxpbmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6YXR0YWNoRGlzdHJpYnV0ZWROb2RlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCmluZGV4IDFkYThjODBkYjli
MjE2MzdmZmUzOGE4OTllOTFkYWVjNDkyZTlkZjYuLjg0MGRkMDY0NzkwZmNkOTM2ZmVkMmM0MmI3
MDI4M2E5MjE0MDlmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0lu
c2VydGlvblBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9u
UG9pbnQuaApAQCAtNjIsOCArNjIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSBPVkVSUklERTsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIGRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4oU2hhZG93VHJlZSopOwot
ICAgIHZvaWQgY2xlYXJEaXN0cmlidXRpb24oU2hhZG93VHJlZSopOworICAgIHZvaWQgZGlzdHJp
YnV0ZUhvc3RDaGlsZHJlbihFbGVtZW50U2hhZG93Kik7CisgICAgdm9pZCBjbGVhckRpc3RyaWJ1
dGlvbihFbGVtZW50U2hhZG93Kik7CiAgICAgdm9pZCBhdHRhY2hEaXN0cmlidXRlZE5vZGUoKTsK
IAogICAgIHZvaWQgYXNzaWduU2hhZG93Um9vdChTaGFkb3dSb290Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCBmOGFmMzlm
NTEwNDBkZGQ1YWU5MTg0N2VhMjk1MzVkZmZiNzY3YTk5Li5mZWU5OTFkOTFiODQzZDcwMjBlZDBk
YTM1MTkyM2U0Mjg2ZDlhZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTbGlk
ZXJUaHVtYkVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNs
dWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTQzLDcgKzQ0LDYgQEAKICNp
bmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU3Rl
cFJhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtNjcsNyArNjcsNyBA
QCBpbmxpbmUgc3RhdGljIGJvb2wgaGFzVmVydGljYWxBcHBlYXJhbmNlKEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0KQogU2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnRPZihOb2Rl
KiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBu
b2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsK
KyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3co
KS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIHRo
dW1iID0gc2hhZG93LT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpOwog
ICAgIEFTU0VSVCh0aHVtYik7CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJD
b250YWluZXI6OmxheW91dCgpCiAgICAgTGVuZ3RoIGlucHV0SGVpZ2h0ID0gaW5wdXQtPnJlbmRl
cmVyKCktPnN0eWxlKCktPmhlaWdodCgpOwogICAgIFJlbmRlck9iamVjdCogdHJhY2tSZW5kZXJl
ciA9IG5vZGUoKS0+Zmlyc3RDaGlsZCgpLT5yZW5kZXJlcigpOwogICAgIGlmICghaXNWZXJ0aWNh
bCAmJiBpbnB1dC0+cmVuZGVyZXIoKS0+aXNTbGlkZXIoKSAmJiAhaW5wdXRIZWlnaHQuaXNGaXhl
ZCgpICYmICFpbnB1dEhlaWdodC5pc1BlcmNlbnQoKSkgewotICAgICAgICBSZW5kZXJPYmplY3Qq
IHRodW1iUmVuZGVyZXIgPSBpbnB1dC0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCkt
PmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7Cisg
ICAgICAgIFJlbmRlck9iamVjdCogdGh1bWJSZW5kZXJlciA9IGlucHV0LT5zaGFkb3coKS0+b2xk
ZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgp
LT5yZW5kZXJlcigpOwogICAgICAgICBpZiAodGh1bWJSZW5kZXJlcikgewogICAgICAgICAgICAg
c3R5bGUoKS0+c2V0SGVpZ2h0KHRodW1iUmVuZGVyZXItPnN0eWxlKCktPmhlaWdodCgpKTsKICAg
ICAgICAgICAgIGlmICh0cmFja1JlbmRlcmVyKQpAQCAtMzU5LDcgKzM1OSw3IEBAIFRyYWNrTGlt
aXRlckVsZW1lbnQqIHRyYWNrTGltaXRlckVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFT
U0VSVChub2RlKTsKICAgICBBU1NFUlQobm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+aGFzU2hhZG93
Um9vdCgpKTsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgp
LT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFk
b3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgp
OwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0ZXIgPSBzaGFkb3ctPmZpcnN0
Q2hpbGQoKS0+bGFzdENoaWxkKCk7CiAgICAgQVNTRVJUKGxpbWl0ZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQu
Y3BwCmluZGV4IDBiMDBjOTVlOGZkYTNiNzkzZGY4NTNlZjk2ZGIyOTE0NjUyMzhjYzMuLjU4MGVi
YWRjYmRmYTRmN2NhZmNlNjY0MDEzMDI2MDAzYWRhZjYzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRGaWVsZERlY29yYXRpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5jcHAK
QEAgLTMzLDEzICszMywxMyBAQAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2lu
Y2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRl
ICJTaGFkb3dUcmVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjgsNyArNjgsNyBA
QCBQYXNzUmVmUHRyPFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50PiBUZXh0RmllbGREZWNvcmF0
aW9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0RGVjb3Jh
dGlvblJvb3RBbmREZWNvcmF0ZWRSb290KEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0LCBTaGFkb3dS
b290KiYgZGVjb3JhdGlvblJvb3QsIFNoYWRvd1Jvb3QqJiBkZWNvcmF0ZWRSb290KQogewotICAg
IFNoYWRvd1Jvb3QqIGV4aXN0aW5nUm9vdCA9IGlucHV0LT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIGV4aXN0aW5nUm9vdCA9IGlucHV0LT5zaGFk
b3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAgICAgU2hhZG93Um9vdCogbmV3Um9vdCA9IDA7
CiAgICAgd2hpbGUgKGV4aXN0aW5nUm9vdC0+Y2hpbGROb2RlQ291bnQoKSA9PSAxICYmIGV4aXN0
aW5nUm9vdC0+Zmlyc3RDaGlsZCgpLT5oYXNUYWdOYW1lKHNoYWRvd1RhZykpIHsKICAgICAgICAg
bmV3Um9vdCA9IGV4aXN0aW5nUm9vdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDQ4YWJkMTJmOGUxMzNjODI2NTUyNDMyNWYxYTI3ODlj
YjhmODY1YzkuLmNkZmYyYzAwMmQ0NTc0NGJjMjM0MmM4YjlhMDIzZGI0NDg2YmYzNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMzQx
LDcgKzM0MSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZChOb2RlKiBub2RlLCBO
b2RlVG9JZE1hcCogbm9kZXNNYXApCiAgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5v
ZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICBmb3Ig
KFNoYWRvd1Jvb3QqIHJvb3QgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKS0+eW91bmdl
c3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKICAgICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CiAgICAgfQogCkBAIC0xMjI4
LDcgKzEyMjgsNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006Ok5vZGU+IEluc3BlY3Rv
ckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUoTm9kZSogbgogICAgICAgICB9CiAgICAgICAg
IGlmIChlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxUeXBl
QnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gPiBzaGFkb3dSb290cyA9IFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPjo6Y3JlYXRlKCk7Ci0gICAg
ICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3dUcmVlKCktPnlv
dW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkp
CisgICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3coKS0+
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKICAgICAgICAgICAgICAgICBzaGFkb3dSb290cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5v
ZGUocm9vdCwgMCwgbm9kZXNNYXApKTsKICAgICAgICAgICAgIHZhbHVlLT5zZXRTaGFkb3dSb290
cyhzaGFkb3dSb290cyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAppbmRleCA1MTFiYzMzOTI4ZWI3ZjM5MDcxMzkwZGVmMTNhYTdhY2JmNmFjMmUyLi4w
ZThmOGQ1NDgyY2M1MGVmZDNjMzJlMzE4MzQ1YzVlM2FiMTJlNzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0xMjYsMTQgKzEyNiwxNCBAQCBGb2N1c1Njb3Bl
IEZvY3VzU2NvcGU6OmZvY3VzU2NvcGVPZihOb2RlKiBub2RlKQogICAgIEFTU0VSVChub2RlKTsK
ICAgICBUcmVlU2NvcGUqIHNjb3BlID0gbm9kZS0+dHJlZVNjb3BlKCk7CiAgICAgaWYgKHNjb3Bl
LT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIEZvY3VzU2NvcGUo
dG9TaGFkb3dSb290KHNjb3BlLT5yb290Tm9kZSgpKS0+dHJlZSgpLT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKSk7CisgICAgICAgIHJldHVybiBGb2N1c1Njb3BlKHRvU2hhZG93Um9vdChzY29wZS0+cm9v
dE5vZGUoKSktPm93bmVyKCktPnlvdW5nZXN0U2hhZG93Um9vdCgpKTsKICAgICByZXR1cm4gRm9j
dXNTY29wZShzY29wZSk7CiB9CiAKIEZvY3VzU2NvcGUgRm9jdXNTY29wZTo6Zm9jdXNTY29wZU93
bmVkQnlTaGFkb3dIb3N0KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKGlzU2hhZG93SG9zdChu
b2RlKSk7Ci0gICAgcmV0dXJuIEZvY3VzU2NvcGUodG9FbGVtZW50KG5vZGUpLT5zaGFkb3dUcmVl
KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4gRm9jdXNTY29wZSh0b0VsZW1l
bnQobm9kZSktPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CiB9CiAKIEZvY3VzU2Nv
cGUgRm9jdXNTY29wZTo6Zm9jdXNTY29wZU93bmVkQnlJRnJhbWUoSFRNTEZyYW1lT3duZXJFbGVt
ZW50KiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
aWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IGI4Y2I2MjhkMDM4NWExMzg3OWZhMDNhNzZjNGY0ODNl
NTEyNjk1NDcuLmZiNWI0Yjk5ZGM0ZjI0YWY2N2UxOThlYjA1ZWJhY2IwM2JkNTA2YzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9s
LmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFJlbmRlckZpbGVVcGxv
YWRDb250cm9sOjp1cGxvYWRCdXR0b24oKSBjb25zdAogCiAgICAgQVNTRVJUKGlucHV0LT5oYXNT
aGFkb3dSb290KCkpOwogCi0gICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3dUcmVl
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGJ1dHRvbk5v
ZGUgPSBpbnB1dC0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwog
ICAgIHJldHVybiBidXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBi
dXR0b25Ob2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihidXR0b25Ob2RlKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCmluZGV4IDE0MDI0Y2VhNTczOWM0OGExYzEyMjE0ZThhNjlhMjY5NjZkZTRjNmEuLmQ3
NzRlNWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2NjgwODA5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2lmIEVOQUJMRShTVkcpCiAj
aW5jbHVkZSAiU1ZHVFJlZkVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIK
ICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKQEAgLTMyLDcgKzMzLDYgQEAKICNpbmNsdWRlICJSZW5k
ZXJTVkdJbmxpbmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNW
R0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFNWR1RSZWZFbGVtZW50Ojp1cGRh
dGVSZWZlcmVuY2VkVGV4dCgpCiAgICAgICAgIHRleHRDb250ZW50ID0gdGFyZ2V0LT50ZXh0Q29u
dGVudCgpOwogCiAgICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgU2hhZG93Um9vdCog
cm9vdCA9IHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3Qq
IHJvb3QgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIGlmICghcm9vdC0+Zmly
c3RDaGlsZCgpKQogICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdTaGFkb3dUZXh0OjpjcmVh
dGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBl
bHNlCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0
KCkKICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZSA9IDA7CiAKICAgICBBU1NFUlQoaGFzU2hhZG93
Um9vdCgpKTsKLSAgICBOb2RlKiBjb250YWluZXIgPSBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGNvbnRhaW5lciA9IHNoYWRvdygpLT5v
bGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyKQogICAg
ICAgICBjb250YWluZXItPnNldFRleHRDb250ZW50KGVtcHR5Q29udGVudCwgaWdub3JlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGViYTU2YThlOWYwOTc5YmM1ZWVl
MjdmNDM3MTNkYjJiOGY1YjEzNmMuLmZiN2Q2Yzc2YjQ4N2YwOGE3MmVlNmMxODU4YTQ2MDE1ZmIw
NWQ5ODggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgog
I2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtMzgsNyArMzksNiBAQAogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291
cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAi
U1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudFJhcmVEYXRhLmgiCiAj
aW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIgpAQCAtMzkzLDcgKzM5Myw3IEBAIHN0
YXRpYyBib29sIHN1YnRyZWVDb250YWluc0Rpc2FsbG93ZWRFbGVtZW50KE5vZGUqIHN0YXJ0KQog
dm9pZCBTVkdVc2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiB7CiAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCB0cnkgdG8gb3B0aW1pemUgdGhpcywgdG8gYXQgbGVhc3QgYWxsb3cg
cGFydGlhbCByZWNsb25lcy4KLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93VHJlZVJvb3RFbGVt
ZW50ID0gIHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpKQorICAgIGlmIChTaGFkb3dS
b290KiBzaGFkb3dUcmVlUm9vdEVsZW1lbnQgPSAgc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KSkKICAgICAgICAgc2hhZG93VHJlZVJvb3RFbGVtZW50LT5yZW1vdmVBbGxDaGlsZHJlbigpOwog
CiAgICAgaWYgKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlKSB7CkBAIC00ODAsNyArNDgwLDcgQEAg
dm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRvd0FuZEluc3RhbmNlVHJlZShTVkdFbGVtZW50
KiB0YXJnZXQpCiAgICAgQVNTRVJUKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlLT5kaXJlY3RVc2VF
bGVtZW50KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlLT5j
b3JyZXNwb25kaW5nRWxlbWVudCgpID09IHRhcmdldCk7CiAKLSAgICBTaGFkb3dSb290KiBzaGFk
b3dUcmVlUm9vdEVsZW1lbnQgPSBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAg
ICBTaGFkb3dSb290KiBzaGFkb3dUcmVlUm9vdEVsZW1lbnQgPSBzaGFkb3coKS0+b2xkZXN0U2hh
ZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3dUcmVlUm9vdEVsZW1lbnQpOwogCiAgICAgLy8g
QnVpbGQgc2hhZG93IHRyZWUgZnJvbSBpbnN0YW5jZSB0cmVlCkBAIC02OTIsNyArNjkyLDcgQEAg
dm9pZCBTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRvd1RyZWUoU1ZHRWxlbWVudCogdGFyZ2V0LCBT
VkdFbGVtZW50SW5zdGFuY2UqIHRhcmcKICAgICBpZiAoc3VidHJlZUNvbnRhaW5zRGlzYWxsb3dl
ZEVsZW1lbnQobmV3Q2hpbGQuZ2V0KCkpKQogICAgICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVu
dHNGcm9tU3VidHJlZShuZXdDaGlsZC5nZXQoKSk7CiAKLSAgICBzaGFkb3dUcmVlKCktPm9sZGVz
dFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQucmVsZWFzZSgpKTsKKyAgICBzaGFk
b3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChuZXdDaGlsZC5yZWxlYXNlKCkp
OwogfQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVl
KE5vZGUqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNGMx
ZDAyYzBmZTZjMjdiZjc2MjlhN2JkYTBlMDU5YmRmYTI5YmM5Ny4uNzA2NmZmOTljOTVhYmFkOWRm
ZTZjM2Y5ODJjNzhjMzA1YWMxYjg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMzAzLDcgKzMwMyw3IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5h
YmxlZE9yTm9kZSogSW50ZXJuYWxzOjplbnN1cmVTaGFkb3dSb290KEVsZW1lCiAgICAgfQogCiAg
ICAgaWYgKGhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIGhvc3QtPnNoYWRv
d1RyZWUoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgICAgIHJldHVybiBob3N0LT5zaGFk
b3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hhZG93Um9vdDo6Y3Jl
YXRlKGhvc3QsIGVjKS5nZXQoKTsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBJbnRlcm5hbHM6OlNo
YWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlc3RTaGFk
b3dSb290KEVsZQogICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHJldHVybiBob3N0LT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hhZG93Um9v
dCgpOworICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiB9
CiAKIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJu
YWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQpA
QCAtMzM4LDcgKzMzOCw3IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxl
ZE9yTm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lCiAgICAgaWYgKCFob3N0
LT5oYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGhvc3Qt
PnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiBob3N0LT5zaGFk
b3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogfQogCiBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNo
YWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlclNoYWRvd1Jvb3QoTm9kZSog
c2hhZG93LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2OSw3ICszNjksNyBAQCB2b2lkIEludGVy
bmFsczo6cmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICB9CiAKICAgICBpZiAoaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICBob3N0LT5z
aGFkb3dUcmVlKCktPnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7CisgICAgICAgIGhvc3QtPnNoYWRv
dygpLT5yZW1vdmVBbGxTaGFkb3dSb290cygpOwogfQogCiBFbGVtZW50KiBJbnRlcm5hbHM6Omlu
Y2x1ZGVyRm9yKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140447</attachid>
            <date>2012-05-06 18:33:22 -0700</date>
            <delta_ts>2012-05-06 20:54:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85265-20120507103320.patch</filename>
            <type>text/plain</type>
            <size>102476</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVjNWU4MTkyNzgxNzQx
NTQwODg3OTU3MmI1NThjMWExN2YyYzU3NS4uYjZkZmY4YjI4NTdjZGMxOTA3NDJlNDcxMGM4MjQ2
ODNhMGJlYjM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxMi0wNS0wMSAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyNjUKKyAgICAgICAgW1NoYWRvdyBET01dIFNo
YWRvd1RyZWUgbmVlZHMgYSBiZXR0ZXIgbmFtZQorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0
cmkgR2xhemtvdi4KKworICAgICAgICBSZW5hbWVkIFNoYWRvd1RyZWUgdG8gRWxlbWVudFNoYWRv
dywgVGhlIEVsZW1lbnRTaGFkb3cgY2xhc3MgaXMKKyAgICAgICAgZ29pbmcgdG8gYmUgYSBmYWNh
ZGUgb2YgU2hhZG93IHJlbGF0ZWQgQVBJcy4KKworICAgICAgICBGb2xsb3dpbmcgcmVuYW1lcyBm
b2xsb3c6CisgICAgICAgIC0gRWxlbWVudDo6c2hhZG93VHJlZSgpIHRvIEVsZW1lbnQ6OnNoYWRv
dygpCisgICAgICAgIC0gU2hhZG93Um9vdDo6dHJlZSgpIHRvIFNoYWRvd1Jvb3Q6Om93bmVyKCkK
KyAgICAgICAgLSBTaGFkb3dUcmVlOjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoKSB0byBFbGVtZW50
U2hhZG93OjpyZWNhbGNTdHlsZSgpCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBKdXN0IHJlbmFt
ZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFk
b3dPZlBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnQpOgorICAgICAg
ICAqIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aGlsZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0Rv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpu
b3RpZnlEZXNjZW5kYW50SW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpDaGls
ZE5vZGVSZW1vdmFsTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRSZW1vdmVkRnJvbURvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5RGVz
Y2VuZGFudFJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmJ1aWxkQWNjZXNzS2V5TWFwKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50Ojp+RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dGFjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aGFzU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaGFkb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVu
c3VyZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAg
IChFbGVtZW50UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjp+
RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6fkVsZW1lbnRTaGFkb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRv
dzo6cmVtb3ZlQWxsU2hhZG93Um9vdHMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRv
dzo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpzZXRQYXJl
bnRUcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6YXR0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmF0dGFjaEhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnRTaGFkb3c6OmRldGFjaEhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6
aW5zZXJ0aW9uUG9pbnRGb3IpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6c2Vs
ZWN0aW9uRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnJlYXR0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmNoaWxkTmVlZHNTdHlsZVJlY2FsYyk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpuZWVkc1N0eWxlUmVjYWxjKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRTaGFkb3c6Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3cp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aG9zdENoaWxkcmVuQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpzZXROZWVkc1JlYXR0YWNoSG9zdENo
aWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnJlYXR0
YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50U2hhZG93OjpoYXNTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRT
aGFkb3c6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hh
ZG93OjpvbGRlc3RTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6
OnNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmNsZWFyTmVlZHNS
ZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
U2hhZG93Ojpob3N0KToKKyAgICAgICAgKFNoYWRvd1Jvb3RWZWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdFZlY3Rvcjo6U2hhZG93Um9vdFZlY3Rvcik6CisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b2xkZXN0U2hhZG93Um9vdEZvcik6CisgICAg
ICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6aG9zdENoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAg
ICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6b3duZXIpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jv
b3QpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNoYWRvd0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
VHJlZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92
ZVRyZWVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6
Om1vdmVTaGFkb3dUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRl
ci5oOgorICAgICAgICAoVHJlZVNjb3BlQWRvcHRlcik6CisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6c2hhZG93Q29s
b3JTd2F0Y2gpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERl
dGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdl
bkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OnNoYWRv
d1NlbGVjdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scyk6CisgICAgICAgICogaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRl
eHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlw
ZTo6aGFuZGxlTW91c2VEb3duRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dGlvblBvaW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OmRl
dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6ZGlzdHJpYnV0ZUhvc3RD
aGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6Y2xlYXJEaXN0cmli
dXRpb24pOgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50Lmg6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNsaWRlclRodW1iRWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNv
bnRhaW5lcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVsZW1lbnRP
Zik6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVjb3JhdGlvblJvb3RBbmREZWNvcmF0ZWRSb290KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKToKKyAgICAgICAgKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c1Njb3BlOjpmb2N1c1Njb3Bl
T2YpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNTY29wZTo6Zm9jdXNTY29wZU93bmVkQnlTaGFk
b3dIb3N0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRv
bik6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RSZWZFbGVtZW50Ojp1cGRhdGVSZWZlcmVuY2VkVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpjbGVhclJlc291cmNl
UmVmZXJlbmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRv
d0FuZEluc3RhbmNlVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWls
ZFNoYWRvd1RyZWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpy
ZW1vdmVTaGFkb3dSb290KToKKwogMjAxMi0wNS0wNiAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEtVUkw6OmlzQmxhbmtVUkwgd291bGQgYmUgYSBuaWNlciBpZGlv
bSB0aGFuIEtVUkw6OnByb3RvY29sSXMoImFib3V0IikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ODRmMGMyN2Q1YThlZTA4MTY0ZmZiYTU3MGI2MDRmMWVlMTZhZjZiMS4uYjhmYzdlNDBkYjYzN2Q1
NTBjNDkzYThmYWU0NWFhYjQxMmMzZDE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU3NCw2
ICs1NzQsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5j
cHAKICAgICBkb20vRWRpdGluZ1RleHQuY3BwCiAgICAgZG9tL0VsZW1lbnQuY3BwCisgICAgZG9t
L0VsZW1lbnRTaGFkb3cuY3BwCiAgICAgZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAogICAg
IGRvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCiAgICAgZG9tL0Vycm9yRXZlbnQuY3BwCkBAIC02Mjks
NyArNjMwLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9TZWN1cml0eUNvbnRleHQu
Y3BwCiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCi0g
ICAgZG9tL1NoYWRvd1RyZWUuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAg
ZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNjM3YjM4YzQxMTdiNjczOTQyMTNj
NzllZjk1NzAyZDhmODM2NTk1Li45MTYyODZkZThkOWU4MjVmYmFkNzgwNTQwM2EyYjcyMTJlNTUx
MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE4MzAsNiArMTgzMCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0
dHJpYnV0ZURhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIFwK
QEAgLTE5NTksOCArMTk2MSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKLQlTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93VHJlZS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0YXRp
Y0hhc2hTZXROb2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYjI1ZjU4MDc0Zjg4YWU5MTZk
YTdmNjRiZWQ3Zjk2YTI4OWY3YzMyMS4uYzkzMjE5Mzc3MTUyOTY2NjIyMmQxYzYxYzgxOWFiY2Y3
NGI3MjA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01NTAsNiArNTUwLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9FZGl0aW5nVGV4dC5jcHAgXAog
ICAgIGRvbS9FbGVtZW50LmNwcCBcCisgICAgZG9tL0VsZW1lbnRTaGFkb3cuY3BwIFwKICAgICBk
b20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIFwKICAgICBkb20vRW50aXR5UmVmZXJlbmNlLmNw
cCBcCiAgICAgZG9tL0Vycm9yRXZlbnQuY3BwIFwKQEAgLTYwOCw3ICs2MDksNiBAQCBTT1VSQ0VT
ICs9IFwKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcCBcCiAgICAgZG9tL1NlbGVjdG9yUXVl
cnkuY3BwIFwKICAgICBkb20vU2hhZG93Um9vdC5jcHAgXAotICAgIGRvbS9TaGFkb3dUcmVlLmNw
cCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxp
c3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTcwNyw2ICsxNzA3LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5oIFwKICAgICBkb20vRWRp
dGluZ1RleHQuaCBcCiAgICAgZG9tL0VsZW1lbnQuaCBcCisgICAgZG9tL0VsZW1lbnRTaGFkb3cu
aCBcCiAgICAgZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmggXAogICAgIGRvbS9FbnRpdHkuaCBc
CiAgICAgZG9tL0VudGl0eVJlZmVyZW5jZS5oIFwKQEAgLTE3NTYsNyArMTc1Nyw2IEBAIEhFQURF
UlMgKz0gXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAogICAgIGRvbS9TZWxl
Y3RvclF1ZXJ5LmggXAogICAgIGRvbS9TaGFkb3dSb290LmggXAotICAgIGRvbS9TaGFkb3dUcmVl
LmggXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlz
dC5oIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
OGY2NzY0YTIwODQ2ZjIyMmQ5ZjlhMTg1NWJiNDVlYjZiZTU3YmQxYy4uNzhmYmI3M2YxMjMwY2E4
ZGViNzA0Mzk0NGM2OTViNjY3ZmNlNjU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0Nyw3
ICsxNDcsNiBAQCBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3Jl
MTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0
cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9k
ZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFFUktOM1dURjEyQXRvbWljU3RyaW5nRWJi
TlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVu
dFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwUmVuZGVyVmll
dzEwY29tcG9zaXRvckV2Ci1fX1pON1dlYkNvcmUxMFNoYWRvd1RyZWUyMHJlbW92ZUFsbFNoYWRv
d1Jvb3RzRXYKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzE3c2V0VXNlRml4ZWRMYXlvdXRFYgog
X19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MThzZXRGaXhlZExheW91dFNpemVFUktOU183SW50U2l6
ZUUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIxc2V0RGVsZWdhdGVzU2Nyb2xsaW5nRWIKQEAg
LTMwMyw2ICszMDIsNyBAQCBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUxOHJvb3RPYmplY3RG
b3JGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTNBWE9iamVjdENhY2hlMjFnQWNjZXNz
aWJpbGl0eUVuYWJsZWRFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUyM2ZvY3VzZWRVSUVs
ZW1lbnRGb3JQYWdlRVBLTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGU0MmdB
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZEUKK19fWk43V2ViQ29yZTEz
RWxlbWVudFNoYWRvdzIwcmVtb3ZlQWxsU2hhZG93Um9vdHNFdgogX19aTjdXZWJDb3JlMTNIVFRQ
SGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFFdgogX19aTjdXZWJD
b3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KQEAgLTE0ODIsNyArMTQ4Miw3IEBAIF9fWk5LN1dl
YkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfN0ludFJlY3RFCiBf
X1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzhJbnRQ
b2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQxMHNjcmVlblJlY3RFdgotX19aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dUcmVlRXYK
K19fWk5LN1dlYkNvcmU3RWxlbWVudDZzaGFkb3dFdgogX19aTks3V2ViQ29yZTdFbGVtZW50MTJn
ZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxpZmllZE5hbWVFCiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQx
M2hhc1NoYWRvd1Jvb3RFdgogX19aTks3V2ViQ29yZTdJbnRSZWN0MTBpbnRlcnNlY3RzRVJLUzBf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggYWU1OGE2OGQ5ZTdmYzZhMmIyYmY0YjhhN2QyNDMyMDQ2ODU5
YTJlNS4uNjZkODEzNGYyNDU0NzA5OGUyMDg2ZjRiZTgzOWY1ZDZiZjU2NDUyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtNjI1LDYgKzYyNSw3IEBACiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50VGlt
aW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudFR5cGUuaCcsCiAgICAgICAgICAgICAn
ZG9tL0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnZG9tL0VsZW1lbnRTaGFkb3cuaCcsCiAgICAg
ICAgICAgICAnZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmgnLAogICAgICAgICAgICAgJ2RvbS9F
dmVudC5oJywKICAgICAgICAgICAgICdkb20vRXZlbnRMaXN0ZW5lci5oJywKQEAgLTY1Miw3ICs2
NTMsNiBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jv
b3QuaCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd1RyZWUuaCcsCiAgICAgICAgICAgICAnZG9t
L1NwYWNlU3BsaXRTdHJpbmcuaCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlZEVsZW1lbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL1RleHQuaCcsCkBAIC01MjM2LDYgKzUyMzYsNyBAQAogICAgICAg
ICAgICAgJ2RvbS9EeW5hbWljTm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL0VkaXRpbmdU
ZXh0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0VkaXRpbmdUZXh0LmgnLAorICAgICAgICAgICAg
J2RvbS9FbGVtZW50U2hhZG93LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0VsZW1lbnQuY3BwJywK
ICAgICAgICAgICAgICdkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwJywKICAgICAgICAgICAg
ICdkb20vRWxlbWVudFJhcmVEYXRhLmgnLApAQCAtNTM0MSw4ICs1MzQyLDYgQEAKICAgICAgICAg
ICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Um9vdC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAotICAgICAgICAgICAgJ2RvbS9T
aGFkb3dUcmVlLmNwcCcsCi0gICAgICAgICAgICAnZG9tL1NoYWRvd1RyZWUuaCcsCiAgICAgICAg
ICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGlj
SGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2Rl
TGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkMDY5MzI5MzRmMTQyNGQ1ZTI4NjlkOTQzOGJjZjNhN2Q4YTg4OGQ3Li4z
MTc1MTRjZDcyMDM5ZWY3YTkyZWY0OTMxOTk2YWRhNzA5ZTExMTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTkzLDggKzE1
OTMsOCBAQAogCQk1N0I3OTFBQTE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I3OTFB
ODE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVtZW50LmggKi87IH07CiAJCTU3Q0Y0
OTc0MTRFRTM2RDcwMEVDRkYxNCAvKiBJbnNlcnRpb25Qb2ludC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNDk3MjE0RUUzNkQ3MDBFQ0ZGMTQg
LyogSW5zZXJ0aW9uUG9pbnQuY3BwICovOyB9OwogCQk1N0NGNDk3NTE0RUUzNkQ3MDBFQ0ZGMTQg
LyogSW5zZXJ0aW9uUG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3Q0Y0OTczMTRFRTM2RDcwMEVDRkYxNCAvKiBJbnNlcnRpb25Qb2ludC5oICov
OyB9OwotCQk1N0NGNEM4NjE0Rjc1OTdBMDBFQ0ZGMTQgLyogU2hhZG93VHJlZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNEM4NDE0Rjc1OTdB
MDBFQ0ZGMTQgLyogU2hhZG93VHJlZS5jcHAgKi87IH07Ci0JCTU3Q0Y0Qzg3MTRGNzU5N0EwMEVD
RkYxNCAvKiBTaGFkb3dUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1N0NGNEM4NTE0Rjc1OTdBMDBFQ0ZGMTQgLyogU2hhZG93VHJlZS5oICovOyB9
OworCQk1N0NGNEM4NjE0Rjc1OTdBMDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0NGNEM4NDE0Rjc1OTdB
MDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5jcHAgKi87IH07CisJCTU3Q0Y0Qzg3MTRGNzU5N0Ew
MEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0NGNEM4NTE0Rjc1OTdBMDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRv
dy5oICovOyB9OwogCQk1OTA1QURCRjEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURC
RDEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi87IH07CiAJCTU5MDVBREMw
MTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1M
VHJlZVZpZXdlci5oICovOyB9OwogCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNl
T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NjA0LDggKzg2
MDQsOCBAQAogCQk1N0I3OTFBODE0QzZBNjMzMDBGMjAyRDEgLyogSFRNTENvbnRlbnRFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxDb250ZW50RWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0NGNDk3MjE0RUUzNkQ3MDBFQ0ZGMTQg
LyogSW5zZXJ0aW9uUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5zZXJ0aW9uUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0NG
NDk3MzE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zZXJ0aW9uUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTdDRjRDODQxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93VHJlZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3Q0Y0Qzg1MTRGNzU5N0EwMEVDRkYxNCAvKiBTaGFkb3dU
cmVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1RyZWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdDRjRDODQxNEY3NTk3QTAwRUNGRjE0IC8qIEVs
ZW1lbnRTaGFkb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWxl
bWVudFNoYWRvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3Q0Y0Qzg1MTRG
NzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEVsZW1lbnRTaGFkb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTkwNUFEQkQxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MVHJlZVZpZXdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJFMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmll
d2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTkwRTFCNDgxMUU0RUY0QjAwNjlGNzg0IC8q
IERldmljZU9yaWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
dmljZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTExMCw2
ICsyMTExMCw4IEBACiAJCQkJQThDNEE3RjYwOUQ1NjMyNzAwMDNBQzhEIC8qIEVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4QzRBN0Y1MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmggKi8sCiAJCQkJ
OTNFRUMxRUEwOUMyODc3NzAwQzUxNUQxIC8qIEVsZW1lbnQuaWRsICovLAorCQkJCTU3Q0Y0Qzg0
MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmNwcCAqLywKKwkJCQk1N0NGNEM4NTE0
Rjc1OTdBMDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5oICovLAogCQkJCTJDRjY4Nzg3MTREMzJF
QjUwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgKi8sCiAJCQkJMkNGNjg3ODkx
NEQzMkVGRjAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmggKi8sCiAJCQkJNjM3QjdB
REUwRTg3NjdCODAwRTMyMTk0IC8qIEVsZW1lbnRSYXJlRGF0YS5oICovLApAQCAtMjEyNzksOCAr
MjEyODEsNiBAQAogCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNw
cCAqLywKIAkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAog
CQkJCUE3REI0MTgxMTRDRTFGMEEwMEEyRTMxNiAvKiBTaGFkb3dSb290LmlkbCAqLywKLQkJCQk1
N0NGNEM4NDE0Rjc1OTdBMDBFQ0ZGMTQgLyogU2hhZG93VHJlZS5jcHAgKi8sCi0JCQkJNTdDRjRD
ODUxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuaCAqLywKIAkJCQlEMDFBMjdBQjEwQzlC
RkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8sCiAJCQkJRDAxQTI3QUMxMEM5
QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLywKIAkJCQlDRUEzOTQ5QTExRDQ1
Q0RBMDAzMDk0Q0YgLyogU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCAqLywKQEAgLTIyNjkwLDYg
KzIyNjkwLDcgQEAKIAkJCQk0QkFFOTVCMTBCMkZBOUNFMDBBRUQ4QTAgLyogRWRpdG9yRGVsZXRl
QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0ZEQUZDQTBCMTEzMDc0MDBFMjc0NkYgLyog
RWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwNzA5RDU2MzI3
MDAwM0FDOEQgLyogRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdDRjRDODcxNEY3NTk3
QTAwRUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCTJDRjY4NzhB
MTREMzJFRkYwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjNGNUQ0RjcwRThDNEI3MTAwQzBCRDA0IC8qIEVsZW1lbnRSYXJlRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTQxNUYxODQwRDlBMUE4MzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29u
dHJvbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDIyMyw3ICsyNDIyNCw2IEBACiAJCQkJMEYzREQ0
NTAxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NUVCOEM0MEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNTdDRjRDODcxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MEU2Q0U4MEExOTg5Q0EwMDdGQjhDNSAvKiBTaGFkb3dWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJBRkZDOTQwRDAwQTVERjAwMzAwNzREIC8qIFNoYXBlQXJhYmljLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOTU0RTBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI1ODY0LDYgKzI1ODY0LDcgQEAKIAkJCQk5M0EzOEI0
QjBEMEU1ODA4MDA2ODcyQzIgLyogRWRpdG9yQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFRDUwMURDNjBCMjQ5RjI5MDBBRTE4RDkgLyogRWRpdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8qIEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTdDRjRDODYxNEY3NTk3QTAwRUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkNGNjg3ODgxNEQzMkVCNTAwMzQwRjM5IC8qIEVsZW1lbnRBdHRy
aWJ1dGVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNkNCMEExNTYxQ0QwMDBBNDIz
NCAvKiBFbGxpcHNpc0JveC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCQjEyNTFGMTJE
MDAzRUYyNjkgLyogRW1haWxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzM2NCw3
ICsyNzM2NSw2IEBACiAJCQkJMEYzREQ0NEYxMkY1RUExQjAwMEQ5MTkwIC8qIFNoYWRvd0JsdXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI4QzMwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRv
d0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTZEMTY5NjIxMzQ2QjQ5QjAwMEVCNzcwIC8q
IFNoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTdDRjRDODYxNEY3NTk3QTAwRUNG
RjE0IC8qIFNoYWRvd1RyZWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRjQwQTE5ODlD
QTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzkz
MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0
QTk1NEQwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKaW5k
ZXggOWZkY2I5Zjg5ZTBkMjExZTAyN2Q2N2RlNDFlYjFiZDZiMTIwZDlkZi4uNWE2OTM2YzhjMjIx
ZmVjYTMzZTc4NmI4NDQ5M2E2MTUyOGNlODU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTI4LDkgKzI4LDEwIEBACiAjaW5jbHVk
ZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCiAKICNpbmNsdWRlICJFbGVtZW50LmgiCisj
aW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3Iu
aCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIK
KwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDE3ICs0MCwxNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUg
JiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9v
dCgpOwogfQogCi1zdGF0aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVGb3IoY29uc3Qg
Tm9kZSogbm9kZSkKK3N0YXRpYyBpbmxpbmUgRWxlbWVudFNoYWRvdyogc2hhZG93Rm9yKGNvbnN0
IE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQot
ICAgICAgICByZXR1cm4gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dUcmVlKCk7CisgICAgICAgIHJl
dHVybiB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpOwogICAgIHJldHVybiAwOwogfQogCi1zdGF0
aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVPZlBhcmVudChjb25zdCBOb2RlKiBub2Rl
KQorc3RhdGljIGlubGluZSBFbGVtZW50U2hhZG93KiBzaGFkb3dPZlBhcmVudChjb25zdCBOb2Rl
KiBub2RlKQogewogICAgIGlmIChub2RlICYmIG5vZGUtPnBhcmVudE5vZGUoKSkKLSAgICAgICAg
cmV0dXJuIHNoYWRvd1RyZWVGb3Iobm9kZS0+cGFyZW50Tm9kZSgpKTsKKyAgICAgICAgcmV0dXJu
IHNoYWRvd0Zvcihub2RlLT5wYXJlbnROb2RlKCkpOwogICAgIHJldHVybiAwOwogfQogCkBAIC05
Nyw4ICs5OCw4IEBAIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGls
ZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3RpCiB7CiAgICAgQVNTRVJUKG5vZGUp
OwogICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkgewotICAgICAgICBTaGFkb3dUcmVl
KiBzaGFkb3dUcmVlID0gc2hhZG93VHJlZUZvcihub2RlKTsKLSAgICAgICAgcmV0dXJuIChzaGFk
b3dUcmVlICYmIHNoYWRvd1RyZWUtPmhhc1NoYWRvd1Jvb3QoKSkgPyB0cmF2ZXJzZUxpZ2h0Q2hp
bGRyZW4oc2hhZG93VHJlZS0+eW91bmdlc3RTaGFkb3dSb290KCksIGRpcmVjdGlvbikKKyAgICAg
ICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gc2hhZG93Rm9yKG5vZGUpOworICAgICAgICByZXR1
cm4gKHNoYWRvdyAmJiBzaGFkb3ctPmhhc1NoYWRvd1Jvb3QoKSkgPyB0cmF2ZXJzZUxpZ2h0Q2hp
bGRyZW4oc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9uKQogICAgICAgICAg
ICAgOiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKICAgICB9CiAgICAg
aWYgKGlzU2hhZG93SG9zdChub2RlKSkKQEAgLTE0MywxMCArMTQ0LDEwIEBAIHZvaWQgQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91c1NpYmxpbmcoKQogTm9kZSogQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KGNvbnN0
IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgQVNTRVJU
KG5vZGUpOwotICAgIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUgPSBzaGFkb3dUcmVlT2ZQYXJlbnQo
bm9kZSk7Ci0gICAgaWYgKCFzaGFkb3dUcmVlKQorICAgIEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9
IHNoYWRvd09mUGFyZW50KG5vZGUpOworICAgIGlmICghc2hhZG93KQogICAgICAgICByZXR1cm4g
dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rpb24pOwotICAgIEhUTUxD
b250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3dUcmVlLT5zZWxlY3Rpb25Gb3Iobm9k
ZSk7CisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHNoYWRvdy0+c2VsZWN0
aW9uRm9yKG5vZGUpOwogICAgIGlmICghc2VsZWN0aW9uKQogICAgICAgICByZXR1cm4gdHJhdmVy
c2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rpb24pOwogICAgIGlmIChIVE1MQ29u
dGVudFNlbGVjdGlvbiogbmV4dFNlbGVjdGlvbiA9IChkaXJlY3Rpb24gPT0gVHJhdmVyc2FsRGly
ZWN0aW9uRm9yd2FyZCA/IHNlbGVjdGlvbi0+bmV4dCgpIDogc2VsZWN0aW9uLT5wcmV2aW91cygp
KSkKQEAgLTIwNyw4ICsyMDgsOCBAQCBOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgICAgIEFTU0VSVCh0b1No
YWRvd1Jvb3Qobm9kZSktPmlzWW91bmdlc3QoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
LSAgICBpZiAoU2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChub2Rl
KSkgewotICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHNoYWRv
d1RyZWUtPnNlbGVjdGlvbkZvcihub2RlKSkKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93
ID0gc2hhZG93T2ZQYXJlbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0
aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3ctPnNlbGVjdGlvbkZvcihub2RlKSkKICAgICAgICAgICAg
IHJldHVybiB0cmF2ZXJzZVBhcmVudChzZWxlY3Rpb24tPmluc2VydGlvblBvaW50KCkpOwogICAg
IH0KICAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnRJbkN1cnJlbnRUcmVlKG5vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKaW5kZXggZWRiODRk
YTVmZTgxM2Q5ZTMxYThiNmVkMzhiNzExNjUwMzlkZDFkYy4uOGM0Y2U1ZWFkNjU1YzA4ZWJkODI2
YjI3Y2FhZjRjZjc5YWViZjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGVBbGdvcml0aG1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZUFsZ29yaXRobXMuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiQ29udGFpbmVy
Tm9kZUFsZ29yaXRobXMuaCIKIAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJTaGFk
b3dUcmVlLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQ2LDggKzQ2LDggQEAgdm9pZCBDaGlsZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6
bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0RvY3VtZW50KENvbnRhaW5lck4KICAgICBpZiAo
IW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFNoYWRv
d1RyZWUqIHRyZWUgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKSkgewotICAgICAgICBT
aGFkb3dSb290VmVjdG9yIHJvb3RzKHRyZWUpOworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFk
b3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKSB7CisgICAgICAgIFNoYWRvd1Jvb3RWZWN0
b3Igcm9vdHMoc2hhZG93KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByb290cy5z
aXplKCk7ICsraSkKICAgICAgICAgICAgIG5vdGlmeU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudChy
b290c1tpXS5nZXQoKSk7CiAgICAgfQpAQCAtNjMsOCArNjMsOCBAQCB2b2lkIENoaWxkTm9kZUlu
c2VydGlvbk5vdGlmaWVyOjpub3RpZnlEZXNjZW5kYW50SW5zZXJ0ZWRJbnRvVHJlZShDb250YWlu
ZXJOb2RlKgogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJl
ZSgpKSB7Ci0gICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHRyZWUtPnlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgaWYg
KEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCkpIHsKKyAg
ICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQogICAgICAgICAgICAgbm90
aWZ5Tm9kZUluc2VydGVkSW50b1RyZWUocm9vdCk7CiAgICAgfQogfQpAQCAtODcsOCArODcsOCBA
QCB2b2lkIENoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudFJlbW92ZWRG
cm9tRG9jdW1lbnQoQ29udGFpbmVyTm9kZQogICAgIGlmIChub2RlLT5kb2N1bWVudCgpLT5jc3NU
YXJnZXQoKSA9PSBub2RlKQogICAgICAgICBub2RlLT5kb2N1bWVudCgpLT5zZXRDU1NUYXJnZXQo
MCk7CiAKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93
VHJlZSgpKSB7Ci0gICAgICAgIFNoYWRvd1Jvb3RWZWN0b3Igcm9vdHModHJlZSk7CisgICAgaWYg
KEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCkpIHsKKyAg
ICAgICAgU2hhZG93Um9vdFZlY3RvciByb290cyhzaGFkb3cpOwogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHJvb3RzLnNpemUoKTsgKytpKQogICAgICAgICAgICAgbm90aWZ5Tm9kZVJl
bW92ZWRGcm9tRG9jdW1lbnQocm9vdHNbaV0uZ2V0KCkpOwogICAgIH0KQEAgLTEwNCw4ICsxMDQs
OCBAQCB2b2lkIENoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudFJlbW92
ZWRGcm9tVHJlZShDb250YWluZXJOb2RlKiBubwogICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHRvRWxl
bWVudChub2RlKS0+c2hhZG93VHJlZSgpKSB7Ci0gICAgICAgIFNoYWRvd1Jvb3RWZWN0b3Igcm9v
dHModHJlZSk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVudChub2Rl
KS0+c2hhZG93KCkpIHsKKyAgICAgICAgU2hhZG93Um9vdFZlY3RvciByb290cyhzaGFkb3cpOwog
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJvb3RzLnNpemUoKTsgKytpKQogICAgICAg
ICAgICAgbm90aWZ5Tm9kZVJlbW92ZWRGcm9tVHJlZShyb290c1tpXS5nZXQoKSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggNDI2YThjYTU1NmVhYWUwMTVjNDc3OWZh
MTU4NWI1NjBkNjdlNjZmZC4uNmY2NWMwMDEzNjM3ZmMzZjRkNjIwYTI0ODA0N2I4YzI1YjUwYWEy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5j
bHVkZSAiRWRpdGluZ1RleHQuY3BwIgogI2luY2x1ZGUgIkVsZW1lbnQuY3BwIgogI2luY2x1ZGUg
IkVsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmNwcCIK
ICNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuY3BwIgogI2luY2x1ZGUgIkVycm9yRXZlbnQuY3Bw
IgogI2luY2x1ZGUgIkV2ZW50LmNwcCIKQEAgLTExOCw3ICsxMTksNiBAQAogI2luY2x1ZGUgIlNl
Y3VyaXR5Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5jcHAiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5jcHAiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5jcHAiCiAjaW5jbHVkZSAi
U3BhY2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNw
cCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCBhNTBjYjk5MzQyY2Q0M2JjMzc1ZDQzZDIzMmI2ZmQzMjM4YjY4NWE5Li4wMTRjMjUzNmEx
NzNlNjEwNjRmZGVkMGYwMjM0M2UyNTQyMDM2MmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlICJFZGl0aW5nVGV4dC5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93Lmgi
CiAjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudEZhY3RvcnkuaCIKQEAgLTE0MCw3ICsxNDEsNiBAQAogI2luY2x1ZGUgIlNlZ21l
bnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJTdGF0aWNIYXNoU2V0Tm9k
ZUxpc3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVl
dExpc3QuaCIKQEAgLTcxMyw3ICs3MTMsNyBAQCB2b2lkIERvY3VtZW50OjpidWlsZEFjY2Vzc0tl
eU1hcChUcmVlU2NvcGUqIHNjb3BlKQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNzS2V5
LnNldChhY2Nlc3NLZXkuaW1wbCgpLCBlbGVtZW50KTsKIAogICAgICAgICBpZiAoZWxlbWVudC0+
aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBl
bGVtZW50LT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0g
cm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJv
b3QgPSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3Qg
PSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAgICBidWlsZEFjY2Vzc0tl
eU1hcChyb290KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBm
MWMyYThiZmNkNGJiMjEzNGVhNWI0NjJlZGFjZjNiZDQyNDY3NjFjLi4zNjU1NzNjZDhkZmExNjU1
YmMyM2QxZWYwNmNkOWNmMWIwYjVhZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMzMs
OCArMTMzLDggQEAgRWxlbWVudDo6fkVsZW1lbnQoKQogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KHNoYWRvd1RyZWUoKSkKLSAgICAgICAgcmFyZURhdGEoKS0+bV9zaGFkb3dUcmVlLmNsZWFyKCk7
CisgICAgaWYgKHNoYWRvdygpKQorICAgICAgICByYXJlRGF0YSgpLT5tX3NoYWRvdy5jbGVhcigp
OwogICAgIGlmIChtX2F0dHJpYnV0ZURhdGEpCiAgICAgICAgIG1fYXR0cmlidXRlRGF0YS0+Y2xl
YXJBdHRyaWJ1dGVzKHRoaXMpOwogfQpAQCAtOTA4LDggKzkwOCw4IEBAIHZvaWQgRWxlbWVudDo6
d2lsbFJlbW92ZSgpCiAgICAgaWYgKGNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKSkKICAgICAg
ICAgc2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJv
dW5kYXJpZXMoZmFsc2UpOwogI2VuZGlmCi0gICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUgPSBzaGFk
b3dUcmVlKCkpCi0gICAgICAgIHRyZWUtPndpbGxSZW1vdmUoKTsKKyAgICBpZiAoRWxlbWVudFNo
YWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHNoYWRvdy0+d2lsbFJlbW92
ZSgpOwogICAgIENvbnRhaW5lck5vZGU6OndpbGxSZW1vdmUoKTsKIH0KIApAQCAtOTc0LDkgKzk3
NCw5IEBAIHZvaWQgRWxlbWVudDo6YXR0YWNoKCkKICAgICBTdHlsZVJlc29sdmVyUGFyZW50UHVz
aGVyIHBhcmVudFB1c2hlcih0aGlzKTsKIAogICAgIC8vIFdoZW4gYSBzaGFkb3cgcm9vdCBleGlz
dHMsIGl0IGRvZXMgdGhlIHdvcmsgb2YgYXR0YWNoaW5nIHRoZSBjaGlsZHJlbi4KLSAgICBpZiAo
U2hhZG93VHJlZSogdHJlZSA9IHNoYWRvd1RyZWUoKSkgeworICAgIGlmIChFbGVtZW50U2hhZG93
KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkgewogICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgp
OwotICAgICAgICB0cmVlLT5hdHRhY2hIb3N0KHRoaXMpOworICAgICAgICBzaGFkb3ctPmF0dGFj
aEhvc3QodGhpcyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGZpcnN0Q2hpbGQoKSkKICAg
ICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CkBAIC0xMDEyLDggKzEwMTIsOCBAQCB2b2lk
IEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJhcmVE
YXRhKCktPnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogCi0gICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUg
PSBzaGFkb3dUcmVlKCkpCi0gICAgICAgIHRyZWUtPmRldGFjaEhvc3QodGhpcyk7CisgICAgaWYg
KEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMtPnNoYWRvdygpKQorICAgICAgICBzaGFkb3ct
PmRldGFjaEhvc3QodGhpcyk7CiAgICAgZWxzZQogICAgICAgICBDb250YWluZXJOb2RlOjpkZXRh
Y2goKTsKIApAQCAtMTE3OSwxMCArMTE3OSwxMCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxl
KFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3Qg
Y2FyZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwy
IHdvcmxkLgogICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgU2hhZG93VHJlZSog
dHJlZSA9IHNoYWRvd1RyZWUoKTsKLSAgICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IHRy
ZWUtPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHRyZWUtPm5lZWRzU3R5bGVSZWNhbGMoKSkg
eworICAgICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKTsKKyAgICAg
ICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IHNoYWRvdy0+Y2hpbGROZWVkc1N0eWxlUmVjYWxj
KCkgfHwgc2hhZG93LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIHBhcmVudFB1
c2hlci5wdXNoKCk7Ci0gICAgICAgICAgICB0cmVlLT5yZWNhbGNTaGFkb3dUcmVlU3R5bGUoY2hh
bmdlKTsKKyAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMTE5NSwzMiArMTE5NSwzMiBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0
eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIAogYm9vbCBFbGVtZW50OjpoYXNTaGFkb3dSb290KCkg
Y29uc3QKIHsKLSAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHNoYWRvd1RyZWUoKSkKLSAgICAg
ICAgcmV0dXJuIHRyZWUtPmhhc1NoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyog
c2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPmhhc1NoYWRv
d1Jvb3QoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVNoYWRvd1RyZWUqIEVsZW1lbnQ6OnNo
YWRvd1RyZWUoKSBjb25zdAorRWxlbWVudFNoYWRvdyogRWxlbWVudDo6c2hhZG93KCkgY29uc3QK
IHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQoKTsKKyAgICByZXR1cm4gcmFyZURhdGEo
KS0+bV9zaGFkb3cuZ2V0KCk7CiB9CiAKLVNoYWRvd1RyZWUqIEVsZW1lbnQ6OmVuc3VyZVNoYWRv
d1RyZWUoKQorRWxlbWVudFNoYWRvdyogRWxlbWVudDo6ZW5zdXJlU2hhZG93KCkKIHsKLSAgICBp
ZiAoU2hhZG93VHJlZSogdHJlZSA9IGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQo
KSkKLSAgICAgICAgcmV0dXJuIHRyZWU7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9
IGVuc3VyZVJhcmVEYXRhKCktPm1fc2hhZG93LmdldCgpKQorICAgICAgICByZXR1cm4gc2hhZG93
OwogCi0gICAgcmFyZURhdGEoKS0+bV9zaGFkb3dUcmVlID0gYWRvcHRQdHIobmV3IFNoYWRvd1Ry
ZWUoKSk7Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5nZXQoKTsKKyAgICBy
YXJlRGF0YSgpLT5tX3NoYWRvdyA9IGFkb3B0UHRyKG5ldyBFbGVtZW50U2hhZG93KCkpOworICAg
IHJldHVybiByYXJlRGF0YSgpLT5tX3NoYWRvdy5nZXQoKTsKIH0KIAogU2hhZG93Um9vdCogRWxl
bWVudDo6ZW5zdXJlU2hhZG93Um9vdCgpCiB7CiAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAg
ICAgICAgcmV0dXJuIHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgICAgICBy
ZXR1cm4gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBTaGFkb3dS
b290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290
KS5nZXQoKTsKIH0KQEAgLTEzNTcsNyArMTM1Nyw3IEBAIHZvaWQgRWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFm
CiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgewogICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgp
KQotICAgICAgICAgICAgc2hhZG93VHJlZSgpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAg
ICAgICAgICBzaGFkb3coKS0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKaW5kZXggZGI1YjhkMDAyZjkzY2VlNWRlM2JiM2QwOWI5ZDZjYTc2YTg1ZDIz
YS4uN2YzZDYwN2Q3YzE4N2YxMGQ5NmQ5ZGVhODJiYWZjYzI4NWNjOTljZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1l
bnRSYXJlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBTaGFkb3dSb290OwotY2xhc3MgU2hh
ZG93VHJlZTsKK2NsYXNzIEVsZW1lbnRTaGFkb3c7CiBjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0
OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CkBAIC0yNjIsOCArMjYyLDggQEAg
cHVibGljOgogICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAK
ICAgICBib29sIGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsKLSAgICBTaGFkb3dUcmVlKiBzaGFkb3dU
cmVlKCkgY29uc3Q7Ci0gICAgU2hhZG93VHJlZSogZW5zdXJlU2hhZG93VHJlZSgpOworICAgIEVs
ZW1lbnRTaGFkb3cqIHNoYWRvdygpIGNvbnN0OworICAgIEVsZW1lbnRTaGFkb3cqIGVuc3VyZVNo
YWRvdygpOwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSBFbGVtZW50OjplbnN1cmVTaGFkb3dSb290
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjA4CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggOGJiMjZhNGZhMmIzZGNiZGYyNzQ2
ZDJiMWQ4NjRlNGEzMDFmNzRhOS4uOGU3YmNiY2Y0MjdlMWY5YjY1MzkzNTk5MGRmMTQ2MjExM2Fi
Yjc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMjUsMTAgKzI1LDEw
IEBACiAjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01h
cC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAj
aW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNp
bmNsdWRlICJOb2RlUmFyZURhdGEuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw3ICs2OSw3IEBA
IHB1YmxpYzoKIAogICAgIE93blB0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFzZXRET01T
dHJpbmdNYXA7CiAgICAgT3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xpc3Q7Ci0gICAgT3duUHRy
PFNoYWRvd1RyZWU+IG1fc2hhZG93VHJlZTsKKyAgICBPd25QdHI8RWxlbWVudFNoYWRvdz4gbV9z
aGFkb3c7CiAgICAgT3duUHRyPE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CiAKICAgICBi
b29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHk7CkBAIC05OCw3ICs5OCw3IEBAIGlubGluZSBFbGVt
ZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSgpCiAKIGlubGluZSBFbGVtZW50UmFyZURhdGE6
On5FbGVtZW50UmFyZURhdGEoKQogewotICAgIEFTU0VSVCghbV9zaGFkb3dUcmVlKTsKKyAgICBB
U1NFUlQoIW1fc2hhZG93KTsKIH0KIAogaW5saW5lIHZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXNl
dENvbXB1dGVkU3R5bGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRT
aGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjYzIyZTk0NjNjYTE2MWZjYzhhZWYzZTdmNTk0ZGVmZGFkYzYxNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKQEAgLTAsMCArMSwy
NzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgor
CisjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2hhZG93RWxlbWVudC5o
IgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAi
U3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitFbGVtZW50U2hhZG93OjpFbGVtZW50U2hhZG93KCkKKyAgICA6IG1fbmVlZHNSZWNhbGN1
bGF0ZUNvbnRlbnQoZmFsc2UpCit7Cit9CisKK0VsZW1lbnRTaGFkb3c6On5FbGVtZW50U2hhZG93
KCkKK3sKKyAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZW1vdmVBbGxTaGFkb3dS
b290cygpOworfQorCitzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRv
Y3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIXNoYWRvd1Jvb3QpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHNoYWRv
d1Jvb3QtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VS
UjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChzaGFkb3dSb290LT5k
b2N1bWVudCgpICE9IGRvY3VtZW50KSB7CisgICAgICAgIGVjID0gV1JPTkdfRE9DVU1FTlRfRVJS
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgRWxlbWVudFNoYWRvdzo6YWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIEFTU0VSVChzaGFkb3dIb3N0KTsKKyAgICBBU1NFUlQoc2hhZG93Um9vdCk7CisKKyAgICBp
ZiAoIXZhbGlkYXRlU2hhZG93Um9vdChzaGFkb3dIb3N0LT5kb2N1bWVudCgpLCBzaGFkb3dSb290
LmdldCgpLCBlYykpCisgICAgICAgIHJldHVybjsKKworICAgIHNoYWRvd1Jvb3QtPnNldFNoYWRv
d0hvc3Qoc2hhZG93SG9zdCk7CisgICAgQ2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXIoc2hhZG93
SG9zdCkubm90aWZ5KHNoYWRvd1Jvb3QuZ2V0KCkpOworCisgICAgaWYgKHNoYWRvd0hvc3QtPmF0
dGFjaGVkKCkpIHsKKyAgICAgICAgc2hhZG93Um9vdC0+bGF6eUF0dGFjaCgpOworICAgICAgICBk
ZXRhY2goKTsKKyAgICAgICAgc2hhZG93SG9zdC0+ZGV0YWNoQ2hpbGRyZW4oKTsKKyAgICB9CisK
KyAgICBtX3NoYWRvd1Jvb3RzLnB1c2goc2hhZG93Um9vdC5nZXQoKSk7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRQdXNoU2hhZG93Um9vdChzaGFkb3dIb3N0LCBzaGFkb3dSb290
LmdldCgpKTsKK30KKwordm9pZCBFbGVtZW50U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290cygp
Cit7CisgICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IERvbnQgcHJvdGVjdCB0aGlzIHJlZiBjb3VudC4KKyAgICBFbGVtZW50KiBzaGFkb3dIb3N0ID0g
aG9zdCgpOworCisgICAgd2hpbGUgKFJlZlB0cjxTaGFkb3dSb290PiBvbGRSb290ID0gbV9zaGFk
b3dSb290cy5yZW1vdmVIZWFkKCkpIHsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUG9wU2hhZG93Um9vdChzaGFkb3dIb3N0LCBvbGRSb290LmdldCgpKTsKKyAgICAgICAg
c2hhZG93SG9zdC0+ZG9jdW1lbnQoKS0+cmVtb3ZlRm9jdXNlZE5vZGVPZlN1YnRyZWUob2xkUm9v
dC5nZXQoKSk7CisKKyAgICAgICAgaWYgKG9sZFJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAgICAg
ICBvbGRSb290LT5kZXRhY2goKTsKKworICAgICAgICBvbGRSb290LT5zZXRTaGFkb3dIb3N0KDAp
OworICAgICAgICBvbGRSb290LT5zZXRQcmV2KDApOworICAgICAgICBvbGRSb290LT5zZXROZXh0
KDApOworICAgICAgICBzaGFkb3dIb3N0LT5kb2N1bWVudCgpLT5hZG9wdElmTmVlZGVkKG9sZFJv
b3QuZ2V0KCkpOworICAgICAgICBDaGlsZE5vZGVSZW1vdmFsTm90aWZpZXIoc2hhZG93SG9zdCku
bm90aWZ5KG9sZFJvb3QuZ2V0KCkpOworICAgIH0KKworICAgIGlmIChzaGFkb3dIb3N0LT5hdHRh
Y2hlZCgpKQorICAgICAgICBzaGFkb3dIb3N0LT5hdHRhY2hDaGlsZHJlbkxhemlseSgpOworfQor
Cit2b2lkIEVsZW1lbnRTaGFkb3c6OndpbGxSZW1vdmUoKQoreworICAgIFNoYWRvd1Jvb3RWZWN0
b3Igcm9vdHModGhpcyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByb290cy5zaXplKCk7
ICsraSkKKyAgICAgICAgcm9vdHNbaV0tPndpbGxSZW1vdmUoKTsKK30KKwordm9pZCBFbGVtZW50
U2hhZG93OjpzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKiBzY29wZSkKK3sKKyAgICBmb3Ig
KFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJv
b3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICByb290LT5zZXRQYXJlbnRUcmVlU2NvcGUo
c2NvcGUpOworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmF0dGFjaCgpCit7CisgICAgLy8gQ2hp
bGRyZW4gb2YgbV9zZWxlY3RvciBpcyBwb3B1bGF0ZWQgbGF6aWx5IGluCisgICAgLy8gZW5zdXJl
U2VsZWN0b3IoKSwgYW5kIGhlcmUgd2UganVzdCBlbnN1cmUgdGhhdCBpdCBpcyBpbiBjbGVhbiBz
dGF0ZS4KKyAgICBBU1NFUlQoIXNlbGVjdG9yKCkuaGFzUG9wdWxhdGVkKCkpOworCisgICAgc2Vs
ZWN0b3IoKS53aWxsU2VsZWN0KCk7CisgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdl
c3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkgewor
ICAgICAgICBpZiAoIXJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAgICAgICByb290LT5hdHRhY2go
KTsKKyAgICB9CisgICAgc2VsZWN0b3IoKS5kaWRTZWxlY3QoKTsKK30KKwordm9pZCBFbGVtZW50
U2hhZG93OjphdHRhY2hIb3N0KEVsZW1lbnQqIGhvc3QpCit7CisgICAgYXR0YWNoKCk7CisgICAg
aG9zdC0+YXR0YWNoQ2hpbGRyZW5JZk5lZWRlZCgpOworICAgIGhvc3QtPmF0dGFjaEFzTm9kZSgp
OworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OmRldGFjaCgpCit7CisgICAgZm9yIChTaGFkb3dS
b290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkgeworICAgICAgICBpZiAocm9vdC0+YXR0YWNoZWQoKSkKKyAgICAgICAg
ICAgIHJvb3QtPmRldGFjaCgpOworICAgIH0KK30KKwordm9pZCBFbGVtZW50U2hhZG93OjpkZXRh
Y2hIb3N0KEVsZW1lbnQqIGhvc3QpCit7CisgICAgaG9zdC0+ZGV0YWNoQ2hpbGRyZW5JZk5lZWRl
ZCgpOworICAgIGRldGFjaCgpOworICAgIGhvc3QtPmRldGFjaEFzTm9kZSgpOworfQorCitJbnNl
cnRpb25Qb2ludCogRWxlbWVudFNoYWRvdzo6aW5zZXJ0aW9uUG9pbnRGb3IoY29uc3QgTm9kZSog
bm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSAmJiBub2RlLT5wYXJlbnROb2RlKCkpOwor
CisgICAgaWYgKG5vZGUtPnBhcmVudE5vZGUoKS0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAg
aWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IHRvU2hhZG93Um9vdChub2RlLT5w
YXJlbnROb2RlKCkpLT5hc3NpZ25lZFRvKCkpCisgICAgICAgICAgICByZXR1cm4gaW5zZXJ0aW9u
UG9pbnQ7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgSFRNTENvbnRlbnRTZWxl
Y3Rpb24qIGZvdW5kID0gc2VsZWN0b3IoKS5maW5kRm9yKG5vZGUpOworICAgIGlmICghZm91bmQp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBmb3VuZC0+aW5zZXJ0aW9uUG9pbnQoKTsK
K30KKworSFRNTENvbnRlbnRTZWxlY3Rpb24qIEVsZW1lbnRTaGFkb3c6OnNlbGVjdGlvbkZvcihj
b25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdG9yLmZpbmRGb3Io
bm9kZSk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6cmVhdHRhY2goKQoreworICAgIGRldGFj
aCgpOworICAgIGF0dGFjaCgpOworfQorCitib29sIEVsZW1lbnRTaGFkb3c6OmNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpCit7CisgICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKyAgICBm
b3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9
IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICBpZiAocm9vdC0+Y2hpbGROZWVkc1N0
eWxlUmVjYWxjKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpuZWVkc1N0eWxlUmVjYWxjKCkKK3sKKyAgICBB
U1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9
IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290
KCkpCisgICAgICAgIGlmIChyb290LT5uZWVkc1N0eWxlUmVjYWxjKCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBFbGVtZW50U2hhZG93
OjpyZWNhbGNTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgU2hhZG93Um9v
dCogeW91bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoIXlvdW5nZXN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNo
YWRvdygpKQorICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIGVs
c2UgeworICAgICAgICBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyID0geW91bmdlc3QtPmRv
Y3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKTsKKworICAgICAgICBzdHlsZVJlc29sdmVyLT5wdXNo
UGFyZW50U2hhZG93Um9vdCh5b3VuZ2VzdCk7CisgICAgICAgIGZvciAoTm9kZSogbiA9IHlvdW5n
ZXN0LT5maXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAg
ICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihuKS0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG4t
PmlzVGV4dE5vZGUoKSkKKyAgICAgICAgICAgICAgICB0b1RleHQobiktPnJlY2FsY1RleHRTdHls
ZShjaGFuZ2UpOworICAgICAgICB9CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnBvcFBhcmVudFNo
YWRvd1Jvb3QoeW91bmdlc3QpOworICAgIH0KKworICAgIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RD
aGlsZHJlbkFuZFNoYWRvdygpOworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0
U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAg
ICAgICAgcm9vdC0+Y2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgICAgIHJvb3QtPmNsZWFy
Q2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgfQorfQorCitib29sIEVsZW1lbnRTaGFkb3c6
Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQoreworICAgIHJldHVybiBtX25l
ZWRzUmVjYWxjdWxhdGVDb250ZW50IHx8ICh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSAmJiB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKS0+aGFzSW5zZXJ0aW9uUG9pbnQoKSk7Cit9CisKK3ZvaWQgRWxlbWVudFNo
YWRvdzo6aG9zdENoaWxkcmVuQ2hhbmdlZCgpCit7CisgICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93
Um9vdCgpKTsKKworICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCktPmhhc0luc2VydGlvblBv
aW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQg
ZGV0YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93
Um9vdDo6cmVjYWxjU3R5bGUoKS4KKyAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5k
U2hhZG93KCk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6c2V0TmVlZHNSZWF0dGFjaEhvc3RD
aGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IHRy
dWU7CisKKyAgICBob3N0KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKwordm9pZCBFbGVt
ZW50U2hhZG93OjpyZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgQVNTRVJU
KHlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKworICAgIEVsZW1lbnQqIGhvc3ROb2RlID0geW91bmdl
c3RTaGFkb3dSb290KCktPmhvc3QoKTsKKyAgICBob3N0Tm9kZS0+ZGV0YWNoQ2hpbGRyZW5JZk5l
ZWRlZCgpOworICAgIHJlYXR0YWNoKCk7CisgICAgaG9zdE5vZGUtPmF0dGFjaENoaWxkcmVuSWZO
ZWVkZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgwNDgwYjgwMmE1OGM2MTA2YmQyM2I2MTlkMThiMTQ3ZjRmZTA5NzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCkBAIC0w
LDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBFbGVtZW50U2hhZG93X2gKKyNkZWZpbmUgRWxlbWVudFNo
YWRvd19oCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRNTENvbnRl
bnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlIDx3dGYvRG91
Ymx5TGlua2VkTGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2RlOworY2xhc3Mg
RWxlbWVudDsKK2NsYXNzIEluc2VydGlvblBvaW50OworY2xhc3MgVHJlZVNjb3BlOworY2xhc3Mg
SFRNTENvbnRlbnRTZWxlY3Rpb247CisKK2NsYXNzIEVsZW1lbnRTaGFkb3cgeworcHVibGljOgor
ICAgIEVsZW1lbnRTaGFkb3coKTsKKyAgICB+RWxlbWVudFNoYWRvdygpOworCisgICAgRWxlbWVu
dCogaG9zdCgpIGNvbnN0OworCisgICAgYm9vbCBoYXNTaGFkb3dSb290KCkgY29uc3Q7CisgICAg
U2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCkgY29uc3Q7CisgICAgU2hhZG93Um9vdCog
b2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0OworCisgICAgdm9pZCBhZGRTaGFkb3dSb290KEVsZW1l
bnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7CisKKyAgICB2b2lkIHdpbGxSZW1vdmUo
KTsKKworICAgIHZvaWQgc2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSopOworCisgICAgdm9p
ZCBhdHRhY2goKTsKKyAgICB2b2lkIGRldGFjaCgpOworICAgIHZvaWQgcmVhdHRhY2goKTsKKyAg
ICB2b2lkIGF0dGFjaEhvc3QoRWxlbWVudCopOworICAgIHZvaWQgZGV0YWNoSG9zdChFbGVtZW50
Kik7CisKKyAgICBib29sIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOworICAgIGJvb2wgbmVlZHNT
dHlsZVJlY2FsYygpOworICAgIHZvaWQgcmVjYWxjU3R5bGUoTm9kZTo6U3R5bGVDaGFuZ2UpOwor
ICAgIHZvaWQgc2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIHZv
aWQgY2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgYm9vbCBu
ZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgdm9pZCByZWF0dGFjaEhv
c3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIHZvaWQgaG9zdENoaWxkcmVuQ2hhbmdlZCgpOwor
CisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50Rm9yKGNvbnN0IE5vZGUqKSBjb25z
dDsKKyAgICBIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uRm9yKGNvbnN0IE5vZGUqKSBj
b25zdDsKKworICAgIEhUTUxDb250ZW50U2VsZWN0b3ImIHNlbGVjdG9yKCk7CisgICAgY29uc3Qg
SFRNTENvbnRlbnRTZWxlY3RvciYgc2VsZWN0b3IoKSBjb25zdDsKKworcHJpdmF0ZToKKworICAg
IERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKKyAgICBIVE1MQ29u
dGVudFNlbGVjdG9yIG1fc2VsZWN0b3I7CisgICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250
ZW50IDogMTsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFbGVtZW50U2hhZG93KTsKK307CisK
K2lubGluZSBib29sIEVsZW1lbnRTaGFkb3c6Omhhc1NoYWRvd1Jvb3QoKSBjb25zdAoreworICAg
IHJldHVybiAhbV9zaGFkb3dSb290cy5pc0VtcHR5KCk7Cit9CisKK2lubGluZSBTaGFkb3dSb290
KiBFbGVtZW50U2hhZG93Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdAoreworICAgIHJldHVy
biBtX3NoYWRvd1Jvb3RzLmhlYWQoKTsKK30KKworaW5saW5lIFNoYWRvd1Jvb3QqIEVsZW1lbnRT
aGFkb3c6Om9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3NoYWRvd1Jv
b3RzLnRhaWwoKTsKK30KKworaW5saW5lIEhUTUxDb250ZW50U2VsZWN0b3ImIEVsZW1lbnRTaGFk
b3c6OnNlbGVjdG9yKCkKK3sKKyAgICByZXR1cm4gbV9zZWxlY3RvcjsKK30KKworaW5saW5lIGNv
bnN0IEhUTUxDb250ZW50U2VsZWN0b3ImIEVsZW1lbnRTaGFkb3c6OnNlbGVjdG9yKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zZWxlY3RvcjsKK30KKworaW5saW5lIHZvaWQgRWxlbWVudFNoYWRv
dzo6Y2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKK3sKKyAgICBtX25l
ZWRzUmVjYWxjdWxhdGVDb250ZW50ID0gZmFsc2U7Cit9CisKK2lubGluZSBFbGVtZW50KiBFbGVt
ZW50U2hhZG93Ojpob3N0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsK
KyAgICByZXR1cm4geW91bmdlc3RTaGFkb3dSb290KCktPmhvc3QoKTsKK30KKworY2xhc3MgU2hh
ZG93Um9vdFZlY3RvciA6IHB1YmxpYyBWZWN0b3I8UmVmUHRyPFNoYWRvd1Jvb3Q+ID4geworcHVi
bGljOgorICAgIGV4cGxpY2l0IFNoYWRvd1Jvb3RWZWN0b3IoRWxlbWVudFNoYWRvdyogdHJlZSkK
KyAgICB7CisgICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHRyZWUtPnlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAg
ICAgICBhcHBlbmQocm9vdCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggYmRiZGQ1YWNlMmE4NTZlOGQ1OWViNzg4NDNlZDZkZGFjZTRk
YzRlOS4uYzY0NGJhMWY5YjM4YTgwOTkyYWIwM2UyZWRkYjAwOWY5YzBjZTBlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2lu
Y2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudENv
bnRleHQuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNoTWVkaWF0b3IuaCIKQEAgLTg1LDcgKzg2
LDYgQEAKICNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1
ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtODM1LDcgKzgzNSw3IEBAIGJvb2wgTm9kZTo6aGFzTm9u
RW1wdHlCb3VuZGluZ0JveCgpIGNvbnN0CiAKIGlubGluZSBzdGF0aWMgU2hhZG93Um9vdCogb2xk
ZXN0U2hhZG93Um9vdEZvcihjb25zdCBOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5p
c0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkgPyB0b0Vs
ZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpIDogMDsKKyAgICBy
ZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93
Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpIDog
MDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFuZ2UoU3R5bGVDaGFuZ2VUeXBl
IGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cAppbmRleCAyNWY2YTJiMjVmNTY2YzFlYWIzYjU2ZmI5NjUzOTgyZDIwMzk0NWYzLi4yNzFmNWNh
ZDBiZTEwYzRiYzJjMjFlNjk2MDgwZjIyNDVhMDM5OWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJO
b2RlUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgorI2lu
Y2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50
U2VsZWN0b3IuaCIKQEAgLTM4LDcgKzM5LDYgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1
ZGUgIlNoYWRvd1RyZWUuaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKQEAgLTU1LDcgKzU1LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdD
b250ZXh0KE5vZGUqIG5vZGUpCiAgICAgOiBtX3BoYXNlKEF0dGFjaGluZ05vdEluVHJlZSkKICAg
ICAsIG1fbm9kZShub2RlKQogICAgICwgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
MCkKLSAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93VHJlZSgwKQorICAgICwgbV92aXN1YWxQYXJl
bnRTaGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoMCkKICAgICAsIG1fc3R5bGUoMCkK
ICAgICAsIG1fcGFyZW50Rmxvd1JlbmRlcmVyKDApCkBAIC03MiwxMiArNzIsMTIgQEAgTm9kZVJl
bmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAKICAgICBp
ZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkgfHwgcGFyZW50LT5pc1NoYWRvd1Jvb3QoKSkgewog
ICAgICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHBhcmVudCkt
Pmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93VHJlZSA9
IHRvRWxlbWVudChwYXJlbnQpLT5zaGFkb3dUcmVlKCk7CisgICAgICAgICAgICBtX3Zpc3VhbFBh
cmVudFNoYWRvdyA9IHRvRWxlbWVudChwYXJlbnQpLT5zaGFkb3coKTsKICAgICAgICAgZWxzZSBp
ZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hh
ZG93VHJlZSA9IHRvU2hhZG93Um9vdChwYXJlbnQpLT50cmVlKCk7CisgICAgICAgICAgICBtX3Zp
c3VhbFBhcmVudFNoYWRvdyA9IHRvU2hhZG93Um9vdChwYXJlbnQpLT5vd25lcigpOwogCi0gICAg
ICAgIGlmIChtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUpIHsKLSAgICAgICAgICAgIGlmICgobV9p
bnNlcnRpb25Qb2ludCA9IG1fdmlzdWFsUGFyZW50U2hhZG93VHJlZS0+aW5zZXJ0aW9uUG9pbnRG
b3IobV9ub2RlKSkpIHsKKyAgICAgICAgaWYgKG1fdmlzdWFsUGFyZW50U2hhZG93KSB7CisgICAg
ICAgICAgICBpZiAoKG1faW5zZXJ0aW9uUG9pbnQgPSBtX3Zpc3VhbFBhcmVudFNoYWRvdy0+aW5z
ZXJ0aW9uUG9pbnRGb3IobV9ub2RlKSkpIHsKICAgICAgICAgICAgICAgICBpZiAodG9TaGFkb3dS
b290KG1faW5zZXJ0aW9uUG9pbnQtPnNoYWRvd1RyZWVSb290Tm9kZSgpKS0+aXNVc2VkRm9yUmVu
ZGVyaW5nKCkpIHsKICAgICAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFjaGluZ0Rpc3Ry
aWJ1dGVkOwogICAgICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRT
dHlsZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQpLnBhcmVudE5vZGVG
b3JSZW5kZXJpbmdBbmRTdHlsZSgpOwpAQCAtMTE4LDcgKzExOCw3IEBAIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlLCBSZW5kZXJTdHlsZSogc3R5
bGUpCiAgICAgOiBtX3BoYXNlKENhbGN1bGF0aW5nKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAg
LCBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgwKQotICAgICwgbV92aXN1YWxQYXJl
bnRTaGFkb3dUcmVlKDApCisgICAgLCBtX3Zpc3VhbFBhcmVudFNoYWRvdygwKQogICAgICwgbV9p
bnNlcnRpb25Qb2ludCgwKQogICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fcGFyZW50Rmxv
d1JlbmRlcmVyKDApCkBAIC0yOTMsOCArMjkzLDggQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6cGFyZW50UmVuZGVyZXIoKSBjb25zdAogCiB2b2lkIE5vZGVSZW5kZXJpbmdD
b250ZXh0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9waGFzZSA9PSBBdHRh
Y2hpbmdOb3REaXN0cmlidXRlZCAmJiBtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUpCi0gICAgICAg
IG1fdmlzdWFsUGFyZW50U2hhZG93VHJlZS0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworICAgIGlm
IChtX3BoYXNlID09IEF0dGFjaGluZ05vdERpc3RyaWJ1dGVkICYmIG1fdmlzdWFsUGFyZW50U2hh
ZG93KQorICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvdy0+aG9zdENoaWxkcmVuQ2hhbmdlZCgp
OwogfQogCiBib29sIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpzaG91bGRDcmVhdGVSZW5kZXJlcigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDFl
ZGU3MDhhYmY0OWI3MTM0ODUyNDViMTQwNDBkNWM0MGIzMGY4N2YuLjFkM2RhZjNmYzU0MjY3ZDNi
NDdjZGExYmI5MTcxZTJhYTIxYTM5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsK
LWNsYXNzIFNoYWRvd1RyZWU7CitjbGFzcyBFbGVtZW50U2hhZG93OwogCiBjbGFzcyBOb2RlUmVu
ZGVyaW5nQ29udGV4dCB7CiBwdWJsaWM6CkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAg
QXR0YWNoaW5nUGhhc2UgbV9waGFzZTsKICAgICBOb2RlKiBtX25vZGU7CiAgICAgQ29udGFpbmVy
Tm9kZSogbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGU7Ci0gICAgU2hhZG93VHJlZSog
bV92aXN1YWxQYXJlbnRTaGFkb3dUcmVlOworICAgIEVsZW1lbnRTaGFkb3cqIG1fdmlzdWFsUGFy
ZW50U2hhZG93OwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50OwogICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIG1f
cGFyZW50Rmxvd1JlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDhjMWQ4
YjJkOGM2NDk3ZWUwZDRkMTkwYzNmN2E2NDI2YjY2NDc3MzguLjc3MjYxM2Y3MTc4ZTU4YzVjZGQy
NTA5NThkMTMzMmI4NmVlMTc0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTMy
LDEyICszMiwxMiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93
LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRl
bnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkluc2VydGlv
blBvaW50LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiU2hhZG93VHJl
ZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgog
I2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTE4LDcgKzExOCw3IEBAIFBhc3NSZWZQdHI8U2hhZG93
Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVh
dGlvblB1CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3QgPSBhZG9wdFJlZihuZXcg
U2hhZG93Um9vdChlbGVtZW50LT5kb2N1bWVudCgpKSk7CiAKICAgICBlYyA9IDA7Ci0gICAgZWxl
bWVudC0+ZW5zdXJlU2hhZG93VHJlZSgpLT5hZGRTaGFkb3dSb290KGVsZW1lbnQsIHNoYWRvd1Jv
b3QsIGVjKTsKKyAgICBlbGVtZW50LT5lbnN1cmVTaGFkb3coKS0+YWRkU2hhZG93Um9vdChlbGVt
ZW50LCBzaGFkb3dSb290LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAg
ICBBU1NFUlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5ob3N0KCkpOwpAQCAtMTcxLDEwICsxNzEs
MTAgQEAgYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNv
bnN0CiAgICAgfQogfQogCi1TaGFkb3dUcmVlKiBTaGFkb3dSb290Ojp0cmVlKCkgY29uc3QKK0Vs
ZW1lbnRTaGFkb3cqIFNoYWRvd1Jvb3Q6Om93bmVyKCkgY29uc3QKIHsKICAgICBpZiAoaG9zdCgp
KQotICAgICAgICByZXR1cm4gaG9zdCgpLT5zaGFkb3dUcmVlKCk7CisgICAgICAgIHJldHVybiBo
b3N0KCktPnNoYWRvdygpOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aAppbmRleCBlNWIyMjFiNzNhMzM3MWEwNTQ1ZjBjNDk1OTcxNjY4ZGE4MjY5YWE4Li42OGJjNDdh
ZjZmYzIxNTg0ZmQ0YjgyZDA0YjllYjZlNTdhODBmYzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgRE9NU2VsZWN0aW9uOwogY2xhc3MgSFRNTENvbnRl
bnRFbGVtZW50OwogY2xhc3MgSFRNTENvbnRlbnRTZWxlY3RvcjsKIGNsYXNzIEluc2VydGlvblBv
aW50OwotY2xhc3MgU2hhZG93VHJlZTsKK2NsYXNzIEVsZW1lbnRTaGFkb3c7CiAKIGNsYXNzIFNo
YWRvd1Jvb3QgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCwgcHVibGljIFRyZWVTY29wZSwgcHVi
bGljIERvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+IHsKICAgICBmcmllbmQgY2xhc3Mg
V1RGOjpEb3VibHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dSb290PjsKQEAgLTcxLDcgKzcxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0QXBwbHlBdXRob3JTaGVldHMoYm9vbCk7CiAKICAgICBFbGVt
ZW50KiBob3N0KCkgY29uc3QgeyByZXR1cm4gc2hhZG93SG9zdCgpOyB9Ci0gICAgU2hhZG93VHJl
ZSogdHJlZSgpIGNvbnN0OworICAgIEVsZW1lbnRTaGFkb3cqIG93bmVyKCkgY29uc3Q7CiAKICAg
ICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRJbm5lckhUTUwoY29uc3Qg
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTU5ZDFlODM4NmJmYjMyYTQ5MTM3NDMxMzk0NjU5
ZTVkZjIxY2VhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI3
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIK
LQotI2luY2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQu
aCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUg
IlN0eWxlUmVzb2x2ZXIuaCIKLSNpbmNsdWRlICJUZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotU2hhZG93VHJlZTo6U2hhZG93VHJlZSgpCi0gICAgOiBtX25lZWRzUmVjYWxjdWxhdGVD
b250ZW50KGZhbHNlKQotewotfQotCi1TaGFkb3dUcmVlOjp+U2hhZG93VHJlZSgpCi17Ci0gICAg
aWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKLX0K
LQotc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwgU2hh
ZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFzaGFk
b3dSb290KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChzaGFkb3dSb290LT5zaGFk
b3dIb3N0KCkpIHsKLSAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoc2hhZG93Um9vdC0+ZG9jdW1lbnQoKSAh
PSBkb2N1bWVudCkgewotICAgICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFNoYWRv
d1RyZWU6OmFkZFNoYWRvd1Jvb3QoRWxlbWVudCogc2hhZG93SG9zdCwgUGFzc1JlZlB0cjxTaGFk
b3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBBU1NFUlQoc2hh
ZG93SG9zdCk7Ci0gICAgQVNTRVJUKHNoYWRvd1Jvb3QpOwotCi0gICAgaWYgKCF2YWxpZGF0ZVNo
YWRvd1Jvb3Qoc2hhZG93SG9zdC0+ZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5nZXQoKSwgZWMpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBzaGFkb3dSb290LT5zZXRTaGFkb3dIb3N0KHNoYWRvd0hv
c3QpOwotICAgIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyKHNoYWRvd0hvc3QpLm5vdGlmeShz
aGFkb3dSb290LmdldCgpKTsKLQotICAgIGlmIChzaGFkb3dIb3N0LT5hdHRhY2hlZCgpKSB7Ci0g
ICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsKLSAgICAgICAgZGV0YWNoKCk7Ci0gICAg
ICAgIHNoYWRvd0hvc3QtPmRldGFjaENoaWxkcmVuKCk7Ci0gICAgfQotCi0gICAgbV9zaGFkb3dS
b290cy5wdXNoKHNoYWRvd1Jvb3QuZ2V0KCkpOwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUHVzaFNoYWRvd1Jvb3Qoc2hhZG93SG9zdCwgc2hhZG93Um9vdC5nZXQoKSk7Ci19Ci0K
LXZvaWQgU2hhZG93VHJlZTo6cmVtb3ZlQWxsU2hhZG93Um9vdHMoKQotewotICAgIGlmICghaGFz
U2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBEb250IHByb3RlY3QgdGhp
cyByZWYgY291bnQuCi0gICAgRWxlbWVudCogc2hhZG93SG9zdCA9IGhvc3QoKTsKLQotICAgIHdo
aWxlIChSZWZQdHI8U2hhZG93Um9vdD4gb2xkUm9vdCA9IG1fc2hhZG93Um9vdHMucmVtb3ZlSGVh
ZCgpKSB7Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBvcFNoYWRvd1Jv
b3Qoc2hhZG93SG9zdCwgb2xkUm9vdC5nZXQoKSk7Ci0gICAgICAgIHNoYWRvd0hvc3QtPmRvY3Vt
ZW50KCktPnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKG9sZFJvb3QuZ2V0KCkpOwotCi0gICAg
ICAgIGlmIChvbGRSb290LT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgb2xkUm9vdC0+ZGV0YWNo
KCk7Ci0KLSAgICAgICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKLSAgICAgICAgb2xkUm9v
dC0+c2V0UHJldigwKTsKLSAgICAgICAgb2xkUm9vdC0+c2V0TmV4dCgwKTsKLSAgICAgICAgc2hh
ZG93SG9zdC0+ZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRlZChvbGRSb290LmdldCgpKTsKLSAgICAg
ICAgQ2hpbGROb2RlUmVtb3ZhbE5vdGlmaWVyKHNoYWRvd0hvc3QpLm5vdGlmeShvbGRSb290Lmdl
dCgpKTsKLSAgICB9Ci0KLSAgICBpZiAoc2hhZG93SG9zdC0+YXR0YWNoZWQoKSkKLSAgICAgICAg
c2hhZG93SG9zdC0+YXR0YWNoQ2hpbGRyZW5MYXppbHkoKTsKLX0KLQotdm9pZCBTaGFkb3dUcmVl
Ojp3aWxsUmVtb3ZlKCkKLXsKLSAgICBTaGFkb3dSb290VmVjdG9yIHJvb3RzKHRoaXMpOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcm9vdHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHJvb3Rz
W2ldLT53aWxsUmVtb3ZlKCk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6c2V0UGFyZW50VHJlZVNj
b3BlKFRyZWVTY29wZSogc2NvcGUpCi17Ci0gICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91
bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkK
LSAgICAgICAgcm9vdC0+c2V0UGFyZW50VHJlZVNjb3BlKHNjb3BlKTsKLX0KLQotdm9pZCBTaGFk
b3dUcmVlOjphdHRhY2goKQotewotICAgIC8vIENoaWxkcmVuIG9mIG1fc2VsZWN0b3IgaXMgcG9w
dWxhdGVkIGxhemlseSBpbgotICAgIC8vIGVuc3VyZVNlbGVjdG9yKCksIGFuZCBoZXJlIHdlIGp1
c3QgZW5zdXJlIHRoYXQgaXQgaXMgaW4gY2xlYW4gc3RhdGUuCi0gICAgQVNTRVJUKCFzZWxlY3Rv
cigpLmhhc1BvcHVsYXRlZCgpKTsKLQotICAgIHNlbGVjdG9yKCkud2lsbFNlbGVjdCgpOwotICAg
IGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKLSAgICAgICAgaWYgKCFyb290LT5hdHRhY2hl
ZCgpKQotICAgICAgICAgICAgcm9vdC0+YXR0YWNoKCk7Ci0gICAgfQotICAgIHNlbGVjdG9yKCku
ZGlkU2VsZWN0KCk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6YXR0YWNoSG9zdChFbGVtZW50KiBo
b3N0KQotewotICAgIGF0dGFjaCgpOwotICAgIGhvc3QtPmF0dGFjaENoaWxkcmVuSWZOZWVkZWQo
KTsKLSAgICBob3N0LT5hdHRhY2hBc05vZGUoKTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjpkZXRh
Y2goKQotewotICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgp
OyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKLSAgICAgICAgaWYgKHJv
b3QtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICByb290LT5kZXRhY2goKTsKLSAgICB9Ci19Ci0K
LXZvaWQgU2hhZG93VHJlZTo6ZGV0YWNoSG9zdChFbGVtZW50KiBob3N0KQotewotICAgIGhvc3Qt
PmRldGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKLSAgICBkZXRhY2goKTsKLSAgICBob3N0LT5kZXRh
Y2hBc05vZGUoKTsKLX0KLQotSW5zZXJ0aW9uUG9pbnQqIFNoYWRvd1RyZWU6Omluc2VydGlvblBv
aW50Rm9yKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG5vZGUgJiYgbm9k
ZS0+cGFyZW50Tm9kZSgpKTsKLQotICAgIGlmIChub2RlLT5wYXJlbnROb2RlKCktPmlzU2hhZG93
Um9vdCgpKSB7Ci0gICAgICAgIGlmIChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQgPSB0
b1NoYWRvd1Jvb3Qobm9kZS0+cGFyZW50Tm9kZSgpKS0+YXNzaWduZWRUbygpKQotICAgICAgICAg
ICAgcmV0dXJuIGluc2VydGlvblBvaW50OwotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQot
ICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBmb3VuZCA9IHNlbGVjdG9yKCkuZmluZEZvcihub2Rl
KTsKLSAgICBpZiAoIWZvdW5kKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gZm91bmQt
Pmluc2VydGlvblBvaW50KCk7Ci19Ci0KLUhUTUxDb250ZW50U2VsZWN0aW9uKiBTaGFkb3dUcmVl
OjpzZWxlY3Rpb25Gb3IoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9z
ZWxlY3Rvci5maW5kRm9yKG5vZGUpOwotfQotCi12b2lkIFNoYWRvd1RyZWU6OnJlYXR0YWNoKCkK
LXsKLSAgICBkZXRhY2goKTsKLSAgICBhdHRhY2goKTsKLX0KLQotYm9vbCBTaGFkb3dUcmVlOjpj
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKQotewotICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3Qo
KSk7Ci0gICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJv
b3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgaWYgKHJvb3QtPmNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgU2hhZG93VHJlZTo6bmVlZHNTdHlsZVJlY2FsYygpCi17
Ci0gICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgpKTsKLSAgICBmb3IgKFNoYWRvd1Jvb3Qq
IHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hh
ZG93Um9vdCgpKQotICAgICAgICBpZiAocm9vdC0+bmVlZHNTdHlsZVJlY2FsYygpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgU2hhZG93
VHJlZTo6cmVjYWxjU2hhZG93VHJlZVN0eWxlKE5vZGU6OlN0eWxlQ2hhbmdlIGNoYW5nZSkKLXsK
LSAgICBTaGFkb3dSb290KiB5b3VuZ2VzdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOwotICAgIGlm
ICgheW91bmdlc3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuZWVkc1JlYXR0YWNoSG9z
dENoaWxkcmVuQW5kU2hhZG93KCkpCi0gICAgICAgIHJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hh
ZG93KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIg
PSB5b3VuZ2VzdC0+ZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpOwotCi0gICAgICAgIHN0eWxl
UmVzb2x2ZXItPnB1c2hQYXJlbnRTaGFkb3dSb290KHlvdW5nZXN0KTsKLSAgICAgICAgZm9yIChO
b2RlKiBuID0geW91bmdlc3QtPmZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkp
IHsKLSAgICAgICAgICAgIGlmIChuLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pLT5yZWNhbGNTdHlsZShjaGFuZ2UpOwotICAgICAgICAg
ICAgZWxzZSBpZiAobi0+aXNUZXh0Tm9kZSgpKQotICAgICAgICAgICAgICAgIHRvVGV4dChuKS0+
cmVjYWxjVGV4dFN0eWxlKGNoYW5nZSk7Ci0gICAgICAgIH0KLSAgICAgICAgc3R5bGVSZXNvbHZl
ci0+cG9wUGFyZW50U2hhZG93Um9vdCh5b3VuZ2VzdCk7Ci0gICAgfQotCi0gICAgY2xlYXJOZWVk
c1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAgZm9yIChTaGFkb3dSb290KiBy
b290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRv
d1Jvb3QoKSkgewotICAgICAgICByb290LT5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICAg
ICAgcm9vdC0+Y2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICB9Ci19Ci0KLWJvb2wg
U2hhZG93VHJlZTo6bmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCi17Ci0gICAg
cmV0dXJuIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgfHwgKHlvdW5nZXN0U2hhZG93Um9vdCgp
ICYmIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNJbnNlcnRpb25Qb2ludCgpKTsKLX0KLQotdm9p
ZCBTaGFkb3dUcmVlOjpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKLXsKLSAgICBBU1NFUlQoeW91bmdl
c3RTaGFkb3dSb290KCkpOwotCi0gICAgaWYgKCF5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aGFzSW5z
ZXJ0aW9uUG9pbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gVGhpcyByZXN1bHRzIGlu
IGZvcmNlZCBkZXRhY2hpbmcvYXR0YWNoaW5nIG9mIHRoZSBzaGFkb3cgcmVuZGVyIHRyZWUuIFNl
ZSBTaGFkb3dSb290OjpyZWNhbGNTdHlsZSgpLgotICAgIHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3coKTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjpzZXROZWVkc1JlYXR0YWNo
SG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50
ID0gdHJ1ZTsKLQotICAgIGhvc3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwotfQotCi12b2lk
IFNoYWRvd1RyZWU6OnJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBBU1NF
UlQoeW91bmdlc3RTaGFkb3dSb290KCkpOwotCi0gICAgRWxlbWVudCogaG9zdE5vZGUgPSB5b3Vu
Z2VzdFNoYWRvd1Jvb3QoKS0+aG9zdCgpOwotICAgIGhvc3ROb2RlLT5kZXRhY2hDaGlsZHJlbklm
TmVlZGVkKCk7Ci0gICAgcmVhdHRhY2goKTsKLSAgICBob3N0Tm9kZS0+YXR0YWNoQ2hpbGRyZW5J
Zk5lZWRlZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiYTA4NmQ4YmNiMThhNTM5MGU2MGEyMjMzMjhh
NWMxNjc1NzM3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDE0
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBTaGFkb3dUcmVlX2gKLSNkZWZpbmUgU2hhZG93VHJlZV9oCi0K
LSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rv
ci5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2Vk
TGlzdC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBOb2RlOwotY2xhc3MgRWxlbWVudDsK
LWNsYXNzIEluc2VydGlvblBvaW50OwotY2xhc3MgVHJlZVNjb3BlOwotY2xhc3MgSFRNTENvbnRl
bnRTZWxlY3Rpb247Ci0KLWNsYXNzIFNoYWRvd1RyZWUgewotcHVibGljOgotICAgIFNoYWRvd1Ry
ZWUoKTsKLSAgICB+U2hhZG93VHJlZSgpOwotCi0gICAgRWxlbWVudCogaG9zdCgpIGNvbnN0Owot
Ci0gICAgYm9vbCBoYXNTaGFkb3dSb290KCkgY29uc3Q7Ci0gICAgU2hhZG93Um9vdCogeW91bmdl
c3RTaGFkb3dSb290KCkgY29uc3Q7Ci0gICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgp
IGNvbnN0OwotCi0gICAgdm9pZCBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBh
c3NSZWZQdHI8U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHJlbW92ZUFs
bFNoYWRvd1Jvb3RzKCk7Ci0KLSAgICB2b2lkIHdpbGxSZW1vdmUoKTsKLQotICAgIHZvaWQgc2V0
UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSopOwotCi0gICAgdm9pZCBhdHRhY2goKTsKLSAgICB2
b2lkIGRldGFjaCgpOwotICAgIHZvaWQgcmVhdHRhY2goKTsKLSAgICB2b2lkIGF0dGFjaEhvc3Qo
RWxlbWVudCopOwotICAgIHZvaWQgZGV0YWNoSG9zdChFbGVtZW50Kik7Ci0KLSAgICBib29sIGNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpOwotICAg
IHZvaWQgcmVjYWxjU2hhZG93VHJlZVN0eWxlKE5vZGU6OlN0eWxlQ2hhbmdlKTsKLSAgICB2b2lk
IHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKLSAgICB2b2lkIGNsZWFy
TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIGJvb2wgbmVlZHNSZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIHZvaWQgcmVhdHRhY2hIb3N0Q2hpbGRy
ZW5BbmRTaGFkb3coKTsKLSAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKLQotICAgIElu
c2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihjb25zdCBOb2RlKikgY29uc3Q7Ci0gICAg
SFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbkZvcihjb25zdCBOb2RlKikgY29uc3Q7Ci0K
LSAgICBIVE1MQ29udGVudFNlbGVjdG9yJiBzZWxlY3RvcigpOwotICAgIGNvbnN0IEhUTUxDb250
ZW50U2VsZWN0b3ImIHNlbGVjdG9yKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0KLSAgICBEb3VibHlM
aW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7Ci0gICAgSFRNTENvbnRlbnRTZWxl
Y3RvciBtX3NlbGVjdG9yOwotICAgIGJvb2wgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA6IDE7
Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2hhZG93VHJlZSk7Ci19OwotCi1pbmxpbmUgYm9v
bCBTaGFkb3dUcmVlOjpoYXNTaGFkb3dSb290KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fc2hh
ZG93Um9vdHMuaXNFbXB0eSgpOwotfQotCi1pbmxpbmUgU2hhZG93Um9vdCogU2hhZG93VHJlZTo6
eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zaGFkb3dSb290cy5o
ZWFkKCk7Ci19Ci0KLWlubGluZSBTaGFkb3dSb290KiBTaGFkb3dUcmVlOjpvbGRlc3RTaGFkb3dS
b290KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zaGFkb3dSb290cy50YWlsKCk7Ci19Ci0KLWlu
bGluZSBIVE1MQ29udGVudFNlbGVjdG9yJiBTaGFkb3dUcmVlOjpzZWxlY3RvcigpCi17Ci0gICAg
cmV0dXJuIG1fc2VsZWN0b3I7Ci19Ci0KLWlubGluZSBjb25zdCBIVE1MQ29udGVudFNlbGVjdG9y
JiBTaGFkb3dUcmVlOjpzZWxlY3RvcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2VsZWN0b3I7
Ci19Ci0KLWlubGluZSB2b2lkIFNoYWRvd1RyZWU6OmNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IGZhbHNl
OwotfQotCi1pbmxpbmUgRWxlbWVudCogU2hhZG93VHJlZTo6aG9zdCgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgp
LT5ob3N0KCk7Ci19Ci0KLWNsYXNzIFNoYWRvd1Jvb3RWZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFJl
ZlB0cjxTaGFkb3dSb290PiA+IHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBTaGFkb3dSb290VmVj
dG9yKFNoYWRvd1RyZWUqIHRyZWUpCi0gICAgewotICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJv
b3QgPSB0cmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVy
U2hhZG93Um9vdCgpKQotICAgICAgICAgICAgYXBwZW5kKHJvb3QpOwotICAgIH0KLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIu
Y3BwCmluZGV4IDgyZWE0Nzc0NzgzYjViMTA3ZGJlNzE3MjZhYjJlYWY4NjcxYmY1OTEuLmVkMzc0
NTZhMGVhZjRiMTE5YWZlMDY3ODcwZDkyYmZjZmQyMWFlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAKQEAgLTI2LDE1ICsyNiwxNSBAQAogI2luY2x1ZGUgIlRyZWVT
Y29wZUFkb3B0ZXIuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVu
dFNoYWRvdy5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
c3RhdGljIGlubGluZSBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlRm9yKE5vZGUqIG5vZGUpCitzdGF0
aWMgaW5saW5lIEVsZW1lbnRTaGFkb3cqIHNoYWRvd0ZvcihOb2RlKiBub2RlKQogewotICAgIHJl
dHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUo
KSA6IDA7CisgICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2Rl
KS0+c2hhZG93KCkgOiAwOwogfQogCiB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9O
ZXdTY29wZShOb2RlKiByb290KSBjb25zdApAQCAtNjMsMTAgKzYzLDEwIEBAIHZvaWQgVHJlZVNj
b3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CiAgICAgICAg
IGlmICh3aWxsTW92ZVRvTmV3RG9jdW1lbnQpCiAgICAgICAgICAgICBtb3ZlTm9kZVRvTmV3RG9j
dW1lbnQobm9kZSwgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKIAotICAgICAgICBpZiAoU2hh
ZG93VHJlZSogdHJlZSA9IHNoYWRvd1RyZWVGb3Iobm9kZSkpIHsKLSAgICAgICAgICAgIHRyZWUt
PnNldFBhcmVudFRyZWVTY29wZShtX25ld1Njb3BlKTsKKyAgICAgICAgaWYgKEVsZW1lbnRTaGFk
b3cqIHNoYWRvdyA9IHNoYWRvd0Zvcihub2RlKSkgeworICAgICAgICAgICAgc2hhZG93LT5zZXRQ
YXJlbnRUcmVlU2NvcGUobV9uZXdTY29wZSk7CiAgICAgICAgICAgICBpZiAod2lsbE1vdmVUb05l
d0RvY3VtZW50KQotICAgICAgICAgICAgICAgIG1vdmVTaGFkb3dUcmVlVG9OZXdEb2N1bWVudCh0
cmVlLCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOworICAgICAgICAgICAgICAgIG1vdmVTaGFk
b3dUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKICAgICAg
ICAgfQogICAgIH0KIH0KQEAgLTc1LDE0ICs3NSwxNCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6
Om1vdmVUcmVlVG9OZXdEb2N1bWVudChOb2RlKiByb290LCBEb2N1bWVudCogb2xkRG9jdW1lbnQs
CiB7CiAgICAgZm9yIChOb2RlKiBub2RlID0gcm9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZl
cnNlTmV4dE5vZGUocm9vdCkpIHsKICAgICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5vZGUs
IG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7Ci0gICAgICAgIGlmIChTaGFkb3dUcmVlKiB0cmVl
ID0gc2hhZG93VHJlZUZvcihub2RlKSkKLSAgICAgICAgICAgIG1vdmVTaGFkb3dUcmVlVG9OZXdE
b2N1bWVudCh0cmVlLCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOworICAgICAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gc2hhZG93Rm9yKG5vZGUpKQorICAgICAgICAgICAgbW92ZVNo
YWRvd1RvTmV3RG9jdW1lbnQoc2hhZG93LCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwogICAg
IH0KIH0KIAotaW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVNoYWRvd1RyZWVUb05l
d0RvY3VtZW50KFNoYWRvd1RyZWUqIHRyZWUsIERvY3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1l
bnQqIG5ld0RvY3VtZW50KSBjb25zdAoraW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92
ZVNoYWRvd1RvTmV3RG9jdW1lbnQoRWxlbWVudFNoYWRvdyogc2hhZG93LCBEb2N1bWVudCogb2xk
RG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3QKIHsKLSAgICBmb3IgKFNoYWRv
d1Jvb3QqIHJvb3QgPSB0cmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJv
b3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRv
dy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jv
b3QoKSkKICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHJvb3QsIG9sZERvY3VtZW50LCBu
ZXdEb2N1bWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGVBZG9wdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oCmluZGV4
IDk0MjU1ZjQ3OWRhMzJiNTFjZGQ0NzhkMGQ5MTg0NDhhYzE0ODJhODMuLmMzMmExMTJhODZjYjJk
ZDJlZDc1MWM4ZWRhOGZlMTNlNDExZjczZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGVBZG9wdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFk
b3B0ZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbW92ZVRyZWVUb05l
d1Njb3BlKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIG1vdmVUcmVlVG9OZXdEb2N1bWVudChOb2Rl
KiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0Owog
ICAgIHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jdW1l
bnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7Ci0gICAgdm9pZCBtb3ZlU2hhZG93VHJl
ZVRvTmV3RG9jdW1lbnQoU2hhZG93VHJlZSosIERvY3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1l
bnQqIG5ld0RvY3VtZW50KSBjb25zdDsKKyAgICB2b2lkIG1vdmVTaGFkb3dUb05ld0RvY3VtZW50
KEVsZW1lbnRTaGFkb3cqLCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1
bWVudCkgY29uc3Q7CiAKICAgICBOb2RlKiBtX3RvQWRvcHQ7CiAgICAgVHJlZVNjb3BlKiBtX25l
d1Njb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCAxZDE5Zjg5
ZWZlN2QxYzIwZWQyNjMwOWUwZmIzY2IwMGNhYzk5N2ZhLi40ZWIzOTIyZGQxODFhNjQwZmE2Yzgz
YjUyZjU4MTFjZDgzODdlOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNw
cApAQCAtMzQsMTIgKzM0LDEyIEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2lu
Y2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRWxlbWVudFNo
YWRvdy5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUu
aCIKIAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgd3JhcHBlckVs
ZW1lbnQtPmFwcGVuZENoaWxkKGNvbG9yU3dhdGNoLnJlbGVhc2UoKSwgZWMpOwogICAgIEFTU0VS
VCghZWMpOwotICAgIGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVhc2UoKSwgZWMpOworICAgIGVsZW1lbnQo
KS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1l
bnQucmVsZWFzZSgpLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CiAgICAgCiAgICAgdXBkYXRlQ29s
b3JTd2F0Y2goKTsKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjp1cGRh
dGVDb2xvclN3YXRjaCgpCiAKIEhUTUxFbGVtZW50KiBDb2xvcklucHV0VHlwZTo6c2hhZG93Q29s
b3JTd2F0Y2goKSBjb25zdAogewotICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IGVsZW1lbnQoKS0+
c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogc2hhZG93
ID0gZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIHJldHVybiBz
aGFkb3cgPyB0b0hUTUxFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpLT5maXJzdENoaWxkKCkp
IDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYmM2OGUz
NjM3ZWFhMTY4MGVjOWEyZGQ5MjQ3M2YxZGRkZDlhMDJlNS4uNDRiZDEzZmYyYmEzNjFjZTA4MWU3
NDk2OGI1YTIzMDI0NTNmZjhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiRmlsZUlucHV0VHlwZS5oIgogCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCkBAIC0zNiw3ICsz
Nyw2IEBACiAjaW5jbHVkZSAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCIKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNo
YWRvd1RyZWUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTI5NCwxMyArMjk0LDEzIEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hh
ZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0
b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBVcGxv
YWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSwgZWMpOworICAg
IGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxl
bWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlw
bGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0
aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQogewogICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRv
d1Jvb3QoKSk7Ci0gICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8
VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFk
b3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CisgICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9u
ID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKICAgICBpZiAoYnV0dG9uKQogICAg
ICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IGZpbGVCdXR0b25D
aG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA6IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXggMzMy
ZjFhNzQwOWY4YjEzZDcxYTU0NjY4MDFmOGMzNDg4ODAzMTNiOS4uZTRlNGE5MjQ4MTM0NDY3ZGZm
ZDk4ZmQwZDViODVlNDQwODNkMGJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcApAQCAtMjMsNiArMjMsNyBAQAogCiAjaWYgRU5BQkxFKERFVEFJTFMpCiAK
KyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN1bW1hcnlFbGVtZW50
LmgiCkBAIC0zMSw3ICszMiw2IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNs
dWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0xMjQsNyArMTI0LDcgQEAgRWxlbWVudCogSFRNTERldGFpbHNFbGVtZW50OjpmaW5k
TWFpblN1bW1hcnkoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRvRWxlbWVudChjaGlsZCk7
CiAgICAgfQogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERldGFpbHNTdW1tYXJ5RWxlbWVudCo+
KHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpLT5mYWxsYmFj
a1N1bW1hcnkoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGV0YWlsc1N1bW1hcnlFbGVtZW50
Kj4oc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKS0+ZmFsbGJhY2tT
dW1tYXJ5KCk7CiB9CiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
CmluZGV4IDMwOTRjOTM1MjNlNTYzZGQxN2I5MjE5NDQ1ZWM3MjllZGY4ZDY0MTMuLmIxMDk5ZjE5
N2UzMWRiZGJiOGQyZjE0MTk1ZWIxMjk2ZGFmNDNiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC0yNywxMyArMjcsMTMgQEAKIAogI2luY2x1ZGUgIkF0
dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRv
dy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1l
bnQuaCIKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTEzMiw4ICsxMzIsOCBAQCB2b2lkIEhUTUxLZXln
ZW5FbGVtZW50OjpyZXNldCgpCiBIVE1MU2VsZWN0RWxlbWVudCogSFRNTEtleWdlbkVsZW1lbnQ6
OnNoYWRvd1NlbGVjdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0g
ICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7
Ci0gICAgcmV0dXJuIHNoYWRvdyA/IHRvSFRNTFNlbGVjdEVsZW1lbnQoc2hhZG93LT5maXJzdENo
aWxkKCkpIDogMDsKKyAgICBTaGFkb3dSb290KiByb290ID0gdGhpcy0+c2hhZG93KCktPm9sZGVz
dFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gcm9vdCA/IHRvSFRNTFNlbGVjdEVsZW1lbnQocm9v
dC0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAxYzE4ZjY2N2I5NjNjYThlYzg1N2VkMzU4
Y2ZkMjFhMzRlYWZkYjc0Li4xZTI3Y2Q0YTIyMjliZTAzYjcyMTkwNmU4YzU3MDQ4OTFiOTczZTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVu
dFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTc1LDcgKzc2LDYgQEAKICNpbmNsdWRlICJT
ZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgi
CiAjaW5jbHVkZSAiVVVJRC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTQwNjksNyArNDA2OSw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2Uo
KQogCiBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKCkKIHsK
LSAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5maXJzdENoaWxkKCkpOworICAgIHJldHVybiB0b01lZGlhQ29udHJvbHMoc2hhZG93KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKIH0KIAogYm9vbCBIVE1MTWVkaWFF
bGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKCkKQEAgLTQwNzcsNyArNDA3Nyw3IEBAIGJvb2wgSFRN
TE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scygpCiAgICAgaWYgKCFoYXNTaGFkb3dSb290
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dUcmVl
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIG5vZGUgPSBz
aGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJuIG5v
ZGUgJiYgbm9kZS0+aXNNZWRpYUNvbnRyb2xzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmNwcAppbmRleCA1NTU3YzQ1NTZhZDJlMzFlMTMyNTIwMGZkOWFk
MDY2ZDI5ODQxOTg3Li4xMzMxOTYzZjRlMTRiNTcyMDM4YTBiMWZkNmJkYTE0NzIwZmE1OGRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAjaWYgRU5BQkxFKERFVEFJTFMpCiAKICNpbmNsdWRlICJEZXRhaWxzTWFya2VyQ29u
dHJvbC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJIVE1MQ29udGVu
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGV0YWlsc0VsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKQEAgLTMzLDcgKzM0LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
LSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggMzQ3ZWNjZjQ2ZTIy
MDUxNjI2NGMyYzlmMDc2NjMwM2Y1YjQzMTY5NS4uNjM2NjNhOTdmY2M3YjBjYmZmZWY5MWY1OWI0
N2Y1ZTRlMTRmYjI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMzgsNyAr
MzksNiBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250
cm9sTXVsdGlMaW5lLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRv
d1RyZWUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0yOTQsNyArMjk0LDcgQEAg
U3RyaW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3Qg
U3RyaW5nJiBwcm9wb3NlZFZhbHVlLAogCiBIVE1MRWxlbWVudCogSFRNTFRleHRBcmVhRWxlbWVu
dDo6aW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IHNoYWRvd1Ry
ZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgTm9kZSogbm9kZSA9
IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQo
IW5vZGUgfHwgbm9kZS0+aGFzVGFnTmFtZShkaXZUYWcpKTsKICAgICByZXR1cm4gdG9IVE1MRWxl
bWVudChub2RlKTsKIH0KQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgU3RyaW5nIHBsYWNlaG9sZGVyVGV4dCA9
IHN0cmlwcGVkUGxhY2Vob2xkZXIoKTsKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHko
KSkgewogICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICAgICAgc2hhZG93VHJl
ZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCks
IGVjKTsKKyAgICAgICAgICAgIHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPnJlbW92ZUNo
aWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIGVjKTsKICAgICAgICAgICAgIEFTU0VSVCghZWMpOwog
ICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigpOwogICAgICAgICB9CkBAIC00ODEsNyAr
NDgxLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQo
KQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewogICAgICAgICBtX3BsYWNlaG9sZGVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+
c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKLSAgICAgICAg
c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9s
ZGVyLCBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5uZXh0
U2libGluZygpLCBlYyk7CisgICAgICAgIHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmlu
c2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5m
aXJzdENoaWxkKCktPm5leHRTaWJsaW5nKCksIGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAg
ICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNldElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVj
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCAxMjlmYzVlNDA3NGMyY2U5NDUyMmQ4
OThhZTk4ZTU5OTEzY2E4YWVjLi45YTNmMTYyOWEzNjZiMTkxNGJhMTQ4Y2EyMjM1MjQxMTkxZTAw
YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiRGF0ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lSW5wdXRUeXBlLmgiCiAj
aW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFk
b3cuaCIKICNpbmNsdWRlICJFbWFpbElucHV0VHlwZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKICNpbmNsdWRlICJGaWxlSW5wdXRUeXBlLmgiCkBAIC01OSw3ICs2MCw2IEBACiAjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlw
ZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAj
aW5jbHVkZSAiU3VibWl0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGVsZXBob25lSW5wdXRUeXBl
LmgiCiAjaW5jbHVkZSAiVGV4dElucHV0VHlwZS5oIgpAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQg
SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgaWYgKCFlbGVtZW50KCktPmhh
c1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2hhZG93Um9vdCogcm9vdCA9
IGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgU2hhZG93
Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAg
ICBBU1NFUlQocm9vdCk7CiAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA5MDc2OWQ5NmY4MDhhNDJjMGMzNzQ2
YTIxZjJlOWViMmY3NmE3YjMzLi40OTQ5YjBhNGU0YTY2MDM0ZDA3MTlhMDRkYTc2NzhhMTgwZmEy
MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIlJhbmdlSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgpAQCAtNDIsNyArNDMsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNs
dWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU2xpZGVyVGh1bWJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMTYxLDcgKzE2MSw3IEBA
IHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2
ZW50KQogICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9k
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3Qo
KSk7Ci0gICAgaWYgKHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2RlLT5pc0Rl
c2NlbmRhbnRPZihlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpKSkK
KyAgICBpZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2Vu
ZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAgICAg
IHJldHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xpZGVyVGh1bWJFbGVt
ZW50T2YoZWxlbWVudCgpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSA9PSB0aHVtYikKQEAgLTI0Nyw3
ICsyNDcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAg
ICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZCh0cmFjay5yZWxl
YXNlKCksIGVjKTsKICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKFRyYWNrTGltaXRlckVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCksIGVjKTsKLSAgICBlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+
b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7
CisgICAgZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGls
ZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7CiB9CiAKIFJlbmRlck9iamVjdCogUmFuZ2VJbnB1
dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IGYz
ZTM3NjZiODU1OTEyNTEwNjllMmMxMmMzMmU5ZDI0YzM5ZTA5NDYuLmQ2M2Y3ZWY4YWMzM2M0NDI4
MTM2NDA4YzRhNGQ4NjU4ZTZlOGU2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5z
ZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJGb3JtRGF0YUxpc3Qu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAg
LTQ1LDcgKzQ2LDYgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNs
dWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgi
CiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0y
MzYsMTEgKzIzNiwxMSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgbV9pbm5lclRleHQgPSBUZXh0
Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgaWYgKCFjcmVh
dGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RT
aGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBlYyk7CisgICAgICAgIGVsZW1l
bnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRl
eHQsIGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNoYWRvd1Jvb3QqIHNoYWRv
d1Jvb3QgPSBlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAg
IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFk
b3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtdGV4dGZp
ZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQo
bV9jb250YWluZXIsIGVjKTsKQEAgLTQwNSw3ICs0MDUsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0
VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAoIW1fcGxhY2Vob2xkZXIpIHsK
ICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgp
LT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0U2hhZG93UHNldWRvSWQo
Ii13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiKTsKLSAgICAgICAgZWxlbWVudCgpLT5zaGFkb3dU
cmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1f
Y29udGFpbmVyID8gbV9jb250YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50
KCktPm5leHRTaWJsaW5nKCksIGVjKTsKKyAgICAgICAgZWxlbWVudCgpLT5zaGFkb3coKS0+b2xk
ZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgbV9jb250YWluZXIg
PyBtX2NvbnRhaW5lci0+bmV4dFNpYmxpbmcoKSA6IGlubmVyVGV4dEVsZW1lbnQoKS0+bmV4dFNp
YmxpbmcoKSwgZWMpOwogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CiAgICAgbV9wbGFjZWhv
bGRlci0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyVGV4dCwgZWMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBiZmRhOTg2MGI5ODU3NTMzZGFiMzNiZDEz
MzY3ODllYjk0MDMyYjMxLi5hMTQ0YmFiNTkxOTc1YjIzMWJiZjdmNjBlNTYyZWJkY2NmNmRmMjNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgpAQCAtNDMsNyArNDQsNiBAQAogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJTdHlsZVJlc29s
dmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBA
IC0xODcsNyArMTg3LDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJl
ZShUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsK
ICAgICAgICAgSFRNTEVsZW1lbnQqIGhvc3QgPSB0b0hUTUxFbGVtZW50KG1fZWxlbWVudCk7CiAg
ICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgIGhvc3QtPnNoYWRvd1RyZWUoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOworICAgICAg
ICBob3N0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJs
ZS5nZXQoKSwgZWMpOwogICAgICAgICBtX2J1YmJsZSA9IDA7CiAgICAgfQogICAgIG1fbWVzc2Fn
ZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHAKaW5kZXggMjQ0M2QxNTVkZTkxMmIzMzFhZDQwYTFmZGI3NGZmMmU2ZmMy
ZTdmOC4uNTQzNjc5NTA2MWY5MzlhMDQ4YjJmOTg2NTNjODM4NmE5YzNlZmE3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0y
OCwxMiArMjgsMTIgQEAKICNpbmNsdWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKIAogI2luY2x1
ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgog
I2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgi
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC05MCw3ICs5MCw3IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBzZWxlY3RBdHRyKSB7
CiAgICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVS
b290Tm9kZSgpKSkKLSAgICAgICAgICAgIHJvb3QtPnRyZWUoKS0+c2V0TmVlZHNSZWF0dGFjaEhv
c3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgICAgICAgICAgcm9vdC0+b3duZXIoKS0+c2V0TmVl
ZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogICAgIH0gZWxzZQogICAgICAgICBJ
bnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKaW5kZXggNzBhZjg1ZTA5ZTNhMzZlZTJh
OWNlYTkyNDA0MjgwZjI3NjFmNzAzMC4uMzdlNTEwMWMzN2IyMDk3ZTQ0MWY4YTQ0MTI4ODJlZWYz
ZjUyOTUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9u
UG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmNwcApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklu
c2VydGlvblBvaW50LmgiCiAKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmF0dGFjaCgpCiAg
ICAgaWYgKGlzU2hhZG93Qm91bmRhcnkoKSkgewogICAgICAgICBTaGFkb3dSb290KiByb290ID0g
dG9TaGFkb3dSb290KHRyZWVTY29wZSgpLT5yb290Tm9kZSgpKTsKICAgICAgICAgaWYgKGRvZXNT
ZWxlY3RGcm9tSG9zdENoaWxkcmVuKCkpIHsKLSAgICAgICAgICAgIGRpc3RyaWJ1dGVIb3N0Q2hp
bGRyZW4ocm9vdC0+dHJlZSgpKTsKKyAgICAgICAgICAgIGRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4o
cm9vdC0+b3duZXIoKSk7CiAgICAgICAgICAgICBhdHRhY2hEaXN0cmlidXRlZE5vZGUoKTsKICAg
ICAgICAgfSBlbHNlIGlmICghcm9vdC0+b2xkZXJTaGFkb3dSb290KCktPmFzc2lnbmVkVG8oKSkg
ewogICAgICAgICAgICAgQVNTRVJUKCFyb290LT5vbGRlclNoYWRvd1Jvb3QoKS0+YXR0YWNoZWQo
KSk7CkBAIC02NywxNiArNjcsMTYgQEAgdm9pZCBJbnNlcnRpb25Qb2ludDo6ZGV0YWNoKCkKIHsK
ICAgICBTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgp
KTsKICAgICBpZiAocm9vdCAmJiBpc0FjdGl2ZSgpKSB7Ci0gICAgICAgIFNoYWRvd1RyZWUqIHRy
ZWUgPSByb290LT50cmVlKCk7CisgICAgICAgIEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHJvb3Qt
Pm93bmVyKCk7CiAKICAgICAgICAgaWYgKGRvZXNTZWxlY3RGcm9tSG9zdENoaWxkcmVuKCkpCi0g
ICAgICAgICAgICBjbGVhckRpc3RyaWJ1dGlvbih0cmVlKTsKKyAgICAgICAgICAgIGNsZWFyRGlz
dHJpYnV0aW9uKHNoYWRvdyk7CiAgICAgICAgIGVsc2UgaWYgKFNoYWRvd1Jvb3QqIGFzc2lnbmVk
U2hhZG93Um9vdCA9IGFzc2lnbmVkRnJvbSgpKQogICAgICAgICAgICAgY2xlYXJBc3NpZ25tZW50
KGFzc2lnbmVkU2hhZG93Um9vdCk7CiAKICAgICAgICAgLy8gV2hlbiBzaGFkb3cgZWxlbWVudCBp
cyBkZXRhY2hlZCwgc2hhZG93IHRyZWUgc2hvdWxkIGJlIHJlY3JlYXRlZCB0byByZS1jYWxjdWxh
dGUgc2VsZWN0b3IgZm9yCiAgICAgICAgIC8vIG90aGVyIGluc2VydGlvbiBwb2ludHMuCi0gICAg
ICAgIHRyZWUtPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICAg
ICAgc2hhZG93LT5zZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CiAgICAg
fQogCiAgICAgQVNTRVJUKG1fc2VsZWN0aW9ucy5pc0VtcHR5KCkpOwpAQCAtMTE3LDIzICsxMTcs
MjMgQEAgYm9vbCBJbnNlcnRpb25Qb2ludDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVu
ZGVyaW5nQ29udGV4dCYgY29udGV4dCkKICAgICByZXR1cm4gIWlzU2hhZG93Qm91bmRhcnkoKSAm
JiBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb250ZXh0KTsKIH0KIAotaW5saW5lIHZv
aWQgSW5zZXJ0aW9uUG9pbnQ6OmRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4oU2hhZG93VHJlZSogdHJl
ZSkKK2lubGluZSB2b2lkIEluc2VydGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENoaWxkcmVuKEVs
ZW1lbnRTaGFkb3cqIHNoYWRvdykKIHsKLSAgICBpZiAoIXRyZWUtPnNlbGVjdG9yKCkuaXNTZWxl
Y3RpbmcoKSkgeworICAgIGlmICghc2hhZG93LT5zZWxlY3RvcigpLmlzU2VsZWN0aW5nKCkpIHsK
ICAgICAgICAgLy8gSWYgSFRNTENvbnRlbnRTZWxlY3RvciBpcyBub3QgaW50IHNlbGVjdGluZyBw
aGFzZSwgaXQgbWVhbnMgSW5zZXJ0aW9uUG9pbnQgaXMgYXR0YWNoZWQgZnJvbQotICAgICAgICAv
LyBub24tU2hhZG93VHJlZSBub2RlLiBUbyBydW4gZGlzdHJpYnV0ZSBhbGdvcml0aG0sIHdlIGhh
dmUgdG8gcmVhdHRhY2ggU2hhZG93VHJlZS4KLSAgICAgICAgdHJlZS0+c2V0TmVlZHNSZWF0dGFj
aEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgICAgICAvLyBub24tRWxlbWVudFNoYWRvdyBu
b2RlLiBUbyBydW4gZGlzdHJpYnV0ZSBhbGdvcml0aG0sIHdlIGhhdmUgdG8gcmVhdHRhY2ggRWxl
bWVudFNoYWRvdy4KKyAgICAgICAgc2hhZG93LT5zZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB0cmVlLT5zZWxlY3Rv
cigpLnBvcHVsYXRlSWZOZWNlc3NhcnkodHJlZS0+aG9zdCgpKTsKLSAgICB0cmVlLT5zZWxlY3Rv
cigpLnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwotICAgIHRyZWUtPnNlbGVjdG9yKCkuc2VsZWN0
KHRoaXMsICZtX3NlbGVjdGlvbnMpOworICAgIHNoYWRvdy0+c2VsZWN0b3IoKS5wb3B1bGF0ZUlm
TmVjZXNzYXJ5KHNoYWRvdy0+aG9zdCgpKTsKKyAgICBzaGFkb3ctPnNlbGVjdG9yKCkudW5zZWxl
Y3QoJm1fc2VsZWN0aW9ucyk7CisgICAgc2hhZG93LT5zZWxlY3RvcigpLnNlbGVjdCh0aGlzLCAm
bV9zZWxlY3Rpb25zKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmNsZWFyRGlz
dHJpYnV0aW9uKFNoYWRvd1RyZWUqIHRyZWUpCitpbmxpbmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6
Y2xlYXJEaXN0cmlidXRpb24oRWxlbWVudFNoYWRvdyogc2hhZG93KQogewotICAgIHRyZWUtPnNl
bGVjdG9yKCkudW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7CisgICAgc2hhZG93LT5zZWxlY3Rvcigp
LnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNlcnRpb25Qb2lu
dDo6YXR0YWNoRGlzdHJpYnV0ZWROb2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9J
bnNlcnRpb25Qb2ludC5oCmluZGV4IDFkYThjODBkYjliMjE2MzdmZmUzOGE4OTllOTFkYWVjNDky
ZTlkZjYuLjg0MGRkMDY0NzkwZmNkOTM2ZmVkMmM0MmI3MDI4M2E5MjE0MDlmZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtNjIsOCArNjIsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9k
ZVJlbmRlcmluZ0NvbnRleHQmKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpc3Ry
aWJ1dGVIb3N0Q2hpbGRyZW4oU2hhZG93VHJlZSopOwotICAgIHZvaWQgY2xlYXJEaXN0cmlidXRp
b24oU2hhZG93VHJlZSopOworICAgIHZvaWQgZGlzdHJpYnV0ZUhvc3RDaGlsZHJlbihFbGVtZW50
U2hhZG93Kik7CisgICAgdm9pZCBjbGVhckRpc3RyaWJ1dGlvbihFbGVtZW50U2hhZG93Kik7CiAg
ICAgdm9pZCBhdHRhY2hEaXN0cmlidXRlZE5vZGUoKTsKIAogICAgIHZvaWQgYXNzaWduU2hhZG93
Um9vdChTaGFkb3dSb290Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCBmOGFmMzlmNTEwNDBkZGQ1YWU5MTg0N2VhMjk1MzVk
ZmZiNzY3YTk5Li5mZWU5OTFkOTFiODQzZDcwMjBlZDBkYTM1MTkyM2U0Mjg2ZDlhZjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQuaCIKIAogI2lu
Y2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKQEAgLTQzLDcgKzQ0LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNs
dWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIApAQCAtNjcsNyArNjcsNyBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaGFz
VmVydGljYWxBcHBlYXJhbmNlKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogU2xpZGVyVGh1bWJF
bGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChu
b2RlKTsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5z
aGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cg
PSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwog
ICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIHRodW1iID0gc2hhZG93LT5maXJzdENoaWxk
KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpOwogICAgIEFTU0VSVCh0aHVtYik7CkBAIC0x
NDQsNyArMTQ0LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJDb250YWluZXI6OmxheW91dCgpCiAgICAg
TGVuZ3RoIGlucHV0SGVpZ2h0ID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCktPmhlaWdodCgp
OwogICAgIFJlbmRlck9iamVjdCogdHJhY2tSZW5kZXJlciA9IG5vZGUoKS0+Zmlyc3RDaGlsZCgp
LT5yZW5kZXJlcigpOwogICAgIGlmICghaXNWZXJ0aWNhbCAmJiBpbnB1dC0+cmVuZGVyZXIoKS0+
aXNTbGlkZXIoKSAmJiAhaW5wdXRIZWlnaHQuaXNGaXhlZCgpICYmICFpbnB1dEhlaWdodC5pc1Bl
cmNlbnQoKSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIHRodW1iUmVuZGVyZXIgPSBpbnB1dC0+
c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGls
ZCgpLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7CisgICAgICAgIFJlbmRlck9iamVjdCogdGh1
bWJSZW5kZXJlciA9IGlucHV0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENo
aWxkKCktPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpLT5yZW5kZXJlcigpOwogICAgICAgICBp
ZiAodGh1bWJSZW5kZXJlcikgewogICAgICAgICAgICAgc3R5bGUoKS0+c2V0SGVpZ2h0KHRodW1i
UmVuZGVyZXItPnN0eWxlKCktPmhlaWdodCgpKTsKICAgICAgICAgICAgIGlmICh0cmFja1JlbmRl
cmVyKQpAQCAtMzU5LDcgKzM1OSw3IEBAIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRl
ckVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKICAgICBBU1NFUlQo
bm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKLSAgICBTaGFkb3dSb290
KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNo
YWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVu
dCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwog
ICAgIE5vZGUqIGxpbWl0ZXIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFzdENoaWxkKCk7CiAg
ICAgQVNTRVJUKGxpbWl0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuY3BwCmluZGV4IDBiMDBjOTVlOGZkYTNi
NzkzZGY4NTNlZjk2ZGIyOTE0NjUyMzhjYzMuLjU4MGViYWRjYmRmYTRmN2NhZmNlNjY0MDEzMDI2
MDAzYWRhZjYzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRG
aWVsZERlY29yYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5jcHAKQEAgLTMzLDEzICszMywxMyBAQAogCiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgog
I2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNjgsNyArNjgsNyBAQCBQYXNzUmVmUHRyPFRleHRGaWVsZERl
Y29yYXRpb25FbGVtZW50PiBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0RGVjb3JhdGlvblJvb3RBbmREZWNvcmF0ZWRSb290
KEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0LCBTaGFkb3dSb290KiYgZGVjb3JhdGlvblJvb3QsIFNo
YWRvd1Jvb3QqJiBkZWNvcmF0ZWRSb290KQogewotICAgIFNoYWRvd1Jvb3QqIGV4aXN0aW5nUm9v
dCA9IGlucHV0LT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOworICAgIFNoYWRv
d1Jvb3QqIGV4aXN0aW5nUm9vdCA9IGlucHV0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7CiAgICAgU2hhZG93Um9vdCogbmV3Um9vdCA9IDA7CiAgICAgd2hpbGUgKGV4aXN0aW5nUm9v
dC0+Y2hpbGROb2RlQ291bnQoKSA9PSAxICYmIGV4aXN0aW5nUm9vdC0+Zmlyc3RDaGlsZCgpLT5o
YXNUYWdOYW1lKHNoYWRvd1RhZykpIHsKICAgICAgICAgbmV3Um9vdCA9IGV4aXN0aW5nUm9vdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4
IDQ4YWJkMTJmOGUxMzNjODI2NTUyNDMyNWYxYTI3ODljYjhmODY1YzkuLjYxMDMwNzcwZjE3MmU4
OGZlNGVhOWQ3NWYxOTQxYWJlYzRmNmYwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkV2ZW50Q29udGV4dC5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIK
QEAgLTgyLDcgKzgzLDYgQEAKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hh
ZG93VHJlZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlICJTdHls
ZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKQEAgLTM0MSw3ICszNDEs
NyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRN
YXAqIG5vZGVzTWFwKQogICAgIH0KIAogICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYg
dG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgZm9yIChTaGFkb3dS
b290KiByb290ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCiAgICAg
ICAgICAgICB1bmJpbmQocm9vdCwgbm9kZXNNYXApOwogICAgIH0KIApAQCAtMTIyOCw3ICsxMjI4
LDcgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPiBJbnNwZWN0b3JET01BZ2Vu
dDo6YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqIG4KICAgICAgICAgfQogICAgICAgICBpZiAoZWxl
bWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CiAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+ID4gc2hhZG93Um9vdHMgPSBUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT46OmNyZWF0ZSgpOwotICAgICAgICAgICAg
Zm9yIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudC0+c2hhZG93VHJlZSgpLT55b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAg
ICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudC0+c2hhZG93KCktPnlvdW5nZXN0
U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCiAgICAg
ICAgICAgICAgICAgc2hhZG93Um9vdHMtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JOb2RlKHJvb3Qs
IDAsIG5vZGVzTWFwKSk7CiAgICAgICAgICAgICB2YWx1ZS0+c2V0U2hhZG93Um9vdHMoc2hhZG93
Um9vdHMpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
aW5kZXggNTExYmMzMzkyOGViN2YzOTA3MTM5MGRlZjEzYWE3YWNiZjZhYzJlMi4uOTI5MmFiMTBk
NTk5MzgyOWUxZGFkODEwNzBjMDljN2U5OGM4ZDY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhh
bmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC01NCw3ICs1NSw2IEBACiAjaW5j
bHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU3BhdGlh
bE5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJodG1sZWRpdGlu
Zy5oIiAvLyBGb3IgZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlCkBAIC0xMjYsMTQgKzEyNiwx
NCBAQCBGb2N1c1Njb3BlIEZvY3VzU2NvcGU6OmZvY3VzU2NvcGVPZihOb2RlKiBub2RlKQogICAg
IEFTU0VSVChub2RlKTsKICAgICBUcmVlU2NvcGUqIHNjb3BlID0gbm9kZS0+dHJlZVNjb3BlKCk7
CiAgICAgaWYgKHNjb3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0
dXJuIEZvY3VzU2NvcGUodG9TaGFkb3dSb290KHNjb3BlLT5yb290Tm9kZSgpKS0+dHJlZSgpLT55
b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgICAgIHJldHVybiBGb2N1c1Njb3BlKHRvU2hhZG93
Um9vdChzY29wZS0+cm9vdE5vZGUoKSktPm93bmVyKCktPnlvdW5nZXN0U2hhZG93Um9vdCgpKTsK
ICAgICByZXR1cm4gRm9jdXNTY29wZShzY29wZSk7CiB9CiAKIEZvY3VzU2NvcGUgRm9jdXNTY29w
ZTo6Zm9jdXNTY29wZU93bmVkQnlTaGFkb3dIb3N0KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJU
KGlzU2hhZG93SG9zdChub2RlKSk7Ci0gICAgcmV0dXJuIEZvY3VzU2NvcGUodG9FbGVtZW50KG5v
ZGUpLT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4gRm9j
dXNTY29wZSh0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7
CiB9CiAKIEZvY3VzU2NvcGUgRm9jdXNTY29wZTo6Zm9jdXNTY29wZU93bmVkQnlJRnJhbWUoSFRN
TEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCmluZGV4IGI4Y2I2MjhkMDM4NWExMzg3
OWZhMDNhNzZjNGY0ODNlNTEyNjk1NDcuLmZkNjI2MzBhOGMxOWE1NDIxZGE1ODhlNDA0MDkwNWZi
ZjMwOWIyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxl
VXBsb2FkQ29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
bGVVcGxvYWRDb250cm9sLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAKKyNpbmNsdWRlICJFbGVt
ZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC0zMiw3ICszMyw2IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJU
ZXh0UnVuLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8bWF0aC5o
PgpAQCAtMjI1LDcgKzIyNSw3IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFJlbmRlckZpbGVVcGxvYWRD
b250cm9sOjp1cGxvYWRCdXR0b24oKSBjb25zdAogCiAgICAgQVNTRVJUKGlucHV0LT5oYXNTaGFk
b3dSb290KCkpOwogCi0gICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3dUcmVlKCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGJ1dHRvbk5vZGUg
PSBpbnB1dC0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAg
IHJldHVybiBidXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBidXR0
b25Ob2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihidXR0b25Ob2RlKSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQu
Y3BwCmluZGV4IDE0MDI0Y2VhNTczOWM0OGExYzEyMjE0ZThhNjlhMjY5NjZkZTRjNmEuLmQ3NzRl
NWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2NjgwODA5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RSZWZFbGVtZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5j
bHVkZSAiU1ZHVFJlZkVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIk11dGF0aW9uRXZlbnQuaCIKQEAgLTMyLDcgKzMzLDYgQEAKICNpbmNsdWRlICJSZW5kZXJT
VkdJbmxpbmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNWR0Rv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZH
TmFtZXMuaCIKQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFNWR1RSZWZFbGVtZW50Ojp1cGRhdGVS
ZWZlcmVuY2VkVGV4dCgpCiAgICAgICAgIHRleHRDb250ZW50ID0gdGFyZ2V0LT50ZXh0Q29udGVu
dCgpOwogCiAgICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgU2hhZG93Um9vdCogcm9v
dCA9IHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHJv
b3QgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIGlmICghcm9vdC0+Zmlyc3RD
aGlsZCgpKQogICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdTaGFkb3dUZXh0OjpjcmVhdGUo
ZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICBlbHNl
CkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KCkK
ICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZSA9IDA7CiAKICAgICBBU1NFUlQoaGFzU2hhZG93Um9v
dCgpKTsKLSAgICBOb2RlKiBjb250YWluZXIgPSBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jv
b3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIGNvbnRhaW5lciA9IHNoYWRvdygpLT5vbGRl
c3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyKQogICAgICAg
ICBjb250YWluZXItPnNldFRleHRDb250ZW50KGVtcHR5Q29udGVudCwgaWdub3JlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDZlY2QwMGY1NDFmMWE5MzJmZGE2Y2Jm
ZTgxY2M5N2ZhNTljYzc2NDUuLjBiODJmYWRmOWRkNTNmYTcxM2YzZmQyMjU4MjdkZDBiZGE4MDFj
M2QgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgpAQCAtMzgsNyArMzksNiBAQAogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU1ZH
RWxlbWVudEluc3RhbmNlLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudFJhcmVEYXRhLmgiCiAjaW5j
bHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIgpAQCAtMzkzLDcgKzM5Myw3IEBAIHN0YXRp
YyBib29sIHN1YnRyZWVDb250YWluc0Rpc2FsbG93ZWRFbGVtZW50KE5vZGUqIHN0YXJ0KQogdm9p
ZCBTVkdVc2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiB7CiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCB0cnkgdG8gb3B0aW1pemUgdGhpcywgdG8gYXQgbGVhc3QgYWxsb3cgcGFy
dGlhbCByZWNsb25lcy4KLSAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93VHJlZVJvb3RFbGVtZW50
ID0gIHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpKQorICAgIGlmIChTaGFkb3dSb290
KiBzaGFkb3dUcmVlUm9vdEVsZW1lbnQgPSAgc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkK
ICAgICAgICAgc2hhZG93VHJlZVJvb3RFbGVtZW50LT5yZW1vdmVBbGxDaGlsZHJlbigpOwogCiAg
ICAgaWYgKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlKSB7CkBAIC00ODAsNyArNDgwLDcgQEAgdm9p
ZCBTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRvd0FuZEluc3RhbmNlVHJlZShTVkdFbGVtZW50KiB0
YXJnZXQpCiAgICAgQVNTRVJUKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlLT5kaXJlY3RVc2VFbGVt
ZW50KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlLT5jb3Jy
ZXNwb25kaW5nRWxlbWVudCgpID09IHRhcmdldCk7CiAKLSAgICBTaGFkb3dSb290KiBzaGFkb3dU
cmVlUm9vdEVsZW1lbnQgPSBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBT
aGFkb3dSb290KiBzaGFkb3dUcmVlUm9vdEVsZW1lbnQgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93
Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3dUcmVlUm9vdEVsZW1lbnQpOwogCiAgICAgLy8gQnVp
bGQgc2hhZG93IHRyZWUgZnJvbSBpbnN0YW5jZSB0cmVlCkBAIC02OTUsNyArNjk1LDcgQEAgdm9p
ZCBTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRvd1RyZWUoU1ZHRWxlbWVudCogdGFyZ2V0LCBTVkdF
bGVtZW50SW5zdGFuY2UqIHRhcmcKICAgICBpZiAoc3VidHJlZUNvbnRhaW5zRGlzYWxsb3dlZEVs
ZW1lbnQobmV3Q2hpbGQuZ2V0KCkpKQogICAgICAgICByZW1vdmVEaXNhbGxvd2VkRWxlbWVudHNG
cm9tU3VidHJlZShuZXdDaGlsZC5nZXQoKSk7CiAKLSAgICBzaGFkb3dUcmVlKCktPm9sZGVzdFNo
YWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQucmVsZWFzZSgpKTsKKyAgICBzaGFkb3co
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChuZXdDaGlsZC5yZWxlYXNlKCkpOwog
fQogCiB2b2lkIFNWR1VzZUVsZW1lbnQ6OmV4cGFuZFVzZUVsZW1lbnRzSW5TaGFkb3dUcmVlKE5v
ZGUqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggM2MyYTlk
NTExYTY1MmViMGM1Y2QxNzgxN2JjNmU4ZjVkYzkwYTFlOC4uNjc4MzlmNmNhMmU0MjBkZWI3YzQy
MDFmMGRjNmYyYTcxZGNjOTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTU3LDcgKzU4LDYgQEAKICNp
bmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNw
ZWxsQ2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRyZWVT
Y29wZS5oIgpAQCAtMzAzLDcgKzMwMyw3IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93
RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjplbnN1cmVTaGFkb3dSb290KEVsZW1lCiAgICAg
fQogCiAgICAgaWYgKGhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIGhvc3Qt
PnNoYWRvd1RyZWUoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgICAgIHJldHVybiBob3N0
LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hhZG93Um9v
dDo6Y3JlYXRlKGhvc3QsIGVjKS5nZXQoKTsKIH0KQEAgLTMyNSw3ICszMjUsNyBAQCBJbnRlcm5h
bHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdl
c3RTaGFkb3dSb290KEVsZQogICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIHJldHVybiBob3N0LT5zaGFkb3dUcmVlKCktPnlvdW5nZXN0U2hh
ZG93Um9vdCgpOworICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7CiB9CiAKIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSog
SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUm
IGVjKQpAQCAtMzM4LDcgKzMzOCw3IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9N
RW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lCiAgICAgaWYg
KCFob3N0LT5oYXNTaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJu
IGhvc3QtPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiBob3N0
LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogfQogCiBJbnRlcm5hbHM6OlNoYWRvd1Jv
b3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlclNoYWRvd1Jvb3Qo
Tm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2OSw3ICszNjksNyBAQCB2b2lk
IEludGVybmFsczo6cmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICB9CiAKICAgICBpZiAoaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICBo
b3N0LT5zaGFkb3dUcmVlKCktPnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7CisgICAgICAgIGhvc3Qt
PnNoYWRvdygpLT5yZW1vdmVBbGxTaGFkb3dSb290cygpOwogfQogCiBFbGVtZW50KiBJbnRlcm5h
bHM6OmluY2x1ZGVyRm9yKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140466</attachid>
            <date>2012-05-06 20:54:54 -0700</date>
            <delta_ts>2012-05-06 23:05:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85265-20120507125453.patch</filename>
            <type>text/plain</type>
            <size>107580</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVjNWU4MTkyNzgxNzQx
NTQwODg3OTU3MmI1NThjMWExN2YyYzU3NS4uYjZkZmY4YjI4NTdjZGMxOTA3NDJlNDcxMGM4MjQ2
ODNhMGJlYjM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxMi0wNS0wMSAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyNjUKKyAgICAgICAgW1NoYWRvdyBET01dIFNo
YWRvd1RyZWUgbmVlZHMgYSBiZXR0ZXIgbmFtZQorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0
cmkgR2xhemtvdi4KKworICAgICAgICBSZW5hbWVkIFNoYWRvd1RyZWUgdG8gRWxlbWVudFNoYWRv
dywgVGhlIEVsZW1lbnRTaGFkb3cgY2xhc3MgaXMKKyAgICAgICAgZ29pbmcgdG8gYmUgYSBmYWNh
ZGUgb2YgU2hhZG93IHJlbGF0ZWQgQVBJcy4KKworICAgICAgICBGb2xsb3dpbmcgcmVuYW1lcyBm
b2xsb3c6CisgICAgICAgIC0gRWxlbWVudDo6c2hhZG93VHJlZSgpIHRvIEVsZW1lbnQ6OnNoYWRv
dygpCisgICAgICAgIC0gU2hhZG93Um9vdDo6dHJlZSgpIHRvIFNoYWRvd1Jvb3Q6Om93bmVyKCkK
KyAgICAgICAgLSBTaGFkb3dUcmVlOjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoKSB0byBFbGVtZW50
U2hhZG93OjpyZWNhbGNTdHlsZSgpCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBKdXN0IHJlbmFt
ZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFk
b3dPZlBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnQpOgorICAgICAg
ICAqIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aGlsZE5vZGVJbnNlcnRpb25Ob3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b0Rv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyOjpu
b3RpZnlEZXNjZW5kYW50SW5zZXJ0ZWRJbnRvVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpDaGls
ZE5vZGVSZW1vdmFsTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRSZW1vdmVkRnJvbURvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkNoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5RGVz
Y2VuZGFudFJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmJ1aWxkQWNjZXNzS2V5TWFwKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50Ojp+RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
Ojp3aWxsUmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dGFjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aGFzU2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaGFkb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVu
c3VyZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAg
IChFbGVtZW50UmFyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjp+
RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6fkVsZW1lbnRTaGFkb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGVTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRv
dzo6cmVtb3ZlQWxsU2hhZG93Um9vdHMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRv
dzo6d2lsbFJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpzZXRQYXJl
bnRUcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6YXR0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmF0dGFjaEhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnRTaGFkb3c6OmRldGFjaEhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6
aW5zZXJ0aW9uUG9pbnRGb3IpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6c2Vs
ZWN0aW9uRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnJlYXR0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmNoaWxkTmVlZHNTdHlsZVJlY2FsYyk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpuZWVkc1N0eWxlUmVjYWxjKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRTaGFkb3c6Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3cp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aG9zdENoaWxkcmVuQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpzZXROZWVkc1JlYXR0YWNoSG9zdENo
aWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OnJlYXR0
YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoRWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50U2hhZG93OjpoYXNTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRT
aGFkb3c6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hh
ZG93OjpvbGRlc3RTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6
OnNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6OmNsZWFyTmVlZHNS
ZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
U2hhZG93Ojpob3N0KToKKyAgICAgICAgKFNoYWRvd1Jvb3RWZWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdFZlY3Rvcjo6U2hhZG93Um9vdFZlY3Rvcik6CisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b2xkZXN0U2hhZG93Um9vdEZvcik6CisgICAg
ICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6aG9zdENoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAg
ICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6b3duZXIpOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jv
b3QpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNoYWRvd0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
VHJlZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92
ZVRyZWVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6
Om1vdmVTaGFkb3dUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRl
ci5oOgorICAgICAgICAoVHJlZVNjb3BlQWRvcHRlcik6CisgICAgICAgICogaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6c2hhZG93Q29s
b3JTd2F0Y2gpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERl
dGFpbHNFbGVtZW50OjpmaW5kTWFpblN1bW1hcnkpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdl
bkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OnNoYWRv
d1NlbGVjdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udHJvbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scyk6CisgICAgICAgICogaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojppbm5lclRl
eHRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlw
ZTo6aGFuZGxlTW91c2VEb3duRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0
ZVBsYWNlaG9sZGVyVGV4dCk6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dGlvblBvaW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OmRl
dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6ZGlzdHJpYnV0ZUhvc3RD
aGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6Y2xlYXJEaXN0cmli
dXRpb24pOgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50Lmg6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNsaWRlclRodW1iRWxlbWVudE9mKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlckNv
bnRhaW5lcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTGltaXRlckVsZW1lbnRP
Zik6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVjb3JhdGlvblJvb3RBbmREZWNvcmF0ZWRSb290KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKToKKyAgICAgICAgKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c1Njb3BlOjpmb2N1c1Njb3Bl
T2YpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNTY29wZTo6Zm9jdXNTY29wZU93bmVkQnlTaGFk
b3dIb3N0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRv
bik6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RSZWZFbGVtZW50Ojp1cGRhdGVSZWZlcmVuY2VkVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KToKKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpjbGVhclJlc291cmNl
UmVmZXJlbmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWlsZFNoYWRv
d0FuZEluc3RhbmNlVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpidWls
ZFNoYWRvd1RyZWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpy
ZW1vdmVTaGFkb3dSb290KToKKwogMjAxMi0wNS0wNiAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEtVUkw6OmlzQmxhbmtVUkwgd291bGQgYmUgYSBuaWNlciBpZGlv
bSB0aGFuIEtVUkw6OnByb3RvY29sSXMoImFib3V0IikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxMDU5YjZiMzI4
MTE4ZGI3NzBkOGYxNzE2YTE3OTU0ZjUyN2RmNmQzLi4wM2QxMDk1MGMyNWIyOTdkNTZhZjEzYzk0
YjQ4ZWMwZWMyNjkyMmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUtMDYg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MjY1CisgICAgICAgIFtTaGFkb3cgRE9N
XSBTaGFkb3dUcmVlIG5lZWRzIGEgYmV0dGVyIG5hbWUKKworICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6IFVwZGF0ZWQgZXhw
b3J0ZWQgc3ltYm9sIG5hbWVzIGFjY29yZGluZyB0byB0aGUgcmVuYW1lLgorICAgICAgICAqIHdp
bi9XZWJLaXQyQ0ZMaXRlLmRlZjogVXBkYXRlZCBleHBvcnRlZCBzeW1ib2wgbmFtZXMgYWNjb3Jk
aW5nIHRvIHRoZSByZW5hbWUuCisKIDIwMTItMDUtMDYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBDb252ZXJ0IGlzUGFnZUJveFZpc2libGUgdG8g
dXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDg0ZjBjMjdk
NWE4ZWUwODE2NGZmYmE1NzBiNjA0ZjFlZTE2YWY2YjEuLmI4ZmM3ZTQwZGI2MzdkNTUwYzQ5M2E4
ZmFlNDVhYWI0MTJjM2QxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01NzQsNiArNTc0LDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9EeW5hbWljTm9kZUxpc3QuY3BwCiAgICAg
ZG9tL0VkaXRpbmdUZXh0LmNwcAogICAgIGRvbS9FbGVtZW50LmNwcAorICAgIGRvbS9FbGVtZW50
U2hhZG93LmNwcAogICAgIGRvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKICAgICBkb20vRW50
aXR5UmVmZXJlbmNlLmNwcAogICAgIGRvbS9FcnJvckV2ZW50LmNwcApAQCAtNjI5LDcgKzYzMCw2
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2VjdXJpdHlDb250ZXh0LmNwcAogICAg
IGRvbS9TZWxlY3RvclF1ZXJ5LmNwcAogICAgIGRvbS9TaGFkb3dSb290LmNwcAotICAgIGRvbS9T
aGFkb3dUcmVlLmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAogICAgIGRvbS9TdGF0
aWNIYXNoU2V0Tm9kZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzYzN2IzOGM0MTE3YjY3Mzk0MjEzYzc5ZWY5NTcw
MmQ4ZjgzNjU5NS4uOTE2Mjg2ZGU4ZDllODI1ZmJhZDc4MDU0MDNhMmI3MjEyZTU1MTJjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xODMwLDYgKzE4MzAsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FZGl0aW5nVGV4dC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRB
dHRyaWJ1dGVEYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVE
YXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBcCkBAIC0xOTU5
LDggKzE5NjEsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1RyZWUuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TcGFjZVNwbGl0U3RyaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIyNWY1ODA3NGY4OGFlOTE2ZGE3ZjY0YmVk
N2Y5NmEyODlmN2MzMjEuLmM5MzIxOTM3NzE1Mjk2NjYyMjJkMWM2MWM4MTlhYmNmNzRiNzIwOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQpAQCAtNTUwLDYgKzU1MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9E
eW5hbWljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vRWRpdGluZ1RleHQuY3BwIFwKICAgICBkb20v
RWxlbWVudC5jcHAgXAorICAgIGRvbS9FbGVtZW50U2hhZG93LmNwcCBcCiAgICAgZG9tL0VsZW1l
bnRBdHRyaWJ1dGVEYXRhLmNwcCBcCiAgICAgZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgXAogICAg
IGRvbS9FcnJvckV2ZW50LmNwcCBcCkBAIC02MDgsNyArNjA5LDYgQEAgU09VUkNFUyArPSBcCiAg
ICAgZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcCBc
CiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwIFwKLSAgICBkb20vU2hhZG93VHJlZS5jcHAgXAogICAg
IGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNwcCBc
CiAgICAgZG9tL1N0eWxlZEVsZW1lbnQuY3BwIFwKQEAgLTE3MDcsNiArMTcwNyw3IEBAIEhFQURF
UlMgKz0gXAogICAgIGRvbS9EeW5hbWljTm9kZUxpc3QuaCBcCiAgICAgZG9tL0VkaXRpbmdUZXh0
LmggXAogICAgIGRvbS9FbGVtZW50LmggXAorICAgIGRvbS9FbGVtZW50U2hhZG93LmggXAogICAg
IGRvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oIFwKICAgICBkb20vRW50aXR5LmggXAogICAgIGRv
bS9FbnRpdHlSZWZlcmVuY2UuaCBcCkBAIC0xNzU2LDcgKzE3NTcsNiBAQCBIRUFERVJTICs9IFwK
ICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwKICAgICBkb20vU2VsZWN0b3JRdWVy
eS5oIFwKICAgICBkb20vU2hhZG93Um9vdC5oIFwKLSAgICBkb20vU2hhZG93VHJlZS5oIFwKICAg
ICBkb20vU3BhY2VTcGxpdFN0cmluZy5oIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuaCBcCiAg
ICAgZG9tL1N0eWxlZEVsZW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDhmNjc2NGEy
MDg0NmYyMjJkOWY5YTE4NTViYjQ1ZWI2YmU1N2JkMWMuLjc4ZmJiNzNmMTIzMGNhOGRlYjcwNDM5
NDRjNjk1YjY2N2ZjZTY1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNDcsNyArMTQ3LDYg
QEAgX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0UKIF9fWk43V2ViQ29yZTEwTW91c2VF
dmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRU5TMV8xMFBhc3NSZWZQdHJJTlNfOURP
TVdpbmRvd0VFRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFaU5TNV9JTlNfNE5vZGVFRUUKIF9f
Wk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNXVEYxMkF0b21pY1N0cmluZ0ViYk5TMV8xMFBh
c3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVfSU5TXzExRXZlbnRUYXJnZXRF
RUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCiBfX1pON1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBv
c2l0b3JFdgotX19aTjdXZWJDb3JlMTBTaGFkb3dUcmVlMjByZW1vdmVBbGxTaGFkb3dSb290c0V2
CiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2Vi
Q29yZTEwU2Nyb2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCiBfX1pO
N1dlYkNvcmUxMFNjcm9sbFZpZXcyMXNldERlbGVnYXRlc1Njcm9sbGluZ0ViCkBAIC0zMDMsNiAr
MzAyLDcgQEAgX19aTjdXZWJDb3JlMTNBWE9iamVjdENhY2hlMThyb290T2JqZWN0Rm9yRnJhbWVF
UE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTIxZ0FjY2Vzc2liaWxpdHlF
bmFibGVkRQogX19aTjdXZWJDb3JlMTNBWE9iamVjdENhY2hlMjNmb2N1c2VkVUlFbGVtZW50Rm9y
UGFnZUVQS05TXzRQYWdlRQogX19aTjdXZWJDb3JlMTNBWE9iamVjdENhY2hlNDJnQWNjZXNzaWJp
bGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWRFCitfX1pON1dlYkNvcmUxM0VsZW1lbnRT
aGFkb3cyMHJlbW92ZUFsbFNoYWRvd1Jvb3RzRXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1h
cEMxRXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcEQxRXYKIF9fWk43V2ViQ29yZTEzSGl0
VGVzdFJlc3VsdEMxRVJLUzBfCkBAIC0xNDgyLDcgKzE0ODIsNyBAQCBfX1pOSzdXZWJDb3JlNldp
ZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzdJbnRSZWN0RQogX19aTks3V2Vi
Q29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dFUktOU184SW50UG9pbnRFCiBf
X1pOSzdXZWJDb3JlNldpZGdldDlmcmFtZVJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50MTBz
Y3JlZW5SZWN0RXYKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93VHJlZUV2CitfX1pOSzdX
ZWJDb3JlN0VsZW1lbnQ2c2hhZG93RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmli
dXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdFbGVtZW50MTNoYXNTaGFk
b3dSb290RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJzZWN0c0VSS1MwXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IGFlNThhNjhkOWU3ZmM2YTJiMmJmNGI4YTdkMjQzMjA0Njg1OWEyZTUuLjY2
ZDgxMzRmMjQ1NDcwOThlMjA4NmY0YmU4MzlmNWQ2YmY1NjQ1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTYyNSw2ICs2MjUsNyBAQAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudFRpbWluZy5oJywK
ICAgICAgICAgICAgICdkb20vRG9jdW1lbnRUeXBlLmgnLAogICAgICAgICAgICAgJ2RvbS9FbGVt
ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9FbGVtZW50U2hhZG93LmgnLAogICAgICAgICAgICAg
J2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5oJywKICAgICAgICAgICAgICdkb20vRXZlbnQuaCcs
CiAgICAgICAgICAgICAnZG9tL0V2ZW50TGlzdGVuZXIuaCcsCkBAIC02NTIsNyArNjUzLDYgQEAK
ICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAg
ICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAot
ICAgICAgICAgICAgJ2RvbS9TaGFkb3dUcmVlLmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNw
bGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAg
ICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtNTIzNiw2ICs1MjM2LDcgQEAKICAgICAgICAgICAgICdk
b20vRHluYW1pY05vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9FZGl0aW5nVGV4dC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9FZGl0aW5nVGV4dC5oJywKKyAgICAgICAgICAgICdkb20vRWxl
bWVudFNoYWRvdy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5oJywKQEAgLTUzNDEsOCArNTM0Miw2IEBACiAgICAgICAgICAgICAnZG9t
L1NlbGVjdG9yUXVlcnkuaCcsCiAgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuY3BwJywKICAg
ICAgICAgICAgICdkb20vU2hhZG93Um9vdC5oJywKLSAgICAgICAgICAgICdkb20vU2hhZG93VHJl
ZS5jcHAnLAotICAgICAgICAgICAgJ2RvbS9TaGFkb3dUcmVlLmgnLAogICAgICAgICAgICAgJ2Rv
bS9TcGFjZVNwbGl0U3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXRO
b2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZDA2OTMyOTM0ZjE0MjRkNWUyODY5ZDk0MzhiY2YzYTdkOGE4ODhkNy4uMzE3NTE0Y2Q3
MjAzOWVmN2E5MmVmNDkzMTk5NmFkYTcwOWUxMTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU5Myw4ICsxNTkzLDggQEAK
IAkJNTdCNzkxQUExNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxDb250ZW50RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCNzkxQTgxNEM2QTYz
MzAwRjIwMkQxIC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovOyB9OwogCQk1N0NGNDk3NDE0RUUz
NkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDRjQ5NzIxNEVFMzZENzAwRUNGRjE0IC8qIEluc2Vy
dGlvblBvaW50LmNwcCAqLzsgfTsKIAkJNTdDRjQ5NzUxNEVFMzZENzAwRUNGRjE0IC8qIEluc2Vy
dGlvblBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1N0NGNDk3MzE0RUUzNkQ3MDBFQ0ZGMTQgLyogSW5zZXJ0aW9uUG9pbnQuaCAqLzsgfTsKLQkJ
NTdDRjRDODYxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDRjRDODQxNEY3NTk3QTAwRUNGRjE0
IC8qIFNoYWRvd1RyZWUuY3BwICovOyB9OwotCQk1N0NGNEM4NzE0Rjc1OTdBMDBFQ0ZGMTQgLyog
U2hhZG93VHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTdDRjRDODUxNEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuaCAqLzsgfTsKKwkJNTdD
RjRDODYxNEY3NTk3QTAwRUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdDRjRDODQxNEY3NTk3QTAwRUNGRjE0
IC8qIEVsZW1lbnRTaGFkb3cuY3BwICovOyB9OworCQk1N0NGNEM4NzE0Rjc1OTdBMDBFQ0ZGMTQg
LyogRWxlbWVudFNoYWRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdDRjRDODUxNEY3NTk3QTAwRUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuaCAqLzsg
fTsKIAkJNTkwNUFEQkYxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkQxMzAyRjND
RTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuY3BwICovOyB9OwogCQk1OTA1QURDMDEzMDJGM0NF
MDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3
ZXIuaCAqLzsgfTsKIAkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTBF
MUI0ODExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODYwNCw4ICs4NjA0LDggQEAK
IAkJNTdCNzkxQTgxNEM2QTYzMzAwRjIwMkQxIC8qIEhUTUxDb250ZW50RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQ29udGVudEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdDRjQ5NzIxNEVFMzZENzAwRUNGRjE0IC8qIEluc2Vy
dGlvblBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc2Vy
dGlvblBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdDRjQ5NzMxNEVF
MzZENzAwRUNGRjE0IC8qIEluc2VydGlvblBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc2VydGlvblBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3Q0Y0Qzg0MTRGNzU5N0EwMEVDRkYxNCAvKiBTaGFkb3dUcmVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd1RyZWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1N0NGNEM4NTE0Rjc1OTdBMDBFQ0ZGMTQgLyogU2hhZG93VHJlZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dUcmVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3Q0Y0Qzg0MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hh
ZG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVsZW1lbnRTaGFk
b3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0NGNEM4NTE0Rjc1OTdBMDBF
Q0ZGMTQgLyogRWxlbWVudFNoYWRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFbGVtZW50U2hhZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MDVBREJE
MTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRyZWVWaWV3ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OTA1QURCRTEzMDJGM0NFMDBGMTE2REYgLyogWE1MVHJlZVZpZXdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUcmVlVmlld2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5MEUxQjQ4MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VP
cmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmll
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjExMTAsNiArMjExMTAs
OCBAQAogCQkJCUE4QzRBN0Y2MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmNwcCAqLywKIAkJ
CQlBOEM0QTdGNTA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVudC5oICovLAogCQkJCTkzRUVDMUVB
MDlDMjg3NzcwMEM1MTVEMSAvKiBFbGVtZW50LmlkbCAqLywKKwkJCQk1N0NGNEM4NDE0Rjc1OTdB
MDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5jcHAgKi8sCisJCQkJNTdDRjRDODUxNEY3NTk3QTAw
RUNGRjE0IC8qIEVsZW1lbnRTaGFkb3cuaCAqLywKIAkJCQkyQ0Y2ODc4NzE0RDMyRUI1MDAzNDBG
MzkgLyogRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwICovLAogCQkJCTJDRjY4Nzg5MTREMzJFRkYw
MDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5oICovLAogCQkJCTYzN0I3QURFMEU4NzY3
QjgwMEUzMjE5NCAvKiBFbGVtZW50UmFyZURhdGEuaCAqLywKQEAgLTIxMjc5LDggKzIxMjgxLDYg
QEAKIAkJCQlBNkQxNjk2MTEzNDZCNDlCMDAwRUI3NzAgLyogU2hhZG93Um9vdC5jcHAgKi8sCiAJ
CQkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCAqLywKIAkJCQlBN0RC
NDE4MTE0Q0UxRjBBMDBBMkUzMTYgLyogU2hhZG93Um9vdC5pZGwgKi8sCi0JCQkJNTdDRjRDODQx
NEY3NTk3QTAwRUNGRjE0IC8qIFNoYWRvd1RyZWUuY3BwICovLAotCQkJCTU3Q0Y0Qzg1MTRGNzU5
N0EwMEVDRkYxNCAvKiBTaGFkb3dUcmVlLmggKi8sCiAJCQkJRDAxQTI3QUIxMEM5QkZEODAwMDI2
QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuY3BwICovLAogCQkJCUQwMUEyN0FDMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8sCiAJCQkJQ0VBMzk0OUExMUQ0NUNEQTAwMzA5
NENGIC8qIFN0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgKi8sCkBAIC0yMjY5MCw2ICsyMjY5MCw3
IEBACiAJCQkJNEJBRTk1QjEwQjJGQTlDRTAwQUVEOEEwIC8qIEVkaXRvckRlbGV0ZUFjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGREFGQ0EwQjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvcklu
c2VydEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MDcwOUQ1NjMyNzAwMDNBQzhE
IC8qIEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3Q0Y0Qzg3MTRGNzU5N0EwMEVDRkYx
NCAvKiBFbGVtZW50U2hhZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQ0Y2ODc4QTE0RDMyRUZG
MDAzNDBGMzkgLyogRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTYz
RjVENEY3MEU4QzRCNzEwMEMwQkQwNCAvKiBFbGVtZW50UmFyZURhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0MTVGMTg0MEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaCBp
biBIZWFkZXJzICovLApAQCAtMjQyMjMsNyArMjQyMjQsNiBAQAogCQkJCTBGM0RENDUwMTJGNUVB
MUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhDNDBF
ODIwMzFCMDBCMjU5NjUgLyogU2hhZG93RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTZEMTY5
NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3
Q0Y0Qzg3MTRGNzU5N0EwMEVDRkYxNCAvKiBTaGFkb3dUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODBFNkNFODBBMTk4OUNBMDA3RkI4QzUgLyogU2hhZG93VmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQUZGQzk0MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTg2NCw2ICsyNTg2NCw3IEBACiAJCQkJOTNBMzhCNEIwRDBFNTgw
ODAwNjg3MkMyIC8qIEVkaXRvckNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1MDFE
QzYwQjI0OUYyOTAwQUUxOEQ5IC8qIEVkaXRvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4
QzRBODA4MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTU3Q0Y0Qzg2MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJDRjY4Nzg4MTREMzJFQjUwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjZDQjBBMTU2MUNEMDAwQTQyMzQgLyogRWxs
aXBzaXNCb3guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkIxMjUxRjEyRDAwM0VGMjY5
IC8qIEVtYWlsSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjczNjQsNyArMjczNjUs
NiBAQAogCQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dS
b290LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTU3Q0Y0Qzg2MTRGNzU5N0EwMEVDRkYxNCAvKiBT
aGFkb3dUcmVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhD
NSAvKiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURG
MDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0
RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCmluZGV4IDlmZGNi
OWY4OWUwZDIxMWUwMjdkNjdkZTQxZWIxYmQ2YjEyMGQ5ZGYuLjVhNjkzNmM4YzIyMWZlY2EzM2U3
ODZiODQ0OTNhNjE1MjhjZTg1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIuY3BwCkBAIC0yOCw5ICsyOCwxMCBAQAogI2luY2x1ZGUgIkNvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5oIgogCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCisKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwxNyArNDAsMTcgQEAgc3RhdGljIGlubGluZSBib29s
IGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlICYmIG5vZGUt
PmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKIH0K
IAotc3RhdGljIGlubGluZSBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlRm9yKGNvbnN0IE5vZGUqIG5v
ZGUpCitzdGF0aWMgaW5saW5lIEVsZW1lbnRTaGFkb3cqIHNoYWRvd0Zvcihjb25zdCBOb2RlKiBu
b2RlKQogewogICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAg
cmV0dXJuIHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpOworICAgICAgICByZXR1cm4gdG9F
bGVtZW50KG5vZGUpLT5zaGFkb3coKTsKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGlu
ZSBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlT2ZQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkKK3N0YXRp
YyBpbmxpbmUgRWxlbWVudFNoYWRvdyogc2hhZG93T2ZQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkK
IHsKICAgICBpZiAobm9kZSAmJiBub2RlLT5wYXJlbnROb2RlKCkpCi0gICAgICAgIHJldHVybiBz
aGFkb3dUcmVlRm9yKG5vZGUtPnBhcmVudE5vZGUoKSk7CisgICAgICAgIHJldHVybiBzaGFkb3dG
b3Iobm9kZS0+cGFyZW50Tm9kZSgpKTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtOTcsOCArOTgs
OCBAQCBOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlQ2hpbGQoY29uc3Qg
Tm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aQogewogICAgIEFTU0VSVChub2RlKTsKICAgICBp
ZiAoY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkpIHsKLSAgICAgICAgU2hhZG93VHJlZSogc2hhZG93
VHJlZSA9IHNoYWRvd1RyZWVGb3Iobm9kZSk7Ci0gICAgICAgIHJldHVybiAoc2hhZG93VHJlZSAm
JiBzaGFkb3dUcmVlLT5oYXNTaGFkb3dSb290KCkpID8gdHJhdmVyc2VMaWdodENoaWxkcmVuKHNo
YWRvd1RyZWUtPnlvdW5nZXN0U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24pCisgICAgICAgIEVsZW1l
bnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRvd0Zvcihub2RlKTsKKyAgICAgICAgcmV0dXJuIChzaGFk
b3cgJiYgc2hhZG93LT5oYXNTaGFkb3dSb290KCkpID8gdHJhdmVyc2VMaWdodENoaWxkcmVuKHNo
YWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCksIGRpcmVjdGlvbikKICAgICAgICAgICAgIDogdHJh
dmVyc2VMaWdodENoaWxkcmVuKG5vZGUsIGRpcmVjdGlvbik7CiAgICAgfQogICAgIGlmIChpc1No
YWRvd0hvc3Qobm9kZSkpCkBAIC0xNDMsMTAgKzE0NCwxMCBAQCB2b2lkIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludChjb25zdCBOb2RlKiBu
b2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEFTU0VSVChub2RlKTsK
LSAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlID0gc2hhZG93VHJlZU9mUGFyZW50KG5vZGUpOwot
ICAgIGlmICghc2hhZG93VHJlZSkKKyAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBzaGFkb3dP
ZlBhcmVudChub2RlKTsKKyAgICBpZiAoIXNoYWRvdykKICAgICAgICAgcmV0dXJuIHRyYXZlcnNl
U2libGluZ0luQ3VycmVudFRyZWUobm9kZSwgZGlyZWN0aW9uKTsKLSAgICBIVE1MQ29udGVudFNl
bGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+c2VsZWN0aW9uRm9yKG5vZGUpOworICAg
IEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3ctPnNlbGVjdGlvbkZvcihu
b2RlKTsKICAgICBpZiAoIXNlbGVjdGlvbikKICAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGlu
Z0luQ3VycmVudFRyZWUobm9kZSwgZGlyZWN0aW9uKTsKICAgICBpZiAoSFRNTENvbnRlbnRTZWxl
Y3Rpb24qIG5leHRTZWxlY3Rpb24gPSAoZGlyZWN0aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZv
cndhcmQgPyBzZWxlY3Rpb24tPm5leHQoKSA6IHNlbGVjdGlvbi0+cHJldmlvdXMoKSkpCkBAIC0y
MDcsOCArMjA4LDggQEAgTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBh
cmVudChjb25zdCBOb2RlKiBub2RlKSBjb25zdAogICAgICAgICBBU1NFUlQodG9TaGFkb3dSb290
KG5vZGUpLT5pc1lvdW5nZXN0KCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgaWYg
KFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUgPSBzaGFkb3dUcmVlT2ZQYXJlbnQobm9kZSkpIHsKLSAg
ICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3dUcmVlLT5z
ZWxlY3Rpb25Gb3Iobm9kZSkpCisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHNoYWRv
d09mUGFyZW50KG5vZGUpKSB7CisgICAgICAgIGlmIChIVE1MQ29udGVudFNlbGVjdGlvbiogc2Vs
ZWN0aW9uID0gc2hhZG93LT5zZWxlY3Rpb25Gb3Iobm9kZSkpCiAgICAgICAgICAgICByZXR1cm4g
dHJhdmVyc2VQYXJlbnQoc2VsZWN0aW9uLT5pbnNlcnRpb25Qb2ludCgpKTsKICAgICB9CiAgICAg
cmV0dXJuIHRyYXZlcnNlUGFyZW50SW5DdXJyZW50VHJlZShub2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCmluZGV4IGVkYjg0ZGE1ZmU4MTNk
OWUzMWE4YjZlZDM4YjcxMTY1MDM5ZGQxZGMuLjhjNGNlNWVhZDY1NWMwOGViZDgyNmIyN2NhYWY0
Y2Y3OWFlYmYyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
QWxnb3JpdGhtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmgiCiAKICNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5o
IgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Niw4ICs0Niw4IEBAIHZvaWQgQ2hpbGROb2RlSW5zZXJ0aW9uTm90aWZpZXI6Om5vdGlmeURl
c2NlbmRhbnRJbnNlcnRlZEludG9Eb2N1bWVudChDb250YWluZXJOCiAgICAgaWYgKCFub2RlLT5p
c0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChTaGFkb3dUcmVlKiB0
cmVlID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dUcmVlKCkpIHsKLSAgICAgICAgU2hhZG93Um9v
dFZlY3RvciByb290cyh0cmVlKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdG9F
bGVtZW50KG5vZGUpLT5zaGFkb3coKSkgeworICAgICAgICBTaGFkb3dSb290VmVjdG9yIHJvb3Rz
KHNoYWRvdyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcm9vdHMuc2l6ZSgpOyAr
K2kpCiAgICAgICAgICAgICBub3RpZnlOb2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQocm9vdHNbaV0u
Z2V0KCkpOwogICAgIH0KQEAgLTYzLDggKzYzLDggQEAgdm9pZCBDaGlsZE5vZGVJbnNlcnRpb25O
b3RpZmllcjo6bm90aWZ5RGVzY2VuZGFudEluc2VydGVkSW50b1RyZWUoQ29udGFpbmVyTm9kZSoK
ICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKFNoYWRvd1RyZWUqIHRyZWUgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKSkgewot
ICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0cmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgIGlmIChFbGVtZW50
U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKSB7CisgICAgICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7
IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgIG5vdGlmeU5vZGVJ
bnNlcnRlZEludG9UcmVlKHJvb3QpOwogICAgIH0KIH0KQEAgLTg3LDggKzg3LDggQEAgdm9pZCBD
aGlsZE5vZGVSZW1vdmFsTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRSZW1vdmVkRnJvbURvY3Vt
ZW50KENvbnRhaW5lck5vZGUKICAgICBpZiAobm9kZS0+ZG9jdW1lbnQoKS0+Y3NzVGFyZ2V0KCkg
PT0gbm9kZSkKICAgICAgICAgbm9kZS0+ZG9jdW1lbnQoKS0+c2V0Q1NTVGFyZ2V0KDApOwogCi0g
ICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKSkg
ewotICAgICAgICBTaGFkb3dSb290VmVjdG9yIHJvb3RzKHRyZWUpOworICAgIGlmIChFbGVtZW50
U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKSB7CisgICAgICAgIFNo
YWRvd1Jvb3RWZWN0b3Igcm9vdHMoc2hhZG93KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCByb290cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIG5vdGlmeU5vZGVSZW1vdmVkRnJv
bURvY3VtZW50KHJvb3RzW2ldLmdldCgpKTsKICAgICB9CkBAIC0xMDQsOCArMTA0LDggQEAgdm9p
ZCBDaGlsZE5vZGVSZW1vdmFsTm90aWZpZXI6Om5vdGlmeURlc2NlbmRhbnRSZW1vdmVkRnJvbVRy
ZWUoQ29udGFpbmVyTm9kZSogbm8KICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUgPSB0b0VsZW1lbnQobm9k
ZSktPnNoYWRvd1RyZWUoKSkgewotICAgICAgICBTaGFkb3dSb290VmVjdG9yIHJvb3RzKHRyZWUp
OworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRv
dygpKSB7CisgICAgICAgIFNoYWRvd1Jvb3RWZWN0b3Igcm9vdHMoc2hhZG93KTsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCByb290cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIG5v
dGlmeU5vZGVSZW1vdmVkRnJvbVRyZWUocm9vdHNbaV0uZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDQyNmE4Y2E1NTZlYWFlMDE1YzQ3NzlmYTE1ODViNTYw
ZDY3ZTY2ZmQuLjZmNjVjMDAxMzYzN2ZjM2Y0ZDYyMGEyNDgwNDdiOGMyNWI1MGFhMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkVk
aXRpbmdUZXh0LmNwcCIKICNpbmNsdWRlICJFbGVtZW50LmNwcCIKICNpbmNsdWRlICJFbGVtZW50
QXR0cmlidXRlRGF0YS5jcHAiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5jcHAiCiAjaW5jbHVk
ZSAiRW50aXR5UmVmZXJlbmNlLmNwcCIKICNpbmNsdWRlICJFcnJvckV2ZW50LmNwcCIKICNpbmNs
dWRlICJFdmVudC5jcHAiCkBAIC0xMTgsNyArMTE5LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eUNv
bnRleHQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuY3BwIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuY3BwIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuY3BwIgogI2luY2x1ZGUgIlNwYWNlU3Bs
aXRTdHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAiCiAjaW5j
bHVkZSAiU3RhdGljTm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTUw
Y2I5OTM0MmNkNDNiYzM3NWQ0M2QyMzJiNmZkMzIzOGI2ODVhOS4uMDE0YzI1MzZhMTczZTYxMDY0
ZmRlZDBmMDIzNDNlMjU0MjAzNjJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MCw2
ICs2MCw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1
ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnRGYWN0b3J5LmgiCkBAIC0xNDAsNyArMTQxLDYgQEAKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJp
bmcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNp
bmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0Lmgi
CiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0Lmgi
CkBAIC03MTMsNyArNzEzLDcgQEAgdm9pZCBEb2N1bWVudDo6YnVpbGRBY2Nlc3NLZXlNYXAoVHJl
ZVNjb3BlKiBzY29wZSkKICAgICAgICAgICAgIG1fZWxlbWVudHNCeUFjY2Vzc0tleS5zZXQoYWNj
ZXNzS2V5LmltcGwoKSwgZWxlbWVudCk7CiAKICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1NoYWRv
d1Jvb3QoKSkgewotICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudC0+
c2hhZG93VHJlZSgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9s
ZGVyU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gZWxl
bWVudC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+
b2xkZXJTaGFkb3dSb290KCkpCiAgICAgICAgICAgICAgICAgYnVpbGRBY2Nlc3NLZXlNYXAocm9v
dCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZjFjMmE4YmZj
ZDRiYjIxMzRlYTViNDYyZWRhY2YzYmQ0MjQ2NzYxYy4uMzY1NTczY2Q4ZGZhMTY1NWJjMjNkMWVm
MDZjZDljZjFiMGI1YWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTMzLDggKzEzMyw4
IEBAIEVsZW1lbnQ6On5FbGVtZW50KCkKICAgICB9CiAjZW5kaWYKIAotICAgIGlmIChzaGFkb3dU
cmVlKCkpCi0gICAgICAgIHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZS5jbGVhcigpOworICAgIGlm
IChzaGFkb3coKSkKKyAgICAgICAgcmFyZURhdGEoKS0+bV9zaGFkb3cuY2xlYXIoKTsKICAgICBp
ZiAobV9hdHRyaWJ1dGVEYXRhKQogICAgICAgICBtX2F0dHJpYnV0ZURhdGEtPmNsZWFyQXR0cmli
dXRlcyh0aGlzKTsKIH0KQEAgLTkwOCw4ICs5MDgsOCBAQCB2b2lkIEVsZW1lbnQ6OndpbGxSZW1v
dmUoKQogICAgIGlmIChjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkpCiAgICAgICAgIHNldENv
bnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVz
KGZhbHNlKTsKICNlbmRpZgotICAgIGlmIChTaGFkb3dUcmVlKiB0cmVlID0gc2hhZG93VHJlZSgp
KQotICAgICAgICB0cmVlLT53aWxsUmVtb3ZlKCk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNo
YWRvdyA9IHRoaXMtPnNoYWRvdygpKQorICAgICAgICBzaGFkb3ctPndpbGxSZW1vdmUoKTsKICAg
ICBDb250YWluZXJOb2RlOjp3aWxsUmVtb3ZlKCk7CiB9CiAKQEAgLTk3NCw5ICs5NzQsOSBAQCB2
b2lkIEVsZW1lbnQ6OmF0dGFjaCgpCiAgICAgU3R5bGVSZXNvbHZlclBhcmVudFB1c2hlciBwYXJl
bnRQdXNoZXIodGhpcyk7CiAKICAgICAvLyBXaGVuIGEgc2hhZG93IHJvb3QgZXhpc3RzLCBpdCBk
b2VzIHRoZSB3b3JrIG9mIGF0dGFjaGluZyB0aGUgY2hpbGRyZW4uCi0gICAgaWYgKFNoYWRvd1Ry
ZWUqIHRyZWUgPSBzaGFkb3dUcmVlKCkpIHsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93
ID0gdGhpcy0+c2hhZG93KCkpIHsKICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKLSAgICAg
ICAgdHJlZS0+YXR0YWNoSG9zdCh0aGlzKTsKKyAgICAgICAgc2hhZG93LT5hdHRhY2hIb3N0KHRo
aXMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChmaXJzdENoaWxkKCkpCiAgICAgICAgICAg
ICBwYXJlbnRQdXNoZXIucHVzaCgpOwpAQCAtMTAxMiw4ICsxMDEyLDggQEAgdm9pZCBFbGVtZW50
OjpkZXRhY2goKQogICAgIGlmIChoYXNSYXJlRGF0YSgpKQogICAgICAgICByYXJlRGF0YSgpLT5y
ZXNldENvbXB1dGVkU3R5bGUoKTsKIAotICAgIGlmIChTaGFkb3dUcmVlKiB0cmVlID0gc2hhZG93
VHJlZSgpKQotICAgICAgICB0cmVlLT5kZXRhY2hIb3N0KHRoaXMpOworICAgIGlmIChFbGVtZW50
U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkKKyAgICAgICAgc2hhZG93LT5kZXRhY2hI
b3N0KHRoaXMpOwogICAgIGVsc2UKICAgICAgICAgQ29udGFpbmVyTm9kZTo6ZGV0YWNoKCk7CiAK
QEAgLTExNzksMTAgKzExNzksMTAgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNo
YW5nZSBjaGFuZ2UpCiAgICAgfQogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhcmUgYWJv
dXQgc2libGluZyBjb21iaW5hdG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4gWEJMMiB3b3JsZC4K
ICAgICBpZiAoaGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIFNoYWRvd1RyZWUqIHRyZWUgPSBz
aGFkb3dUcmVlKCk7Ci0gICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCB0cmVlLT5jaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCB0cmVlLT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKKyAgICAg
ICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCk7CisgICAgICAgIGlmIChj
aGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNo
YWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVz
aCgpOwotICAgICAgICAgICAgdHJlZS0+cmVjYWxjU2hhZG93VHJlZVN0eWxlKGNoYW5nZSk7Cisg
ICAgICAgICAgICBzaGFkb3ctPnJlY2FsY1N0eWxlKGNoYW5nZSk7CiAgICAgICAgIH0KICAgICB9
CiAKQEAgLTExOTUsMzIgKzExOTUsMzIgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHls
ZUNoYW5nZSBjaGFuZ2UpCiAKIGJvb2wgRWxlbWVudDo6aGFzU2hhZG93Um9vdCgpIGNvbnN0CiB7
Ci0gICAgaWYgKFNoYWRvd1RyZWUqIHRyZWUgPSBzaGFkb3dUcmVlKCkpCi0gICAgICAgIHJldHVy
biB0cmVlLT5oYXNTaGFkb3dSb290KCk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9
IHRoaXMtPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hhZG93LT5oYXNTaGFkb3dSb290KCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TaGFkb3dUcmVlKiBFbGVtZW50OjpzaGFkb3dUcmVl
KCkgY29uc3QKK0VsZW1lbnRTaGFkb3cqIEVsZW1lbnQ6OnNoYWRvdygpIGNvbnN0CiB7CiAgICAg
aWYgKCFoYXNSYXJlRGF0YSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiByYXJl
RGF0YSgpLT5tX3NoYWRvd1RyZWUuZ2V0KCk7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2hh
ZG93LmdldCgpOwogfQogCi1TaGFkb3dUcmVlKiBFbGVtZW50OjplbnN1cmVTaGFkb3dUcmVlKCkK
K0VsZW1lbnRTaGFkb3cqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvdygpCiB7Ci0gICAgaWYgKFNoYWRv
d1RyZWUqIHRyZWUgPSBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1RyZWUuZ2V0KCkpCi0gICAg
ICAgIHJldHVybiB0cmVlOworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBlbnN1cmVS
YXJlRGF0YSgpLT5tX3NoYWRvdy5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvdzsKIAotICAg
IHJhcmVEYXRhKCktPm1fc2hhZG93VHJlZSA9IGFkb3B0UHRyKG5ldyBTaGFkb3dUcmVlKCkpOwot
ICAgIHJldHVybiByYXJlRGF0YSgpLT5tX3NoYWRvd1RyZWUuZ2V0KCk7CisgICAgcmFyZURhdGEo
KS0+bV9zaGFkb3cgPSBhZG9wdFB0cihuZXcgRWxlbWVudFNoYWRvdygpKTsKKyAgICByZXR1cm4g
cmFyZURhdGEoKS0+bV9zaGFkb3cuZ2V0KCk7CiB9CiAKIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OmVu
c3VyZVNoYWRvd1Jvb3QoKQogewogICAgIGlmIChoYXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJl
dHVybiBzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgcmV0dXJuIHNo
YWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAKICAgICByZXR1cm4gU2hhZG93Um9vdDo6Y3Jl
YXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCkuZ2V0KCk7
CiB9CkBAIC0xMzU3LDcgKzEzNTcsNyBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChi
b29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZgogCiAgICAg
aWYgKGhhc1JhcmVEYXRhKCkpIHsKICAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAg
ICAgICAgIHNoYWRvd1RyZWUoKS0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOworICAgICAgICAgICAg
c2hhZG93KCktPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCmluZGV4IGRiNWI4ZDAwMmY5M2NlZTVkZTNiYjNkMDliOWQ2Y2E3NmE4NWQyM2EuLjdmM2Q2
MDdkN2MxODdmMTBkOTZkOWRlYTgyYmFmY2MyODVjYzk5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApA
QCAtNDIsNyArNDIsNyBAQCBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgU2hhZG93Um9vdDsKLWNsYXNzIFNoYWRvd1RyZWU7
CitjbGFzcyBFbGVtZW50U2hhZG93OwogY2xhc3MgV2ViS2l0QW5pbWF0aW9uTGlzdDsKIAogZW51
bSBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgewpAQCAtMjYyLDggKzI2Miw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOwogCiAgICAgYm9v
bCBoYXNTaGFkb3dSb290KCkgY29uc3Q7Ci0gICAgU2hhZG93VHJlZSogc2hhZG93VHJlZSgpIGNv
bnN0OwotICAgIFNoYWRvd1RyZWUqIGVuc3VyZVNoYWRvd1RyZWUoKTsKKyAgICBFbGVtZW50U2hh
ZG93KiBzaGFkb3coKSBjb25zdDsKKyAgICBFbGVtZW50U2hhZG93KiBlbnN1cmVTaGFkb3coKTsK
IAogICAgIC8vIEZJWE1FOiBSZW1vdmUgRWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdAogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYwOApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IDhiYjI2YTRmYTJiM2RjYmRmMjc0NmQyYjFkODY0
ZTRhMzAxZjc0YTkuLjhlN2JjYmNmNDI3ZTFmOWI2NTM5MzU5OTBkZjE0NjIxMTNhYmI3NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTI1LDEwICsyNSwxMCBAQAogI2lu
Y2x1ZGUgIkNsYXNzTGlzdC5oIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUg
IkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6
CiAKICAgICBPd25QdHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFw
OwogICAgIE93blB0cjxDbGFzc0xpc3Q+IG1fY2xhc3NMaXN0OwotICAgIE93blB0cjxTaGFkb3dU
cmVlPiBtX3NoYWRvd1RyZWU7CisgICAgT3duUHRyPEVsZW1lbnRTaGFkb3c+IG1fc2hhZG93Owog
ICAgIE93blB0cjxOYW1lZE5vZGVNYXA+IG1fYXR0cmlidXRlTWFwOwogCiAgICAgYm9vbCBtX3N0
eWxlQWZmZWN0ZWRCeUVtcHR5OwpAQCAtOTgsNyArOTgsNyBAQCBpbmxpbmUgRWxlbWVudFJhcmVE
YXRhOjpFbGVtZW50UmFyZURhdGEoKQogCiBpbmxpbmUgRWxlbWVudFJhcmVEYXRhOjp+RWxlbWVu
dFJhcmVEYXRhKCkKIHsKLSAgICBBU1NFUlQoIW1fc2hhZG93VHJlZSk7CisgICAgQVNTRVJUKCFt
X3NoYWRvdyk7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRSYXJlRGF0YTo6cmVzZXRDb21wdXRl
ZFN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2My
MmU5NDYzY2ExNjFmY2M4YWVmM2U3ZjU5NGRlZmRhZGM2MTUwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCkBAIC0wLDAgKzEsMjc2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKKworI2luY2x1
ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxlUmVz
b2x2ZXIuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRWxl
bWVudFNoYWRvdzo6RWxlbWVudFNoYWRvdygpCisgICAgOiBtX25lZWRzUmVjYWxjdWxhdGVDb250
ZW50KGZhbHNlKQoreworfQorCitFbGVtZW50U2hhZG93Ojp+RWxlbWVudFNoYWRvdygpCit7Cisg
ICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsK
K30KKworc3RhdGljIGJvb2wgdmFsaWRhdGVTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwg
U2hhZG93Um9vdCogc2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFz
aGFkb3dSb290KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChzaGFkb3dSb290LT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoc2hhZG93Um9vdC0+ZG9jdW1lbnQo
KSAhPSBkb2N1bWVudCkgeworICAgICAgICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEVs
ZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3QoRWxlbWVudCogc2hhZG93SG9zdCwgUGFzc1JlZlB0
cjxTaGFkb3dSb290PiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NF
UlQoc2hhZG93SG9zdCk7CisgICAgQVNTRVJUKHNoYWRvd1Jvb3QpOworCisgICAgaWYgKCF2YWxp
ZGF0ZVNoYWRvd1Jvb3Qoc2hhZG93SG9zdC0+ZG9jdW1lbnQoKSwgc2hhZG93Um9vdC5nZXQoKSwg
ZWMpKQorICAgICAgICByZXR1cm47CisKKyAgICBzaGFkb3dSb290LT5zZXRTaGFkb3dIb3N0KHNo
YWRvd0hvc3QpOworICAgIENoaWxkTm9kZUluc2VydGlvbk5vdGlmaWVyKHNoYWRvd0hvc3QpLm5v
dGlmeShzaGFkb3dSb290LmdldCgpKTsKKworICAgIGlmIChzaGFkb3dIb3N0LT5hdHRhY2hlZCgp
KSB7CisgICAgICAgIHNoYWRvd1Jvb3QtPmxhenlBdHRhY2goKTsKKyAgICAgICAgZGV0YWNoKCk7
CisgICAgICAgIHNoYWRvd0hvc3QtPmRldGFjaENoaWxkcmVuKCk7CisgICAgfQorCisgICAgbV9z
aGFkb3dSb290cy5wdXNoKHNoYWRvd1Jvb3QuZ2V0KCkpOworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkUHVzaFNoYWRvd1Jvb3Qoc2hhZG93SG9zdCwgc2hhZG93Um9vdC5nZXQoKSk7
Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6cmVtb3ZlQWxsU2hhZG93Um9vdHMoKQoreworICAg
IGlmICghaGFzU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBEb250IHBy
b3RlY3QgdGhpcyByZWYgY291bnQuCisgICAgRWxlbWVudCogc2hhZG93SG9zdCA9IGhvc3QoKTsK
KworICAgIHdoaWxlIChSZWZQdHI8U2hhZG93Um9vdD4gb2xkUm9vdCA9IG1fc2hhZG93Um9vdHMu
cmVtb3ZlSGVhZCgpKSB7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBv
cFNoYWRvd1Jvb3Qoc2hhZG93SG9zdCwgb2xkUm9vdC5nZXQoKSk7CisgICAgICAgIHNoYWRvd0hv
c3QtPmRvY3VtZW50KCktPnJlbW92ZUZvY3VzZWROb2RlT2ZTdWJ0cmVlKG9sZFJvb3QuZ2V0KCkp
OworCisgICAgICAgIGlmIChvbGRSb290LT5hdHRhY2hlZCgpKQorICAgICAgICAgICAgb2xkUm9v
dC0+ZGV0YWNoKCk7CisKKyAgICAgICAgb2xkUm9vdC0+c2V0U2hhZG93SG9zdCgwKTsKKyAgICAg
ICAgb2xkUm9vdC0+c2V0UHJldigwKTsKKyAgICAgICAgb2xkUm9vdC0+c2V0TmV4dCgwKTsKKyAg
ICAgICAgc2hhZG93SG9zdC0+ZG9jdW1lbnQoKS0+YWRvcHRJZk5lZWRlZChvbGRSb290LmdldCgp
KTsKKyAgICAgICAgQ2hpbGROb2RlUmVtb3ZhbE5vdGlmaWVyKHNoYWRvd0hvc3QpLm5vdGlmeShv
bGRSb290LmdldCgpKTsKKyAgICB9CisKKyAgICBpZiAoc2hhZG93SG9zdC0+YXR0YWNoZWQoKSkK
KyAgICAgICAgc2hhZG93SG9zdC0+YXR0YWNoQ2hpbGRyZW5MYXppbHkoKTsKK30KKwordm9pZCBF
bGVtZW50U2hhZG93Ojp3aWxsUmVtb3ZlKCkKK3sKKyAgICBTaGFkb3dSb290VmVjdG9yIHJvb3Rz
KHRoaXMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcm9vdHMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIHJvb3RzW2ldLT53aWxsUmVtb3ZlKCk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6
c2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpCit7CisgICAgZm9yIChTaGFkb3dS
b290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+c2V0UGFyZW50VHJlZVNjb3BlKHNjb3BlKTsK
K30KKwordm9pZCBFbGVtZW50U2hhZG93OjphdHRhY2goKQoreworICAgIC8vIENoaWxkcmVuIG9m
IG1fc2VsZWN0b3IgaXMgcG9wdWxhdGVkIGxhemlseSBpbgorICAgIC8vIGVuc3VyZVNlbGVjdG9y
KCksIGFuZCBoZXJlIHdlIGp1c3QgZW5zdXJlIHRoYXQgaXQgaXMgaW4gY2xlYW4gc3RhdGUuCisg
ICAgQVNTRVJUKCFzZWxlY3RvcigpLmhhc1BvcHVsYXRlZCgpKTsKKworICAgIHNlbGVjdG9yKCku
d2lsbFNlbGVjdCgpOworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAg
aWYgKCFyb290LT5hdHRhY2hlZCgpKQorICAgICAgICAgICAgcm9vdC0+YXR0YWNoKCk7CisgICAg
fQorICAgIHNlbGVjdG9yKCkuZGlkU2VsZWN0KCk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6
YXR0YWNoSG9zdChFbGVtZW50KiBob3N0KQoreworICAgIGF0dGFjaCgpOworICAgIGhvc3QtPmF0
dGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKKyAgICBob3N0LT5hdHRhY2hBc05vZGUoKTsKK30KKwor
dm9pZCBFbGVtZW50U2hhZG93OjpkZXRhY2goKQoreworICAgIGZvciAoU2hhZG93Um9vdCogcm9v
dCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dS
b290KCkpIHsKKyAgICAgICAgaWYgKHJvb3QtPmF0dGFjaGVkKCkpCisgICAgICAgICAgICByb290
LT5kZXRhY2goKTsKKyAgICB9Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6ZGV0YWNoSG9zdChF
bGVtZW50KiBob3N0KQoreworICAgIGhvc3QtPmRldGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKKyAg
ICBkZXRhY2goKTsKKyAgICBob3N0LT5kZXRhY2hBc05vZGUoKTsKK30KKworSW5zZXJ0aW9uUG9p
bnQqIEVsZW1lbnRTaGFkb3c6Omluc2VydGlvblBvaW50Rm9yKGNvbnN0IE5vZGUqIG5vZGUpIGNv
bnN0Cit7CisgICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+cGFyZW50Tm9kZSgpKTsKKworICAgIGlm
IChub2RlLT5wYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIGlmIChJbnNl
cnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQgPSB0b1NoYWRvd1Jvb3Qobm9kZS0+cGFyZW50Tm9k
ZSgpKS0+YXNzaWduZWRUbygpKQorICAgICAgICAgICAgcmV0dXJuIGluc2VydGlvblBvaW50Owor
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBm
b3VuZCA9IHNlbGVjdG9yKCkuZmluZEZvcihub2RlKTsKKyAgICBpZiAoIWZvdW5kKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gZm91bmQtPmluc2VydGlvblBvaW50KCk7Cit9CisKK0hU
TUxDb250ZW50U2VsZWN0aW9uKiBFbGVtZW50U2hhZG93OjpzZWxlY3Rpb25Gb3IoY29uc3QgTm9k
ZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3Rvci5maW5kRm9yKG5vZGUpOwor
fQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OnJlYXR0YWNoKCkKK3sKKyAgICBkZXRhY2goKTsKKyAg
ICBhdHRhY2goKTsKK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpjaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKQoreworICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgZm9yIChTaGFk
b3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5v
bGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgaWYgKHJvb3QtPmNoaWxkTmVlZHNTdHlsZVJlY2Fs
YygpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgRWxlbWVudFNoYWRvdzo6bmVlZHNTdHlsZVJlY2FsYygpCit7CisgICAgQVNTRVJUKHlv
dW5nZXN0U2hhZG93Um9vdCgpKTsKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAg
ICAgICBpZiAocm9vdC0+bmVlZHNTdHlsZVJlY2FsYygpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRvdzo6cmVjYWxj
U3R5bGUoTm9kZTo6U3R5bGVDaGFuZ2UgY2hhbmdlKQoreworICAgIFNoYWRvd1Jvb3QqIHlvdW5n
ZXN0ID0geW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKCF5b3VuZ2VzdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKSkK
KyAgICAgICAgcmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciA9IHlvdW5nZXN0LT5kb2N1bWVudCgp
LT5zdHlsZVJlc29sdmVyKCk7CisKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+cHVzaFBhcmVudFNo
YWRvd1Jvb3QoeW91bmdlc3QpOworICAgICAgICBmb3IgKE5vZGUqIG4gPSB5b3VuZ2VzdC0+Zmly
c3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKG4t
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
biktPnJlY2FsY1N0eWxlKGNoYW5nZSk7CisgICAgICAgICAgICBlbHNlIGlmIChuLT5pc1RleHRO
b2RlKCkpCisgICAgICAgICAgICAgICAgdG9UZXh0KG4pLT5yZWNhbGNUZXh0U3R5bGUoY2hhbmdl
KTsKKyAgICAgICAgfQorICAgICAgICBzdHlsZVJlc29sdmVyLT5wb3BQYXJlbnRTaGFkb3dSb290
KHlvdW5nZXN0KTsKKyAgICB9CisKKyAgICBjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKTsKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKSB7CisgICAgICAgIHJv
b3QtPmNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAgICAgICByb290LT5jbGVhckNoaWxkTmVl
ZHNTdHlsZVJlY2FsYygpOworICAgIH0KK30KKworYm9vbCBFbGVtZW50U2hhZG93OjpuZWVkc1Jl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKK3sKKyAgICByZXR1cm4gbV9uZWVkc1JlY2Fs
Y3VsYXRlQ29udGVudCB8fCAoeW91bmdlc3RTaGFkb3dSb290KCkgJiYgeW91bmdlc3RTaGFkb3dS
b290KCktPmhhc0luc2VydGlvblBvaW50KCkpOworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6Omhv
c3RDaGlsZHJlbkNoYW5nZWQoKQoreworICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7
CisKKyAgICBpZiAoIXlvdW5nZXN0U2hhZG93Um9vdCgpLT5oYXNJbnNlcnRpb25Qb2ludCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGlzIHJlc3VsdHMgaW4gZm9yY2VkIGRldGFjaGlu
Zy9hdHRhY2hpbmcgb2YgdGhlIHNoYWRvdyByZW5kZXIgdHJlZS4gU2VlIFNoYWRvd1Jvb3Q6OnJl
Y2FsY1N0eWxlKCkuCisgICAgc2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygp
OworfQorCit2b2lkIEVsZW1lbnRTaGFkb3c6OnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKQoreworICAgIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSB0cnVlOworCisg
ICAgaG9zdCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK3ZvaWQgRWxlbWVudFNoYWRv
dzo6cmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQoreworICAgIEFTU0VSVCh5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKSk7CisKKyAgICBFbGVtZW50KiBob3N0Tm9kZSA9IHlvdW5nZXN0U2hhZG93
Um9vdCgpLT5ob3N0KCk7CisgICAgaG9zdE5vZGUtPmRldGFjaENoaWxkcmVuSWZOZWVkZWQoKTsK
KyAgICByZWF0dGFjaCgpOworICAgIGhvc3ROb2RlLT5hdHRhY2hDaGlsZHJlbklmTmVlZGVkKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MDQ4MGI4MDJhNThjNjEwNmJkMjNiNjE5ZDE4YjE0N2Y0ZmUwOTcwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtMCwwICsxLDE0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRWxlbWVudFNoYWRvd19oCisjZGVmaW5lIEVsZW1lbnRTaGFkb3dfaAor
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0
b3IuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtl
ZExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm9kZTsKK2NsYXNzIEVsZW1lbnQ7
CitjbGFzcyBJbnNlcnRpb25Qb2ludDsKK2NsYXNzIFRyZWVTY29wZTsKK2NsYXNzIEhUTUxDb250
ZW50U2VsZWN0aW9uOworCitjbGFzcyBFbGVtZW50U2hhZG93IHsKK3B1YmxpYzoKKyAgICBFbGVt
ZW50U2hhZG93KCk7CisgICAgfkVsZW1lbnRTaGFkb3coKTsKKworICAgIEVsZW1lbnQqIGhvc3Qo
KSBjb25zdDsKKworICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OworICAgIFNoYWRvd1Jv
b3QqIHlvdW5nZXN0U2hhZG93Um9vdCgpIGNvbnN0OworICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNo
YWRvd1Jvb3QoKSBjb25zdDsKKworICAgIHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFk
b3dIb3N0LCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9p
ZCByZW1vdmVBbGxTaGFkb3dSb290cygpOworCisgICAgdm9pZCB3aWxsUmVtb3ZlKCk7CisKKyAg
ICB2b2lkIHNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUqKTsKKworICAgIHZvaWQgYXR0YWNo
KCk7CisgICAgdm9pZCBkZXRhY2goKTsKKyAgICB2b2lkIHJlYXR0YWNoKCk7CisgICAgdm9pZCBh
dHRhY2hIb3N0KEVsZW1lbnQqKTsKKyAgICB2b2lkIGRldGFjaEhvc3QoRWxlbWVudCopOworCisg
ICAgYm9vbCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBib29sIG5lZWRzU3R5bGVSZWNh
bGMoKTsKKyAgICB2b2lkIHJlY2FsY1N0eWxlKE5vZGU6OlN0eWxlQ2hhbmdlKTsKKyAgICB2b2lk
IHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICB2b2lkIGNsZWFy
TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIGJvb2wgbmVlZHNSZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIHZvaWQgcmVhdHRhY2hIb3N0Q2hpbGRy
ZW5BbmRTaGFkb3coKTsKKyAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKKworICAgIElu
c2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihjb25zdCBOb2RlKikgY29uc3Q7CisgICAg
SFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbkZvcihjb25zdCBOb2RlKikgY29uc3Q7CisK
KyAgICBIVE1MQ29udGVudFNlbGVjdG9yJiBzZWxlY3RvcigpOworICAgIGNvbnN0IEhUTUxDb250
ZW50U2VsZWN0b3ImIHNlbGVjdG9yKCkgY29uc3Q7CisKK3ByaXZhdGU6CisKKyAgICBEb3VibHlM
aW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CisgICAgSFRNTENvbnRlbnRTZWxl
Y3RvciBtX3NlbGVjdG9yOworICAgIGJvb2wgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA6IDE7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRWxlbWVudFNoYWRvdyk7Cit9OworCitpbmxpbmUg
Ym9vbCBFbGVtZW50U2hhZG93OjpoYXNTaGFkb3dSb290KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IW1fc2hhZG93Um9vdHMuaXNFbXB0eSgpOworfQorCitpbmxpbmUgU2hhZG93Um9vdCogRWxlbWVu
dFNoYWRvdzo6eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zaGFk
b3dSb290cy5oZWFkKCk7Cit9CisKK2lubGluZSBTaGFkb3dSb290KiBFbGVtZW50U2hhZG93Ojpv
bGRlc3RTaGFkb3dSb290KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zaGFkb3dSb290cy50YWls
KCk7Cit9CisKK2lubGluZSBIVE1MQ29udGVudFNlbGVjdG9yJiBFbGVtZW50U2hhZG93OjpzZWxl
Y3RvcigpCit7CisgICAgcmV0dXJuIG1fc2VsZWN0b3I7Cit9CisKK2lubGluZSBjb25zdCBIVE1M
Q29udGVudFNlbGVjdG9yJiBFbGVtZW50U2hhZG93OjpzZWxlY3RvcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fc2VsZWN0b3I7Cit9CisKK2lubGluZSB2b2lkIEVsZW1lbnRTaGFkb3c6OmNsZWFy
TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgbV9uZWVkc1JlY2Fs
Y3VsYXRlQ29udGVudCA9IGZhbHNlOworfQorCitpbmxpbmUgRWxlbWVudCogRWxlbWVudFNoYWRv
dzo6aG9zdCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7CisgICAgcmV0
dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7Cit9CisKK2NsYXNzIFNoYWRvd1Jvb3RW
ZWN0b3IgOiBwdWJsaWMgVmVjdG9yPFJlZlB0cjxTaGFkb3dSb290PiA+IHsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBTaGFkb3dSb290VmVjdG9yKEVsZW1lbnRTaGFkb3cqIHRyZWUpCisgICAgewor
ICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0cmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgYXBw
ZW5kKHJvb3QpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IGJkYmRkNWFjZTJhODU2ZThkNTllYjc4ODQzZWQ2ZGRhY2U0ZGM0ZTkuLmM2
NDRiYTFmOWIzOGE4MDk5MmFiMDNlMmVkZGIwMDlmOWMwY2UwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJE
eW5hbWljTm9kZUxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVu
dFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaE1lZGlhdG9yLmgiCkBAIC04NSw3ICs4Niw2IEBACiAj
aW5jbHVkZSAiU2VsZWN0b3JRdWVyeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJTdGF0
aWNOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKQEAgLTgzNSw3ICs4MzUsNyBAQCBib29sIE5vZGU6Omhhc05vbkVtcHR5Qm91
bmRpbmdCb3goKSBjb25zdAogCiBpbmxpbmUgc3RhdGljIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRv
d1Jvb3RGb3IoY29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50
Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50KG5v
ZGUpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKSA6IDA7CisgICAgcmV0dXJuIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/
IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSA6IDA7CiB9CiAK
IGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VU
eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXgg
MjVmNmEyYjI1ZjU2NmMxZWFiM2I1NmZiOTY1Mzk4MmQyMDM5NDVmMy4uMjcxZjVjYWQwYmUxMGM0
YmMyYzIxZTY5NjA4MGYyMjQ1YTAzOTlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRl
cmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJF
bGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9y
LmgiCkBAIC0zOCw3ICszOSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFk
b3dUcmVlLmgiCiAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC01
NSw3ICs1NSw3IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChO
b2RlKiBub2RlKQogICAgIDogbV9waGFzZShBdHRhY2hpbmdOb3RJblRyZWUpCiAgICAgLCBtX25v
ZGUobm9kZSkKICAgICAsIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKDApCi0gICAg
LCBtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUoMCkKKyAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93
KDApCiAgICAgLCBtX2luc2VydGlvblBvaW50KDApCiAgICAgLCBtX3N0eWxlKDApCiAgICAgLCBt
X3BhcmVudEZsb3dSZW5kZXJlcigwKQpAQCAtNzIsMTIgKzcyLDEyIEBAIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogCiAgICAgaWYgKHBhcmVu
dC0+aXNFbGVtZW50Tm9kZSgpIHx8IHBhcmVudC0+aXNTaGFkb3dSb290KCkpIHsKICAgICAgICAg
aWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChwYXJlbnQpLT5oYXNTaGFk
b3dSb290KCkpCi0gICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUgPSB0b0VsZW1l
bnQocGFyZW50KS0+c2hhZG93VHJlZSgpOworICAgICAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFk
b3cgPSB0b0VsZW1lbnQocGFyZW50KS0+c2hhZG93KCk7CiAgICAgICAgIGVsc2UgaWYgKHBhcmVu
dC0+aXNTaGFkb3dSb290KCkpCi0gICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUg
PSB0b1NoYWRvd1Jvb3QocGFyZW50KS0+dHJlZSgpOworICAgICAgICAgICAgbV92aXN1YWxQYXJl
bnRTaGFkb3cgPSB0b1NoYWRvd1Jvb3QocGFyZW50KS0+b3duZXIoKTsKIAotICAgICAgICBpZiAo
bV92aXN1YWxQYXJlbnRTaGFkb3dUcmVlKSB7Ci0gICAgICAgICAgICBpZiAoKG1faW5zZXJ0aW9u
UG9pbnQgPSBtX3Zpc3VhbFBhcmVudFNoYWRvd1RyZWUtPmluc2VydGlvblBvaW50Rm9yKG1fbm9k
ZSkpKSB7CisgICAgICAgIGlmIChtX3Zpc3VhbFBhcmVudFNoYWRvdykgeworICAgICAgICAgICAg
aWYgKChtX2luc2VydGlvblBvaW50ID0gbV92aXN1YWxQYXJlbnRTaGFkb3ctPmluc2VydGlvblBv
aW50Rm9yKG1fbm9kZSkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHRvU2hhZG93Um9vdChtX2lu
c2VydGlvblBvaW50LT5zaGFkb3dUcmVlUm9vdE5vZGUoKSktPmlzVXNlZEZvclJlbmRlcmluZygp
KSB7CiAgICAgICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdEaXN0cmlidXRlZDsK
ICAgICAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBO
b2RlUmVuZGVyaW5nQ29udGV4dChtX2luc2VydGlvblBvaW50KS5wYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGUoKTsKQEAgLTExOCw3ICsxMTgsNyBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAg
IDogbV9waGFzZShDYWxjdWxhdGluZykKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoMCkKLSAgICAsIG1fdmlzdWFsUGFyZW50U2hhZG93
VHJlZSgwKQorICAgICwgbV92aXN1YWxQYXJlbnRTaGFkb3coMCkKICAgICAsIG1faW5zZXJ0aW9u
UG9pbnQoMCkKICAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX3BhcmVudEZsb3dSZW5kZXJl
cigwKQpAQCAtMjkzLDggKzI5Myw4IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6OnBhcmVudFJlbmRlcmVyKCkgY29uc3QKIAogdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
aG9zdENoaWxkcmVuQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoaW5nTm90
RGlzdHJpYnV0ZWQgJiYgbV92aXN1YWxQYXJlbnRTaGFkb3dUcmVlKQotICAgICAgICBtX3Zpc3Vh
bFBhcmVudFNoYWRvd1RyZWUtPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKKyAgICBpZiAobV9waGFz
ZSA9PSBBdHRhY2hpbmdOb3REaXN0cmlidXRlZCAmJiBtX3Zpc3VhbFBhcmVudFNoYWRvdykKKyAg
ICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3ctPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKIH0KIAog
Ym9vbCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6c2hvdWxkQ3JlYXRlUmVuZGVyZXIoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCAxZWRlNzA4YWJm
NDliNzEzNDg1MjQ1YjE0MDQwZDVjNDBiMzBmODdmLi4xZDNkYWYzZmM1NDI2N2QzYjQ3Y2RhMWJi
OTE3MWUyYWEyMWEzOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBT
aGFkb3dUcmVlOworY2xhc3MgRWxlbWVudFNoYWRvdzsKIAogY2xhc3MgTm9kZVJlbmRlcmluZ0Nv
bnRleHQgewogcHVibGljOgpAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogICAgIEF0dGFjaGlu
Z1BoYXNlIG1fcGhhc2U7CiAgICAgTm9kZSogbV9ub2RlOwogICAgIENvbnRhaW5lck5vZGUqIG1f
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlOwotICAgIFNoYWRvd1RyZWUqIG1fdmlzdWFs
UGFyZW50U2hhZG93VHJlZTsKKyAgICBFbGVtZW50U2hhZG93KiBtX3Zpc3VhbFBhcmVudFNoYWRv
dzsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IG1fc3R5bGU7CiAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBtX3BhcmVudEZs
b3dSZW5kZXJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCA4YzFkOGIyZDhjNjQ5
N2VlMGQ0ZDE5MGMzZjdhNjQyNmI2NjQ3NzM4Li43NzI2MTNmNzE3OGU1OGM1Y2RkMjUwOTU4ZDEz
MzJiODZlZTE3NDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zMiwxMiArMzIs
MTIgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2lu
Y2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0
b3IuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5o
IgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJtYXJrdXAuaCIKQEAgLTExOCw3ICsxMTgsNyBAQCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNo
YWRvd1Jvb3Q6OmNyZWF0ZShFbGVtZW50KiBlbGVtZW50LCBTaGFkb3dSb290Q3JlYXRpb25QdQog
ICAgIFJlZlB0cjxTaGFkb3dSb290PiBzaGFkb3dSb290ID0gYWRvcHRSZWYobmV3IFNoYWRvd1Jv
b3QoZWxlbWVudC0+ZG9jdW1lbnQoKSkpOwogCiAgICAgZWMgPSAwOwotICAgIGVsZW1lbnQtPmVu
c3VyZVNoYWRvd1RyZWUoKS0+YWRkU2hhZG93Um9vdChlbGVtZW50LCBzaGFkb3dSb290LCBlYyk7
CisgICAgZWxlbWVudC0+ZW5zdXJlU2hhZG93KCktPmFkZFNoYWRvd1Jvb3QoZWxlbWVudCwgc2hh
ZG93Um9vdCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgQVNTRVJU
KGVsZW1lbnQgPT0gc2hhZG93Um9vdC0+aG9zdCgpKTsKQEAgLTE3MSwxMCArMTcxLDEwIEBAIGJv
b2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAg
IH0KIH0KIAotU2hhZG93VHJlZSogU2hhZG93Um9vdDo6dHJlZSgpIGNvbnN0CitFbGVtZW50U2hh
ZG93KiBTaGFkb3dSb290Ojpvd25lcigpIGNvbnN0CiB7CiAgICAgaWYgKGhvc3QoKSkKLSAgICAg
ICAgcmV0dXJuIGhvc3QoKS0+c2hhZG93VHJlZSgpOworICAgICAgICByZXR1cm4gaG9zdCgpLT5z
aGFkb3coKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXgg
ZTViMjIxYjczYTMzNzFhMDU0NWYwYzQ5NTk3MTY2OGRhODI2OWFhOC4uNjhiYzQ3YWY2ZmMyMTU4
NGZkNGI4MmQwNGI5ZWI2ZTU3YTgwZmMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC00
MSw3ICs0MSw3IEBAIGNsYXNzIERPTVNlbGVjdGlvbjsKIGNsYXNzIEhUTUxDb250ZW50RWxlbWVu
dDsKIGNsYXNzIEhUTUxDb250ZW50U2VsZWN0b3I7CiBjbGFzcyBJbnNlcnRpb25Qb2ludDsKLWNs
YXNzIFNoYWRvd1RyZWU7CitjbGFzcyBFbGVtZW50U2hhZG93OwogCiBjbGFzcyBTaGFkb3dSb290
IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBEb3Vi
bHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dSb290PiB7CiAgICAgZnJpZW5kIGNsYXNzIFdURjo6RG91
Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD47CkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hlZXRzKGJvb2wpOwogCiAgICAgRWxlbWVudCogaG9z
dCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQotICAgIFNoYWRvd1RyZWUqIHRyZWUo
KSBjb25zdDsKKyAgICBFbGVtZW50U2hhZG93KiBvd25lcigpIGNvbnN0OwogCiAgICAgU3RyaW5n
IGlubmVySFRNTCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dU
cmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjk1OWQxZTgzODZiZmIzMmE0OTEzNzQzMTM5NDY1OWU1ZGYyMWNl
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCi0KLSNpbmNs
dWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTdHlsZVJl
c29sdmVyLmgiCi0jaW5jbHVkZSAiVGV4dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNo
YWRvd1RyZWU6OlNoYWRvd1RyZWUoKQotICAgIDogbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudChm
YWxzZSkKLXsKLX0KLQotU2hhZG93VHJlZTo6flNoYWRvd1RyZWUoKQotewotICAgIGlmIChoYXNT
aGFkb3dSb290KCkpCi0gICAgICAgIHJlbW92ZUFsbFNoYWRvd1Jvb3RzKCk7Ci19Ci0KLXN0YXRp
YyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3Qq
IHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghc2hhZG93Um9vdCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoc2hhZG93Um9vdC0+c2hhZG93SG9zdCgp
KSB7Ci0gICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKHNoYWRvd1Jvb3QtPmRvY3VtZW50KCkgIT0gZG9jdW1l
bnQpIHsKLSAgICAgICAgZWMgPSBXUk9OR19ET0NVTUVOVF9FUlI7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjph
ZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4g
c2hhZG93Um9vdCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgQVNTRVJUKHNoYWRvd0hvc3Qp
OwotICAgIEFTU0VSVChzaGFkb3dSb290KTsKLQotICAgIGlmICghdmFsaWRhdGVTaGFkb3dSb290
KHNoYWRvd0hvc3QtPmRvY3VtZW50KCksIHNoYWRvd1Jvb3QuZ2V0KCksIGVjKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgc2hhZG93Um9vdC0+c2V0U2hhZG93SG9zdChzaGFkb3dIb3N0KTsKLSAg
ICBDaGlsZE5vZGVJbnNlcnRpb25Ob3RpZmllcihzaGFkb3dIb3N0KS5ub3RpZnkoc2hhZG93Um9v
dC5nZXQoKSk7Ci0KLSAgICBpZiAoc2hhZG93SG9zdC0+YXR0YWNoZWQoKSkgewotICAgICAgICBz
aGFkb3dSb290LT5sYXp5QXR0YWNoKCk7Ci0gICAgICAgIGRldGFjaCgpOwotICAgICAgICBzaGFk
b3dIb3N0LT5kZXRhY2hDaGlsZHJlbigpOwotICAgIH0KLQotICAgIG1fc2hhZG93Um9vdHMucHVz
aChzaGFkb3dSb290LmdldCgpKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFB1
c2hTaGFkb3dSb290KHNoYWRvd0hvc3QsIHNoYWRvd1Jvb3QuZ2V0KCkpOwotfQotCi12b2lkIFNo
YWRvd1RyZWU6OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkKLXsKLSAgICBpZiAoIWhhc1NoYWRvd1Jv
b3QoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gRG9udCBwcm90ZWN0IHRoaXMgcmVmIGNv
dW50LgotICAgIEVsZW1lbnQqIHNoYWRvd0hvc3QgPSBob3N0KCk7Ci0KLSAgICB3aGlsZSAoUmVm
UHRyPFNoYWRvd1Jvb3Q+IG9sZFJvb3QgPSBtX3NoYWRvd1Jvb3RzLnJlbW92ZUhlYWQoKSkgewot
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3BTaGFkb3dSb290KHNoYWRv
d0hvc3QsIG9sZFJvb3QuZ2V0KCkpOwotICAgICAgICBzaGFkb3dIb3N0LT5kb2N1bWVudCgpLT5y
ZW1vdmVGb2N1c2VkTm9kZU9mU3VidHJlZShvbGRSb290LmdldCgpKTsKLQotICAgICAgICBpZiAo
b2xkUm9vdC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIG9sZFJvb3QtPmRldGFjaCgpOwotCi0g
ICAgICAgIG9sZFJvb3QtPnNldFNoYWRvd0hvc3QoMCk7Ci0gICAgICAgIG9sZFJvb3QtPnNldFBy
ZXYoMCk7Ci0gICAgICAgIG9sZFJvb3QtPnNldE5leHQoMCk7Ci0gICAgICAgIHNoYWRvd0hvc3Qt
PmRvY3VtZW50KCktPmFkb3B0SWZOZWVkZWQob2xkUm9vdC5nZXQoKSk7Ci0gICAgICAgIENoaWxk
Tm9kZVJlbW92YWxOb3RpZmllcihzaGFkb3dIb3N0KS5ub3RpZnkob2xkUm9vdC5nZXQoKSk7Ci0g
ICAgfQotCi0gICAgaWYgKHNoYWRvd0hvc3QtPmF0dGFjaGVkKCkpCi0gICAgICAgIHNoYWRvd0hv
c3QtPmF0dGFjaENoaWxkcmVuTGF6aWx5KCk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6d2lsbFJl
bW92ZSgpCi17Ci0gICAgU2hhZG93Um9vdFZlY3RvciByb290cyh0aGlzKTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHJvb3RzLnNpemUoKTsgKytpKQotICAgICAgICByb290c1tpXS0+d2ls
bFJlbW92ZSgpOwotfQotCi12b2lkIFNoYWRvd1RyZWU6OnNldFBhcmVudFRyZWVTY29wZShUcmVl
U2NvcGUqIHNjb3BlKQotewotICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCi0gICAgICAg
IHJvb3QtPnNldFBhcmVudFRyZWVTY29wZShzY29wZSk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6
YXR0YWNoKCkKLXsKLSAgICAvLyBDaGlsZHJlbiBvZiBtX3NlbGVjdG9yIGlzIHBvcHVsYXRlZCBs
YXppbHkgaW4KLSAgICAvLyBlbnN1cmVTZWxlY3RvcigpLCBhbmQgaGVyZSB3ZSBqdXN0IGVuc3Vy
ZSB0aGF0IGl0IGlzIGluIGNsZWFuIHN0YXRlLgotICAgIEFTU0VSVCghc2VsZWN0b3IoKS5oYXNQ
b3B1bGF0ZWQoKSk7Ci0KLSAgICBzZWxlY3RvcigpLndpbGxTZWxlY3QoKTsKLSAgICBmb3IgKFNo
YWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3Qt
Pm9sZGVyU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGlmICghcm9vdC0+YXR0YWNoZWQoKSkKLSAg
ICAgICAgICAgIHJvb3QtPmF0dGFjaCgpOwotICAgIH0KLSAgICBzZWxlY3RvcigpLmRpZFNlbGVj
dCgpOwotfQotCi12b2lkIFNoYWRvd1RyZWU6OmF0dGFjaEhvc3QoRWxlbWVudCogaG9zdCkKLXsK
LSAgICBhdHRhY2goKTsKLSAgICBob3N0LT5hdHRhY2hDaGlsZHJlbklmTmVlZGVkKCk7Ci0gICAg
aG9zdC0+YXR0YWNoQXNOb2RlKCk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6ZGV0YWNoKCkKLXsK
LSAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsg
cm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGlmIChyb290LT5hdHRh
Y2hlZCgpKQotICAgICAgICAgICAgcm9vdC0+ZGV0YWNoKCk7Ci0gICAgfQotfQotCi12b2lkIFNo
YWRvd1RyZWU6OmRldGFjaEhvc3QoRWxlbWVudCogaG9zdCkKLXsKLSAgICBob3N0LT5kZXRhY2hD
aGlsZHJlbklmTmVlZGVkKCk7Ci0gICAgZGV0YWNoKCk7Ci0gICAgaG9zdC0+ZGV0YWNoQXNOb2Rl
KCk7Ci19Ci0KLUluc2VydGlvblBvaW50KiBTaGFkb3dUcmVlOjppbnNlcnRpb25Qb2ludEZvcihj
b25zdCBOb2RlKiBub2RlKSBjb25zdAotewotICAgIEFTU0VSVChub2RlICYmIG5vZGUtPnBhcmVu
dE5vZGUoKSk7Ci0KLSAgICBpZiAobm9kZS0+cGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkg
ewotICAgICAgICBpZiAoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gdG9TaGFkb3dS
b290KG5vZGUtPnBhcmVudE5vZGUoKSktPmFzc2lnbmVkVG8oKSkKLSAgICAgICAgICAgIHJldHVy
biBpbnNlcnRpb25Qb2ludDsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBIVE1M
Q29udGVudFNlbGVjdGlvbiogZm91bmQgPSBzZWxlY3RvcigpLmZpbmRGb3Iobm9kZSk7Ci0gICAg
aWYgKCFmb3VuZCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGZvdW5kLT5pbnNlcnRp
b25Qb2ludCgpOwotfQotCi1IVE1MQ29udGVudFNlbGVjdGlvbiogU2hhZG93VHJlZTo6c2VsZWN0
aW9uRm9yKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2VsZWN0b3Iu
ZmluZEZvcihub2RlKTsKLX0KLQotdm9pZCBTaGFkb3dUcmVlOjpyZWF0dGFjaCgpCi17Ci0gICAg
ZGV0YWNoKCk7Ci0gICAgYXR0YWNoKCk7Ci19Ci0KLWJvb2wgU2hhZG93VHJlZTo6Y2hpbGROZWVk
c1N0eWxlUmVjYWxjKCkKLXsKLSAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOwotICAg
IGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCi0gICAgICAgIGlmIChyb290LT5jaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1ib29sIFNoYWRvd1RyZWU6Om5lZWRzU3R5bGVSZWNhbGMoKQotewotICAgIEFT
U0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7Ci0gICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkKLSAgICAgICAgaWYgKHJvb3QtPm5lZWRzU3R5bGVSZWNhbGMoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFNoYWRvd1RyZWU6OnJl
Y2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCi17Ci0gICAgU2hh
ZG93Um9vdCogeW91bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKLSAgICBpZiAoIXlvdW5n
ZXN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJl
bkFuZFNoYWRvdygpKQotICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwot
ICAgIGVsc2UgewotICAgICAgICBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyID0geW91bmdl
c3QtPmRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKTsKLQotICAgICAgICBzdHlsZVJlc29sdmVy
LT5wdXNoUGFyZW50U2hhZG93Um9vdCh5b3VuZ2VzdCk7Ci0gICAgICAgIGZvciAoTm9kZSogbiA9
IHlvdW5nZXN0LT5maXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7Ci0gICAg
ICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PEVsZW1lbnQqPihuKS0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKG4tPmlzVGV4dE5vZGUoKSkKLSAgICAgICAgICAgICAgICB0b1RleHQobiktPnJlY2FsY1Rl
eHRTdHlsZShjaGFuZ2UpOwotICAgICAgICB9Ci0gICAgICAgIHN0eWxlUmVzb2x2ZXItPnBvcFBh
cmVudFNoYWRvd1Jvb3QoeW91bmdlc3QpOwotICAgIH0KLQotICAgIGNsZWFyTmVlZHNSZWF0dGFj
aEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlv
dW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkp
IHsKLSAgICAgICAgcm9vdC0+Y2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgICAgIHJvb3Qt
PmNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgfQotfQotCi1ib29sIFNoYWRvd1Ry
ZWU6Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQotewotICAgIHJldHVybiBt
X25lZWRzUmVjYWxjdWxhdGVDb250ZW50IHx8ICh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSAmJiB5b3Vu
Z2VzdFNoYWRvd1Jvb3QoKS0+aGFzSW5zZXJ0aW9uUG9pbnQoKSk7Ci19Ci0KLXZvaWQgU2hhZG93
VHJlZTo6aG9zdENoaWxkcmVuQ2hhbmdlZCgpCi17Ci0gICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93
Um9vdCgpKTsKLQotICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCktPmhhc0luc2VydGlvblBv
aW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQg
ZGV0YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93
Um9vdDo6cmVjYWxjU3R5bGUoKS4KLSAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5k
U2hhZG93KCk7Ci19Ci0KLXZvaWQgU2hhZG93VHJlZTo6c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IHRydWU7
Ci0KLSAgICBob3N0KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLX0KLQotdm9pZCBTaGFkb3dU
cmVlOjpyZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgQVNTRVJUKHlvdW5n
ZXN0U2hhZG93Um9vdCgpKTsKLQotICAgIEVsZW1lbnQqIGhvc3ROb2RlID0geW91bmdlc3RTaGFk
b3dSb290KCktPmhvc3QoKTsKLSAgICBob3N0Tm9kZS0+ZGV0YWNoQ2hpbGRyZW5JZk5lZWRlZCgp
OwotICAgIHJlYXR0YWNoKCk7Ci0gICAgaG9zdE5vZGUtPmF0dGFjaENoaWxkcmVuSWZOZWVkZWQo
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzYmEwODZkOGJjYjE4YTUzOTBlNjBhMjIzMzI4YTVjMTY3NTcz
N2M4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNDEgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgU2hhZG93VHJlZV9oCi0jZGVmaW5lIFNoYWRvd1RyZWVfaAotCi0jaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKLSNp
bmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4K
LSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTm9kZTsKLWNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBJ
bnNlcnRpb25Qb2ludDsKLWNsYXNzIFRyZWVTY29wZTsKLWNsYXNzIEhUTUxDb250ZW50U2VsZWN0
aW9uOwotCi1jbGFzcyBTaGFkb3dUcmVlIHsKLXB1YmxpYzoKLSAgICBTaGFkb3dUcmVlKCk7Ci0g
ICAgflNoYWRvd1RyZWUoKTsKLQotICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKLQotICAgIGJv
b2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwotICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93
Um9vdCgpIGNvbnN0OwotICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsK
LQotICAgIHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBQYXNzUmVmUHRy
PFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVBbGxTaGFkb3dS
b290cygpOwotCi0gICAgdm9pZCB3aWxsUmVtb3ZlKCk7Ci0KLSAgICB2b2lkIHNldFBhcmVudFRy
ZWVTY29wZShUcmVlU2NvcGUqKTsKLQotICAgIHZvaWQgYXR0YWNoKCk7Ci0gICAgdm9pZCBkZXRh
Y2goKTsKLSAgICB2b2lkIHJlYXR0YWNoKCk7Ci0gICAgdm9pZCBhdHRhY2hIb3N0KEVsZW1lbnQq
KTsKLSAgICB2b2lkIGRldGFjaEhvc3QoRWxlbWVudCopOwotCi0gICAgYm9vbCBjaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKTsKLSAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICB2b2lkIHJl
Y2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSk7Ci0gICAgdm9pZCBzZXROZWVk
c1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAgdm9pZCBjbGVhck5lZWRzUmVh
dHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKLSAgICBib29sIG5lZWRzUmVhdHRhY2hIb3N0
Q2hpbGRyZW5BbmRTaGFkb3coKTsKLSAgICB2b2lkIHJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hh
ZG93KCk7Ci0gICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci0KLSAgICBJbnNlcnRpb25Q
b2ludCogaW5zZXJ0aW9uUG9pbnRGb3IoY29uc3QgTm9kZSopIGNvbnN0OwotICAgIEhUTUxDb250
ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb25Gb3IoY29uc3QgTm9kZSopIGNvbnN0OwotCi0gICAgSFRN
TENvbnRlbnRTZWxlY3RvciYgc2VsZWN0b3IoKTsKLSAgICBjb25zdCBIVE1MQ29udGVudFNlbGVj
dG9yJiBzZWxlY3RvcigpIGNvbnN0OwotCi1wcml2YXRlOgotCi0gICAgRG91Ymx5TGlua2VkTGlz
dDxTaGFkb3dSb290PiBtX3NoYWRvd1Jvb3RzOwotICAgIEhUTUxDb250ZW50U2VsZWN0b3IgbV9z
ZWxlY3RvcjsKLSAgICBib29sIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgOiAxOwotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFNoYWRvd1RyZWUpOwotfTsKLQotaW5saW5lIGJvb2wgU2hhZG93
VHJlZTo6aGFzU2hhZG93Um9vdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFtX3NoYWRvd1Jvb3Rz
LmlzRW1wdHkoKTsKLX0KLQotaW5saW5lIFNoYWRvd1Jvb3QqIFNoYWRvd1RyZWU6OnlvdW5nZXN0
U2hhZG93Um9vdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hhZG93Um9vdHMuaGVhZCgpOwot
fQotCi1pbmxpbmUgU2hhZG93Um9vdCogU2hhZG93VHJlZTo6b2xkZXN0U2hhZG93Um9vdCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hhZG93Um9vdHMudGFpbCgpOwotfQotCi1pbmxpbmUgSFRN
TENvbnRlbnRTZWxlY3RvciYgU2hhZG93VHJlZTo6c2VsZWN0b3IoKQotewotICAgIHJldHVybiBt
X3NlbGVjdG9yOwotfQotCi1pbmxpbmUgY29uc3QgSFRNTENvbnRlbnRTZWxlY3RvciYgU2hhZG93
VHJlZTo6c2VsZWN0b3IoKSBjb25zdAotewotICAgIHJldHVybiBtX3NlbGVjdG9yOwotfQotCi1p
bmxpbmUgdm9pZCBTaGFkb3dUcmVlOjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRT
aGFkb3coKQotewotICAgIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSBmYWxzZTsKLX0KLQot
aW5saW5lIEVsZW1lbnQqIFNoYWRvd1RyZWU6Omhvc3QoKSBjb25zdAotewotICAgIEFTU0VSVCho
YXNTaGFkb3dSb290KCkpOwotICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aG9zdCgp
OwotfQotCi1jbGFzcyBTaGFkb3dSb290VmVjdG9yIDogcHVibGljIFZlY3RvcjxSZWZQdHI8U2hh
ZG93Um9vdD4gPiB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgU2hhZG93Um9vdFZlY3RvcihTaGFk
b3dUcmVlKiB0cmVlKQotICAgIHsKLSAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gdHJl
ZS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jv
b3QoKSkKLSAgICAgICAgICAgIGFwcGVuZChyb290KTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVB
ZG9wdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAppbmRl
eCA4MmVhNDc3NDc4M2I1YjEwN2RiZTcxNzI2YWIyZWFmODY3MWJmNTkxLi5lZDM3NDU2YTBlYWY0
YjExOWFmZTA2Nzg3MGQ5MmJmY2ZkMjFhZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlQWRvcHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZUFkb3B0ZXIuY3BwCkBAIC0yNiwxNSArMjYsMTUgQEAKICNpbmNsdWRlICJUcmVlU2NvcGVBZG9w
dGVyLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cu
aCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0j
aW5jbHVkZSAiU2hhZG93VHJlZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBp
bmxpbmUgU2hhZG93VHJlZSogc2hhZG93VHJlZUZvcihOb2RlKiBub2RlKQorc3RhdGljIGlubGlu
ZSBFbGVtZW50U2hhZG93KiBzaGFkb3dGb3IoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3dUcmVlKCkgOiAwOwor
ICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSktPnNoYWRv
dygpIDogMDsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUo
Tm9kZSogcm9vdCkgY29uc3QKQEAgLTYzLDEwICs2MywxMCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0
ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAogICAgICAgICBpZiAod2ls
bE1vdmVUb05ld0RvY3VtZW50KQogICAgICAgICAgICAgbW92ZU5vZGVUb05ld0RvY3VtZW50KG5v
ZGUsIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAKLSAgICAgICAgaWYgKFNoYWRvd1RyZWUq
IHRyZWUgPSBzaGFkb3dUcmVlRm9yKG5vZGUpKSB7Ci0gICAgICAgICAgICB0cmVlLT5zZXRQYXJl
bnRUcmVlU2NvcGUobV9uZXdTY29wZSk7CisgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFk
b3cgPSBzaGFkb3dGb3Iobm9kZSkpIHsKKyAgICAgICAgICAgIHNoYWRvdy0+c2V0UGFyZW50VHJl
ZVNjb3BlKG1fbmV3U2NvcGUpOwogICAgICAgICAgICAgaWYgKHdpbGxNb3ZlVG9OZXdEb2N1bWVu
dCkKLSAgICAgICAgICAgICAgICBtb3ZlU2hhZG93VHJlZVRvTmV3RG9jdW1lbnQodHJlZSwgb2xk
RG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKKyAgICAgICAgICAgICAgICBtb3ZlU2hhZG93VG9OZXdE
b2N1bWVudChzaGFkb3csIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgICAgIH0KICAg
ICB9CiB9CkBAIC03NSwxNCArNzUsMTQgQEAgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3RG9jdW1lbnQoTm9kZSogcm9vdCwgRG9jdW1lbnQqIG9sZERvY3VtZW50LAogewogICAg
IGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHRO
b2RlKHJvb3QpKSB7CiAgICAgICAgIG1vdmVOb2RlVG9OZXdEb2N1bWVudChub2RlLCBvbGREb2N1
bWVudCwgbmV3RG9jdW1lbnQpOwotICAgICAgICBpZiAoU2hhZG93VHJlZSogdHJlZSA9IHNoYWRv
d1RyZWVGb3Iobm9kZSkpCi0gICAgICAgICAgICBtb3ZlU2hhZG93VHJlZVRvTmV3RG9jdW1lbnQo
dHJlZSwgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKKyAgICAgICAgaWYgKEVsZW1lbnRTaGFk
b3cqIHNoYWRvdyA9IHNoYWRvd0Zvcihub2RlKSkKKyAgICAgICAgICAgIG1vdmVTaGFkb3dUb05l
d0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKICAgICB9CiB9CiAK
LWlubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVTaGFkb3dUcmVlVG9OZXdEb2N1bWVu
dChTaGFkb3dUcmVlKiB0cmVlLCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdE
b2N1bWVudCkgY29uc3QKK2lubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVTaGFkb3dU
b05ld0RvY3VtZW50KEVsZW1lbnRTaGFkb3cqIHNoYWRvdywgRG9jdW1lbnQqIG9sZERvY3VtZW50
LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0CiB7Ci0gICAgZm9yIChTaGFkb3dSb290KiBy
b290ID0gdHJlZS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkKKyAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3ctPnlvdW5n
ZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCiAg
ICAgICAgIG1vdmVUcmVlVG9OZXdEb2N1bWVudChyb290LCBvbGREb2N1bWVudCwgbmV3RG9jdW1l
bnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRl
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaAppbmRleCA5NDI1NWY0
NzlkYTMyYjUxY2RkNDc4ZDBkOTE4NDQ4YWMxNDgyYTgzLi5jMzJhMTEyYTg2Y2IyZGQyZWQ3NTFj
OGVkYThmZTEzZTQxMWY3M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlQWRvcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1vdmVUcmVlVG9OZXdTY29wZShO
b2RlKikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlVHJlZVRvTmV3RG9jdW1lbnQoTm9kZSosIERvY3Vt
ZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdDsKICAgICB2b2lk
IG1vdmVOb2RlVG9OZXdEb2N1bWVudChOb2RlKiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1
bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0OwotICAgIHZvaWQgbW92ZVNoYWRvd1RyZWVUb05ld0Rv
Y3VtZW50KFNoYWRvd1RyZWUqLCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdE
b2N1bWVudCkgY29uc3Q7CisgICAgdm9pZCBtb3ZlU2hhZG93VG9OZXdEb2N1bWVudChFbGVtZW50
U2hhZG93KiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNv
bnN0OwogCiAgICAgTm9kZSogbV90b0Fkb3B0OwogICAgIFRyZWVTY29wZSogbV9uZXdTY29wZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggMWQxOWY4OWVmZTdkMWMy
MGVkMjYzMDllMGZiM2NiMDBjYWM5OTdmYS4uNGViMzkyMmRkMTgxYTY0MGZhNmM4M2I1MmY1ODEx
Y2Q4Mzg3ZTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTM0
LDEyICszNCwxMiBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
aHJvbWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIK
ICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAKICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHdyYXBwZXJFbGVtZW50LT5h
cHBlbmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsK
LSAgICBlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRD
aGlsZCh3cmFwcGVyRWxlbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRv
dygpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVh
c2UoKSwgZWMpOwogICAgIEFTU0VSVCghZWMpOwogICAgIAogICAgIHVwZGF0ZUNvbG9yU3dhdGNo
KCk7CkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6dXBkYXRlQ29sb3JT
d2F0Y2goKQogCiBIVE1MRWxlbWVudCogQ29sb3JJbnB1dFR5cGU6OnNoYWRvd0NvbG9yU3dhdGNo
KCkgY29uc3QKIHsKLSAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBlbGVtZW50KCktPnNoYWRvd1Ry
ZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IGVsZW1l
bnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICByZXR1cm4gc2hhZG93ID8g
dG9IVE1MRWxlbWVudChzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGJjNjhlMzYzN2VhYTE2
ODBlYzlhMmRkOTI0NzNmMWRkZGQ5YTAyZTUuLjQ0YmQxM2ZmMmJhMzYxY2UwODFlNzQ5NjhiNWEy
MzAyNDUzZmY4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjMs
NiArMjMsNyBAQAogI2luY2x1ZGUgIkZpbGVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkNocm9t
ZS5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgpAQCAtMzYsNyArMzcsNiBAQAog
I2luY2x1ZGUgIlJlbmRlckZpbGVVcGxvYWRDb250cm9sLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVl
LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0yOTQsMTMg
KzI5NCwxMyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewog
ICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKKyAgICBlbGVtZW50
KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+
bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1l
bnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkt
PmRvY3VtZW50KCkpLCBlYyk7CiB9CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRy
aWJ1dGVDaGFuZ2VkKCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkp
OwotICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1
dHRvbkVsZW1lbnQqPihlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgp
LT5maXJzdENoaWxkKCkpOworICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRp
Y19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RT
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAgICAgICAgYnV0
dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hvb3NlTXVs
dGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IDMzMmYxYTc0MDlm
OGIxM2Q3MWE1NDY2ODAxZjhjMzQ4ODgwMzEzYjkuLmU0ZTRhOTI0ODEzNDQ2N2RmZmQ5OGZkMGQ1
Yjg1ZTQ0MDgzZDBiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lmIEVOQUJMRShERVRBSUxTKQogCisjaW5jbHVk
ZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxTdW1tYXJ5RWxlbWVudC5oIgpAQCAt
MzEsNyArMzIsNiBAQAogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hh
ZG93VHJlZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MTI0LDcgKzEyNCw3IEBAIEVsZW1lbnQqIEhUTUxEZXRhaWxzRWxlbWVudDo6ZmluZE1haW5TdW1t
YXJ5KCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiB0b0VsZW1lbnQoY2hpbGQpOwogICAgIH0K
IAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZXRhaWxzU3VtbWFyeUVsZW1lbnQqPihzaGFkb3dU
cmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKS0+ZmFsbGJhY2tTdW1tYXJ5
KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERldGFpbHNTdW1tYXJ5RWxlbWVudCo+KHNoYWRv
dygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSktPmZhbGxiYWNrU3VtbWFyeSgp
OwogfQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCAz
MDk0YzkzNTIzZTU2M2RkMTdiOTIxOTQ0NWVjNzI5ZWRmOGQ2NDEzLi5iMTA5OWYxOTdlMzFkYmRi
YjhkMmYxNDE5NWViMTI5NmRhZjQzYjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcApAQCAtMjcsMTMgKzI3LDEzIEBACiAKICNpbmNsdWRlICJBdHRyaWJ1dGUu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNp
bmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2lu
Y2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogCkBAIC0xMzIsOCArMTMyLDggQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVu
dDo6cmVzZXQoKQogSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dT
ZWxlY3QoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwotICAgIFNoYWRv
d1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOwotICAgIHJl
dHVybiBzaGFkb3cgPyB0b0hUTUxTZWxlY3RFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpKSA6
IDA7CisgICAgU2hhZG93Um9vdCogcm9vdCA9IHRoaXMtPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dS
b290KCk7CisgICAgcmV0dXJuIHJvb3QgPyB0b0hUTUxTZWxlY3RFbGVtZW50KHJvb3QtPmZpcnN0
Q2hpbGQoKSkgOiAwOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMWMxOGY2NjdiOTYzY2E4ZWM4NTdlZDM1OGNmZDIxYTM0
ZWFmZGI3NC4uMWUyN2NkNGEyMjI5YmUwM2I3MjE5MDZlOGM1NzA0ODkxYjk3M2UxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cu
aCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCkBAIC03NSw3ICs3Niw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlQ
b2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
LSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2luY2x1
ZGUgIlVVSUQuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC00MDY5LDcgKzQwNjksNyBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKCkKIAogTWVk
aWFDb250cm9scyogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb250cm9scygpCiB7Ci0gICAgcmV0
dXJuIHRvTWVkaWFDb250cm9scyhzaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmly
c3RDaGlsZCgpKTsKKyAgICByZXR1cm4gdG9NZWRpYUNvbnRyb2xzKHNoYWRvdygpLT5vbGRlc3RT
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
aGFzTWVkaWFDb250cm9scygpCkBAIC00MDc3LDcgKzQwNzcsNyBAQCBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6Omhhc01lZGlhQ29udHJvbHMoKQogICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBOb2RlKiBub2RlID0gc2hhZG93VHJlZSgpLT5vbGRl
c3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hhZG93KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJldHVybiBub2RlICYmIG5v
ZGUtPmlzTWVkaWFDb250cm9scygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1t
YXJ5RWxlbWVudC5jcHAKaW5kZXggNTU1N2M0NTU2YWQyZTMxZTEzMjUyMDBmZDlhZDA2NmQyOTg0
MTk4Ny4uMTMzMTk2M2Y0ZTE0YjU3MjAzOGEwYjFmZDZiZGExNDcyMGZhNThkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAog
I2lmIEVOQUJMRShERVRBSUxTKQogCiAjaW5jbHVkZSAiRGV0YWlsc01hcmtlckNvbnRyb2wuaCIK
KyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTERldGFpbHNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCkBAIC0zMyw3ICszNCw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVk
ZSAiU2hhZG93VHJlZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDM0N2VjY2Y0NmUyMjA1MTYyNjRj
MmM5ZjA3NjYzMDNmNWI0MzE2OTUuLjYzNjYzYTk3ZmNjN2IwY2JmZmVmOTFmNTliNDdmNWU0ZTE0
ZmIyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTM4LDcgKzM5LDYgQEAK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5o
IgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMjk0LDcgKzI5NCw3IEBAIFN0cmluZyBI
VE1MVGV4dEFyZWFFbGVtZW50OjpzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKGNvbnN0IFN0cmluZyYg
cHJvcG9zZWRWYWx1ZSwKIAogSFRNTEVsZW1lbnQqIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmlubmVy
VGV4dEVsZW1lbnQoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSBzaGFkb3dUcmVlKCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIG5vZGUgPSBzaGFkb3co
KS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgQVNTRVJUKCFub2RlIHx8
IG5vZGUtPmhhc1RhZ05hbWUoZGl2VGFnKSk7CiAgICAgcmV0dXJuIHRvSFRNTEVsZW1lbnQobm9k
ZSk7CiB9CkBAIC00NzIsNyArNDcyLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojp1cGRh
dGVQbGFjZWhvbGRlclRleHQoKQogICAgIFN0cmluZyBwbGFjZWhvbGRlclRleHQgPSBzdHJpcHBl
ZFBsYWNlaG9sZGVyKCk7CiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgICAgIHNoYWRvd1RyZWUoKS0+b2xk
ZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBlYyk7Cisg
ICAgICAgICAgICBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX3Bs
YWNlaG9sZGVyLmdldCgpLCBlYyk7CiAgICAgICAgICAgICBBU1NFUlQoIWVjKTsKICAgICAgICAg
ICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKICAgICAgICAgfQpAQCAtNDgxLDcgKzQ4MSw3IEBA
IHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkKICAgICBp
ZiAoIW1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRv
d1BzZXVkb0lkKCItd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIHNoYWRvd1Ry
ZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgc2hh
ZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKS0+bmV4dFNpYmxpbmco
KSwgZWMpOworICAgICAgICBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZv
cmUobV9wbGFjZWhvbGRlciwgc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGls
ZCgpLT5uZXh0U2libGluZygpLCBlYyk7CiAgICAgICAgIEFTU0VSVCghZWMpOwogICAgIH0KICAg
ICBtX3BsYWNlaG9sZGVyLT5zZXRJbm5lclRleHQocGxhY2Vob2xkZXJUZXh0LCBlYyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMTI5ZmM1ZTQwNzRjMmNlOTQ1MjJkODk4YWU5OGU1
OTkxM2NhOGFlYy4uOWEzZjE2MjlhMzY2YjE5MTRiYTE0OGNhMjIzNTI0MTE5MWUwMGM3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkRh
dGVJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUlucHV0VHlwZS5oIgogI2luY2x1ZGUg
IkRhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAj
aW5jbHVkZSAiRW1haWxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAj
aW5jbHVkZSAiRmlsZUlucHV0VHlwZS5oIgpAQCAtNTksNyArNjAsNiBAQAogI2luY2x1ZGUgIlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKICNp
bmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUg
IlN1Ym1pdElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIlRleHRJbnB1dFR5cGUuaCIKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIElucHV0VHlw
ZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQogICAgIGlmICghZWxlbWVudCgpLT5oYXNTaGFkb3dS
b290KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50
KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIFNoYWRvd1Jvb3QqIHJv
b3QgPSBlbGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgQVNTRVJU
KHJvb3QpOwogICAgIHJvb3QtPnJlbW92ZUFsbENoaWxkcmVuKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggOTA3NjlkOTZmODA4YTQyYzBjMzc0NmEyMWYyZTll
YjJmNzZhN2IzMy4uNDk0OWIwYTRlNGE2NjAzNGQwNzE5YTA0ZGE3Njc4YTE4MGZhMjFlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJSYW5nZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAg
LTQyLDcgKzQzLDYgQEAKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJTbGlkZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hh
ZG93VHJlZS5oIgogI2luY2x1ZGUgIlNsaWRlclRodW1iRWxlbWVudC5oIgogI2luY2x1ZGUgIlN0
ZXBSYW5nZS5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAgLTE2MSw3ICsxNjEsNyBAQCB2b2lkIFJh
bmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAg
ICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24gfHwgIXRhcmdldE5vZGUpCiAgICAg
ICAgIHJldHVybjsKICAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOwotICAg
IGlmICh0YXJnZXROb2RlICE9IGVsZW1lbnQoKSAmJiAhdGFyZ2V0Tm9kZS0+aXNEZXNjZW5kYW50
T2YoZWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCisgICAgaWYg
KHRhcmdldE5vZGUgIT0gZWxlbWVudCgpICYmICF0YXJnZXROb2RlLT5pc0Rlc2NlbmRhbnRPZihl
bGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCkpKQogICAgICAgICByZXR1cm47
CiAgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYiA9IHNsaWRlclRodW1iRWxlbWVudE9mKGVs
ZW1lbnQoKSk7CiAgICAgaWYgKHRhcmdldE5vZGUgPT0gdGh1bWIpCkBAIC0yNDcsNyArMjQ3LDcg
QEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgUmVmUHRy
PEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVsZWFzZSgpLCBl
Yyk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNo
YWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOworICAgIGVs
ZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFp
bmVyLnJlbGVhc2UoKSwgZWMpOwogfQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCBmM2UzNzY2Yjg1
NTkxMjUxMDY5ZTJjMTJjMzJlOWQyNGMzOWUwOTQ2Li5kNjNmN2VmOGFjMzNjNDQyODEzNjQwOGM0
YTRkODY1OGU2ZThlNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNp
bmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC00NSw3ICs0
Niw2IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hh
ZG93VHJlZS5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1
ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMjM2LDExICsy
MzYsMTEgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRh
aW5lcikgewotICAgICAgICBlbGVtZW50KCktPnNoYWRvd1RyZWUoKS0+b2xkZXN0U2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOworICAgICAgICBlbGVtZW50KCktPnNo
YWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBlYyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0g
ZWxlbWVudCgpLT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dS
b290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgp
OwogICAgIG1fY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgbV9jb250YWluZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXRleHRmaWVsZC1kZWNv
cmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxkKG1fY29udGFp
bmVyLCBlYyk7CkBAIC00MDUsNyArNDA1LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVw
ZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKCFtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAg
IG1fcGxhY2Vob2xkZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1l
bnQoKSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0
LWlucHV0LXBsYWNlaG9sZGVyIik7Ci0gICAgICAgIGVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5v
bGRlc3RTaGFkb3dSb290KCktPmluc2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5l
ciA/IG1fY29udGFpbmVyLT5uZXh0U2libGluZygpIDogaW5uZXJUZXh0RWxlbWVudCgpLT5uZXh0
U2libGluZygpLCBlYyk7CisgICAgICAgIGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+aW5zZXJ0QmVmb3JlKG1fcGxhY2Vob2xkZXIsIG1fY29udGFpbmVyID8gbV9jb250
YWluZXItPm5leHRTaWJsaW5nKCkgOiBpbm5lclRleHRFbGVtZW50KCktPm5leHRTaWJsaW5nKCks
IGVjKTsKICAgICAgICAgQVNTRVJUKCFlYyk7CiAgICAgfQogICAgIG1fcGxhY2Vob2xkZXItPnNl
dElubmVyVGV4dChwbGFjZWhvbGRlclRleHQsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxp
ZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggYmZkYTk4NjBiOTg1NzUzM2RhYjMzYmQxMzM2Nzg5ZWI5
NDAzMmIzMS4uYTE0NGJhYjU5MTk3NWIyMzFiYmY3ZjYwZTU2MmViZGNjZjZkZjIzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
IAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKQEAgLTQzLDcgKzQ0LDYgQEAKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgog
I2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtMTg3LDcg
KzE4Nyw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUoVGltZXI8
VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAgICAgbV9tZXNzYWdlQm9keSA9IDA7CiAgICAgICAg
IEhUTUxFbGVtZW50KiBob3N0ID0gdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpOwogICAgICAgICBF
eGNlcHRpb25Db2RlIGVjOwotICAgICAgICBob3N0LT5zaGFkb3dUcmVlKCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKKyAgICAgICAgaG9zdC0+
c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCks
IGVjKTsKICAgICAgICAgbV9idWJibGUgPSAwOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJp
bmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwCmluZGV4IDI0NDNkMTU1ZGU5MTJiMzMxYWQ0MGExZmRiNzRmZjJlNmZjMmU3ZjguLjU0
MzY3OTUwNjFmOTM5YTA0OGIyZjk4NjUzYzgzODZhOWMzZWZhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjgsMTIgKzI4
LDEyIEBACiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDb250
ZW50U2VsZWN0b3JRdWVyeS5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRl
ICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTAsNyAr
OTAsNyBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gc2VsZWN0QXR0cikgewogICAgICAg
ICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUo
KSkpCi0gICAgICAgICAgICByb290LT50cmVlKCktPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRy
ZW5BbmRTaGFkb3coKTsKKyAgICAgICAgICAgIHJvb3QtPm93bmVyKCktPnNldE5lZWRzUmVhdHRh
Y2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAgICB9IGVsc2UKICAgICAgICAgSW5zZXJ0aW9u
UG9pbnQ6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCmluZGV4IDcwYWY4NWUwOWUzYTM2ZWUyYTljZWE5MjQw
NDI4MGYyNzYxZjcwMzAuLjM3ZTUxMDFjMzdiMjA5N2U0NDFmOGE0NDEyODgyZWVmM2Y1Mjk1MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKQEAg
LTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Q
b2ludC5oIgogCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNTEsNyArNTEsNyBAQCB2b2lkIEluc2VydGlvblBvaW50OjphdHRhY2goKQogICAgIGlmIChp
c1NoYWRvd0JvdW5kYXJ5KCkpIHsKICAgICAgICAgU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93
Um9vdCh0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSk7CiAgICAgICAgIGlmIChkb2VzU2VsZWN0RnJv
bUhvc3RDaGlsZHJlbigpKSB7Ci0gICAgICAgICAgICBkaXN0cmlidXRlSG9zdENoaWxkcmVuKHJv
b3QtPnRyZWUoKSk7CisgICAgICAgICAgICBkaXN0cmlidXRlSG9zdENoaWxkcmVuKHJvb3QtPm93
bmVyKCkpOwogICAgICAgICAgICAgYXR0YWNoRGlzdHJpYnV0ZWROb2RlKCk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoIXJvb3QtPm9sZGVyU2hhZG93Um9vdCgpLT5hc3NpZ25lZFRvKCkpIHsKICAgICAg
ICAgICAgIEFTU0VSVCghcm9vdC0+b2xkZXJTaGFkb3dSb290KCktPmF0dGFjaGVkKCkpOwpAQCAt
NjcsMTYgKzY3LDE2IEBAIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmRldGFjaCgpCiB7CiAgICAgU2hh
ZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSk7CiAgICAg
aWYgKHJvb3QgJiYgaXNBY3RpdmUoKSkgewotICAgICAgICBTaGFkb3dUcmVlKiB0cmVlID0gcm9v
dC0+dHJlZSgpOworICAgICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSByb290LT5vd25lcigp
OwogCiAgICAgICAgIGlmIChkb2VzU2VsZWN0RnJvbUhvc3RDaGlsZHJlbigpKQotICAgICAgICAg
ICAgY2xlYXJEaXN0cmlidXRpb24odHJlZSk7CisgICAgICAgICAgICBjbGVhckRpc3RyaWJ1dGlv
bihzaGFkb3cpOwogICAgICAgICBlbHNlIGlmIChTaGFkb3dSb290KiBhc3NpZ25lZFNoYWRvd1Jv
b3QgPSBhc3NpZ25lZEZyb20oKSkKICAgICAgICAgICAgIGNsZWFyQXNzaWdubWVudChhc3NpZ25l
ZFNoYWRvd1Jvb3QpOwogCiAgICAgICAgIC8vIFdoZW4gc2hhZG93IGVsZW1lbnQgaXMgZGV0YWNo
ZWQsIHNoYWRvdyB0cmVlIHNob3VsZCBiZSByZWNyZWF0ZWQgdG8gcmUtY2FsY3VsYXRlIHNlbGVj
dG9yIGZvcgogICAgICAgICAvLyBvdGhlciBpbnNlcnRpb24gcG9pbnRzLgotICAgICAgICB0cmVl
LT5zZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgICAgIHNoYWRv
dy0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogICAgIH0KIAogICAg
IEFTU0VSVChtX3NlbGVjdGlvbnMuaXNFbXB0eSgpKTsKQEAgLTExNywyMyArMTE3LDIzIEBAIGJv
b2wgSW5zZXJ0aW9uUG9pbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0Nv
bnRleHQmIGNvbnRleHQpCiAgICAgcmV0dXJuICFpc1NoYWRvd0JvdW5kYXJ5KCkgJiYgSFRNTEVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoY29udGV4dCk7CiB9CiAKLWlubGluZSB2b2lkIEluc2Vy
dGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENoaWxkcmVuKFNoYWRvd1RyZWUqIHRyZWUpCitpbmxp
bmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6ZGlzdHJpYnV0ZUhvc3RDaGlsZHJlbihFbGVtZW50U2hh
ZG93KiBzaGFkb3cpCiB7Ci0gICAgaWYgKCF0cmVlLT5zZWxlY3RvcigpLmlzU2VsZWN0aW5nKCkp
IHsKKyAgICBpZiAoIXNoYWRvdy0+c2VsZWN0b3IoKS5pc1NlbGVjdGluZygpKSB7CiAgICAgICAg
IC8vIElmIEhUTUxDb250ZW50U2VsZWN0b3IgaXMgbm90IGludCBzZWxlY3RpbmcgcGhhc2UsIGl0
IG1lYW5zIEluc2VydGlvblBvaW50IGlzIGF0dGFjaGVkIGZyb20KLSAgICAgICAgLy8gbm9uLVNo
YWRvd1RyZWUgbm9kZS4gVG8gcnVuIGRpc3RyaWJ1dGUgYWxnb3JpdGhtLCB3ZSBoYXZlIHRvIHJl
YXR0YWNoIFNoYWRvd1RyZWUuCi0gICAgICAgIHRyZWUtPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3coKTsKKyAgICAgICAgLy8gbm9uLUVsZW1lbnRTaGFkb3cgbm9kZS4gVG8g
cnVuIGRpc3RyaWJ1dGUgYWxnb3JpdGhtLCB3ZSBoYXZlIHRvIHJlYXR0YWNoIEVsZW1lbnRTaGFk
b3cuCisgICAgICAgIHNoYWRvdy0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRv
dygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdHJlZS0+c2VsZWN0b3IoKS5wb3B1
bGF0ZUlmTmVjZXNzYXJ5KHRyZWUtPmhvc3QoKSk7Ci0gICAgdHJlZS0+c2VsZWN0b3IoKS51bnNl
bGVjdCgmbV9zZWxlY3Rpb25zKTsKLSAgICB0cmVlLT5zZWxlY3RvcigpLnNlbGVjdCh0aGlzLCAm
bV9zZWxlY3Rpb25zKTsKKyAgICBzaGFkb3ctPnNlbGVjdG9yKCkucG9wdWxhdGVJZk5lY2Vzc2Fy
eShzaGFkb3ctPmhvc3QoKSk7CisgICAgc2hhZG93LT5zZWxlY3RvcigpLnVuc2VsZWN0KCZtX3Nl
bGVjdGlvbnMpOworICAgIHNoYWRvdy0+c2VsZWN0b3IoKS5zZWxlY3QodGhpcywgJm1fc2VsZWN0
aW9ucyk7CiB9CiAKLWlubGluZSB2b2lkIEluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlv
bihTaGFkb3dUcmVlKiB0cmVlKQoraW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmNsZWFyRGlz
dHJpYnV0aW9uKEVsZW1lbnRTaGFkb3cqIHNoYWRvdykKIHsKLSAgICB0cmVlLT5zZWxlY3Rvcigp
LnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOworICAgIHNoYWRvdy0+c2VsZWN0b3IoKS51bnNlbGVj
dCgmbV9zZWxlY3Rpb25zKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmF0dGFj
aERpc3RyaWJ1dGVkTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9JbnNlcnRpb25Qb2ludC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9u
UG9pbnQuaAppbmRleCAxZGE4YzgwZGI5YjIxNjM3ZmZlMzhhODk5ZTkxZGFlYzQ5MmU5ZGY2Li44
NDBkZDA2NDc5MGZjZDkzNmZlZDJjNDJiNzAyODNhOTIxNDA5ZmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKQEAgLTYyLDggKzYyLDggQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJp
bmdDb250ZXh0JikgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaXN0cmlidXRlSG9z
dENoaWxkcmVuKFNoYWRvd1RyZWUqKTsKLSAgICB2b2lkIGNsZWFyRGlzdHJpYnV0aW9uKFNoYWRv
d1RyZWUqKTsKKyAgICB2b2lkIGRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4oRWxlbWVudFNoYWRvdyop
OworICAgIHZvaWQgY2xlYXJEaXN0cmlidXRpb24oRWxlbWVudFNoYWRvdyopOwogICAgIHZvaWQg
YXR0YWNoRGlzdHJpYnV0ZWROb2RlKCk7CiAKICAgICB2b2lkIGFzc2lnblNoYWRvd1Jvb3QoU2hh
ZG93Um9vdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAKaW5kZXggZjhhZjM5ZjUxMDQwZGRkNWFlOTE4NDdlYTI5NTM1ZGZmYjc2N2E5
OS4uZmVlOTkxZDkxYjg0M2Q3MDIwZWQwZGEzNTE5MjNlNDI4NmQ5YWYzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiU2xpZGVyVGh1bWJFbGVtZW50LmgiCiAKICNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCkBAIC00Myw3ICs0NCw2IEBACiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hh
ZG93VHJlZS5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAKQEAgLTY3LDcgKzY3LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGhhc1ZlcnRpY2Fs
QXBwZWFyYW5jZShIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCkKIFNsaWRlclRodW1iRWxlbWVudCog
c2xpZGVyVGh1bWJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0g
ICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93VHJl
ZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+
dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NF
UlQoc2hhZG93KTsKICAgICBOb2RlKiB0aHVtYiA9IHNoYWRvdy0+Zmlyc3RDaGlsZCgpLT5maXJz
dENoaWxkKCktPmZpcnN0Q2hpbGQoKTsKICAgICBBU1NFUlQodGh1bWIpOwpAQCAtMTQ0LDcgKzE0
NCw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyQ29udGFpbmVyOjpsYXlvdXQoKQogICAgIExlbmd0aCBp
bnB1dEhlaWdodCA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpLT5oZWlnaHQoKTsKICAgICBS
ZW5kZXJPYmplY3QqIHRyYWNrUmVuZGVyZXIgPSBub2RlKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVy
ZXIoKTsKICAgICBpZiAoIWlzVmVydGljYWwgJiYgaW5wdXQtPnJlbmRlcmVyKCktPmlzU2xpZGVy
KCkgJiYgIWlucHV0SGVpZ2h0LmlzRml4ZWQoKSAmJiAhaW5wdXRIZWlnaHQuaXNQZXJjZW50KCkp
IHsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiB0aHVtYlJlbmRlcmVyID0gaW5wdXQtPnNoYWRvd1Ry
ZWUoKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+Zmly
c3RDaGlsZCgpLT5yZW5kZXJlcigpOworICAgICAgICBSZW5kZXJPYmplY3QqIHRodW1iUmVuZGVy
ZXIgPSBpbnB1dC0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpLT5m
aXJzdENoaWxkKCktPmZpcnN0Q2hpbGQoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKHRodW1i
UmVuZGVyZXIpIHsKICAgICAgICAgICAgIHN0eWxlKCktPnNldEhlaWdodCh0aHVtYlJlbmRlcmVy
LT5zdHlsZSgpLT5oZWlnaHQoKSk7CiAgICAgICAgICAgICBpZiAodHJhY2tSZW5kZXJlcikKQEAg
LTM1OSw3ICszNTksNyBAQCBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVtZW50
T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CiAgICAgQVNTRVJUKG5vZGUtPnRv
SW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7Ci0gICAgU2hhZG93Um9vdCogc2hhZG93
ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290
KCk7CisgICAgU2hhZG93Um9vdCogc2hhZG93ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hh
ZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBBU1NFUlQoc2hhZG93KTsKICAgICBOb2Rl
KiBsaW1pdGVyID0gc2hhZG93LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpOwogICAgIEFTU0VS
VChsaW1pdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRG
aWVsZERlY29yYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRGaWVsZERlY29yYXRpb25FbGVtZW50LmNwcAppbmRleCAwYjAwYzk1ZThmZGEzYjc5M2RmODUz
ZWY5NmRiMjkxNDY1MjM4Y2MzLi41ODBlYmFkY2JkZmE0ZjdjYWZjZTY2NDAxMzAyNjAwM2FkYWY2
M2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0RmllbGREZWNv
cmF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dEZp
ZWxkRGVjb3JhdGlvbkVsZW1lbnQuY3BwCkBAIC0zMywxMyArMzMsMTMgQEAKIAogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5j
bHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTY4LDcgKzY4LDcgQEAgUGFzc1JlZlB0cjxUZXh0RmllbGREZWNvcmF0aW9u
RWxlbWVudD4gVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWUKIAogc3Rh
dGljIGlubGluZSB2b2lkIGdldERlY29yYXRpb25Sb290QW5kRGVjb3JhdGVkUm9vdChIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dCwgU2hhZG93Um9vdComIGRlY29yYXRpb25Sb290LCBTaGFkb3dSb290
KiYgZGVjb3JhdGVkUm9vdCkKIHsKLSAgICBTaGFkb3dSb290KiBleGlzdGluZ1Jvb3QgPSBpbnB1
dC0+c2hhZG93VHJlZSgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBl
eGlzdGluZ1Jvb3QgPSBpbnB1dC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogICAg
IFNoYWRvd1Jvb3QqIG5ld1Jvb3QgPSAwOwogICAgIHdoaWxlIChleGlzdGluZ1Jvb3QtPmNoaWxk
Tm9kZUNvdW50KCkgPT0gMSAmJiBleGlzdGluZ1Jvb3QtPmZpcnN0Q2hpbGQoKS0+aGFzVGFnTmFt
ZShzaGFkb3dUYWcpKSB7CiAgICAgICAgIG5ld1Jvb3QgPSBleGlzdGluZ1Jvb3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA0OGFiZDEy
ZjhlMTMzYzgyNjU1MjQzMjVmMWEyNzg5Y2I4Zjg2NWM5Li42MTAzMDc3MGYxNzJlODhmZTRlYTlk
NzVmMTk0MWFiZWM0ZjZmMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUu
aCIKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCkBAIC04Miw3
ICs4Myw2IEBACiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUu
aCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZl
ci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCkBAIC0zNDEsNyArMzQxLDcgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rl
c01hcCkKICAgICB9CiAKICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVu
dChub2RlKS0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9v
dCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsg
cm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICBmb3IgKFNoYWRv
d1Jvb3QqIHJvb3QgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQogICAgICAgICAgICAg
dW5iaW5kKHJvb3QsIG5vZGVzTWFwKTsKICAgICB9CiAKQEAgLTEyMjgsNyArMTIyOCw3IEBAIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yTm9kZShOb2RlKiBuCiAgICAgICAgIH0KICAgICAgICAgaWYgKGVsZW1lbnQtPmhh
c1NoYWRvd1Jvb3QoKSkgewogICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6RE9NOjpOb2RlPiA+IHNoYWRvd1Jvb3RzID0gVHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+OjpjcmVhdGUoKTsKLSAgICAgICAgICAgIGZvciAoU2hh
ZG93Um9vdCogcm9vdCA9IGVsZW1lbnQtPnNoYWRvd1RyZWUoKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQtPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQogICAgICAgICAgICAg
ICAgIHNoYWRvd1Jvb3RzLT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTm9kZShyb290LCAwLCBub2Rl
c01hcCkpOwogICAgICAgICAgICAgdmFsdWUtPnNldFNoYWRvd1Jvb3RzKHNoYWRvd1Jvb3RzKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDUx
MWJjMzM5MjhlYjdmMzkwNzEzOTBkZWYxM2FhN2FjYmY2YWMyZTIuLjkyOTJhYjEwZDU5OTM4Mjll
MWRhZDgxMDcwYzA5YzdlOThjOGQ2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRl
ICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVu
dFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtNTQsNyArNTUsNiBAQAogI2luY2x1ZGUgIlNj
cm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0
aW9uLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIgLy8g
Rm9yIGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZQpAQCAtMTI2LDE0ICsxMjYsMTQgQEAgRm9j
dXNTY29wZSBGb2N1c1Njb3BlOjpmb2N1c1Njb3BlT2YoTm9kZSogbm9kZSkKICAgICBBU1NFUlQo
bm9kZSk7CiAgICAgVHJlZVNjb3BlKiBzY29wZSA9IG5vZGUtPnRyZWVTY29wZSgpOwogICAgIGlm
IChzY29wZS0+cm9vdE5vZGUoKS0+aXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybiBGb2N1
c1Njb3BlKHRvU2hhZG93Um9vdChzY29wZS0+cm9vdE5vZGUoKSktPnRyZWUoKS0+eW91bmdlc3RT
aGFkb3dSb290KCkpOworICAgICAgICByZXR1cm4gRm9jdXNTY29wZSh0b1NoYWRvd1Jvb3Qoc2Nv
cGUtPnJvb3ROb2RlKCkpLT5vd25lcigpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CiAgICAgcmV0
dXJuIEZvY3VzU2NvcGUoc2NvcGUpOwogfQogCiBGb2N1c1Njb3BlIEZvY3VzU2NvcGU6OmZvY3Vz
U2NvcGVPd25lZEJ5U2hhZG93SG9zdChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChpc1NoYWRv
d0hvc3Qobm9kZSkpOwotICAgIHJldHVybiBGb2N1c1Njb3BlKHRvRWxlbWVudChub2RlKS0+c2hh
ZG93VHJlZSgpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgcmV0dXJuIEZvY3VzU2NvcGUo
dG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCkpOwogfQogCiBG
b2N1c1Njb3BlIEZvY3VzU2NvcGU6OmZvY3VzU2NvcGVPd25lZEJ5SUZyYW1lKEhUTUxGcmFtZU93
bmVyRWxlbWVudCogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBiOGNiNjI4ZDAzODVhMTM4NzlmYTAzYTc2
YzRmNDgzZTUxMjY5NTQ3Li5mZDYyNjMwYThjMTlhNTQyMWRhNTg4ZTQwNDA5MDVmYmYzMDliMjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oIgogCisjaW5jbHVkZSAiRWxlbWVudFNoYWRv
dy5oIgogI2luY2x1ZGUgIkZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgpAQCAtMzIsNyArMzMsNiBAQAogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTaGFkb3dUcmVlLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5o
IgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgogI2luY2x1ZGUgPG1hdGguaD4KQEAgLTIy
NSw3ICsyMjUsNyBAQCBIVE1MSW5wdXRFbGVtZW50KiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6
dXBsb2FkQnV0dG9uKCkgY29uc3QKIAogICAgIEFTU0VSVChpbnB1dC0+aGFzU2hhZG93Um9vdCgp
KTsKIAotICAgIE5vZGUqIGJ1dHRvbk5vZGUgPSBpbnB1dC0+c2hhZG93VHJlZSgpLT5vbGRlc3RT
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBidXR0b25Ob2RlID0gaW5wdXQt
PnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICByZXR1cm4g
YnV0dG9uTm9kZSAmJiBidXR0b25Ob2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgYnV0dG9uTm9kZS0+
aGFzVGFnTmFtZShpbnB1dFRhZykgPyBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oYnV0
dG9uTm9kZSkgOiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJl
ZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRl
eCAxNDAyNGNlYTU3MzljNDhhMWMxMjIxNGU4YTY5YTI2OTY2ZGU0YzZhLi5kNzc0ZTVkZTU2ZTE1
ZDE3YTk4ZGFmZmJjMjBkNDBmNjY4MDgwOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxl
bWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNW
R1RSZWZFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNdXRh
dGlvbkV2ZW50LmgiCkBAIC0zMiw3ICszMyw2IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5l
VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6dXBkYXRlUmVmZXJlbmNl
ZFRleHQoKQogICAgICAgICB0ZXh0Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRlbnQoKTsKIAog
ICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwotICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFk
b3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiByb290ID0gc2hh
ZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICBpZiAoIXJvb3QtPmZpcnN0Q2hpbGQoKSkK
ICAgICAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoU1ZHU2hhZG93VGV4dDo6Y3JlYXRlKGRvY3VtZW50
KCksIHRleHRDb250ZW50KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgZWxzZQpAQCAtMTgx
LDcgKzE4MSw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdldCgpCiAgICAgRXhj
ZXB0aW9uQ29kZSBpZ25vcmUgPSAwOwogCiAgICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7Ci0g
ICAgTm9kZSogY29udGFpbmVyID0gc2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBjb250YWluZXIgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93
Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgaWYgKGNvbnRhaW5lcikKICAgICAgICAgY29udGFp
bmVyLT5zZXRUZXh0Q29udGVudChlbXB0eUNvbnRlbnQsIGlnbm9yZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCA2ZWNkMDBmNTQxZjFhOTMyZmRhNmNiZmU4MWNjOTdm
YTU5Y2M3NjQ1Li4wYjgyZmFkZjlkZDUzZmE3MTNmM2ZkMjI1ODI3ZGQwYmRhODAxYzNkIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJF
dmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKQEAgLTM4LDcgKzM5LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCi0jaW5jbHVkZSAiU2hhZG93VHJlZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJ
bnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlNW
R0VsZW1lbnRJbnN0YW5jZUxpc3QuaCIKQEAgLTM5Myw3ICszOTMsNyBAQCBzdGF0aWMgYm9vbCBz
dWJ0cmVlQ29udGFpbnNEaXNhbGxvd2VkRWxlbWVudChOb2RlKiBzdGFydCkKIHZvaWQgU1ZHVXNl
RWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogewogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgdHJ5IHRvIG9wdGltaXplIHRoaXMsIHRvIGF0IGxlYXN0IGFsbG93IHBhcnRpYWwgcmVj
bG9uZXMuCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHNoYWRvd1RyZWVSb290RWxlbWVudCA9ICBzaGFk
b3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkKKyAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93
VHJlZVJvb3RFbGVtZW50ID0gIHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCkpCiAgICAgICAg
IHNoYWRvd1RyZWVSb290RWxlbWVudC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIAogICAgIGlmICht
X3RhcmdldEVsZW1lbnRJbnN0YW5jZSkgewpAQCAtNDgwLDcgKzQ4MCw3IEBAIHZvaWQgU1ZHVXNl
RWxlbWVudDo6YnVpbGRTaGFkb3dBbmRJbnN0YW5jZVRyZWUoU1ZHRWxlbWVudCogdGFyZ2V0KQog
ICAgIEFTU0VSVChtX3RhcmdldEVsZW1lbnRJbnN0YW5jZS0+ZGlyZWN0VXNlRWxlbWVudCgpID09
IHRoaXMpOwogICAgIEFTU0VSVChtX3RhcmdldEVsZW1lbnRJbnN0YW5jZS0+Y29ycmVzcG9uZGlu
Z0VsZW1lbnQoKSA9PSB0YXJnZXQpOwogCi0gICAgU2hhZG93Um9vdCogc2hhZG93VHJlZVJvb3RF
bGVtZW50ID0gc2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9v
dCogc2hhZG93VHJlZVJvb3RFbGVtZW50ID0gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsK
ICAgICBBU1NFUlQoc2hhZG93VHJlZVJvb3RFbGVtZW50KTsKIAogICAgIC8vIEJ1aWxkIHNoYWRv
dyB0cmVlIGZyb20gaW5zdGFuY2UgdHJlZQpAQCAtNjk1LDcgKzY5NSw3IEBAIHZvaWQgU1ZHVXNl
RWxlbWVudDo6YnVpbGRTaGFkb3dUcmVlKFNWR0VsZW1lbnQqIHRhcmdldCwgU1ZHRWxlbWVudElu
c3RhbmNlKiB0YXJnCiAgICAgaWYgKHN1YnRyZWVDb250YWluc0Rpc2FsbG93ZWRFbGVtZW50KG5l
d0NoaWxkLmdldCgpKSkKICAgICAgICAgcmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRy
ZWUobmV3Q2hpbGQuZ2V0KCkpOwogCi0gICAgc2hhZG93VHJlZSgpLT5vbGRlc3RTaGFkb3dSb290
KCktPmFwcGVuZENoaWxkKG5ld0NoaWxkLnJlbGVhc2UoKSk7CisgICAgc2hhZG93KCktPm9sZGVz
dFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobmV3Q2hpbGQucmVsZWFzZSgpKTsKIH0KIAogdm9p
ZCBTVkdVc2VFbGVtZW50OjpleHBhbmRVc2VFbGVtZW50c0luU2hhZG93VHJlZShOb2RlKiBlbGVt
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDNjMmE5ZDUxMWE2NTJl
YjBjNWNkMTc4MTdiYzZlOGY1ZGM5MGExZTguLjY3ODM5ZjZjYTJlNDIwZGViN2M0MjAxZjBkYzZm
MmE3MWRjYzkzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFbGVt
ZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01Nyw3ICs1OCw2IEBACiAjaW5jbHVkZSAi
UmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgotI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKICNpbmNsdWRlICJTcGVsbENoZWNr
ZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIK
QEAgLTMwMyw3ICszMDMsNyBAQCBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJs
ZWRPck5vZGUqIEludGVybmFsczo6ZW5zdXJlU2hhZG93Um9vdChFbGVtZQogICAgIH0KIAogICAg
IGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybiBob3N0LT5zaGFkb3dU
cmVlKCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOworICAgICAgICByZXR1cm4gaG9zdC0+c2hhZG93
KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0
ZShob3N0LCBlYykuZ2V0KCk7CiB9CkBAIC0zMjUsNyArMzI1LDcgQEAgSW50ZXJuYWxzOjpTaGFk
b3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93
Um9vdChFbGUKICAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICByZXR1cm4gaG9zdC0+c2hhZG93VHJlZSgpLT55b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogfQog
CiBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFs
czo6b2xkZXN0U2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAg
LTMzOCw3ICszMzgsNyBAQCBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRP
ck5vZGUqIEludGVybmFsczo6b2xkZXN0U2hhZG93Um9vdChFbGVtZQogICAgIGlmICghaG9zdC0+
aGFzU2hhZG93Um9vdCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBob3N0LT5z
aGFkb3dUcmVlKCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gaG9zdC0+c2hhZG93
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIH0KIAogSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFk
b3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnlvdW5nZXJTaGFkb3dSb290KE5vZGUqIHNo
YWRvdywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zNjksNyArMzY5LDcgQEAgdm9pZCBJbnRlcm5h
bHM6OnJlbW92ZVNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgfQogCiAgICAgaWYgKGhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgaG9zdC0+c2hh
ZG93VHJlZSgpLT5yZW1vdmVBbGxTaGFkb3dSb290cygpOworICAgICAgICBob3N0LT5zaGFkb3co
KS0+cmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKIH0KIAogRWxlbWVudCogSW50ZXJuYWxzOjppbmNs
dWRlckZvcihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRl
ZgppbmRleCBjNGExMDM5MmQzYTIyN2RjMmM2NDhlODcwYWU0ZmFmYzcxNTlhMGIyLi4wMzQyYzFm
NDU4Njg3YjdhMjg0ZmNkYTg1ZDI1NDUzMDBlYmE1NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
CkBAIC0yMDEsNyArMjAxLDcgQEAgRVhQT1JUUwogICAgICAgICA/cGFpbnRDb250cm9sVGludHNA
RnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cGxhY2Vob2xkZXJTaG91bGRCZVZp
c2libGVASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAg
ICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBP0FW
PyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJASEhfTkBaCi0g
ICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290c0BTaGFkb3dUcmVlQFdlYkNvcmVAQFFBRVhYWgor
ICAgICAgICA/cmVtb3ZlQWxsU2hhZG93Um9vdHNARWxlbWVudFNoYWRvd0BXZWJDb3JlQEBRQUVY
WFoKICAgICAgICAgP3JlbW92ZUBTdHJpbmdAV1RGQEBRQUVYSUhAWgogICAgICAgICA/cmV2ZXJz
ZUZpbmRAU3RyaW5nSW1wbEBXVEZAQFFBRUlfV0lAWgogICAgICAgICA/c19mcm9udGVuZENvdW50
ZXJASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQDBIQQpAQCAtMjI5LDcgKzIyOSw3
IEBAIEVYUE9SVFMKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNl
dHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRp
bmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVA
U2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKLSAgICAgICAgP3NoYWRvd1RyZWVARWxlbWVudEBX
ZWJDb3JlQEBRQkVQQVZTaGFkb3dUcmVlQDJAWFoKKyAgICAgICAgP3NoYWRvd0BFbGVtZW50QFdl
YkNvcmVAQFFCRVBBVkVsZW1lbnRTaGFkb3dAMkBYWgogICAgICAgICA/c3Vic3RyaW5nQFN0cmlu
Z0BXVEZAQFFCRT9BVjEyQElJQFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVs
ZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RleHRAUmFuZ2VA
V2ViQ29yZUBAUUJFP0FWU3RyaW5nQFdURkBAWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgppbmRleCA0NGJiODdiYzc2ZjJlMTc4MDY2MGU2ODM2YWI0NGVhMTM5Mzk2YWYxLi5iNmUw
ZjM2ZDQzYzNjMTExNWMwMDk3ZGYxOGM5NzkxY2E0M2I1Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJDRkxpdGUuZGVmCkBAIC0xOTQsNyArMTk0LDcgQEAgRVhQT1JUUwogICAgICAgICA/cGFp
bnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cGxhY2Vo
b2xkZXJTaG91bGRCZVZpc2libGVASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBA
UUJFX05YWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9y
QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVt
ZW50QDJASEhfTkBaCi0gICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290c0BTaGFkb3dUcmVlQFdl
YkNvcmVAQFFBRVhYWgorICAgICAgICA/cmVtb3ZlQWxsU2hhZG93Um9vdHNARWxlbWVudFNoYWRv
d0BXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3JlbW92ZUBTdHJpbmdAV1RGQEBRQUVYSUhAWgog
ICAgICAgICA/cmV2ZXJzZUZpbmRAU3RyaW5nSW1wbEBXVEZAQFFBRUlfV0lAWgogICAgICAgICA/
c19mcm9udGVuZENvdW50ZXJASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQDBIQQpA
QCAtMjIyLDcgKzIyMiw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdl
YkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNv
cmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlvdXRS
ZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKLSAgICAgICAgP3NoYWRv
d1RyZWVARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dUcmVlQDJAWFoKKyAgICAgICAgP3No
YWRvd0BFbGVtZW50QFdlYkNvcmVAQFFCRVBBVkVsZW1lbnRTaGFkb3dAMkBYWgogICAgICAgICA/
c3Vic3RyaW5nQFN0cmluZ0BXVEZAQFFCRT9BVjEyQElJQFoKICAgICAgICAgP3N1Z2dlc3RlZFZh
bHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAg
ICAgP3RleHRAUmFuZ2VAV2ViQ29yZUBAUUJFP0FWU3RyaW5nQFdURkBAWFoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCmluZGV4IDRkNzUwY2Y4YmYwMmU3NDdiOGFlMTI2ODcxOWQ5NTk3MGYyZGY4OTQu
LmMwMzM4NTM3NDYzNjhkNjVkNjU1MmY3NTFkNzNkN2EyODQzZmQ3ZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgpAQCAtNDMsNyArNDMsNyBAQCBfWk43V2ViQ29yZTEwdG9Eb2N1bWVudEVOM0pT
QzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFdjsKIF9aTjdXZWJDb3JlMTBD
bGllbnRSZWN0QzFFUktOU183SW50UmVjdEU7CiBfWk43V2ViQ29yZTEwU2hhZG93Um9vdDZjcmVh
dGVFUE5TXzdFbGVtZW50RVJpOwotX1pON1dlYkNvcmUxMFNoYWRvd1RyZWUyMHJlbW92ZUFsbFNo
YWRvd1Jvb3RzRXY7CitfWk43V2ViQ29yZTEzRWxlbWVudFNoYWRvdzIwcmVtb3ZlQWxsU2hhZG93
Um9vdHNFdjsKIF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDE3dG9HZW5lcmF0ZWRTdHJlYW1FdjsK
IF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDh0b1N0cmVhbUV2OwogX1pON1dlYkNvcmUxMlRleHRJ
dGVyYXRvcjI2cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhFUE5TXzdFbGVtZW50RWlpYjsKQEAg
LTk4LDcgKzk4LDcgQEAgX1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDIx
bGFzdENoYW5nZVdhc1VzZXJFZGl0RXY7CiBfWk5LN1dlYkNvcmUyNkhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50MjZwbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZUV2OwogX1pOSzdXZWJDb3JlNUZy
YW1lOHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2Nv
cGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0U2NvcGVDaGFpbk5vZGVFOwotX1pOSzdXZWJDb3Jl
N0VsZW1lbnQxMHNoYWRvd1RyZWVFdjsKK19aTks3V2ViQ29yZTdFbGVtZW50NnNoYWRvd0V2Owog
X1pOSzdXZWJDb3JlN0VsZW1lbnQxM2hhc1NoYWRvd1Jvb3RFdjsKIF9aTks3V2ViQ29yZThEb2N1
bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkYzVmMTkwMjU1MmRjYjYyYjU1N2JkNzRm
OGVhMTY4MjE5ZmUzY2Y1Li5iMDZiYTEyNGViNmZjNjhlOWVhNjUyNjJlNmQzYjU4NjVjMDcxNjUy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMDUtMDYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MjY1CisgICAgICAg
IFtTaGFkb3cgRE9NXSBTaGFkb3dUcmVlIG5lZWRzIGEgYmV0dGVyIG5hbWUKKworICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xz
L3N5bWJvbHMuZmlsdGVyOiBVcGRhdGVkIGV4cG9ydGVkIHN5bWJvbCBuYW1lcyBhY2NvcmRpbmcg
dG8gdGhlIHJlbmFtZS4KKwogMjAxMi0wNS0wNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2lt
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIENvbnZlcnQgaXNQYWdlQm94VmlzaWJsZSB0byB1c2Ug
SW50ZXJuYWxzIGludGVyZmFjZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>