<?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>55388</bug_id>
          
          <creation_ts>2011-02-28 10:27:49 -0800</creation_ts>
          <short_desc>REGRESSION(r79877): Breaks chromium build (Requested by antonm_ on #webkit).</short_desc>
          <delta_ts>2011-02-28 10:30:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>55259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>pfeldman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>359150</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-28 10:27:49 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/79877 broke the build:
Breaks chromium build (Requested by antonm_ on #webkit).

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

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359151</commentid>
    <comment_count>1</comment_count>
      <attachid>84080</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-28 10:28:10 -0800</bug_when>
    <thetext>Created attachment 84080
ROLLOUT of r79877

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

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

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359155</commentid>
    <comment_count>2</comment_count>
      <attachid>84080</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-28 10:30:41 -0800</bug_when>
    <thetext>Comment on attachment 84080
ROLLOUT of r79877

Clearing flags on attachment: 84080

Committed r79882: &lt;http://trac.webkit.org/changeset/79882&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359156</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-28 10:30:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84080</attachid>
            <date>2011-02-28 10:28:10 -0800</date>
            <delta_ts>2011-02-28 10:30:41 -0800</delta_ts>
            <desc>ROLLOUT of r79877</desc>
            <filename>bug-55388-20110228182706.patch</filename>
            <type>text/plain</type>
            <size>38988</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4ODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOGM0NmJmODU1ZGU2NzQ4
OGYwYTAyNWUxYjlmYzYwMGQ3NDZkYmVlLi5jM2U5ZmEwZWNjZTA3OWNmMDY0Zjg0ODZkM2MyYTJk
NDYzYjRkZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDItMjggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI3OTg3Ny4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvNzk4NzcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1Mzg4CisKKyAgICAgICAgQnJlYWtzIGNocm9taXVtIGJ1aWxkIChSZXF1ZXN0ZWQg
YnkgYW50b25tXyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHNJ
ZkRpcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjpyZXNpemVV
cGxvYWRCdWZmZXJGb3JJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJv
bWl1bTo6cmVzaXplVXBsb2FkQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNrQml0bWFwQ29u
ZGl0aW9uYWxBdXRvTG9ja2VyUGl4ZWxzOjpTa0JpdG1hcENvbmRpdGlvbmFsQXV0b0xvY2tlclBp
eGVscyk6CisgICAgICAgIChXZWJDb3JlOjpTa0JpdG1hcENvbmRpdGlvbmFsQXV0b0xvY2tlclBp
eGVsczo6flNrQml0bWFwQ29uZGl0aW9uYWxBdXRvTG9ja2VyUGl4ZWxzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNrQml0bWFwQ29uZGl0aW9uYWxBdXRvTG9ja2VyUGl4ZWxzOjpsb2NrUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OmRyYXcpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVt
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29u
dGVudHNJZkRpcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclRpbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxlckNocm9t
aXVtOjpjb250ZW50UmVjdFRvVGlsZUluZGljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJU
aWxlckNocm9taXVtOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyVGlsZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1BsYXRmb3JtQ2FudmFzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSW1hZ2UuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSW1hZ2UuaDogUmVtb3Zl
ZC4KKwogMjAxMS0wMi0yOCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGM5ZTMxZWU1YTg0N2VlNzAyODIxYjU2MjJjYTE0NmUwMjRmOWQ0N2QuLjY2ZmYzMzE3MjE1
NTU1NDJjMGU1NDAwMWMwZWY1YTYzNjMyY2RlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI2MjIs
MTAgKzI2MjIsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyVGlsZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9NZWRpYVBsYXllclByaXZhdGVDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUljb24uaCcsCi0gICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuY3BwJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5oJywKLSAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUltYWdlLmNwcCcsCi0gICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JbWFnZS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGx1Z2luTGF5ZXJD
aHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Qcm9n
cmFtQmluZGluZy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCmluZGV4
IGE0YjgwYzc5ZTMwMTcyNWQ0OWVmZWFlY2M1NTY1ZjZjYzUzMmJiYmQuLjI1NzNlZDNkZTBlMDg3
OWZiYTdlYzk1OWNkZTNiMjQ5ZTIyMzRiMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJv
bWl1bS5jcHAKQEAgLTQwLDYgKzQwLDE1IEBACiAjaW5jbHVkZSAiTGF5ZXJUZXh0dXJlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAKKyNpZiBVU0UoU0tJQSkKKyNpbmNsdWRl
ICJOYXRpdmVJbWFnZVNraWEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCisj
aW5jbHVkZSAiU2tDb2xvclByaXYuaCIKKyNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52
YXMuaCIKKyNlbGlmIFBMQVRGT1JNKENHKQorI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1h
cENvbnRleHQuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8
Q29udGVudExheWVyQ2hyb21pdW0+IENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoR3JhcGhp
Y3NMYXllckNocm9taXVtKiBvd25lcikKQEAgLTEyNyw3ICsxMzYsNyBAQCB2b2lkIENvbnRlbnRM
YXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c0lmRGlydHkoKQogICAgICAgICB9CiAKICAgICAg
ICAgLy8gSWYgd2UgbmVlZCB0byByZXNpemUgdGhlIHVwbG9hZCBidWZmZXIgd2UgaGF2ZSB0byBy
ZXBhaW50IGV2ZXJ5dGhpbmcuCi0gICAgICAgIGlmIChtX2NhbnZhcy5zaXplKCkgIT0gdmlzaWJs
ZVJlY3RJbkxheWVyQ29vcmRzLnNpemUoKSkgeworICAgICAgICBpZiAobV91cGxvYWRCdWZmZXJT
aXplICE9IHZpc2libGVSZWN0SW5MYXllckNvb3Jkcy5zaXplKCkpIHsKICAgICAgICAgICAgIHJl
c2l6ZVVwbG9hZEJ1ZmZlcih2aXNpYmxlUmVjdEluTGF5ZXJDb29yZHMuc2l6ZSgpKTsKICAgICAg
ICAgICAgIG1fZGlydHlSZWN0ID0gYm91bmRzUmVjdDsKICAgICAgICAgfQpAQCAtMTUyLDcgKzE2
MSw3IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzSWZEaXJ0eSgp
CiAgICAgICAgIGRpcnR5UmVjdCA9IEludFJlY3QobV9kaXJ0eVJlY3QpOwogICAgICAgICAvLyBJ
ZiB0aGUgdGV4dHVyZSBuZWVkcyB0byBiZSByZWFsbG9jYXRlZCB0aGVuIHdlIG11c3QgcmVkcmF3
IHRoZSBlbnRpcmUKICAgICAgICAgLy8gY29udGVudHMgb2YgdGhlIGxheWVyLgotICAgICAgICBp
ZiAobV9jYW52YXMuc2l6ZSgpICE9IGJvdW5kcygpKSB7CisgICAgICAgIGlmIChtX3VwbG9hZEJ1
ZmZlclNpemUgIT0gYm91bmRzKCkpIHsKICAgICAgICAgICAgIHJlc2l6ZVVwbG9hZEJ1ZmZlcihi
b3VuZHMoKSk7CiAgICAgICAgICAgICBkaXJ0eVJlY3QgPSBib3VuZHNSZWN0OwogICAgICAgICB9
IGVsc2UgewpAQCAtMTY2LDI5ICsxNzUsMTA2IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnVwZGF0ZUNvbnRlbnRzSWZEaXJ0eSgpCiAgICAgaWYgKGRpcnR5UmVjdC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVyIHBhaW50ZXIoJm1f
Y2FudmFzKTsKLSAgICBwYWludGVyLmNvbnRleHQoKS0+c2F2ZSgpOwotICAgIHBhaW50ZXIuY29u
dGV4dCgpLT50cmFuc2xhdGUoLXBhaW50aW5nT2Zmc2V0LngoKSwgLXBhaW50aW5nT2Zmc2V0Lnko
KSk7Ci0gICAgcGFpbnRlci5jb250ZXh0KCktPmNsZWFyUmVjdChkaXJ0eVJlY3QpOwotICAgIHBh
aW50ZXIuY29udGV4dCgpLT5jbGlwKGRpcnR5UmVjdCk7CisjaWYgVVNFKFNLSUEpCisgICAgT3du
UHRyPFBsYXRmb3JtQ29udGV4dFNraWE+IHNraWFDb250ZXh0OworCisgICAgc2tpYUNvbnRleHQu
c2V0KG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKG1fdXBsb2FkUGl4ZWxDYW52YXMuZ2V0KCkpKTsK
KworICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGdldCB0ZXh0IHRvIHNob3cgdXAgY29ycmVjdGx5
LgorICAgIHNraWFDb250ZXh0LT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKKworICAg
IEdyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dCo+KHNraWFDb250ZXh0LmdldCgpKSk7CisKKyNlbGlmIFBMQVRGT1JN
KENHKQorICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBkaXJ0eSByZWN0YW5n
bGUgaW4gdGhlIHVwbG9hZCBidWZmZXI/CisgICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4g
Y29sb3JTcGFjZShBZG9wdENGLCBDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKSk7CisgICAg
c2l6ZV90IHJvd0J5dGVzID0gbV91cGxvYWRCdWZmZXJTaXplLndpZHRoKCkgKiA0OworICAgIFJl
dGFpblB0cjxDR0NvbnRleHRSZWY+IGNvbnRleHRDRyhBZG9wdENGLCBDR0JpdG1hcENvbnRleHRD
cmVhdGUobV91cGxvYWRQaXhlbERhdGEtPmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXBsb2FkQnVm
ZmVyU2l6ZS53aWR0aCgpLCBtX3VwbG9hZEJ1ZmZlclNpemUuaGVpZ2h0KCksIDgsIHJvd0J5dGVz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29sb3JTcGFjZS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDR0ltYWdlQWxw
aGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKKyAgICBD
R0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dENHLmdldCgpLCAwLCBtX3VwbG9hZEJ1ZmZlclNp
emUuaGVpZ2h0KCkpOworICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHRDRy5nZXQoKSwgMSwg
LTEpOworCisgICAgR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dChjb250ZXh0Q0cuZ2V0
KCkpOworI2Vsc2UKKyNlcnJvciAiTmVlZCB0byBpbXBsZW1lbnQgZm9yIHlvdXIgcGxhdGZvcm0u
IgorI2VuZGlmCiAKLSAgICBtX293bmVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cygqcGFp
bnRlci5jb250ZXh0KCksIGRpcnR5UmVjdCk7Ci0gICAgcGFpbnRlci5jb250ZXh0KCktPnJlc3Rv
cmUoKTsKKyAgICBncmFwaGljc0NvbnRleHQuc2F2ZSgpOworICAgIGdyYXBoaWNzQ29udGV4dC50
cmFuc2xhdGUoLXBhaW50aW5nT2Zmc2V0LngoKSwgLXBhaW50aW5nT2Zmc2V0LnkoKSk7CisgICAg
Z3JhcGhpY3NDb250ZXh0LmNsZWFyUmVjdChkaXJ0eVJlY3QpOworICAgIGdyYXBoaWNzQ29udGV4
dC5jbGlwKGRpcnR5UmVjdCk7CisKKyAgICBtX293bmVyLT5wYWludEdyYXBoaWNzTGF5ZXJDb250
ZW50cyhncmFwaGljc0NvbnRleHQsIGRpcnR5UmVjdCk7CisgICAgZ3JhcGhpY3NDb250ZXh0LnJl
c3RvcmUoKTsKIH0KIAordm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6cmVzaXplVXBsb2FkQnVm
ZmVyRm9ySW1hZ2UoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBzaXplX3QgYnVmZmVyU2l6
ZSA9IHNpemUud2lkdGgoKSAqIHNpemUuaGVpZ2h0KCkgKiA0OworICAgIG1fdXBsb2FkUGl4ZWxE
YXRhID0gbmV3IFZlY3Rvcjx1aW50OF90PihidWZmZXJTaXplKTsKKyNpZiBQTEFURk9STShDRykK
KyAgICBtZW1zZXQobV91cGxvYWRQaXhlbERhdGEtPmRhdGEoKSwgMCwgYnVmZmVyU2l6ZSk7Cisj
ZW5kaWYKKyAgICBtX3VwbG9hZEJ1ZmZlclNpemUgPSBzaXplOworfQogdm9pZCBDb250ZW50TGF5
ZXJDaHJvbWl1bTo6cmVzaXplVXBsb2FkQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0g
ICAgbV9jYW52YXMucmVzaXplKHNpemUpOworI2lmIFVTRShTS0lBKQorICAgIG1fdXBsb2FkUGl4
ZWxDYW52YXMgPSBuZXcgc2tpYTo6UGxhdGZvcm1DYW52YXMoc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpLCBmYWxzZSk7CisgICAgbV91cGxvYWRCdWZmZXJTaXplID0gc2l6ZTsKKyNlbHNlCisg
ICAgcmVzaXplVXBsb2FkQnVmZmVyRm9ySW1hZ2Uoc2l6ZSk7CisjZW5kaWYKIH0KIAorI2lmIFVT
RShTS0lBKQorY2xhc3MgU2tCaXRtYXBDb25kaXRpb25hbEF1dG9Mb2NrZXJQaXhlbHMgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFNrQml0bWFwQ29uZGl0aW9uYWxBdXRvTG9ja2VyUGl4ZWxz
KTsKK3B1YmxpYzoKKyAgICBTa0JpdG1hcENvbmRpdGlvbmFsQXV0b0xvY2tlclBpeGVscygpCisg
ICAgICAgIDogbV9iaXRtYXAoMCkKKyAgICB7CisgICAgfQorCisgICAgflNrQml0bWFwQ29uZGl0
aW9uYWxBdXRvTG9ja2VyUGl4ZWxzKCkKKyAgICB7CisgICAgICAgIGlmIChtX2JpdG1hcCkKKyAg
ICAgICAgICAgIG1fYml0bWFwLT51bmxvY2tQaXhlbHMoKTsKKyAgICB9CisKKyAgICB2b2lkIGxv
Y2tQaXhlbHMoY29uc3QgU2tCaXRtYXAqIGJpdG1hcCkKKyAgICB7CisgICAgICAgIGJpdG1hcC0+
bG9ja1BpeGVscygpOworICAgICAgICBtX2JpdG1hcCA9IGJpdG1hcDsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgY29uc3QgU2tCaXRtYXAqIG1fYml0bWFwOworfTsKKyNlbmRpZgorCiB2b2lkIENv
bnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlSWZOZWVkZWQoKQogewotICAgIFBsYXRm
b3JtQ2FudmFzOjpBdXRvTG9ja2VyIGxvY2tlcigmbV9jYW52YXMpOwotICAgIHVwZGF0ZVRleHR1
cmUobG9ja2VyLnBpeGVscygpLCBtX2NhbnZhcy5zaXplKCkpOwotfQorICAgIHVpbnQ4X3QqIHBp
eGVscyA9IDA7CisjaWYgVVNFKFNLSUEpCisgICAgU2tCaXRtYXBDb25kaXRpb25hbEF1dG9Mb2Nr
ZXJQaXhlbHMgbG9ja2VyOworI2VuZGlmCisgICAgaWYgKCFtX3VwbG9hZFVwZGF0ZVJlY3QuaXNF
bXB0eSgpKSB7CisjaWYgVVNFKFNLSUEpCisgICAgICAgIGlmIChtX3VwbG9hZFBpeGVsQ2FudmFz
KSB7CisgICAgICAgICAgICBjb25zdCBTa0JpdG1hcCYgYml0bWFwID0gbV91cGxvYWRQaXhlbENh
bnZhcy0+Z2V0RGV2aWNlKCktPmFjY2Vzc0JpdG1hcChmYWxzZSk7CisgICAgICAgICAgICBsb2Nr
ZXIubG9ja1BpeGVscygmYml0bWFwKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBkbyB3ZSBuZWVk
IHRvIHN1cHBvcnQgbW9yZSBpbWFnZSBjb25maWd1cmF0aW9ucz8KKyAgICAgICAgICAgIGlmIChi
aXRtYXAuY29uZmlnKCkgPT0gU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnKQorICAgICAgICAg
ICAgICAgIHBpeGVscyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihiaXRtYXAuZ2V0UGl4ZWxzKCkp
OworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgaWYgKG1fdXBsb2FkUGl4ZWxEYXRhKQorICAg
ICAgICAgICAgcGl4ZWxzID0gbV91cGxvYWRQaXhlbERhdGEtPmRhdGEoKTsKKyAgICB9CiAKLXZv
aWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZVRleHR1cmUoY29uc3QgdWludDhfdCogcGl4
ZWxzLCBjb25zdCBJbnRTaXplJiBzaXplKQotewogICAgIGlmICghcGl4ZWxzKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTE5NywyOCArMjgzLDI4IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnVwZGF0ZVRleHR1cmUoY29uc3QgdWludDhfdCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBzCiAg
ICAgICAgIG1fY29udGVudHNUZXh0dXJlID0gTGF5ZXJUZXh0dXJlOjpjcmVhdGUoY29udGV4dCwg
bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlTWFuYWdlcigpKTsKIAogICAgIC8vIElmIHdlIGhhdmUg
dG8gYWxsb2NhdGUgYSBuZXcgdGV4dHVyZSB3ZSBoYXZlIHRvIHVwbG9hZCB0aGUgZnVsbCBjb250
ZW50cy4KLSAgICBpZiAoIW1fY29udGVudHNUZXh0dXJlLT5pc1ZhbGlkKHNpemUsIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBKSkKLSAgICAgICAgbV91cGxvYWRVcGRhdGVSZWN0ID0gSW50UmVjdChJ
bnRQb2ludCgwLCAwKSwgc2l6ZSk7CisgICAgaWYgKCFtX2NvbnRlbnRzVGV4dHVyZS0+aXNWYWxp
ZChtX3VwbG9hZEJ1ZmZlclNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkKKyAgICAgICAg
bV91cGxvYWRVcGRhdGVSZWN0ID0gSW50UmVjdChJbnRQb2ludCgwLCAwKSwgbV91cGxvYWRCdWZm
ZXJTaXplKTsKIAotICAgIGlmICghbV9jb250ZW50c1RleHR1cmUtPnJlc2VydmUoc2l6ZSwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJHQkEpKSB7CisgICAgaWYgKCFtX2NvbnRlbnRzVGV4dHVyZS0+cmVz
ZXJ2ZShtX3VwbG9hZEJ1ZmZlclNpemUsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBKSkgewogICAg
ICAgICBtX3NraXBzRHJhdyA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBJ
bnRSZWN0IHNyY1JlY3QgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBzaXplKTsKKyAgICBJbnRS
ZWN0IHNyY1JlY3QgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBtX3VwbG9hZEJ1ZmZlclNpemUp
OwogICAgIGlmIChyZXF1aXJlc0NsaXBwZWRVcGRhdGVSZWN0KCkpCiAgICAgICAgIHNyY1JlY3Qg
PSBtX3Zpc2libGVSZWN0SW5MYXllckNvb3JkczsKIAotICAgIGNvbnN0IHNpemVfdCBkZXN0U3Ry
aWRlID0gc2l6ZS53aWR0aCgpICogNDsKKyAgICBjb25zdCBzaXplX3QgZGVzdFN0cmlkZSA9IG1f
dXBsb2FkVXBkYXRlUmVjdC53aWR0aCgpICogNDsKICAgICBjb25zdCBzaXplX3Qgc3JjU3RyaWRl
ID0gc3JjUmVjdC53aWR0aCgpICogNDsKIAotICAgIGNvbnN0IHVpbnQ4X3QqIHVwbG9hZFBpeGVs
cyA9IHBpeGVscyArIHNyY1N0cmlkZSAqIG1fdXBsb2FkVXBkYXRlUmVjdC54KCk7CisgICAgdWlu
dDhfdCogdXBsb2FkUGl4ZWxzID0gcGl4ZWxzICsgc3JjU3RyaWRlICogbV91cGxvYWRVcGRhdGVS
ZWN0LngoKTsKICAgICBWZWN0b3I8dWludDhfdD4gdXBsb2FkQnVmZmVyOwogICAgIGlmIChzcmNT
dHJpZGUgIT0gZGVzdFN0cmlkZSkgewogICAgICAgICB1cGxvYWRCdWZmZXIucmVzaXplKG1fdXBs
b2FkVXBkYXRlUmVjdC5oZWlnaHQoKSAqIGRlc3RTdHJpZGUpOwogICAgICAgICBmb3IgKGludCBy
b3cgPSAwOyByb3cgPCBtX3VwbG9hZFVwZGF0ZVJlY3QuaGVpZ2h0KCk7ICsrcm93KSB7CiAgICAg
ICAgICAgICBzaXplX3Qgc3JjT2Zmc2V0ID0gKG1fdXBsb2FkVXBkYXRlUmVjdC55KCkgKyByb3cp
ICogc3JjU3RyaWRlICsgbV91cGxvYWRVcGRhdGVSZWN0LngoKSAqIDQ7Ci0gICAgICAgICAgICBB
U1NFUlQoc3JjT2Zmc2V0ICsgZGVzdFN0cmlkZSA8PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNpemUu
d2lkdGgoKSAqIHNpemUuaGVpZ2h0KCkgKiA0KSk7CisgICAgICAgICAgICBBU1NFUlQoc3JjT2Zm
c2V0ICsgZGVzdFN0cmlkZSA8PSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fdXBsb2FkQnVmZmVyU2l6
ZS53aWR0aCgpICogbV91cGxvYWRCdWZmZXJTaXplLmhlaWdodCgpICogNCkpOwogICAgICAgICAg
ICAgc2l6ZV90IGRlc3RPZmZzZXQgPSByb3cgKiBkZXN0U3RyaWRlOwogICAgICAgICAgICAgQVNT
RVJUKGRlc3RPZmZzZXQgICsgZGVzdFN0cmlkZSA8PSB1cGxvYWRCdWZmZXIuc2l6ZSgpKTsKICAg
ICAgICAgICAgIG1lbWNweSh1cGxvYWRCdWZmZXIuZGF0YSgpICsgZGVzdE9mZnNldCwgcGl4ZWxz
ICsgc3JjT2Zmc2V0LCBkZXN0U3RyaWRlKTsKQEAgLTI0MCw2ICszMjYsOCBAQCB2b2lkIENvbnRl
bnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlKGNvbnN0IHVpbnQ4X3QqIHBpeGVscywgY29u
c3QgSW50U2l6ZSYgcwogCiB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpkcmF3KCkKIHsKKyAg
ICB1cGRhdGVUZXh0dXJlSWZOZWVkZWQoKTsKKwogICAgIGlmIChtX3NraXBzRHJhdykKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAppbmRleCBhMTk4OGE4
Nzc0YWIyYWY5NzcyZjhjZDdiMGQ3NTZkNDVkZDEwYzFhLi5kZjQ5OGNlZDFkMDg3YWI2YjRhOTBl
ZjU2MWY3NzNjZWFlNTcxM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAg
LTM1LDcgKzM1LDYgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNpbmNs
dWRlICJMYXllckNocm9taXVtLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1DYW52YXMuaCIKICNpbmNs
dWRlICJUZXh0dXJlTWFuYWdlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSwxOCAr
NjQsMjUgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhbnVwUmVzb3VyY2VzKCk7
CiAgICAgYm9vbCByZXF1aXJlc0NsaXBwZWRVcGRhdGVSZWN0KCkgY29uc3Q7CiAgICAgdm9pZCBy
ZXNpemVVcGxvYWRCdWZmZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZvaWQgcmVzaXplVXBsb2Fk
QnVmZmVyRm9ySW1hZ2UoY29uc3QgSW50U2l6ZSYpOwogCiAgICAgT3duUHRyPExheWVyVGV4dHVy
ZT4gbV9jb250ZW50c1RleHR1cmU7CiAgICAgYm9vbCBtX3NraXBzRHJhdzsKIAorICAgIC8vIFRo
ZSBzaXplIG9mIHRoZSB1cGxvYWQgYnVmZmVyIChhbHNvIHRoZSBzaXplIG9mIG91ciBiYWNraW5n
IHRleHR1cmUpLgorICAgIEludFNpemUgbV91cGxvYWRCdWZmZXJTaXplOwogICAgIC8vIFRoZSBw
b3J0aW9uIG9mIHRoZSB1cGxvYWQgYnVmZmVyIHRoYXQgaGFzIGEgcGVuZGluZyB1cGRhdGUsIGlu
IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgdGV4dHVyZS4KICAgICBJbnRSZWN0IG1fdXBsb2FkVXBk
YXRlUmVjdDsKLQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0dXJlSWZOZWVkZWQoKTsKLSAg
ICB2b2lkIHVwZGF0ZVRleHR1cmUoY29uc3QgdWludDhfdCogcGl4ZWxzLCBjb25zdCBJbnRTaXpl
Jik7CisgICAgLy8gT24gcGxhdGZvcm1zIHVzaW5nIFNraWEsIHdlIHVzZSB0aGUgc2tpYTo6UGxh
dGZvcm1DYW52YXMgZm9yIGNvbnRlbnQgbGF5ZXJzCisgICAgLy8gYW5kIHRoZSBtX3VwbG9hZFBp
eGVsRGF0YSBidWZmZXIgZm9yIGltYWdlIGxheWVycy4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGJlIHVzaW5nIG1lbW9yeSB3ZSBjb250cm9sIGZvciBhbGwgdXBsb2Fkcy4KKyNpZiBVU0UoU0tJ
QSkKKyAgICBPd25QdHI8c2tpYTo6UGxhdGZvcm1DYW52YXM+IG1fdXBsb2FkUGl4ZWxDYW52YXM7
CisjZW5kaWYKKyAgICBPd25QdHI8VmVjdG9yPHVpbnQ4X3Q+ID4gbV91cGxvYWRQaXhlbERhdGE7
CiAKIHByaXZhdGU6Ci0gICAgUGxhdGZvcm1DYW52YXMgbV9jYW52YXM7CisgICAgdm9pZCB1cGRh
dGVUZXh0dXJlSWZOZWVkZWQoKTsKIAogICAgIEludFJlY3QgbV92aXNpYmxlUmVjdEluTGF5ZXJD
b29yZHM7CiAgICAgRmxvYXRQb2ludCBtX2xheWVyQ2VudGVySW5TdXJmYWNlQ29vcmRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMWExYWE4OTJlMDczY2ExOTIxZWI5MWU2
NDRlMzQ3N2QyMGQxZWJhZS4uYzJhODkxYjZkNGYzNjcyMDdmMWQwODEzNjFjYjFiNWQxMjhlMWY3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SW1hZ2VMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0zOCw2ICszOCwxOCBAQAog
I2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkxheWVyVGV4dHVy
ZS5oIgogCisjaWYgVVNFKFNLSUEpCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgorI2VuZGlmCisKKyNpZiBQTEFURk9STShDRykK
KyNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CisjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHQ29udGV4dC5oPgorI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0ltYWdlLmg+
CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUGFzc1JlZlB0cjxJbWFnZUxheWVyQ2hyb21pdW0+IEltYWdlTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpCkBAIC03MiwxMiArODQsNjMgQEAg
dm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzSWZEaXJ0eSgpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2RlY29kZWRJbWFnZS51cGRhdGVGcm9tSW1hZ2UobV9j
b250ZW50cy0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSk7Ci19CisgICAgTmF0aXZlSW1h
Z2VQdHIgbmF0aXZlSW1hZ2UgPSBtX2NvbnRlbnRzLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpOwogCi12b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVyZUlmTmVlZGVkKCkK
LXsKLSAgICB1cGRhdGVUZXh0dXJlKG1fZGVjb2RlZEltYWdlLnBpeGVscygpLCBtX2RlY29kZWRJ
bWFnZS5zaXplKCkpOworI2lmIFVTRShTS0lBKQorICAgIC8vIFRoZSBsYXllciBjb250YWlucyBh
biBJbWFnZS4KKyAgICBOYXRpdmVJbWFnZVNraWEqIHNraWFJbWFnZSA9IHN0YXRpY19jYXN0PE5h
dGl2ZUltYWdlU2tpYSo+KG5hdGl2ZUltYWdlKTsKKyAgICBjb25zdCBTa0JpdG1hcCogc2tpYUJp
dG1hcCA9IHNraWFJbWFnZTsKKyAgICBJbnRTaXplIGJpdG1hcFNpemUoc2tpYUJpdG1hcC0+d2lk
dGgoKSwgc2tpYUJpdG1hcC0+aGVpZ2h0KCkpOworICAgIEFTU0VSVChza2lhQml0bWFwKTsKKyNl
bGlmIFBMQVRGT1JNKENHKQorICAgIC8vIE5hdGl2ZUltYWdlUHRyIGlzIGEgQ0dJbWFnZVJlZiBv
biBNYWMgT1MgWC4KKyAgICBpbnQgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgobmF0aXZlSW1hZ2Up
OworICAgIGludCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KG5hdGl2ZUltYWdlKTsKKyAgICBJ
bnRTaXplIGJpdG1hcFNpemUod2lkdGgsIGhlaWdodCk7CisjZW5kaWYKKworICAgIGlmIChtX3Vw
bG9hZEJ1ZmZlclNpemUgIT0gYml0bWFwU2l6ZSkKKyAgICAgICAgcmVzaXplVXBsb2FkQnVmZmVy
Rm9ySW1hZ2UoYml0bWFwU2l6ZSk7CisgICAgbV91cGxvYWRVcGRhdGVSZWN0ID0gSW50UmVjdChJ
bnRQb2ludCgwLCAwKSwgYml0bWFwU2l6ZSk7CisKKyNpZiBVU0UoU0tJQSkKKyAgICBTa0F1dG9M
b2NrUGl4ZWxzIGxvY2soKnNraWFCaXRtYXApOworICAgIC8vIEZJWE1FOiBkbyB3ZSBuZWVkIHRv
IHN1cHBvcnQgbW9yZSBpbWFnZSBjb25maWd1cmF0aW9ucz8KKyAgICBBU1NFUlQoc2tpYUJpdG1h
cC0+Y29uZmlnKCk9PSBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcpOworICAgIHNraWFCaXRt
YXAtPmNvcHlQaXhlbHNUbyhtX3VwbG9hZFBpeGVsRGF0YS0+ZGF0YSgpLCBtX3VwbG9hZFBpeGVs
RGF0YS0+c2l6ZSgpKTsKKyNlbGlmIFBMQVRGT1JNKENHKQorICAgIC8vIEZJWE1FOiB3ZSBzaG91
bGQgZ2V0IHJpZCBvZiB0aGlzIHRlbXBvcmFyeSBjb3B5IHdoZXJlIHBvc3NpYmxlLgorICAgIGlu
dCB0ZW1wUm93Qnl0ZXMgPSB3aWR0aCAqIDQ7CisgICAgLy8gTm90ZSB3ZSBkbyBub3QgemVybyB0
aGlzIHZlY3RvciBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8KKyAgICAvLyBjb21wbGV0ZWx5IG92ZXJ3
cml0ZSBpdHMgY29udGVudHMgd2l0aCB0aGUgaW1hZ2UgYmVsb3cuCisgICAgLy8gVHJ5IHRvIHJl
dXNlIHRoZSBjb2xvciBzcGFjZSBmcm9tIHRoZSBpbWFnZSB0byBwcmVzZXJ2ZSBpdHMgY29sb3Jz
LgorICAgIC8vIFNvbWUgaW1hZ2VzIHVzZSBhIGNvbG9yIHNwYWNlIChzdWNoIGFzIGluZGV4ZWQp
IHVuc3VwcG9ydGVkIGJ5IHRoZSBiaXRtYXAgY29udGV4dC4KKyAgICBSZXRhaW5QdHI8Q0dDb2xv
clNwYWNlUmVmPiBjb2xvclNwYWNlUmVsZWFzZXI7CisgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9y
U3BhY2UgPSBDR0ltYWdlR2V0Q29sb3JTcGFjZShuYXRpdmVJbWFnZSk7CisgICAgQ0dDb2xvclNw
YWNlTW9kZWwgY29sb3JTcGFjZU1vZGVsID0gQ0dDb2xvclNwYWNlR2V0TW9kZWwoY29sb3JTcGFj
ZSk7CisgICAgc3dpdGNoIChjb2xvclNwYWNlTW9kZWwpIHsKKyAgICBjYXNlIGtDR0NvbG9yU3Bh
Y2VNb2RlbE1vbm9jaHJvbWU6CisgICAgY2FzZSBrQ0dDb2xvclNwYWNlTW9kZWxSR0I6CisgICAg
Y2FzZSBrQ0dDb2xvclNwYWNlTW9kZWxDTVlLOgorICAgIGNhc2Uga0NHQ29sb3JTcGFjZU1vZGVs
TGFiOgorICAgIGNhc2Uga0NHQ29sb3JTcGFjZU1vZGVsRGV2aWNlTjoKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgY29sb3JTcGFjZVJlbGVhc2VyLmFkb3B0Q0YoQ0dDb2xv
clNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOworICAgICAgICBjb2xvclNwYWNlID0gY29sb3JTcGFj
ZVJlbGVhc2VyLmdldCgpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgUmV0YWluUHRyPENH
Q29udGV4dFJlZj4gdGVtcENvbnRleHQoQWRvcHRDRiwgQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKG1f
dXBsb2FkUGl4ZWxEYXRhLT5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIDgs
IHRlbXBSb3dCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JTcGFjZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9z
dCkpOworICAgIENHQ29udGV4dFNldEJsZW5kTW9kZSh0ZW1wQ29udGV4dC5nZXQoKSwga0NHQmxl
bmRNb2RlQ29weSk7CisgICAgQ0dDb250ZXh0RHJhd0ltYWdlKHRlbXBDb250ZXh0LmdldCgpLAor
ICAgICAgICAgICAgICAgICAgICAgICBDR1JlY3RNYWtlKDAsIDAsIHN0YXRpY19jYXN0PENHRmxv
YXQ+KHdpZHRoKSwgc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oaGVpZ2h0KSksCisgICAgICAgICAgICAg
ICAgICAgICAgIG5hdGl2ZUltYWdlKTsKKyNlbHNlCisjZXJyb3IgIk5lZWQgdG8gaW1wbGVtZW50
IGZvciB5b3VyIHBsYXRmb3JtLiIKKyNlbmRpZgogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IGRlMDc5YzFmZWFmOTgxMjUyZWMxN2E2ODk4ODllMmMwZWY4ZjQ4ZDUuLmE1
YzE0NTA5MDQ2NjI3NzVhNjVlY2NiYmY1MDZkYjg0MTYxYzNjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5
ZXJDaHJvbWl1bS5oCkBAIC0zNSw3ICszNSw2IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogCiAjaW5jbHVkZSAiQ29udGVudExheWVyQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybUltYWdlLmgiCiAKICNpZiBQTEFURk9STShDRykKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CkBAIC01NiwxMSArNTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50cyhJ
bWFnZSogaW1hZ2UpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0dXJl
SWZOZWVkZWQoKTsKLQogICAgIEltYWdlTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21p
dW0qIG93bmVyKTsKIAotICAgIFBsYXRmb3JtSW1hZ2UgbV9kZWNvZGVkSW1hZ2U7CiAgICAgUmVm
UHRyPEltYWdlPiBtX2NvbnRlbnRzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5j
cHAKaW5kZXggODY1OTJhNmE4ZDJkNTc3NGY4NmM5Nzg2MzkxNWEzNmIxMWVhOTM1My4uZDBmZjU0
MzRlODRhOTEzZWEyZjlhZWUwNWZlNmJjNzE2MDM5NGRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVy
Q2hyb21pdW0uY3BwCkBAIC0zNSw2ICszNSwxMyBAQAogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJD
aHJvbWl1bS5oIgogI2luY2x1ZGUgIkxheWVyVGV4dHVyZS5oIgogCisjaWYgVVNFKFNLSUEpCisj
aW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tp
YS5oIgorI2VsaWYgUExBVEZPUk0oQ0cpCisjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQml0bWFw
Q29udGV4dC5oPgorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYvUGFzc093bkFycmF5UHRyLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0xNDEsOCArMTQ4LDggQEAgdm9pZCBMYXllclRpbGVy
Q2hyb21pdW06OmNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhjb25zdCBJbnRSZWN0JiBjb250ZW50
UmVjdCwgaW4KIAogICAgIGxlZnQgPSBtX3RpbGluZ0RhdGEudGlsZVhJbmRleEZyb21TcmNDb29y
ZChsYXllclJlY3QueCgpKTsKICAgICB0b3AgPSBtX3RpbGluZ0RhdGEudGlsZVlJbmRleEZyb21T
cmNDb29yZChsYXllclJlY3QueSgpKTsKLSAgICByaWdodCA9IG1fdGlsaW5nRGF0YS50aWxlWElu
ZGV4RnJvbVNyY0Nvb3JkKGxheWVyUmVjdC5tYXhYKCkgLSAxKTsKLSAgICBib3R0b20gPSBtX3Rp
bGluZ0RhdGEudGlsZVlJbmRleEZyb21TcmNDb29yZChsYXllclJlY3QubWF4WSgpIC0gMSk7Cisg
ICAgcmlnaHQgPSBtX3RpbGluZ0RhdGEudGlsZVhJbmRleEZyb21TcmNDb29yZChsYXllclJlY3Qu
bWF4WCgpKTsKKyAgICBib3R0b20gPSBtX3RpbGluZ0RhdGEudGlsZVlJbmRleEZyb21TcmNDb29y
ZChsYXllclJlY3QubWF4WSgpKTsKIH0KIAogSW50UmVjdCBMYXllclRpbGVyQ2hyb21pdW06OmNv
bnRlbnRSZWN0VG9MYXllclJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QpIGNvbnN0CkBA
IC0yNjMsMjYgKzI3MCw1NSBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6dXBkYXRlKFRpbGVQ
YWludEludGVyZmFjZSYgcGFpbnRlciwgY29uc3QgSW50UmVjdCYgY29udAogICAgICAgICByZXR1
cm47CiAKICAgICBjb25zdCBJbnRSZWN0IHBhaW50UmVjdCA9IGxheWVyUmVjdFRvQ29udGVudFJl
Y3QoZGlydHlMYXllclJlY3QpOworICAgIEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0ID0gbGF5
ZXJSZW5kZXJlckNvbnRleHQoKTsKKyNpZiBVU0UoU0tJQSkKKyAgICBPd25QdHI8c2tpYTo6UGxh
dGZvcm1DYW52YXM+IGNhbnZhcyhuZXcgc2tpYTo6UGxhdGZvcm1DYW52YXMocGFpbnRSZWN0Lndp
ZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSwgZmFsc2UpKTsKKyAgICBPd25QdHI8UGxhdGZvcm1D
b250ZXh0U2tpYT4gc2tpYUNvbnRleHQobmV3IFBsYXRmb3JtQ29udGV4dFNraWEoY2FudmFzLmdl
dCgpKSk7CisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gZ3JhcGhpY3NDb250ZXh0KG5ldyBH
cmFwaGljc0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCo+
KHNraWFDb250ZXh0LmdldCgpKSkpOwogCi0gICAgbV9jYW52YXMucmVzaXplKHBhaW50UmVjdC5z
aXplKCkpOwotICAgIFBsYXRmb3JtQ2FudmFzOjpQYWludGVyIGNhbnZhc1BhaW50ZXIoJm1fY2Fu
dmFzKTsKLSAgICBjYW52YXNQYWludGVyLmNvbnRleHQoKS0+dHJhbnNsYXRlKC1wYWludFJlY3Qu
eCgpLCAtcGFpbnRSZWN0LnkoKSk7Ci0gICAgcGFpbnRlci5wYWludCgqY2FudmFzUGFpbnRlci5j
b250ZXh0KCksIHBhaW50UmVjdCk7CisgICAgLy8gQnJpbmcgdGhlIGNhbnZhcyBpbnRvIHRoZSBj
b29yZGluYXRlIHN5c3RlbSBvZiB0aGUgcGFpbnQgcmVjdC4KKyAgICBjYW52YXMtPnRyYW5zbGF0
ZShzdGF0aWNfY2FzdDxTa1NjYWxhcj4oLXBhaW50UmVjdC54KCkpLCBzdGF0aWNfY2FzdDxTa1Nj
YWxhcj4oLXBhaW50UmVjdC55KCkpKTsKIAotICAgIFBsYXRmb3JtQ2FudmFzOjpBdXRvTG9ja2Vy
IGxvY2tlcigmbV9jYW52YXMpOwotICAgIHVwZGF0ZUZyb21QaXhlbHMocGFpbnRSZWN0LCBsb2Nr
ZXIucGl4ZWxzKCkpOwotfQorICAgIHBhaW50ZXIucGFpbnQoKmdyYXBoaWNzQ29udGV4dCwgcGFp
bnRSZWN0KTsKKworICAgIC8vIEdldCB0aGUgY29udGVudHMgb2YgdGhlIHVwZGF0ZWQgcmVjdC4K
KyAgICBjb25zdCBTa0JpdG1hcCYgYml0bWFwID0gY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNz
Qml0bWFwKGZhbHNlKTsKKyAgICBBU1NFUlQoYml0bWFwLndpZHRoKCkgPT0gcGFpbnRSZWN0Lndp
ZHRoKCkgJiYgYml0bWFwLmhlaWdodCgpID09IHBhaW50UmVjdC5oZWlnaHQoKSk7CisgICAgaWYg
KGJpdG1hcC53aWR0aCgpICE9IHBhaW50UmVjdC53aWR0aCgpIHx8IGJpdG1hcC5oZWlnaHQoKSAh
PSBwYWludFJlY3QuaGVpZ2h0KCkpCisgICAgICAgIENSQVNIKCk7CisgICAgdWludDhfdCogcGFp
bnRQaXhlbHMgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oYml0bWFwLmdldFBpeGVscygpKTsKKyAg
ICBpZiAoIXBhaW50UGl4ZWxzKQorICAgICAgICBDUkFTSCgpOworI2VsaWYgUExBVEZPUk0oQ0cp
CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNhbnZhc1BpeGVsczsKKyAgICBpbnQgcm93Qnl0ZXMgPSA0
ICogcGFpbnRSZWN0LndpZHRoKCk7CisgICAgY2FudmFzUGl4ZWxzLnJlc2l6ZShyb3dCeXRlcyAq
IHBhaW50UmVjdC5oZWlnaHQoKSk7CisgICAgbWVtc2V0KGNhbnZhc1BpeGVscy5kYXRhKCksIDAs
IGNhbnZhc1BpeGVscy5zaXplKCkpOworICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNv
bG9yU3BhY2UoQWRvcHRDRiwgQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOworICAgIFJl
dGFpblB0cjxDR0NvbnRleHRSZWY+IG1fY2dDb250ZXh0OworICAgIG1fY2dDb250ZXh0LmFkb3B0
Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGNhbnZhc1BpeGVscy5kYXRhKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRSZWN0Lndp
ZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSwgOCwgcm93Qnl0ZXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JTcGFjZS5nZXQoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
Q0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0
KSk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKG1fY2dDb250ZXh0LmdldCgpLCAwLCBwYWlu
dFJlY3QuaGVpZ2h0KCkpOworICAgIENHQ29udGV4dFNjYWxlQ1RNKG1fY2dDb250ZXh0LmdldCgp
LCAxLCAtMSk7CisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gbV9ncmFwaGljc0NvbnRleHQo
bmV3IEdyYXBoaWNzQ29udGV4dChtX2NnQ29udGV4dC5nZXQoKSkpOworCisgICAgLy8gQnJpbmcg
dGhlIENvcmVHcmFwaGljcyBjb250ZXh0IGludG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRo
ZSBwYWludCByZWN0LgorICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShtX2NnQ29udGV4dC5nZXQo
KSwgLXBhaW50UmVjdC54KCksIC1wYWludFJlY3QueSgpKTsKKyAgICBwYWludGVyLnBhaW50KCpt
X2dyYXBoaWNzQ29udGV4dCwgcGFpbnRSZWN0KTsKKworICAgIC8vIEdldCB0aGUgY29udGVudHMg
b2YgdGhlIHVwZGF0ZWQgcmVjdC4KKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihDR0JpdG1h
cENvbnRleHRHZXRXaWR0aChtX2NnQ29udGV4dC5nZXQoKSkpID09IHBhaW50UmVjdC53aWR0aCgp
ICYmIHN0YXRpY19jYXN0PGludD4oQ0dCaXRtYXBDb250ZXh0R2V0SGVpZ2h0KG1fY2dDb250ZXh0
LmdldCgpKSkgPT0gcGFpbnRSZWN0LmhlaWdodCgpKTsKKyAgICB1aW50OF90KiBwYWludFBpeGVs
cyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjYW52YXNQaXhlbHMuZGF0YSgpKTsKKyNlbHNlCisj
ZXJyb3IgIk5lZWQgdG8gaW1wbGVtZW50IGZvciB5b3VyIHBsYXRmb3JtLiIKKyNlbmRpZgogCi12
b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6dXBkYXRlRnJvbVBpeGVscyhjb25zdCBJbnRSZWN0JiBw
YWludFJlY3QsIGNvbnN0IHVpbnQ4X3QqIHBhaW50UGl4ZWxzKQotewogICAgIC8vIFBhaW50aW5n
IGNvdWxkIGNhdXNlIGNvbXBvc2l0aW5nIHRvIGdldCB0dXJuZWQgb2ZmLCB3aGljaCBtYXkgY2F1
c2UgdGhlIHRpbGVyIHRvIGJlY29tZSBpbnZhbGlkYXRlZCBtaWQtdXBkYXRlLgogICAgIGlmICgh
bV90aWxlcy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0ID0gbGF5ZXJSZW5kZXJlckNvbnRleHQoKTsKLQotICAgIGludCBsZWZ0LCB0b3As
IHJpZ2h0LCBib3R0b207Ci0gICAgY29udGVudFJlY3RUb1RpbGVJbmRpY2VzKHBhaW50UmVjdCwg
bGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJv
dHRvbTsgKytqKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kp
IHsKICAgICAgICAgICAgIFRpbGUqIHRpbGUgPSBtX3RpbGVzW3RpbGVJbmRleChpLCBqKV0uZ2V0
KCk7CkBAIC0zMjIsNyArMzU4LDcgQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OnVwZGF0ZUZy
b21QaXhlbHMoY29uc3QgSW50UmVjdCYgcGFpbnRSZWN0LCBjb25zdCB1aW50OF8KICAgICAgICAg
ICAgIGlmIChwYWludE9mZnNldC55KCkgKyBkZXN0UmVjdC5oZWlnaHQoKSA+IHBhaW50UmVjdC5o
ZWlnaHQoKSkKICAgICAgICAgICAgICAgICBDUkFTSCgpOwogCi0gICAgICAgICAgICBjb25zdCB1
aW50OF90KiBwaXhlbFNvdXJjZTsKKyAgICAgICAgICAgIHVpbnQ4X3QqIHBpeGVsU291cmNlOwog
ICAgICAgICAgICAgaWYgKHBhaW50UmVjdC53aWR0aCgpID09IHNvdXJjZVJlY3Qud2lkdGgoKSAm
JiAhcGFpbnRPZmZzZXQueCgpKQogICAgICAgICAgICAgICAgIHBpeGVsU291cmNlID0gJnBhaW50
UGl4ZWxzWzQgKiBwYWludE9mZnNldC55KCkgKiBwYWludFJlY3Qud2lkdGgoKV07CiAgICAgICAg
ICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKaW5kZXggYmRiMzVhNWM0ODE4
MjU3YzkzYmEzMWRkMjNhZGU2NzZlNjI3M2I4My4uMzdlNTBlZmM2NjRlYjkyMzRhODBmM2M1ZWQ2
MzNkZTRiM2FjZjM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKQEAgLTMxLDcgKzMx
LDYgQEAKIAogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJMYXllclRleHR1
cmUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNhbnZhcy5oIgogI2luY2x1ZGUgIlRpbGluZ0RhdGEu
aCIKICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KIApAQCAtNTcsNyArNTYsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCk7
CiAgICAgdm9pZCBpbnZhbGlkYXRlRW50aXJlTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZShUaWxl
UGFpbnRJbnRlcmZhY2UmIHBhaW50ZXIsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0KTsKLSAg
ICB2b2lkIHVwZGF0ZUZyb21QaXhlbHMoY29uc3QgSW50UmVjdCYgcGFpbnRSZWN0LCBjb25zdCB1
aW50OF90KiBwaXhlbHMpOwogICAgIHZvaWQgZHJhdyhjb25zdCBJbnRSZWN0JiBjb250ZW50UmVj
dCk7CiAKICAgICAvLyBTZXQgcG9zaXRpb24gb2YgdGhpcyB0aWxlZCBsYXllciBpbiBjb250ZW50
IHNwYWNlLgpAQCAtMTI3LDggKzEyNSw2IEBAIHByaXZhdGU6CiAgICAgLy8gTGluZWFyIGFycmF5
IG9mIHVudXNlZCB0aWxlcy4KICAgICBWZWN0b3I8T3duUHRyPFRpbGU+ID4gbV91bnVzZWRUaWxl
czsKIAotICAgIFBsYXRmb3JtQ2FudmFzIG1fY2FudmFzOwotCiAgICAgLy8gQ2FjaGUgYSB0aWxl
LXNpemVkIHBpeGVsIGJ1ZmZlciB0byBkcmF3IGludG8uCiAgICAgT3duQXJyYXlQdHI8dWludDhf
dD4gbV90aWxlUGl4ZWxzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI5NTg5ZjQ0ZGRmMDY5ZmM2ZWI1NmNmZmEyYmVjYzlmOWNiYWNlMWEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0K
LSNpbmNsdWRlICJQbGF0Zm9ybUNhbnZhcy5oIgotCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCi0KLSNpZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCi0jaW5jbHVkZSAiU2tDb2xvclByaXYuaCIKLSNp
bmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKLSNlbGlmIFBMQVRGT1JNKENHKQot
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KLSNlbmRpZgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLVBsYXRmb3JtQ2FudmFzOjpQbGF0Zm9ybUNhbnZhcygpCi17Ci19
Ci0KLVBsYXRmb3JtQ2FudmFzOjp+UGxhdGZvcm1DYW52YXMoKQotewotfQotCi12b2lkIFBsYXRm
b3JtQ2FudmFzOjpyZXNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICBtX3NpemUgPSBz
aXplOwotI2lmIFVTRShTS0lBKQotICAgIG1fc2tpYUNhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9y
bUNhbnZhcyhzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGZhbHNlKTsKLSNlbGlmIFBMQVRG
T1JNKENHKQotICAgIHNpemVfdCBidWZmZXJTaXplID0gc2l6ZS53aWR0aCgpICogc2l6ZS5oZWln
aHQoKSAqIDQ7Ci0gICAgbV9waXhlbERhdGEgPSBhZG9wdEFycmF5UHRyKG5ldyB1aW50OF90W2J1
ZmZlclNpemVdKTsKLSAgICBtZW1zZXQobV9waXhlbERhdGEuZ2V0KCksIDAsIGJ1ZmZlclNpemUp
OwotI2VuZGlmCi19Ci0KLVBsYXRmb3JtQ2FudmFzOjpBdXRvTG9ja2VyOjpBdXRvTG9ja2VyKFBs
YXRmb3JtQ2FudmFzKiBjYW52YXMpCi0gICAgOiBtX2NhbnZhcyhjYW52YXMpCi0gICAgLCBtX3Bp
eGVscygwKQotewotI2lmIFVTRShTS0lBKQotICAgIGlmIChtX2NhbnZhcy0+bV9za2lhQ2FudmFz
KSB7Ci0gICAgICAgIG1fYml0bWFwID0gJm1fY2FudmFzLT5tX3NraWFDYW52YXMtPmdldERldmlj
ZSgpLT5hY2Nlc3NCaXRtYXAoZmFsc2UpOwotICAgICAgICBtX2JpdG1hcC0+bG9ja1BpeGVscygp
OwotCi0gICAgICAgIGlmIChtX2JpdG1hcC0+Y29uZmlnKCkgPT0gU2tCaXRtYXA6OmtBUkdCXzg4
ODhfQ29uZmlnKQotICAgICAgICAgICAgbV9waXhlbHMgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4o
bV9iaXRtYXAtPmdldFBpeGVscygpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9iaXRtYXAgPSAw
OwotI2VsaWYgUExBVEZPUk0oQ0cpCi0gICAgbV9waXhlbHMgPSAmY2FudmFzLT5tX3BpeGVsRGF0
YVswXTsKLSNlbmRpZgotfQotCi1QbGF0Zm9ybUNhbnZhczo6QXV0b0xvY2tlcjo6fkF1dG9Mb2Nr
ZXIoKQotewotI2lmIFVTRShTS0lBKQotICAgIGlmIChtX2JpdG1hcCkKLSAgICAgICAgbV9iaXRt
YXAtPnVubG9ja1BpeGVscygpOwotI2VuZGlmCi19Ci0KLVBsYXRmb3JtQ2FudmFzOjpQYWludGVy
OjpQYWludGVyKFBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCi17Ci0jaWYgVVNFKFNLSUEpCi0gICAg
bV9za2lhQ29udGV4dCA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKGNhbnZhcy0+
bV9za2lhQ2FudmFzLmdldCgpKSk7Ci0KLSAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBnZXQgdGV4
dCB0byBzaG93IHVwIGNvcnJlY3RseS4KLSAgICBtX3NraWFDb250ZXh0LT5zZXREcmF3aW5nVG9J
bWFnZUJ1ZmZlcih0cnVlKTsKLQotICAgIG1fY29udGV4dCA9IGFkb3B0UHRyKG5ldyBHcmFwaGlj
c0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCo+KG1fc2tp
YUNvbnRleHQuZ2V0KCkpKSk7Ci0jZWxpZiBQTEFURk9STShDRykKLQotICAgIG1fY29sb3JTcGFj
ZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOwotICAgIHNpemVfdCByb3dCeXRlcyA9
IGNhbnZhcy0+c2l6ZSgpLndpZHRoKCkgKiA0OwotICAgIG1fY29udGV4dENHID0gQ0dCaXRtYXBD
b250ZXh0Q3JlYXRlKGNhbnZhcy0+bV9waXhlbERhdGEuZ2V0KCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLT5zaXplKCkud2lkdGgoKSwgY2FudmFzLT5z
aXplKCkuaGVpZ2h0KCksIDgsIHJvd0J5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fY29sb3JTcGFjZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0
bWFwQnl0ZU9yZGVyMzJIb3N0KTsKLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0obV9jb250ZXh0
Q0cuZ2V0KCksIDAsIGNhbnZhcy0+c2l6ZSgpLmhlaWdodCgpKTsKLSAgICBDR0NvbnRleHRTY2Fs
ZUNUTShtX2NvbnRleHRDRy5nZXQoKSwgMSwgLTEpOwotICAgIG1fY29udGV4dCA9IGFkb3B0UHRy
KG5ldyBHcmFwaGljc0NvbnRleHQobV9jb250ZXh0Q0cuZ2V0KCkpKTsKLSNlbmRpZgotfQotCi1Q
bGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6flBhaW50ZXIoKQotewotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzI4Yzc1YWQ0NzIxZjk3OGI5ZDBkOGNiYzM5NzQwZGI5NjMzMjA4ZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5oCisrKyAvZGV2L251bGwKQEAgLTEs
MTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtQ2FudmFzX2gKLSNkZWZpbmUgUGxh
dGZvcm1DYW52YXNfaAotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotI2lmIFBMQVRGT1JNKENHKQot
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0NvbG9yU3BhY2UuaD4KLSNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ0dDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgotI2VuZGlmCi0KLSNpZiBVU0UoU0tJQSkKLW5hbWVzcGFjZSBz
a2lhIHsgY2xhc3MgUGxhdGZvcm1DYW52YXM7IH0KLWNsYXNzIFNrQml0bWFwOwotI2VuZGlmCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotCi0jaWYgVVNF
KFNLSUEpCi1jbGFzcyBQbGF0Zm9ybUNvbnRleHRTa2lhOwotI2VuZGlmCi0KLS8vIEEgMkQgYnVm
ZmVyIG9mIHBpeGVscyB3aXRoIGFuIGFzc29jaWF0ZWQgR3JhcGhpY3NDb250ZXh0LgotY2xhc3Mg
UGxhdGZvcm1DYW52YXMgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtQ2FudmFz
KTsKLXB1YmxpYzoKLSAgICBQbGF0Zm9ybUNhbnZhcygpOwotICAgIH5QbGF0Zm9ybUNhbnZhcygp
OwotCi0gICAgLy8gU2NvcGVkIGxvY2sgY2xhc3MgdG8gZ2V0IHRlbXBvcmFyeSBhY2Nlc3MgdG8g
dGhpcyBjYW52YXMncyBwaXhlbHMuCi0gICAgY2xhc3MgQXV0b0xvY2tlciB7Ci0gICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEF1dG9Mb2NrZXIpOwotICAgIHB1YmxpYzoKLSAgICAgICAgZXhw
bGljaXQgQXV0b0xvY2tlcihQbGF0Zm9ybUNhbnZhcyopOwotICAgICAgICB+QXV0b0xvY2tlcigp
OwotCi0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBpeGVscygpIGNvbnN0IHsgcmV0dXJuIG1fcGl4
ZWxzOyB9Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgUGxhdGZvcm1DYW52YXMqIG1fY2FudmFzOwot
I2lmIFVTRShTS0lBKQotICAgICAgICBjb25zdCBTa0JpdG1hcCogbV9iaXRtYXA7Ci0jZW5kaWYK
LSAgICAgICAgdWludDhfdCogbV9waXhlbHM7Ci0gICAgfTsKLQotICAgIC8vIFNjb3BlZCBsb2Nr
IGNsYXNzIHRvIGdldCB0ZW1wb3JhcnkgYWNjZXNzIHRvIHBhaW50IGludG8gdGhpcyBjYW52YXMu
Ci0gICAgY2xhc3MgUGFpbnRlciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhaW50
ZXIpOwotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQgUGFpbnRlcihQbGF0Zm9ybUNhbnZh
cyopOwotICAgICAgICB+UGFpbnRlcigpOwotCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKLSNpZiBVU0UoU0tJQSkK
LSAgICAgICAgT3duUHRyPFBsYXRmb3JtQ29udGV4dFNraWE+IG1fc2tpYUNvbnRleHQ7Ci0jZWxp
ZiBQTEFURk9STShDRykKLSAgICAgICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gbV9jb2xv
clNwYWNlOwotICAgICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NvbnRleHRDRzsKLSNl
bmRpZgotICAgIH07Ci0KLSAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7Ci0gICAgSW50
U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0KLXByaXZhdGU6Ci0jaWYgVVNF
KFNLSUEpCi0gICAgT3duUHRyPHNraWE6OlBsYXRmb3JtQ2FudmFzPiBtX3NraWFDYW52YXM7Ci0j
ZWxpZiBQTEFURk9STShDRykKLSAgICBPd25BcnJheVB0cjx1aW50OF90PiBtX3BpeGVsRGF0YTsK
LSNlbmRpZgotICAgIEludFNpemUgbV9zaXplOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1BsYXRmb3JtSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JbWFnZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYyY2Y0ZjhmZWI3M2YwZjc4YmFmZGE5MjEwNjJmYzUzZTcxMDgxMmUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JbWFnZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxMTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUg
IlBsYXRmb3JtSW1hZ2UuaCIKLQotI2lmIFVTRShTS0lBKQotI2luY2x1ZGUgIk5hdGl2ZUltYWdl
U2tpYS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKLSNlbGlmIFBMQVRGT1JN
KENHKQotI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KLSNpbmNsdWRl
IDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHSW1h
Z2UuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jZWxzZQotI2Vycm9yICJOZWVkIHRv
IGltcGxlbWVudCBmb3IgeW91ciBwbGF0Zm9ybSIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVBsYXRmb3JtSW1hZ2U6OlBsYXRmb3JtSW1hZ2UoKQotewotfQotCi12b2lkIFBsYXRm
b3JtSW1hZ2U6OnVwZGF0ZUZyb21JbWFnZShOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSkKLXsK
LSNpZiBVU0UoU0tJQSkKLSAgICAvLyBUaGUgbGF5ZXIgY29udGFpbnMgYW4gSW1hZ2UuCi0gICAg
TmF0aXZlSW1hZ2VTa2lhKiBza2lhSW1hZ2UgPSBzdGF0aWNfY2FzdDxOYXRpdmVJbWFnZVNraWEq
PihuYXRpdmVJbWFnZSk7Ci0gICAgY29uc3QgU2tCaXRtYXAqIHNraWFCaXRtYXAgPSBza2lhSW1h
Z2U7Ci0KLSAgICBJbnRTaXplIGJpdG1hcFNpemUoc2tpYUJpdG1hcC0+d2lkdGgoKSwgc2tpYUJp
dG1hcC0+aGVpZ2h0KCkpOwotICAgIEFTU0VSVChza2lhQml0bWFwKTsKLSNlbGlmIFBMQVRGT1JN
KENHKQotICAgIC8vIE5hdGl2ZUltYWdlUHRyIGlzIGEgQ0dJbWFnZVJlZiBvbiBNYWMgT1MgWC4K
LSAgICBpbnQgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgobmF0aXZlSW1hZ2UpOwotICAgIGludCBo
ZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KG5hdGl2ZUltYWdlKTsKLSAgICBJbnRTaXplIGJpdG1h
cFNpemUod2lkdGgsIGhlaWdodCk7Ci0jZW5kaWYKLQotICAgIHNpemVfdCBidWZmZXJTaXplID0g
Yml0bWFwU2l6ZS53aWR0aCgpICogYml0bWFwU2l6ZS5oZWlnaHQoKSAqIDQ7Ci0gICAgaWYgKG1f
c2l6ZSAhPSBiaXRtYXBTaXplKSB7Ci0gICAgICAgIG1fcGl4ZWxEYXRhID0gYWRvcHRBcnJheVB0
cihuZXcgdWludDhfdFtidWZmZXJTaXplXSk7Ci0gICAgICAgIG1lbXNldChtX3BpeGVsRGF0YS5n
ZXQoKSwgMCwgYnVmZmVyU2l6ZSk7Ci0gICAgICAgIG1fc2l6ZSA9IGJpdG1hcFNpemU7Ci0gICAg
fQotCi0jaWYgVVNFKFNLSUEpCi0gICAgU2tBdXRvTG9ja1BpeGVscyBsb2NrKCpza2lhQml0bWFw
KTsKLSAgICAvLyBGSVhNRTogZG8gd2UgbmVlZCB0byBzdXBwb3J0IG1vcmUgaW1hZ2UgY29uZmln
dXJhdGlvbnM/Ci0gICAgQVNTRVJUKHNraWFCaXRtYXAtPmNvbmZpZygpPT0gU2tCaXRtYXA6OmtB
UkdCXzg4ODhfQ29uZmlnKTsKLSAgICBza2lhQml0bWFwLT5jb3B5UGl4ZWxzVG8obV9waXhlbERh
dGEuZ2V0KCksIGJ1ZmZlclNpemUpOwotI2VsaWYgUExBVEZPUk0oQ0cpCi0gICAgLy8gRklYTUU6
IHdlIHNob3VsZCBnZXQgcmlkIG9mIHRoaXMgdGVtcG9yYXJ5IGNvcHkgd2hlcmUgcG9zc2libGUu
Ci0gICAgaW50IHRlbXBSb3dCeXRlcyA9IHdpZHRoICogNDsKLSAgICAvLyBOb3RlIHdlIGRvIG5v
dCB6ZXJvIHRoaXMgdmVjdG9yIHNpbmNlIHdlIGFyZSBnb2luZyB0bwotICAgIC8vIGNvbXBsZXRl
bHkgb3ZlcndyaXRlIGl0cyBjb250ZW50cyB3aXRoIHRoZSBpbWFnZSBiZWxvdy4KLSAgICAvLyBU
cnkgdG8gcmV1c2UgdGhlIGNvbG9yIHNwYWNlIGZyb20gdGhlIGltYWdlIHRvIHByZXNlcnZlIGl0
cyBjb2xvcnMuCi0gICAgLy8gU29tZSBpbWFnZXMgdXNlIGEgY29sb3Igc3BhY2UgKHN1Y2ggYXMg
aW5kZXhlZCkgdW5zdXBwb3J0ZWQgYnkgdGhlIGJpdG1hcCBjb250ZXh0LgotICAgIFJldGFpblB0
cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3BhY2VSZWxlYXNlcjsKLSAgICBDR0NvbG9yU3BhY2VS
ZWYgY29sb3JTcGFjZSA9IENHSW1hZ2VHZXRDb2xvclNwYWNlKG5hdGl2ZUltYWdlKTsKLSAgICBD
R0NvbG9yU3BhY2VNb2RlbCBjb2xvclNwYWNlTW9kZWwgPSBDR0NvbG9yU3BhY2VHZXRNb2RlbChj
b2xvclNwYWNlKTsKLSAgICBzd2l0Y2ggKGNvbG9yU3BhY2VNb2RlbCkgewotICAgIGNhc2Uga0NH
Q29sb3JTcGFjZU1vZGVsTW9ub2Nocm9tZToKLSAgICBjYXNlIGtDR0NvbG9yU3BhY2VNb2RlbFJH
QjoKLSAgICBjYXNlIGtDR0NvbG9yU3BhY2VNb2RlbENNWUs6Ci0gICAgY2FzZSBrQ0dDb2xvclNw
YWNlTW9kZWxMYWI6Ci0gICAgY2FzZSBrQ0dDb2xvclNwYWNlTW9kZWxEZXZpY2VOOgotICAgICAg
ICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBjb2xvclNwYWNlUmVsZWFzZXIuYWRvcHRD
RihDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKSk7Ci0gICAgICAgIGNvbG9yU3BhY2UgPSBj
b2xvclNwYWNlUmVsZWFzZXIuZ2V0KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBSZXRh
aW5QdHI8Q0dDb250ZXh0UmVmPiB0ZW1wQ29udGV4dChBZG9wdENGLCBDR0JpdG1hcENvbnRleHRD
cmVhdGUobV9waXhlbERhdGEuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIDgs
IHRlbXBSb3dCeXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JTcGFjZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9z
dCkpOwotICAgIENHQ29udGV4dFNldEJsZW5kTW9kZSh0ZW1wQ29udGV4dC5nZXQoKSwga0NHQmxl
bmRNb2RlQ29weSk7Ci0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKHRlbXBDb250ZXh0LmdldCgpLAot
ICAgICAgICAgICAgICAgICAgICAgICBDR1JlY3RNYWtlKDAsIDAsIHN0YXRpY19jYXN0PENHRmxv
YXQ+KHdpZHRoKSwgc3RhdGljX2Nhc3Q8Q0dGbG9hdD4oaGVpZ2h0KSksCi0gICAgICAgICAgICAg
ICAgICAgICAgIG5hdGl2ZUltYWdlKTsKLSNlbHNlCi0jZXJyb3IgIk5lZWQgdG8gaW1wbGVtZW50
IGZvciB5b3VyIHBsYXRmb3JtLiIKLSNlbmRpZgotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Q
bGF0Zm9ybUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9QbGF0Zm9ybUltYWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiMDUzM2Yw
NmRlMmJiN2IzNmVmNGJiOTEyZWJkZmRmZTc5MmZmNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUGxhdGZvcm1JbWFnZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgUGxhdGZvcm1JbWFnZV9oCi0jZGVmaW5lIFBsYXRmb3JtSW1hZ2VfaAot
Ci0jaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1JbWFnZSB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoUGxhdGZvcm1JbWFnZSk7Ci1wdWJsaWM6Ci0gICAgUGxhdGZvcm1JbWFnZSgp
OwotCi0gICAgdm9pZCB1cGRhdGVGcm9tSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpOwotICAgIGNvbnN0
IHVpbnQ4X3QqIHBpeGVscygpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxEYXRhID8gJm1fcGl4ZWxE
YXRhWzBdIDogMDsgfQotICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsg
fQotCi1wcml2YXRlOgotICAgIE93bkFycmF5UHRyPHVpbnQ4X3Q+IG1fcGl4ZWxEYXRhOwotICAg
IEludFNpemUgbV9zaXplOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>