<?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>61401</bug_id>
          
          <creation_ts>2011-05-24 15:26:25 -0700</creation_ts>
          <short_desc>[chromium] Rename ScrollbarOverlayUtilitiesMac to ScrollbarOverlayUtilitiesChromiumMac</short_desc>
          <delta_ts>2011-05-25 18:30:42 -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>59756</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Sailesh Agrawal">sail</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>409264</commentid>
    <comment_count>0</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-05-24 15:26:25 -0700</bug_when>
    <thetext>Rename ScrollbarOverlayUtilitiesMac to ScrollbarOverlayUtilitiesChromiumMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409265</commentid>
    <comment_count>1</comment_count>
      <attachid>94703</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-05-24 15:32:54 -0700</bug_when>
    <thetext>Created attachment 94703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409267</commentid>
    <comment_count>2</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-05-24 15:41:28 -0700</bug_when>
    <thetext>This bug is blocking bug 59756. Currently the overlay utilities are not being compiled in. The patch in bug 59756  depends on these utilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409272</commentid>
    <comment_count>3</comment_count>
      <attachid>94706</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-05-24 15:43:59 -0700</bug_when>
    <thetext>Created attachment 94706
Using git diff

webkit-patch seems to have trouble with moved files. Trying git-diff instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409696</commentid>
    <comment_count>4</comment_count>
      <attachid>94795</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-05-25 09:47:03 -0700</bug_when>
    <thetext>Created attachment 94795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410108</commentid>
    <comment_count>5</comment_count>
      <attachid>94795</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-25 18:30:38 -0700</bug_when>
    <thetext>Comment on attachment 94795
Patch

Clearing flags on attachment: 94795

Committed r87347: &lt;http://trac.webkit.org/changeset/87347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410109</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-25 18:30:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94703</attachid>
            <date>2011-05-24 15:32:54 -0700</date>
            <delta_ts>2011-05-24 15:43:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61401-20110524153253.patch</filename>
            <type>text/plain</type>
            <size>4006</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcxNDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OTRlZTc0NzY5N2E1MTRk
YzU2N2M2ODU1NTZlMDExNmQyY2YyOTMzLi4zMmY4NjQzODk3MzZlMzZlZGExMjJjMTgzNzFlODFh
MDU0N2RiZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDUtMjQgIFNhaWxl
c2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVz
TWFjIHRvIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0MDEKKworICAgICAgICBTY3Jv
bGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjLm1tIHdhcyBiZWluZyBleGNsdWRlZCBmcm9tIHRoZSBX
ZWJDb3JlIHByb2plY3QuIEZpeCB3YXMgdG8gbWFrZSBzdXJlIHRoZSBmaWxlIG5hbWUgZW5kZWQg
d2l0aCBDaHJvbWl1bU1hYy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxBbmltYXRvckNocm9taXVtTWFjLmg6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLm1t
OgorICAgICAgICAobG9va1VwTlNTY3JvbGxlckltcENsYXNzKToKKyAgICAgICAgKGxvb2tVcE5T
U2Nyb2xsZXJJbXBQYWlyQ2xhc3MpOgorICAgICAgICAoc2Nyb2xsYmFyQ29udHJvbFNpemVUb05T
Q29udHJvbFNpemUpOgorICAgICAgICAocHJlZmVycmVkU2Nyb2xsZXJTdHlsZSk6CisgICAgICAg
ICh3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyk6CisgICAgICAgICh3a1Nj
cm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwpOgorICAgICAgICAod2tTY3JvbGxiYXJQYWludGVy
S25vYkFscGhhKToKKyAgICAgICAgKHdrU2Nyb2xsYmFyUGFpbnRlclNldE92ZXJsYXlTdGF0ZSk6
CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJQYWludCk6CisgICAgICAgICh3a1Njcm9sbGJh
ck1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJTZXREZWxl
Z2F0ZSk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKToKKyAgICAgICAg
KHdrTWFrZVNjcm9sbGJhclBhaW50ZXIpOgorICAgICAgICAod2tTY3JvbGxiYXJUaGlja25lc3Mp
OgorICAgICAgICAod2tTY3JvbGxiYXJNaW5pbXVtVG90YWxMZW5ndGhOZWVkZWRGb3JUaHVtYik6
CisgICAgICAgICh3a1ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOgorICAg
ICAgICAod2tIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIpOgorICAgICAg
ICAod2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKToKKyAgICAgICAgKHdrU2V0UGFp
bnRlckZvclBhaW50ZXJDb250cm9sbGVyKToKKyAgICAgICAgKHdrU2V0U2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJTdHlsZSk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJLbm9iUmVjdCk6
CisgICAgICAgICh3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEpOgorICAgICAgICAod2tT
ZXRTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYSk6CisgICAgICAgICh3a1NldFNjcm9sbGJhclBh
aW50ZXJLbm9iU3R5bGUpOgorICAgICAgICAod2tNYWtlU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXIpOgorICAgICAgICAod2tDb250ZW50QXJlYVNjcm9sbGVkKToKKyAgICAgICAgKHdrQ29udGVu
dEFyZWFXaWxsUGFpbnQpOgorICAgICAgICAod2tNb3VzZUVudGVyZWRDb250ZW50QXJlYSk6Cisg
ICAgICAgICh3a01vdXNlRXhpdGVkQ29udGVudEFyZWEpOgorICAgICAgICAod2tNb3VzZU1vdmVk
SW5Db250ZW50QXJlYSk6CisgICAgICAgICh3a1dpbGxTdGFydExpdmVSZXNpemUpOgorICAgICAg
ICAod2tDb250ZW50QXJlYVJlc2l6ZWQpOgorICAgICAgICAod2tXaWxsRW5kTGl2ZVJlc2l6ZSk6
CisgICAgICAgICh3a0NvbnRlbnRBcmVhRGlkU2hvdyk6CisgICAgICAgICh3a0NvbnRlbnRBcmVh
RGlkSGlkZSk6CisgICAgICAgICh3a0RpZEJlZ2luU2Nyb2xsR2VzdHVyZSk6CisgICAgICAgICh3
a0RpZEVuZFNjcm9sbEdlc3R1cmUpOgorICAgICAgICAod2tTY3JvbGxiYXJQYWludGVyRm9yY2VG
bGFzaFNjcm9sbGVycyk6CisgICAgICAgIChpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUp
OgorCiAyMDExLTA1LTIzICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggZTA5MWYzMDQwOGI0M2M3N2RjMWRmMzE4ZmY0ODQwMThjNGIyZjU5OC4uMzBiMmNjZjlj
N2ZiOGI1OGQ0ZGJjNjQ2N2MyMGM3MjQ4MTdkZjBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzgw
Niw4ICszODA2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TU0xLZXlHZW5l
cmF0b3JDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9s
bEFuaW1hdG9yQ2hyb21pdW1NYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
U2Nyb2xsQW5pbWF0b3JDaHJvbWl1bU1hYy5tbScsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5oJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjLm1tJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1N
YWMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0
aWxpdGllc0Nocm9taXVtTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9T
Y3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJv
bWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbEFuaW1hdG9yQ2hyb21pdW1NYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbEFuaW1hdG9yQ2hyb21pdW1N
YWMuaAppbmRleCA5NDlmNDZkMjkwMWVkOGEyMjYyZTU5N2JmZWJkYWQ4N2MwZTAwNmYyLi4zZDBk
NWExMmM4MzY1ZWFkMjJkYmE2NGJkYTViYjI1ZTY5NWI2NDgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxBbmltYXRvckNocm9taXVtTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsQW5pbWF0b3JDaHJvbWl1
bU1hYy5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCi0jaW5jbHVkZSAiU2Ny
b2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5oIgorI2luY2x1ZGUgIlNjcm9sbGJhck92ZXJsYXlV
dGlsaXRpZXNDaHJvbWl1bU1hYy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94706</attachid>
            <date>2011-05-24 15:43:59 -0700</date>
            <delta_ts>2011-05-25 09:46:58 -0700</delta_ts>
            <desc>Using git diff</desc>
            <filename>git_diff.diff</filename>
            <type>text/plain</type>
            <size>37503</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OTRlZTc0Li4zMmY4NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUg
QEAKKzIwMTEtMDUtMjQgIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBTY3Jv
bGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjIHRvIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJv
bWl1bU1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjE0MDEKKworICAgICAgICBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjLm1tIHdhcyBiZWlu
ZyBleGNsdWRlZCBmcm9tIHRoZSBXZWJDb3JlIHByb2plY3QuIEZpeCB3YXMgdG8gbWFrZSBzdXJl
IHRoZSBmaWxlIG5hbWUgZW5kZWQgd2l0aCBDaHJvbWl1bU1hYy4KKworICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxBbmltYXRvckNocm9t
aXVtTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0
aWxpdGllc0Nocm9taXVtTWFjLm1tOgorICAgICAgICAobG9va1VwTlNTY3JvbGxlckltcENsYXNz
KToKKyAgICAgICAgKGxvb2tVcE5TU2Nyb2xsZXJJbXBQYWlyQ2xhc3MpOgorICAgICAgICAoc2Ny
b2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUpOgorICAgICAgICAocHJlZmVycmVkU2Ny
b2xsZXJTdHlsZSk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9s
bGVycyk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwpOgorICAgICAg
ICAod2tTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKToKKyAgICAgICAgKHdrU2Nyb2xsYmFyUGFp
bnRlclNldE92ZXJsYXlTdGF0ZSk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJQYWludCk6
CisgICAgICAgICh3a1Njcm9sbGJhck1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgICh3a1Nj
cm9sbGJhclBhaW50ZXJTZXREZWxlZ2F0ZSk6CisgICAgICAgICh3a1Njcm9sbGJhclBhaW50ZXJU
cmFja0FscGhhKToKKyAgICAgICAgKHdrTWFrZVNjcm9sbGJhclBhaW50ZXIpOgorICAgICAgICAo
d2tTY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAod2tTY3JvbGxiYXJNaW5pbXVtVG90YWxM
ZW5ndGhOZWVkZWRGb3JUaHVtYik6CisgICAgICAgICh3a1ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRl
ckZvckNvbnRyb2xsZXIpOgorICAgICAgICAod2tIb3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckZv
ckNvbnRyb2xsZXIpOgorICAgICAgICAod2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVy
KToKKyAgICAgICAgKHdrU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKToKKyAgICAgICAg
KHdrU2V0U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJTdHlsZSk6CisgICAgICAgICh3a1Njcm9s
bGJhclBhaW50ZXJLbm9iUmVjdCk6CisgICAgICAgICh3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9i
QWxwaGEpOgorICAgICAgICAod2tTZXRTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYSk6CisgICAg
ICAgICh3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iU3R5bGUpOgorICAgICAgICAod2tNYWtlU2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIpOgorICAgICAgICAod2tDb250ZW50QXJlYVNjcm9sbGVk
KToKKyAgICAgICAgKHdrQ29udGVudEFyZWFXaWxsUGFpbnQpOgorICAgICAgICAod2tNb3VzZUVu
dGVyZWRDb250ZW50QXJlYSk6CisgICAgICAgICh3a01vdXNlRXhpdGVkQ29udGVudEFyZWEpOgor
ICAgICAgICAod2tNb3VzZU1vdmVkSW5Db250ZW50QXJlYSk6CisgICAgICAgICh3a1dpbGxTdGFy
dExpdmVSZXNpemUpOgorICAgICAgICAod2tDb250ZW50QXJlYVJlc2l6ZWQpOgorICAgICAgICAo
d2tXaWxsRW5kTGl2ZVJlc2l6ZSk6CisgICAgICAgICh3a0NvbnRlbnRBcmVhRGlkU2hvdyk6Cisg
ICAgICAgICh3a0NvbnRlbnRBcmVhRGlkSGlkZSk6CisgICAgICAgICh3a0RpZEJlZ2luU2Nyb2xs
R2VzdHVyZSk6CisgICAgICAgICh3a0RpZEVuZFNjcm9sbEdlc3R1cmUpOgorICAgICAgICAod2tT
Y3JvbGxiYXJQYWludGVyRm9yY2VGbGFzaFNjcm9sbGVycyk6CisgICAgICAgIChpc1Njcm9sbGJh
ck92ZXJsYXlBUElBdmFpbGFibGUpOgorCiAyMDExLTA1LTIzICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWto
YXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTA5MWYzMC4uMzBiMmNjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMzgwNiw4ICszODA2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9TU0xLZXlHZW5lcmF0b3JDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1Njcm9sbEFuaW1hdG9yQ2hyb21pdW1NYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsQW5pbWF0b3JDaHJvbWl1bU1hYy5tbScsCi0gICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5oJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjLm1t
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0
aWVzQ2hyb21pdW1NYWMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xs
YmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbEFuaW1hdG9yQ2hy
b21pdW1NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbEFuaW1h
dG9yQ2hyb21pdW1NYWMuaAppbmRleCA5NDlmNDZkLi4zZDBkNWExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxBbmltYXRvckNocm9taXVtTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsQW5pbWF0b3JDaHJv
bWl1bU1hYy5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCi0jaW5jbHVkZSAi
U2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5oIgorI2luY2x1ZGUgIlNjcm9sbGJhck92ZXJs
YXlVdGlsaXRpZXNDaHJvbWl1bU1hYy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1
bU1hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1N2UyZjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJP
dmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMuaApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU2Nyb2xs
YmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjX2gKKyNkZWZpbmUgU2Nyb2xsYmFyT3Zlcmxh
eVV0aWxpdGllc0Nocm9taXVtTWFjX2gKKworI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikK
KworLy8gUHVibGljIEFQSXMgbm90IGF2YWlsYWJsZSBvbiB2ZXJzaW9ucyBvZiBNYWMgb24gd2hp
Y2ggd2UgYnVpbGQKKyNpZiAoZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkpCitlbnVtIHsKKyAgICBOU1Njcm9sbGVyU3R5bGVM
ZWdhY3kgICAgICAgPSAwLAorICAgIE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkgICAgICA9IDEKK307
Cit0eXBlZGVmIE5TSW50ZWdlciBOU1Njcm9sbGVyU3R5bGU7CisjZW5kaWYKKworI2lmZGVmIF9f
T0JKQ19fCitAY2xhc3MgTlNTY3JvbGxlckltcDsKK0BjbGFzcyBOU1Njcm9sbGVySW1wUGFpcjsK
KyNlbHNlCitjbGFzcyBOU1Njcm9sbGVySW1wOworY2xhc3MgTlNTY3JvbGxlckltcFBhaXI7Cisj
ZW5kaWYKKwordHlwZWRlZiBOU1Njcm9sbGVySW1wKiBXS1Njcm9sbGJhclBhaW50ZXJSZWY7Cit0
eXBlZGVmIE5TU2Nyb2xsZXJJbXBQYWlyKiBXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVm
OworCitib29sIGlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpOworCisvLyBTY3JvbGxi
YXIgUGFpbnRlcgorYm9vbCB3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyh2
b2lkKTsKK2Jvb2wgd2tTY3JvbGxiYXJQYWludGVySXNIb3Jpem9udGFsKFdLU2Nyb2xsYmFyUGFp
bnRlclJlZik7CitDR0Zsb2F0IHdrU2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShXS1Njcm9sbGJh
clBhaW50ZXJSZWYpOwordm9pZCB3a1Njcm9sbGJhclBhaW50ZXJTZXRPdmVybGF5U3RhdGUoV0tT
Y3JvbGxiYXJQYWludGVyUmVmLCBpbnQgb3ZlcmxheVNjcm9sbGVyU3RhdGUpOwordm9pZCB3a1Nj
cm9sbGJhclBhaW50ZXJQYWludChXS1Njcm9sbGJhclBhaW50ZXJSZWYsIGJvb2wgZW5hYmxlZCwg
ZG91YmxlIHZhbHVlLCBDR0Zsb2F0IHByb3BvcnRpb24sIE5TUmVjdCBmcmFtZVJlY3QpOworaW50
IHdrU2Nyb2xsYmFyTWluaW11bVRodW1iTGVuZ3RoKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Cit2
b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwg
aWQgc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlKTsKK0NHRmxvYXQgd2tTY3JvbGxiYXJQYWludGVy
VHJhY2tBbHBoYShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOworV0tTY3JvbGxiYXJQYWludGVyUmVm
IHdrTWFrZVNjcm9sbGJhclBhaW50ZXIoaW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRh
bCk7CitpbnQgd2tTY3JvbGxiYXJUaGlja25lc3MoaW50IGNvbnRyb2xTaXplKTsKK2ludCB3a1Nj
cm9sbGJhck1pbmltdW1Ub3RhbExlbmd0aE5lZWRlZEZvclRodW1iKFdLU2Nyb2xsYmFyUGFpbnRl
clJlZik7CitDR1JlY3Qgd2tTY3JvbGxiYXJQYWludGVyS25vYlJlY3QoV0tTY3JvbGxiYXJQYWlu
dGVyUmVmKTsKK1dLU2Nyb2xsYmFyUGFpbnRlclJlZiB3a01ha2VTY3JvbGxiYXJSZXBsYWNlbWVu
dFBhaW50ZXIoV0tTY3JvbGxiYXJQYWludGVyUmVmIG9sZFBhaW50ZXIsIGludCBuZXdTdHlsZSwg
aW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCk7Cit2b2lkIHdrU2V0U2Nyb2xsYmFy
UGFpbnRlcktub2JBbHBoYShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIENHRmxvYXQpOwordm9pZCB3
a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dG
bG9hdCk7CisKK2VudW0geworICAgIHdrU2Nyb2xsZXJLbm9iU3R5bGVEZWZhdWx0ID0gMCwKKyAg
ICB3a1Njcm9sbGVyS25vYlN0eWxlRGFyayA9IDEsCisgICAgd2tTY3JvbGxlcktub2JTdHlsZUxp
Z2h0ID0gMgorfTsKK3R5cGVkZWYgdWludDMyIHdrU2Nyb2xsZXJLbm9iU3R5bGU7CitleHRlcm4g
dm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iU3R5bGUoV0tTY3JvbGxiYXJQYWludGVyUmVm
LCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKKworLy8gU2Nyb2xsYmFyIFBhaW50ZXIgQ29udHJvbGxl
cgorV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiB3a01ha2VTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlcihpZCBwYWludGVyQ29udHJvbGxlckRlbGVnYXRlKTsKK3ZvaWQgd2tDb250ZW50
QXJlYVNjcm9sbGVkKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwordm9pZCB3a0Nv
bnRlbnRBcmVhV2lsbFBhaW50KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwordm9p
ZCB3a01vdXNlRW50ZXJlZENvbnRlbnRBcmVhKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJS
ZWYpOwordm9pZCB3a01vdXNlRXhpdGVkQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlclJlZik7Cit2b2lkIHdrTW91c2VNb3ZlZEluQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlclJlZik7Cit2b2lkIHdrV2lsbFN0YXJ0TGl2ZVJlc2l6ZShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKK3ZvaWQgd2tDb250ZW50QXJlYVJlc2l6ZWQoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Cit2b2lkIHdrV2lsbEVuZExpdmVSZXNpemUo
V0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Cit2b2lkIHdrQ29udGVudEFyZWFEaWRT
aG93KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwordm9pZCB3a0NvbnRlbnRBcmVh
RGlkSGlkZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKK3ZvaWQgd2tEaWRCZWdp
blNjcm9sbEdlc3R1cmUoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Cit2b2lkIHdr
RGlkRW5kU2Nyb2xsR2VzdHVyZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKK3Zv
aWQgd2tTY3JvbGxiYXJQYWludGVyRm9yY2VGbGFzaFNjcm9sbGVycyhXS1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyUmVmKTsKK3ZvaWQgd2tTZXRTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0
eWxlKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYsIGludCBuZXdTdHlsZSk7Cit2b2lk
IHdrU2V0UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYsIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgYm9vbCBpc0hvcml6b250YWwpOworV0tT
Y3JvbGxiYXJQYWludGVyUmVmIHdrVmVydGljYWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxl
cihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKK1dLU2Nyb2xsYmFyUGFpbnRlclJl
ZiB3a0hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxlcihXS1Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyUmVmKTsKKworI2VuZGlmIC8vIFVTRShXS19TQ1JPTExCQVJfUEFJTlRF
UikKKworI2VuZGlmIC8vIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hY19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVy
bGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhmYzMxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJv
bWl1bU1hYy5tbQpAQCAtMCwwICsxLDM0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShX
S19TQ1JPTExCQVJfUEFJTlRFUikKKworI2luY2x1ZGUgIlNjcm9sbGJhck92ZXJsYXlVdGlsaXRp
ZXNDaHJvbWl1bU1hYy5oIgorI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCisjaW5jbHVkZSA8Q29j
b2EvQ29jb2EuaD4KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFRoaXMgZmlsZSBjb250
YWlucyB1dGlsaXRpZXMgdG8gZHJhdyBvdmVybGF5IHNjcm9sbGJhcnMuIFRoZXJlIGFyZSBubyBw
dWJsaWMKKy8vIEFQSXMgeWV0IG9uIHRoZSBNYWMgdG8gZHJhdyBvdmVybGF5IHNjcm9sbGJhcnMg
c28gd2UgdXNlIHByaXZhdGUgQVBJcyB0aGF0CisvLyB3ZSBsb29rIHVwIGF0IHJ1bnRpbWUuIElm
IHRoZSBwcml2YXRlIEFQSXMgZG9uJ3QgZXhpc3QgdGhlbiB0aGUgd2tNYWtlKgorLy8gZnVuY3Rp
b25zIHdpbGwgcmV0dXJuIG5pbC4KKy8vCisvLyBOb3RlLCB0aGlzIGZpbGUgY29udGFpbnMgZnVu
Y3Rpb25zIGNvcGllZCBmcm9tIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaC4KKy8vIFVzaW5nIHRo
ZSBzYW1lIG5hbWVzIG1ha2VzIHRoZSBjb2RlIGVhc2llciB0byBtYWludGFpbi4KKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy8vIFB1YmxpYyBBUElzIG5vdCBhdmFpbGFibGUgb24gdmVyc2lv
bnMgb2YgTWFjIG9uIHdoaWNoIHdlIGJ1aWxkCisjaWYgKGRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpKQorQGludGVyZmFjZSBO
U1Njcm9sbGVyIChOU09iamVjdCkKKysgKE5TU2Nyb2xsZXJTdHlsZSlwcmVmZXJyZWRTY3JvbGxl
clN0eWxlOworQGVuZAorI2VuZGlmCisKKy8vIFRoZXNlIGFyZSBwcml2YXRlIEFQSXMgdG8gZHJh
dyBvdmVybGF5IHNjcm9sbGJhcnMuCitAaW50ZXJmYWNlIE5TU2Nyb2xsZXJJbXAgOiBOU09iamVj
dAorCisrIChpZClzY3JvbGxlckltcFdpdGhTdHlsZTooTlNTY3JvbGxlclN0eWxlKXN0eWxlCisg
ICAgICAgICAgICAgICBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlzaXplCisgICAgICAgICAg
ICAgICAgaG9yaXpvbnRhbDooQk9PTClob3Jpem9udGFsCisgICAgICByZXBsYWNpbmdTY3JvbGxl
ckltcDooaWQpc2Nyb2xsZXI7CisKK0Bwcm9wZXJ0eSBDR0Zsb2F0IGtub2JBbHBoYTsKK0Bwcm9w
ZXJ0eSBDR0Zsb2F0IHRyYWNrQWxwaGE7CitAcHJvcGVydHkgQ0dGbG9hdCBrbm9iUHJvcG9ydGlv
bjsKK0Bwcm9wZXJ0eShnZXR0ZXI9aXNFbmFibGVkKSBCT09MIGVuYWJsZWQ7CitAcHJvcGVydHko
Z2V0dGVyPWlzSG9yaXpvbnRhbCkgQk9PTCBob3Jpem9udGFsOworQHByb3BlcnR5IGRvdWJsZSBk
b3VibGVWYWx1ZTsKK0Bwcm9wZXJ0eShhc3NpZ24pIGlkIGRlbGVnYXRlOworCistIChDR0Zsb2F0
KWtub2JNaW5MZW5ndGg7CistIChDR0Zsb2F0KXRyYWNrQm94V2lkdGg7CistIChDR0Zsb2F0KXRy
YWNrV2lkdGg7CistICh2b2lkKXNldEJvdW5kc1NpemU6KE5TU2l6ZSlzaXplOworLSAodm9pZClk
cmF3S25vYlNsb3RJblJlY3Q6KE5TUmVjdClyZWN0CisgICAgICAgICAgICAgICAgIGhpZ2hsaWdo
dDooQk9PTClmbGFnOworLSAodm9pZClkcmF3S25vYjsKKy0gKHZvaWQpc2V0T3ZlcmxheVNjcm9s
bGVyU3RhdGU6KE5TU2Nyb2xsZXJTdHlsZSlzdGF0ZQorICAgICAgICAgICAgICAgZm9yY2VJbW1l
ZGlhdGVseTooQk9PTClmbGFnOworLSAodm9pZClzZXREZWxlZ2F0ZTooaWQpZGVsZWdhdGU7CisK
K0BlbmQKKworLy8gVGhlc2UgYXJlIHByaXZhdGUgQVBJcyB0byBtYW5hZ2Ugb3ZlcmxheSBzY3Jv
bGxiYXJzLgorQGludGVyZmFjZSBOU1Njcm9sbGVySW1wUGFpciA6IE5TT2JqZWN0CisKK0Bwcm9w
ZXJ0eSBOU1Njcm9sbGVyU3R5bGUgc2Nyb2xsZXJTdHlsZTsKK0Bwcm9wZXJ0eShyZXRhaW4pIE5T
U2Nyb2xsZXJJbXAgKmhvcml6b250YWxTY3JvbGxlckltcDsKK0Bwcm9wZXJ0eShyZXRhaW4pIE5T
U2Nyb2xsZXJJbXAgKnZlcnRpY2FsU2Nyb2xsZXJJbXA7CitAcHJvcGVydHkoYXNzaWduKSBpZCBk
ZWxlZ2F0ZTsKKworLSAodm9pZClmbGFzaFNjcm9sbGVyczsKKy0gKHZvaWQpY29udGVudEFyZWFT
Y3JvbGxlZDsKKy0gKHZvaWQpY29udGVudEFyZWFXaWxsRHJhdzsKKy0gKHZvaWQpY29udGVudEFy
ZWFEaWRIaWRlOworLSAodm9pZCl3aW5kb3dPcmRlcmVkT3V0OworLSAodm9pZCl3aW5kb3dPcmRl
cmVkSW47CistICh2b2lkKW1vdXNlRW50ZXJlZENvbnRlbnRBcmVhOworLSAodm9pZCltb3VzZU1v
dmVkSW5Db250ZW50QXJlYTsKKy0gKHZvaWQpbW91c2VFeGl0ZWRDb250ZW50QXJlYTsKKy0gKHZv
aWQpc3RhcnRMaXZlUmVzaXplOworLSAodm9pZCljb250ZW50QXJlYURpZFJlc2l6ZTsKKy0gKHZv
aWQpZW5kTGl2ZVJlc2l6ZTsKKy0gKHZvaWQpYmVnaW5TY3JvbGxHZXN0dXJlOworLSAodm9pZCll
bmRTY3JvbGxHZXN0dXJlOworCitAZW5kCisKK3N0YXRpYyBDbGFzcyBsb29rVXBOU1Njcm9sbGVy
SW1wQ2xhc3MoKQoreworICAgIHN0YXRpYyBDbGFzcyByZXN1bHQgPSBOU0NsYXNzRnJvbVN0cmlu
ZyhAIk5TU2Nyb2xsZXJJbXAiKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgQ2xh
c3MgbG9va1VwTlNTY3JvbGxlckltcFBhaXJDbGFzcygpCit7CisgICAgc3RhdGljIENsYXNzIHJl
c3VsdCA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcFBhaXIiKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitzdGF0aWMgTlNDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6
ZVRvTlNDb250cm9sU2l6ZShpbnQgY29udHJvbFNpemUpCit7CisgICAgcmV0dXJuIGNvbnRyb2xT
aXplID09IFdlYkNvcmU6OlJlZ3VsYXJTY3JvbGxiYXIgPyBOU1JlZ3VsYXJDb250cm9sU2l6ZSA6
IE5TU21hbGxDb250cm9sU2l6ZTsKK30KKworc3RhdGljIE5TU2Nyb2xsZXJTdHlsZSBwcmVmZXJy
ZWRTY3JvbGxlclN0eWxlKCkKK3sKKyAgICBpZiAoW05TU2Nyb2xsZXIgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihwcmVmZXJyZWRTY3JvbGxlclN0eWxlKV0pCisgICAgICAgIHJldHVybiBb
TlNTY3JvbGxlciBwcmVmZXJyZWRTY3JvbGxlclN0eWxlXTsKKyAgICByZXR1cm4gTlNTY3JvbGxl
clN0eWxlTGVnYWN5OworfQorCitib29sIHdrU2Nyb2xsYmFyUGFpbnRlclVzZXNPdmVybGF5U2Ny
b2xsZXJzKHZvaWQpCit7CisgICAgcmV0dXJuIHByZWZlcnJlZFNjcm9sbGVyU3R5bGUoKSA9PSBO
U1Njcm9sbGVyU3R5bGVPdmVybGF5OworfQorCitib29sIHdrU2Nyb2xsYmFyUGFpbnRlcklzSG9y
aXpvbnRhbChXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlcikKK3sKKyAgICByZXR1cm4gW3Bh
aW50ZXIgaXNIb3Jpem9udGFsXTsKK30KKworQ0dGbG9hdCB3a1Njcm9sbGJhclBhaW50ZXJLbm9i
QWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCit7CisgICAgcmV0dXJuIFtwYWlu
dGVyIGtub2JBbHBoYV07Cit9CisKK3ZvaWQgd2tTY3JvbGxiYXJQYWludGVyU2V0T3ZlcmxheVN0
YXRlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyLCBpbnQgb3ZlcmxheVNjcm9sbGVyU3Rh
dGUpCit7CisgICAgW3BhaW50ZXIgc2V0T3ZlcmxheVNjcm9sbGVyU3RhdGU6b3ZlcmxheVNjcm9s
bGVyU3RhdGUKKyAgICAgICAgICAgICAgICAgICAgZm9yY2VJbW1lZGlhdGVseTpZRVNdOworfQor
Cit2b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclBhaW50KFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWlu
dGVyLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBOU1Jl
Y3QgZnJhbWVSZWN0KQoreworICAgIFtwYWludGVyIHNldEVuYWJsZWQ6ZW5hYmxlZF07CisgICAg
W3BhaW50ZXIgc2V0Qm91bmRzU2l6ZTpmcmFtZVJlY3Quc2l6ZV07CisgICAgW3BhaW50ZXIgc2V0
RG91YmxlVmFsdWU6dmFsdWVdOworICAgIFtwYWludGVyIHNldEtub2JQcm9wb3J0aW9uOnByb3Bv
cnRpb25dOworCisgICAgaWYgKFtwYWludGVyIGlzSG9yaXpvbnRhbF0pCisgICAgICAgIGZyYW1l
UmVjdC5zaXplLmhlaWdodCA9IFtwYWludGVyIHRyYWNrV2lkdGhdOworICAgIGVsc2UKKyAgICAg
ICAgZnJhbWVSZWN0LnNpemUud2lkdGggPSBbcGFpbnRlciB0cmFja1dpZHRoXTsKKworICAgIFtw
YWludGVyIGRyYXdLbm9iU2xvdEluUmVjdDpmcmFtZVJlY3QgaGlnaGxpZ2h0Ok5PXTsKKyAgICBb
cGFpbnRlciBkcmF3S25vYl07Cit9CisKK2ludCB3a1Njcm9sbGJhck1pbmltdW1UaHVtYkxlbmd0
aChXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlcikKK3sKKyAgICByZXR1cm4gW3BhaW50ZXIg
a25vYk1pbkxlbmd0aF07Cit9CisKK3ZvaWQgd2tTY3JvbGxiYXJQYWludGVyU2V0RGVsZWdhdGUo
V0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIsIGlkIHNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0
ZSkKK3sKKyAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpzY3JvbGxiYXJQYWludGVyRGVsZWdhdGVd
OworfQorCitDR0Zsb2F0IHdrU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEoV0tTY3JvbGxiYXJQ
YWludGVyUmVmIHBhaW50ZXIpCit7CisgICAgcmV0dXJuIFtwYWludGVyIHRyYWNrQWxwaGFdOwor
fQorCitXS1Njcm9sbGJhclBhaW50ZXJSZWYgd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcihpbnQgY29u
dHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKQoreworICAgIHJldHVybiB3a01ha2VTY3JvbGxi
YXJSZXBsYWNlbWVudFBhaW50ZXIobmlsLCBwcmVmZXJyZWRTY3JvbGxlclN0eWxlKCksIGNvbnRy
b2xTaXplLCBpc0hvcml6b250YWwpOworfQorCitpbnQgd2tTY3JvbGxiYXJUaGlja25lc3MoaW50
IGNvbnRyb2xTaXplKQoreworICAgIHJldHVybiBbd2tNYWtlU2Nyb2xsYmFyUGFpbnRlcihjb250
cm9sU2l6ZSwgZmFsc2UpIHRyYWNrQm94V2lkdGhdOworfQorCitpbnQgd2tTY3JvbGxiYXJNaW5p
bXVtVG90YWxMZW5ndGhOZWVkZWRGb3JUaHVtYihXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRl
cikKK3sKKyAgICAvLyBUT0RPKHNhaWwpOiBUaGlzIGRvZXNuJ3QgbWF0Y2ggdGhlIGltcGxlbWVu
dGF0aW9uIGluIFdlYktpdFN5c3RlbUludGVyZmFjZS4KKyAgICByZXR1cm4gd2tTY3JvbGxiYXJN
aW5pbXVtVGh1bWJMZW5ndGgocGFpbnRlcik7Cit9CisKK1dLU2Nyb2xsYmFyUGFpbnRlclJlZiB3
a1ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIHJldHVybiBbY29udHJvbGxlciB2ZXJ0
aWNhbFNjcm9sbGVySW1wXTsKK30KKworV0tTY3JvbGxiYXJQYWludGVyUmVmIHdrSG9yaXpvbnRh
bFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICByZXR1cm4gW2NvbnRyb2xsZXIgaG9yaXpvbnRhbFNj
cm9sbGVySW1wXTsKK30KKworV0tTY3JvbGxiYXJQYWludGVyUmVmIHdrTWFrZVNjcm9sbGJhclJl
cGxhY2VtZW50UGFpbnRlcihXS1Njcm9sbGJhclBhaW50ZXJSZWYgb2xkUGFpbnRlciwgaW50IG5l
d1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKQoreworICAgIGlmICgh
aXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgcmV0dXJuIFtsb29rVXBOU1Njcm9sbGVySW1wQ2xhc3MoKSBzY3JvbGxlckltcFdpdGhTdHls
ZTpuZXdTdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29udHJvbFNpemU6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUoY29udHJv
bFNpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aG9yaXpvbnRhbDppc0hvcml6b250YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFBhaW50ZXJdOworfQorCit2b2lkIHdrU2V0
UGFpbnRlckZvclBhaW50ZXJDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJS
ZWYgY29udHJvbGxlciwgV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIsIGJvb2wgaXNIb3Jp
em9udGFsKQoreworICAgIGlmIChpc0hvcml6b250YWwpCisgICAgICAgIFtjb250cm9sbGVyIHNl
dEhvcml6b250YWxTY3JvbGxlckltcDpwYWludGVyXTsKKyAgICBlbHNlCisgICAgICAgIFtjb250
cm9sbGVyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6cGFpbnRlcl07Cit9CisKK3ZvaWQgd2tTZXRT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXJSZWYgcGFpbnRlciwgaW50IG5ld1N0eWxlKQoreworICAgIFtwYWludGVyIHNldFNjcm9sbGVy
U3R5bGU6bmV3U3R5bGVdOworfQorCitDR1JlY3Qgd2tTY3JvbGxiYXJQYWludGVyS25vYlJlY3Qo
V0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCit7CisgICAgcmV0dXJuIE5TUmVjdFRvQ0dS
ZWN0KE5TWmVyb1JlY3QpOworfQorCit2b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBo
YShXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgQ0dGbG9hdCBhbHBoYSkKK3sKKyAgICBb
cGFpbnRlciBzZXRLbm9iQWxwaGE6YWxwaGFdOworfQorCit2b2lkIHdrU2V0U2Nyb2xsYmFyUGFp
bnRlclRyYWNrQWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIsIENHRmxvYXQgYWxw
aGEpCit7CisgICAgW3BhaW50ZXIgc2V0VHJhY2tBbHBoYTphbHBoYV07Cit9CisKK3ZvaWQgd2tT
ZXRTY3JvbGxiYXJQYWludGVyS25vYlN0eWxlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVy
LCB3a1Njcm9sbGVyS25vYlN0eWxlIHN0eWxlKQoreworICAgIC8vIFRPRE8oc2FpbCk6IEEga25v
YiBzdHlsZSBBUEkgZG9lc24ndCBleGlzdCBpbiB0aGUgc2VlZHMgY3VycmVudGx5IGF2YWlsYWJs
ZS4gCit9CisKK1dLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgd2tNYWtlU2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIoaWQgcGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSkKK3sKKyAgICBp
ZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gbmls
OworICAgIE5TU2Nyb2xsZXJJbXBQYWlyKiBjb250cm9sbGVyID0gW1tbbG9va1VwTlNTY3JvbGxl
ckltcFBhaXJDbGFzcygpIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgW2NvbnRyb2xs
ZXIgc2V0RGVsZWdhdGU6cGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZV07CisgICAgW2NvbnRyb2xs
ZXIgc2V0U2Nyb2xsZXJTdHlsZTpwcmVmZXJyZWRTY3JvbGxlclN0eWxlKCldOworICAgIHJldHVy
biBjb250cm9sbGVyOworfQorCit2b2lkIHdrQ29udGVudEFyZWFTY3JvbGxlZChXS1Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgY29u
dGVudEFyZWFTY3JvbGxlZF07Cit9CisKK3ZvaWQgd2tDb250ZW50QXJlYVdpbGxQYWludChXS1Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xs
ZXIgY29udGVudEFyZWFXaWxsRHJhd107Cit9CisKK3ZvaWQgd2tNb3VzZUVudGVyZWRDb250ZW50
QXJlYShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAg
W2NvbnRyb2xsZXIgbW91c2VFbnRlcmVkQ29udGVudEFyZWFdOworfQorCit2b2lkIHdrTW91c2VF
eGl0ZWRDb250ZW50QXJlYShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xs
ZXIpCit7CisgICAgW2NvbnRyb2xsZXIgbW91c2VFeGl0ZWRDb250ZW50QXJlYV07Cit9CisKK3Zv
aWQgd2tNb3VzZU1vdmVkSW5Db250ZW50QXJlYShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
UmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgbW91c2VNb3ZlZEluQ29udGVudEFy
ZWFdOworfQorCit2b2lkIHdrV2lsbFN0YXJ0TGl2ZVJlc2l6ZShXS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgc3RhcnRMaXZlUmVz
aXplXTsKK30KKwordm9pZCB3a0NvbnRlbnRBcmVhUmVzaXplZChXS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgY29udGVudEFyZWFE
aWRSZXNpemVdOworfQorCit2b2lkIHdrV2lsbEVuZExpdmVSZXNpemUoV0tTY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIGVuZExpdmVS
ZXNpemVdOworfQorCit2b2lkIHdrQ29udGVudEFyZWFEaWRTaG93KFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICBbY29udHJvbGxlciB3aW5kb3dPcmRl
cmVkSW5dOworfQorCit2b2lkIHdrQ29udGVudEFyZWFEaWRIaWRlKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICBbY29udHJvbGxlciB3aW5kb3dPcmRl
cmVkT3V0XTsKK30KKwordm9pZCB3a0RpZEJlZ2luU2Nyb2xsR2VzdHVyZShXS1Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgYmVnaW5T
Y3JvbGxHZXN0dXJlXTsKK30KKwordm9pZCB3a0RpZEVuZFNjcm9sbEdlc3R1cmUoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIGVu
ZFNjcm9sbEdlc3R1cmVdOworfQorCit2b2lkIHdrU2Nyb2xsYmFyUGFpbnRlckZvcmNlRmxhc2hT
Y3JvbGxlcnMoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQorewor
ICAgIFtjb250cm9sbGVyIGZsYXNoU2Nyb2xsZXJzXTsKK30KKworYm9vbCBpc1Njcm9sbGJhck92
ZXJsYXlBUElBdmFpbGFibGUoKQoreworICAgIC8vIFRPRE8oc2FpbCk6IERpc2FibGUgb3Zlcmxh
eSBzY3JvbGxiYXJzIGZvciBub3cgdW50aWwgdGhlIGZvbGxvd2luZyBpc3N1ZXMgYXJlIGZpeGVk
OgorICAgIC8vICMxOiBJbnZhbGlkYXRpb24gaXNzdWVzIGNhdXNlcyB0aGUgc2Nyb2xsYmFyIHRv
IGxlYXZlIHRyYWlsaW5nIGFydGlmYWN0cy4KKyAgICAvLyAjMjogVmFyaW91cyBtZXNzYWdlcyBz
dWNoIGFzIGxpdmUgcmVzaXplIHN0YXJ0ZWQvZW5kZWQgbmVlZCB0byBiZSBwaXBlZCBmcm9tIHRo
ZSBVSS4KKyAgICAvLyAjMzogRmluZCB0aWNrIG1hcmtzIG5lZWQgdG8gYmUgZHJhd24gb24gdGhl
IHNjcm9sbGJhciB0cmFjay4KKyAgICAvLyAjNDogTmVlZCB0byBoYXZlIHRoZSB0aGVtZSBlbmdp
bmUgZHJhdyB0aGUgdGh1bWIuCisgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RhdGljIGJvb2wg
YXBpQXZhaWxhYmxlID0gW2xvb2tVcE5TU2Nyb2xsZXJJbXBDbGFzcygpIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3Ioc2Nyb2xsZXJJbXBXaXRoU3R5bGU6Y29udHJvbFNpemU6aG9yaXpvbnRh
bDpyZXBsYWNpbmdTY3JvbGxlckltcDopXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtsb29rVXBOU1Njcm9sbGVySW1wUGFpckNsYXNzKCkgaW5zdGFuY2VzUmVzcG9uZFRvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNjcm9sbGVyU3R5bGUpXTsKKyAgICByZXR1cm4gYXBpQXZhaWxhYmxl
OworfQorCisjZW5kaWYgLy8gVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGll
c01hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3Zlcmxh
eVV0aWxpdGllc01hYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Y2VmNzkwLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92
ZXJsYXlVdGlsaXRpZXNNYWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBT
Y3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjX2gKLSNkZWZpbmUgU2Nyb2xsYmFyT3ZlcmxheVV0
aWxpdGllc01hY19oCi0KLSNpZiBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0KLS8vIFB1Ymxp
YyBBUElzIG5vdCBhdmFpbGFibGUgb24gdmVyc2lvbnMgb2YgTWFjIG9uIHdoaWNoIHdlIGJ1aWxk
Ci0jaWYgKGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpKQotZW51bSB7Ci0gICAgTlNTY3JvbGxlclN0eWxlTGVnYWN5ICAgICAg
ID0gMCwKLSAgICBOU1Njcm9sbGVyU3R5bGVPdmVybGF5ICAgICAgPSAxCi19OwotdHlwZWRlZiBO
U0ludGVnZXIgTlNTY3JvbGxlclN0eWxlOwotI2VuZGlmCi0KLSNpZmRlZiBfX09CSkNfXwotQGNs
YXNzIE5TU2Nyb2xsZXJJbXA7Ci1AY2xhc3MgTlNTY3JvbGxlckltcFBhaXI7Ci0jZWxzZQotY2xh
c3MgTlNTY3JvbGxlckltcDsKLWNsYXNzIE5TU2Nyb2xsZXJJbXBQYWlyOwotI2VuZGlmCi0KLXR5
cGVkZWYgTlNTY3JvbGxlckltcCogV0tTY3JvbGxiYXJQYWludGVyUmVmOwotdHlwZWRlZiBOU1Nj
cm9sbGVySW1wUGFpciogV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZjsKLQotYm9vbCBp
c1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUoKTsKLQotLy8gU2Nyb2xsYmFyIFBhaW50ZXIK
LWJvb2wgd2tTY3JvbGxiYXJQYWludGVyVXNlc092ZXJsYXlTY3JvbGxlcnModm9pZCk7Ci1ib29s
IHdrU2Nyb2xsYmFyUGFpbnRlcklzSG9yaXpvbnRhbChXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwot
Q0dGbG9hdCB3a1Njcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVm
KTsKLXZvaWQgd2tTY3JvbGxiYXJQYWludGVyU2V0T3ZlcmxheVN0YXRlKFdLU2Nyb2xsYmFyUGFp
bnRlclJlZiwgaW50IG92ZXJsYXlTY3JvbGxlclN0YXRlKTsKLXZvaWQgd2tTY3JvbGxiYXJQYWlu
dGVyUGFpbnQoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBib29sIGVuYWJsZWQsIGRvdWJsZSB2YWx1
ZSwgQ0dGbG9hdCBwcm9wb3J0aW9uLCBOU1JlY3QgZnJhbWVSZWN0KTsKLWludCB3a1Njcm9sbGJh
ck1pbmltdW1UaHVtYkxlbmd0aChXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotdm9pZCB3a1Njcm9s
bGJhclBhaW50ZXJTZXREZWxlZ2F0ZShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIGlkIHNjcm9sbGJh
clBhaW50ZXJEZWxlZ2F0ZSk7Ci1DR0Zsb2F0IHdrU2Nyb2xsYmFyUGFpbnRlclRyYWNrQWxwaGEo
V0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLVdLU2Nyb2xsYmFyUGFpbnRlclJlZiB3a01ha2VTY3Jv
bGxiYXJQYWludGVyKGludCBjb250cm9sU2l6ZSwgYm9vbCBpc0hvcml6b250YWwpOwotaW50IHdr
U2Nyb2xsYmFyVGhpY2tuZXNzKGludCBjb250cm9sU2l6ZSk7Ci1pbnQgd2tTY3JvbGxiYXJNaW5p
bXVtVG90YWxMZW5ndGhOZWVkZWRGb3JUaHVtYihXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotQ0dS
ZWN0IHdrU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0KFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci1X
S1Njcm9sbGJhclBhaW50ZXJSZWYgd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBvbGRQYWludGVyLCBpbnQgbmV3U3R5bGUsIGludCBjb250cm9s
U2l6ZSwgYm9vbCBpc0hvcml6b250YWwpOwotdm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9i
QWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBDR0Zsb2F0KTsKLXZvaWQgd2tTZXRTY3JvbGxi
YXJQYWludGVyVHJhY2tBbHBoYShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIENHRmxvYXQpOwotCi1l
bnVtIHsKLSAgICB3a1Njcm9sbGVyS25vYlN0eWxlRGVmYXVsdCA9IDAsCi0gICAgd2tTY3JvbGxl
cktub2JTdHlsZURhcmsgPSAxLAotICAgIHdrU2Nyb2xsZXJLbm9iU3R5bGVMaWdodCA9IDIKLX07
Ci10eXBlZGVmIHVpbnQzMiB3a1Njcm9sbGVyS25vYlN0eWxlOwotZXh0ZXJuIHZvaWQgd2tTZXRT
Y3JvbGxiYXJQYWludGVyS25vYlN0eWxlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgd2tTY3JvbGxl
cktub2JTdHlsZSk7Ci0KLS8vIFNjcm9sbGJhciBQYWludGVyIENvbnRyb2xsZXIKLVdLU2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgd2tNYWtlU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIo
aWQgcGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSk7Ci12b2lkIHdrQ29udGVudEFyZWFTY3JvbGxl
ZChXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgd2tDb250ZW50QXJlYVdp
bGxQYWludChXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgd2tNb3VzZUVu
dGVyZWRDb250ZW50QXJlYShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQg
d2tNb3VzZUV4aXRlZENvbnRlbnRBcmVhKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYp
Owotdm9pZCB3a01vdXNlTW92ZWRJbkNvbnRlbnRBcmVhKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYpOwotdm9pZCB3a1dpbGxTdGFydExpdmVSZXNpemUoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZik7Ci12b2lkIHdrQ29udGVudEFyZWFSZXNpemVkKFdLU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCB3a1dpbGxFbmRMaXZlUmVzaXplKFdLU2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCB3a0NvbnRlbnRBcmVhRGlkU2hvdyhXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgd2tDb250ZW50QXJlYURpZEhpZGUoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkIHdrRGlkQmVnaW5TY3JvbGxHZXN0
dXJlKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCB3a0RpZEVuZFNjcm9s
bEdlc3R1cmUoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkIHdrU2Nyb2xs
YmFyUGFpbnRlckZvcmNlRmxhc2hTY3JvbGxlcnMoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clJlZik7Ci12b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJTdHlsZShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmLCBpbnQgbmV3U3R5bGUpOwotdm9pZCB3a1NldFBhaW50
ZXJGb3JQYWludGVyQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmLCBX
S1Njcm9sbGJhclBhaW50ZXJSZWYsIGJvb2wgaXNIb3Jpem9udGFsKTsKLVdLU2Nyb2xsYmFyUGFp
bnRlclJlZiB3a1ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZik7Ci1XS1Njcm9sbGJhclBhaW50ZXJSZWYgd2tIb3Jpem9u
dGFsU2Nyb2xsYmFyUGFpbnRlckZvckNvbnRyb2xsZXIoV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclJlZik7Ci0KLSNlbmRpZiAvLyBVU0UoV0tfU0NST0xMQkFSX1BBSU5URVIpCi0KLSNlbmRp
ZiAvLyBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0
aWVzTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjcxZTY3Li4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlV
dGlsaXRpZXNNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwzNDAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKLQotI2luY2x1ZGUgIlNjcm9s
bGJhck92ZXJsYXlVdGlsaXRpZXNNYWMuaCIKLSNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgotI2lu
Y2x1ZGUgPENvY29hL0NvY29hLmg+Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBUaGlz
IGZpbGUgY29udGFpbnMgdXRpbGl0aWVzIHRvIGRyYXcgb3ZlcmxheSBzY3JvbGxiYXJzLiBUaGVy
ZSBhcmUgbm8gcHVibGljCi0vLyBBUElzIHlldCBvbiB0aGUgTWFjIHRvIGRyYXcgb3ZlcmxheSBz
Y3JvbGxiYXJzIHNvIHdlIHVzZSBwcml2YXRlIEFQSXMgdGhhdAotLy8gd2UgbG9vayB1cCBhdCBy
dW50aW1lLiBJZiB0aGUgcHJpdmF0ZSBBUElzIGRvbid0IGV4aXN0IHRoZW4gdGhlIHdrTWFrZSoK
LS8vIGZ1bmN0aW9ucyB3aWxsIHJldHVybiBuaWwuCi0vLwotLy8gTm90ZSwgdGhpcyBmaWxlIGNv
bnRhaW5zIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmguCi0v
LyBVc2luZyB0aGUgc2FtZSBuYW1lcyBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gbWFpbnRhaW4u
Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0vLyBQdWJsaWMgQVBJcyBub3QgYXZhaWxhYmxl
IG9uIHZlcnNpb25zIG9mIE1hYyBvbiB3aGljaCB3ZSBidWlsZAotI2lmIChkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSkKLUBp
bnRlcmZhY2UgTlNTY3JvbGxlciAoTlNPYmplY3QpCi0rIChOU1Njcm9sbGVyU3R5bGUpcHJlZmVy
cmVkU2Nyb2xsZXJTdHlsZTsKLUBlbmQKLSNlbmRpZgotCi0vLyBUaGVzZSBhcmUgcHJpdmF0ZSBB
UElzIHRvIGRyYXcgb3ZlcmxheSBzY3JvbGxiYXJzLgotQGludGVyZmFjZSBOU1Njcm9sbGVySW1w
IDogTlNPYmplY3QKLQotKyAoaWQpc2Nyb2xsZXJJbXBXaXRoU3R5bGU6KE5TU2Nyb2xsZXJTdHls
ZSlzdHlsZQotICAgICAgICAgICAgICAgY29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpc2l6ZQot
ICAgICAgICAgICAgICAgIGhvcml6b250YWw6KEJPT0wpaG9yaXpvbnRhbAotICAgICAgcmVwbGFj
aW5nU2Nyb2xsZXJJbXA6KGlkKXNjcm9sbGVyOwotCi1AcHJvcGVydHkgQ0dGbG9hdCBrbm9iQWxw
aGE7Ci1AcHJvcGVydHkgQ0dGbG9hdCB0cmFja0FscGhhOwotQHByb3BlcnR5IENHRmxvYXQga25v
YlByb3BvcnRpb247Ci1AcHJvcGVydHkoZ2V0dGVyPWlzRW5hYmxlZCkgQk9PTCBlbmFibGVkOwot
QHByb3BlcnR5KGdldHRlcj1pc0hvcml6b250YWwpIEJPT0wgaG9yaXpvbnRhbDsKLUBwcm9wZXJ0
eSBkb3VibGUgZG91YmxlVmFsdWU7Ci1AcHJvcGVydHkoYXNzaWduKSBpZCBkZWxlZ2F0ZTsKLQot
LSAoQ0dGbG9hdClrbm9iTWluTGVuZ3RoOwotLSAoQ0dGbG9hdCl0cmFja0JveFdpZHRoOwotLSAo
Q0dGbG9hdCl0cmFja1dpZHRoOwotLSAodm9pZClzZXRCb3VuZHNTaXplOihOU1NpemUpc2l6ZTsK
LS0gKHZvaWQpZHJhd0tub2JTbG90SW5SZWN0OihOU1JlY3QpcmVjdAotICAgICAgICAgICAgICAg
ICBoaWdobGlnaHQ6KEJPT0wpZmxhZzsKLS0gKHZvaWQpZHJhd0tub2I7Ci0tICh2b2lkKXNldE92
ZXJsYXlTY3JvbGxlclN0YXRlOihOU1Njcm9sbGVyU3R5bGUpc3RhdGUKLSAgICAgICAgICAgICAg
IGZvcmNlSW1tZWRpYXRlbHk6KEJPT0wpZmxhZzsKLS0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkKWRl
bGVnYXRlOwotCi1AZW5kCi0KLS8vIFRoZXNlIGFyZSBwcml2YXRlIEFQSXMgdG8gbWFuYWdlIG92
ZXJsYXkgc2Nyb2xsYmFycy4KLUBpbnRlcmZhY2UgTlNTY3JvbGxlckltcFBhaXIgOiBOU09iamVj
dAotCi1AcHJvcGVydHkgTlNTY3JvbGxlclN0eWxlIHNjcm9sbGVyU3R5bGU7Ci1AcHJvcGVydHko
cmV0YWluKSBOU1Njcm9sbGVySW1wICpob3Jpem9udGFsU2Nyb2xsZXJJbXA7Ci1AcHJvcGVydHko
cmV0YWluKSBOU1Njcm9sbGVySW1wICp2ZXJ0aWNhbFNjcm9sbGVySW1wOwotQHByb3BlcnR5KGFz
c2lnbikgaWQgZGVsZWdhdGU7Ci0KLS0gKHZvaWQpZmxhc2hTY3JvbGxlcnM7Ci0tICh2b2lkKWNv
bnRlbnRBcmVhU2Nyb2xsZWQ7Ci0tICh2b2lkKWNvbnRlbnRBcmVhV2lsbERyYXc7Ci0tICh2b2lk
KWNvbnRlbnRBcmVhRGlkSGlkZTsKLS0gKHZvaWQpd2luZG93T3JkZXJlZE91dDsKLS0gKHZvaWQp
d2luZG93T3JkZXJlZEluOwotLSAodm9pZCltb3VzZUVudGVyZWRDb250ZW50QXJlYTsKLS0gKHZv
aWQpbW91c2VNb3ZlZEluQ29udGVudEFyZWE7Ci0tICh2b2lkKW1vdXNlRXhpdGVkQ29udGVudEFy
ZWE7Ci0tICh2b2lkKXN0YXJ0TGl2ZVJlc2l6ZTsKLS0gKHZvaWQpY29udGVudEFyZWFEaWRSZXNp
emU7Ci0tICh2b2lkKWVuZExpdmVSZXNpemU7Ci0tICh2b2lkKWJlZ2luU2Nyb2xsR2VzdHVyZTsK
LS0gKHZvaWQpZW5kU2Nyb2xsR2VzdHVyZTsKLQotQGVuZAotCi1zdGF0aWMgQ2xhc3MgbG9va1Vw
TlNTY3JvbGxlckltcENsYXNzKCkKLXsKLSAgICBzdGF0aWMgQ2xhc3MgcmVzdWx0ID0gTlNDbGFz
c0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
c3RhdGljIENsYXNzIGxvb2tVcE5TU2Nyb2xsZXJJbXBQYWlyQ2xhc3MoKQotewotICAgIHN0YXRp
YyBDbGFzcyByZXN1bHQgPSBOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIik7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIE5TQ29udHJvbFNpemUgc2Nyb2xsYmFy
Q29udHJvbFNpemVUb05TQ29udHJvbFNpemUoaW50IGNvbnRyb2xTaXplKQotewotICAgIHJldHVy
biBjb250cm9sU2l6ZSA9PSBXZWJDb3JlOjpSZWd1bGFyU2Nyb2xsYmFyID8gTlNSZWd1bGFyQ29u
dHJvbFNpemUgOiBOU1NtYWxsQ29udHJvbFNpemU7Ci19Ci0KLXN0YXRpYyBOU1Njcm9sbGVyU3R5
bGUgcHJlZmVycmVkU2Nyb2xsZXJTdHlsZSgpCi17Ci0gICAgaWYgKFtOU1Njcm9sbGVyIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlZmVycmVkU2Nyb2xsZXJTdHlsZSldKQotICAgICAg
ICByZXR1cm4gW05TU2Nyb2xsZXIgcHJlZmVycmVkU2Nyb2xsZXJTdHlsZV07Ci0gICAgcmV0dXJu
IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeTsKLX0KLQotYm9vbCB3a1Njcm9sbGJhclBhaW50ZXJVc2Vz
T3ZlcmxheVNjcm9sbGVycyh2b2lkKQotewotICAgIHJldHVybiBwcmVmZXJyZWRTY3JvbGxlclN0
eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlT3ZlcmxheTsKLX0KLQotYm9vbCB3a1Njcm9sbGJhclBh
aW50ZXJJc0hvcml6b250YWwoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCi17Ci0gICAg
cmV0dXJuIFtwYWludGVyIGlzSG9yaXpvbnRhbF07Ci19Ci0KLUNHRmxvYXQgd2tTY3JvbGxiYXJQ
YWludGVyS25vYkFscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyKQotewotICAgIHJl
dHVybiBbcGFpbnRlciBrbm9iQWxwaGFdOwotfQotCi12b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclNl
dE92ZXJsYXlTdGF0ZShXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgaW50IG92ZXJsYXlT
Y3JvbGxlclN0YXRlKQotewotICAgIFtwYWludGVyIHNldE92ZXJsYXlTY3JvbGxlclN0YXRlOm92
ZXJsYXlTY3JvbGxlclN0YXRlCi0gICAgICAgICAgICAgICAgICAgIGZvcmNlSW1tZWRpYXRlbHk6
WUVTXTsKLX0KLQotdm9pZCB3a1Njcm9sbGJhclBhaW50ZXJQYWludChXS1Njcm9sbGJhclBhaW50
ZXJSZWYgcGFpbnRlciwgYm9vbCBlbmFibGVkLCBkb3VibGUgdmFsdWUsIENHRmxvYXQgcHJvcG9y
dGlvbiwgTlNSZWN0IGZyYW1lUmVjdCkKLXsKLSAgICBbcGFpbnRlciBzZXRFbmFibGVkOmVuYWJs
ZWRdOwotICAgIFtwYWludGVyIHNldEJvdW5kc1NpemU6ZnJhbWVSZWN0LnNpemVdOwotICAgIFtw
YWludGVyIHNldERvdWJsZVZhbHVlOnZhbHVlXTsKLSAgICBbcGFpbnRlciBzZXRLbm9iUHJvcG9y
dGlvbjpwcm9wb3J0aW9uXTsKLQotICAgIGlmIChbcGFpbnRlciBpc0hvcml6b250YWxdKQotICAg
ICAgICBmcmFtZVJlY3Quc2l6ZS5oZWlnaHQgPSBbcGFpbnRlciB0cmFja1dpZHRoXTsKLSAgICBl
bHNlCi0gICAgICAgIGZyYW1lUmVjdC5zaXplLndpZHRoID0gW3BhaW50ZXIgdHJhY2tXaWR0aF07
Ci0KLSAgICBbcGFpbnRlciBkcmF3S25vYlNsb3RJblJlY3Q6ZnJhbWVSZWN0IGhpZ2hsaWdodDpO
T107Ci0gICAgW3BhaW50ZXIgZHJhd0tub2JdOwotfQotCi1pbnQgd2tTY3JvbGxiYXJNaW5pbXVt
VGh1bWJMZW5ndGgoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCi17Ci0gICAgcmV0dXJu
IFtwYWludGVyIGtub2JNaW5MZW5ndGhdOwotfQotCi12b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclNl
dERlbGVnYXRlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyLCBpZCBzY3JvbGxiYXJQYWlu
dGVyRGVsZWdhdGUpCi17Ci0gICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6c2Nyb2xsYmFyUGFpbnRl
ckRlbGVnYXRlXTsKLX0KLQotQ0dGbG9hdCB3a1Njcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyKQotewotICAgIHJldHVybiBbcGFpbnRlciB0cmFj
a0FscGhhXTsKLX0KLQotV0tTY3JvbGxiYXJQYWludGVyUmVmIHdrTWFrZVNjcm9sbGJhclBhaW50
ZXIoaW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCkKLXsKLSAgICByZXR1cm4gd2tN
YWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKG5pbCwgcHJlZmVycmVkU2Nyb2xsZXJTdHls
ZSgpLCBjb250cm9sU2l6ZSwgaXNIb3Jpem9udGFsKTsKLX0KLQotaW50IHdrU2Nyb2xsYmFyVGhp
Y2tuZXNzKGludCBjb250cm9sU2l6ZSkKLXsKLSAgICByZXR1cm4gW3drTWFrZVNjcm9sbGJhclBh
aW50ZXIoY29udHJvbFNpemUsIGZhbHNlKSB0cmFja0JveFdpZHRoXTsKLX0KLQotaW50IHdrU2Ny
b2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1bWIoV0tTY3JvbGxiYXJQYWludGVy
UmVmIHBhaW50ZXIpCi17Ci0gICAgLy8gVE9ETyhzYWlsKTogVGhpcyBkb2Vzbid0IG1hdGNoIHRo
ZSBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuCi0gICAgcmV0dXJuIHdr
U2Nyb2xsYmFyTWluaW11bVRodW1iTGVuZ3RoKHBhaW50ZXIpOwotfQotCi1XS1Njcm9sbGJhclBh
aW50ZXJSZWYgd2tWZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKFdLU2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKLXsKLSAgICByZXR1cm4gW2NvbnRy
b2xsZXIgdmVydGljYWxTY3JvbGxlckltcF07Ci19Ci0KLVdLU2Nyb2xsYmFyUGFpbnRlclJlZiB3
a0hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCi17Ci0gICAgcmV0dXJuIFtjb250cm9sbGVyIGhv
cml6b250YWxTY3JvbGxlckltcF07Ci19Ci0KLVdLU2Nyb2xsYmFyUGFpbnRlclJlZiB3a01ha2VT
Y3JvbGxiYXJSZXBsYWNlbWVudFBhaW50ZXIoV0tTY3JvbGxiYXJQYWludGVyUmVmIG9sZFBhaW50
ZXIsIGludCBuZXdTdHlsZSwgaW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCkKLXsK
LSAgICBpZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAgICByZXR1
cm4gbmlsOwotICAgIHJldHVybiBbbG9va1VwTlNTY3JvbGxlckltcENsYXNzKCkgc2Nyb2xsZXJJ
bXBXaXRoU3R5bGU6bmV3U3R5bGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xT
aXplKGNvbnRyb2xTaXplKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhvcml6b250YWw6aXNIb3Jpem9udGFsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsYWNpbmdTY3JvbGxlckltcDpvbGRQYWludGVyXTsKLX0KLQot
dm9pZCB3a1NldFBhaW50ZXJGb3JQYWludGVyQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmIGNvbnRyb2xsZXIsIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyLCBi
b29sIGlzSG9yaXpvbnRhbCkKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsKQotICAgICAgICBbY29u
dHJvbGxlciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6cGFpbnRlcl07Ci0gICAgZWxzZQotICAg
ICAgICBbY29udHJvbGxlciBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOwotfQotCi12
b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJTdHlsZShXS1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyUmVmIHBhaW50ZXIsIGludCBuZXdTdHlsZSkKLXsKLSAgICBbcGFpbnRlciBz
ZXRTY3JvbGxlclN0eWxlOm5ld1N0eWxlXTsKLX0KLQotQ0dSZWN0IHdrU2Nyb2xsYmFyUGFpbnRl
cktub2JSZWN0KFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyKQotewotICAgIHJldHVybiBO
U1JlY3RUb0NHUmVjdChOU1plcm9SZWN0KTsKLX0KLQotdm9pZCB3a1NldFNjcm9sbGJhclBhaW50
ZXJLbm9iQWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIsIENHRmxvYXQgYWxwaGEp
Ci17Ci0gICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOmFscGhhXTsKLX0KLQotdm9pZCB3a1NldFNj
cm9sbGJhclBhaW50ZXJUcmFja0FscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyLCBD
R0Zsb2F0IGFscGhhKQotewotICAgIFtwYWludGVyIHNldFRyYWNrQWxwaGE6YWxwaGFdOwotfQot
Ci12b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHlsZShXS1Njcm9sbGJhclBhaW50ZXJS
ZWYgcGFpbnRlciwgd2tTY3JvbGxlcktub2JTdHlsZSBzdHlsZSkKLXsKLSAgICAvLyBUT0RPKHNh
aWwpOiBBIGtub2Igc3R5bGUgQVBJIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHNlZWRzIGN1cnJlbnRs
eSBhdmFpbGFibGUuIAotfQotCi1XS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIHdrTWFr
ZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyKGlkIHBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUp
Ci17Ci0gICAgaWYgKCFpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUoKSkKLSAgICAgICAg
cmV0dXJuIG5pbDsKLSAgICBOU1Njcm9sbGVySW1wUGFpciogY29udHJvbGxlciA9IFtbW2xvb2tV
cE5TU2Nyb2xsZXJJbXBQYWlyQ2xhc3MoKSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwotICAg
IFtjb250cm9sbGVyIHNldERlbGVnYXRlOnBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGVdOwotICAg
IFtjb250cm9sbGVyIHNldFNjcm9sbGVyU3R5bGU6cHJlZmVycmVkU2Nyb2xsZXJTdHlsZSgpXTsK
LSAgICByZXR1cm4gY29udHJvbGxlcjsKLX0KLQotdm9pZCB3a0NvbnRlbnRBcmVhU2Nyb2xsZWQo
V0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250
cm9sbGVyIGNvbnRlbnRBcmVhU2Nyb2xsZWRdOwotfQotCi12b2lkIHdrQ29udGVudEFyZWFXaWxs
UGFpbnQoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAg
IFtjb250cm9sbGVyIGNvbnRlbnRBcmVhV2lsbERyYXddOwotfQotCi12b2lkIHdrTW91c2VFbnRl
cmVkQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVy
KQotewotICAgIFtjb250cm9sbGVyIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKLX0KLQotdm9p
ZCB3a01vdXNlRXhpdGVkQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJl
ZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIG1vdXNlRXhpdGVkQ29udGVudEFyZWFd
OwotfQotCi12b2lkIHdrTW91c2VNb3ZlZEluQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIG1vdXNlTW92ZWRJ
bkNvbnRlbnRBcmVhXTsKLX0KLQotdm9pZCB3a1dpbGxTdGFydExpdmVSZXNpemUoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIHN0
YXJ0TGl2ZVJlc2l6ZV07Ci19Ci0KLXZvaWQgd2tDb250ZW50QXJlYVJlc2l6ZWQoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIGNv
bnRlbnRBcmVhRGlkUmVzaXplXTsKLX0KLQotdm9pZCB3a1dpbGxFbmRMaXZlUmVzaXplKFdLU2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKLXsKLSAgICBbY29udHJvbGxl
ciBlbmRMaXZlUmVzaXplXTsKLX0KLQotdm9pZCB3a0NvbnRlbnRBcmVhRGlkU2hvdyhXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCi17Ci0gICAgW2NvbnRyb2xsZXIg
d2luZG93T3JkZXJlZEluXTsKLX0KLQotdm9pZCB3a0NvbnRlbnRBcmVhRGlkSGlkZShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCi17Ci0gICAgW2NvbnRyb2xsZXIg
d2luZG93T3JkZXJlZE91dF07Ci19Ci0KLXZvaWQgd2tEaWRCZWdpblNjcm9sbEdlc3R1cmUoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9s
bGVyIGJlZ2luU2Nyb2xsR2VzdHVyZV07Ci19Ci0KLXZvaWQgd2tEaWRFbmRTY3JvbGxHZXN0dXJl
KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKLXsKLSAgICBbY29u
dHJvbGxlciBlbmRTY3JvbGxHZXN0dXJlXTsKLX0KLQotdm9pZCB3a1Njcm9sbGJhclBhaW50ZXJG
b3JjZUZsYXNoU2Nyb2xsZXJzKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJv
bGxlcikKLXsKLSAgICBbY29udHJvbGxlciBmbGFzaFNjcm9sbGVyc107Ci19Ci0KLWJvb2wgaXNT
Y3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkKLXsKLSAgICAvLyBUT0RPKHNhaWwpOiBEaXNh
YmxlIG92ZXJsYXkgc2Nyb2xsYmFycyBmb3Igbm93IHVudGlsIHRoZSBmb2xsb3dpbmcgaXNzdWVz
IGFyZSBmaXhlZDoKLSAgICAvLyAjMTogSW52YWxpZGF0aW9uIGlzc3VlcyBjYXVzZXMgdGhlIHNj
cm9sbGJhciB0byBsZWF2ZSB0cmFpbGluZyBhcnRpZmFjdHMuCi0gICAgLy8gIzI6IFZhcmlvdXMg
bWVzc2FnZXMgc3VjaCBhcyBsaXZlIHJlc2l6ZSBzdGFydGVkL2VuZGVkIG5lZWQgdG8gYmUgcGlw
ZWQgZnJvbSB0aGUgVUkuCi0gICAgLy8gIzM6IEZpbmQgdGljayBtYXJrcyBuZWVkIHRvIGJlIGRy
YXduIG9uIHRoZSBzY3JvbGxiYXIgdHJhY2suCi0gICAgLy8gIzQ6IE5lZWQgdG8gaGF2ZSB0aGUg
dGhlbWUgZW5naW5lIGRyYXcgdGhlIHRodW1iLgotICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN0
YXRpYyBib29sIGFwaUF2YWlsYWJsZSA9IFtsb29rVXBOU1Njcm9sbGVySW1wQ2xhc3MoKSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNjcm9sbGVySW1wV2l0aFN0eWxlOmNvbnRyb2xTaXpl
Omhvcml6b250YWw6cmVwbGFjaW5nU2Nyb2xsZXJJbXA6KV0gJiYKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbbG9va1VwTlNTY3JvbGxlckltcFBhaXJDbGFzcygpIGluc3RhbmNlc1Jl
c3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihzY3JvbGxlclN0eWxlKV07Ci0gICAgcmV0dXJuIGFw
aUF2YWlsYWJsZTsKLX0KLQotI2VuZGlmIC8vIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94795</attachid>
            <date>2011-05-25 09:47:03 -0700</date>
            <delta_ts>2011-05-25 18:30:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61401-20110525094702.patch</filename>
            <type>text/plain</type>
            <size>37353</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3Mjk5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUtMjUgIFNhaWxlc2gg
QWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFj
IHRvIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hYworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0MDEKKworICAgICAgICBTY3JvbGxi
YXJPdmVybGF5VXRpbGl0aWVzTWFjLm1tIHdhcyBiZWluZyBleGNsdWRlZCBmcm9tIHRoZSBXZWJD
b3JlIHByb2plY3QuIEZpeCB3YXMgdG8gbWFrZSBzdXJlIHRoZSBmaWxlIG5hbWUgZW5kZWQgd2l0
aCBDaHJvbWl1bU1hYy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3Zlcmxh
eVV0aWxpdGllc01hYy5oLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92
ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hYy5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5tbS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjLmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxp
dGllc01hYy5tbTogUmVtb3ZlZC4KKwogMjAxMS0wNS0yNSAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iu
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdv
bWVzLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gODcyOTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM4MjksOCArMzgyOSw4IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUmVhZGFibGVEYXRhT2JqZWN0LmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUmVhZGFibGVEYXRhT2JqZWN0LmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1NTTEtleUdlbmVyYXRvckNocm9taXVtLmNwcCcs
Ci0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGll
c01hYy5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5
VXRpbGl0aWVzTWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxi
YXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLm1tJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGlu
dXguY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJh
ck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1h
Yy5oCShyZXZpc2lvbiA4NzI5OCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5oOjg3Mjk4KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFNjcm9sbGJhck92ZXJsYXlV
dGlsaXRpZXNNYWNfaAorI2RlZmluZSBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjX2gKKwor
I2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKworLy8gUHVibGljIEFQSXMgbm90IGF2YWls
YWJsZSBvbiB2ZXJzaW9ucyBvZiBNYWMgb24gd2hpY2ggd2UgYnVpbGQKKyNpZiAoZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkp
CitlbnVtIHsKKyAgICBOU1Njcm9sbGVyU3R5bGVMZWdhY3kgICAgICAgPSAwLAorICAgIE5TU2Ny
b2xsZXJTdHlsZU92ZXJsYXkgICAgICA9IDEKK307Cit0eXBlZGVmIE5TSW50ZWdlciBOU1Njcm9s
bGVyU3R5bGU7CisjZW5kaWYKKworI2lmZGVmIF9fT0JKQ19fCitAY2xhc3MgTlNTY3JvbGxlcklt
cDsKK0BjbGFzcyBOU1Njcm9sbGVySW1wUGFpcjsKKyNlbHNlCitjbGFzcyBOU1Njcm9sbGVySW1w
OworY2xhc3MgTlNTY3JvbGxlckltcFBhaXI7CisjZW5kaWYKKwordHlwZWRlZiBOU1Njcm9sbGVy
SW1wKiBXS1Njcm9sbGJhclBhaW50ZXJSZWY7Cit0eXBlZGVmIE5TU2Nyb2xsZXJJbXBQYWlyKiBX
S1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmOworCitib29sIGlzU2Nyb2xsYmFyT3Zlcmxh
eUFQSUF2YWlsYWJsZSgpOworCisvLyBTY3JvbGxiYXIgUGFpbnRlcgorYm9vbCB3a1Njcm9sbGJh
clBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyh2b2lkKTsKK2Jvb2wgd2tTY3JvbGxiYXJQYWlu
dGVySXNIb3Jpem9udGFsKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7CitDR0Zsb2F0IHdrU2Nyb2xs
YmFyUGFpbnRlcktub2JBbHBoYShXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwordm9pZCB3a1Njcm9s
bGJhclBhaW50ZXJTZXRPdmVybGF5U3RhdGUoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBpbnQgb3Zl
cmxheVNjcm9sbGVyU3RhdGUpOwordm9pZCB3a1Njcm9sbGJhclBhaW50ZXJQYWludChXS1Njcm9s
bGJhclBhaW50ZXJSZWYsIGJvb2wgZW5hYmxlZCwgZG91YmxlIHZhbHVlLCBDR0Zsb2F0IHByb3Bv
cnRpb24sIE5TUmVjdCBmcmFtZVJlY3QpOworaW50IHdrU2Nyb2xsYmFyTWluaW11bVRodW1iTGVu
Z3RoKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Cit2b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclNldERl
bGVnYXRlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgaWQgc2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRl
KTsKK0NHRmxvYXQgd2tTY3JvbGxiYXJQYWludGVyVHJhY2tBbHBoYShXS1Njcm9sbGJhclBhaW50
ZXJSZWYpOworV0tTY3JvbGxiYXJQYWludGVyUmVmIHdrTWFrZVNjcm9sbGJhclBhaW50ZXIoaW50
IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCk7CitpbnQgd2tTY3JvbGxiYXJUaGlja25l
c3MoaW50IGNvbnRyb2xTaXplKTsKK2ludCB3a1Njcm9sbGJhck1pbmltdW1Ub3RhbExlbmd0aE5l
ZWRlZEZvclRodW1iKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7CitDR1JlY3Qgd2tTY3JvbGxiYXJQ
YWludGVyS25vYlJlY3QoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKK1dLU2Nyb2xsYmFyUGFpbnRl
clJlZiB3a01ha2VTY3JvbGxiYXJSZXBsYWNlbWVudFBhaW50ZXIoV0tTY3JvbGxiYXJQYWludGVy
UmVmIG9sZFBhaW50ZXIsIGludCBuZXdTdHlsZSwgaW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9y
aXpvbnRhbCk7Cit2b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JBbHBoYShXS1Njcm9sbGJh
clBhaW50ZXJSZWYsIENHRmxvYXQpOwordm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0Fs
cGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiwgQ0dGbG9hdCk7CisKK2VudW0geworICAgIHdrU2Ny
b2xsZXJLbm9iU3R5bGVEZWZhdWx0ID0gMCwKKyAgICB3a1Njcm9sbGVyS25vYlN0eWxlRGFyayA9
IDEsCisgICAgd2tTY3JvbGxlcktub2JTdHlsZUxpZ2h0ID0gMgorfTsKK3R5cGVkZWYgdWludDMy
IHdrU2Nyb2xsZXJLbm9iU3R5bGU7CitleHRlcm4gdm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJL
bm9iU3R5bGUoV0tTY3JvbGxiYXJQYWludGVyUmVmLCB3a1Njcm9sbGVyS25vYlN0eWxlKTsKKwor
Ly8gU2Nyb2xsYmFyIFBhaW50ZXIgQ29udHJvbGxlcgorV0tTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlclJlZiB3a01ha2VTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcihpZCBwYWludGVyQ29udHJv
bGxlckRlbGVnYXRlKTsKK3ZvaWQgd2tDb250ZW50QXJlYVNjcm9sbGVkKFdLU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJSZWYpOwordm9pZCB3a0NvbnRlbnRBcmVhV2lsbFBhaW50KFdLU2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwordm9pZCB3a01vdXNlRW50ZXJlZENvbnRlbnRBcmVh
KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwordm9pZCB3a01vdXNlRXhpdGVkQ29u
dGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Cit2b2lkIHdrTW91c2VN
b3ZlZEluQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Cit2b2lk
IHdrV2lsbFN0YXJ0TGl2ZVJlc2l6ZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsK
K3ZvaWQgd2tDb250ZW50QXJlYVJlc2l6ZWQoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJl
Zik7Cit2b2lkIHdrV2lsbEVuZExpdmVSZXNpemUoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clJlZik7Cit2b2lkIHdrQ29udGVudEFyZWFEaWRTaG93KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYpOwordm9pZCB3a0NvbnRlbnRBcmVhRGlkSGlkZShXS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmKTsKK3ZvaWQgd2tEaWRCZWdpblNjcm9sbEdlc3R1cmUoV0tTY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlclJlZik7Cit2b2lkIHdrRGlkRW5kU2Nyb2xsR2VzdHVyZShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKK3ZvaWQgd2tTY3JvbGxiYXJQYWludGVyRm9yY2VG
bGFzaFNjcm9sbGVycyhXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKK3ZvaWQgd2tT
ZXRTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclN0eWxlKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYsIGludCBuZXdTdHlsZSk7Cit2b2lkIHdrU2V0UGFpbnRlckZvclBhaW50ZXJDb250
cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYsIFdLU2Nyb2xsYmFyUGFpbnRl
clJlZiwgYm9vbCBpc0hvcml6b250YWwpOworV0tTY3JvbGxiYXJQYWludGVyUmVmIHdrVmVydGlj
YWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyUmVmKTsKK1dLU2Nyb2xsYmFyUGFpbnRlclJlZiB3a0hvcml6b250YWxTY3JvbGxiYXJQYWlu
dGVyRm9yQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKKworI2Vu
ZGlmIC8vIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKKworI2VuZGlmIC8vIFNjcm9sbGJhck92
ZXJsYXlVdGlsaXRpZXNNYWNfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGll
c0Nocm9taXVtTWFjLmgJKHJldmlzaW9uIDg3Mjk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDggKzI0LDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5k
ZWYgU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hY19oCi0jZGVmaW5lIFNjcm9sbGJhck92ZXJs
YXlVdGlsaXRpZXNNYWNfaAorI2lmbmRlZiBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21p
dW1NYWNfaAorI2RlZmluZSBTY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWNfaAog
CiAjaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQogCkBAIC05OCw0ICs5OCw0IEBAIFdLU2Ny
b2xsYmFyUGFpbnRlclJlZiB3a0hvcml6b250YWxTY3JvbGwKIAogI2VuZGlmIC8vIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikKIAotI2VuZGlmIC8vIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNN
YWNfaAorI2VuZGlmIC8vIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hY19oCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRp
bGl0aWVzQ2hyb21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLm1tCShyZXZp
c2lvbiA4NzI5OCkJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xs
YmFyT3ZlcmxheVV0aWxpdGllc01hYy5tbTo4NzI5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShX
S19TQ1JPTExCQVJfUEFJTlRFUikKKworI2luY2x1ZGUgIlNjcm9sbGJhck92ZXJsYXlVdGlsaXRp
ZXNNYWMuaCIKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgPENvY29hL0NvY29h
Lmg+CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBUaGlzIGZpbGUgY29udGFpbnMgdXRp
bGl0aWVzIHRvIGRyYXcgb3ZlcmxheSBzY3JvbGxiYXJzLiBUaGVyZSBhcmUgbm8gcHVibGljCisv
LyBBUElzIHlldCBvbiB0aGUgTWFjIHRvIGRyYXcgb3ZlcmxheSBzY3JvbGxiYXJzIHNvIHdlIHVz
ZSBwcml2YXRlIEFQSXMgdGhhdAorLy8gd2UgbG9vayB1cCBhdCBydW50aW1lLiBJZiB0aGUgcHJp
dmF0ZSBBUElzIGRvbid0IGV4aXN0IHRoZW4gdGhlIHdrTWFrZSoKKy8vIGZ1bmN0aW9ucyB3aWxs
IHJldHVybiBuaWwuCisvLworLy8gTm90ZSwgdGhpcyBmaWxlIGNvbnRhaW5zIGZ1bmN0aW9ucyBj
b3BpZWQgZnJvbSBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmguCisvLyBVc2luZyB0aGUgc2FtZSBu
YW1lcyBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gbWFpbnRhaW4uCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisvLyBQdWJsaWMgQVBJcyBub3QgYXZhaWxhYmxlIG9uIHZlcnNpb25zIG9mIE1h
YyBvbiB3aGljaCB3ZSBidWlsZAorI2lmIChkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8
IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSkKK0BpbnRlcmZhY2UgTlNTY3JvbGxl
ciAoTlNPYmplY3QpCisrIChOU1Njcm9sbGVyU3R5bGUpcHJlZmVycmVkU2Nyb2xsZXJTdHlsZTsK
K0BlbmQKKyNlbmRpZgorCisvLyBUaGVzZSBhcmUgcHJpdmF0ZSBBUElzIHRvIGRyYXcgb3Zlcmxh
eSBzY3JvbGxiYXJzLgorQGludGVyZmFjZSBOU1Njcm9sbGVySW1wIDogTlNPYmplY3QKKworKyAo
aWQpc2Nyb2xsZXJJbXBXaXRoU3R5bGU6KE5TU2Nyb2xsZXJTdHlsZSlzdHlsZQorICAgICAgICAg
ICAgICAgY29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpc2l6ZQorICAgICAgICAgICAgICAgIGhv
cml6b250YWw6KEJPT0wpaG9yaXpvbnRhbAorICAgICAgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6KGlk
KXNjcm9sbGVyOworCitAcHJvcGVydHkgQ0dGbG9hdCBrbm9iQWxwaGE7CitAcHJvcGVydHkgQ0dG
bG9hdCB0cmFja0FscGhhOworQHByb3BlcnR5IENHRmxvYXQga25vYlByb3BvcnRpb247CitAcHJv
cGVydHkoZ2V0dGVyPWlzRW5hYmxlZCkgQk9PTCBlbmFibGVkOworQHByb3BlcnR5KGdldHRlcj1p
c0hvcml6b250YWwpIEJPT0wgaG9yaXpvbnRhbDsKK0Bwcm9wZXJ0eSBkb3VibGUgZG91YmxlVmFs
dWU7CitAcHJvcGVydHkoYXNzaWduKSBpZCBkZWxlZ2F0ZTsKKworLSAoQ0dGbG9hdClrbm9iTWlu
TGVuZ3RoOworLSAoQ0dGbG9hdCl0cmFja0JveFdpZHRoOworLSAoQ0dGbG9hdCl0cmFja1dpZHRo
OworLSAodm9pZClzZXRCb3VuZHNTaXplOihOU1NpemUpc2l6ZTsKKy0gKHZvaWQpZHJhd0tub2JT
bG90SW5SZWN0OihOU1JlY3QpcmVjdAorICAgICAgICAgICAgICAgICBoaWdobGlnaHQ6KEJPT0wp
ZmxhZzsKKy0gKHZvaWQpZHJhd0tub2I7CistICh2b2lkKXNldE92ZXJsYXlTY3JvbGxlclN0YXRl
OihOU1Njcm9sbGVyU3R5bGUpc3RhdGUKKyAgICAgICAgICAgICAgIGZvcmNlSW1tZWRpYXRlbHk6
KEJPT0wpZmxhZzsKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkKWRlbGVnYXRlOworCitAZW5kCisK
Ky8vIFRoZXNlIGFyZSBwcml2YXRlIEFQSXMgdG8gbWFuYWdlIG92ZXJsYXkgc2Nyb2xsYmFycy4K
K0BpbnRlcmZhY2UgTlNTY3JvbGxlckltcFBhaXIgOiBOU09iamVjdAorCitAcHJvcGVydHkgTlNT
Y3JvbGxlclN0eWxlIHNjcm9sbGVyU3R5bGU7CitAcHJvcGVydHkocmV0YWluKSBOU1Njcm9sbGVy
SW1wICpob3Jpem9udGFsU2Nyb2xsZXJJbXA7CitAcHJvcGVydHkocmV0YWluKSBOU1Njcm9sbGVy
SW1wICp2ZXJ0aWNhbFNjcm9sbGVySW1wOworQHByb3BlcnR5KGFzc2lnbikgaWQgZGVsZWdhdGU7
CisKKy0gKHZvaWQpZmxhc2hTY3JvbGxlcnM7CistICh2b2lkKWNvbnRlbnRBcmVhU2Nyb2xsZWQ7
CistICh2b2lkKWNvbnRlbnRBcmVhV2lsbERyYXc7CistICh2b2lkKWNvbnRlbnRBcmVhRGlkSGlk
ZTsKKy0gKHZvaWQpd2luZG93T3JkZXJlZE91dDsKKy0gKHZvaWQpd2luZG93T3JkZXJlZEluOwor
LSAodm9pZCltb3VzZUVudGVyZWRDb250ZW50QXJlYTsKKy0gKHZvaWQpbW91c2VNb3ZlZEluQ29u
dGVudEFyZWE7CistICh2b2lkKW1vdXNlRXhpdGVkQ29udGVudEFyZWE7CistICh2b2lkKXN0YXJ0
TGl2ZVJlc2l6ZTsKKy0gKHZvaWQpY29udGVudEFyZWFEaWRSZXNpemU7CistICh2b2lkKWVuZExp
dmVSZXNpemU7CistICh2b2lkKWJlZ2luU2Nyb2xsR2VzdHVyZTsKKy0gKHZvaWQpZW5kU2Nyb2xs
R2VzdHVyZTsKKworQGVuZAorCitzdGF0aWMgQ2xhc3MgbG9va1VwTlNTY3JvbGxlckltcENsYXNz
KCkKK3sKKyAgICBzdGF0aWMgQ2xhc3MgcmVzdWx0ID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Nj
cm9sbGVySW1wIik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIENsYXNzIGxvb2tV
cE5TU2Nyb2xsZXJJbXBQYWlyQ2xhc3MoKQoreworICAgIHN0YXRpYyBDbGFzcyByZXN1bHQgPSBO
U0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIik7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworc3RhdGljIE5TQ29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29u
dHJvbFNpemUoaW50IGNvbnRyb2xTaXplKQoreworICAgIHJldHVybiBjb250cm9sU2l6ZSA9PSBX
ZWJDb3JlOjpSZWd1bGFyU2Nyb2xsYmFyID8gTlNSZWd1bGFyQ29udHJvbFNpemUgOiBOU1NtYWxs
Q29udHJvbFNpemU7Cit9CisKK3N0YXRpYyBOU1Njcm9sbGVyU3R5bGUgcHJlZmVycmVkU2Nyb2xs
ZXJTdHlsZSgpCit7CisgICAgaWYgKFtOU1Njcm9sbGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IocHJlZmVycmVkU2Nyb2xsZXJTdHlsZSldKQorICAgICAgICByZXR1cm4gW05TU2Nyb2xs
ZXIgcHJlZmVycmVkU2Nyb2xsZXJTdHlsZV07CisgICAgcmV0dXJuIE5TU2Nyb2xsZXJTdHlsZUxl
Z2FjeTsKK30KKworYm9vbCB3a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyh2
b2lkKQoreworICAgIHJldHVybiBwcmVmZXJyZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxl
clN0eWxlT3ZlcmxheTsKK30KKworYm9vbCB3a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwo
V0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCit7CisgICAgcmV0dXJuIFtwYWludGVyIGlz
SG9yaXpvbnRhbF07Cit9CisKK0NHRmxvYXQgd2tTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyKQoreworICAgIHJldHVybiBbcGFpbnRlciBrbm9i
QWxwaGFdOworfQorCit2b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclNldE92ZXJsYXlTdGF0ZShXS1Nj
cm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgaW50IG92ZXJsYXlTY3JvbGxlclN0YXRlKQorewor
ICAgIFtwYWludGVyIHNldE92ZXJsYXlTY3JvbGxlclN0YXRlOm92ZXJsYXlTY3JvbGxlclN0YXRl
CisgICAgICAgICAgICAgICAgICAgIGZvcmNlSW1tZWRpYXRlbHk6WUVTXTsKK30KKwordm9pZCB3
a1Njcm9sbGJhclBhaW50ZXJQYWludChXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgYm9v
bCBlbmFibGVkLCBkb3VibGUgdmFsdWUsIENHRmxvYXQgcHJvcG9ydGlvbiwgTlNSZWN0IGZyYW1l
UmVjdCkKK3sKKyAgICBbcGFpbnRlciBzZXRFbmFibGVkOmVuYWJsZWRdOworICAgIFtwYWludGVy
IHNldEJvdW5kc1NpemU6ZnJhbWVSZWN0LnNpemVdOworICAgIFtwYWludGVyIHNldERvdWJsZVZh
bHVlOnZhbHVlXTsKKyAgICBbcGFpbnRlciBzZXRLbm9iUHJvcG9ydGlvbjpwcm9wb3J0aW9uXTsK
KworICAgIGlmIChbcGFpbnRlciBpc0hvcml6b250YWxdKQorICAgICAgICBmcmFtZVJlY3Quc2l6
ZS5oZWlnaHQgPSBbcGFpbnRlciB0cmFja1dpZHRoXTsKKyAgICBlbHNlCisgICAgICAgIGZyYW1l
UmVjdC5zaXplLndpZHRoID0gW3BhaW50ZXIgdHJhY2tXaWR0aF07CisKKyAgICBbcGFpbnRlciBk
cmF3S25vYlNsb3RJblJlY3Q6ZnJhbWVSZWN0IGhpZ2hsaWdodDpOT107CisgICAgW3BhaW50ZXIg
ZHJhd0tub2JdOworfQorCitpbnQgd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgoV0tTY3Jv
bGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCit7CisgICAgcmV0dXJuIFtwYWludGVyIGtub2JNaW5M
ZW5ndGhdOworfQorCit2b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlKFdLU2Nyb2xs
YmFyUGFpbnRlclJlZiBwYWludGVyLCBpZCBzY3JvbGxiYXJQYWludGVyRGVsZWdhdGUpCit7Cisg
ICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6c2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlXTsKK30KKwor
Q0dGbG9hdCB3a1Njcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJl
ZiBwYWludGVyKQoreworICAgIHJldHVybiBbcGFpbnRlciB0cmFja0FscGhhXTsKK30KKworV0tT
Y3JvbGxiYXJQYWludGVyUmVmIHdrTWFrZVNjcm9sbGJhclBhaW50ZXIoaW50IGNvbnRyb2xTaXpl
LCBib29sIGlzSG9yaXpvbnRhbCkKK3sKKyAgICByZXR1cm4gd2tNYWtlU2Nyb2xsYmFyUmVwbGFj
ZW1lbnRQYWludGVyKG5pbCwgcHJlZmVycmVkU2Nyb2xsZXJTdHlsZSgpLCBjb250cm9sU2l6ZSwg
aXNIb3Jpem9udGFsKTsKK30KKworaW50IHdrU2Nyb2xsYmFyVGhpY2tuZXNzKGludCBjb250cm9s
U2l6ZSkKK3sKKyAgICByZXR1cm4gW3drTWFrZVNjcm9sbGJhclBhaW50ZXIoY29udHJvbFNpemUs
IGZhbHNlKSB0cmFja0JveFdpZHRoXTsKK30KKworaW50IHdrU2Nyb2xsYmFyTWluaW11bVRvdGFs
TGVuZ3RoTmVlZGVkRm9yVGh1bWIoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCit7Cisg
ICAgLy8gVE9ETyhzYWlsKTogVGhpcyBkb2Vzbid0IG1hdGNoIHRoZSBpbXBsZW1lbnRhdGlvbiBp
biBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuCisgICAgcmV0dXJuIHdrU2Nyb2xsYmFyTWluaW11bVRo
dW1iTGVuZ3RoKHBhaW50ZXIpOworfQorCitXS1Njcm9sbGJhclBhaW50ZXJSZWYgd2tWZXJ0aWNh
bFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICByZXR1cm4gW2NvbnRyb2xsZXIgdmVydGljYWxTY3Jv
bGxlckltcF07Cit9CisKK1dLU2Nyb2xsYmFyUGFpbnRlclJlZiB3a0hvcml6b250YWxTY3JvbGxi
YXJQYWludGVyRm9yQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNv
bnRyb2xsZXIpCit7CisgICAgcmV0dXJuIFtjb250cm9sbGVyIGhvcml6b250YWxTY3JvbGxlcklt
cF07Cit9CisKK1dLU2Nyb2xsYmFyUGFpbnRlclJlZiB3a01ha2VTY3JvbGxiYXJSZXBsYWNlbWVu
dFBhaW50ZXIoV0tTY3JvbGxiYXJQYWludGVyUmVmIG9sZFBhaW50ZXIsIGludCBuZXdTdHlsZSwg
aW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRhbCkKK3sKKyAgICBpZiAoIWlzU2Nyb2xs
YmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVy
biBbbG9va1VwTlNTY3JvbGxlckltcENsYXNzKCkgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6bmV3U3R5
bGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRy
b2xTaXplOnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKGNvbnRyb2xTaXplKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcml6b250
YWw6aXNIb3Jpem9udGFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsYWNpbmdTY3JvbGxlckltcDpvbGRQYWludGVyXTsKK30KKwordm9pZCB3a1NldFBhaW50ZXJG
b3JQYWludGVyQ29udHJvbGxlcihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRy
b2xsZXIsIFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyLCBib29sIGlzSG9yaXpvbnRhbCkK
K3sKKyAgICBpZiAoaXNIb3Jpem9udGFsKQorICAgICAgICBbY29udHJvbGxlciBzZXRIb3Jpem9u
dGFsU2Nyb2xsZXJJbXA6cGFpbnRlcl07CisgICAgZWxzZQorICAgICAgICBbY29udHJvbGxlciBz
ZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOworfQorCit2b2lkIHdrU2V0U2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXJTdHlsZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIHBh
aW50ZXIsIGludCBuZXdTdHlsZSkKK3sKKyAgICBbcGFpbnRlciBzZXRTY3JvbGxlclN0eWxlOm5l
d1N0eWxlXTsKK30KKworQ0dSZWN0IHdrU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0KFdLU2Nyb2xs
YmFyUGFpbnRlclJlZiBwYWludGVyKQoreworICAgIHJldHVybiBOU1JlY3RUb0NHUmVjdChOU1pl
cm9SZWN0KTsKK30KKwordm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEoV0tTY3Jv
bGxiYXJQYWludGVyUmVmIHBhaW50ZXIsIENHRmxvYXQgYWxwaGEpCit7CisgICAgW3BhaW50ZXIg
c2V0S25vYkFscGhhOmFscGhhXTsKK30KKwordm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJUcmFj
a0FscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyLCBDR0Zsb2F0IGFscGhhKQorewor
ICAgIFtwYWludGVyIHNldFRyYWNrQWxwaGE6YWxwaGFdOworfQorCit2b2lkIHdrU2V0U2Nyb2xs
YmFyUGFpbnRlcktub2JTdHlsZShXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgd2tTY3Jv
bGxlcktub2JTdHlsZSBzdHlsZSkKK3sKKyAgICAvLyBUT0RPKHNhaWwpOiBBIGtub2Igc3R5bGUg
QVBJIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHNlZWRzIGN1cnJlbnRseSBhdmFpbGFibGUuIAorfQor
CitXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIHdrTWFrZVNjcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyKGlkIHBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUpCit7CisgICAgaWYgKCFpc1Nj
cm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBO
U1Njcm9sbGVySW1wUGFpciogY29udHJvbGxlciA9IFtbW2xvb2tVcE5TU2Nyb2xsZXJJbXBQYWly
Q2xhc3MoKSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIFtjb250cm9sbGVyIHNldERl
bGVnYXRlOnBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGVdOworICAgIFtjb250cm9sbGVyIHNldFNj
cm9sbGVyU3R5bGU6cHJlZmVycmVkU2Nyb2xsZXJTdHlsZSgpXTsKKyAgICByZXR1cm4gY29udHJv
bGxlcjsKK30KKwordm9pZCB3a0NvbnRlbnRBcmVhU2Nyb2xsZWQoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIGNvbnRlbnRBcmVh
U2Nyb2xsZWRdOworfQorCit2b2lkIHdrQ29udGVudEFyZWFXaWxsUGFpbnQoV0tTY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIGNvbnRl
bnRBcmVhV2lsbERyYXddOworfQorCit2b2lkIHdrTW91c2VFbnRlcmVkQ29udGVudEFyZWEoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9s
bGVyIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKK30KKwordm9pZCB3a01vdXNlRXhpdGVkQ29u
dGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQorewor
ICAgIFtjb250cm9sbGVyIG1vdXNlRXhpdGVkQ29udGVudEFyZWFdOworfQorCit2b2lkIHdrTW91
c2VNb3ZlZEluQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250
cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIG1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhXTsKK30K
Kwordm9pZCB3a1dpbGxTdGFydExpdmVSZXNpemUoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIHN0YXJ0TGl2ZVJlc2l6ZV07Cit9
CisKK3ZvaWQgd2tDb250ZW50QXJlYVJlc2l6ZWQoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
clJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIGNvbnRlbnRBcmVhRGlkUmVzaXpl
XTsKK30KKwordm9pZCB3a1dpbGxFbmRMaXZlUmVzaXplKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICBbY29udHJvbGxlciBlbmRMaXZlUmVzaXplXTsK
K30KKwordm9pZCB3a0NvbnRlbnRBcmVhRGlkU2hvdyhXS1Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgd2luZG93T3JkZXJlZEluXTsK
K30KKwordm9pZCB3a0NvbnRlbnRBcmVhRGlkSGlkZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyUmVmIGNvbnRyb2xsZXIpCit7CisgICAgW2NvbnRyb2xsZXIgd2luZG93T3JkZXJlZE91dF07
Cit9CisKK3ZvaWQgd2tEaWRCZWdpblNjcm9sbEdlc3R1cmUoV0tTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlclJlZiBjb250cm9sbGVyKQoreworICAgIFtjb250cm9sbGVyIGJlZ2luU2Nyb2xsR2Vz
dHVyZV07Cit9CisKK3ZvaWQgd2tEaWRFbmRTY3JvbGxHZXN0dXJlKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICBbY29udHJvbGxlciBlbmRTY3JvbGxH
ZXN0dXJlXTsKK30KKwordm9pZCB3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJz
KFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKK3sKKyAgICBbY29u
dHJvbGxlciBmbGFzaFNjcm9sbGVyc107Cit9CisKK2Jvb2wgaXNTY3JvbGxiYXJPdmVybGF5QVBJ
QXZhaWxhYmxlKCkKK3sKKyAgICAvLyBUT0RPKHNhaWwpOiBEaXNhYmxlIG92ZXJsYXkgc2Nyb2xs
YmFycyBmb3Igbm93IHVudGlsIHRoZSBmb2xsb3dpbmcgaXNzdWVzIGFyZSBmaXhlZDoKKyAgICAv
LyAjMTogSW52YWxpZGF0aW9uIGlzc3VlcyBjYXVzZXMgdGhlIHNjcm9sbGJhciB0byBsZWF2ZSB0
cmFpbGluZyBhcnRpZmFjdHMuCisgICAgLy8gIzI6IFZhcmlvdXMgbWVzc2FnZXMgc3VjaCBhcyBs
aXZlIHJlc2l6ZSBzdGFydGVkL2VuZGVkIG5lZWQgdG8gYmUgcGlwZWQgZnJvbSB0aGUgVUkuCisg
ICAgLy8gIzM6IEZpbmQgdGljayBtYXJrcyBuZWVkIHRvIGJlIGRyYXduIG9uIHRoZSBzY3JvbGxi
YXIgdHJhY2suCisgICAgLy8gIzQ6IE5lZWQgdG8gaGF2ZSB0aGUgdGhlbWUgZW5naW5lIGRyYXcg
dGhlIHRodW1iLgorICAgIHJldHVybiBmYWxzZTsKKworICAgIHN0YXRpYyBib29sIGFwaUF2YWls
YWJsZSA9IFtsb29rVXBOU1Njcm9sbGVySW1wQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHNjcm9sbGVySW1wV2l0aFN0eWxlOmNvbnRyb2xTaXplOmhvcml6b250YWw6cmVwbGFj
aW5nU2Nyb2xsZXJJbXA6KV0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9v
a1VwTlNTY3JvbGxlckltcFBhaXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzY3JvbGxlclN0eWxlKV07CisgICAgcmV0dXJuIGFwaUF2YWlsYWJsZTsKK30KKwor
I2VuZGlmIC8vIFVTRShXS19TQ1JPTExCQVJfUEFJTlRFUikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNDaHJvbWl1bU1hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxi
YXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMubW0JKHJldmlzaW9uIDg3Mjk4KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0No
cm9taXVtTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0Uo
V0tfU0NST0xMQkFSX1BBSU5URVIpCiAKLSNpbmNsdWRlICJTY3JvbGxiYXJPdmVybGF5VXRpbGl0
aWVzTWFjLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFj
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlIDxDb2NvYS9Db2NvYS5oPgog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5
VXRpbGl0aWVzTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5oCShyZXZpc2lvbiA4NzI5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRp
ZXNNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxMDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgU2Nyb2xsYmFyT3Zl
cmxheVV0aWxpdGllc01hY19oCi0jZGVmaW5lIFNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNNYWNf
aAotCi0jaWYgVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotCi0vLyBQdWJsaWMgQVBJcyBub3Qg
YXZhaWxhYmxlIG9uIHZlcnNpb25zIG9mIE1hYyBvbiB3aGljaCB3ZSBidWlsZAotI2lmIChkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKSkKLWVudW0gewotICAgIE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSAgICAgICA9IDAsCi0gICAg
TlNTY3JvbGxlclN0eWxlT3ZlcmxheSAgICAgID0gMQotfTsKLXR5cGVkZWYgTlNJbnRlZ2VyIE5T
U2Nyb2xsZXJTdHlsZTsKLSNlbmRpZgotCi0jaWZkZWYgX19PQkpDX18KLUBjbGFzcyBOU1Njcm9s
bGVySW1wOwotQGNsYXNzIE5TU2Nyb2xsZXJJbXBQYWlyOwotI2Vsc2UKLWNsYXNzIE5TU2Nyb2xs
ZXJJbXA7Ci1jbGFzcyBOU1Njcm9sbGVySW1wUGFpcjsKLSNlbmRpZgotCi10eXBlZGVmIE5TU2Ny
b2xsZXJJbXAqIFdLU2Nyb2xsYmFyUGFpbnRlclJlZjsKLXR5cGVkZWYgTlNTY3JvbGxlckltcFBh
aXIqIFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWY7Ci0KLWJvb2wgaXNTY3JvbGxiYXJP
dmVybGF5QVBJQXZhaWxhYmxlKCk7Ci0KLS8vIFNjcm9sbGJhciBQYWludGVyCi1ib29sIHdrU2Ny
b2xsYmFyUGFpbnRlclVzZXNPdmVybGF5U2Nyb2xsZXJzKHZvaWQpOwotYm9vbCB3a1Njcm9sbGJh
clBhaW50ZXJJc0hvcml6b250YWwoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLUNHRmxvYXQgd2tT
Y3JvbGxiYXJQYWludGVyS25vYkFscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZik7Ci12b2lkIHdr
U2Nyb2xsYmFyUGFpbnRlclNldE92ZXJsYXlTdGF0ZShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIGlu
dCBvdmVybGF5U2Nyb2xsZXJTdGF0ZSk7Ci12b2lkIHdrU2Nyb2xsYmFyUGFpbnRlclBhaW50KFdL
U2Nyb2xsYmFyUGFpbnRlclJlZiwgYm9vbCBlbmFibGVkLCBkb3VibGUgdmFsdWUsIENHRmxvYXQg
cHJvcG9ydGlvbiwgTlNSZWN0IGZyYW1lUmVjdCk7Ci1pbnQgd2tTY3JvbGxiYXJNaW5pbXVtVGh1
bWJMZW5ndGgoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLXZvaWQgd2tTY3JvbGxiYXJQYWludGVy
U2V0RGVsZWdhdGUoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBpZCBzY3JvbGxiYXJQYWludGVyRGVs
ZWdhdGUpOwotQ0dGbG9hdCB3a1Njcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKFdLU2Nyb2xsYmFy
UGFpbnRlclJlZik7Ci1XS1Njcm9sbGJhclBhaW50ZXJSZWYgd2tNYWtlU2Nyb2xsYmFyUGFpbnRl
cihpbnQgY29udHJvbFNpemUsIGJvb2wgaXNIb3Jpem9udGFsKTsKLWludCB3a1Njcm9sbGJhclRo
aWNrbmVzcyhpbnQgY29udHJvbFNpemUpOwotaW50IHdrU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVu
Z3RoTmVlZGVkRm9yVGh1bWIoV0tTY3JvbGxiYXJQYWludGVyUmVmKTsKLUNHUmVjdCB3a1Njcm9s
bGJhclBhaW50ZXJLbm9iUmVjdChXS1Njcm9sbGJhclBhaW50ZXJSZWYpOwotV0tTY3JvbGxiYXJQ
YWludGVyUmVmIHdrTWFrZVNjcm9sbGJhclJlcGxhY2VtZW50UGFpbnRlcihXS1Njcm9sbGJhclBh
aW50ZXJSZWYgb2xkUGFpbnRlciwgaW50IG5ld1N0eWxlLCBpbnQgY29udHJvbFNpemUsIGJvb2wg
aXNIb3Jpem9udGFsKTsKLXZvaWQgd2tTZXRTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKFdLU2Ny
b2xsYmFyUGFpbnRlclJlZiwgQ0dGbG9hdCk7Ci12b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlclRy
YWNrQWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVmLCBDR0Zsb2F0KTsKLQotZW51bSB7Ci0gICAg
d2tTY3JvbGxlcktub2JTdHlsZURlZmF1bHQgPSAwLAotICAgIHdrU2Nyb2xsZXJLbm9iU3R5bGVE
YXJrID0gMSwKLSAgICB3a1Njcm9sbGVyS25vYlN0eWxlTGlnaHQgPSAyCi19OwotdHlwZWRlZiB1
aW50MzIgd2tTY3JvbGxlcktub2JTdHlsZTsKLWV4dGVybiB2b2lkIHdrU2V0U2Nyb2xsYmFyUGFp
bnRlcktub2JTdHlsZShXS1Njcm9sbGJhclBhaW50ZXJSZWYsIHdrU2Nyb2xsZXJLbm9iU3R5bGUp
OwotCi0vLyBTY3JvbGxiYXIgUGFpbnRlciBDb250cm9sbGVyCi1XS1Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyUmVmIHdrTWFrZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyKGlkIHBhaW50ZXJD
b250cm9sbGVyRGVsZWdhdGUpOwotdm9pZCB3a0NvbnRlbnRBcmVhU2Nyb2xsZWQoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkIHdrQ29udGVudEFyZWFXaWxsUGFpbnQoV0tT
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkIHdrTW91c2VFbnRlcmVkQ29udGVu
dEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZik7Ci12b2lkIHdrTW91c2VFeGl0
ZWRDb250ZW50QXJlYShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgd2tN
b3VzZU1vdmVkSW5Db250ZW50QXJlYShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsK
LXZvaWQgd2tXaWxsU3RhcnRMaXZlUmVzaXplKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJS
ZWYpOwotdm9pZCB3a0NvbnRlbnRBcmVhUmVzaXplZChXS1Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyUmVmKTsKLXZvaWQgd2tXaWxsRW5kTGl2ZVJlc2l6ZShXS1Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyUmVmKTsKLXZvaWQgd2tDb250ZW50QXJlYURpZFNob3coV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZik7Ci12b2lkIHdrQ29udGVudEFyZWFEaWRIaWRlKFdLU2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCB3a0RpZEJlZ2luU2Nyb2xsR2VzdHVyZShXS1Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyUmVmKTsKLXZvaWQgd2tEaWRFbmRTY3JvbGxHZXN0dXJlKFdL
U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9pZCB3a1Njcm9sbGJhclBhaW50ZXJG
b3JjZUZsYXNoU2Nyb2xsZXJzKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwotdm9p
ZCB3a1NldFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyU3R5bGUoV0tTY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlclJlZiwgaW50IG5ld1N0eWxlKTsKLXZvaWQgd2tTZXRQYWludGVyRm9yUGFpbnRl
ckNvbnRyb2xsZXIoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiwgV0tTY3JvbGxiYXJQ
YWludGVyUmVmLCBib29sIGlzSG9yaXpvbnRhbCk7Ci1XS1Njcm9sbGJhclBhaW50ZXJSZWYgd2tW
ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJGb3JDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJSZWYpOwotV0tTY3JvbGxiYXJQYWludGVyUmVmIHdrSG9yaXpvbnRhbFNjcm9sbGJh
clBhaW50ZXJGb3JDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYpOwot
Ci0jZW5kaWYgLy8gVVNFKFdLX1NDUk9MTEJBUl9QQUlOVEVSKQotCi0jZW5kaWYgLy8gU2Nyb2xs
YmFyT3ZlcmxheVV0aWxpdGllc01hY19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNN
YWMubW0JKHJldmlzaW9uIDg3Mjk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSwz
NDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShXS19TQ1JPTExCQVJfUEFJTlRF
UikKLQotI2luY2x1ZGUgIlNjcm9sbGJhck92ZXJsYXlVdGlsaXRpZXNNYWMuaCIKLSNpbmNsdWRl
ICJTY3JvbGxUeXBlcy5oIgotI2luY2x1ZGUgPENvY29hL0NvY29hLmg+Ci0KLS8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBUaGlzIGZpbGUgY29udGFpbnMgdXRpbGl0aWVzIHRvIGRyYXcgb3Zl
cmxheSBzY3JvbGxiYXJzLiBUaGVyZSBhcmUgbm8gcHVibGljCi0vLyBBUElzIHlldCBvbiB0aGUg
TWFjIHRvIGRyYXcgb3ZlcmxheSBzY3JvbGxiYXJzIHNvIHdlIHVzZSBwcml2YXRlIEFQSXMgdGhh
dAotLy8gd2UgbG9vayB1cCBhdCBydW50aW1lLiBJZiB0aGUgcHJpdmF0ZSBBUElzIGRvbid0IGV4
aXN0IHRoZW4gdGhlIHdrTWFrZSoKLS8vIGZ1bmN0aW9ucyB3aWxsIHJldHVybiBuaWwuCi0vLwot
Ly8gTm90ZSwgdGhpcyBmaWxlIGNvbnRhaW5zIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmguCi0vLyBVc2luZyB0aGUgc2FtZSBuYW1lcyBtYWtlcyB0aGUgY29k
ZSBlYXNpZXIgdG8gbWFpbnRhaW4uCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0vLyBQdWJs
aWMgQVBJcyBub3QgYXZhaWxhYmxlIG9uIHZlcnNpb25zIG9mIE1hYyBvbiB3aGljaCB3ZSBidWls
ZAotI2lmIChkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSkKLUBpbnRlcmZhY2UgTlNTY3JvbGxlciAoTlNPYmplY3QpCi0rIChO
U1Njcm9sbGVyU3R5bGUpcHJlZmVycmVkU2Nyb2xsZXJTdHlsZTsKLUBlbmQKLSNlbmRpZgotCi0v
LyBUaGVzZSBhcmUgcHJpdmF0ZSBBUElzIHRvIGRyYXcgb3ZlcmxheSBzY3JvbGxiYXJzLgotQGlu
dGVyZmFjZSBOU1Njcm9sbGVySW1wIDogTlNPYmplY3QKLQotKyAoaWQpc2Nyb2xsZXJJbXBXaXRo
U3R5bGU6KE5TU2Nyb2xsZXJTdHlsZSlzdHlsZQotICAgICAgICAgICAgICAgY29udHJvbFNpemU6
KE5TQ29udHJvbFNpemUpc2l6ZQotICAgICAgICAgICAgICAgIGhvcml6b250YWw6KEJPT0wpaG9y
aXpvbnRhbAotICAgICAgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6KGlkKXNjcm9sbGVyOwotCi1AcHJv
cGVydHkgQ0dGbG9hdCBrbm9iQWxwaGE7Ci1AcHJvcGVydHkgQ0dGbG9hdCB0cmFja0FscGhhOwot
QHByb3BlcnR5IENHRmxvYXQga25vYlByb3BvcnRpb247Ci1AcHJvcGVydHkoZ2V0dGVyPWlzRW5h
YmxlZCkgQk9PTCBlbmFibGVkOwotQHByb3BlcnR5KGdldHRlcj1pc0hvcml6b250YWwpIEJPT0wg
aG9yaXpvbnRhbDsKLUBwcm9wZXJ0eSBkb3VibGUgZG91YmxlVmFsdWU7Ci1AcHJvcGVydHkoYXNz
aWduKSBpZCBkZWxlZ2F0ZTsKLQotLSAoQ0dGbG9hdClrbm9iTWluTGVuZ3RoOwotLSAoQ0dGbG9h
dCl0cmFja0JveFdpZHRoOwotLSAoQ0dGbG9hdCl0cmFja1dpZHRoOwotLSAodm9pZClzZXRCb3Vu
ZHNTaXplOihOU1NpemUpc2l6ZTsKLS0gKHZvaWQpZHJhd0tub2JTbG90SW5SZWN0OihOU1JlY3Qp
cmVjdAotICAgICAgICAgICAgICAgICBoaWdobGlnaHQ6KEJPT0wpZmxhZzsKLS0gKHZvaWQpZHJh
d0tub2I7Ci0tICh2b2lkKXNldE92ZXJsYXlTY3JvbGxlclN0YXRlOihOU1Njcm9sbGVyU3R5bGUp
c3RhdGUKLSAgICAgICAgICAgICAgIGZvcmNlSW1tZWRpYXRlbHk6KEJPT0wpZmxhZzsKLS0gKHZv
aWQpc2V0RGVsZWdhdGU6KGlkKWRlbGVnYXRlOwotCi1AZW5kCi0KLS8vIFRoZXNlIGFyZSBwcml2
YXRlIEFQSXMgdG8gbWFuYWdlIG92ZXJsYXkgc2Nyb2xsYmFycy4KLUBpbnRlcmZhY2UgTlNTY3Jv
bGxlckltcFBhaXIgOiBOU09iamVjdAotCi1AcHJvcGVydHkgTlNTY3JvbGxlclN0eWxlIHNjcm9s
bGVyU3R5bGU7Ci1AcHJvcGVydHkocmV0YWluKSBOU1Njcm9sbGVySW1wICpob3Jpem9udGFsU2Ny
b2xsZXJJbXA7Ci1AcHJvcGVydHkocmV0YWluKSBOU1Njcm9sbGVySW1wICp2ZXJ0aWNhbFNjcm9s
bGVySW1wOwotQHByb3BlcnR5KGFzc2lnbikgaWQgZGVsZWdhdGU7Ci0KLS0gKHZvaWQpZmxhc2hT
Y3JvbGxlcnM7Ci0tICh2b2lkKWNvbnRlbnRBcmVhU2Nyb2xsZWQ7Ci0tICh2b2lkKWNvbnRlbnRB
cmVhV2lsbERyYXc7Ci0tICh2b2lkKWNvbnRlbnRBcmVhRGlkSGlkZTsKLS0gKHZvaWQpd2luZG93
T3JkZXJlZE91dDsKLS0gKHZvaWQpd2luZG93T3JkZXJlZEluOwotLSAodm9pZCltb3VzZUVudGVy
ZWRDb250ZW50QXJlYTsKLS0gKHZvaWQpbW91c2VNb3ZlZEluQ29udGVudEFyZWE7Ci0tICh2b2lk
KW1vdXNlRXhpdGVkQ29udGVudEFyZWE7Ci0tICh2b2lkKXN0YXJ0TGl2ZVJlc2l6ZTsKLS0gKHZv
aWQpY29udGVudEFyZWFEaWRSZXNpemU7Ci0tICh2b2lkKWVuZExpdmVSZXNpemU7Ci0tICh2b2lk
KWJlZ2luU2Nyb2xsR2VzdHVyZTsKLS0gKHZvaWQpZW5kU2Nyb2xsR2VzdHVyZTsKLQotQGVuZAot
Ci1zdGF0aWMgQ2xhc3MgbG9va1VwTlNTY3JvbGxlckltcENsYXNzKCkKLXsKLSAgICBzdGF0aWMg
Q2xhc3MgcmVzdWx0ID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIik7Ci0gICAg
cmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIENsYXNzIGxvb2tVcE5TU2Nyb2xsZXJJbXBQYWly
Q2xhc3MoKQotewotICAgIHN0YXRpYyBDbGFzcyByZXN1bHQgPSBOU0NsYXNzRnJvbVN0cmluZyhA
Ik5TU2Nyb2xsZXJJbXBQYWlyIik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIE5T
Q29udHJvbFNpemUgc2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUoaW50IGNvbnRy
b2xTaXplKQotewotICAgIHJldHVybiBjb250cm9sU2l6ZSA9PSBXZWJDb3JlOjpSZWd1bGFyU2Ny
b2xsYmFyID8gTlNSZWd1bGFyQ29udHJvbFNpemUgOiBOU1NtYWxsQ29udHJvbFNpemU7Ci19Ci0K
LXN0YXRpYyBOU1Njcm9sbGVyU3R5bGUgcHJlZmVycmVkU2Nyb2xsZXJTdHlsZSgpCi17Ci0gICAg
aWYgKFtOU1Njcm9sbGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlZmVycmVkU2Ny
b2xsZXJTdHlsZSldKQotICAgICAgICByZXR1cm4gW05TU2Nyb2xsZXIgcHJlZmVycmVkU2Nyb2xs
ZXJTdHlsZV07Ci0gICAgcmV0dXJuIE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeTsKLX0KLQotYm9vbCB3
a1Njcm9sbGJhclBhaW50ZXJVc2VzT3ZlcmxheVNjcm9sbGVycyh2b2lkKQotewotICAgIHJldHVy
biBwcmVmZXJyZWRTY3JvbGxlclN0eWxlKCkgPT0gTlNTY3JvbGxlclN0eWxlT3ZlcmxheTsKLX0K
LQotYm9vbCB3a1Njcm9sbGJhclBhaW50ZXJJc0hvcml6b250YWwoV0tTY3JvbGxiYXJQYWludGVy
UmVmIHBhaW50ZXIpCi17Ci0gICAgcmV0dXJuIFtwYWludGVyIGlzSG9yaXpvbnRhbF07Ci19Ci0K
LUNHRmxvYXQgd2tTY3JvbGxiYXJQYWludGVyS25vYkFscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJl
ZiBwYWludGVyKQotewotICAgIHJldHVybiBbcGFpbnRlciBrbm9iQWxwaGFdOwotfQotCi12b2lk
IHdrU2Nyb2xsYmFyUGFpbnRlclNldE92ZXJsYXlTdGF0ZShXS1Njcm9sbGJhclBhaW50ZXJSZWYg
cGFpbnRlciwgaW50IG92ZXJsYXlTY3JvbGxlclN0YXRlKQotewotICAgIFtwYWludGVyIHNldE92
ZXJsYXlTY3JvbGxlclN0YXRlOm92ZXJsYXlTY3JvbGxlclN0YXRlCi0gICAgICAgICAgICAgICAg
ICAgIGZvcmNlSW1tZWRpYXRlbHk6WUVTXTsKLX0KLQotdm9pZCB3a1Njcm9sbGJhclBhaW50ZXJQ
YWludChXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgYm9vbCBlbmFibGVkLCBkb3VibGUg
dmFsdWUsIENHRmxvYXQgcHJvcG9ydGlvbiwgTlNSZWN0IGZyYW1lUmVjdCkKLXsKLSAgICBbcGFp
bnRlciBzZXRFbmFibGVkOmVuYWJsZWRdOwotICAgIFtwYWludGVyIHNldEJvdW5kc1NpemU6ZnJh
bWVSZWN0LnNpemVdOwotICAgIFtwYWludGVyIHNldERvdWJsZVZhbHVlOnZhbHVlXTsKLSAgICBb
cGFpbnRlciBzZXRLbm9iUHJvcG9ydGlvbjpwcm9wb3J0aW9uXTsKLQotICAgIGlmIChbcGFpbnRl
ciBpc0hvcml6b250YWxdKQotICAgICAgICBmcmFtZVJlY3Quc2l6ZS5oZWlnaHQgPSBbcGFpbnRl
ciB0cmFja1dpZHRoXTsKLSAgICBlbHNlCi0gICAgICAgIGZyYW1lUmVjdC5zaXplLndpZHRoID0g
W3BhaW50ZXIgdHJhY2tXaWR0aF07Ci0KLSAgICBbcGFpbnRlciBkcmF3S25vYlNsb3RJblJlY3Q6
ZnJhbWVSZWN0IGhpZ2hsaWdodDpOT107Ci0gICAgW3BhaW50ZXIgZHJhd0tub2JdOwotfQotCi1p
bnQgd2tTY3JvbGxiYXJNaW5pbXVtVGh1bWJMZW5ndGgoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBh
aW50ZXIpCi17Ci0gICAgcmV0dXJuIFtwYWludGVyIGtub2JNaW5MZW5ndGhdOwotfQotCi12b2lk
IHdrU2Nyb2xsYmFyUGFpbnRlclNldERlbGVnYXRlKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWlu
dGVyLCBpZCBzY3JvbGxiYXJQYWludGVyRGVsZWdhdGUpCi17Ci0gICAgW3BhaW50ZXIgc2V0RGVs
ZWdhdGU6c2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlXTsKLX0KLQotQ0dGbG9hdCB3a1Njcm9sbGJh
clBhaW50ZXJUcmFja0FscGhhKFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWludGVyKQotewotICAg
IHJldHVybiBbcGFpbnRlciB0cmFja0FscGhhXTsKLX0KLQotV0tTY3JvbGxiYXJQYWludGVyUmVm
IHdrTWFrZVNjcm9sbGJhclBhaW50ZXIoaW50IGNvbnRyb2xTaXplLCBib29sIGlzSG9yaXpvbnRh
bCkKLXsKLSAgICByZXR1cm4gd2tNYWtlU2Nyb2xsYmFyUmVwbGFjZW1lbnRQYWludGVyKG5pbCwg
cHJlZmVycmVkU2Nyb2xsZXJTdHlsZSgpLCBjb250cm9sU2l6ZSwgaXNIb3Jpem9udGFsKTsKLX0K
LQotaW50IHdrU2Nyb2xsYmFyVGhpY2tuZXNzKGludCBjb250cm9sU2l6ZSkKLXsKLSAgICByZXR1
cm4gW3drTWFrZVNjcm9sbGJhclBhaW50ZXIoY29udHJvbFNpemUsIGZhbHNlKSB0cmFja0JveFdp
ZHRoXTsKLX0KLQotaW50IHdrU2Nyb2xsYmFyTWluaW11bVRvdGFsTGVuZ3RoTmVlZGVkRm9yVGh1
bWIoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBhaW50ZXIpCi17Ci0gICAgLy8gVE9ETyhzYWlsKTog
VGhpcyBkb2Vzbid0IG1hdGNoIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2UuCi0gICAgcmV0dXJuIHdrU2Nyb2xsYmFyTWluaW11bVRodW1iTGVuZ3RoKHBhaW50ZXIp
OwotfQotCi1XS1Njcm9sbGJhclBhaW50ZXJSZWYgd2tWZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJG
b3JDb250cm9sbGVyKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikK
LXsKLSAgICByZXR1cm4gW2NvbnRyb2xsZXIgdmVydGljYWxTY3JvbGxlckltcF07Ci19Ci0KLVdL
U2Nyb2xsYmFyUGFpbnRlclJlZiB3a0hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRm9yQ29udHJv
bGxlcihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIpCi17Ci0gICAg
cmV0dXJuIFtjb250cm9sbGVyIGhvcml6b250YWxTY3JvbGxlckltcF07Ci19Ci0KLVdLU2Nyb2xs
YmFyUGFpbnRlclJlZiB3a01ha2VTY3JvbGxiYXJSZXBsYWNlbWVudFBhaW50ZXIoV0tTY3JvbGxi
YXJQYWludGVyUmVmIG9sZFBhaW50ZXIsIGludCBuZXdTdHlsZSwgaW50IGNvbnRyb2xTaXplLCBi
b29sIGlzSG9yaXpvbnRhbCkKLXsKLSAgICBpZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWls
YWJsZSgpKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBbbG9va1VwTlNTY3JvbGxl
ckltcENsYXNzKCkgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6bmV3U3R5bGUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xTaXplOnNjcm9sbGJhckNv
bnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKGNvbnRyb2xTaXplKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcml6b250YWw6aXNIb3Jpem9udGFsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNpbmdTY3JvbGxlcklt
cDpvbGRQYWludGVyXTsKLX0KLQotdm9pZCB3a1NldFBhaW50ZXJGb3JQYWludGVyQ29udHJvbGxl
cihXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIsIFdLU2Nyb2xsYmFy
UGFpbnRlclJlZiBwYWludGVyLCBib29sIGlzSG9yaXpvbnRhbCkKLXsKLSAgICBpZiAoaXNIb3Jp
em9udGFsKQotICAgICAgICBbY29udHJvbGxlciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6cGFp
bnRlcl07Ci0gICAgZWxzZQotICAgICAgICBbY29udHJvbGxlciBzZXRWZXJ0aWNhbFNjcm9sbGVy
SW1wOnBhaW50ZXJdOwotfQotCi12b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJT
dHlsZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIHBhaW50ZXIsIGludCBuZXdTdHls
ZSkKLXsKLSAgICBbcGFpbnRlciBzZXRTY3JvbGxlclN0eWxlOm5ld1N0eWxlXTsKLX0KLQotQ0dS
ZWN0IHdrU2Nyb2xsYmFyUGFpbnRlcktub2JSZWN0KFdLU2Nyb2xsYmFyUGFpbnRlclJlZiBwYWlu
dGVyKQotewotICAgIHJldHVybiBOU1JlY3RUb0NHUmVjdChOU1plcm9SZWN0KTsKLX0KLQotdm9p
ZCB3a1NldFNjcm9sbGJhclBhaW50ZXJLbm9iQWxwaGEoV0tTY3JvbGxiYXJQYWludGVyUmVmIHBh
aW50ZXIsIENHRmxvYXQgYWxwaGEpCi17Ci0gICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOmFscGhh
XTsKLX0KLQotdm9pZCB3a1NldFNjcm9sbGJhclBhaW50ZXJUcmFja0FscGhhKFdLU2Nyb2xsYmFy
UGFpbnRlclJlZiBwYWludGVyLCBDR0Zsb2F0IGFscGhhKQotewotICAgIFtwYWludGVyIHNldFRy
YWNrQWxwaGE6YWxwaGFdOwotfQotCi12b2lkIHdrU2V0U2Nyb2xsYmFyUGFpbnRlcktub2JTdHls
ZShXS1Njcm9sbGJhclBhaW50ZXJSZWYgcGFpbnRlciwgd2tTY3JvbGxlcktub2JTdHlsZSBzdHls
ZSkKLXsKLSAgICAvLyBUT0RPKHNhaWwpOiBBIGtub2Igc3R5bGUgQVBJIGRvZXNuJ3QgZXhpc3Qg
aW4gdGhlIHNlZWRzIGN1cnJlbnRseSBhdmFpbGFibGUuIAotfQotCi1XS1Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyUmVmIHdrTWFrZVNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyKGlkIHBhaW50
ZXJDb250cm9sbGVyRGVsZWdhdGUpCi17Ci0gICAgaWYgKCFpc1Njcm9sbGJhck92ZXJsYXlBUElB
dmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBOU1Njcm9sbGVySW1wUGFpciog
Y29udHJvbGxlciA9IFtbW2xvb2tVcE5TU2Nyb2xsZXJJbXBQYWlyQ2xhc3MoKSBhbGxvY10gaW5p
dF0gYXV0b3JlbGVhc2VdOwotICAgIFtjb250cm9sbGVyIHNldERlbGVnYXRlOnBhaW50ZXJDb250
cm9sbGVyRGVsZWdhdGVdOwotICAgIFtjb250cm9sbGVyIHNldFNjcm9sbGVyU3R5bGU6cHJlZmVy
cmVkU2Nyb2xsZXJTdHlsZSgpXTsKLSAgICByZXR1cm4gY29udHJvbGxlcjsKLX0KLQotdm9pZCB3
a0NvbnRlbnRBcmVhU2Nyb2xsZWQoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250
cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIGNvbnRlbnRBcmVhU2Nyb2xsZWRdOwotfQotCi12
b2lkIHdrQ29udGVudEFyZWFXaWxsUGFpbnQoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJl
ZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIGNvbnRlbnRBcmVhV2lsbERyYXddOwot
fQotCi12b2lkIHdrTW91c2VFbnRlcmVkQ29udGVudEFyZWEoV0tTY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIG1vdXNlRW50ZXJlZENv
bnRlbnRBcmVhXTsKLX0KLQotdm9pZCB3a01vdXNlRXhpdGVkQ29udGVudEFyZWEoV0tTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtjb250cm9sbGVyIG1v
dXNlRXhpdGVkQ29udGVudEFyZWFdOwotfQotCi12b2lkIHdrTW91c2VNb3ZlZEluQ29udGVudEFy
ZWEoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQotewotICAgIFtj
b250cm9sbGVyIG1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhXTsKLX0KLQotdm9pZCB3a1dpbGxTdGFy
dExpdmVSZXNpemUoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQot
ewotICAgIFtjb250cm9sbGVyIHN0YXJ0TGl2ZVJlc2l6ZV07Ci19Ci0KLXZvaWQgd2tDb250ZW50
QXJlYVJlc2l6ZWQoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9sbGVyKQot
ewotICAgIFtjb250cm9sbGVyIGNvbnRlbnRBcmVhRGlkUmVzaXplXTsKLX0KLQotdm9pZCB3a1dp
bGxFbmRMaXZlUmVzaXplKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29udHJvbGxl
cikKLXsKLSAgICBbY29udHJvbGxlciBlbmRMaXZlUmVzaXplXTsKLX0KLQotdm9pZCB3a0NvbnRl
bnRBcmVhRGlkU2hvdyhXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIp
Ci17Ci0gICAgW2NvbnRyb2xsZXIgd2luZG93T3JkZXJlZEluXTsKLX0KLQotdm9pZCB3a0NvbnRl
bnRBcmVhRGlkSGlkZShXS1Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyUmVmIGNvbnRyb2xsZXIp
Ci17Ci0gICAgW2NvbnRyb2xsZXIgd2luZG93T3JkZXJlZE91dF07Ci19Ci0KLXZvaWQgd2tEaWRC
ZWdpblNjcm9sbEdlc3R1cmUoV0tTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlclJlZiBjb250cm9s
bGVyKQotewotICAgIFtjb250cm9sbGVyIGJlZ2luU2Nyb2xsR2VzdHVyZV07Ci19Ci0KLXZvaWQg
d2tEaWRFbmRTY3JvbGxHZXN0dXJlKFdLU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJSZWYgY29u
dHJvbGxlcikKLXsKLSAgICBbY29udHJvbGxlciBlbmRTY3JvbGxHZXN0dXJlXTsKLX0KLQotdm9p
ZCB3a1Njcm9sbGJhclBhaW50ZXJGb3JjZUZsYXNoU2Nyb2xsZXJzKFdLU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJSZWYgY29udHJvbGxlcikKLXsKLSAgICBbY29udHJvbGxlciBmbGFzaFNjcm9s
bGVyc107Ci19Ci0KLWJvb2wgaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkKLXsKLSAg
ICAvLyBUT0RPKHNhaWwpOiBEaXNhYmxlIG92ZXJsYXkgc2Nyb2xsYmFycyBmb3Igbm93IHVudGls
IHRoZSBmb2xsb3dpbmcgaXNzdWVzIGFyZSBmaXhlZDoKLSAgICAvLyAjMTogSW52YWxpZGF0aW9u
IGlzc3VlcyBjYXVzZXMgdGhlIHNjcm9sbGJhciB0byBsZWF2ZSB0cmFpbGluZyBhcnRpZmFjdHMu
Ci0gICAgLy8gIzI6IFZhcmlvdXMgbWVzc2FnZXMgc3VjaCBhcyBsaXZlIHJlc2l6ZSBzdGFydGVk
L2VuZGVkIG5lZWQgdG8gYmUgcGlwZWQgZnJvbSB0aGUgVUkuCi0gICAgLy8gIzM6IEZpbmQgdGlj
ayBtYXJrcyBuZWVkIHRvIGJlIGRyYXduIG9uIHRoZSBzY3JvbGxiYXIgdHJhY2suCi0gICAgLy8g
IzQ6IE5lZWQgdG8gaGF2ZSB0aGUgdGhlbWUgZW5naW5lIGRyYXcgdGhlIHRodW1iLgotICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHN0YXRpYyBib29sIGFwaUF2YWlsYWJsZSA9IFtsb29rVXBOU1Nj
cm9sbGVySW1wQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNjcm9sbGVySW1w
V2l0aFN0eWxlOmNvbnRyb2xTaXplOmhvcml6b250YWw6cmVwbGFjaW5nU2Nyb2xsZXJJbXA6KV0g
JiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9va1VwTlNTY3JvbGxlckltcFBh
aXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihzY3JvbGxlclN0
eWxlKV07Ci0gICAgcmV0dXJuIGFwaUF2YWlsYWJsZTsKLX0KLQotI2VuZGlmIC8vIFVTRShXS19T
Q1JPTExCQVJfUEFJTlRFUikK
</data>

          </attachment>
      

    </bug>

</bugzilla>