<?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>226559</bug_id>
          
          <creation_ts>2021-06-02 16:44:10 -0700</creation_ts>
          <short_desc>[iOS] Show data detector context menu on long press inside image overlays</short_desc>
          <delta_ts>2021-06-02 21:59:16 -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>Platform</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>dino</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1766214</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-02 16:44:10 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766216</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-02 16:46:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/78789078&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766229</commentid>
    <comment_count>2</comment_count>
      <attachid>430420</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-02 17:11:55 -0700</bug_when>
    <thetext>Created attachment 430420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766251</commentid>
    <comment_count>3</comment_count>
      <attachid>430430</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-06-02 18:28:53 -0700</bug_when>
    <thetext>Created attachment 430430
Fix non-internal iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766280</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 21:59:14 -0700</bug_when>
    <thetext>Committed r278394 (238419@main): &lt;https://commits.webkit.org/238419@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430430.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430420</attachid>
            <date>2021-06-02 17:11:55 -0700</date>
            <delta_ts>2021-06-02 18:35:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226559-20210602171154.patch</filename>
            <type>text/plain</type>
            <size>29245</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3NzE0MjQ2NjdmM2FiYjM1
Yjg2YjJlMzQ4MjZmMDNlNWY0YWM2OTIuLmE4NjZkNTI1YTdiYjM2ZjVhN2FkNzhjMGI4MTQ0ZGFj
YTg5OGNmNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjEtMDYtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2hvdyBkYXRh
IGRldGVjdG9yIGNvbnRleHQgbWVudSBvbiBsb25nIHByZXNzIGluc2lkZSBpbWFnZSBvdmVybGF5
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTU5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODc4OTA3OD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYWRkaXRpb25hbCBzdXBwb3J0IGZvciBk
YXRhIGRldGVjdG9ycyB0aGF0IGFwcGVhciBpbnNpZGUgaW1hZ2Ugb3ZlcmxheXMgb24gaU9TLgor
CisgICAgICAgICogU2hhcmVkL0ltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oOiBBZGRlZC4K
KworICAgICAgICBUdXJuIHRoZSBgYm9vbGAgcHJvcGFnYXRlZCBiYWNrIHRvIHRoZSBVSSBwcm9j
ZXNzIHdoZW4gY2FsbGluZyBgdXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdGAgaW50byBh
IHNlcGFyYXRlCisgICAgICAgIHRocmVlLXN0YXRlIGVudW0gaW5zdGVhZDsgc2VlIGNoYW5nZXMg
YmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZSk6CisKKyAgICAgICAgTWFr
ZSBzb21lIG1pbm9yIGFkanVzdG1lbnRzIHRvIGBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbmA6CisKKyAgICAgICAgLSAgIEFkZCBgZGF0YURldGVjdG9yQm91bmRzYCwgd2hpY2ggZGV0
ZXJtaW5lcyB0aGUgYm91bmRzIGluIHJvb3QgdmlldyBjb29yZGluYXRlcyBvZiB0aGUgZGF0YSBk
ZXRlY3RvciByZXN1bHQKKyAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpdC10ZXN0
ZWQgZWxlbWVudC4KKworICAgICAgICAtICAgRW5jb2RlIGFuZCBkZWNvZGUgYGRhdGFEZXRlY3Rv
clJlc3VsdHNgLCBldmVuIGlmIGBpc0RhdGFEZXRlY3RvckxpbmtgIGlzIGBmYWxzZWAuIFVubGVz
cyB0aGUgZGF0YSBkZXRlY3RvcgorICAgICAgICAgICAgaXMgaW5zaWRlIGFuIGltYWdlIG92ZXJs
YXksIHRoaXMgKGVmZmVjdGl2ZWx5KSBoYXMgbm8gaW1wYWN0LCBzaW5jZSBgZGF0YURldGVjdG9y
UmVzdWx0c2Agd2FzIHByZXZpb3VzbHkKKyAgICAgICAgICAgIG9ubHkgc2V0IGlmIGBpc0RhdGFE
ZXRlY3RvckxpbmtgIHdhcyB0cnVlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aEltYWdlRXh0
cmFjdGlvblJlc3VsdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZvcm1h
dGlvbjpdKToKKworICAgICAgICBMZXQgYGRhdGFEZXRlY3RvclJlc3VsdHNgIHRha2UgcHJlY2Vk
ZW5jZSBvdmVyIHJlZ3VsYXIgYGJvdW5kc2Agd2hlbiByZXR1cm5pbmcgdGhlIGNvbnRleHQgZm9y
IHRoZSBkYXRhCisgICAgICAgIGRldGVjdG9yIG1lbnUgY29uZmlndXJhdGlvbi4KKworICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IHBvc2l0aW9uSW5mb3JtYXRpb25IYXNJbWFnZU92ZXJsYXlEYXRh
RGV0ZWN0b3JdKToKKworICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRoYXQgcmV0dXJucyBg
WUVTYCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgY3VycmVudGx5IGNhY2hlZCBwb3NpdGlvbiBpbmZv
cm1hdGlvbiBvYmplY3QKKyAgICAgICAgY29udGFpbnMgYSB0ZXh0IGRhdGEgZGV0ZWN0aW9uIHJl
c3VsdCBpbnNpZGUgYW4gaW1hZ2Ugb3ZlcmxheS4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF9jcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludFByZXZpZXdJZlBvc3NpYmxlXSk6CisKKyAg
ICAgICAgVXNlIGBkYXRhRGV0ZWN0b3JCb3VuZHNgIGluc3RlYWQgb2YgYGJvdW5kc2Agd2hlbiBj
cmVhdGluZyBhIGZhbGxiYWNrIHRhcmdldGVkIHByZXZpZXcgZm9yIGEgZGF0YSBkZXRlY3Rpb24K
KyAgICAgICAgcmVzdWx0IGluIGFuIGltYWdlIG92ZXJsYXkuCisKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBjb250aW51ZUNvbnRleHRNZW51SW50ZXJhY3Rpb246XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgY29udGludWVDb250ZXh0TWVudUludGVyYWN0aW9uV2l0aERhdGFEZXRlY3Rv
cnM6XSk6CisKKyAgICAgICAgQWRqdXN0IHRoZXNlIGNvZGVwYXRocyBzbyB0aGF0IHdlJ2xsIGNv
bnRpbnVlIHRocm91Z2ggdG8gdGhlIGRhdGEgZGV0ZWN0b3IgY2FzZSBpbnN0ZWFkIG9mIGJhaWxp
bmcgZWFybHkgaW4gdGhlCisgICAgICAgIGNhc2Ugd2hlcmUgYm90aCBgaXNJbWFnZU92ZXJsYXlU
ZXh0YCBpcyBzZXQsIGFuZCBgZGF0YURldGVjdGlvblJlc3VsdHNgIGV4aXN0LgorCisgICAgICAg
ICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmaW5kRGF0
YURldGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdlT3ZlcmxheSk6CisKKyAgICAgICAgQWRkIGEg
c3RhdGljIGhlbHBlciB0byBsb2NhdGUgYSBkYXRhIGRldGVjdG9yIGVsZW1lbnQgdW5kZXJuZWF0
aCB0aGUgZ2l2ZW4gcG9pbnQsIGluc2lkZSB0aGUgZ2l2ZW4gZWxlbWVudCdzCisgICAgICAgIGlt
YWdlIG92ZXJsYXkgaW4gdGhlIHVzZXIgYWdlbnQgc2hhZG93IHJvb3QuIE5vdGUgdGhhdCB3ZSBj
aGVjayBlYWNoIG9mIHRoZSBlbGVtZW50J3MgYm91bmRzIGluc3RlYWQgb2YgdXNpbmcKKyAgICAg
ICAgYSBoaXQtdGVzdCBiZWNhdXNlIHdlIG5vcm1hbGx5IGp1c3QgaGl0LXRlc3QgdG8gdGhlIHRl
eHQgY29udGFpbmVycyBpbnN0ZWFkIG9mIHRoZSBkYXRhIGRldGVjdG9yIGNvbnRhaW5lcnMuCisK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3Vs
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRhdGFEZXRl
Y3RvckxpbmtQb3NpdGlvbkluZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6ZGF0YURldGVj
dG9ySW1hZ2VPdmVybGF5UG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAgQWRkIGEgc3Rh
dGljIGhlbHBlciBmdW5jdGlvbiB0byBwb3B1bGF0ZSB0aGUgZ2l2ZW4gYEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uYCwgaWYgaXQncyBvdmVyIGEgZGF0YQorICAgICAgICBkZXRlY3Rp
b24gcmVzdWx0IGluc2lkZSBhbiBpbWFnZSBvdmVybGF5LgorCisgICAgICAgIChXZWJLaXQ6OmVs
ZW1lbnRQb3NpdGlvbkluZm9ybWF0aW9uKTogQ2FsbCB0aGUgYWJvdmUgaGVscGVyIGZ1bmN0aW9u
LgorCiAyMDIxLTA2LTAxICBEYW5hIEVzdHJhICA8ZGVzdHJhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZG9wdCBSZXZlYWwgZm9yIHBob25lIG51bWJlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0ltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc3YjY1NWZh
OWM2Y2YwZjFmZjA5ZWJjZmJhNWY0ZTkwZjE3MzFhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0ltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2VudW0gY2xhc3MgSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdCB7
CisgICAgTm9UZXh0LAorICAgIFRleHQsCisgICAgRGF0YURldGVjdG9yLAorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0PiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25V
cGRhdGVSZXN1bHQsCisgICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0
OjpOb1RleHQsCisgICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpU
ZXh0LAorICAgICAgICBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURl
dGVjdG9yCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IGJiMDBjNDYx
ZDEyMjJmZDVmYWFlNzMyNjRmYmZiNTRhMWUyMzE5MmIuLmRlYjc4ODZkYTI4MjE5NjI4NDFjYzc1
NzdhOTBjNzQxNzIwZTk2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9J
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC05NCw2ICs5NCw3
IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAjaWYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQogICAgIFN0cmluZyBkYXRhRGV0ZWN0b3JJZGVudGlmaWVyOwogICAg
IFJldGFpblB0cjxOU0FycmF5PiBkYXRhRGV0ZWN0b3JSZXN1bHRzOworICAgIFdlYkNvcmU6Oklu
dFJlY3QgZGF0YURldGVjdG9yQm91bmRzOwogI2VuZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0PiBlbGVtZW50Q29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi5tbQppbmRleCBlNGQwOTQyM2I4MjdhYzY2Mzc2MzNhNWNmYmFiNWViMDRkYWUxMDNlLi5kYjIw
OTgxY2QyYjZiODY3N2I2M2Q0MzA2YmI0NjllYzQxNTc4OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLm1tCkBAIC03NywxMCArNzcsOSBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgaGFuZGxlOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICBlbmNvZGVyIDw8IGlz
RGF0YURldGVjdG9yTGluazsKLSAgICBpZiAoaXNEYXRhRGV0ZWN0b3JMaW5rKSB7Ci0gICAgICAg
IGVuY29kZXIgPDwgZGF0YURldGVjdG9ySWRlbnRpZmllcjsKLSAgICAgICAgZW5jb2RlciA8PCBk
YXRhRGV0ZWN0b3JSZXN1bHRzOwotICAgIH0KKyAgICBlbmNvZGVyIDw8IGRhdGFEZXRlY3Rvcklk
ZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBkYXRhRGV0ZWN0b3JSZXN1bHRzOworICAgIGVuY29k
ZXIgPDwgZGF0YURldGVjdG9yQm91bmRzOwogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VM
RU1FTlQpCiAgICAgZW5jb2RlciA8PCBwcmV2ZW50VGV4dEludGVyYWN0aW9uOwpAQCAtMTg5LDE3
ICsxODgsMTggQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNEYXRhRGV0ZWN0b3JMaW5r
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmIChyZXN1bHQuaXNEYXRhRGV0
ZWN0b3JMaW5rKSB7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRhdGFEZXRl
Y3RvcklkZW50aWZpZXIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGF1
dG8gZGF0YURldGVjdG9yUmVzdWx0cyA9IElQQzo6ZGVjb2RlPE5TQXJyYXk+KGRlY29kZXIsIEBb
IFtOU0FycmF5IGNsYXNzXSwgZ2V0RERTY2FubmVyUmVzdWx0Q2xhc3MoKSBdKTsKLSAgICAgICAg
aWYgKCFkYXRhRGV0ZWN0b3JSZXN1bHRzKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRhdGFEZXRlY3RvcklkZW50aWZpZXIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGRhdGFEZXRlY3RvclJlc3VsdHMgPSBJUEM6
OmRlY29kZTxOU0FycmF5PihkZWNvZGVyLCBAWyBOU0FycmF5LmNsYXNzLCBnZXRERFNjYW5uZXJS
ZXN1bHRDbGFzcygpIF0pOworICAgIGlmICghZGF0YURldGVjdG9yUmVzdWx0cykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmVzdWx0LmRhdGFEZXRlY3RvclJlc3VsdHMgPSBXVEZNb3Zl
KCpkYXRhRGV0ZWN0b3JSZXN1bHRzKTsKIAotICAgICAgICByZXN1bHQuZGF0YURldGVjdG9yUmVz
dWx0cyA9IFdURk1vdmUoKmRhdGFEZXRlY3RvclJlc3VsdHMpOwotICAgIH0KKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5kYXRhRGV0ZWN0b3JCb3VuZHMpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWQ5NjgwNjE0MjNiNzk1NWMzYzM3
YWRkZTUyN2RjN2NlYzMyOGU4OS4uMzcyYmE4MzRhMTZmNDk0NmEyNjg4Y2NmMmUzMGFkODQxM2Q3
NTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02Niw2
ICs2Niw3IEBACiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIKKyNpbmNs
dWRlICJJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaCIKICNpbmNsdWRlICJMZWdhY3lHbG9i
YWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgpAQCAtODQ4MSwxMCArODQ4MiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tcHV0
ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaQog
ICAgIHBhZ2VDbGllbnQoKS5jb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoaW1hZ2VVUkwsIGltYWdlQml0
bWFwLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0
ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVzdWx0
cywgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0
aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgdGV4dEV4aXN0c0F0TG9jYXRpb24pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVdpdGhJbWFnZUV4
dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVzdWx0cywgY29uc3QgRWxl
bWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSW1hZ2VF
eHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpOb1RleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQxODQwZDRmOGFhYjVj
MWUxNzVjOGMwMzczNTc3NTlmYjJkZjNlZWEuLmFhZWI2MWE2ZjIyNjJjNzM4YzNlZThmZjMyZTQz
NGU4NWM1MDJhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00
MDcsNiArNDA3LDcgQEAgc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2Vi
UG9wdXBJdGVtOwogc3RydWN0IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlOwogCitlbnVtIGNsYXNz
IEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE5lZ290
aWF0ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50IDogYm9vbDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6IGJvb2w7CkBAIC0xNjY1LDcg
KzE2NjYsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICAgICB2
b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgVVJMJiBpbWFnZVVSTCwgY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpOwotICAgIHZvaWQgdXBkYXRlV2l0
aEltYWdlRXh0cmFjdGlvblJlc3VsdChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiwg
Y29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHRleHRFeGlzdHNBdExvY2F0
aW9uKT4mJik7CisgICAgdm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNv
cmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYpOwogICAgIHZvaWQgY29tcHV0
ZUNhblJldmVhbEltYWdlKGNvbnN0IFVSTCYgaW1hZ2VVUkwsIFNoYXJlYWJsZUJpdG1hcCYgaW1h
Z2VCaXRtYXAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IGE4NGU4ZDY5NWE4ZmUxMjg1YjMyZWU4OGExMmRkNjIzOTM0NDlkNjEu
LjY5MzJmMmZlM2YxNzkzNjEzMTU1OThiMTdkZDIwN2VkOWM2Y2UwN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtNzUyNCw2ICs3NTI0LDggQEAgLSAoTlNEaWN0aW9uYXJ5ICopZGF0YURldGVjdGlvbkNv
bnRleHRGb3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGUKICAgICBDR1Jl
Y3Qgc291cmNlUmVjdDsKICAgICBpZiAocG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmspCiAgICAg
ICAgIHNvdXJjZVJlY3QgPSBwb3NpdGlvbkluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IudGV4dEJv
dW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICBlbHNlIGlmICghcG9zaXRpb25J
bmZvcm1hdGlvbi5kYXRhRGV0ZWN0b3JCb3VuZHMuaXNFbXB0eSgpKQorICAgICAgICBzb3VyY2VS
ZWN0ID0gcG9zaXRpb25JbmZvcm1hdGlvbi5kYXRhRGV0ZWN0b3JCb3VuZHM7CiAgICAgZWxzZQog
ICAgICAgICBzb3VyY2VSZWN0ID0gcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHM7CiAKQEAgLTg0
NjEsNiArODQ2MywxMSBAQCAtIChVSVRhcmdldGVkUHJldmlldyAqKV9jcmVhdGVUYXJnZXRlZENv
bnRleHRNZW51SGludFByZXZpZXdGb3JGb2N1c2VkRWxlbWVudAogICAgIHJldHVybiBfY29udGV4
dE1lbnVJbnRlcmFjdGlvblRhcmdldGVkUHJldmlldy5nZXQoKTsKIH0KIAorLSAoQk9PTClwb3Np
dGlvbkluZm9ybWF0aW9uSGFzSW1hZ2VPdmVybGF5RGF0YURldGVjdG9yCit7CisgICAgcmV0dXJu
IF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2VPdmVybGF5VGV4dCAmJiBbX3Bvc2l0aW9uSW5m
b3JtYXRpb24uZGF0YURldGVjdG9yUmVzdWx0cyBjb3VudF07Cit9CisKIC0gKFVJVGFyZ2V0ZWRQ
cmV2aWV3ICopX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50UHJldmlld0lmUG9zc2libGUK
IHsKICAgICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHRhcmdldGVkUHJldmlldzsKQEAg
LTg0NzUsOCArODQ4MiwxMCBAQCAtIChVSVRhcmdldGVkUHJldmlldyAqKV9jcmVhdGVUYXJnZXRl
ZENvbnRleHRNZW51SGludFByZXZpZXdJZlBvc3NpYmxlCiAgICAgICAgIHRhcmdldGVkUHJldmll
dyA9IGNyZWF0ZVRhcmdldGVkUHJldmlldyhpbWFnZS5nZXQoKSwgc2VsZiwgc2VsZi5jb250YWlu
ZXJGb3JDb250ZXh0TWVudUhpbnRQcmV2aWV3cywgX3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRz
LCB7IH0sIG5pbCk7CiAgICAgfQogCi0gICAgaWYgKCF0YXJnZXRlZFByZXZpZXcpCi0gICAgICAg
IHRhcmdldGVkUHJldmlldyA9IGNyZWF0ZUZhbGxiYWNrVGFyZ2V0ZWRQcmV2aWV3KHNlbGYsIHNl
bGYuY29udGFpbmVyRm9yQ29udGV4dE1lbnVIaW50UHJldmlld3MsIF9wb3NpdGlvbkluZm9ybWF0
aW9uLmJvdW5kcywgbmlsKTsKKyAgICBpZiAoIXRhcmdldGVkUHJldmlldykgeworICAgICAgICBh
dXRvIGJvdW5kc0ZvckZhbGxiYWNrUHJldmlldyA9IHNlbGYucG9zaXRpb25JbmZvcm1hdGlvbkhh
c0ltYWdlT3ZlcmxheURhdGFEZXRlY3RvciA/IF9wb3NpdGlvbkluZm9ybWF0aW9uLmRhdGFEZXRl
Y3RvckJvdW5kcyA6IF9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kczsKKyAgICAgICAgdGFyZ2V0
ZWRQcmV2aWV3ID0gY3JlYXRlRmFsbGJhY2tUYXJnZXRlZFByZXZpZXcoc2VsZiwgc2VsZi5jb250
YWluZXJGb3JDb250ZXh0TWVudUhpbnRQcmV2aWV3cywgYm91bmRzRm9yRmFsbGJhY2tQcmV2aWV3
LCBuaWwpOworICAgIH0KIAogICAgIFtzZWxmIF91cGRhdGVUYXJnZXRlZFByZXZpZXdTY3JvbGxW
aWV3VXNpbmdDb250YWluZXJTY3JvbGxpbmdOb2RlSUQ6X3Bvc2l0aW9uSW5mb3JtYXRpb24uY29u
dGFpbmVyU2Nyb2xsaW5nTm9kZUlEXTsKIApAQCAtMTAyODIsNyArMTAyOTEsNyBAQCAtICh2b2lk
KWNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbjoodm9pZCheKShVSUNvbnRleHRNZW51Q29u
ZmlndXJhdGlvbiAqKSljbwogICAgIGlmICghX3Bvc2l0aW9uSW5mb3JtYXRpb24udG91Y2hDYWxs
b3V0RW5hYmxlZCkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlV2l0aENvbnRleHRNZW51Q29uZmln
dXJhdGlvbihuaWwpOwogCi0gICAgaWYgKCFfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmsgJiYg
IV9wb3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UgJiYgIV9wb3NpdGlvbkluZm9ybWF0aW9uLmlz
QXR0YWNobWVudCkKKyAgICBpZiAoIV9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayAmJiAhX3Bv
c2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSAmJiAhX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNBdHRh
Y2htZW50ICYmICFzZWxmLnBvc2l0aW9uSW5mb3JtYXRpb25IYXNJbWFnZU92ZXJsYXlEYXRhRGV0
ZWN0b3IpCiAgICAgICAgIHJldHVybiBjb250aW51ZVdpdGhDb250ZXh0TWVudUNvbmZpZ3VyYXRp
b24obmlsKTsKIAogICAgIFVSTCBsaW5rVVJMID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsOwpA
QCAtMTA0MDYsNyArMTA0MTUsNyBAQCAtICh2b2lkKWNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFj
dGlvbjoodm9pZCheKShVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljbwogI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgSmF2YVNjcmlwdCB1
cmxzIGhlcmUuIEJ1dCBtYWtlIHN1cmUgdGhleSBkb24ndCBzaG93IGEgcHJldmlldy4KICAgICAg
ICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzUwNTcyMjgzPgotICAgICAgICBpZiAoIWxpbmtVUkwucHJv
dG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjYW5CZVBy
ZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhsaW5rVVJMKSkgeworICAgICAgICBpZiAoIWxpbmtVUkwu
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYmICFXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjpjYW5C
ZVByZXNlbnRlZEJ5RGF0YURldGVjdG9ycyhsaW5rVVJMKSAmJiAhW3N0cm9uZ1NlbGYgcG9zaXRp
b25JbmZvcm1hdGlvbkhhc0ltYWdlT3ZlcmxheURhdGFEZXRlY3Rvcl0pIHsKICAgICAgICAgICAg
IGNvbnRpbnVlV2l0aENvbnRleHRNZW51Q29uZmlndXJhdGlvbihuaWwpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkBAIC0xMDQ1MCwxOSArMTA0NTksMjggQEAgLSAodm9pZCljb250
aW51ZUNvbnRleHRNZW51SW50ZXJhY3Rpb246KHZvaWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3Vy
YXRpb24gKikpY28KIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKwogLSAodm9pZClj
b250aW51ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25XaXRoRGF0YURldGVjdG9yczoodm9pZCheKShV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljb250aW51ZVdpdGhDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24KIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBhdXRvIGRk
Q29udGV4dE1lbnVBY3Rpb25DbGFzcyA9IGdldEREQ29udGV4dE1lbnVBY3Rpb25DbGFzcygpOwot
ICAgIFVSTCBsaW5rVVJMID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsOwotICAgIE5TRGljdGlv
bmFyeSAqY29udGV4dCA9IFtzZWxmIGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yUG9zaXRpb25JbmZv
cm1hdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl07Ci0gICAgVUlDb250ZXh0TWVudUNvbmZpZ3Vy
YXRpb24gKmNvbmZpZ3VyYXRpb25Gcm9tREQgPSBbZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzIGNv
bnRleHRNZW51Q29uZmlndXJhdGlvbkZvclVSTDpsaW5rVVJMIGlkZW50aWZpZXI6X3Bvc2l0aW9u
SW5mb3JtYXRpb24uZGF0YURldGVjdG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6W3NlbGYgc2Vs
ZWN0ZWRUZXh0XSByZXN1bHRzOl9wb3NpdGlvbkluZm9ybWF0aW9uLmRhdGFEZXRlY3RvclJlc3Vs
dHMuZ2V0KCkgaW5WaWV3OnNlbGYgY29udGV4dDpjb250ZXh0IG1lbnVJZGVudGlmaWVyOm5pbF07
CisgICAgYXV0byBjb250ZXh0ID0gcmV0YWluUHRyKFtzZWxmIGRhdGFEZXRlY3Rpb25Db250ZXh0
Rm9yUG9zaXRpb25JbmZvcm1hdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl0pOworICAgIFJldGFp
blB0cjxERENvbnRleHRNZW51Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbkZyb21EYXRhRGV0
ZWN0b3JzOworCisgICAgaWYgKHNlbGYucG9zaXRpb25JbmZvcm1hdGlvbkhhc0ltYWdlT3Zlcmxh
eURhdGFEZXRlY3RvcikgeworICAgICAgICBERFNjYW5uZXJSZXN1bHQgKnNjYW5uZXJSZXN1bHQg
PSBbX3Bvc2l0aW9uSW5mb3JtYXRpb24uZGF0YURldGVjdG9yUmVzdWx0cyBmaXJzdE9iamVjdF07
CisgICAgICAgIGNvbmZpZ3VyYXRpb25Gcm9tRGF0YURldGVjdG9ycyA9IFtkZENvbnRleHRNZW51
QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uV2l0aFJlc3VsdDpzY2FubmVyUmVz
dWx0LmNvcmVSZXN1bHQgaW5WaWV3OnNlbGYgY29udGV4dDpjb250ZXh0LmdldCgpIG1lbnVJZGVu
dGlmaWVyOm5pbF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uZmlndXJhdGlvbkZyb21EYXRh
RGV0ZWN0b3JzID0gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyBjb250ZXh0TWVudUNvbmZpZ3Vy
YXRpb25Gb3JVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsIGlkZW50aWZpZXI6X3Bvc2l0aW9u
SW5mb3JtYXRpb24uZGF0YURldGVjdG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6W3NlbGYgc2Vs
ZWN0ZWRUZXh0XSByZXN1bHRzOl9wb3NpdGlvbkluZm9ybWF0aW9uLmRhdGFEZXRlY3RvclJlc3Vs
dHMuZ2V0KCkgaW5WaWV3OnNlbGYgY29udGV4dDpjb250ZXh0LmdldCgpIG1lbnVJZGVudGlmaWVy
Om5pbF07CisgICAgICAgIF9wYWdlLT5zdGFydEludGVyYWN0aW9uV2l0aFBvc2l0aW9uSW5mb3Jt
YXRpb24oX3Bvc2l0aW9uSW5mb3JtYXRpb24pOworICAgIH0KKwogICAgIF9jb250ZXh0TWVudUFj
dGlvblByb3ZpZGVyRGVsZWdhdGVOZWVkc092ZXJyaWRlID0gWUVTOwotICAgIF9wYWdlLT5zdGFy
dEludGVyYWN0aW9uV2l0aFBvc2l0aW9uSW5mb3JtYXRpb24oX3Bvc2l0aW9uSW5mb3JtYXRpb24p
OwotICAgIGNvbnRpbnVlV2l0aENvbnRleHRNZW51Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9u
RnJvbUREKTsKKyAgICBjb250aW51ZVdpdGhDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24oY29uZmln
dXJhdGlvbkZyb21EYXRhRGV0ZWN0b3JzLmdldCgpKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAog
LSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIG92ZXJyaWRlU3VnZ2VzdGVkQWN0
aW9uc0ZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbgogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTQ4MjE5MjFlNDc0ZDI3NGFkN2UwOTAwZDc0ZDZiMTc2M2I4NmYwMy4uOTZk
MDZhYmYzYjYxOTE3M2FmMGU2NmExZWRlODYzNjAwMDVhYTY3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTg1LDYgKzU5ODUsNyBA
QAogCQlGNDk3NUNGMTI2MjRCODBBMDAzQzYyNkUgLyogV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3
Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTc1Q0YzMjYyNEI5MTgw
MDNDNjI2RSAvKiBXS0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tJbWFnZUV4dHJhY3Rpb25QcmV2aWV3Q29udHJvbGxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERpc3BsYXlMaXN0
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0QTdDRTg0MjY2N0VCNEUw
MDIyODY4NSAvKiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0QUM2NTVFMjJBMzE0MEUwMEEwNTYwNyAvKiBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1
ZXNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQcmVm
ZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHBhdGggPSBpb3MvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEIzNzhEMDIx
RERCQkFCMDA5NUEzNzggLyogV2ViVW5kb1N0ZXBJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVbmRv
U3RlcElELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QkEzM0YwMjU3NTdFODkw
MDBBM0NFOCAvKiBXS0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaDsgcGF0aCA9IGlvcy9X
S0ltYWdlRXh0cmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02NzE5LDYgKzY3MjAsNyBAQAogCQkJCTQ2QUM1MzI0MjVERUQ4MUUwMDNCNTdF
QyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCQlGNDBCQkI0MDI1
N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCAqLywK
IAkJCQkxQUM3NUExQTFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmgg
Ki8sCisJCQkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIEltYWdlRXh0cmFjdGlvblVwZGF0
ZVJlc3VsdC5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJbWFnZU9wdGlv
bnMuaCAqLywKIAkJCQk5OTlCN0VEODI1NTBFNEE4MDBGNDUwQTQgLyogSW5zcGVjdG9yRXh0ZW5z
aW9uVHlwZXMuY3BwICovLAogCQkJCTk5QkUzQjE2MjU0MzNCOTQwMEM2NTUxQyAvKiBJbnNwZWN0
b3JFeHRlbnNpb25UeXBlcy5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCA3MzNkM2YwNWU4NWY3YmMzZWMyODM2MWNjN2RjOWJlY2ZlMWQ3
N2FlLi42YTdlYzNlMmIwNTE1OTVlOTUzOWQ2NjgwYzE5ZDY0OTNlM2Y2ZWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlTm9k
ZURhdGEuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
IgorI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5oIgogI2luY2x1ZGUgIklu
amVjdFVzZXJTY3JpcHRJbW1lZGlhdGVseS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgpAQCAtNDA2Myw2ICs0MDY0
LDIzIEBAIHZvaWQgV2ViUGFnZTo6ZGV0ZWN0RGF0YUluQWxsRnJhbWVzKHVpbnQ2NF90IHR5cGVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShtYWluRnJhbWVSZXN1bHQpKTsKIH0KIAorc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVm
PFdlYkNvcmU6OkhUTUxFbGVtZW50PiwgV2ViQ29yZTo6SW50UmVjdD4+IFdlYlBhZ2U6OmZpbmRE
YXRhRGV0ZWN0aW9uUmVzdWx0RWxlbWVudEluSW1hZ2VPdmVybGF5KGNvbnN0IEZsb2F0UG9pbnQm
IGxvY2F0aW9uLCBjb25zdCBIVE1MRWxlbWVudCYgaW1hZ2VPdmVybGF5SG9zdCkKK3sKKyAgICBW
ZWN0b3I8UmVmPEhUTUxFbGVtZW50Pj4gZGF0YURldGVjdG9yRWxlbWVudHM7CisgICAgZm9yIChh
dXRvJiBjaGlsZCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEhUTUxFbGVtZW50PigqaW1hZ2VPdmVybGF5
SG9zdC5zaGFkb3dSb290KCkpKSB7CisgICAgICAgIGlmIChjaGlsZC5pc0ltYWdlT3ZlcmxheURh
dGFEZXRlY3RvclJlc3VsdCgpKQorICAgICAgICAgICAgZGF0YURldGVjdG9yRWxlbWVudHMuYXBw
ZW5kKGNoaWxkKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkYXRhRGV0ZWN0
b3JFbGVtZW50cykgeworICAgICAgICBhdXRvIGVsZW1lbnRCb3VuZHMgPSBlbGVtZW50LT5ib3Vu
ZHNJblJvb3RWaWV3U3BhY2UoKTsKKyAgICAgICAgaWYgKGVsZW1lbnRCb3VuZHMuY29udGFpbnMo
cm91bmRlZEludFBvaW50KGxvY2F0aW9uKSkpCisgICAgICAgICAgICByZXR1cm4ge3sgV1RGTW92
ZShlbGVtZW50KSwgZWxlbWVudEJvdW5kcyB9fTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworfQorCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCkBAIC03NDU4LDExICs3NDc2LDExIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVz
dEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBDb21wbGV0aW9uSGFu
ZGxlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlv
blJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQsIGNvbnN0IEVsZW1lbnRDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6dXBkYXRl
V2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQs
IGNvbnN0IEVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlv
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gZWxlbWVudFRvVXBkYXRlID0gZWxlbWVu
dEZvckNvbnRleHQoY29udGV4dCk7CiAgICAgaWYgKCFpczxIVE1MRWxlbWVudD4oZWxlbWVudFRv
VXBkYXRlKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6Tm9UZXh0KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzQ3NCwxMiArNzQ5MiwyMiBAQCB2b2lkIFdlYlBh
Z2U6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0
JiYgcmVzdWx0LCBjbwogICAgIH0pOwogCiAgICAgYXV0byBub2RlQXRMb2NhdGlvbiA9IG1ha2VS
ZWZQdHIoaGl0VGVzdFJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSk7Ci0gICAgaWYgKCFub2Rl
QXRMb2NhdGlvbiB8fCBub2RlQXRMb2NhdGlvbi0+c2hhZG93SG9zdCgpICE9IGVsZW1lbnRUb1Vw
ZGF0ZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CisgICAgYXV0byB1cGRhdGVSZXN1bHQgPSAoWyZdIHsKKyAgICAgICAgaWYgKCFu
b2RlQXRMb2NhdGlvbiB8fCBub2RlQXRMb2NhdGlvbi0+c2hhZG93SG9zdCgpICE9IGVsZW1lbnRU
b1VwZGF0ZSB8fCAhSFRNTEVsZW1lbnQ6OmlzSW5zaWRlSW1hZ2VPdmVybGF5KCpub2RlQXRMb2Nh
dGlvbikpCisgICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpO
b1RleHQ7CisKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgICAgIGlmIChmaW5kRGF0
YURldGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdlT3ZlcmxheShsb2NhdGlvbiwgZG93bmNhc3Q8
SFRNTEVsZW1lbnQ+KCplbGVtZW50VG9VcGRhdGUpKSkKKyAgICAgICAgICAgIHJldHVybiBJbWFn
ZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OkRhdGFEZXRlY3RvcjsKKyNlbmRpZgorCisgICAgICAg
IGlmIChIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpub2RlQXRMb2NhdGlvbikpCisg
ICAgICAgICAgICByZXR1cm4gSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0OjpUZXh0OworCisg
ICAgICAgIHJldHVybiBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dDsKKyAgICB9
KSgpOwogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoSFRNTEVsZW1lbnQ6OmlzSW1hZ2VPdmVybGF5
VGV4dCgqbm9kZUF0TG9jYXRpb24pKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih1cGRhdGVSZXN1
bHQpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZmEzY2Q2YzE5NDgyODVkYmI3
NmYzOWQ3NzAzODQxZWQ4NWMxMzdiZS4uZjVjZDdlZTA5MzNjNGRhNjE4ZmE1ODA1NzhlZDIwNzc5
YWZhNjg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMzEwLDYgKzMxMCw3IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogCiBl
bnVtIGNsYXNzIEZpbmRPcHRpb25zIDogdWludDE2X3Q7CiBlbnVtIGNsYXNzIERyYWdDb250cm9s
bGVyQWN0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVz
dWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlIDog
dWludDhfdDsKIAogc3RydWN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZTsKQEAgLTExNTMsNiAr
MTE1NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERhdGFEZXRlY3Rpb25SZXN1bHRzKE5TQXJy
YXkgKik7CiAgICAgdm9pZCBkZXRlY3REYXRhSW5BbGxGcmFtZXModWludDY0X3QsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgRGF0YURldGVjdGlvblJlc3VsdCYpPiYmKTsKICAgICB2b2lk
IHJlbW92ZURhdGFEZXRlY3RlZExpbmtzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRGF0
YURldGVjdGlvblJlc3VsdCYpPiYmKTsKKyAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVj
dGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50Jik7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWly
PFJlZjxXZWJDb3JlOjpIVE1MRWxlbWVudD4sIFdlYkNvcmU6OkludFJlY3Q+PiBmaW5kRGF0YURl
dGVjdGlvblJlc3VsdEVsZW1lbnRJbkltYWdlT3ZlcmxheShjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBsb2NhdGlvbkluUm9vdFZpZXcsIGNvbnN0IFdlYkNvcmU6OkhUTUxFbGVtZW50JiBob3N0
KTsKICNlbmRpZgogCiAgICAgdW5zaWduZWQgZXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBw
cmVzc2lvbigpOwpAQCAtMTE3NiwxMCArMTE3OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRs
ZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCi0gICAgdm9pZCBoYW5kbGVD
bGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29uc3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxl
bWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwotI2VuZGlmCi0KICAgICB2b2lk
IGRpZENoYW5nZVNjcm9sbE9mZnNldEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7CiAKICAgICB2
b2lkIHNldE1haW5GcmFtZVByb2dyZXNzQ29tcGxldGVkKGJvb2wgY29tcGxldGVkKSB7IG1fbWFp
bkZyYW1lUHJvZ3Jlc3NDb21wbGV0ZWQgPSBjb21wbGV0ZWQ7IH0KQEAgLTE0MDQsNyArMTQwMyw3
IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogICAgIHZvaWQgcmVx
dWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYpOwotICAgIHZvaWQgdXBkYXRlV2l0
aEltYWdlRXh0cmFjdGlvblJlc3VsdChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiwg
Y29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBsb2NhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCB1
cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJl
c3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0cmFjdGlv
blVwZGF0ZVJlc3VsdCk+JiYpOwogI2VuZGlmCiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGUxNTc5M2Q1YTRk
MjQxM2E1Yjk0ZWIyMDQ5Y2E1N2JhMDk5YzAwZmIuLjgzZmU1NWIwYzQwNGEwOWViNmY0Nzc4Mzhm
ODZmMTgwNTZjZWI4ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNjQzLDYgKzY0Myw2IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
IFVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OkltYWdlRXh0
cmFjdGlvblJlc3VsdCByZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVt
ZW50LCBXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoYm9vbCB0ZXh0RXhpc3RzQXRM
b2NhdGlvbikgQXN5bmMKKyAgICBVcGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KHN0cnVj
dCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0LCBzdHJ1Y3QgV2ViQ29yZTo6
RWxlbWVudENvbnRleHQgZWxlbWVudCwgV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbikgLT4g
KGVudW06dWludDhfdCBXZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCByZXN1bHQp
IEFzeW5jCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZDVhNTAxNzZmZjRiMmJmYmRiNTIzMWM1NWI4MWM1
NzQ5ZDM0ZGQ2ZS4uYzg1NTc0MjUxNjllMzcwN2ZjZGJjNDhkNTJkMDVlMjBhODZlNWMwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTE0OCw2ICsxNDgsNyBAQAogI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMu
aD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1F
TlQpCkBAIC0yNzQ3LDYgKzI3NDgsNyBAQCBzdGF0aWMgdm9pZCBkYXRhRGV0ZWN0b3JMaW5rUG9z
aXRpb25JbmZvcm1hdGlvbihFbGVtZW50JiBlbGVtZW50LCBJbnRlcmFjdGlvbkluZgogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgaW5mby5pc0RhdGFEZXRlY3RvckxpbmsgPSB0cnVlOworICAg
IGluZm8uZGF0YURldGVjdG9yQm91bmRzID0gaW5mby5ib3VuZHM7CiAgICAgY29uc3QgaW50IGRh
dGFEZXRlY3Rpb25FeHRlbmRlZENvbnRleHRMZW5ndGggPSAzNTA7CiAgICAgaW5mby5kYXRhRGV0
ZWN0b3JJZGVudGlmaWVyID0gRGF0YURldGVjdGlvbjo6ZGF0YURldGVjdG9ySWRlbnRpZmllcihl
bGVtZW50KTsKICAgICBpZiAoYXV0byogcmVzdWx0cyA9IGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFt
ZSgpLT5kYXRhRGV0ZWN0aW9uUmVzdWx0c0lmRXhpc3RzKCkpCkBAIC0yNzYyLDcgKzI3NjQsMzgg
QEAgc3RhdGljIHZvaWQgZGF0YURldGVjdG9yTGlua1Bvc2l0aW9uSW5mb3JtYXRpb24oRWxlbWVu
dCYgZWxlbWVudCwgSW50ZXJhY3Rpb25JbmYKICAgICAgICAgZGF0YURldGVjdGlvbkV4dGVuZGVk
Q29udGV4dExlbmd0aCwgU2VsZWN0aW9uRGlyZWN0aW9uOjpGb3J3YXJkKSk7CiB9CiAKLSNlbmRp
Zgorc3RhdGljIHZvaWQgZGF0YURldGVjdG9ySW1hZ2VPdmVybGF5UG9zaXRpb25JbmZvcm1hdGlv
bihjb25zdCBIVE1MRWxlbWVudCYgb3ZlcmxheUhvc3QsIGNvbnN0IEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYg
aW5mbykKK3sKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cihvdmVybGF5SG9zdC5kb2N1bWVu
dCgpLmZyYW1lKCkpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gZWxlbWVudEFuZEJvdW5kcyA9IFdlYlBhZ2U6OmZpbmREYXRhRGV0ZWN0aW9uUmVzdWx0RWxl
bWVudEluSW1hZ2VPdmVybGF5KHJlcXVlc3QucG9pbnQsIG92ZXJsYXlIb3N0KTsKKyAgICBpZiAo
IWVsZW1lbnRBbmRCb3VuZHMpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gW2ZvdW5kRWxl
bWVudCwgZWxlbWVudEJvdW5kc10gPSAqZWxlbWVudEFuZEJvdW5kczsKKyAgICBhdXRvIGlkZW50
aWZpZXJWYWx1ZSA9IHBhcnNlSW50ZWdlcjx1aW50NjRfdD4oZm91bmRFbGVtZW50LT5hdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6eF9hcHBsZV9kYXRhX2RldGVjdG9y
c19yZXN1bHRBdHRyKSk7CisgICAgaWYgKCFpZGVudGlmaWVyVmFsdWUpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gaWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEltYWdlT3Zl
cmxheURhdGFEZXRlY3Rpb25SZXN1bHRJZGVudGlmaWVyVHlwZT4oKmlkZW50aWZpZXJWYWx1ZSk7
CisgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byogZGF0YURldGVjdGlvblJlc3VsdHMgPSBmcmFtZS0+ZGF0YURldGVjdGlvblJlc3VsdHNJ
ZkV4aXN0cygpOworICAgIGlmICghZGF0YURldGVjdGlvblJlc3VsdHMpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gZGF0YURldGVjdGlvblJlc3VsdCA9IHJldGFpblB0cihkYXRhRGV0ZWN0
aW9uUmVzdWx0cy0+aW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdChpZGVudGlmaWVyKSk7
CisgICAgaWYgKCFkYXRhRGV0ZWN0aW9uUmVzdWx0KQorICAgICAgICByZXR1cm47CisKKyAgICBp
bmZvLmRhdGFEZXRlY3RvckJvdW5kcyA9IFdURk1vdmUoZWxlbWVudEJvdW5kcyk7CisgICAgaW5m
by5kYXRhRGV0ZWN0b3JSZXN1bHRzID0gQFsgZGF0YURldGVjdGlvblJlc3VsdC5nZXQoKSBdOwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogCiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxzdGQ6OnBhaXI8UmVuZGVySW1hZ2UmLCBJbWFnZSY+PiBpbWFnZVJlbmRlcmVyQW5kSW1h
Z2UoRWxlbWVudCYgZWxlbWVudCkKIHsKQEAgLTI4NjMsNiArMjg5NiwxMSBAQCBzdGF0aWMgdm9p
ZCBlbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVt
ZW50LCBjb25zdCBJbgogICAgICAgICBib3VuZHNQb3NpdGlvbkluZm9ybWF0aW9uKCpyZW5kZXJl
ciwgaW5mbyk7CiAgICAgfQogCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGlmIChp
bmZvLmlzSW1hZ2VPdmVybGF5VGV4dCAmJiBpczxIVE1MRWxlbWVudD4oZWxlbWVudCkpCisgICAg
ICAgIGRhdGFEZXRlY3RvckltYWdlT3ZlcmxheVBvc2l0aW9uSW5mb3JtYXRpb24oZG93bmNhc3Q8
SFRNTEVsZW1lbnQ+KGVsZW1lbnQpLCByZXF1ZXN0LCBpbmZvKTsKKyNlbmRpZgorCiAgICAgaW5m
by5lbGVtZW50Q29udGV4dCA9IHBhZ2UuY29udGV4dEZvckVsZW1lbnQoZWxlbWVudCk7CiB9CiAg
ICAgCg==
</data>
<flag name="commit-queue"
          id="451873"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430430</attachid>
            <date>2021-06-02 18:28:53 -0700</date>
            <delta_ts>2021-06-02 21:59:15 -0700</delta_ts>
            <desc>Fix non-internal iOS build</desc>
            <filename>bug-226559-20210602182852.patch</filename>
            <type>text/plain</type>
            <size>29268</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVkZjhiODRmNmI3ZGI1Y2Fl
