<?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>126164</bug_id>
          
          <creation_ts>2013-12-23 10:19:44 -0800</creation_ts>
          <short_desc>REGRESSION(r160945): Seems to have broken multiple canvas tests (Requested by ap on #webkit).</short_desc>
          <delta_ts>2013-12-23 10:23:56 -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>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>125477</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ap</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962501</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 10:19:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/160945 broke the build:
Seems to have broken multiple canvas tests (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962503</commentid>
    <comment_count>1</comment_count>
      <attachid>219917</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 10:20:12 -0800</bug_when>
    <thetext>Created attachment 219917
ROLLOUT of r160945

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962507</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-23 10:22:25 -0800</bug_when>
    <thetext>*** Bug 126143 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962508</commentid>
    <comment_count>3</comment_count>
      <attachid>219917</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 10:23:54 -0800</bug_when>
    <thetext>Comment on attachment 219917
ROLLOUT of r160945

Clearing flags on attachment: 219917

Committed r161001: &lt;http://trac.webkit.org/changeset/161001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962509</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-23 10:23:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219917</attachid>
            <date>2013-12-23 10:20:12 -0800</date>
            <delta_ts>2013-12-23 10:23:54 -0800</delta_ts>
            <desc>ROLLOUT of r160945</desc>
            <filename>bug-126164-20131223102011.patch</filename>
            <type>text/plain</type>
            <size>27915</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwOTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2VlYjc5Mjg2NGU0OWZl
OGQ0MzRlNGYyMGMzMTI0ZGE2MzUxMTRhMC4uYWVmNGRjOWQ5MGM0N2NiNmFkYzNhYjRhMThjMjA1
NTAyYWU4ODYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEyLTIzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTYwOTQ1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNjA5NDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNjE2NAorCisgICAgICAgIFNlZW1zIHRvIGhhdmUgYnJva2VuIG11bHRpcGxlIGNh
bnZhcyB0ZXN0cyAoUmVxdWVzdGVkIGJ5IGFwIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0b3Jl
Q2FjaGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlPU3VyZmFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6On5JbWFnZUJ1ZmZlcik6CisKIDIwMTMtMTItMjMgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIHdlYmtpdCBndGsgMi4yLjMgc3RhYmxl
IHRhcmJhbGwgY29tcGlsYXRpb24gZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNmUyY2E5OTdjZTcxMzY2ZTA0ZjA3OTM2
ZDRjYjZkODVjYTUyOTE3Li4zOGRhYWZmOTM3M2ZjN2U3NTFlNmVkNjNkZDVkOTJlMWE3MDUyMGM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC04NDUsOCArODQ1LDYgQEAKIAkJMUMxMUNDQzgwQUE2MDkzNzAwREFEQjIwIC8qIERP
TUhUTUxFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NURGMkVFQjBBQTM4N0NCMDBBRDY0QzUgLyogRE9NSFRNTEVs
ZW1lbnQuaCAqLzsgfTsKIAkJMUMxOERBNTgxODFBRjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMThE
QTU2MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5jcHAgKi87IH07CiAJCTFDMThEQTU5
MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOERBNTcxODFBRjZBNTAwQzRFRjIyIC8qIFRleHRQ
YWludGVyLmggKi87IH07Ci0JCTFDMjFFNTdDMTgzRUQxRkYwMDFDMjg5RCAvKiBJbWFnZUJ1ZmZl
ckJhY2tpbmdTdG9yZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDMjFFNTdBMTgzRUQxRkYwMDFDMjg5RCAvKiBJbWFnZUJ1ZmZlckJhY2tp
bmdTdG9yZUNhY2hlLmNwcCAqLzsgfTsKLQkJMUMyMUU1N0QxODNFRDFGRjAwMUMyODlEIC8qIElt
YWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjFFNTdCMTgzRUQxRkYwMDFDMjg5RCAvKiBJbWFnZUJ1ZmZl
ckJhY2tpbmdTdG9yZUNhY2hlLmggKi87IH07CiAJCTFDMjY0OTdBMEQ3RTI0OEEwMEJEMTBGMiAv
KiBEb2N1bWVudExvYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzI2NDk3OTBEN0UyNDhBMDBCRDEwRjIgLyogRG9jdW1lbnRMb2FkZXJN
YWMuY3BwICovOyB9OwogCQkxQzI2NDk3QzBEN0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NDk3QjBE
N0UyNEVDMDBCRDEwRjIgLyogUGFnZU1hYy5jcHAgKi87IH07CiAJCTFDNEM4RjAyMEFEODVEODcw
MDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzRDOEYwMDBBRDg1RDg3MDA5NDc1Q0UgLyogRGVs
ZXRlQnV0dG9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC03NTAzLDggKzc1MDEsNiBAQAogCQkxQUZFMTE5ODBDQkZGQ0M0MDAz
MDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzE4REE1NjE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFBhaW50ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4REE1NzE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBh
aW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFBhaW50ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUMyMUU1N0ExODNFRDFGRjAwMUMyODlEIC8q
IEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDMjFFNTdCMTgzRUQxRkYwMDFDMjg5RCAvKiBJbWFnZUJ1
ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUMyNjQ5NzkwRDdFMjQ4QTAwQkQxMEYyIC8qIERvY3VtZW50TG9hZGVyTWFjLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZGVyTWFjLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyNjQ5N0IwRDdFMjRFQzAwQkQxMEYy
IC8qIFBhZ2VNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFn
ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDNEM4RUZGMEFEODVEODcw
MDk0NzVDRSAvKiBEZWxldGVCdXR0b25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE5MjgyLDgg
KzE5Mjc4LDYgQEAKIAkJCQkxRkM0MEZCODE2NTVDNTkxMDA0MEYyOUUgLyogU3ViaW1hZ2VDYWNo
ZVdpdGhUaW1lci5jcHAgKi8sCiAJCQkJMUZDNDBGQjcxNjU1QzU5MTAwNDBGMjlFIC8qIFN1Ymlt
YWdlQ2FjaGVXaXRoVGltZXIuaCAqLywKIAkJCQlCMjc1MzUyQTBCMDUzODE0MDAyQ0U2NEYgLyog
VHJhbnNmb3JtYXRpb25NYXRyaXhDRy5jcHAgKi8sCi0JCQkJMUMyMUU1N0ExODNFRDFGRjAwMUMy
ODlEIC8qIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwICovLAotCQkJCTFDMjFFNTdC
MTgzRUQxRkYwMDFDMjg5RCAvKiBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGNnOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzNzAw
LDcgKzIzNjk0LDYgQEAKIAkJCQlFMUFEMTQyMzEyOTVFQTdGMDBBQ0E5ODkgLyogSlNIVE1MSW5w
dXRFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjE0OEE3OTEyRTQxRTNCMDA0
NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMkFC
MjIwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTExhYmVsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMUMyMUU1N0QxODNFRDFGRjAwMUMyODlEIC8qIEltYWdlQnVmZmVyQmFja2luZ1N0b3Jl
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQjI0MEExQ0U2M0IwMEI0MkIyNSAvKiBK
U0hUTUxMZWdlbmRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyQUIyNjBBMUNFNjNC
MDBCNDJCMjUgLyogSlNIVE1MTElFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0Iw
RDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MTGlua0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMjY4ODEsNyArMjY4NzQsNiBAQAogCQkJCUI1OENFQjZBMTE5MTM2MDcwMDJBNjc5MCAvKiBK
U0RhdGFiYXNlU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTYyQTQ1NzEwMTE0NjQ3MDBE
RkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MTYyQTQ1NDEwMTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQzIxRTU3QzE4M0VEMUZGMDAxQzI4
OUQgLyogSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGREExNUVEMTEyQjAzRjk0MDAzQTU4M0EgLyogSlNEZWxheU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzFGQjFBNjUxMjBBNUQzRjAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdDNTlCNjMxN0Y0RDFCRjAwMEZCQ0JCIC8qIE1vY2tN
ZWRpYVN0cmVhbUNlbnRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJCYWNr
aW5nU3RvcmVDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ZmQ4ODUx
ZDA2ZWU1YTA2MmJkNWIxNGU4MGM4ZjI0MmY0OWZkOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwy
MjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmgiCi0KLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZB
U19CQUNLSU5HX1NUT1JFKQotI2luY2x1ZGUgPElPU3VyZmFjZS9JT1N1cmZhY2UuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gY3JlYXRl
SU9TdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgdW5zaWduZWQgcGl4ZWxGb3Jt
YXQgPSAnQkdSQSc7Ci0gICAgdW5zaWduZWQgYnl0ZXNQZXJFbGVtZW50ID0gNDsKLSAgICBpbnQg
d2lkdGggPSBzaXplLndpZHRoKCk7Ci0gICAgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0KCk7Ci0K
LSAgICB1bnNpZ25lZCBsb25nIGJ5dGVzUGVyUm93ID0gSU9TdXJmYWNlQWxpZ25Qcm9wZXJ0eShr
SU9TdXJmYWNlQnl0ZXNQZXJSb3csIHNpemUud2lkdGgoKSAqIGJ5dGVzUGVyRWxlbWVudCk7Ci0g
ICAgaWYgKCFieXRlc1BlclJvdykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB1bnNpZ25lZCBs
b25nIGFsbG9jU2l6ZSA9IElPU3VyZmFjZUFsaWduUHJvcGVydHkoa0lPU3VyZmFjZUFsbG9jU2l6
ZSwgc2l6ZS5oZWlnaHQoKSAqIGJ5dGVzUGVyUm93KTsKLSAgICBpZiAoIWFsbG9jU2l6ZSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBjb25zdCBpbnQga051bUNyZWF0aW9uUGFyYW1ldGVycyA9
IDY7Ci0gICAgY29uc3Qgdm9pZCoga2V5c1trTnVtQ3JlYXRpb25QYXJhbWV0ZXJzXTsKLSAgICBj
b25zdCB2b2lkKiB2YWx1ZXNba051bUNyZWF0aW9uUGFyYW1ldGVyc107Ci0gICAga2V5c1swXSA9
IGtJT1N1cmZhY2VXaWR0aDsKLSAgICB2YWx1ZXNbMF0gPSBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZO
dW1iZXJJbnRUeXBlLCAmd2lkdGgpOwotICAgIGtleXNbMV0gPSBrSU9TdXJmYWNlSGVpZ2h0Owot
ICAgIHZhbHVlc1sxXSA9IENGTnVtYmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUsICZoZWln
aHQpOwotICAgIGtleXNbMl0gPSBrSU9TdXJmYWNlUGl4ZWxGb3JtYXQ7Ci0gICAgdmFsdWVzWzJd
ID0gQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJnBpeGVsRm9ybWF0KTsKLSAg
ICBrZXlzWzNdID0ga0lPU3VyZmFjZUJ5dGVzUGVyRWxlbWVudDsKLSAgICB2YWx1ZXNbM10gPSBD
Rk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmYnl0ZXNQZXJFbGVtZW50KTsKLSAg
ICBrZXlzWzRdID0ga0lPU3VyZmFjZUJ5dGVzUGVyUm93OwotICAgIHZhbHVlc1s0XSA9IENGTnVt
YmVyQ3JlYXRlKDAsIGtDRk51bWJlckxvbmdUeXBlLCAmYnl0ZXNQZXJSb3cpOwotICAgIGtleXNb
NV0gPSBrSU9TdXJmYWNlQWxsb2NTaXplOwotICAgIHZhbHVlc1s1XSA9IENGTnVtYmVyQ3JlYXRl
KDAsIGtDRk51bWJlckxvbmdUeXBlLCAmYWxsb2NTaXplKTsKLQotICAgIFJldGFpblB0cjxDRkRp
Y3Rpb25hcnlSZWY+IGRpY3QgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzLCB2
YWx1ZXMsIGtOdW1DcmVhdGlvblBhcmFtZXRlcnMsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxC
YWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwga051bUNyZWF0aW9uUGFyYW1ldGVyczsgaSsrKQotICAgICAgICBDRlJl
bGVhc2UodmFsdWVzW2ldKTsKLQotICAgIHJldHVybiBhZG9wdENGKElPU3VyZmFjZUNyZWF0ZShk
aWN0LmdldCgpKSk7Ci19Ci0KLUltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUmIEltYWdlQnVm
ZmVyQmFja2luZ1N0b3JlQ2FjaGU6OmdldCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChJ
bWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLCBjYWNoZSwgKCkpOwotICAgIHJldHVybiBjYWNo
ZTsKLX0KLQotYm9vbCBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjppc0FjY2VwdGFibGVT
dXJmYWNlKGNvbnN0IElPU3VyZmFjZUFuZENvbnRleHRXaXRoQ3JlYXRpb25QYXJhbXMmIGluZm8s
IGNvbnN0IEludFNpemUmIHJlcXVlc3RlZFNpemUsIENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNl
LCBib29sIG5lZWRFeGFjdFNpemUpIGNvbnN0Ci17Ci0gICAgSU9TdXJmYWNlUmVmIHN1cmZhY2Ug
PSBpbmZvLnN1cmZhY2UuZ2V0KCk7Ci0gICAgSW50U2l6ZSBhY3R1YWxTaXplKElPU3VyZmFjZUdl
dFdpZHRoKHN1cmZhY2UpLCBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSkpOwotICAgIGlmICgh
Q0ZFcXVhbChpbmZvLmNvbG9yU3BhY2UuZ2V0KCksIGNvbG9yU3BhY2UpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKG5lZWRFeGFjdFNpemUgJiYgYWN0dWFsU2l6ZSAhPSByZXF1ZXN0
ZWRTaXplKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGFjdHVhbFNpemUud2lkdGgo
KSA8IHJlcXVlc3RlZFNpemUud2lkdGgoKSB8fCBhY3R1YWxTaXplLmhlaWdodCgpIDwgcmVxdWVz
dGVkU2l6ZS5oZWlnaHQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVl
OwotfQotCi12b2lkIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6Omluc2VydEludG9DYWNo
ZShJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENyZWF0aW9uUGFyYW1zJiYgaW5mbykKLXsKLSAgICBJ
T1N1cmZhY2VSZWYgc3VyZmFjZSA9IGluZm8uc3VyZmFjZS5nZXQoKTsKLSAgICBJbnRTaXplIHN1
cmZhY2VTaXplKElPU3VyZmFjZUdldFdpZHRoKHN1cmZhY2UpLCBJT1N1cmZhY2VHZXRIZWlnaHQo
c3VyZmFjZSkpOwotCi0gICAgYXV0byB0b0FkZCA9IG5ldyBJT1N1cmZhY2VBbmRDb250ZXh0V2l0
aENyZWF0aW9uUGFyYW1zKGluZm8pOwotICAgIGF1dG8gaW5zZXJ0ZWRUdXBsZSA9IG1fY2FjaGVk
U3VyZmFjZXMuYWRkKGNvbnZlcnRTaXplVG9LZXkoc3VyZmFjZVNpemUpLCBJbmZvTGlua2VkTGlz
dCgpKTsKLSAgICBpbnNlcnRlZFR1cGxlLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQodG9BZGQpOwot
ICAgIAotICAgIG1fcGl4ZWxzQ2FjaGVkICs9IHN1cmZhY2VTaXplLmFyZWEoKTsKLX0KLQotYXV0
byBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjp0YWtlRnJvbUNhY2hlKENhY2hlZFN1cmZh
Y2VNYXA6Oml0ZXJhdG9yIGl0ZXIsIElPU3VyZmFjZUFuZENvbnRleHRXaXRoQ3JlYXRpb25QYXJh
bXMqIGluZm8pIC0+IElPU3VyZmFjZUFuZENvbnRleHRXaXRoQ3JlYXRpb25QYXJhbXMKLXsKLSAg
ICBBU1NFUlQoaW5mbyk7Ci0gICAgQVNTRVJUKGl0ZXIgIT0gbV9jYWNoZWRTdXJmYWNlcy5lbmQo
KSk7Ci0KLSAgICBJT1N1cmZhY2VSZWYgc3VyZmFjZSA9IGluZm8tPnN1cmZhY2UuZ2V0KCk7Ci0g
ICAgbV9waXhlbHNDYWNoZWQgLT0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSkgKiBJT1N1cmZh
Y2VHZXRIZWlnaHQoc3VyZmFjZSk7Ci0KLSAgICBpdGVyLT52YWx1ZS5yZW1vdmUoaW5mbyk7Ci0g
ICAgaWYgKGl0ZXItPnZhbHVlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9jYWNoZWRTdXJmYWNlcy5y
ZW1vdmUoaXRlcik7Ci0gICAgSU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlvblBhcmFtcyBy
ZXN1bHQgPSBzdGQ6Om1vdmUoKmluZm8pOwotICAgIGRlbGV0ZSBpbmZvOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLWJvb2wgSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZTo6dHJ5VGFrZUZy
b21DYWNoZShjb25zdCBJbnRTaXplJiBzaXplLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSwg
Ym9vbCBuZWVkRXhhY3RTaXplLCBJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENyZWF0aW9uUGFyYW1z
JiBvdXRJbmZvKQotewotICAgIENhY2hlZFN1cmZhY2VNYXA6Oml0ZXJhdG9yIGkgPSBtX2NhY2hl
ZFN1cmZhY2VzLmZpbmQoY29udmVydFNpemVUb0tleShzaXplKSk7Ci0gICAgaWYgKGkgPT0gbV9j
YWNoZWRTdXJmYWNlcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgSW5mb0xp
bmtlZExpc3QmIGxsID0gaS0+dmFsdWU7Ci0gICAgZm9yIChhdXRvIGluZm8gPSBsbC5oZWFkKCk7
IGluZm87IGluZm8gPSBpbmZvLT5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGlzQWNjZXB0YWJsZVN1
cmZhY2UoKmluZm8sIHNpemUsIGNvbG9yU3BhY2UsIG5lZWRFeGFjdFNpemUpKSB7Ci0gICAgICAg
ICAgICBvdXRJbmZvID0gdGFrZUZyb21DYWNoZShpLCBpbmZvKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotSW1hZ2VC
dWZmZXJCYWNraW5nU3RvcmVDYWNoZTo6SU9TdXJmYWNlQW5kQ29udGV4dCBJbWFnZUJ1ZmZlckJh
Y2tpbmdTdG9yZUNhY2hlOjpnZXRPckFsbG9jYXRlKEludFNpemUgc2l6ZSwgQ0dDb2xvclNwYWNl
UmVmIGNvbG9yU3BhY2UsIGJvb2wgbmVlZEV4YWN0U2l6ZSkKLXsKLSAgICBJT1N1cmZhY2VBbmRD
b250ZXh0V2l0aENyZWF0aW9uUGFyYW1zIGZvdW5kSW5mbzsKLSAgICBpZiAodHJ5VGFrZUZyb21D
YWNoZShzaXplLCBjb2xvclNwYWNlLCBuZWVkRXhhY3RTaXplLCBmb3VuZEluZm8pKSB7Ci0gICAg
ICAgIElPU3VyZmFjZVJlZiBzdXJmYWNlID0gZm91bmRJbmZvLnN1cmZhY2UuZ2V0KCk7Ci0gICAg
ICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gZm91bmRJbmZvLmNvbnRleHQuZ2V0KCk7Ci0gICAg
ICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7Ci0gICAgICAgIGF1dG8gYWN0aXZlSW5z
ZXJ0ZWQgPSBtX2FjdGl2ZVN1cmZhY2VzLmFkZChzdXJmYWNlLCBzdGQ6Om1vdmUoZm91bmRJbmZv
KSk7Ci0gICAgICAgIEFTU0VSVChhY3RpdmVJbnNlcnRlZC5pc05ld0VudHJ5KTsKLSAgICAgICAg
cmV0dXJuIGFjdGl2ZUluc2VydGVkLml0ZXJhdG9yLT52YWx1ZTsKLSAgICB9Ci0KLSAgICBSZXRh
aW5QdHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlID0gY3JlYXRlSU9TdXJmYWNlKHNpemUpOwotICAg
IGlmICghc3VyZmFjZS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIElPU3VyZmFjZUFuZENvbnRleHQo
KTsKLQotICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdENGKHdrSU9T
dXJmYWNlQ29udGV4dENyZWF0ZShzdXJmYWNlLmdldCgpLCBzaXplLndpZHRoKCksIHNpemUuaGVp
Z2h0KCksIGNvbG9yU3BhY2UpKTsKLSAgICBpZiAoIWNvbnRleHQuZ2V0KCkpCi0gICAgICAgIHJl
dHVybiBJT1N1cmZhY2VBbmRDb250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250
ZXh0LmdldCgpKTsKLQotICAgIGF1dG8gaW5zZXJ0ZWRUdXBsZSA9IG1fYWN0aXZlU3VyZmFjZXMu
YWRkKHN1cmZhY2UsIElPU3VyZmFjZUFuZENvbnRleHRXaXRoQ3JlYXRpb25QYXJhbXMoc3VyZmFj
ZS5nZXQoKSwgY29udGV4dC5nZXQoKSwgY29sb3JTcGFjZSkpOwotICAgIEFTU0VSVChpbnNlcnRl
ZFR1cGxlLmlzTmV3RW50cnkpOwotCi0gICAgcmV0dXJuIGluc2VydGVkVHVwbGUuaXRlcmF0b3It
PnZhbHVlOwotfQotCi12b2lkIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6OmRlYWxsb2Nh
dGUoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCi17Ci0gICAgQWN0aXZlU3VyZmFjZU1hcDo6aXRlcmF0
b3IgbG9va3VwID0gbV9hY3RpdmVTdXJmYWNlcy5maW5kKHN1cmZhY2UpOwotICAgIEFTU0VSVChs
b29rdXAgIT0gbV9hY3RpdmVTdXJmYWNlcy5lbmQoKSk7Ci0gICAgCi0gICAgYXV0byBpbmZvID0g
c3RkOjptb3ZlKGxvb2t1cC0+dmFsdWUpOwotICAgIG1fYWN0aXZlU3VyZmFjZXMucmVtb3ZlKGxv
b2t1cCk7Ci0gICAgCi0gICAgSU9TdXJmYWNlUmVmIGlvU3VyZmFjZSA9IGluZm8uc3VyZmFjZS5n
ZXQoKTsKLSAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IGluZm8uY29udGV4dC5nZXQoKTsKLSAg
ICBJbnRTaXplIHN1cmZhY2VTaXplKElPU3VyZmFjZUdldFdpZHRoKGlvU3VyZmFjZSksIElPU3Vy
ZmFjZUdldEhlaWdodChpb1N1cmZhY2UpKTsKLSAgICBpbnQgc3VyZmFjZUFyZWEgPSBzdXJmYWNl
U2l6ZS5hcmVhKCk7Ci0KLSAgICBzdGF0aWMgY29uc3QgaW50IGtNYXhQaXhlbHNDYWNoZWQgPSAx
MDI0ICogMTAyNCAqIDY0OyAvLyAyNTZNQgotICAgIGlmIChzdXJmYWNlQXJlYSA+IGtNYXhQaXhl
bHNDYWNoZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEV2aWN0Ci0gICAgYXV0byBidWNr
ZXQgPSBtX2NhY2hlZFN1cmZhY2VzLmZpbmQoY29udmVydFNpemVUb0tleShzdXJmYWNlU2l6ZSkp
OwotICAgIGlmIChidWNrZXQgIT0gbV9jYWNoZWRTdXJmYWNlcy5lbmQoKSkgewotICAgICAgICBm
b3IgKGludCBpdGVtc0luQnVja2V0ID0gYnVja2V0LT52YWx1ZS5zaXplKCk7Ci0gICAgICAgICAg
ICBpdGVtc0luQnVja2V0ID4gMCAmJiBtX3BpeGVsc0NhY2hlZCArIHN1cmZhY2VBcmVhID4ga01h
eFBpeGVsc0NhY2hlZDsKLSAgICAgICAgICAgIC0taXRlbXNJbkJ1Y2tldCkKLSAgICAgICAgICAg
IHRha2VGcm9tQ2FjaGUoYnVja2V0LCBidWNrZXQtPnZhbHVlLmhlYWQoKSk7Ci0gICAgfQotICAg
IHdoaWxlIChtX3BpeGVsc0NhY2hlZCArIHN1cmZhY2VBcmVhID4ga01heFBpeGVsc0NhY2hlZCkg
ewotICAgICAgICBDYWNoZWRTdXJmYWNlTWFwOjppdGVyYXRvciBpdGVyID0gbV9jYWNoZWRTdXJm
YWNlcy5iZWdpbigpOwotICAgICAgICB0YWtlRnJvbUNhY2hlKGl0ZXIsIGl0ZXItPnZhbHVlLmhl
YWQoKSk7Ci0gICAgfQotCi0gICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjb250ZXh0KTsKLSAg
ICAvLyBDbGVhciBvcHBvcnR1bmlzdGljYWxseSBzbyBDRyBoYXMgbW9yZSB0aW1lIHRvIGNhcnJ5
IGl0IG91dC4KLSAgICBDR0NvbnRleHRDbGVhclJlY3QoY29udGV4dCwgQ0dSZWN0TWFrZSgwLCAw
LCBzdXJmYWNlU2l6ZS53aWR0aCgpLCBzdXJmYWNlU2l6ZS5oZWlnaHQoKSkpOwotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDkwCi0gICAgQ0dDb250ZXh0Rmx1c2goY29u
dGV4dCk7Ci0jZW5kaWYKLQotICAgIGluc2VydEludG9DYWNoZShzdGQ6Om1vdmUoaW5mbykpOwot
Ci0gICAgc2NoZWR1bGVQdXJnZVRpbWVyKCk7Ci19Ci0KLXZvaWQgSW1hZ2VCdWZmZXJCYWNraW5n
U3RvcmVDYWNoZTo6dGltZXJGaXJlZChUaW1lcjxJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hl
PiopCi17Ci0gICAgd2hpbGUgKCFtX2NhY2hlZFN1cmZhY2VzLmlzRW1wdHkoKSkgewotICAgICAg
ICBDYWNoZWRTdXJmYWNlTWFwOjppdGVyYXRvciBpdGVyID0gbV9jYWNoZWRTdXJmYWNlcy5iZWdp
bigpOwotICAgICAgICB0YWtlRnJvbUNhY2hlKGl0ZXIsIGl0ZXItPnZhbHVlLmhlYWQoKSk7Ci0g
ICAgfQotfQotCi12b2lkIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6OnNjaGVkdWxlUHVy
Z2VUaW1lcigpCi17Ci0gICAgaWYgKG1fcHVyZ2VUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X3B1cmdlVGltZXIuc3RvcCgpOwotCi0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBwdXJnZUludGVy
dmFsID0gNTsKLSAgICBtX3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KHB1cmdlSW50ZXJ2YWwpOwot
fQotCi19Ci0jZW5kaWYgLy8gSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckJhY2tp
bmdTdG9yZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI0NWUyMzIxMzEwYTYzYmIwNDY5NGRlYTJlZDNlOGI0YWExYmJlMzIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZS5oCisrKyAvZGV2L251bGwK
QEAgLTEsMTE3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEltYWdlQnVmZmVyQmFja2lu
Z1N0b3JlQ2FjaGVfaAotI2RlZmluZSBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlX2gKLQot
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCi0KLSNpbmNsdWRlICJUaW1lci5oIgotCi0jaW5jbHVk
ZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzLmg+Ci0jaW5jbHVkZSA8
d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotCi0jaWYg
VVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7Ci0KLXB1YmxpYzoKLSAgICBzdGF0aWMgSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVD
YWNoZSYgZ2V0KCk7Ci0gICAgCi0gICAgc3RydWN0IElPU3VyZmFjZUFuZENvbnRleHQgewotICAg
ICAgICBJT1N1cmZhY2VBbmRDb250ZXh0KCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAg
ICAgSU9TdXJmYWNlQW5kQ29udGV4dChJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb250ZXh0UmVm
IGNvbnRleHQpCi0gICAgICAgICAgICA6IHN1cmZhY2Uoc3VyZmFjZSkKLSAgICAgICAgICAgICwg
Y29udGV4dChjb250ZXh0KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBSZXRhaW5Q
dHI8SU9TdXJmYWNlUmVmPiBzdXJmYWNlOwotICAgICAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVm
PiBjb250ZXh0OwotICAgIH07Ci0KLSAgICBJT1N1cmZhY2VBbmRDb250ZXh0IGdldE9yQWxsb2Nh
dGUoSW50U2l6ZSwgQ0dDb2xvclNwYWNlUmVmLCBib29sIG5lZWRFeGFjdFNpemUpOwotICAgIHZv
aWQgZGVhbGxvY2F0ZShJT1N1cmZhY2VSZWYpOwotCi1wcml2YXRlOgotICAgIEltYWdlQnVmZmVy
QmFja2luZ1N0b3JlQ2FjaGUoKQotICAgICAgICA6IG1fcHVyZ2VUaW1lcih0aGlzLCAmSW1hZ2VC
dWZmZXJCYWNraW5nU3RvcmVDYWNoZTo6dGltZXJGaXJlZCkKLSAgICAgICAgLCBtX3BpeGVsc0Nh
Y2hlZCgwKQotICAgIHsKLSAgICB9Ci0KLSAgICBzdHJ1Y3QgSU9TdXJmYWNlQW5kQ29udGV4dFdp
dGhDcmVhdGlvblBhcmFtcyA6IHB1YmxpYyBJT1N1cmZhY2VBbmRDb250ZXh0LCBwdWJsaWMgRG91
Ymx5TGlua2VkTGlzdE5vZGU8SU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlvblBhcmFtcz4g
ewotICAgICAgICBJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENyZWF0aW9uUGFyYW1zKCkKLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgSU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlv
blBhcmFtcyhJT1N1cmZhY2VSZWYgc3VyZmFjZSwgQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHQ29s
b3JTcGFjZVJlZiBjb2xvclNwYWNlKQotICAgICAgICAgICAgOiBJT1N1cmZhY2VBbmRDb250ZXh0
KHN1cmZhY2UsIGNvbnRleHQpCi0gICAgICAgICAgICAsIGNvbG9yU3BhY2UoY29sb3JTcGFjZSkK
LSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgSU9TdXJmYWNlQW5kQ29udGV4dFdpdGhD
cmVhdGlvblBhcmFtcyogbV9wcmV2OwotICAgICAgICBJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENy
ZWF0aW9uUGFyYW1zKiBtX25leHQ7Ci0gICAgICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+
IGNvbG9yU3BhY2U7Ci0gICAgfTsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UmV0YWluUHRyPElPU3Vy
ZmFjZVJlZj4sIElPU3VyZmFjZUFuZENvbnRleHRXaXRoQ3JlYXRpb25QYXJhbXM+IEFjdGl2ZVN1
cmZhY2VNYXA7Ci0gICAgdHlwZWRlZiBzdGQ6OnBhaXI8aW50LCBpbnQ+IENhY2hlZFN1cmZhY2VL
ZXk7Ci0gICAgdHlwZWRlZiBEb3VibHlMaW5rZWRMaXN0PElPU3VyZmFjZUFuZENvbnRleHRXaXRo
Q3JlYXRpb25QYXJhbXM+IEluZm9MaW5rZWRMaXN0OwotICAgIHR5cGVkZWYgSGFzaE1hcDxDYWNo
ZWRTdXJmYWNlS2V5LCBJbmZvTGlua2VkTGlzdD4gQ2FjaGVkU3VyZmFjZU1hcDsKLQotICAgIHN0
YXRpYyBDYWNoZWRTdXJmYWNlS2V5IGNvbnZlcnRTaXplVG9LZXkoY29uc3QgSW50U2l6ZSYgc2l6
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXVEY6OnJvdW5kVXBUb011
bHRpcGxlT2YoOCwgc2l6ZS53aWR0aCgpKSwgV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKDgsIHNp
emUuaGVpZ2h0KCkpKTsKLSAgICB9Ci0KLSAgICBJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENyZWF0
aW9uUGFyYW1zIHRha2VGcm9tQ2FjaGUoQ2FjaGVkU3VyZmFjZU1hcDo6aXRlcmF0b3IsIElPU3Vy
ZmFjZUFuZENvbnRleHRXaXRoQ3JlYXRpb25QYXJhbXMqKTsKLSAgICB2b2lkIGluc2VydEludG9D
YWNoZShJT1N1cmZhY2VBbmRDb250ZXh0V2l0aENyZWF0aW9uUGFyYW1zJiYpOwotCi0gICAgLy8g
SWYgd2UgZmluZCBhbiBhY2NlcHRhYmxlIHN1cmZhY2UsIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyBp
dCBmcm9tIHRoZSBjYWNoZSBhcwotICAgIC8vIHdlbGwgYXMgcGxhY2luZyBpdCBpbiB0aGUgb3V0
IHBhcmFtZXRlci4KLSAgICBib29sIHRyeVRha2VGcm9tQ2FjaGUoY29uc3QgSW50U2l6ZSYsIENH
Q29sb3JTcGFjZVJlZiwgYm9vbCBuZWVkRXhhY3RTaXplLCBJT1N1cmZhY2VBbmRDb250ZXh0V2l0
aENyZWF0aW9uUGFyYW1zJiBvdXRJbmZvKTsKLSAgICBib29sIGlzQWNjZXB0YWJsZVN1cmZhY2Uo
Y29uc3QgSU9TdXJmYWNlQW5kQ29udGV4dFdpdGhDcmVhdGlvblBhcmFtcyYsIGNvbnN0IEludFNp
emUmLCBDR0NvbG9yU3BhY2VSZWYsIGJvb2wgbmVlZEV4YWN0U2l6ZSkgY29uc3Q7Ci0KLSAgICB2
b2lkIHRpbWVyRmlyZWQoVGltZXI8SW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZT4qKTsKLSAg
ICB2b2lkIHNjaGVkdWxlUHVyZ2VUaW1lcigpOwotCi0gICAgVGltZXI8SW1hZ2VCdWZmZXJCYWNr
aW5nU3RvcmVDYWNoZT4gbV9wdXJnZVRpbWVyOwotICAgIEFjdGl2ZVN1cmZhY2VNYXAgbV9hY3Rp
dmVTdXJmYWNlczsKLSAgICBDYWNoZWRTdXJmYWNlTWFwIG1fY2FjaGVkU3VyZmFjZXM7Ci0gICAg
aW50IG1fcGl4ZWxzQ2FjaGVkOwotfTsKLQotfQotI2VuZGlmIC8vIElPU1VSRkFDRV9DQU5WQVNf
QkFDS0lOR19TVE9SRQotCi0jZW5kaWYgLy8gSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0cuY3BwCmluZGV4IDY4MGNmYzljZTRiZWM0NmQ1MjcwNWU4OTk5OWVhZTgxYzQ2OTM0MzAu
LmIxM2QxMjEzNDBiYjMxMTM5OGE2OTI4Nzk2ZDM4OTlkZWRjZmNlZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBA
IC00Nyw3ICs0Nyw2IEBACiAjZW5kaWYKIAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJ
TkdfU1RPUkUpCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZS5oIgogI2lu
Y2x1ZGUgPElPU3VyZmFjZS9JT1N1cmZhY2UuaD4KICNlbmRpZgogCkBAIC01NSw2ICs1NCw0MyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5H
X1NUT1JFKQogc3RhdGljIGNvbnN0IGludCBtYXhJT1N1cmZhY2VEaW1lbnNpb24gPSA0MDk2Owor
CitzdGF0aWMgUmV0YWluUHRyPElPU3VyZmFjZVJlZj4gY3JlYXRlSU9TdXJmYWNlKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgdW5zaWduZWQgcGl4ZWxGb3JtYXQgPSAnQkdSQSc7CisgICAg
dW5zaWduZWQgYnl0ZXNQZXJFbGVtZW50ID0gNDsKKyAgICBpbnQgd2lkdGggPSBzaXplLndpZHRo
KCk7CisgICAgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0KCk7CisKKyAgICB1bnNpZ25lZCBsb25n
IGJ5dGVzUGVyUm93ID0gSU9TdXJmYWNlQWxpZ25Qcm9wZXJ0eShrSU9TdXJmYWNlQnl0ZXNQZXJS
b3csIHNpemUud2lkdGgoKSAqIGJ5dGVzUGVyRWxlbWVudCk7CisgICAgaWYgKCFieXRlc1BlclJv
dykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICB1bnNpZ25lZCBsb25nIGFsbG9jU2l6ZSA9IElP
U3VyZmFjZUFsaWduUHJvcGVydHkoa0lPU3VyZmFjZUFsbG9jU2l6ZSwgc2l6ZS5oZWlnaHQoKSAq
IGJ5dGVzUGVyUm93KTsKKyAgICBpZiAoIWFsbG9jU2l6ZSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBjb25zdCB2b2lkICprZXlzWzZdOworICAgIGNvbnN0IHZvaWQgKnZhbHVlc1s2XTsKKyAg
ICBrZXlzWzBdID0ga0lPU3VyZmFjZVdpZHRoOworICAgIHZhbHVlc1swXSA9IENGTnVtYmVyQ3Jl
YXRlKDAsIGtDRk51bWJlckludFR5cGUsICZ3aWR0aCk7CisgICAga2V5c1sxXSA9IGtJT1N1cmZh
Y2VIZWlnaHQ7CisgICAgdmFsdWVzWzFdID0gQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50
VHlwZSwgJmhlaWdodCk7CisgICAga2V5c1syXSA9IGtJT1N1cmZhY2VQaXhlbEZvcm1hdDsKKyAg
ICB2YWx1ZXNbMl0gPSBDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmcGl4ZWxG
b3JtYXQpOworICAgIGtleXNbM10gPSBrSU9TdXJmYWNlQnl0ZXNQZXJFbGVtZW50OworICAgIHZh
bHVlc1szXSA9IENGTnVtYmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUsICZieXRlc1BlckVs
ZW1lbnQpOworICAgIGtleXNbNF0gPSBrSU9TdXJmYWNlQnl0ZXNQZXJSb3c7CisgICAgdmFsdWVz
WzRdID0gQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVyTG9uZ1R5cGUsICZieXRlc1BlclJvdyk7
CisgICAga2V5c1s1XSA9IGtJT1N1cmZhY2VBbGxvY1NpemU7CisgICAgdmFsdWVzWzVdID0gQ0ZO
dW1iZXJDcmVhdGUoMCwga0NGTnVtYmVyTG9uZ1R5cGUsICZhbGxvY1NpemUpOworCisgICAgUmV0
YWluUHRyPENGRGljdGlvbmFyeVJlZj4gZGljdCA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRl
KDAsIGtleXMsIHZhbHVlcywgNiwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NG
VHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCA2OyBpKyspCisgICAgICAgIENGUmVsZWFzZSh2YWx1ZXNbaV0pOworCisgICAgcmV0dXJu
IGFkb3B0Q0YoSU9TdXJmYWNlQ3JlYXRlKGRpY3QuZ2V0KCkpKTsKK30KICNlbmRpZgogCiBzdGF0
aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qp
CkBAIC0xMjAsMTUgKzE1Niw5IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRT
aXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UKICAgICBSZXRhaW5Q
dHI8Q0dDb250ZXh0UmVmPiBjZ0NvbnRleHQ7CiAgICAgaWYgKGFjY2VsZXJhdGVSZW5kZXJpbmcp
IHsKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQotICAgICAgICBJbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjpJT1N1cmZhY2VBbmRDb250ZXh0IGluZm9Gcm9tUG9v
bCA9IEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6OmdldCgpLmdldE9yQWxsb2NhdGUoCi0g
ICAgICAgICAgICBpbnRlcm5hbFNpemUoKSwgbV9kYXRhLm1fY29sb3JTcGFjZSwgZmFsc2UpOwot
ICAgICAgICBjZ0NvbnRleHQgPSBpbmZvRnJvbVBvb2wuY29udGV4dDsKLSAgICAgICAgaWYgKGNn
Q29udGV4dCkgewotICAgICAgICAgICAgbV9kYXRhLm1fc3VyZmFjZSA9IGluZm9Gcm9tUG9vbC5z
dXJmYWNlOwotICAgICAgICAgICAgbV9kYXRhLm1fYmFja2luZ1N0b3JlU2l6ZS5zZXRXaWR0aChJ
T1N1cmZhY2VHZXRXaWR0aChtX2RhdGEubV9zdXJmYWNlLmdldCgpKSk7Ci0gICAgICAgICAgICBt
X2RhdGEubV9iYWNraW5nU3RvcmVTaXplLnNldEhlaWdodChJT1N1cmZhY2VHZXRIZWlnaHQobV9k
YXRhLm1fc3VyZmFjZS5nZXQoKSkpOwotICAgICAgICAgICAgbV9kYXRhLm1fYnl0ZXNQZXJSb3cg
PSBJT1N1cmZhY2VHZXRCeXRlc1BlclJvdyhtX2RhdGEubV9zdXJmYWNlLmdldCgpKTsKLSAgICAg
ICAgfQorICAgICAgICBtX2RhdGEubV9zdXJmYWNlID0gY3JlYXRlSU9TdXJmYWNlKG1fZGF0YS5t
X2JhY2tpbmdTdG9yZVNpemUpOworICAgICAgICBGbG9hdFNpemUgdXNlckJvdW5kcyA9IHNjYWxl
U2l6ZVRvVXNlclNwYWNlKEZsb2F0U2l6ZSh3aWR0aC51bnNhZmVHZXQoKSwgaGVpZ2h0LnVuc2Fm
ZUdldCgpKSwgbV9kYXRhLm1fYmFja2luZ1N0b3JlU2l6ZSwgbV9zaXplKTsKKyAgICAgICAgY2dD
b250ZXh0ID0gYWRvcHRDRih3a0lPU3VyZmFjZUNvbnRleHRDcmVhdGUobV9kYXRhLm1fc3VyZmFj
ZS5nZXQoKSwgdXNlckJvdW5kcy53aWR0aCgpLCB1c2VyQm91bmRzLmhlaWdodCgpLCBtX2RhdGEu
bV9jb2xvclNwYWNlKSk7CiAjZW5kaWYKICAgICAgICAgaWYgKCFjZ0NvbnRleHQpCiAgICAgICAg
ICAgICBhY2NlbGVyYXRlUmVuZGVyaW5nID0gZmFsc2U7IC8vIElmIGFsbG9jYXRpb24gZmFpbHMs
IGZhbGwgYmFjayB0byBub24tYWNjZWxlcmF0ZWQgcGF0aC4KQEAgLTE1OCwxMCArMTg4LDYgQEAg
SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSwgQ29sb3JTcGFjZQogCiBJbWFnZUJ1ZmZlcjo6fkltYWdlQnVmZmVyKCkKIHsK
LSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQotICAgIGlmIChtX2RhdGEu
bV9zdXJmYWNlKQotICAgICAgICBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjpnZXQoKS5k
ZWFsbG9jYXRlKG1fZGF0YS5tX3N1cmZhY2UuZ2V0KCkpOwotI2VuZGlmCiB9CiAKIEdyYXBoaWNz
Q29udGV4dCogSW1hZ2VCdWZmZXI6OmNvbnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU0ZjUyOTIwMTNi
MTI5ZWRmNDNhZGI1NjcxNWNmODI5ZTJlNzE0YWIuLjMwYzNmYTgyMjcxNzI0MDVmOTk3MWRlNDhi
ZTdhNzFlMDQ1NDhlNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0xMi0yMyAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE2MDk0NS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTYwOTQ1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjYxNjQKKworICAgICAgICBTZWVtcyB0byBoYXZlIGJyb2tlbiBtdWx0aXBsZSBjYW52
YXMgdGVzdHMgKFJlcXVlc3RlZCBieSBhcCBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1iYWNraW5nLXN0b3JlLXJldXNlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtYmFja2luZy1zdG9yZS1yZXVz
ZS5odG1sOiBSZW1vdmVkLgorCiAyMDEzLTEyLTIzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCB0ZXN0cyBlZGl0aW5nL3NlbGVjdGlvbi81MDU3
NTA2Lmh0bWwgYW5kIGVkaXRpbmcvc2VsZWN0aW9uLzUwNTc1MDYtMi5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYmFja2luZy1zdG9yZS1yZXVzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYmFja2luZy1zdG9yZS1y
ZXVzZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZTM3MTlj
MDUyNTVlOTdkM2NiYjg5YmY2M2UxODYyMzI3NTc0MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWJh
Y2tpbmctc3RvcmUtcmV1c2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi1QQVNTIGRhdGEuZGF0YSBpcyBbMCwgMCwgMCwgMF0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtYmFja2luZy1zdG9yZS1yZXVzZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWJhY2tpbmctc3RvcmUtcmV1c2UuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTNiN2NlN2E2MTQ4Y2UzNDA5Mzg4NGZjMGRiMWRkZmNhMjEyM2I5
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtYmFja2luZy1zdG9yZS1yZXVzZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLShmdW5jdGlvbigpIHsKLSAgdmFyIGNhbnZhcyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICBjYW52YXMud2lkdGggPSA5OTsKLSAg
Y2FudmFzLmhlaWdodCA9IDk5OwotICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOwotICBjb250ZXh0LmZpbGxTdHlsZSA9ICcjZjAwJzsKLSAgY29udGV4dC5maWxsUmVjdCgw
LCAwLCAxMDAsIDEwMCk7Ci19KSgpOwotCi1pZiAod2luZG93LkdDQ29udHJvbGxlcikKLSAgR0ND
b250cm9sbGVyLmNvbGxlY3QoKTsKLQotdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImNhbnZhcyIpOwotY2FudmFzLndpZHRoID0gOTU7Ci1jYW52YXMuaGVpZ2h0ID0gOTU7Ci12
YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwotdmFyIGRhdGEgPSBjb250ZXh0
LmdldEltYWdlRGF0YSg1MCwgNTAsIDEsIDEpOwotc2hvdWxkQmUoImRhdGEuZGF0YSIsICJbMCwg
MCwgMCwgMF0iKTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DYW52YXMv
cmV1c2UuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQ2FudmFzL3JldXNlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1ZGUyZDEwZTJkOWNhZmYyMWZkZjhiZDJmODEzN2Q1ZTk5
OGJjYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9DYW52YXMvcmV1c2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBudW1DcmVhdGVk
ID0gMTAwMDsKLQotZnVuY3Rpb24gdGVzdENyZWF0aW9uKCkgewotICAgIChmdW5jdGlvbigpIHsK
LSAgICAgICAgdmFyIGNhbnZhc2VzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bnVtQ3JlYXRlZDsgaSArPSAxNikgewotICAgICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAgICAgICAgICAgY2FudmFzLndpZHRoID0gaTsK
LSAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpOwotICAgICAgICAgICAgdmFyIGNvbnRleHQg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qo
MCwgMCwgMSwgMSk7Ci0gICAgICAgICAgICBjYW52YXNlcy5wdXNoKGNhbnZhcyk7Ci0gICAgICAg
IH0KLSAgICB9KSgpOwotICAgIAotICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQotICAgICAg
ICB3aW5kb3cuR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKLX0KLQotUGVyZlRlc3RSdW5uZXIubWVh
c3VyZVJ1bnNQZXJTZWNvbmQoe3J1bjogZnVuY3Rpb24oKSB7Ci0gICAgdGVzdENyZWF0aW9uKCk7
Ci19fSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjJm
NmY5YzQ3NDA4YzJmN2U5NmNjYjFiN2E5NWE4NDljYjc5MTRmZi4uNTFiNDU2NjU3YTBmOTE3MDYz
NmFhZDFhZDVmNWNkNTAxZGY5NGMzZCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMy0xMi0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MDk0NS4KKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTYwOTQ1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYxNjQKKworICAgICAgICBTZWVtcyB0byBoYXZlIGJy
b2tlbiBtdWx0aXBsZSBjYW52YXMgdGVzdHMgKFJlcXVlc3RlZCBieSBhcCBvbgorICAgICAgICAj
d2Via2l0KS4KKworICAgICAgICAqIENhbnZhcy9yZXVzZS5odG1sOiBSZW1vdmVkLgorCiAyMDEz
LTEyLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWxsb3cgSW1hZ2VCdWZmZXIgdG8gcmUtdXNlIElPU3VyZmFjZXMK
</data>

          </attachment>
      

    </bug>

</bugzilla>