<?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>93391</bug_id>
          
          <creation_ts>2012-08-07 14:02:12 -0700</creation_ts>
          <short_desc>[chromium] Move WebCompositor interface into Platform API</short_desc>
          <delta_ts>2012-08-07 14:23:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>689352</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-07 14:02:12 -0700</bug_when>
    <thetext>[chromium] Move WebCompositor interface into Platform AP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689358</commentid>
    <comment_count>1</comment_count>
      <attachid>156996</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-07 14:06:04 -0700</bug_when>
    <thetext>Created attachment 156996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689365</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-07 14:08:38 -0700</bug_when>
    <thetext>There are two motivations behind this:
1.) I&apos;d like to add the &quot;am I in threaded mode&quot; getter to WebCompositor so that we don&apos;t have code all over WebCore depending on CCProxy to get at this data

2.) With this patch, users of the compositor can depend only on the Platform API instead of depending on the client API just for compositor initialization (which is a concern that goes away with GTFO, but is still nice in the short term).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689366</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 14:09:43 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689369</commentid>
    <comment_count>4</comment_count>
      <attachid>156996</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-07 14:15:22 -0700</bug_when>
    <thetext>Comment on attachment 156996
Patch

make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689379</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-07 14:23:50 -0700</bug_when>
    <thetext>Committed r124917: &lt;http://trac.webkit.org/changeset/124917&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156996</attachid>
            <date>2012-08-07 14:06:04 -0700</date>
            <delta_ts>2012-08-07 14:15:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93391-20120807140539.patch</filename>
            <type>text/plain</type>
            <size>39741</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0OTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA0ZmIxNzY2OGQwOTE5