MDQ4MmYzNmQ1ZTI2NjNhZjE2ZWVhYTEuLmMwNDk2YWIxMjc1ZmE1NDc4OWY1MjcwNGI1MmQyZDk3
ZTExMGZmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMjEtMDYtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2hvdyBkYXRh
IGRldGVjdG9yIGNvbnRleHQgbWVudSBvbiBsb25nIHByZXNzIGluc2lkZSBpbWFnZSBvdmVybGF5
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NTU5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODc4OTA3OD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIGRhdGEg
ZGV0ZWN0b3JzIHRoYXQgYXBwZWFyIGluc2lkZSBpbWFnZSBvdmVybGF5cyBvbiBpT1MuCisKKyAg
ICAgICAgKiBTaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0Lmg6IEFkZGVkLgorCisg
ICAgICAgIFR1cm4gdGhlIGBib29sYCBwcm9wYWdhdGVkIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3Mg
d2hlbiBjYWxsaW5nIGB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0YCBpbnRvIGEgc2Vw
YXJhdGUKKyAgICAgICAgdGhyZWUtc3RhdGUgZW51bSBpbnN0ZWFkOyBzZWUgY2hhbmdlcyBiZWxv
dyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToKKworICAgICAgICBNYWtlIHNv
bWUgbWlub3IgYWRqdXN0bWVudHMgdG8gYEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
YDoKKworICAgICAgICAtICAgQWRkIGBkYXRhRGV0ZWN0b3JCb3VuZHNgLCB3aGljaCBkZXRlcm1p
bmVzIHRoZSBib3VuZHMgaW4gcm9vdCB2aWV3IGNvb3JkaW5hdGVzIG9mIHRoZSBkYXRhIGRldGVj
dG9yIHJlc3VsdAorICAgICAgICAgICAgY29ycmVzcG9uZGluZyB0byB0aGUgaGl0LXRlc3RlZCBl
bGVtZW50LgorCisgICAgICAgIC0gICBFbmNvZGUgYW5kIGRlY29kZSBgZGF0YURldGVjdG9yUmVz
dWx0c2AsIGV2ZW4gaWYgYGlzRGF0YURldGVjdG9yTGlua2AgaXMgYGZhbHNlYC4gVW5sZXNzIHRo
ZSBkYXRhIGRldGVjdG9yCisgICAgICAgICAgICBpcyBpbnNpZGUgYW4gaW1hZ2Ugb3ZlcmxheSwg
dGhpcyAoZWZmZWN0aXZlbHkpIGhhcyBubyBpbXBhY3QsIHNpbmNlIGBkYXRhRGV0ZWN0b3JSZXN1
bHRzYCB3YXMgcHJldmlvdXNseQorICAgICAgICAgICAgb25seSBzZXQgaWYgYGlzRGF0YURldGVj
dG9yTGlua2Agd2FzIHRydWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0
aW9uUmVzdWx0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgZGF0YURldGVjdGlvbkNvbnRleHRGb3JQb3NpdGlvbkluZm9ybWF0aW9u
Ol0pOgorCisgICAgICAgIExldCBgZGF0YURldGVjdG9yUmVzdWx0c2AgdGFrZSBwcmVjZWRlbmNl
IG92ZXIgcmVndWxhciBgYm91bmRzYCB3aGVuIHJldHVybmluZyB0aGUgY29udGV4dCBmb3IgdGhl
IGRhdGEKKyAgICAgICAgZGV0ZWN0b3IgbWVudSBjb25maWd1cmF0aW9uLgorCisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgcG9zaXRpb25JbmZvcm1hdGlvbkhhc0ltYWdlT3ZlcmxheURhdGFEZXRl
Y3Rvcl0pOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdGhhdCByZXR1cm5zIGBZRVNg
IGluIHRoZSBjYXNlIHdoZXJlIHRoZSBjdXJyZW50bHkgY2FjaGVkIHBvc2l0aW9uIGluZm9ybWF0
aW9uIG9iamVjdAorICAgICAgICBjb250YWlucyBhIHRleHQgZGF0YSBkZXRlY3Rpb24gcmVzdWx0
IGluc2lkZSBhbiBpbWFnZSBvdmVybGF5LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2Ny
ZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50UHJldmlld0lmUG9zc2libGVdKToKKworICAgICAg
ICBVc2UgYGRhdGFEZXRlY3RvckJvdW5kc2AgaW5zdGVhZCBvZiBgYm91bmRzYCB3aGVuIGNyZWF0
aW5nIGEgZmFsbGJhY2sgdGFyZ2V0ZWQgcHJldmlldyBmb3IgYSBkYXRhIGRldGVjdGlvbgorICAg
ICAgICByZXN1bHQgaW4gYW4gaW1hZ2Ugb3ZlcmxheS4KKworICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IGNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBjb250aW51ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25XaXRoRGF0YURldGVjdG9yczpd
KToKKworICAgICAgICBBZGp1c3QgdGhlc2UgY29kZXBhdGhzIHNvIHRoYXQgd2UnbGwgY29udGlu
dWUgdGhyb3VnaCB0byB0aGUgZGF0YSBkZXRlY3RvciBjYXNlIGluc3RlYWQgb2YgYmFpbGluZyBl
YXJseSBpbiB0aGUKKyAgICAgICAgY2FzZSB3aGVyZSBib3RoIGBpc0ltYWdlT3ZlcmxheVRleHRg
IGlzIHNldCwgYW5kIGBkYXRhRGV0ZWN0aW9uUmVzdWx0c2AgZXhpc3QuCisKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmREYXRhRGV0
ZWN0aW9uUmVzdWx0RWxlbWVudEluSW1hZ2VPdmVybGF5KToKKworICAgICAgICBBZGQgYSBzdGF0
aWMgaGVscGVyIHRvIGxvY2F0ZSBhIGRhdGEgZGV0ZWN0b3IgZWxlbWVudCB1bmRlcm5lYXRoIHRo
ZSBnaXZlbiBwb2ludCwgaW5zaWRlIHRoZSBnaXZlbiBlbGVtZW50J3MKKyAgICAgICAgaW1hZ2Ug
b3ZlcmxheSBpbiB0aGUgdXNlciBhZ2VudCBzaGFkb3cgcm9vdC4gTm90ZSB0aGF0IHdlIGNoZWNr
IGVhY2ggb2YgdGhlIGVsZW1lbnQncyBib3VuZHMgaW5zdGVhZCBvZiB1c2luZworICAgICAgICBh
IGhpdC10ZXN0IGJlY2F1c2Ugd2Ugbm9ybWFsbHkganVzdCBoaXQtdGVzdCB0byB0aGUgdGV4dCBj
b250YWluZXJzIGluc3RlYWQgb2YgdGhlIGRhdGEgZGV0ZWN0b3IgY29udGFpbmVycy4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGF0YURldGVjdG9y
TGlua1Bvc2l0aW9uSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpkYXRhRGV0ZWN0b3JJ
bWFnZU92ZXJsYXlQb3NpdGlvbkluZm9ybWF0aW9uKToKKworICAgICAgICBBZGQgYSBzdGF0aWMg
aGVscGVyIGZ1bmN0aW9uIHRvIHBvcHVsYXRlIHRoZSBnaXZlbiBgSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb25gLCBpZiBpdCdzIG92ZXIgYSBkYXRhCisgICAgICAgIGRldGVjdGlvbiBy
ZXN1bHQgaW5zaWRlIGFuIGltYWdlIG92ZXJsYXkuCisKKyAgICAgICAgKFdlYktpdDo6ZWxlbWVu
dFBvc2l0aW9uSW5mb3JtYXRpb24pOiBDYWxsIHRoZSBhYm92ZSBoZWxwZXIgZnVuY3Rpb24uCisK
IDIwMjEtMDYtMDIgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBDbGVhbiB1cCBub3RpZmljYXRpb25fY2VudGVyIG1lc3NhZ2UgZmlsdGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVz
dWx0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NzdiNjU1ZmE5YzZjZjBmMWZmMDllYmNmYmE1ZjRlOTBmMTczMWFlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSW1hZ2VFeHRyYWN0aW9uVXBk
YXRlUmVzdWx0LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBjbGFzcyBJbWFnZUV4dHJhY3Rpb25V
cGRhdGVSZXN1bHQgOiB1aW50OF90IHsKKyAgICBOb1RleHQsCisgICAgVGV4dCwKKyAgICBEYXRh
RGV0ZWN0b3IsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpJbWFnZUV4dHJhY3Rpb25V
cGRhdGVSZXN1bHQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJLaXQ6OkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdCwKKyAgICAgICAgV2ViS2l0OjpJbWFn
ZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCwKKyAgICAgICAgV2ViS2l0OjpJbWFnZUV4
dHJhY3Rpb25VcGRhdGVSZXN1bHQ6OlRleHQsCisgICAgICAgIFdlYktpdDo6SW1hZ2VFeHRyYWN0
aW9uVXBkYXRlUmVzdWx0OjpEYXRhRGV0ZWN0b3IKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uLmgKaW5kZXggYmIwMGM0NjFkMTIyMmZkNWZhYWU3MzI2NGZiZmI1NGExZTIzMTkyYi4u
ZGViNzg4NmRhMjgyMTk2Mjg0MWNjNzU3N2E5MGM3NDE3MjBlOTY5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uLmgKQEAgLTk0LDYgKzk0LDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uIHsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgU3RyaW5nIGRhdGFE
ZXRlY3RvcklkZW50aWZpZXI7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGRhdGFEZXRlY3RvclJl
c3VsdHM7CisgICAgV2ViQ29yZTo6SW50UmVjdCBkYXRhRGV0ZWN0b3JCb3VuZHM7CiAjZW5kaWYK
IAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+IGVsZW1lbnRDb250
ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCmluZGV4IGU0ZDA5NDIzYjgyN2FjNjYzNzYzM2E1
Y2ZiYWI1ZWIwNGRhZTEwM2UuLmRiMjA5ODFjZDJiNmI4Njc3YjYzZDQzMDZiYjQ2OWVjNDE1Nzg4
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KQEAgLTc3LDEwICs3Nyw5IEBAIHZvaWQgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiAjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQogICAgIGVuY29kZXIgPDwgaXNEYXRhRGV0ZWN0b3JMaW5rOwotICAgIGlmIChpc0RhdGFE
ZXRlY3RvckxpbmspIHsKLSAgICAgICAgZW5jb2RlciA8PCBkYXRhRGV0ZWN0b3JJZGVudGlmaWVy
OwotICAgICAgICBlbmNvZGVyIDw8IGRhdGFEZXRlY3RvclJlc3VsdHM7Ci0gICAgfQorICAgIGVu
Y29kZXIgPDwgZGF0YURldGVjdG9ySWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IGRhdGFEZXRl
Y3RvclJlc3VsdHM7CisgICAgZW5jb2RlciA8PCBkYXRhRGV0ZWN0b3JCb3VuZHM7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBlbmNvZGVyIDw8IHByZXZlbnRUZXh0
SW50ZXJhY3Rpb247CkBAIC0xODksMTcgKzE4OCwxOCBAQCBib29sIEludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlv
bgogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5pc0RhdGFEZXRlY3RvckxpbmspKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgaWYgKHJlc3VsdC5pc0RhdGFEZXRlY3RvckxpbmspIHsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuZGF0YURldGVjdG9ySWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICAgICAgYXV0byBkYXRhRGV0ZWN0b3JSZXN1bHRzID0gSVBDOjpkZWNv
ZGU8TlNBcnJheT4oZGVjb2RlciwgQFsgW05TQXJyYXkgY2xhc3NdLCBnZXRERFNjYW5uZXJSZXN1
bHRDbGFzcygpIF0pOwotICAgICAgICBpZiAoIWRhdGFEZXRlY3RvclJlc3VsdHMpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZGF0YURl
dGVjdG9ySWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gZGF0
YURldGVjdG9yUmVzdWx0cyA9IElQQzo6ZGVjb2RlPE5TQXJyYXk+KGRlY29kZXIsIEBbIE5TQXJy
YXkuY2xhc3MsIGdldEREU2Nhbm5lclJlc3VsdENsYXNzKCkgXSk7CisgICAgaWYgKCFkYXRhRGV0
ZWN0b3JSZXN1bHRzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXN1bHQuZGF0YURl
dGVjdG9yUmVzdWx0cyA9IFdURk1vdmUoKmRhdGFEZXRlY3RvclJlc3VsdHMpOwogCi0gICAgICAg
IHJlc3VsdC5kYXRhRGV0ZWN0b3JSZXN1bHRzID0gV1RGTW92ZSgqZGF0YURldGVjdG9yUmVzdWx0
cyk7Ci0gICAgfQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRhdGFEZXRlY3RvckJv
dW5kcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCA5ZDk2ODA2MTQyM2I3OTU1YzNjMzdhZGRlNTI3ZGM3Y2VjMzI4ZTg5Li4zNzJiYTgzNGExNmY0
OTQ2YTI2ODhjY2YyZTMwYWQ4NDEzZDc1MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlICJFdmVudERpc3BhdGNo
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
RnJhbWVJbmZvRGF0YS5oIgorI2luY2x1ZGUgIkltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdC5o
IgogI2luY2x1ZGUgIkxlZ2FjeUdsb2JhbFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC04NDgxLDEwICs4NDgyLDEwIEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVS
TCwgU2hhcmVhYmxlQml0bWFwJiBpCiAgICAgcGFnZUNsaWVudCgpLmNvbXB1dGVDYW5SZXZlYWxJ
bWFnZShpbWFnZVVSTCwgaW1hZ2VCaXRtYXAsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4
dHJhY3Rpb25SZXN1bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCB0
ZXh0RXhpc3RzQXRMb2NhdGlvbik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChJbWFnZUV4dHJhY3Rpb25SZXN1
bHQmJiByZXN1bHRzLCBjb25zdCBFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQ
b2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBk
YXRlUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQ
cm9jZXNzKCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggOTg1NzFhMDMxMTBlMmFkMTYyNDMzMTRhYWExNjk3NTQzNzQ3ZThlZC4uN2FkM2Uw
OGY5NWU4YzNjOTZiOTEyMWU5ZDQ4MDcyZWI0OWFjYjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwNiw2ICs0MDYsNyBAQCBzdHJ1Y3QgV2ViTmF2aWdhdGlv
bkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CiBzdHJ1Y3QgV2ViU3BlZWNoU3ludGhl
c2lzVm9pY2U7CiAKK2VudW0gY2xhc3MgSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNz
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwogZW51bSBjbGFzcyBVbmRvT3JS
ZWRvIDogYm9vbDsKQEAgLTE2NjQsNyArMTY2NSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJ
TUFHRV9FWFRSQUNUSU9OKQogICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBV
UkwmIGltYWdlVVJMLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4m
Jik7Ci0gICAgdm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6Oklt
YWdlRXh0cmFjdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgdGV4dEV4aXN0c0F0TG9jYXRpb24pPiYmKTsKKyAgICB2b2lkIHVwZGF0ZVdpdGhJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQoV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9j
YXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0
KT4mJik7CiAgICAgdm9pZCBjb21wdXRlQ2FuUmV2ZWFsSW1hZ2UoY29uc3QgVVJMJiBpbWFnZVVS
TCwgU2hhcmVhYmxlQml0bWFwJiBpbWFnZUJpdG1hcCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZjI1ZjM1YjEzOGRkODBhYTBi
NGRlODE5MTE4NmJlOTIyMDExNDQ4Mi4uMjU0MmM0YmRhMzRhZTcwZmFlNzUzMzkwMjE2ZDE0MzNk
NTY5ZWZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03NTIzLDYgKzc1MjMsOCBAQCAtIChOU0RpY3Rp
b25hcnkgKilkYXRhRGV0ZWN0aW9uQ29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZQogICAgIENHUmVjdCBzb3VyY2VSZWN0OwogICAgIGlmIChwb3NpdGlvbklu
Zm9ybWF0aW9uLmlzTGluaykKICAgICAgICAgc291cmNlUmVjdCA9IHBvc2l0aW9uSW5mb3JtYXRp
b24ubGlua0luZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOwor
ICAgIGVsc2UgaWYgKCFwb3NpdGlvbkluZm9ybWF0aW9uLmRhdGFEZXRlY3RvckJvdW5kcy5pc0Vt
cHR5KCkpCisgICAgICAgIHNvdXJjZVJlY3QgPSBwb3NpdGlvbkluZm9ybWF0aW9uLmRhdGFEZXRl
Y3RvckJvdW5kczsKICAgICBlbHNlCiAgICAgICAgIHNvdXJjZVJlY3QgPSBwb3NpdGlvbkluZm9y
bWF0aW9uLmJvdW5kczsKIApAQCAtODQ2MCw2ICs4NDYyLDExIEBAIC0gKFVJVGFyZ2V0ZWRQcmV2
aWV3ICopX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50UHJldmlld0ZvckZvY3VzZWRFbGVt
ZW50CiAgICAgcmV0dXJuIF9jb250ZXh0TWVudUludGVyYWN0aW9uVGFyZ2V0ZWRQcmV2aWV3Lmdl
dCgpOwogfQogCistIChCT09MKXBvc2l0aW9uSW5mb3JtYXRpb25IYXNJbWFnZU92ZXJsYXlEYXRh
RGV0ZWN0b3IKK3sKKyAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZU92ZXJs
YXlUZXh0ICYmIFtfcG9zaXRpb25JbmZvcm1hdGlvbi5kYXRhRGV0ZWN0b3JSZXN1bHRzIGNvdW50
XTsKK30KKwogLSAoVUlUYXJnZXRlZFByZXZpZXcgKilfY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVu
dUhpbnRQcmV2aWV3SWZQb3NzaWJsZQogewogICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmll
dz4gdGFyZ2V0ZWRQcmV2aWV3OwpAQCAtODQ3NCw4ICs4NDgxLDEwIEBAIC0gKFVJVGFyZ2V0ZWRQ
cmV2aWV3ICopX2NyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50UHJldmlld0lmUG9zc2libGUK
ICAgICAgICAgdGFyZ2V0ZWRQcmV2aWV3ID0gY3JlYXRlVGFyZ2V0ZWRQcmV2aWV3KGltYWdlLmdl
dCgpLCBzZWxmLCBzZWxmLmNvbnRhaW5lckZvckNvbnRleHRNZW51SGludFByZXZpZXdzLCBfcG9z
aXRpb25JbmZvcm1hdGlvbi5ib3VuZHMsIHsgfSwgbmlsKTsKICAgICB9CiAKLSAgICBpZiAoIXRh
cmdldGVkUHJldmlldykKLSAgICAgICAgdGFyZ2V0ZWRQcmV2aWV3ID0gY3JlYXRlRmFsbGJhY2tU
YXJnZXRlZFByZXZpZXcoc2VsZiwgc2VsZi5jb250YWluZXJGb3JDb250ZXh0TWVudUhpbnRQcmV2
aWV3cywgX3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzLCBuaWwpOworICAgIGlmICghdGFyZ2V0
ZWRQcmV2aWV3KSB7CisgICAgICAgIGF1dG8gYm91bmRzRm9yRmFsbGJhY2tQcmV2aWV3ID0gc2Vs
Zi5wb3NpdGlvbkluZm9ybWF0aW9uSGFzSW1hZ2VPdmVybGF5RGF0YURldGVjdG9yID8gX3Bvc2l0
aW9uSW5mb3JtYXRpb24uZGF0YURldGVjdG9yQm91bmRzIDogX3Bvc2l0aW9uSW5mb3JtYXRpb24u
Ym91bmRzOworICAgICAgICB0YXJnZXRlZFByZXZpZXcgPSBjcmVhdGVGYWxsYmFja1RhcmdldGVk
UHJldmlldyhzZWxmLCBzZWxmLmNvbnRhaW5lckZvckNvbnRleHRNZW51SGludFByZXZpZXdzLCBi
b3VuZHNGb3JGYWxsYmFja1ByZXZpZXcsIG5pbCk7CisgICAgfQogCiAgICAgW3NlbGYgX3VwZGF0
ZVRhcmdldGVkUHJldmlld1Njcm9sbFZpZXdVc2luZ0NvbnRhaW5lclNjcm9sbGluZ05vZGVJRDpf
cG9zaXRpb25JbmZvcm1hdGlvbi5jb250YWluZXJTY3JvbGxpbmdOb2RlSURdOwogCkBAIC0xMDI4
MSw3ICsxMDI5MCw3IEBAIC0gKHZvaWQpY29udGludWVDb250ZXh0TWVudUludGVyYWN0aW9uOih2
b2lkKF4pKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopKWNvCiAgICAgaWYgKCFfcG9zaXRp
b25JbmZvcm1hdGlvbi50b3VjaENhbGxvdXRFbmFibGVkKQogICAgICAgICByZXR1cm4gY29udGlu
dWVXaXRoQ29udGV4dE1lbnVDb25maWd1cmF0aW9uKG5pbCk7CiAKLSAgICBpZiAoIV9wb3NpdGlv
bkluZm9ybWF0aW9uLmlzTGluayAmJiAhX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSAmJiAh
X3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNBdHRhY2htZW50KQorICAgIGlmICghX3Bvc2l0aW9uSW5m
b3JtYXRpb24uaXNMaW5rICYmICFfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0ltYWdlICYmICFfcG9z
aXRpb25JbmZvcm1hdGlvbi5pc0F0dGFjaG1lbnQgJiYgIXNlbGYucG9zaXRpb25JbmZvcm1hdGlv
bkhhc0ltYWdlT3ZlcmxheURhdGFEZXRlY3RvcikKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlV2l0
aENvbnRleHRNZW51Q29uZmlndXJhdGlvbihuaWwpOwogCiAgICAgVVJMIGxpbmtVUkwgPSBfcG9z
aXRpb25JbmZvcm1hdGlvbi51cmw7CkBAIC0xMDQwNSw3ICsxMDQxNCw3IEBAIC0gKHZvaWQpY29u
dGludWVDb250ZXh0TWVudUludGVyYWN0aW9uOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDb25maWd1
cmF0aW9uICopKWNvCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgICAgICAvLyBGSVhN
RTogU3VwcG9ydCBKYXZhU2NyaXB0IHVybHMgaGVyZS4gQnV0IG1ha2Ugc3VyZSB0aGV5IGRvbid0
IHNob3cgYSBwcmV2aWV3LgogICAgICAgICAvLyA8cmRhcjovL3Byb2JsZW0vNTA1NzIyODM+Ci0g
ICAgICAgIGlmICghbGlua1VSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgJiYgIVdlYkNvcmU6
OkRhdGFEZXRlY3Rpb246OmNhbkJlUHJlc2VudGVkQnlEYXRhRGV0ZWN0b3JzKGxpbmtVUkwpKSB7
CisgICAgICAgIGlmICghbGlua1VSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgJiYgIVdlYkNv
cmU6OkRhdGFEZXRlY3Rpb246OmNhbkJlUHJlc2VudGVkQnlEYXRhRGV0ZWN0b3JzKGxpbmtVUkwp
ICYmICFbc3Ryb25nU2VsZiBwb3NpdGlvbkluZm9ybWF0aW9uSGFzSW1hZ2VPdmVybGF5RGF0YURl
dGVjdG9yXSkgewogICAgICAgICAgICAgY29udGludWVXaXRoQ29udGV4dE1lbnVDb25maWd1cmF0
aW9uKG5pbCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwNDQ5LDE5ICsx
MDQ1OCwyOCBAQCAtICh2b2lkKWNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbjoodm9pZChe
KShVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljbwogfQogCiAjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQorCiAtICh2b2lkKWNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbldpdGhE
YXRhRGV0ZWN0b3JzOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopKWNvbnRp
bnVlV2l0aENvbnRleHRNZW51Q29uZmlndXJhdGlvbgogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogICAgIGF1dG8gZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzID0gZ2V0RERDb250
ZXh0TWVudUFjdGlvbkNsYXNzKCk7Ci0gICAgVVJMIGxpbmtVUkwgPSBfcG9zaXRpb25JbmZvcm1h
dGlvbi51cmw7Ci0gICAgTlNEaWN0aW9uYXJ5ICpjb250ZXh0ID0gW3NlbGYgZGF0YURldGVjdGlv
bkNvbnRleHRGb3JQb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKLSAg
ICBVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbkZyb21ERCA9IFtkZENv
bnRleHRNZW51QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yVVJMOmxpbmtV
UkwgaWRlbnRpZmllcjpfcG9zaXRpb25JbmZvcm1hdGlvbi5kYXRhRGV0ZWN0b3JJZGVudGlmaWVy
IHNlbGVjdGVkVGV4dDpbc2VsZiBzZWxlY3RlZFRleHRdIHJlc3VsdHM6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24uZGF0YURldGVjdG9yUmVzdWx0cy5nZXQoKSBpblZpZXc6c2VsZiBjb250ZXh0OmNvbnRl
eHQgbWVudUlkZW50aWZpZXI6bmlsXTsKKyAgICBhdXRvIGNvbnRleHQgPSByZXRhaW5QdHIoW3Nl
bGYgZGF0YURldGVjdGlvbkNvbnRleHRGb3JQb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlvbklu
Zm9ybWF0aW9uXSk7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uPiBj
b25maWd1cmF0aW9uRnJvbURhdGFEZXRlY3RvcnM7CisKKyAgICBpZiAoc2VsZi5wb3NpdGlvbklu
Zm9ybWF0aW9uSGFzSW1hZ2VPdmVybGF5RGF0YURldGVjdG9yKSB7CisgICAgICAgIEREU2Nhbm5l
clJlc3VsdCAqc2Nhbm5lclJlc3VsdCA9IFtfcG9zaXRpb25JbmZvcm1hdGlvbi5kYXRhRGV0ZWN0
b3JSZXN1bHRzIGZpcnN0T2JqZWN0XTsKKyAgICAgICAgY29uZmlndXJhdGlvbkZyb21EYXRhRGV0
ZWN0b3JzID0gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyBjb250ZXh0TWVudUNvbmZpZ3VyYXRp
b25XaXRoUmVzdWx0OnNjYW5uZXJSZXN1bHQuY29yZVJlc3VsdCBpblZpZXc6c2VsZiBjb250ZXh0
OmNvbnRleHQuZ2V0KCkgbWVudUlkZW50aWZpZXI6bmlsXTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBjb25maWd1cmF0aW9uRnJvbURhdGFEZXRlY3RvcnMgPSBbZGRDb250ZXh0TWVudUFjdGlvbkNs
YXNzIGNvbnRleHRNZW51Q29uZmlndXJhdGlvbkZvclVSTDpfcG9zaXRpb25JbmZvcm1hdGlvbi51
cmwgaWRlbnRpZmllcjpfcG9zaXRpb25JbmZvcm1hdGlvbi5kYXRhRGV0ZWN0b3JJZGVudGlmaWVy
IHNlbGVjdGVkVGV4dDpbc2VsZiBzZWxlY3RlZFRleHRdIHJlc3VsdHM6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24uZGF0YURldGVjdG9yUmVzdWx0cy5nZXQoKSBpblZpZXc6c2VsZiBjb250ZXh0OmNvbnRl
eHQuZ2V0KCkgbWVudUlkZW50aWZpZXI6bmlsXTsKKyAgICAgICAgX3BhZ2UtPnN0YXJ0SW50ZXJh
Y3Rpb25XaXRoUG9zaXRpb25JbmZvcm1hdGlvbihfcG9zaXRpb25JbmZvcm1hdGlvbik7CisgICAg
fQorCiAgICAgX2NvbnRleHRNZW51QWN0aW9uUHJvdmlkZXJEZWxlZ2F0ZU5lZWRzT3ZlcnJpZGUg
PSBZRVM7Ci0gICAgX3BhZ2UtPnN0YXJ0SW50ZXJhY3Rpb25XaXRoUG9zaXRpb25JbmZvcm1hdGlv
bihfcG9zaXRpb25JbmZvcm1hdGlvbik7Ci0gICAgY29udGludWVXaXRoQ29udGV4dE1lbnVDb25m
aWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25Gcm9tREQpOworICAgIGNvbnRpbnVlV2l0aENvbnRleHRN
ZW51Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uRnJvbURhdGFEZXRlY3RvcnMuZ2V0KCkpOwog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KLSNlbmRpZgorCisjZW5kaWYgLy8gRU5B
QkxFKERBVEFfREVURUNUSU9OKQogCiAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilfY29u
dGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rp
b24gb3ZlcnJpZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMmRkMjg3NDQzMjMyZjA0NGRiMmZh
ZjY2YjM1NDA5YmE4MjIwMTg4Li45MzA4OGRiZDExNjA4ZDBhMDQ4OGM2MDJkZTM0NTg4MzVjMzE5
YzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU5ODUsNiArNTk4NSw3IEBACiAJCUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBX
S0ltYWdlRXh0cmFjdGlvblByZXZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1h
Z2VFeHRyYWN0aW9uUHJldmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjQ5NzVDRjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLSW1hZ2VFeHRyYWN0aW9uUHJldmll
d0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltYWdlRXh0cmFjdGlvblBy
ZXZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEE2RDZC
QjI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjRBN0NFODQyNjY3RUI0RTAwMjI4Njg1IC8qIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJl
c3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBQzY1NUUyMkEzMTQwRTAwQTA1NjA3IC8qIFdl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlc0lPUy5tbTsgcGF0aCA9
IGlvcy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0QjM3OEQwMjFEREJCQUIwMDk1QTM3OCAvKiBXZWJVbmRvU3RlcElELmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlVuZG9TdGVwSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VFeHRyYWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbWFnZUV4dHJhY3Rpb25HZXN0dXJlUmVj
b2duaXplci5oOyBwYXRoID0gaW9zL1dLSW1hZ2VFeHRyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3MTksNiArNjcyMCw3IEBACiAJCQkJ
NDZBQzUzMjQyNURFRDgxRTAwM0I1N0VDIC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cy5oICovLAogCQkJCUY0MEJCQjQwMjU3RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVw
TWVzc2FnZUFyZ3VtZW50cy5oICovLAogCQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBI
YW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCAqLywKKwkJCQlGNEE3Q0U4NDI2NjdFQjRFMDAyMjg2ODUg
LyogSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0LmggKi8sCiAJCQkJQkNDRjZCMjMxMkM5M0U3
QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5oICovLAogCQkJCTk5OUI3RUQ4MjU1MEU0QTgwMEY0
NTBBNCAvKiBJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5jcHAgKi8sCiAJCQkJOTlCRTNCMTYyNTQz
M0I5NDAwQzY1NTFDIC8qIEluc3BlY3RvckV4dGVuc2lvblR5cGVzLmggKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDczM2QzZjA1ZTg1Zjdi
YzNlYzI4MzYxY2M3ZGM5YmVjZmUxZDc3YWUuLjZhN2VjM2UyYjA1MTU5NWU5NTM5ZDY2ODBjMTlk
NjQ5M2UzZjZlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJGcmFtZVRyZWVOb2RlRGF0YS5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisjaW5jbHVkZSAiSW1hZ2VFeHRyYWN0aW9uVXBkYXRl
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5LmgiCiAjaW5j
bHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmgiCkBAIC00MDYzLDYgKzQwNjQsMjMgQEAgdm9pZCBXZWJQYWdlOjpkZXRlY3REYXRhSW5B
bGxGcmFtZXModWludDY0X3QgdHlwZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QKICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1haW5GcmFtZVJlc3VsdCkpOwogfQogCitzdGQ6
Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZWY8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+LCBXZWJDb3JlOjpJ
bnRSZWN0Pj4gV2ViUGFnZTo6ZmluZERhdGFEZXRlY3Rpb25SZXN1bHRFbGVtZW50SW5JbWFnZU92
ZXJsYXkoY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24sIGNvbnN0IEhUTUxFbGVtZW50JiBpbWFn
ZU92ZXJsYXlIb3N0KQoreworICAgIFZlY3RvcjxSZWY8SFRNTEVsZW1lbnQ+PiBkYXRhRGV0ZWN0
b3JFbGVtZW50czsKKyAgICBmb3IgKGF1dG8mIGNoaWxkIDogZGVzY2VuZGFudHNPZlR5cGU8SFRN
TEVsZW1lbnQ+KCppbWFnZU92ZXJsYXlIb3N0LnNoYWRvd1Jvb3QoKSkpIHsKKyAgICAgICAgaWYg
KGNoaWxkLmlzSW1hZ2VPdmVybGF5RGF0YURldGVjdG9yUmVzdWx0KCkpCisgICAgICAgICAgICBk
YXRhRGV0ZWN0b3JFbGVtZW50cy5hcHBlbmQoY2hpbGQpOworICAgIH0KKworICAgIGZvciAoYXV0
byYgZWxlbWVudCA6IGRhdGFEZXRlY3RvckVsZW1lbnRzKSB7CisgICAgICAgIGF1dG8gZWxlbWVu
dEJvdW5kcyA9IGVsZW1lbnQtPmJvdW5kc0luUm9vdFZpZXdTcGFjZSgpOworICAgICAgICBpZiAo
ZWxlbWVudEJvdW5kcy5jb250YWlucyhyb3VuZGVkSW50UG9pbnQobG9jYXRpb24pKSkKKyAgICAg
ICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKGVsZW1lbnQpLCBlbGVtZW50Qm91bmRzIH19OworICAg
IH0KKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTc0NTgsMTEgKzc0NzYsMTEg
QEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlOjp1
cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFjdGlvblJlc3VsdCYmIHJl
c3VsdCwgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGxv
Y2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQYWdlOjp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0
cmFjdGlvblJlc3VsdCYmIHJlc3VsdCwgY29uc3QgRWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEltYWdlRXh0
cmFjdGlvblVwZGF0ZVJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBl
bGVtZW50VG9VcGRhdGUgPSBlbGVtZW50Rm9yQ29udGV4dChjb250ZXh0KTsKICAgICBpZiAoIWlz
PEhUTUxFbGVtZW50PihlbGVtZW50VG9VcGRhdGUpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoSW1hZ2VFeHRyYWN0aW9uVXBk
YXRlUmVzdWx0OjpOb1RleHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NDc0LDEy
ICs3NDkyLDIyIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3Vs
dChJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJiByZXN1bHQsIGNvCiAgICAgfSk7CiAKICAgICBhdXRv
IG5vZGVBdExvY2F0aW9uID0gbWFrZVJlZlB0cihoaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpKTsKLSAgICBpZiAoIW5vZGVBdExvY2F0aW9uIHx8IG5vZGVBdExvY2F0aW9uLT5zaGFk
b3dIb3N0KCkgIT0gZWxlbWVudFRvVXBkYXRlKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBhdXRvIHVwZGF0ZVJlc3VsdCA9
IChbJl0geworICAgICAgICBpZiAoIW5vZGVBdExvY2F0aW9uIHx8IG5vZGVBdExvY2F0aW9uLT5z
aGFkb3dIb3N0KCkgIT0gZWxlbWVudFRvVXBkYXRlIHx8ICFIVE1MRWxlbWVudDo6aXNJbnNpZGVJ
bWFnZU92ZXJsYXkoKm5vZGVBdExvY2F0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZUV4
dHJhY3Rpb25VcGRhdGVSZXN1bHQ6Ok5vVGV4dDsKKworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElP
TikKKyAgICAgICAgaWYgKGZpbmREYXRhRGV0ZWN0aW9uUmVzdWx0RWxlbWVudEluSW1hZ2VPdmVy
bGF5KGxvY2F0aW9uLCBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmVsZW1lbnRUb1VwZGF0ZSkpKQor
ICAgICAgICAgICAgcmV0dXJuIEltYWdlRXh0cmFjdGlvblVwZGF0ZVJlc3VsdDo6RGF0YURldGVj
dG9yOworI2VuZGlmCisKKyAgICAgICAgaWYgKEhUTUxFbGVtZW50Ojppc0ltYWdlT3ZlcmxheVRl
eHQoKm5vZGVBdExvY2F0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZUV4dHJhY3Rpb25V
cGRhdGVSZXN1bHQ6OlRleHQ7CisKKyAgICAgICAgcmV0dXJuIEltYWdlRXh0cmFjdGlvblVwZGF0
ZVJlc3VsdDo6Tm9UZXh0OworICAgIH0pKCk7CiAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihIVE1M
RWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpub2RlQXRMb2NhdGlvbikpOworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHVwZGF0ZVJlc3VsdCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCBmYTNjZDZjMTk0ODI4NWRiYjc2ZjM5ZDc3MDM4NDFlZDg1YzEzN2JlLi5mNWNkN2VlMDkz
M2M0ZGE2MThmYTU4MDU3OGVkMjA3NzlhZmE2ODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zMTAsNiArMzEwLDcgQEAgY2xhc3MgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb247CiAKIGVudW0gY2xhc3MgRmluZE9wdGlvbnMgOiB1aW50MTZfdDsK
IGVudW0gY2xhc3MgRHJhZ0NvbnRyb2xsZXJBY3Rpb24gOiB1aW50OF90OworZW51bSBjbGFzcyBJ
bWFnZUV4dHJhY3Rpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgQmFja0ZvcndhcmRMaXN0
SXRlbVN0YXRlOwpAQCAtMTE1Myw2ICsxMTU0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGF0
YURldGVjdGlvblJlc3VsdHMoTlNBcnJheSAqKTsKICAgICB2b2lkIGRldGVjdERhdGFJbkFsbEZy
YW1lcyh1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBEYXRhRGV0ZWN0aW9u
UmVzdWx0Jik+JiYpOwogICAgIHZvaWQgcmVtb3ZlRGF0YURldGVjdGVkTGlua3MoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBEYXRhRGV0ZWN0aW9uUmVzdWx0Jik+JiYpOworICAgIHZvaWQg
aGFuZGxlQ2xpY2tGb3JEYXRhRGV0ZWN0aW9uUmVzdWx0KGNvbnN0IFdlYkNvcmU6OkRhdGFEZXRl
Y3RvckVsZW1lbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVmPFdlYkNvcmU6OkhUTUxFbGVtZW50PiwgV2ViQ29y
ZTo6SW50UmVjdD4+IGZpbmREYXRhRGV0ZWN0aW9uUmVzdWx0RWxlbWVudEluSW1hZ2VPdmVybGF5
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uSW5Sb290VmlldywgY29uc3QgV2Vi
Q29yZTo6SFRNTEVsZW1lbnQmIGhvc3QpOwogI2VuZGlmCiAKICAgICB1bnNpZ25lZCBleHRlbmRJ
bmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKCk7CkBAIC0xMTc2LDEwICsxMTc5LDYgQEAg
cHVibGljOgogICAgIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKLSAgICB2b2lkIGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBX
ZWJDb3JlOjpEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
Jik7Ci0jZW5kaWYKLQogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0Rm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWUqKTsKIAogICAgIHZvaWQgc2V0TWFpbkZyYW1lUHJvZ3Jlc3NDb21wbGV0ZWQo
Ym9vbCBjb21wbGV0ZWQpIHsgbV9tYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZCA9IGNvbXBsZXRl
ZDsgfQpAQCAtMTQwNCw3ICsxNDAzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCiAgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1l
bnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4m
Jik7Ci0gICAgdm9pZCB1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KFdlYkNvcmU6Oklt
YWdlRXh0cmFjdGlvblJlc3VsdCYmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIHVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoV2Vi
Q29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYsIGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoSW1hZ2VFeHRyYWN0aW9uVXBkYXRlUmVzdWx0KT4mJik7CiAjZW5kaWYKIAogI2lm
IEhBVkUoVFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggZTE1NzkzZDVhNGQyNDEzYTViOTRlYjIwNDljYTU3YmEwOTljMDBmYi4uODNm
ZTU1YjBjNDA0YTA5ZWI2ZjQ3NzgzOGY4NmYxODA1NmNlYjhlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02NDMs
NiArNjQzLDYgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICNlbmRpZgogCiAjaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCi0gICAgVXBkYXRlV2l0aEltYWdlRXh0cmFjdGlvblJlc3VsdChz
dHJ1Y3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0IHJlc3VsdCwgc3RydWN0IFdlYkNv
cmU6OkVsZW1lbnRDb250ZXh0IGVsZW1lbnQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb24p
IC0+IChib29sIHRleHRFeGlzdHNBdExvY2F0aW9uKSBBc3luYworICAgIFVwZGF0ZVdpdGhJbWFn
ZUV4dHJhY3Rpb25SZXN1bHQoc3RydWN0IFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCBy
ZXN1bHQsIHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50LCBXZWJDb3JlOjpG
bG9hdFBvaW50IGxvY2F0aW9uKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6SW1hZ2VFeHRyYWN0
aW9uVXBkYXRlUmVzdWx0IHJlc3VsdCkgQXN5bmMKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA5ZWVlZDQ4
ZDZkNDEwMzU0NjRlOGE5NjI3OTIxMjMwOWVjYzU2YzQ3Li5kMWNlNTEyMzg5MzVkMDMxODdlNThh
ZGY5OWU3ZTc5NjU3M2ZkNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTQ4LDYgKzE0OCw3IEBACiAjaW1wb3J0IDx3
dGYvU2V0Rm9yU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8
d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVG9JbnRl
Z2VyQ29udmVyc2lvbi5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKQEAgLTI3NDcsNiArMjc0OCw3IEBAIHN0YXRpYyB2
b2lkIGRhdGFEZXRlY3RvckxpbmtQb3NpdGlvbkluZm9ybWF0aW9uKEVsZW1lbnQmIGVsZW1lbnQs
IEludGVyYWN0aW9uSW5mCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpbmZvLmlzRGF0YURl
dGVjdG9yTGluayA9IHRydWU7CisgICAgaW5mby5kYXRhRGV0ZWN0b3JCb3VuZHMgPSBpbmZvLmJv
dW5kczsKICAgICBjb25zdCBpbnQgZGF0YURldGVjdGlvbkV4dGVuZGVkQ29udGV4dExlbmd0aCA9
IDM1MDsKICAgICBpbmZvLmRhdGFEZXRlY3RvcklkZW50aWZpZXIgPSBEYXRhRGV0ZWN0aW9uOjpk
YXRhRGV0ZWN0b3JJZGVudGlmaWVyKGVsZW1lbnQpOwogICAgIGlmIChhdXRvKiByZXN1bHRzID0g
ZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPmRhdGFEZXRlY3Rpb25SZXN1bHRzSWZFeGlzdHMo
KSkKQEAgLTI3NjIsNyArMjc2NCwzOCBAQCBzdGF0aWMgdm9pZCBkYXRhRGV0ZWN0b3JMaW5rUG9z
aXRpb25JbmZvcm1hdGlvbihFbGVtZW50JiBlbGVtZW50LCBJbnRlcmFjdGlvbkluZgogICAgICAg
ICBkYXRhRGV0ZWN0aW9uRXh0ZW5kZWRDb250ZXh0TGVuZ3RoLCBTZWxlY3Rpb25EaXJlY3Rpb246
OkZvcndhcmQpKTsKIH0KIAotI2VuZGlmCitzdGF0aWMgdm9pZCBkYXRhRGV0ZWN0b3JJbWFnZU92
ZXJsYXlQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEhUTUxFbGVtZW50JiBvdmVybGF5SG9zdCwg
Y29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmIHJlcXVlc3QsIEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uJiBpbmZvKQoreworICAgIGF1dG8gZnJhbWUgPSBtYWtlUmVm
UHRyKG92ZXJsYXlIb3N0LmRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgaWYgKCFmcmFtZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byBlbGVtZW50QW5kQm91bmRzID0gV2ViUGFnZTo6Zmlu
ZERhdGFEZXRlY3Rpb25SZXN1bHRFbGVtZW50SW5JbWFnZU92ZXJsYXkocmVxdWVzdC5wb2ludCwg
b3ZlcmxheUhvc3QpOworICAgIGlmICghZWxlbWVudEFuZEJvdW5kcykKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byBbZm91bmRFbGVtZW50LCBlbGVtZW50Qm91bmRzXSA9ICplbGVtZW50QW5k
Qm91bmRzOworICAgIGF1dG8gaWRlbnRpZmllclZhbHVlID0gcGFyc2VJbnRlZ2VyPHVpbnQ2NF90
Pihmb3VuZEVsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVz
Ojp4X2FwcGxlX2RhdGFfZGV0ZWN0b3JzX3Jlc3VsdEF0dHIpKTsKKyAgICBpZiAoIWlkZW50aWZp
ZXJWYWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpZGVudGlmaWVyID0gbWFrZU9i
amVjdElkZW50aWZpZXI8SW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXJU
eXBlPigqaWRlbnRpZmllclZhbHVlKTsKKyAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkYXRhRGV0ZWN0aW9uUmVzdWx0cyA9IGZyYW1l
LT5kYXRhRGV0ZWN0aW9uUmVzdWx0c0lmRXhpc3RzKCk7CisgICAgaWYgKCFkYXRhRGV0ZWN0aW9u
UmVzdWx0cykKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBkYXRhRGV0ZWN0aW9uUmVzdWx0
ID0gcmV0YWluUHRyKGRhdGFEZXRlY3Rpb25SZXN1bHRzLT5pbWFnZU92ZXJsYXlEYXRhRGV0ZWN0
aW9uUmVzdWx0KGlkZW50aWZpZXIpKTsKKyAgICBpZiAoIWRhdGFEZXRlY3Rpb25SZXN1bHQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGluZm8uZGF0YURldGVjdG9yQm91bmRzID0gV1RGTW92ZShl
bGVtZW50Qm91bmRzKTsKKyAgICBpbmZvLmRhdGFEZXRlY3RvclJlc3VsdHMgPSBAWyBkYXRhRGV0
ZWN0aW9uUmVzdWx0LmdldCgpIF07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJJbWFnZSYsIEltYWdl
Jj4+IGltYWdlUmVuZGVyZXJBbmRJbWFnZShFbGVtZW50JiBlbGVtZW50KQogewpAQCAtMjg2Myw2
ICsyODk2LDExIEBAIHN0YXRpYyB2b2lkIGVsZW1lbnRQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBh
Z2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEluCiAgICAgICAgIGJvdW5kc1Bvc2l0
aW9uSW5mb3JtYXRpb24oKnJlbmRlcmVyLCBpbmZvKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisgICAgaWYgKGluZm8uaXNJbWFnZU92ZXJsYXlUZXh0ICYmIGlzPEhUTUxF
bGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgZGF0YURldGVjdG9ySW1hZ2VPdmVybGF5UG9zaXRp
b25JbmZvcm1hdGlvbihkb3duY2FzdDxIVE1MRWxlbWVudD4oZWxlbWVudCksIHJlcXVlc3QsIGlu
Zm8pOworI2VuZGlmCisKICAgICBpbmZvLmVsZW1lbnRDb250ZXh0ID0gcGFnZS5jb250ZXh0Rm9y
RWxlbWVudChlbGVtZW50KTsKIH0KICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>