<?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>69601</bug_id>
          
          <creation_ts>2011-10-06 21:13:25 -0700</creation_ts>
          <short_desc>REGRESSION(r96896): broke windows and mac chromium builds (Requested by simonjam on #webkit).</short_desc>
          <delta_ts>2011-10-06 21:19:54 -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>New Bugs</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>69107</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>fishd</cc>
    
    <cc>piman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>479776</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 21:13:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/96896 broke the build:
broke windows and mac chromium builds (Requested by simonjam on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479777</commentid>
    <comment_count>1</comment_count>
      <attachid>110087</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 21:13:52 -0700</bug_when>
    <thetext>Created attachment 110087
ROLLOUT of r96896

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479780</commentid>
    <comment_count>2</comment_count>
      <attachid>110087</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 21:19:49 -0700</bug_when>
    <thetext>Comment on attachment 110087
ROLLOUT of r96896

Clearing flags on attachment: 110087

Committed r96900: &lt;http://trac.webkit.org/changeset/96900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479781</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 21:19:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110087</attachid>
            <date>2011-10-06 21:13:52 -0700</date>
            <delta_ts>2011-10-06 21:19:49 -0700</delta_ts>
            <desc>ROLLOUT of r96896</desc>
            <filename>bug-69601-20111007041142.patch</filename>
            <type>text/plain</type>
            <size>56917</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY4OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNGY0NDU0ZjljMTg2OWQy
YmQ2ZWZlYjM4NGI3MDMxMzViNDBhMjQzLi5hYjUwNDc5Yzc4MzQyMWE0OTcwM2Q1YjBiNzJlMmZm
M2NmYzVkOGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMDYgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5Njg5Ni4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvOTY4OTYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY5NjAxCisKKyAgICAgICAgYnJva2Ugd2luZG93cyBhbmQgbWFjIGNocm9taXVtIGJ1
aWxkcyAoUmVxdWVzdGVkIGJ5IHNpbW9uamFtCisgICAgICAgIG9uICN3ZWJraXQpLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoK
KwogMjAxMS0xMC0wNiAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2Via2l0IEFQSSBmb3IgY29tcG9zaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9t
aXVtLmgKaW5kZXggYjgzNGU2NzZiZDYzNDQ1YWE0NTNiMzY1ZWVlMjgwMjQwZjM4MDljMS4uYTIx
YmM2ODA4Zjg4Y2Y0OTdhOWI3YmEzNjZlMTcxZTkzZjg5NmU2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50
TGF5ZXJDaHJvbWl1bS5oCkBAIC01MSwxMCArNTEsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoKTsKIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBDb250ZW50TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqKTsKIAotcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cFJlc291cmNlcygpOwogICAgIHZpcnR1YWwg
Ym9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGV4dHVy
ZVVwZGF0ZXIoY29uc3QgQ0NMYXllclRyZWVIb3N0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDc5ZjcxODgzOTIzNDA5NWM1OTI3NWRiN2E4MjI5MmYxNTc3OTMyYTEuLjM1OGVmNzRm
MzBmZWRhNjg3MGNkNDVkOTNhMzE2ODNiODBmM2FhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMzEgQEAKIDIwMTEtMTAtMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5
Njg5Ni4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTY4OTYKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjAxCisKKyAg
ICAgICAgYnJva2Ugd2luZG93cyBhbmQgbWFjIGNocm9taXVtIGJ1aWxkcyAoUmVxdWVzdGVkIGJ5
IHNpbW9uamFtCisgICAgICAgIG9uICN3ZWJraXQpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoK
KyAgICAgICAgKiBwdWJsaWMvV2ViQ29udGVudExheWVyLmg6IFJlbW92ZWQuCisgICAgICAgICog
cHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1Ymxp
Yy9XZWJMYXllci5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJMYXllckNsaWVudC5o
OiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6IFJlbW92ZWQu
CisgICAgICAgICogcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzcmMvV2ViQ29udGVudExheWVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMv
V2ViQ29udGVudExheWVySW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYkNvbnRl
bnRMYXllckltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViTGF5ZXIuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIHNyYy9XZWJMYXllckltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHNyYy9XZWJMYXllckltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVl
Vmlldy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaDogUmVtb3Zl
ZC4KKworMjAxMS0xMC0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CisKICAgICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgogCiAgICAgICAgICogREVQ
UzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA3MmU5NTMzYTAxNjMwYzdlMDFjYTc0
ZWFiNjc4MGE1MWE5YjA3ZTI1Li5kY2NlMWE3NDBjY2E0N2ZkN2VkZWZkZDhhMTFmNDcwMDdmNmZh
ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC04NSw3ICs4NSw2IEBACiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYycsCiAgICAgICAgICAgICAgICAgJ3NyYycsCiAgICAgICAgICAg
ICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvYW5nbGUvaW5jbHVkZScsCi0g
ICAgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvc2tpYS9pbmNs
dWRlL3V0aWxzJywKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnZGVmaW5lcyc6IFsKICAg
ICAgICAgICAgICAgICAnV0VCS0lUX0lNUExFTUVOVEFUSU9OPTEnLApAQCAtMTMxLDggKzEzMCw2
IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9yQ2xpZW50LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRvci5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkNvbnNvbGVNZXNzYWdlLmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
Q29udGVudExheWVyLmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29udGVudExheWVy
Q2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29va2llLmgnLAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViQ29va2llSmFyLmgnLApAQCAtMjE5LDEwICsyMTYsNiBAQAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViS2l0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViS2l0
UGxhdGZvcm1TdXBwb3J0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTGFiZWxFbGVt
ZW50LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTGF5ZXIuaCcsCi0gICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJMYXllckNsaWVudC5oJywKLSAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkxheWVyVHJlZVZpZXcuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJMYXllclRy
ZWVWaWV3Q2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTG9jYWxpemVkU3Ry
aW5nLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFFbGVtZW50LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaCcsCkBAIC00NTYsOSArNDQ5LDYg
QEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNv
bXBvc2l0b3JJbXBsLmgnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViQ29udGVudExheWVyLmNw
cCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcCcsCi0gICAg
ICAgICAgICAgICAgJ3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmgnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ3Vy
c29ySW5mby5jcHAnLApAQCAtNTQzLDEyICs1MzMsNiBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJLaXQu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkxhYmVsRWxlbWVudC5jcHAnLAotICAgICAg
ICAgICAgICAgICdzcmMvV2ViTGF5ZXIuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYkxh
eWVySW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViTGF5ZXJJbXBsLmgnLAotICAg
ICAgICAgICAgICAgICdzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAnLAotICAgICAgICAgICAgICAg
ICdzcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dl
YkxheWVyVHJlZVZpZXdJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFFbGVt
ZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbnRlbnRMYXll
ci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkN2YxMDE0MTIyOGExZjAzOGMxNzVhZGJiMGMx
Zjc2NmI4NmU1ZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJDb250ZW50TGF5ZXJf
aAotI2RlZmluZSBXZWJDb250ZW50TGF5ZXJfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0j
aW5jbHVkZSAiV2ViTGF5ZXIuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJDb250
ZW50TGF5ZXJDbGllbnQ7Ci1jbGFzcyBXZWJDb250ZW50TGF5ZXJJbXBsOwotY2xhc3MgV2ViRmxv
YXRSZWN0OwotY2xhc3MgV2ViTGF5ZXJDbGllbnQ7Ci0KLWNsYXNzIFdlYkNvbnRlbnRMYXllciA6
IHB1YmxpYyBXZWJMYXllciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFdlYkNvbnRlbnRMYXllciBj
cmVhdGUoV2ViTGF5ZXJDbGllbnQqLCBXZWJDb250ZW50TGF5ZXJDbGllbnQqKTsKLQotICAgIFdl
YkNvbnRlbnRMYXllcigpIHsgfQotICAgIFdlYkNvbnRlbnRMYXllcihjb25zdCBXZWJDb250ZW50
TGF5ZXImIGxheWVyKSA6IFdlYkxheWVyKGxheWVyKSB7IH0KLSAgICB2aXJ0dWFsIH5XZWJDb250
ZW50TGF5ZXIoKSB7IH0KLSAgICBXZWJDb250ZW50TGF5ZXImIG9wZXJhdG9yPShjb25zdCBXZWJD
b250ZW50TGF5ZXImIGxheWVyKQotICAgIHsKLSAgICAgICAgV2ViTGF5ZXI6OmFzc2lnbihsYXll
cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICAvLyBTZXRzIHdoZXRoZXIg
dGhlIGxheWVyIGRyYXdzIGl0cyBjb250ZW50IHdoZW4gY29tcG9zaXRpbmcuCi0gICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHNldERyYXdzQ29udGVudChib29sKTsKLSAgICBXRUJLSVRfRVhQT1JUIGJv
b2wgZHJhd3NDb250ZW50KCkgY29uc3Q7Ci0KLSAgICAvLyBTZXRzIGEgcmVnaW9uIG9mIHRoZSBs
YXllciBhcyBpbnZhbGlkLCBpLmUuIG5lZWRzIHRvIHVwZGF0ZSBpdHMgY29udGVudC4KLSAgICAv
LyBUaGUgdmlzaWJsZSBhcmVhIG9mIHRoZSBkaXJ0eSByZWN0IHdpbGwgYmUgcGFzc2VkIHRvIG9u
ZSBvciBtb3JlIGNhbGxzIHRvCi0gICAgLy8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENv
bnRlbnRzIGJlZm9yZSB0aGUgY29tcG9zaXRpbmcgcGFzcyBvY2N1cnMuCi0gICAgV0VCS0lUX0VY
UE9SVCB2b2lkIGludmFsaWRhdGVSZWN0KGNvbnN0IFdlYkZsb2F0UmVjdCYpOwotCi0gICAgLy8g
U2V0cyB0aGUgZW50aXJlIGxheWVyIGFzIGludmFsaWQsIGkuZS4gbmVlZHMgdG8gdXBkYXRlIGl0
cyBjb250ZW50LgotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0KLSAgICAv
LyBSZXR1cm5zIHRoZSByZWdpb24gb2YgdGhlIGxheWVyIHRoYXQgaXMgY3VycmVudGx5IGludmFs
aWQuCi0gICAgV0VCS0lUX0VYUE9SVCBXZWJGbG9hdFJlY3QgaW52YWxpZFJlY3QoKSBjb25zdDsK
LQotI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYkNvbnRlbnRMYXllcihjb25zdCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29udGVudExheWVySW1wbD4mKTsKLSAgICBXZWJDb250ZW50TGF5
ZXImIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29udGVudExheWVySW1wbD4m
KTsKLSAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29udGVudExheWVySW1wbD4oKSBj
b25zdDsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBX
ZWJDb250ZW50TGF5ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQ29udGVudExheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWI0YmUwY2E3N2ZjNmUzOWY3ODg0ODc2YjFiY2M2YzQzZThjNmI5Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFdlYkNvbnRlbnRMYXllckNsaWVudF9oCi0jZGVmaW5lIFdlYkNv
bnRlbnRMYXllckNsaWVudF9oCi0KLSNpbmNsdWRlICJXZWJDYW52YXMuaCIKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci1jbGFzcyBXZWJSZWN0OwotCi1jbGFzcyBXZWJDb250ZW50TGF5ZXJDbGllbnQg
ewotcHVibGljOgotICAgIC8vIFBhaW50cyB0aGUgY29udGVudCBhcmVhIGZvciB0aGUgbGF5ZXIs
IHR5cGljYWxseSBkaXJ0eSByZWN0cyBzdWJtaXR0ZWQKLSAgICAvLyB0aHJvdWdoIFdlYkNvbnRl
bnRMYXllcjo6c2V0TmVlZHNEaXNwbGF5LCBzdWJtaXR0aW5nIGRyYXdpbmcgY29tbWFuZHMKLSAg
ICAvLyB0aHJvdWdoIHRoZSBXZWJDYW52YXMuCi0gICAgLy8gVGhlIGNhbnZhcyBpcyBhbHJlYWR5
IGNsaXBwZWQgdG8gdGhlIHxjbGlwfCByZWN0LgotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNsaXApID0gMDsKLQotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgfldlYkNvbnRlbnRMYXllckNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJDb250ZW50TGF5ZXJDbGllbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEzMWUwNTdjYzQ2YzMyOWExMTFiNjAwYmRiNTI0OGFlN2U4YzE2MTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
LSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmbmRlZiBXZWJMYXllcl9oCi0jZGVmaW5lIFdlYkxheWVyX2gKLQotI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKLQotY2xhc3MgU2tNYXRy
aXg0NDsKLW5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgTGF5ZXJDaHJvbWl1bTsgfQotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkZsb2F0UG9pbnQ7Ci1jbGFzcyBXZWJMYXllckNsaWVu
dDsKLWNsYXNzIFdlYlNpemU7Ci0KLWNsYXNzIFdlYkxheWVyIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgV2ViTGF5ZXIgY3JlYXRlKFdlYkxheWVyQ2xpZW50Kik7Ci0KLSAgICBXZWJMYXllcigpIHsg
fQotICAgIFdlYkxheWVyKGNvbnN0IFdlYkxheWVyJiBsYXllcikgeyBhc3NpZ24obGF5ZXIpOyB9
Ci0gICAgdmlydHVhbCB+V2ViTGF5ZXIoKTsKLSAgICBXZWJMYXllciYgb3BlcmF0b3I9KGNvbnN0
IFdlYkxheWVyJiBsYXllcikKLSAgICB7Ci0gICAgICAgIGFzc2lnbihsYXllcik7Ci0gICAgICAg
IHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7Ci0g
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJMYXllciYpOwotICAgIFdFQktJ
VF9FWFBPUlQgYm9vbCBlcXVhbHMoY29uc3QgV2ViTGF5ZXImKSBjb25zdDsKLQotICAgIFdFQktJ
VF9FWFBPUlQgV2ViTGF5ZXIgcm9vdExheWVyKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VYUE9SVCBX
ZWJMYXllciBwYXJlbnQoKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYWRkQ2hpbGQo
Y29uc3QgV2ViTGF5ZXImKTsKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5zZXJ0Q2hpbGQoY29u
c3QgV2ViTGF5ZXImLCBzaXplX3QgaW5kZXgpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXBs
YWNlQ2hpbGQoY29uc3QgV2ViTGF5ZXImIHJlZmVyZW5jZSwgY29uc3QgV2ViTGF5ZXImIG5ld0xh
eWVyKTsKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVtb3ZlRnJvbVBhcmVudCgpOwotICAgIFdF
QktJVF9FWFBPUlQgdm9pZCByZW1vdmVBbGxDaGlsZHJlbigpOwotCi0gICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHNldEFuY2hvclBvaW50KGNvbnN0IFdlYkZsb2F0UG9pbnQmKTsKLSAgICBXRUJLSVRf
RVhQT1JUIFdlYkZsb2F0UG9pbnQgYW5jaG9yUG9pbnQoKSBjb25zdDsKLQotICAgIFdFQktJVF9F
WFBPUlQgdm9pZCBzZXRBbmNob3JQb2ludFooZmxvYXQpOwotICAgIFdFQktJVF9FWFBPUlQgZmxv
YXQgYW5jaG9yUG9pbnRaKCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Qm91
bmRzKGNvbnN0IFdlYlNpemUmKTsKLSAgICBXRUJLSVRfRVhQT1JUIFdlYlNpemUgYm91bmRzKCkg
Y29uc3Q7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0TWFza3NUb0JvdW5kcyhib29sKTsK
LSAgICBXRUJLSVRfRVhQT1JUIGJvb2wgbWFza3NUb0JvdW5kcygpIGNvbnN0OwotCi0gICAgV0VC
S0lUX0VYUE9SVCB2b2lkIHNldE1hc2tMYXllcihjb25zdCBXZWJMYXllciYpOwotICAgIFdFQktJ
VF9FWFBPUlQgV2ViTGF5ZXIgbWFza0xheWVyKCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc2V0T3BhY2l0eShmbG9hdCk7Ci0gICAgV0VCS0lUX0VYUE9SVCBmbG9hdCBvcGFjaXR5
KCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0T3BhcXVlKGJvb2wpOwotICAg
IFdFQktJVF9FWFBPUlQgYm9vbCBvcGFxdWUoKSBjb25zdDsKLQotICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRQb3NpdGlvbihjb25zdCBXZWJGbG9hdFBvaW50Jik7Ci0gICAgV0VCS0lUX0VYUE9S
VCBXZWJGbG9hdFBvaW50IHBvc2l0aW9uKCkgY29uc3Q7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgc2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3QgU2tNYXRyaXg0NCYpOwotICAgIFdFQktJVF9F
WFBPUlQgU2tNYXRyaXg0NCBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0OwotCi0gICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBTa01hdHJpeDQ0Jik7Ci0gICAgV0VCS0lU
X0VYUE9SVCBTa01hdHJpeDQ0IHRyYW5zZm9ybSgpIGNvbnN0OwotCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gVCB0bygpCi0gICAgewotICAgICAgICBUIHJlczsKLSAgICAgICAgcmVzLldlYkxh
eWVyOjphc3NpZ24oKnRoaXMpOwotICAgICAgICByZXR1cm4gcmVzOwotICAgIH0KLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0IFQgdG9Db25zdCgpIGNvbnN0Ci0gICAgewotICAgICAg
ICBUIHJlczsKLSAgICAgICAgcmVzLldlYkxheWVyOjphc3NpZ24oKnRoaXMpOwotICAgICAgICBy
ZXR1cm4gcmVzOwotICAgIH0KLQotI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYkxh
eWVyKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpMYXllckNocm9taXVtPiYpOwotICAg
IFdlYkxheWVyJiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkxheWVy
Q2hyb21pdW0+Jik7Ci0gICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkxheWVy
Q2hyb21pdW0+KCkgY29uc3Q7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCogdW53cmFwKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9wcml2YXRlLmdldCgpKTsK
LSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdCBUKiBjb25zdFVud3JhcCgp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVCo+KG1fcHJp
dmF0ZS5nZXQoKSk7Ci0gICAgfQotI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICBXZWJQcml2YXRl
UHRyPFdlYkNvcmU6OkxheWVyQ2hyb21pdW0+IG1fcHJpdmF0ZTsKLX07Ci0KLWlubGluZSBib29s
IG9wZXJhdG9yPT0oY29uc3QgV2ViTGF5ZXImIGEsIGNvbnN0IFdlYkxheWVyJiBiKQotewotICAg
IHJldHVybiBhLmVxdWFscyhiKTsKLX0KLQotaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBX
ZWJMYXllciYgYSwgY29uc3QgV2ViTGF5ZXImIGIpCi17Ci0gICAgcmV0dXJuICEoYSA9PSBiKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJMYXllcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllckNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJDbGllbnQuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWYxNDhiYTJlZTEzNzg0MmIxMTJkYzMyOTJjOTgwNDllNTVj
ZTk2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllckNsaWVudC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViTGF5ZXJDbGllbnRfaAotI2RlZmlu
ZSBXZWJMYXllckNsaWVudF9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJMYXll
ckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgLy8gTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBs
YXllciBoYXMgY2hhbmdlZCBpbiBhIHdheSB0aGF0IG5lZWRzIGEKLSAgICAvLyBjb21wb3NpdGlu
ZyBwYXNzIHRvIHZpc3VhbGx5IHVwZGF0ZS4gVGhlIGNsaWVudCBzaG91bGQgZXZlbnR1YWxseSBj
YWxsCi0gICAgLy8gV2ViTGF5ZXJUcmVlVmlldzo6Y29tcG9zaXRlLgotICAgIC8vIE5vdGU6IHNv
bWUgY29tcGxleCBvcGVyYXRpb25zIChlLmcgbGF5ZXIgcmVwYXJlbnRpbmcpIGNhbiBjYXVzZSB0
aGlzIHRvCi0gICAgLy8gYmUgY2FsbGVkIHdoaWxlIHRoZSBsYXllciB0cmVlIGlzIGluIGFuIGlu
Y29uc2lzdGVudCBzdGF0ZSwgc28gdG8gZ2V0Ci0gICAgLy8gY29ycmVjdCByZXN1bHRzLCBXZWJM
YXllclRyZWVWaWV3Ojpjb21wb3NpdGUgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciB0aGUKLSAgICAv
LyBvcGVyYXRpb24gaGFzIGZpbmlzaGVkIChlLmcuIGJ5IHBvc3RpbmcgYSB0YXNrKS4KLSAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAg
ICB2aXJ0dWFsIH5XZWJMYXllckNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBXZWJMYXllckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGMzYzVjOGQ3NTNhZmJhMDlhYTI0OTYwMjUyM2UzYTc0ZTM1ODNkMjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkxheWVyVHJlZVZpZXdfaAotI2RlZmluZSBXZWJMYXll
clRyZWVWaWV3X2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYlByaXZh
dGVQdHIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ0NMYXllclRyZWVIb3N0Owot
Y2xhc3MgQ0NTZXR0aW5nczsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJMYXll
cjsKLWNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ7Ci1jbGFzcyBXZWJTaXplOwotCi1jbGFz
cyBXZWJMYXllclRyZWVWaWV3IHsKLXB1YmxpYzoKLSAgICBzdHJ1Y3QgU2V0dGluZ3MgewotICAg
ICAgICBTZXR0aW5ncygpCi0gICAgICAgICAgICA6IGFjY2VsZXJhdGVQYWludGluZyhmYWxzZSkK
LSAgICAgICAgICAgICwgY29tcG9zaXRlT2Zmc2NyZWVuKGZhbHNlKQotICAgICAgICAgICAgLCBl
bmFibGVDb21wb3NpdG9yVGhyZWFkKGZhbHNlKSB7IH0KLQotICAgICAgICBib29sIGFjY2VsZXJh
dGVQYWludGluZzsKLSAgICAgICAgYm9vbCBjb21wb3NpdGVPZmZzY3JlZW47Ci0gICAgICAgIGJv
b2wgZW5hYmxlQ29tcG9zaXRvclRocmVhZDsKLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAg
ICAgICAgb3BlcmF0b3IgV2ViQ29yZTo6Q0NTZXR0aW5ncygpIGNvbnN0OwotI2VuZGlmCi0gICAg
fTsKLQotICAgIHN0YXRpYyBXZWJMYXllclRyZWVWaWV3IGNyZWF0ZShXZWJMYXllclRyZWVWaWV3
Q2xpZW50KiwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFNldHRpbmdzJik7Ci0KLSAgICBX
ZWJMYXllclRyZWVWaWV3KCkgeyB9Ci0gICAgV2ViTGF5ZXJUcmVlVmlldyhjb25zdCBXZWJMYXll
clRyZWVWaWV3JiBsYXllcikgeyBhc3NpZ24obGF5ZXIpOyB9Ci0gICAgfldlYkxheWVyVHJlZVZp
ZXcoKSB7IHJlc2V0KCk7IH0KLSAgICBXZWJMYXllclRyZWVWaWV3JiBvcGVyYXRvcj0oY29uc3Qg
V2ViTGF5ZXJUcmVlVmlldyYgbGF5ZXIpCi0gICAgewotICAgICAgICBhc3NpZ24obGF5ZXIpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNl
dCgpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTGF5ZXJUcmVlVmll
dyYpOwotICAgIFdFQktJVF9FWFBPUlQgYm9vbCBlcXVhbHMoY29uc3QgV2ViTGF5ZXJUcmVlVmll
dyYpIGNvbnN0OwotCi0gICAgLy8gVHJpZ2dlcnMgYSBjb21wb3NpdGluZyBwYXNzLiBJZiB0aGUg
Y29tcG9zaXRvciB0aHJlYWQgaXMgZGlzYWJsZWQKLSAgICAvLyAoZW5hYmxlQ29tcG9zaXRvclRo
cmVhZCA9PSBmYWxzZSksIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMKLSAgICAvLyBpbW1l
ZGlhdGVseS4gSWYgaXQgaXMgZW5hYmxlZCwgdGhlIGNvbXBvc2l0aW5nIHBhc3Mgd2lsbCBoYXBw
ZW4gYXQgYQotICAgIC8vIGxhdGVyIHRpbWUuIEJlZm9yZSB0aGUgY29tcG9zaXRpbmcgcGFzcyBo
YXBwZW5zIChpLmUuIGJlZm9yZSBjb21wb3NpdGUoKQotICAgIC8vIHJldHVybnMgd2hlbiB0aGUg
Y29tcG9zaXRvciB0aHJlYWQgaXMgZGlzYWJsZWQpLCBXZWJDb250ZW50TGF5ZXJzIHdpbGwgYmUK
LSAgICAvLyBhc2tlZCB0byBwYWludCB0aGVpciBkaXJ0eSByZWdpb24sIHRocm91Z2gKLSAgICAv
LyBXZWJDb250ZW50TGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMuCi0gICAgV0VCS0lUX0VYUE9S
VCB2b2lkIGNvbXBvc2l0ZSgpOwotCi0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFZpZXdwb3J0
U2l6ZShjb25zdCBXZWJTaXplJik7Ci0gICAgV0VCS0lUX0VYUE9SVCBXZWJTaXplIHZpZXdwb3J0
U2l6ZSgpIGNvbnN0OwotCi0jaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgV2ViTGF5ZXJU
cmVlVmlldyhjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0PiYp
OwotICAgIFdlYkxheWVyVHJlZVZpZXcmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0PiYpOwotICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q+KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJvdGVjdGVk
OgotICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0PiBtX3ByaXZhdGU7
Ci19OwotCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYkxheWVyVHJlZVZpZXcmIGEs
IGNvbnN0IFdlYkxheWVyVHJlZVZpZXcmIGIpCi17Ci0gICAgcmV0dXJuIGEuZXF1YWxzKGIpOwot
fQotCi1pbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFdlYkxheWVyVHJlZVZpZXcmIGEsIGNv
bnN0IFdlYkxheWVyVHJlZVZpZXcmIGIpCi17Ci0gICAgcmV0dXJuICEoYSA9PSBiKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJMYXllclRyZWVWaWV3X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjViOGYxYjQzMjA1MGY3ODBi
NGVlYzI3YzJmZWU1MzBmN2VhYjExYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVW
aWV3Q2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXZWJMYXllclRyZWVWaWV3Q2xpZW50X2gKLSNkZWZpbmUgV2ViTGF5ZXJUcmVlVmlld0NsaWVu
dF9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7Ci1j
bGFzcyBXZWJTaXplOwotY2xhc3MgV2ViVGhyZWFkOwotCi1jbGFzcyBXZWJMYXllclRyZWVWaWV3
Q2xpZW50IHsKLXB1YmxpYzoKLSAgICAvLyBVcGRhdGVzIGFuaW1hdGlvbiBhbmQgbGF5b3V0LiBU
aGlzIGlzIGNhbGxlZCBiZWZvcmUgdGhlIGNvbXBvc2l0aW5nIHBhc3MKLSAgICAvLyBzbyB0aGF0
IGxheWVycyBjYW4gYmUgdXBkYXRlZCBhdCB0aGUgZ2l2ZW4gZnJhbWUgdGltZS4KLSAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLQot
ICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhlIHJvb3QgbGF5ZXIuIFRoaXMgaXMg
dHJpZ2dlcmVkIGJ5IGV2ZW50cwotICAgIC8vIHNlbnQgdG8gdGhlIGNvbXBvc2l0b3IgdGhyZWFk
IHRocm91Z2ggdGhlIFdlYkNvbXBvc2l0b3IgaW50ZXJmYWNlLgotICAgIHZpcnR1YWwgdm9pZCBh
cHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYlNpemUmKSA9IDA7Ci0KLSAgICAvLyBDcmVhdGVzIGEg
M0QgY29udGV4dCBzdWl0YWJsZSBmb3IgdGhlIGNvbXBvc2l0aW5nLiBUaGlzIG1heSBiZSBjYWxs
ZWQKLSAgICAvLyBtb3JlIHRoYW4gb25jZSBpZiB0aGUgY29udGV4dCBnZXRzIGxvc3QuCi0gICAg
dmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlQ29udGV4dDNEKCkgPSAwOwotCi0g
ICAgLy8gU2lnbmFscyBhIHN1Y2Nlc3NmdWwgcmViaW5kaW5nIG9mIHRoZSAzRCBjb250ZXh0IChl
LmcuIGFmdGVyIGEgbG9zdAotICAgIC8vIGNvbnRleHQgZXZlbnQpLgotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWJpbmRHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKSA9IDA7Ci0KLSAgICAvLyBT
Y2hlZHVsZXMgYSBjb21wb3NpdGluZyBwYXNzLCBtZWFuaW5nIHRoZSBjbGllbnQgc2hvdWxkIGNh
bGwKLSAgICAvLyBXZWJMYXllclRyZWVWaWV3Ojpjb21wb3NpdGUgYXQgYSBsYXRlciB0aW1lLiBU
aGlzIGlzIG9ubHkgY2FsbGVkIGlmIHRoZQotICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRp
c2FibGVkOyB3aGVuIGVuYWJsZWQsIHRoZSBjb21wb3NpdG9yIHdpbGwKLSAgICAvLyBpbnRlcm5h
bGx5IHNjaGVkdWxlIGEgY29tcG9zaXRpbmcgcGFzcyB3aGVuIG5lZWRlZC4KLSAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IH5XZWJMYXllclRyZWVWaWV3Q2xpZW50KCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmIC8vIFdlYkxheWVyVHJlZVZpZXdDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRlOGQ5OThhZTk4YzRjMWNkZWQ1NmI3YTQ4NzhjOGYzNDRlMjhhZDguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQ29udGVudExh
eWVyLmgiCi0KLSNpbmNsdWRlICJXZWJDb250ZW50TGF5ZXJJbXBsLmgiCi0jaW5jbHVkZSAiV2Vi
RmxvYXRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb250ZW50TGF5ZXIgV2Vi
Q29udGVudExheWVyOjpjcmVhdGUoV2ViTGF5ZXJDbGllbnQqIGNsaWVudCwgV2ViQ29udGVudExh
eWVyQ2xpZW50KiBjb250ZW50Q2xpZW50KQotewotICAgIHJldHVybiBXZWJDb250ZW50TGF5ZXIo
V2ViQ29udGVudExheWVySW1wbDo6Y3JlYXRlKGNsaWVudCwgY29udGVudENsaWVudCkpOwotfQot
Ci12b2lkIFdlYkNvbnRlbnRMYXllcjo6c2V0RHJhd3NDb250ZW50KGJvb2wgZHJhd3NDb250ZW50
KQotewotICAgIHVud3JhcDxXZWJDb250ZW50TGF5ZXJJbXBsPigpLT5zZXREcmF3c0NvbnRlbnQo
ZHJhd3NDb250ZW50KTsKLX0KLQotYm9vbCBXZWJDb250ZW50TGF5ZXI6OmRyYXdzQ29udGVudCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbnN0VW53cmFwPFdlYkNvbnRlbnRMYXllckltcGw+KCkt
PmRyYXdzQ29udGVudCgpOwotfQotCi12b2lkIFdlYkNvbnRlbnRMYXllcjo6aW52YWxpZGF0ZVJl
Y3QoY29uc3QgV2ViRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCi17Ci0gICAgdW53cmFwPFdlYkNvbnRl
bnRMYXllckltcGw+KCktPnNldE5lZWRzRGlzcGxheShkaXJ0eVJlY3QpOwotfQotCi12b2lkIFdl
YkNvbnRlbnRMYXllcjo6aW52YWxpZGF0ZSgpCi17Ci0gICAgdW53cmFwPFdlYkNvbnRlbnRMYXll
ckltcGw+KCktPnNldE5lZWRzRGlzcGxheSgpOwotfQotCi1XZWJGbG9hdFJlY3QgV2ViQ29udGVu
dExheWVyOjppbnZhbGlkUmVjdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdlYkZsb2F0UmVjdChj
b25zdFVud3JhcDxXZWJDb250ZW50TGF5ZXJJbXBsPigpLT5kaXJ0eVJlY3QoKSk7Ci19Ci0KLVdl
YkNvbnRlbnRMYXllcjo6V2ViQ29udGVudExheWVyKGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29udGVu
dExheWVySW1wbD4mIG5vZGUpCi0gICAgOiBXZWJMYXllcihub2RlKQotewotfQotCi1XZWJDb250
ZW50TGF5ZXImIFdlYkNvbnRlbnRMYXllcjo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8V2Vi
Q29udGVudExheWVySW1wbD4mIG5vZGUpCi17Ci0gICAgbV9wcml2YXRlID0gbm9kZTsKLSAgICBy
ZXR1cm4gKnRoaXM7Ci19Ci0KLVdlYkNvbnRlbnRMYXllcjo6b3BlcmF0b3IgUGFzc1JlZlB0cjxX
ZWJDb250ZW50TGF5ZXJJbXBsPigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdl
YkNvbnRlbnRMYXllckltcGwqPihtX3ByaXZhdGUuZ2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRl
bnRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExh
eWVySW1wbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2NDFlNmNhMDcyOTRi
OTc5NTQ3N2Q0ZTIwMjJlODk5ZWFiMWMyN2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExh
eWVySW1wbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkNvbnRlbnRMYXllckltcGwuaCIKLQotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIldlYkNhbnZhcy5oIgotI2luY2x1ZGUg
IldlYkNvbnRlbnRMYXllckNsaWVudC5oIgotI2luY2x1ZGUgIldlYkxheWVyQ2xpZW50LmgiCi0j
aW5jbHVkZSAiV2ViUmVjdC5oIgotI2lmIFdFQktJVF9VU0lOR19TS0lBCi0jaW5jbHVkZSAiUGxh
dGZvcm1Db250ZXh0U2tpYS5oIgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUGFzc1JlZlB0cjxXZWJDb250ZW50TGF5ZXJJbXBsPiBX
ZWJDb250ZW50TGF5ZXJJbXBsOjpjcmVhdGUoV2ViTGF5ZXJDbGllbnQqIGNsaWVudCwgV2ViQ29u
dGVudExheWVyQ2xpZW50KiBjb250ZW50Q2xpZW50KQotewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQ29udGVudExheWVySW1wbChjbGllbnQsIGNvbnRlbnRDbGllbnQpKTsKLX0KLQotV2Vi
Q29udGVudExheWVySW1wbDo6V2ViQ29udGVudExheWVySW1wbChXZWJMYXllckNsaWVudCogY2xp
ZW50LCBXZWJDb250ZW50TGF5ZXJDbGllbnQqIGNvbnRlbnRDbGllbnQpCi0gICAgOiBDb250ZW50
TGF5ZXJDaHJvbWl1bSh0aGlzKQotICAgICwgbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9jb250
ZW50Q2xpZW50KGNvbnRlbnRDbGllbnQpCi0gICAgLCBtX2RyYXdzQ29udGVudCh0cnVlKQotewot
fQotCi1XZWJDb250ZW50TGF5ZXJJbXBsOjp+V2ViQ29udGVudExheWVySW1wbCgpCi17Ci19Ci0K
LXZvaWQgV2ViQ29udGVudExheWVySW1wbDo6c2V0RHJhd3NDb250ZW50KGJvb2wgZHJhd3NDb250
ZW50KQotewotICAgIG1fZHJhd3NDb250ZW50ID0gZHJhd3NDb250ZW50OwotfQotCi1ib29sIFdl
YkNvbnRlbnRMYXllckltcGw6OmRyYXdzQ29udGVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
ZHJhd3NDb250ZW50OwotfQotCi12b2lkIFdlYkNvbnRlbnRMYXllckltcGw6OnBhaW50Q29udGVu
dHMoR3JhcGhpY3NDb250ZXh0JiBnYywgY29uc3QgSW50UmVjdCYgY2xpcCkKLXsKLSAgICBpZiAo
IW1fY29udGVudENsaWVudCkKLSAgICAgICAgcmV0dXJuOwotI2lmIFdFQktJVF9VU0lOR19TS0lB
Ci0gICAgV2ViQ2FudmFzKiBjYW52YXMgPSBnYy5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7
Ci0jZWxpZiBXRUJLSVRfVVNJTkdfQ0cKLSAgICBXZWJDYW52YXMqIGNhbnZhcyA9IGdjLnBsYXRm
b3JtQ29udGV4dCgpOwotI2VuZGlmCi0gICAgbV9jb250ZW50Q2xpZW50LT5wYWludENvbnRlbnRz
KGNhbnZhcywgV2ViUmVjdChjbGlwKSk7Ci19Ci0KLXZvaWQgV2ViQ29udGVudExheWVySW1wbDo6
bm90aWZ5U3luY1JlcXVpcmVkKCkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT5ub3RpZnlOZWVkc0NvbXBvc2l0ZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllcklt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA4ZGY1ZTNhMjU0ZWQ5NTY5NDU5ODZmZDY1
NDFhODRhOTg4NjVmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJDb250ZW50TGF5
ZXJJbXBsX2gKLSNkZWZpbmUgV2ViQ29udGVudExheWVySW1wbF9oCi0KLSNpbmNsdWRlICJDb250
ZW50TGF5ZXJDaHJvbWl1bS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotY2xhc3MgV2ViTGF5ZXJDbGllbnQ7Ci1jbGFzcyBXZWJDb250ZW50TGF5
ZXJDbGllbnQ7Ci0KLWNsYXNzIFdlYkNvbnRlbnRMYXllckltcGwgOiBwdWJsaWMgV2ViQ29yZTo6
Q29udGVudExheWVyQ2hyb21pdW0sIHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyRGVsZWdhdGUgewot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbnRlbnRMYXllckltcGw+IGNyZWF0
ZShXZWJMYXllckNsaWVudCosIFdlYkNvbnRlbnRMYXllckNsaWVudCogY29udGVudENsaWVudCk7
Ci0KLSAgICB2b2lkIHNldERyYXdzQ29udGVudChib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgZHJh
d3NDb250ZW50KCkgY29uc3Q7Ci0KLXByb3RlY3RlZDoKLSAgICBXZWJDb250ZW50TGF5ZXJJbXBs
KFdlYkxheWVyQ2xpZW50KiwgV2ViQ29udGVudExheWVyQ2xpZW50KiBjb250ZW50Q2xpZW50KTsK
LSAgICB2aXJ0dWFsIH5XZWJDb250ZW50TGF5ZXJJbXBsKCk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY2xpcCk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZCgpOwotCi0g
ICAgV2ViTGF5ZXJDbGllbnQqIG1fY2xpZW50OwotICAgIFdlYkNvbnRlbnRMYXllckNsaWVudCog
bV9jb250ZW50Q2xpZW50OwotICAgIGJvb2wgbV9kcmF3c0NvbnRlbnQ7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYkNvbnRlbnRMYXllckltcGxfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZDY2MmM4MWQ2ZDMzMjc1YjQ3ZDM1NjQwYzhhZGY3ZmRjNThmYmQ1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkxheWVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI1NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkxheWVyLmgiCi0KLSNpbmNsdWRl
ICJMYXllckNocm9taXVtLmgiCi0jaW5jbHVkZSAiU2tNYXRyaXg0NC5oIgotI2luY2x1ZGUgIlRy
YW5zZm9ybWF0aW9uTWF0cml4LmgiCi0jaW5jbHVkZSAiV2ViRmxvYXRQb2ludC5oIgotI2luY2x1
ZGUgIldlYkxheWVySW1wbC5oIgotI2luY2x1ZGUgIldlYlNpemUuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSB7Ci0KLVRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5z
Zm9ybWF0aW9uTWF0cml4RnJvbVNrTWF0cml4NDQoY29uc3QgU2tNYXRyaXg0NCYgbWF0cml4KQot
ewotICAgIGRvdWJsZSBkYXRhWzE2XTsKLSAgICBtYXRyaXguYXNDb2xNYWpvcmQoZGF0YSk7Ci0g
ICAgcmV0dXJuIFRyYW5zZm9ybWF0aW9uTWF0cml4KGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0s
IGRhdGFbM10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbNF0sIGRhdGFb
NV0sIGRhdGFbNl0sIGRhdGFbN10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGFbOF0sIGRhdGFbOV0sIGRhdGFbMTBdLCBkYXRhWzExXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YVsxMl0sIGRhdGFbMTNdLCBkYXRhWzE0XSwgZGF0YVsxNV0pOwotfQot
Ci1Ta01hdHJpeDQ0IHNrTWF0cml4NDRGcm9tVHJhbnNmb3JtYXRpb25NYXRyaXgoY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCkKLXsKLSAgICBTa01hdHJpeDQ0IHNrTWF0cml4Owot
ICAgIHNrTWF0cml4LnNldCgwLCAwLCBTa0RvdWJsZVRvTVNjYWxhcihtYXRyaXgubTExKCkpKTsK
LSAgICBza01hdHJpeC5zZXQoMSwgMCwgU2tEb3VibGVUb01TY2FsYXIobWF0cml4Lm0xMigpKSk7
Ci0gICAgc2tNYXRyaXguc2V0KDIsIDAsIFNrRG91YmxlVG9NU2NhbGFyKG1hdHJpeC5tMTMoKSkp
OwotICAgIHNrTWF0cml4LnNldCgzLCAwLCBTa0RvdWJsZVRvTVNjYWxhcihtYXRyaXgubTE0KCkp
KTsKLSAgICBza01hdHJpeC5zZXQoMCwgMSwgU2tEb3VibGVUb01TY2FsYXIobWF0cml4Lm0yMSgp
KSk7Ci0gICAgc2tNYXRyaXguc2V0KDEsIDEsIFNrRG91YmxlVG9NU2NhbGFyKG1hdHJpeC5tMjIo
KSkpOwotICAgIHNrTWF0cml4LnNldCgyLCAxLCBTa0RvdWJsZVRvTVNjYWxhcihtYXRyaXgubTIz
KCkpKTsKLSAgICBza01hdHJpeC5zZXQoMywgMSwgU2tEb3VibGVUb01TY2FsYXIobWF0cml4Lm0y
NCgpKSk7Ci0gICAgc2tNYXRyaXguc2V0KDAsIDIsIFNrRG91YmxlVG9NU2NhbGFyKG1hdHJpeC5t
MzEoKSkpOwotICAgIHNrTWF0cml4LnNldCgxLCAyLCBTa0RvdWJsZVRvTVNjYWxhcihtYXRyaXgu
bTMyKCkpKTsKLSAgICBza01hdHJpeC5zZXQoMiwgMiwgU2tEb3VibGVUb01TY2FsYXIobWF0cml4
Lm0zMygpKSk7Ci0gICAgc2tNYXRyaXguc2V0KDMsIDIsIFNrRG91YmxlVG9NU2NhbGFyKG1hdHJp
eC5tMzQoKSkpOwotICAgIHNrTWF0cml4LnNldCgwLCAzLCBTa0RvdWJsZVRvTVNjYWxhcihtYXRy
aXgubTQxKCkpKTsKLSAgICBza01hdHJpeC5zZXQoMSwgMywgU2tEb3VibGVUb01TY2FsYXIobWF0
cml4Lm00MigpKSk7Ci0gICAgc2tNYXRyaXguc2V0KDIsIDMsIFNrRG91YmxlVG9NU2NhbGFyKG1h
dHJpeC5tNDMoKSkpOwotICAgIHNrTWF0cml4LnNldCgzLCAzLCBTa0RvdWJsZVRvTVNjYWxhciht
YXRyaXgubTQ0KCkpKTsKLSAgICByZXR1cm4gc2tNYXRyaXg7Ci19Ci0KLX0gLy8gYW5vbnltb3Vz
IG5hbWVzcGFjZQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViTGF5ZXIgV2ViTGF5ZXI6OmNy
ZWF0ZShXZWJMYXllckNsaWVudCogY2xpZW50KQotewotICAgIHJldHVybiBXZWJMYXllcihXZWJM
YXllckltcGw6OmNyZWF0ZShjbGllbnQpKTsKLX0KLQotV2ViTGF5ZXI6On5XZWJMYXllcigpCi17
Ci0gICAgcmVzZXQoKTsKLX0KLQotdm9pZCBXZWJMYXllcjo6cmVzZXQoKQotewotICAgIG1fcHJp
dmF0ZS5yZXNldCgpOwotfQotCi12b2lkIFdlYkxheWVyOjphc3NpZ24oY29uc3QgV2ViTGF5ZXIm
IG90aGVyKQotewotICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKLX0KLQotYm9vbCBX
ZWJMYXllcjo6ZXF1YWxzKGNvbnN0IFdlYkxheWVyJiBuKSBjb25zdAotewotICAgIHJldHVybiAo
bV9wcml2YXRlLmdldCgpID09IG4ubV9wcml2YXRlLmdldCgpKTsKLX0KLQotV2ViTGF5ZXIgV2Vi
TGF5ZXI6OnJvb3RMYXllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdlYkxheWVyKGNvbnN0X2Nh
c3Q8TGF5ZXJDaHJvbWl1bSo+KG1fcHJpdmF0ZS0+cm9vdExheWVyKCkpKTsKLX0KLQotV2ViTGF5
ZXIgV2ViTGF5ZXI6OnBhcmVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdlYkxheWVyKGNvbnN0
X2Nhc3Q8TGF5ZXJDaHJvbWl1bSo+KG1fcHJpdmF0ZS0+cGFyZW50KCkpKTsKLX0KLQotdm9pZCBX
ZWJMYXllcjo6YWRkQ2hpbGQoY29uc3QgV2ViTGF5ZXImIGNoaWxkKQotewotICAgIG1fcHJpdmF0
ZS0+YWRkQ2hpbGQoY2hpbGQpOwotfQotCi12b2lkIFdlYkxheWVyOjppbnNlcnRDaGlsZChjb25z
dCBXZWJMYXllciYgY2hpbGQsIHNpemVfdCBpbmRleCkKLXsKLSAgICBtX3ByaXZhdGUtPmluc2Vy
dENoaWxkKGNoaWxkLCBpbmRleCk7Ci19Ci0KLXZvaWQgV2ViTGF5ZXI6OnJlcGxhY2VDaGlsZChj
b25zdCBXZWJMYXllciYgcmVmZXJlbmNlLCBjb25zdCBXZWJMYXllciYgbmV3TGF5ZXIpCi17Ci0g
ICAgV2ViTGF5ZXIgcmVmID0gcmVmZXJlbmNlOwotICAgIG1fcHJpdmF0ZS0+cmVwbGFjZUNoaWxk
KHJlZi51bndyYXA8TGF5ZXJDaHJvbWl1bT4oKSwgbmV3TGF5ZXIpOwotfQotCi12b2lkIFdlYkxh
eWVyOjpyZW1vdmVGcm9tUGFyZW50KCkKLXsKLSAgICBtX3ByaXZhdGUtPnJlbW92ZUZyb21QYXJl
bnQoKTsKLX0KLQotdm9pZCBXZWJMYXllcjo6cmVtb3ZlQWxsQ2hpbGRyZW4oKQotewotICAgIG1f
cHJpdmF0ZS0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKLX0KLQotdm9pZCBXZWJMYXllcjo6c2V0QW5j
aG9yUG9pbnQoY29uc3QgV2ViRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQpCi17Ci0gICAgbV9wcml2
YXRlLT5zZXRBbmNob3JQb2ludChhbmNob3JQb2ludCk7Ci19Ci0KLVdlYkZsb2F0UG9pbnQgV2Vi
TGF5ZXI6OmFuY2hvclBvaW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gV2ViRmxvYXRQb2ludCht
X3ByaXZhdGUtPmFuY2hvclBvaW50KCkpOwotfQotCi12b2lkIFdlYkxheWVyOjpzZXRBbmNob3JQ
b2ludFooZmxvYXQgYW5jaG9yUG9pbnRaKQotewotICAgIG1fcHJpdmF0ZS0+c2V0QW5jaG9yUG9p
bnRaKGFuY2hvclBvaW50Wik7Ci19Ci0KLWZsb2F0IFdlYkxheWVyOjphbmNob3JQb2ludFooKSBj
b25zdAotewotICAgIHJldHVybiBtX3ByaXZhdGUtPmFuY2hvclBvaW50WigpOwotfQotCi12b2lk
IFdlYkxheWVyOjpzZXRCb3VuZHMoY29uc3QgV2ViU2l6ZSYgc2l6ZSkKLXsKLSAgICBtX3ByaXZh
dGUtPnNldEJvdW5kcyhzaXplKTsKLX0KLQotV2ViU2l6ZSBXZWJMYXllcjo6Ym91bmRzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gV2ViU2l6ZShtX3ByaXZhdGUtPmJvdW5kcygpKTsKLX0KLQotdm9p
ZCBXZWJMYXllcjo6c2V0TWFza3NUb0JvdW5kcyhib29sIG1hc2tzVG9Cb3VuZHMpCi17Ci0gICAg
bV9wcml2YXRlLT5zZXRNYXNrc1RvQm91bmRzKG1hc2tzVG9Cb3VuZHMpOwotfQotCi1ib29sIFdl
YkxheWVyOjptYXNrc1RvQm91bmRzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5t
YXNrc1RvQm91bmRzKCk7Ci19Ci0KLXZvaWQgV2ViTGF5ZXI6OnNldE1hc2tMYXllcihjb25zdCBX
ZWJMYXllciYgbWFza0xheWVyKQotewotICAgIFdlYkxheWVyIHJlZiA9IG1hc2tMYXllcjsKLSAg
ICByZXR1cm4gbV9wcml2YXRlLT5zZXRNYXNrTGF5ZXIocmVmLnVud3JhcDxMYXllckNocm9taXVt
PigpKTsKLX0KLQotV2ViTGF5ZXIgV2ViTGF5ZXI6Om1hc2tMYXllcigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFdlYkxheWVyKG1fcHJpdmF0ZS0+bWFza0xheWVyKCkpOwotfQotCi12b2lkIFdlYkxh
eWVyOjpzZXRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpCi17Ci0gICAgbV9wcml2YXRlLT5zZXRPcGFj
aXR5KG9wYWNpdHkpOwotfQotCi1mbG9hdCBXZWJMYXllcjo6b3BhY2l0eSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+b3BhY2l0eSgpOwotfQotCi12b2lkIFdlYkxheWVyOjpzZXRP
cGFxdWUoYm9vbCBvcGFxdWUpCi17Ci0gICAgbV9wcml2YXRlLT5zZXRPcGFxdWUob3BhcXVlKTsK
LX0KLQotYm9vbCBXZWJMYXllcjo6b3BhcXVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2
YXRlLT5vcGFxdWUoKTsKLX0KLQotdm9pZCBXZWJMYXllcjo6c2V0UG9zaXRpb24oY29uc3QgV2Vi
RmxvYXRQb2ludCYgcG9zaXRpb24pCi17Ci0gICAgbV9wcml2YXRlLT5zZXRQb3NpdGlvbihwb3Np
dGlvbik7Ci19Ci0KLVdlYkZsb2F0UG9pbnQgV2ViTGF5ZXI6OnBvc2l0aW9uKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gV2ViRmxvYXRQb2ludChtX3ByaXZhdGUtPnBvc2l0aW9uKCkpOwotfQotCi12
b2lkIFdlYkxheWVyOjpzZXRTdWJsYXllclRyYW5zZm9ybShjb25zdCBTa01hdHJpeDQ0JiBtYXRy
aXgpCi17Ci0gICAgbV9wcml2YXRlLT5zZXRTdWJsYXllclRyYW5zZm9ybSh0cmFuc2Zvcm1hdGlv
bk1hdHJpeEZyb21Ta01hdHJpeDQ0KG1hdHJpeCkpOwotfQotCi1Ta01hdHJpeDQ0IFdlYkxheWVy
OjpzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHNrTWF0cml4NDRGcm9t
VHJhbnNmb3JtYXRpb25NYXRyaXgobV9wcml2YXRlLT5zdWJsYXllclRyYW5zZm9ybSgpKTsKLX0K
LQotdm9pZCBXZWJMYXllcjo6c2V0VHJhbnNmb3JtKGNvbnN0IFNrTWF0cml4NDQmIG1hdHJpeCkK
LXsKLSAgICBtX3ByaXZhdGUtPnNldFRyYW5zZm9ybSh0cmFuc2Zvcm1hdGlvbk1hdHJpeEZyb21T
a01hdHJpeDQ0KG1hdHJpeCkpOwotfQotCi1Ta01hdHJpeDQ0IFdlYkxheWVyOjp0cmFuc2Zvcm0o
KSBjb25zdAotewotICAgIHJldHVybiBza01hdHJpeDQ0RnJvbVRyYW5zZm9ybWF0aW9uTWF0cml4
KG1fcHJpdmF0ZS0+dHJhbnNmb3JtKCkpOwotfQotCi1XZWJMYXllcjo6V2ViTGF5ZXIoY29uc3Qg
UGFzc1JlZlB0cjxMYXllckNocm9taXVtPiYgbm9kZSkKLSAgICA6IG1fcHJpdmF0ZShub2RlKQot
ewotfQotCi1XZWJMYXllciYgV2ViTGF5ZXI6Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPExh
eWVyQ2hyb21pdW0+JiBub2RlKQotewotICAgIG1fcHJpdmF0ZSA9IG5vZGU7Ci0gICAgcmV0dXJu
ICp0aGlzOwotfQotCi1XZWJMYXllcjo6b3BlcmF0b3IgUGFzc1JlZlB0cjxMYXllckNocm9taXVt
PigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk4MTMyMWVkMjBlZGQ4ODJhYzA3MjEw
NmYyM2MzYTUzZTVlMjhiMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJMYXllckltcGwuaCIKLQotI2luY2x1ZGUgIldlYkxheWVyQ2xpZW50LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUGFzc1Jl
ZlB0cjxXZWJMYXllckltcGw+IFdlYkxheWVySW1wbDo6Y3JlYXRlKFdlYkxheWVyQ2xpZW50KiBj
bGllbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJMYXllckltcGwoY2xpZW50KSk7
Ci19Ci0KLVdlYkxheWVySW1wbDo6V2ViTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQp
IDogTGF5ZXJDaHJvbWl1bSh0aGlzKSwgbV9jbGllbnQoY2xpZW50KQotewotfQotCi1XZWJMYXll
ckltcGw6On5XZWJMYXllckltcGwoKQotewotfQotCi1ib29sIFdlYkxheWVySW1wbDo6ZHJhd3ND
b250ZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgV2ViTGF5ZXJJ
bXBsOjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNsaXAp
Ci17Ci19Ci0KLXZvaWQgV2ViTGF5ZXJJbXBsOjpub3RpZnlTeW5jUmVxdWlyZWQoKQotewotICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPm5vdGlmeU5lZWRzQ29tcG9zaXRlKCk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJMYXllckltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTU4ZDQxYjVjZGUx
YTg0ODcwMmNhZDBmMzc1MTJjODkxMTU1MTExNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllcklt
cGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkxh
eWVySW1wbF9oCi0jZGVmaW5lIFdlYkxheWVySW1wbF9oCi0KLSNpbmNsdWRlICJMYXllckNocm9t
aXVtLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci1jbGFzcyBXZWJMYXllckNsaWVudDsKLQotY2xhc3MgV2ViTGF5ZXJJbXBsIDogcHVibGljIFdl
YkNvcmU6OkxheWVyQ2hyb21pdW0sIHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyRGVsZWdhdGUgewot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkxheWVySW1wbD4gY3JlYXRlKFdlYkxh
eWVyQ2xpZW50Kik7Ci0KLXByb3RlY3RlZDoKLSAgICBXZWJMYXllckltcGwoV2ViTGF5ZXJDbGll
bnQqKTsKLSAgICB2aXJ0dWFsIH5XZWJMYXllckltcGwoKTsKLSAgICB2aXJ0dWFsIGJvb2wgZHJh
d3NDb250ZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcCk7Ci0gICAg
dmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZCgpOwotCi0gICAgV2ViTGF5ZXJDbGllbnQq
IG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJM
YXllckltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5
ZXJUcmVlVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVW
aWV3LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdkYjFhZTBiODk5MjA2YjRi
YmQ2MzcyODMzYWU1YjYwYjYwMGNhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYkxheWVyVHJlZVZpZXcuaCIKLQotI2luY2x1ZGUgIldlYkxh
eWVyVHJlZVZpZXdJbXBsLmgiCi0jaW5jbHVkZSAiV2ViU2l6ZS5oIgotI2luY2x1ZGUgImNjL0ND
TGF5ZXJUcmVlSG9zdC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci1XZWJMYXllclRyZWVWaWV3OjpTZXR0aW5nczo6b3BlcmF0b3IgQ0NTZXR0aW5n
cygpIGNvbnN0Ci17Ci0gICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKLSAgICBzZXR0aW5ncy5hY2Nl
bGVyYXRlUGFpbnRpbmcgPSBhY2NlbGVyYXRlUGFpbnRpbmc7Ci0gICAgc2V0dGluZ3MuY29tcG9z
aXRlT2Zmc2NyZWVuID0gY29tcG9zaXRlT2Zmc2NyZWVuOwotCi0gICAgLy8gRklYTUU6IGNvbXBv
c2l0b3IgdGhyZWFkIGlzbid0IHN1cHBvcnRlZCBjdXJyZW50bHkuCi0gICAgc2V0dGluZ3MuZW5h
YmxlQ29tcG9zaXRvclRocmVhZCA9IGZhbHNlOwotCi0gICAgLy8gRklYTUU6IHNob3dGUFNDb3Vu
dGVyIC8gc2hvd1BsYXRmb3JtTGF5ZXJUcmVlIGFyZW4ndCBzdXBwb3J0ZWQgY3VycmVudGx5Lgot
ICAgIHNldHRpbmdzLnNob3dGUFNDb3VudGVyID0gZmFsc2U7Ci0gICAgc2V0dGluZ3Muc2hvd1Bs
YXRmb3JtTGF5ZXJUcmVlID0gZmFsc2U7Ci0gICAgcmV0dXJuIHNldHRpbmdzOwotfQotCi1XZWJM
YXllclRyZWVWaWV3IFdlYkxheWVyVHJlZVZpZXc6OmNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2xp
ZW50KiBjbGllbnQsIGNvbnN0IFdlYkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3
OjpTZXR0aW5ncyYgc2V0dGluZ3MpCi17Ci0gICAgcmV0dXJuIFdlYkxheWVyVHJlZVZpZXcoV2Vi
TGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZShjbGllbnQsIHJvb3QsIHNldHRpbmdzKSk7Ci19Ci0K
LXZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6cmVzZXQoKQotewotICAgIG1fcHJpdmF0ZS5yZXNldCgp
OwotfQotCi12b2lkIFdlYkxheWVyVHJlZVZpZXc6OmFzc2lnbihjb25zdCBXZWJMYXllclRyZWVW
aWV3JiBvdGhlcikKLXsKLSAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Ci19Ci0KLWJv
b2wgV2ViTGF5ZXJUcmVlVmlldzo6ZXF1YWxzKGNvbnN0IFdlYkxheWVyVHJlZVZpZXcmIG4pIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0KCkgPT0gbi5tX3ByaXZhdGUuZ2V0KCkp
OwotfQotCi12b2lkIFdlYkxheWVyVHJlZVZpZXc6OmNvbXBvc2l0ZSgpCi17Ci0jaWYgIVVTRShU
SFJFQURFRF9DT01QT1NJVElORykKLSAgICBtX3ByaXZhdGUtPmNvbXBvc2l0ZSgpOwotI2VuZGlm
Ci19Ci0KLXZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IFdlYlNp
emUmIHZpZXdwb3J0U2l6ZSkKLXsKLSAgICBtX3ByaXZhdGUtPnNldFZpZXdwb3J0KHZpZXdwb3J0
U2l6ZSk7Ci19Ci0KLVdlYlNpemUgV2ViTGF5ZXJUcmVlVmlldzo6dmlld3BvcnRTaXplKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gV2ViU2l6ZShtX3ByaXZhdGUtPnZpZXdwb3J0U2l6ZSgpKTsKLX0K
LQotV2ViTGF5ZXJUcmVlVmlldzo6V2ViTGF5ZXJUcmVlVmlldyhjb25zdCBQYXNzUmVmUHRyPEND
TGF5ZXJUcmVlSG9zdD4mIG5vZGUpCi0gICAgOiBtX3ByaXZhdGUobm9kZSkKLXsKLX0KLQotV2Vi
TGF5ZXJUcmVlVmlldyYgV2ViTGF5ZXJUcmVlVmlldzo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQ
dHI8Q0NMYXllclRyZWVIb3N0PiYgbm9kZSkKLXsKLSAgICBtX3ByaXZhdGUgPSBub2RlOwotICAg
IHJldHVybiAqdGhpczsKLX0KLQotV2ViTGF5ZXJUcmVlVmlldzo6b3BlcmF0b3IgUGFzc1JlZlB0
cjxDQ0xheWVyVHJlZUhvc3Q+KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLmdldCgp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDE0YjliMGYzNjBhMTNjYWRmNGFmZjc2ZDBhN2ZhYzZmY2E4M2QyYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJMYXll
clRyZWVWaWV3SW1wbC5oIgotCi0jaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgiCi0jaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCi0jaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgot
I2luY2x1ZGUgIldlYkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXIuaCIK
LSNpbmNsdWRlICJXZWJMYXllclRyZWVWaWV3LmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXJUcmVlVmll
d0NsaWVudC5oIgotI2luY2x1ZGUgIldlYlNpemUuaCIKLSNpbmNsdWRlICJXZWJUaHJlYWQuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNz
UmVmUHRyPFdlYkxheWVyVHJlZVZpZXdJbXBsPiBXZWJMYXllclRyZWVWaWV3SW1wbDo6Y3JlYXRl
KFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNv
bnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJiBzZXR0aW5ncykKLXsKLSAgICBSZWZQdHI8
V2ViTGF5ZXJUcmVlVmlld0ltcGw+IGhvc3QgPSBhZG9wdFJlZihuZXcgV2ViTGF5ZXJUcmVlVmll
d0ltcGwoY2xpZW50LCByb290LCBzZXR0aW5ncykpOwotICAgIGlmICghaG9zdC0+aW5pdGlhbGl6
ZSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gaG9zdDsKLX0KLQotV2ViTGF5ZXJU
cmVlVmlld0ltcGw6OldlYkxheWVyVHJlZVZpZXdJbXBsKFdlYkxheWVyVHJlZVZpZXdDbGllbnQq
IGNsaWVudCwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNl
dHRpbmdzJiBzZXR0aW5ncykgCi0gICAgOiBDQ0xheWVyVHJlZUhvc3QodGhpcywgcm9vdCwgc2V0
dGluZ3MpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCi17Ci19Ci0KLVdlYkxheWVyVHJlZVZpZXdJ
bXBsOjp+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKQotewotfQotCi12b2lkIFdlYkxheWVyVHJlZVZp
ZXdJbXBsOjphbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKLXsKLSAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5hbmltYXRlQW5kTGF5b3V0KGZyYW1lQmVn
aW5UaW1lKTsKLX0KLQotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0
YShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbERlbHRhKFdlYlNpemUoZGVsdGEpKTsKLX0KLQot
UGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQotewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAg
IHJldHVybiAwOwotICAgIE93blB0cjxXZWJHcmFwaGljc0NvbnRleHQzRD4gd2ViQ29udGV4dCA9
IGFkb3B0UHRyKG1fY2xpZW50LT5jcmVhdGVDb250ZXh0M0QoKSk7Ci0gICAgaWYgKCF3ZWJDb250
ZXh0KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzIHdlYkF0dHJpYnV0ZXMgPSB3ZWJDb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRlcygp
OwotICAgIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7Ci0gICAgYXR0
cmlidXRlcy5hbHBoYSA9IHdlYkF0dHJpYnV0ZXMuYWxwaGE7Ci0gICAgYXR0cmlidXRlcy5kZXB0
aCA9IHdlYkF0dHJpYnV0ZXMuZGVwdGg7Ci0gICAgYXR0cmlidXRlcy5zdGVuY2lsID0gd2ViQXR0
cmlidXRlcy5zdGVuY2lsOwotICAgIGF0dHJpYnV0ZXMuYW50aWFsaWFzID0gd2ViQXR0cmlidXRl
cy5hbnRpYWxpYXM7Ci0gICAgYXR0cmlidXRlcy5wcmVtdWx0aXBsaWVkQWxwaGEgPSB3ZWJBdHRy
aWJ1dGVzLnByZW11bHRpcGxpZWRBbHBoYTsKLSAgICBhdHRyaWJ1dGVzLmNhblJlY292ZXJGcm9t
Q29udGV4dExvc3MgPSB3ZWJBdHRyaWJ1dGVzLmNhblJlY292ZXJGcm9tQ29udGV4dExvc3M7Ci0g
ICAgYXR0cmlidXRlcy5ub0V4dGVuc2lvbnMgPSB3ZWJBdHRyaWJ1dGVzLm5vRXh0ZW5zaW9uczsK
LSAgICBhdHRyaWJ1dGVzLnNoYXJlUmVzb3VyY2VzID0gd2ViQXR0cmlidXRlcy5zaGFyZVJlc291
cmNlczsKLSAgICBhdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlciA9IGZhbHNlOwotCi0g
ICAgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHN0eWxlID0gR3JhcGhpY3NDb250ZXh0
M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OwotICAgIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6VGhyZWFkVXNhZ2UgdXNhZ2UgPSBzZXR0aW5ncygpLmVuYWJsZUNvbXBvc2l0b3JUaHJl
YWQgPyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkZvclVzZU9uQW5vdGhlclRocmVhZCA6IEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Rm9yVXNlT25UaGlzVGhyZWFkOwotICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250
ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBhdHRyaWJ1dGVzLCAwLCBzdHlsZSwgdXNhZ2UpOwot
fQotCi12b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4
dChib29sIHN1Y2Nlc3MpCi17Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+
ZGlkUmViaW5kR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOwotfQotCi0jaWYgIVVTRShUSFJFQURF
RF9DT01QT1NJVElORykKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNjaGVkdWxlQ29tcG9z
aXRlKCkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZUNv
bXBvc2l0ZSgpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ZjJhOWU4YjQzM2ZhMGM2NjljNTQ2NWQwYWUzZDAxMmQy
NDRiMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkxheWVyVHJlZVZpZXdJbXBs
X2gKLSNkZWZpbmUgV2ViTGF5ZXJUcmVlVmlld0ltcGxfaAotCi0jaW5jbHVkZSAiV2ViTGF5ZXJU
cmVlVmlldy5oIgotI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViTGF5ZXI7Ci1j
bGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50OwotCi1jbGFzcyBXZWJMYXllclRyZWVWaWV3SW1w
bCA6IHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3QsIHB1YmxpYyBXZWJDb3JlOjpDQ0xh
eWVyVHJlZUhvc3RDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkxh
eWVyVHJlZVZpZXdJbXBsPiBjcmVhdGUoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCosIGNvbnN0IFdl
YkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYpOwotCi1wcml2
YXRlOgotICAgIFdlYkxheWVyVHJlZVZpZXdJbXBsKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqLCBj
b25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmKTsK
LSAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3SW1wbCgpOwotICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lk
IGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9z
dENvbnRleHQzRCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4
dChib29sIHN1Y2Nlc3MpOwotI2lmICFVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCi0gICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0jZW5kaWYKLQotICAgIFdlYkxheWVyVHJl
ZVZpZXdDbGllbnQqIG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBXZWJMYXllclRyZWVWaWV3SW1wbF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>