ZTc1NDRhYzkwMzMxMDQ3YWMxZTUzMWViYzg2Li4xYTlhOTFlMzZmM2YzN2JmYzc0YWVmNDFjZDc1
NTc4MzJkMDg5YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wOC0wNyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZSBpbnRvIFBsYXRmb3JtIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMzOTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb21wb3NpdG9yIGlz
IGxvZ2ljYWxseSBwYXJ0IG9mIHRoZSBQbGF0Zm9ybSBBUEksIGFsb25nIHdpdGggV2ViTGF5ZXJU
cmVlVmlldyBhbmQgdGhlIFdlYkxheWVyIHR5cGVzLgorCisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYkNvbXBvc2l0b3IuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJDb21wb3NpdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6fldlYkNv
bXBvc2l0b3IpOgorCiAyMDEyLTA4LTA2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgbGluZ2VyaW5nIHVud3JhcDw+KCkg
Y2FsbHMgaW4gR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI1ODNmZjMy
NzljM2M4OGNjN2Y3NzdmNTgzNjQyNzlmMWVkOGU0YjguLmZlNzVhZDYyNDU0NGExMDRkNmFkZDNh
ZjE2ODBlMjI4NzE1ZDIyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMi0wOC0w
NyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJv
bWl1bV0gTW92ZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZSBpbnRvIFBsYXRmb3JtIEFQSQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMzOTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlcyB0aGUgc3Vw
cG9ydCBmaWxlcyBmb3IgV2ViQ29tcG9zaXRvciBpbnRvIFdlYkNvcmUvcGxhdGZvcm0vc3VwcG9y
dC8uIENDVGhyZWFkSW1wbCBpcyBhIGhlbHBlciBjbGFzcyB1c2VkCisgICAgICAgIG9ubHkgYnkg
V2ViQ29tcG9zaXRvckltcGwuCisKKyAgICAgICAgUmVmYWN0b3IvcmVuYW1pbmcgb25seSwgc28g
bm8gbmV3IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvQ0NUaHJlYWRJbXBsLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NDVGhyZWFkSW1wbC5jcHAuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoR2V0VGhyZWFkSURUYXNrKToKKyAgICAgICAgKFdlYktpdDo6R2V0VGhyZWFk
SURUYXNrOjpHZXRUaHJlYWRJRFRhc2spOgorICAgICAgICAoV2ViS2l0OjpHZXRUaHJlYWRJRFRh
c2s6On5HZXRUaHJlYWRJRFRhc2spOgorICAgICAgICAoV2ViS2l0OjpHZXRUaHJlYWRJRFRhc2s6
OnJ1bik6CisgICAgICAgIChDQ1RocmVhZFRhc2tBZGFwdGVyKToKKyAgICAgICAgKFdlYktpdDo6
Q0NUaHJlYWRUYXNrQWRhcHRlcjo6Q0NUaHJlYWRUYXNrQWRhcHRlcik6CisgICAgICAgIChXZWJL
aXQ6OkNDVGhyZWFkVGFza0FkYXB0ZXI6On5DQ1RocmVhZFRhc2tBZGFwdGVyKToKKyAgICAgICAg
KFdlYktpdDo6Q0NUaHJlYWRUYXNrQWRhcHRlcjo6cnVuKToKKyAgICAgICAgKFdlYktpdDo6Q0NU
aHJlYWRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpDQ1RocmVhZEltcGw6On5DQ1Ro
cmVhZEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDQ1RocmVhZEltcGw6OnBvc3RUYXNrKToKKyAg
ICAgICAgKFdlYktpdDo6Q0NUaHJlYWRJbXBsOjpwb3N0RGVsYXllZFRhc2spOgorICAgICAgICAo
V2ViS2l0OjpDQ1RocmVhZEltcGw6OnRocmVhZElEKToKKyAgICAgICAgKFdlYktpdDo6Q0NUaHJl
YWRJbXBsOjpDQ1RocmVhZEltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvQ0NUaHJlYWRJbXBsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DQ1RocmVhZEltcGwuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChDQ1RocmVhZElt
cGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvcklt
cGwuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9z
aXRvckltcGwuY3BwLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29t
cG9zaXRvcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNo
dXRkb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2V0UGVyVGlsZVBhaW50
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNldFBhcnRpYWxT
d2FwRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNldEFjY2VsZXJh
dGVkQW5pbWF0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBs
Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OmluaXRp
YWxpemVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OnNodXRkb3duKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkNvbXBvc2l0b3JJbXBsLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1w
bC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
Q29tcG9zaXRvckltcGwpOgorCiAyMDEyLTA4LTA3ICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5j
b20+CiAKICAgICAgICAgcmVpbXBsZW1lbnQgZmFzdE1vZCB3L28gKHNvb24gdG8gYmUpIHByaXZh
dGUgc2tpYSBtYWNyb3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjA2NTA2MDhhNzUz
MjBlODljMDAwZGQyODE2YmRiZDcwZTIzZjAzYS4uY2Q2ODI3ZGE4NmVmNzZlNDUzZDJlZTkxYzg3
MmM3YmRkYWVlNmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wOC0wNyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gTW92ZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZSBpbnRvIFBsYXRm
b3JtIEFQCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
MzM5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tcG9zaXRvci5oOgorICAgICAgICAq
IHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHA6CisKIDIwMTItMDgtMDcgIEpvc2h1YSBCZWxs
ICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxMjQ4NjUpOiBJ
dCBicm9rZSB0aGUgQVJNIENocm9taXVtIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1ZDg5ZmE5MDRiNTY2YmNi
MmI2NjY4Y2Q4ODNlZWFkZDRjZjQ1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaApAQCAtMCwwICsxLDY1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJDb21wb3NpdG9yX2gKKyNkZWZpbmUgV2ViQ29tcG9zaXRvcl9oCisKKyNk
ZWZpbmUgV0VCQ09NUE9TSVRPUl9PV05TX1NFVFRJTkdTIDEKKworI2luY2x1ZGUgIldlYkNvbW1v
bi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViSW5wdXRFdmVudDsKK2NsYXNz
IFdlYlRocmVhZDsKKworLy8gVGhpcyBjbGFzcyBjb250YWlucyBnbG9iYWwgcm91dGluZXMgZm9y
IGludGVyYWN0aW5nIHdpdGggdGhlCisvLyBjb21wb3NpdG9yLgorLy8KKy8vIEFsbCBjYWxscyB0
byB0aGUgV2ViQ29tcG9zaXRvciBtdXN0IGJlIG1hZGUgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCitj
bGFzcyBXZWJDb21wb3NpdG9yIHsKK3B1YmxpYzoKKyAgICAvLyBJbml0aWFsaXplcyB0aGUgY29t
cG9zaXRvci4gVGhyZWFkZWQgY29tcG9zaXRpbmcgaXMgZW5hYmxlZCBieSBwYXNzaW5nIGluCisg
ICAgLy8gYSBub24tbnVsbCBXZWJUaHJlYWQuIE5vIGNvbXBvc2l0b3IgY2xhc3NlcyBvciBtZXRo
b2RzIHNob3VsZCBiZSB1c2VkCisgICAgLy8gcHJpb3IgdG8gY2FsbGluZyBpbml0aWFsaXplLgor
ICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZShXZWJUaHJlYWQqKTsKKwor
ICAgIC8vIFNodXRzIGRvd24gdGhlIGNvbXBvc2l0b3IuIFRoaXMgbXVzdCBiZSBjYWxsZWQgd2hl
biBhbGwgY29tcG9zaXRvciBkYXRhCisgICAgLy8gdHlwZXMgaGF2ZSBiZWVuIGRlbGV0ZWQuIE5v
IGNvbXBvc2l0b3IgY2xhc3NlcyBvciBtZXRob2RzIHNob3VsZCBiZSB1c2VkCisgICAgLy8gYWZ0
ZXIgc2h1dGRvd24uCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzaHV0ZG93bigpOwor
CisgICAgLy8gVGhlc2UgbWF5IG9ubHkgYmUgY2FsbGVkIGJlZm9yZSBpbml0aWFsaXplLgorICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChib29s
KTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFBhcnRpYWxTd2FwRW5hYmxlZChi
b29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEFjY2VsZXJhdGVkQW5pbWF0
aW9uRW5hYmxlZChib29sKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0
b3IoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBmOGUxNmEyMzMxM2UwMTRjODlmODhhYTQzYjg4ZWE4MjMxMjBlMjU0Li5hMGYx
NjgxOGFhMzBlZjY3MmVmNGUwMzNkMGMyMDMwZTYzMzExYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC04MjEyLDExICs4MjEyLDE1IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9YUGF0aEdyYW1tYXIuaCcsCiAgICAgICAgIF0sCiAgICAgICAgICd3
ZWJjb3JlX3BsYXRmb3JtX3N1cHBvcnRfZmlsZXMnOiBbCisgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9DQ1RocmVhZEltcGwuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L0NDVGhyZWFkSW1wbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L0V4dGVuc2lvbnMzRENocm9taXVtLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJv
bWl1bS9zdXBwb3J0L1dlYkF1ZGlvQnVzLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9XZWJDb21wb3NpdG9ySW1wbC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvckltcGwuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJEYXRhLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViSFRUUExvYWRJbmZvLmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0NDVGhyZWFkSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0NDVGhyZWFkSW1w
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTgxZGYxYjA5MGJlMzNmOGZhYzI1MWViOWI5MWY1NDc2Mzg1ZGMw
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvQ0NUaHJlYWRJbXBsLmNwcApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgorCisjaW5jbHVk
ZSAiY2MvQ0NDb21wbGV0aW9uRXZlbnQuaCIKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4K
KyNpbmNsdWRlIDxwdWJsaWMvV2ViVGhyZWFkLmg+CisKK3VzaW5nIFdlYkNvcmU6OkNDVGhyZWFk
OwordXNpbmcgV2ViQ29yZTo6Q0NDb21wbGV0aW9uRXZlbnQ7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisvLyBUYXNrIHRoYXQsIHdoZW4gcnVucywgcGxhY2VzIHRoZSBjdXJyZW50IHRocmVhZCBJ
RCBpbnRvIHRoZSBwcm92aWRlZAorLy8gcG9pbnRlciBhbmQgc2lnbmFscyBhIGNvbXBsZXRpb24g
ZXZlbnQuCisvLworLy8gRG9lcyBub3QgcHJvdmlkZSBhIFBhc3NPd25QdHI8R2V0VGhyZWFkSURU
YXNrPjo6Y3JlYXRlIG1ldGhvZCBiZWNhdXNlCisvLyB0aGUgcmVzdWx0aW5nIG9iamVjdCBpcyBh
bHdheXMgaGFuZGVkIGludG8gYSBXZWJUaHJlYWQsIHdoaWNoIGRvZXMgbm90IHVuZGVyc3RhbmQK
Ky8vIFBhc3NPd25QdHJzLgorY2xhc3MgR2V0VGhyZWFkSURUYXNrIDogcHVibGljIFdlYlRocmVh
ZDo6VGFzayB7CitwdWJsaWM6CisgICAgR2V0VGhyZWFkSURUYXNrKFRocmVhZElkZW50aWZpZXIq
IHJlc3VsdCwgQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24pCisgICAgICAgICA6IG1fY29t
cGxldGlvbihjb21wbGV0aW9uKQorICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpIHsgfQorCisg
ICAgdmlydHVhbCB+R2V0VGhyZWFkSURUYXNrKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcnVu
KCkKKyAgICB7CisgICAgICAgICptX3Jlc3VsdCA9IGN1cnJlbnRUaHJlYWQoKTsKKyAgICAgICAg
bV9jb21wbGV0aW9uLT5zaWduYWwoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ0NDb21wbGV0
aW9uRXZlbnQqIG1fY29tcGxldGlvbjsKKyAgICBUaHJlYWRJZGVudGlmaWVyKiBtX3Jlc3VsdDsK
K307CisKKy8vIEdlbmVyYWwgYWRhcHRlciBmcm9tIGEgQ0NUaHJlYWQ6OlRhc2sgdG8gYSBXZWJU
aHJlYWQ6OlRhc2suCitjbGFzcyBDQ1RocmVhZFRhc2tBZGFwdGVyIDogcHVibGljIFdlYlRocmVh
ZDo6VGFzayB7CitwdWJsaWM6CisgICAgQ0NUaHJlYWRUYXNrQWRhcHRlcihQYXNzT3duUHRyPEND
VGhyZWFkOjpUYXNrPiB0YXNrKSA6IG1fdGFzayh0YXNrKSB7IH0KKworICAgIHZpcnR1YWwgfkND
VGhyZWFkVGFza0FkYXB0ZXIoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBydW4oKQorICAgIHsK
KyAgICAgICAgbV90YXNrLT5wZXJmb3JtVGFzaygpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBP
d25QdHI8Q0NUaHJlYWQ6OlRhc2s+IG1fdGFzazsKK307CisKK1Bhc3NPd25QdHI8Q0NUaHJlYWQ+
IENDVGhyZWFkSW1wbDo6Y3JlYXRlKFdlYlRocmVhZCogdGhyZWFkKQoreworICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgQ0NUaHJlYWRJbXBsKHRocmVhZCkpOworfQorCitDQ1RocmVhZEltcGw6On5D
Q1RocmVhZEltcGwoKQoreworfQorCit2b2lkIENDVGhyZWFkSW1wbDo6cG9zdFRhc2soUGFzc093
blB0cjxDQ1RocmVhZDo6VGFzaz4gdGFzaykKK3sKKyAgICBtX3RocmVhZC0+cG9zdFRhc2sobmV3
IENDVGhyZWFkVGFza0FkYXB0ZXIodGFzaykpOworfQorCit2b2lkIENDVGhyZWFkSW1wbDo6cG9z
dERlbGF5ZWRUYXNrKFBhc3NPd25QdHI8Q0NUaHJlYWQ6OlRhc2s+IHRhc2ssIGxvbmcgbG9uZyBk
ZWxheU1zKQoreworICAgIG1fdGhyZWFkLT5wb3N0RGVsYXllZFRhc2sobmV3IENDVGhyZWFkVGFz
a0FkYXB0ZXIodGFzayksIGRlbGF5TXMpOworfQorCitUaHJlYWRJZGVudGlmaWVyIENDVGhyZWFk
SW1wbDo6dGhyZWFkSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX3RocmVhZElEOworfQorCitD
Q1RocmVhZEltcGw6OkNDVGhyZWFkSW1wbChXZWJUaHJlYWQqIHRocmVhZCkKKyAgICA6IG1fdGhy
ZWFkKHRocmVhZCkKK3sKKyAgICBpZiAodGhyZWFkID09IFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+Y3VycmVudFRocmVhZCgpKSB7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjdXJyZW50VGhy
ZWFkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBHZXQgdGhlIHRocmVhZElk
IGZvciB0aGUgbmV3bHktY3JlYXRlZCB0aHJlYWQgYnkgcnVubmluZyBhIHRhc2sKKyAgICAvLyBv
biB0aGF0IHRocmVhZCwgYmxvY2tpbmcgb24gdGhlIHJlc3VsdC4KKyAgICBtX3RocmVhZElEID0g
Y3VycmVudFRocmVhZCgpOworICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247CisgICAg
bV90aHJlYWQtPnBvc3RUYXNrKG5ldyBHZXRUaHJlYWRJRFRhc2soJm1fdGhyZWFkSUQsICZjb21w
bGV0aW9uKSk7CisgICAgY29tcGxldGlvbi53YWl0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9DQ1RocmVhZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvQ0NUaHJlYWRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY5YjgwMTVhZTg1YzhmODNhNDU3ZjI0ODZi
NGNiMDVhNjliMTMyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvQ0NUaHJlYWRJbXBsLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNjL0NDVGhyZWFkLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworI2lmbmRlZiBDQ1RocmVhZEltcGxfaAor
I2RlZmluZSBDQ1RocmVhZEltcGxfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
VGhyZWFkOworCisvLyBJbXBsZW1lbnRzIENDVGhyZWFkIGluIHRlcm1zIG9mIFdlYlRocmVhZC4K
K2NsYXNzIENDVGhyZWFkSW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpDQ1RocmVhZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJlYWQ+IGNyZWF0ZShXZWJUaHJl
YWQqKTsKKyAgICB2aXJ0dWFsIH5DQ1RocmVhZEltcGwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soUGFzc093blB0cjxXZWJDb3JlOjpDQ1RocmVhZDo6VGFzaz4pOworICAgIHZpcnR1YWwg
dm9pZCBwb3N0RGVsYXllZFRhc2soUGFzc093blB0cjxXZWJDb3JlOjpDQ1RocmVhZDo6VGFzaz4s
IGxvbmcgbG9uZyBkZWxheU1zKTsKKyAgICBXVEY6OlRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQo
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBDQ1RocmVhZEltcGwoV2ViVGhyZWFk
Kik7CisKKyAgICBXZWJUaHJlYWQqIG1fdGhyZWFkOworICAgIFdURjo6VGhyZWFkSWRlbnRpZmll
ciBtX3RocmVhZElEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJDb21w
b3NpdG9ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYkNvbXBvc2l0b3JJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2Q1MjgyMzAxNjc5OTFmYWM1NjY5
M2Q0ZGE0M2M5NjNiOGQyMzYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJDb21wb3NpdG9ySW1wbC5jcHAKQEAgLTAsMCArMSwx
MDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJDb21wb3Np
dG9ySW1wbC5oIgorCisjaW5jbHVkZSAiQ0NUaHJlYWRJbXBsLmgiCisjaW5jbHVkZSAiY2MvQ0NM
YXllclRyZWVIb3N0LmgiCisjaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgorI2luY2x1ZGUgImNjL0ND
U2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nUHJpbWl0aXZlcy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViQ29tcG9zaXRvckltcGw6OnNfaW5pdGlhbGl6ZWQg
PSBmYWxzZTsKK0NDVGhyZWFkKiBXZWJDb21wb3NpdG9ySW1wbDo6c19tYWluVGhyZWFkID0gMDsK
K0NDVGhyZWFkKiBXZWJDb21wb3NpdG9ySW1wbDo6c19pbXBsVGhyZWFkID0gMDsKKwordm9pZCBX
ZWJDb21wb3NpdG9yOjppbml0aWFsaXplKFdlYlRocmVhZCogaW1wbFRocmVhZCkKK3sKKyAgICBX
ZWJDb21wb3NpdG9ySW1wbDo6aW5pdGlhbGl6ZShpbXBsVGhyZWFkKTsKK30KK3ZvaWQgV2ViQ29t
cG9zaXRvcjo6c2h1dGRvd24oKQoreworICAgIFdlYkNvbXBvc2l0b3JJbXBsOjpzaHV0ZG93bigp
OworICAgIENDU2V0dGluZ3M6OnJlc2V0KCk7Cit9CisKK3ZvaWQgV2ViQ29tcG9zaXRvcjo6c2V0
UGVyVGlsZVBhaW50aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgQVNTRVJUKCFXZWJD
b21wb3NpdG9ySW1wbDo6aW5pdGlhbGl6ZWQoKSk7CisgICAgQ0NTZXR0aW5nczo6c2V0UGVyVGls
ZVBhaW50aW5nRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBXZWJDb21wb3NpdG9yOjpzZXRQ
YXJ0aWFsU3dhcEVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIEFTU0VSVCghV2ViQ29tcG9z
aXRvckltcGw6OmluaXRpYWxpemVkKCkpOworICAgIENDU2V0dGluZ3M6OnNldFBhcnRpYWxTd2Fw
RW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBXZWJDb21wb3NpdG9yOjpzZXRBY2NlbGVyYXRl
ZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIEFTU0VSVCghV2ViQ29tcG9z
aXRvckltcGw6OmluaXRpYWxpemVkKCkpOworICAgIENDU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVk
QW5pbWF0aW9uRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBXZWJDb21wb3NpdG9ySW1wbDo6
aW5pdGlhbGl6ZShXZWJUaHJlYWQqIGltcGxUaHJlYWQpCit7CisgICAgQVNTRVJUKCFzX2luaXRp
YWxpemVkKTsKKyAgICBzX2luaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIHNfbWFpblRocmVhZCA9
IENDVGhyZWFkSW1wbDo6Y3JlYXRlKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3VycmVu
dFRocmVhZCgpKS5sZWFrUHRyKCk7CisgICAgQ0NQcm94eTo6c2V0TWFpblRocmVhZChzX21haW5U
aHJlYWQpOworICAgIGlmIChpbXBsVGhyZWFkKSB7CisgICAgICAgIHNfaW1wbFRocmVhZCA9IEND
VGhyZWFkSW1wbDo6Y3JlYXRlKGltcGxUaHJlYWQpLmxlYWtQdHIoKTsKKyAgICAgICAgQ0NQcm94
eTo6c2V0SW1wbFRocmVhZChzX2ltcGxUaHJlYWQpOworICAgIH0gZWxzZQorICAgICAgICBDQ1By
b3h5OjpzZXRJbXBsVGhyZWFkKDApOworfQorCitib29sIFdlYkNvbXBvc2l0b3JJbXBsOjppbml0
aWFsaXplZCgpCit7CisgICAgcmV0dXJuIHNfaW5pdGlhbGl6ZWQ7Cit9CisKK3ZvaWQgV2ViQ29t
cG9zaXRvckltcGw6OnNodXRkb3duKCkKK3sKKyAgICBBU1NFUlQoc19pbml0aWFsaXplZCk7Cisg
ICAgQVNTRVJUKCFDQ0xheWVyVHJlZUhvc3Q6OmFueUxheWVyVHJlZUhvc3RJbnN0YW5jZUV4aXN0
cygpKTsKKworICAgIGlmIChzX2ltcGxUaHJlYWQpIHsKKyAgICAgICAgZGVsZXRlIHNfaW1wbFRo
cmVhZDsKKyAgICAgICAgc19pbXBsVGhyZWFkID0gMDsKKyAgICB9CisgICAgZGVsZXRlIHNfbWFp
blRocmVhZDsKKyAgICBzX21haW5UaHJlYWQgPSAwOworICAgIENDUHJveHk6OnNldEltcGxUaHJl
YWQoMCk7CisgICAgQ0NQcm94eTo6c2V0TWFpblRocmVhZCgwKTsKKyAgICBzX2luaXRpYWxpemVk
ID0gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvckltcGwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGM2
YmQwZmRjNjc2NGRiM2FkZWQyZTJlODM5NTM2ODM0ZmFhMzdlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJDb21wb3NpdG9ySW1w
bC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbXBvc2l0b3JJbXBsX2gK
KyNkZWZpbmUgV2ViQ29tcG9zaXRvckltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5o
IgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IENDVGhyZWFkOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVGhyZWFkOwor
CitjbGFzcyBXZWJDb21wb3NpdG9ySW1wbCA6IHB1YmxpYyBXZWJDb21wb3NpdG9yIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb21wb3NpdG9ySW1wbCk7CitwdWJsaWM6CisgICAgc3Rh
dGljIGJvb2wgaW5pdGlhbGl6ZWQoKTsKKworcHJpdmF0ZToKKworICAgIGZyaWVuZCBjbGFzcyBX
ZWJDb21wb3NpdG9yOworICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoV2ViVGhyZWFkKiBpbXBs
VGhyZWFkKTsKKyAgICBzdGF0aWMgdm9pZCBzaHV0ZG93bigpOworCisgICAgc3RhdGljIGJvb2wg
c19pbml0aWFsaXplZDsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q0NUaHJlYWQqIHNfbWFpblRocmVh
ZDsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q0NUaHJlYWQqIHNfaW1wbFRocmVhZDsKK307CisKK30K
KworI2VuZGlmIC8vIFdlYkNvbXBvc2l0b3JJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAppbmRleCAwNzE3NTE0YTNjOTBkNWU3Njc2NmNkMTI0MWRmNjJkYzBjOWYzN2Q3Li43OThhZGQ0
YWM2NTMxYmFmNGUxYWQ1MmMzYzFiMTExY2Q3ODJiZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCkBAIC0xMTMsNyArMTEzLDYgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNv
bW1vbldvcmtlckNsaWVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbXBvc2l0
aW9uVW5kZXJsaW5lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRvci5o
JywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYkNvbnNvbGVNZXNzYWdlLmgnLApAQCAtMzY0LDggKzM2
Myw2IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9CYXR0ZXJ5Q2xpZW50SW1wbC5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL0Jsb2JSZWdpc3RyeVByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9CbG9iUmVnaXN0cnlQcm94eS5oJywKLSAgICAgICAgICAgICAgICAnc3JjL0NDVGhyZWFk
SW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvQ0NUaHJlYWRJbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvQ2hyb21lQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0Nocm9taXVtQ3Vy
cmVudFRpbWUuY3BwJywKQEAgLTQ5Miw4ICs0ODksNiBAQAogICAgICAgICAgICAgICAgICdzcmMv
V2ViQ2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbG9yTmFtZS5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tbW9uLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJDb21wb3NpdG9ySW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9z
aXRvckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb250ZW50TGF5ZXIuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3IuaAppbmRleCA2
ZTBkYTJiMjI3MGFiMTE3YWYxMTZjYTJkZDI0ODUyOGJhNGRhNDlhLi5kYTUwMmQ4YjA2NDBiY2U3
OTdiOGJlMjhhN2RjOTczYzE0MWMyNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29tcG9zaXRvci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDQzICsyMyw2IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
Zm5kZWYgV2ViQ29tcG9zaXRvcl9oCi0jZGVmaW5lIFdlYkNvbXBvc2l0b3JfaAotCi0jZGVmaW5l
IFdFQkNPTVBPU0lUT1JfT1dOU19TRVRUSU5HUyAxCi0KLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJD
b21tb24uaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklucHV0RXZlbnQ7Ci1j
bGFzcyBXZWJUaHJlYWQ7Ci0KLS8vIFRoaXMgY2xhc3MgY29udGFpbnMgZ2xvYmFsIHJvdXRpbmVz
IGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZQotLy8gY29tcG9zaXRvci4KLS8vCi0vLyBBbGwgY2Fs
bHMgdG8gdGhlIFdlYkNvbXBvc2l0b3IgbXVzdCBiZSBtYWRlIGZyb20gdGhlIG1haW4gdGhyZWFk
LgotY2xhc3MgV2ViQ29tcG9zaXRvciB7Ci1wdWJsaWM6Ci0gICAgLy8gSW5pdGlhbGl6ZXMgdGhl
IGNvbXBvc2l0b3IuIFRocmVhZGVkIGNvbXBvc2l0aW5nIGlzIGVuYWJsZWQgYnkgcGFzc2luZyBp
bgotICAgIC8vIGEgbm9uLW51bGwgV2ViVGhyZWFkLiBObyBjb21wb3NpdG9yIGNsYXNzZXMgb3Ig
bWV0aG9kcyBzaG91bGQgYmUgdXNlZAotICAgIC8vIHByaW9yIHRvIGNhbGxpbmcgaW5pdGlhbGl6
ZS4KLSAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoV2ViVGhyZWFkKik7
Ci0KLSAgICAvLyBTaHV0cyBkb3duIHRoZSBjb21wb3NpdG9yLiBUaGlzIG11c3QgYmUgY2FsbGVk
IHdoZW4gYWxsIGNvbXBvc2l0b3IgZGF0YQotICAgIC8vIHR5cGVzIGhhdmUgYmVlbiBkZWxldGVk
LiBObyBjb21wb3NpdG9yIGNsYXNzZXMgb3IgbWV0aG9kcyBzaG91bGQgYmUgdXNlZAotICAgIC8v
IGFmdGVyIHNodXRkb3duLgotICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgc2h1dGRvd24o
KTsKLQotICAgIC8vIFRoZXNlIG1heSBvbmx5IGJlIGNhbGxlZCBiZWZvcmUgaW5pdGlhbGl6ZS4K
LSAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFBlclRpbGVQYWludGluZ0VuYWJsZWQo
Ym9vbCk7Ci0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRQYXJ0aWFsU3dhcEVuYWJs
ZWQoYm9vbCk7Ci0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBY2NlbGVyYXRlZEFu
aW1hdGlvbkVuYWJsZWQoYm9vbCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5XZWJDb21w
b3NpdG9yKCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisvLyBG
SVhNRTogVGhpcyBpcyBhIHRlbXBvcmFyeSBmb3J3YXJkaW5nIGhlYWRlciwgcmVtb3ZlIG9uY2Ug
Y2hyb21pdW0tc2lkZSBjb2RlCisvLyBzdG9wcyB1c2luZyB0aGlzIGluY2x1ZGUgcGF0aC4KKyNp
bmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRv
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNs
aWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjc1ZjcwNTU3NjhlOGIwZTg4
YzFmMzE1MTllNGRmZGE1YjU0NjIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JD
bGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdl
YkNvbXBvc2l0b3JDbGllbnRfaAotI2RlZmluZSBXZWJDb21wb3NpdG9yQ2xpZW50X2gKLQotI2lu
Y2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLS8vIFRoaXMgY2xhc3Mgd2lsbCBnbyBhd2F5IG9uY2UgZG93bnN0cmVhbSBjb2Rl
IGhhcyB0cmFuc2l0aW9uZWQKLS8vIHRvIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQu
Ci1jbGFzcyBXZWJDb21wb3NpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJDbGllbnQgewotcHVibGljOgotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfldlYkNvbXBv
c2l0b3JDbGllbnQoKSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NDVGhyZWFkSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlZjdiYjVjYjNkM2Y0ZmY5MjkwY2YwODI4NjI1OTVmMmVkZWJm
MmQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NDVGhyZWFkSW1wbC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxMTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkNDVGhyZWFkSW1wbC5oIgotCi0jaW5jbHVkZSAiV2ViS2l0LmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVGhy
ZWFkLmgiCi0jaW5jbHVkZSAiY2MvQ0NDb21wbGV0aW9uRXZlbnQuaCIKLSNpbmNsdWRlIDxzdGRp
bnQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci0vLyBUYXNrIHRoYXQsIHdoZW4gcnVucywgcGxhY2VzIHRoZSBjdXJyZW50IHRocmVhZCBJRCBp
bnRvIHRoZSBwcm92aWRlZAotLy8gcG9pbnRlciBhbmQgc2lnbmFscyBhIGNvbXBsZXRpb24gZXZl
bnQuCi0vLwotLy8gRG9lcyBub3QgcHJvdmlkZSBhIFBhc3NPd25QdHI8R2V0VGhyZWFkSURUYXNr
Pjo6Y3JlYXRlIG1ldGhvZCBiZWNhdXNlCi0vLyB0aGUgcmVzdWx0aW5nIG9iamVjdCBpcyBhbHdh
eXMgaGFuZGVkIGludG8gYSBXZWJUaHJlYWQsIHdoaWNoIGRvZXMgbm90IHVuZGVyc3RhbmQKLS8v
IFBhc3NPd25QdHJzLgotY2xhc3MgR2V0VGhyZWFkSURUYXNrIDogcHVibGljIFdlYlRocmVhZDo6
VGFzayB7Ci1wdWJsaWM6Ci0gICAgR2V0VGhyZWFkSURUYXNrKFRocmVhZElkZW50aWZpZXIqIHJl
c3VsdCwgQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24pCi0gICAgICAgICA6IG1fY29tcGxl
dGlvbihjb21wbGV0aW9uKQotICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpIHsgfQotCi0gICAg
dmlydHVhbCB+R2V0VGhyZWFkSURUYXNrKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcnVuKCkK
LSAgICB7Ci0gICAgICAgICptX3Jlc3VsdCA9IGN1cnJlbnRUaHJlYWQoKTsKLSAgICAgICAgbV9j
b21wbGV0aW9uLT5zaWduYWwoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgQ0NDb21wbGV0aW9u
RXZlbnQqIG1fY29tcGxldGlvbjsKLSAgICBUaHJlYWRJZGVudGlmaWVyKiBtX3Jlc3VsdDsKLX07
Ci0KLS8vIEdlbmVyYWwgYWRhcHRlciBmcm9tIGEgQ0NUaHJlYWQ6OlRhc2sgdG8gYSBXZWJUaHJl
YWQ6OlRhc2suCi1jbGFzcyBDQ1RocmVhZFRhc2tBZGFwdGVyIDogcHVibGljIFdlYlRocmVhZDo6
VGFzayB7Ci1wdWJsaWM6Ci0gICAgQ0NUaHJlYWRUYXNrQWRhcHRlcihQYXNzT3duUHRyPENDVGhy
ZWFkOjpUYXNrPiB0YXNrKSA6IG1fdGFzayh0YXNrKSB7IH0KLQotICAgIHZpcnR1YWwgfkNDVGhy
ZWFkVGFza0FkYXB0ZXIoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBydW4oKQotICAgIHsKLSAg
ICAgICAgbV90YXNrLT5wZXJmb3JtVGFzaygpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBPd25Q
dHI8Q0NUaHJlYWQ6OlRhc2s+IG1fdGFzazsKLX07Ci0KLVBhc3NPd25QdHI8Q0NUaHJlYWQ+IEND
VGhyZWFkSW1wbDo6Y3JlYXRlKFdlYlRocmVhZCogdGhyZWFkKQotewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgQ0NUaHJlYWRJbXBsKHRocmVhZCkpOwotfQotCi1DQ1RocmVhZEltcGw6On5DQ1Ro
cmVhZEltcGwoKQotewotfQotCi12b2lkIENDVGhyZWFkSW1wbDo6cG9zdFRhc2soUGFzc093blB0
cjxDQ1RocmVhZDo6VGFzaz4gdGFzaykKLXsKLSAgICBtX3RocmVhZC0+cG9zdFRhc2sobmV3IEND
VGhyZWFkVGFza0FkYXB0ZXIodGFzaykpOwotfQotCi12b2lkIENDVGhyZWFkSW1wbDo6cG9zdERl
bGF5ZWRUYXNrKFBhc3NPd25QdHI8Q0NUaHJlYWQ6OlRhc2s+IHRhc2ssIGxvbmcgbG9uZyBkZWxh
eU1zKQotewotICAgIG1fdGhyZWFkLT5wb3N0RGVsYXllZFRhc2sobmV3IENDVGhyZWFkVGFza0Fk
YXB0ZXIodGFzayksIGRlbGF5TXMpOwotfQotCi1UaHJlYWRJZGVudGlmaWVyIENDVGhyZWFkSW1w
bDo6dGhyZWFkSUQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RocmVhZElEOwotfQotCi1DQ1Ro
cmVhZEltcGw6OkNDVGhyZWFkSW1wbChXZWJUaHJlYWQqIHRocmVhZCkKLSAgICA6IG1fdGhyZWFk
KHRocmVhZCkKLXsKLSAgICBpZiAodGhyZWFkID09IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+Y3VycmVudFRocmVhZCgpKSB7Ci0gICAgICAgIG1fdGhyZWFkSUQgPSBjdXJyZW50VGhyZWFk
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBHZXQgdGhlIHRocmVhZElkIGZv
ciB0aGUgbmV3bHktY3JlYXRlZCB0aHJlYWQgYnkgcnVubmluZyBhIHRhc2sKLSAgICAvLyBvbiB0
aGF0IHRocmVhZCwgYmxvY2tpbmcgb24gdGhlIHJlc3VsdC4KLSAgICBtX3RocmVhZElEID0gY3Vy
cmVudFRocmVhZCgpOwotICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgbV90
aHJlYWQtPnBvc3RUYXNrKG5ldyBHZXRUaHJlYWRJRFRhc2soJm1fdGhyZWFkSUQsICZjb21wbGV0
aW9uKSk7Ci0gICAgY29tcGxldGlvbi53YWl0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ0NUaHJlYWRJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOWI5OTAwNjAyYjJiNGU3MzY4MDc0MDYxYmMwZGVjZGZmNDgwOWFj
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DQ1RocmVhZEltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjYy9DQ1RocmVhZC5oIgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLQotI2lmbmRl
ZiBDQ1RocmVhZEltcGxfaAotI2RlZmluZSBDQ1RocmVhZEltcGxfaAotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgV2ViVGhyZWFkOwotCi0vLyBJbXBsZW1lbnRzIENDVGhyZWFkIGluIHRl
cm1zIG9mIFdlYlRocmVhZC4KLWNsYXNzIENDVGhyZWFkSW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpD
Q1RocmVhZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZTo6Q0NUaHJl
YWQ+IGNyZWF0ZShXZWJUaHJlYWQqKTsKLSAgICB2aXJ0dWFsIH5DQ1RocmVhZEltcGwoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soUGFzc093blB0cjxXZWJDb3JlOjpDQ1RocmVhZDo6VGFz
az4pOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soUGFzc093blB0cjxXZWJDb3Jl
OjpDQ1RocmVhZDo6VGFzaz4sIGxvbmcgbG9uZyBkZWxheU1zKTsKLSAgICBXVEY6OlRocmVhZElk
ZW50aWZpZXIgdGhyZWFkSUQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDQ1Ro
cmVhZEltcGwoV2ViVGhyZWFkKik7Ci0KLSAgICBXZWJUaHJlYWQqIG1fdGhyZWFkOwotICAgIFdU
Rjo6VGhyZWFkSWRlbnRpZmllciBtX3RocmVhZElEOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29tcG9zaXRvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9z
aXRvckltcGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjlhZTU1NWE2NDdh
MjAzMzEwNjE2ODQzMzg1ZmQ2MjA3NjJjZjYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0
b3JJbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViQ29tcG9zaXRvckltcGwuaCIKLQotI2luY2x1
ZGUgIkNDVGhyZWFkSW1wbC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5j
bHVkZSAiV2ViS2l0LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmgiCi0jaW5jbHVkZSAiV2ViQ29tcG9zaXRvckNsaWVudC5oIgotI2luY2x1ZGUgIldlYklucHV0
RXZlbnQuaCIKLSNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKLSNpbmNsdWRlICJjYy9D
Q1Byb3h5LmgiCi0jaW5jbHVkZSAiY2MvQ0NTZXR0aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotYm9vbCBXZWJDb21wb3NpdG9ySW1wbDo6c19pbml0aWFsaXplZCA9IGZh
bHNlOwotQ0NUaHJlYWQqIFdlYkNvbXBvc2l0b3JJbXBsOjpzX21haW5UaHJlYWQgPSAwOwotQ0NU
aHJlYWQqIFdlYkNvbXBvc2l0b3JJbXBsOjpzX2ltcGxUaHJlYWQgPSAwOwotCi12b2lkIFdlYkNv
bXBvc2l0b3I6OmluaXRpYWxpemUoV2ViVGhyZWFkKiBpbXBsVGhyZWFkKQotewotICAgIFdlYkNv
bXBvc2l0b3JJbXBsOjppbml0aWFsaXplKGltcGxUaHJlYWQpOwotfQotdm9pZCBXZWJDb21wb3Np
dG9yOjpzaHV0ZG93bigpCi17Ci0gICAgV2ViQ29tcG9zaXRvckltcGw6OnNodXRkb3duKCk7Ci0g
ICAgQ0NTZXR0aW5nczo6cmVzZXQoKTsKLX0KLQotdm9pZCBXZWJDb21wb3NpdG9yOjpzZXRQZXJU
aWxlUGFpbnRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBBU1NFUlQoIVdlYkNvbXBv
c2l0b3JJbXBsOjppbml0aWFsaXplZCgpKTsKLSAgICBDQ1NldHRpbmdzOjpzZXRQZXJUaWxlUGFp
bnRpbmdFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIFdlYkNvbXBvc2l0b3I6OnNldFBhcnRp
YWxTd2FwRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgQVNTRVJUKCFXZWJDb21wb3NpdG9y
SW1wbDo6aW5pdGlhbGl6ZWQoKSk7Ci0gICAgQ0NTZXR0aW5nczo6c2V0UGFydGlhbFN3YXBFbmFi
bGVkKGVuYWJsZWQpOwotfQotCi12b2lkIFdlYkNvbXBvc2l0b3I6OnNldEFjY2VsZXJhdGVkQW5p
bWF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgQVNTRVJUKCFXZWJDb21wb3NpdG9y
SW1wbDo6aW5pdGlhbGl6ZWQoKSk7Ci0gICAgQ0NTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRBbmlt
YXRpb25FbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIFdlYkNvbXBvc2l0b3JJbXBsOjppbml0
aWFsaXplKFdlYlRocmVhZCogaW1wbFRocmVhZCkKLXsKLSAgICBBU1NFUlQoIXNfaW5pdGlhbGl6
ZWQpOwotICAgIHNfaW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgc19tYWluVGhyZWFkID0gQ0NU
aHJlYWRJbXBsOjpjcmVhdGUoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jdXJyZW50VGhy
ZWFkKCkpLmxlYWtQdHIoKTsKLSAgICBDQ1Byb3h5OjpzZXRNYWluVGhyZWFkKHNfbWFpblRocmVh
ZCk7Ci0gICAgaWYgKGltcGxUaHJlYWQpIHsKLSAgICAgICAgc19pbXBsVGhyZWFkID0gQ0NUaHJl
YWRJbXBsOjpjcmVhdGUoaW1wbFRocmVhZCkubGVha1B0cigpOwotICAgICAgICBDQ1Byb3h5Ojpz
ZXRJbXBsVGhyZWFkKHNfaW1wbFRocmVhZCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIENDUHJveHk6
OnNldEltcGxUaHJlYWQoMCk7Ci19Ci0KLWJvb2wgV2ViQ29tcG9zaXRvckltcGw6OmluaXRpYWxp
emVkKCkKLXsKLSAgICByZXR1cm4gc19pbml0aWFsaXplZDsKLX0KLQotdm9pZCBXZWJDb21wb3Np
dG9ySW1wbDo6c2h1dGRvd24oKQotewotICAgIEFTU0VSVChzX2luaXRpYWxpemVkKTsKLSAgICBB
U1NFUlQoIUNDTGF5ZXJUcmVlSG9zdDo6YW55TGF5ZXJUcmVlSG9zdEluc3RhbmNlRXhpc3RzKCkp
OwotCi0gICAgaWYgKHNfaW1wbFRocmVhZCkgewotICAgICAgICBkZWxldGUgc19pbXBsVGhyZWFk
OwotICAgICAgICBzX2ltcGxUaHJlYWQgPSAwOwotICAgIH0KLSAgICBkZWxldGUgc19tYWluVGhy
ZWFkOwotICAgIHNfbWFpblRocmVhZCA9IDA7Ci0gICAgQ0NQcm94eTo6c2V0SW1wbFRocmVhZCgw
KTsKLSAgICBDQ1Byb3h5OjpzZXRNYWluVGhyZWFkKDApOwotICAgIHNfaW5pdGlhbGl6ZWQgPSBm
YWxzZTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29tcG9zaXRvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0
b3JJbXBsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0YzZiZDBmZGM2NzY0ZGIz
YWRlZDJlMmU4Mzk1MzY4MzRmYWEzN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklt
cGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkNv
bXBvc2l0b3JJbXBsX2gKLSNkZWZpbmUgV2ViQ29tcG9zaXRvckltcGxfaAotCi0jaW5jbHVkZSAi
V2ViQ29tcG9zaXRvci5oIgotCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLWNsYXNzIENDVGhyZWFkOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xh
c3MgV2ViVGhyZWFkOwotCi1jbGFzcyBXZWJDb21wb3NpdG9ySW1wbCA6IHB1YmxpYyBXZWJDb21w
b3NpdG9yIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb21wb3NpdG9ySW1wbCk7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQoKTsKLQotcHJpdmF0ZToKLQotICAg
IGZyaWVuZCBjbGFzcyBXZWJDb21wb3NpdG9yOwotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUo
V2ViVGhyZWFkKiBpbXBsVGhyZWFkKTsKLSAgICBzdGF0aWMgdm9pZCBzaHV0ZG93bigpOwotCi0g
ICAgc3RhdGljIGJvb2wgc19pbml0aWFsaXplZDsKLSAgICBzdGF0aWMgV2ViQ29yZTo6Q0NUaHJl
YWQqIHNfbWFpblRocmVhZDsKLSAgICBzdGF0aWMgV2ViQ29yZTo6Q0NUaHJlYWQqIHNfaW1wbFRo
cmVhZDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFdlYkNvbXBvc2l0b3JJbXBsX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRl
eCA4MjVmYzAxZWY5ZWJkOWY5NWIyNWNjYmIzYmFmODQ3NmUzMzEwOWM1Li4xNDFlMTgyNGI0YTVl
YzQxODg4YWY4ZWU4OWMwNmU2NGRjYTQyMDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVlVmlld0ltcGwuaCIKIAot
I2luY2x1ZGUgIkNDVGhyZWFkSW1wbC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oIgogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9DQ0xheWVy
VHJlZUhvc3QuaCIK
</data>
<flag name="review"
          id="166800"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>