<?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>211817</bug_id>
          
          <creation_ts>2020-05-12 16:49:58 -0700</creation_ts>
          <short_desc>[iOS] &quot;Copy&quot; context menu action for attachment element does not work in Mail</short_desc>
          <delta_ts>2020-05-13 12:43:15 -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>HTML Editing</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>bdakin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1652027</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-12 16:49:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/58043110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652056</commentid>
    <comment_count>1</comment_count>
      <attachid>399211</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-12 17:48:01 -0700</bug_when>
    <thetext>Created attachment 399211
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652339</commentid>
    <comment_count>2</comment_count>
      <attachid>399211</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-13 12:27:55 -0700</bug_when>
    <thetext>Comment on attachment 399211
For EWS

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652342</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-13 12:43:14 -0700</bug_when>
    <thetext>Committed r261638: &lt;https://trac.webkit.org/changeset/261638&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399211.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399211</attachid>
            <date>2020-05-12 17:48:01 -0700</date>
            <delta_ts>2020-05-13 12:43:14 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-211817-20200512174800.patch</filename>
            <type>text/plain</type>
            <size>32877</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQwZTYxNGI0MGU4OTIz
ZDI4MjM2ZmExZWVhZTNiZjExZWNmZmQ1Yi4uNzM0ODZmN2I2NzQyMGJkMDVhMDA4ZTBiM2EzZGMz
ZTNmYzgyYzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTA1LTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdICJDb3B5
IiBjb250ZXh0IG1lbnUgYWN0aW9uIGZvciBhdHRhY2htZW50IGVsZW1lbnQgZG9lcyBub3Qgd29y
ayBpbiBNYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTE4MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDQzMTEwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRv
IGhlbHAgc3VwcG9ydCB3cml0aW5nIGF0dGFjaG1lbnQgZGF0YSB0byB0aGUgcGFzdGVib2FyZCB3
aGVuIHVzaW5nIGNvbnRleHQgbWVudSBhY3Rpb25zIHRvCisgICAgICAgIGNvcHkgYW4gYXR0YWNo
bWVudCBlbGVtZW50IG9uIGlPUy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMsIGFzIHdlbGwg
YXMgdGhlIFdlYktpdCBDaGFuZ2VMb2cgZW50cnkuCisKKyAgICAgICAgVGVzdDogV0tBdHRhY2ht
ZW50VGVzdHNJT1MuQ29weUF0dGFjaG1lbnRVc2luZ0VsZW1lbnRBY3Rpb24KKworICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1D
b250ZW50VHlwZUZvckJsb2JUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
cHJvbWlzZWRBdHRhY2htZW50SW5mbyk6CisKKyAgICAgICAgTW92ZSBwcm9taXNlZEF0dGFjaG1l
bnRJbmZvIG91dCBvZiBEcmFnQ29udHJvbGxlciBhbmQgaW50byBFZGl0b3IsIHNvIHRoYXQgaXQg
aXMgYWNjZXNzaWJsZSBvdXRzaWRlIG9mIGRyYWcKKyAgICAgICAgYW5kIGRyb3AgY29kZS4KKwor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9FZGl0
b3JDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGxhdGZvcm1Db250ZW50VHlw
ZUZvckJsb2JUeXBlIGNvbnN0KToKKworICAgICAgICBNb3ZlIHRoaXMgcHJpdmF0ZSBoZWxwZXIg
ZnVuY3Rpb24gb3V0IG9mIERyYWdDb250cm9sbGVyIGFzIHdlbGwsIGFuZCBpbnRvIEVkaXRvci4K
KworICAgICAgICAqIHBhZ2UvRHJhZ0NsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6
CisKKyAgICAgICAgUmVmYWN0b3IgdGhpcyB0byB1c2UgRWRpdG9yOjpwcm9taXNlZEF0dGFjaG1l
bnRJbmZvKCkuCisKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwbGF0Zm9ybUNv
bnRlbnRUeXBlRm9yQmxvYlR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
RHJhZ0NvbnRyb2xsZXI6OnByb21pc2VkQXR0YWNobWVudEluZm8pOiBEZWxldGVkLgorICAgICAg
ICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9EcmFnQ29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpwbGF0Zm9ybUNv
bnRlbnRUeXBlRm9yQmxvYlR5cGUgY29uc3QpOiBEZWxldGVkLgorCiAyMDIwLTA1LTExICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEZhaWwgbmF2
aWdhdGlvbnMgdG8gbm9uIGFwcC1ib3VuZCBkb21haW5zIGFmdGVyIHVzZSBvZiBhcHAtYm91bmQg
QVBJcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBkMGE5OTlkYTMxMjE0ZDY0M2FmMjA4NWU5ZDM5YjkwMzZlYmM3ZTAy
Li44OTgwNDg5M2ZkOWQzNjM1MzcyZWNhNmYxMGVkN2M0NjE0NTA3YjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDY1IEBACisyMDIwLTA1LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFtpT1NdICJDb3B5IiBjb250ZXh0IG1lbnUgYWN0aW9uIGZvciBh
dHRhY2htZW50IGVsZW1lbnQgZG9lcyBub3Qgd29yayBpbiBNYWlsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4MTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU4MDQzMTEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29weWluZyBhbiBhdHRhY2htZW50IGVs
ZW1lbnQsIHZpYSBjb250ZXh0IG1lbnUgYWN0aW9ucy4gVG8gYWNoaWV2ZSB0aGlzLCB3ZSBmaXJz
dAorICAgICAgICByZWZhY3RvciBjb2RlIGluIFdlYkNvcmUgdGhhdCBpcyBjdXJyZW50bHkgcmVz
cG9uc2libGUgZm9yIGNvbnZlcnRpbmcgYW4gYXR0YWNobWVudCBlbGVtZW50IGludG8gYQorICAg
ICAgICBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLCB3aGljaCBwcm92aWRlcyBhIGhhbmRsZSB0byBh
biBVSS1wcm9jZXNzLXNpZGUgQVBJIGF0dGFjaG1lbnQgb2JqZWN0LiBXZSB0aGVuIHVzZSB0aGlz
CisgICAgICAgIGhlbHBlciBpbiBXZWJLaXQgdG8gc2VuZCBQcm9taXNlZEF0dGFjaG1lbnRJbmZv
IGJhY2sgdG8gdGhlIFVJIHByb2Nlc3Mgd2hlbiBoYW5kbGluZyB0aGUgY29weSBhY3Rpb24gZnJv
bSB0aGUKKyAgICAgICAgY29udGV4dCBtZW51IG9uIGlPUy4KKworICAgICAgICBPbiBpT1MsIHdl
IHRoZW4gdGFrZSB0aGlzIHByb21pc2VkIGF0dGFjaG1lbnQgaW5mbyBpbiB0aGUgVUkgcHJvY2Vz
cywgbWFwIGl0IHRvIGFuIEFQSTo6QXR0YWNobWVudCBvYmplY3QsIGFuZAorICAgICAgICB1c2Ug
dGhlIGZpbGUgaGFuZGxlIHRvIGNyZWF0ZSBhbmQgd3JpdGUgYW4gTlNJdGVtUHJvdmlkZXIgdG8g
dGhlIGdlbmVyYWwgcGFzdGVib2FyZC4gKEluIHRoZSBmdXR1cmUsIHNpbWlsYXIKKyAgICAgICAg
bG9naWMgY291bGQgYmUgaW1wbGVtZW50ZWQgb24gbWFjT1MgYXMgd2VsbCB0byBoYW5kbGUgY29w
eWluZyBhdHRhY2htZW50IGVsZW1lbnRzIGJ5IGltcGxlbWVudGluZyBhIHZlcnNpb24gb2YKKyAg
ICAgICAgd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQgaW4gUGFnZUNsaWVudElt
cGxNYWMuIEN1cnJlbnRseSwgd2UgZmFsbCBiYWNrIHRvIHRyZWF0aW5nIHRoaXMgY2FzZSBhcyBp
ZgorICAgICAgICB3ZSdyZSBjb3B5aW5nIGEgdGV4dCBzZWxlY3Rpb24gY29udGFpbmluZyBhIHNp
bmdsZSBhdHRhY2htZW50IGVsZW1lbnQpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaDoKKworICAgICAgICBBZGQgYSBuZXcgaGVs
cGVyIGZ1bmN0aW9uIHRvIHNpbXVsYXRlIGFuIGVsZW1lbnQgYWN0aW9uIChfV0tFbGVtZW50QWN0
aW9uVHlwZSkgZm9yIGFuIGVsZW1lbnQgYXQgdGhlIGdpdmVuCisgICAgICAgIGxvY2F0aW9uLiBU
aGlzIGlzIHVzZWQgYnkgdGhlIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2lt
dWxhdGVFbGVtZW50QWN0aW9uOmF0TG9jYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6d3JpdGVQcm9taXNlZEF0
dGFjaG1lbnRUb1Bhc3RlYm9hcmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndyaXRlUHJvbWlzZWRBdHRhY2ht
ZW50VG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICBB
ZGQgYW4gSVBDIG1lc3NhZ2UgZm9yIHRoZSBVSSBwcm9jZXNzIHRvIHJlY2VpdmUgYSBQcm9taXNl
ZEF0dGFjaG1lbnRJbmZvLCBhbmQgY29weSBpdCB0byB0aGUgc3lzdGVtIHBhc3RlYm9hcmQKKyAg
ICAgICAgaWYgaXQgbWFwcyB0byBhbiBhY3R1YWwgQVBJOjpBdHRhY2htZW50LiBGb3Igbm93LCB3
ZSBvbmx5IHN1cHBvcnQgY29weWluZyBkYXRhIGlmIHRoZSBhdHRhY2htZW50IGlzIGJhY2tlZCBi
eQorICAgICAgICBhIGZpbGUgd3JhcHBlciBpbiB0aGUgVUkgcHJvY2VzcyAoYXMgb3Bwb3NlZCB0
byBibG9iIGRhdGEgd3JpdHRlbiBieSB0aGUgd2ViIHByb2Nlc3MpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3
cml0ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZCk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKGNyZWF0ZUl0ZW1Qcm92aWRl
cik6CisKKyAgICAgICAgQ3JlYXRlIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgUHJvbWlz
ZWRBdHRhY2htZW50SW5mbyBpbnRvIGFuIE5TSXRlbVByb3ZpZGVyLiBUaGlzIGlzIHNpbWlsYXIg
dG8KKyAgICAgICAgYC1fcHJlcGFyZVRvRHJhZ1Byb21pc2VkQXR0YWNobWVudDpgLCBidXQgd2l0
aCBhIGNvdXBsZSBkaWZmZXJlbmNlczogKDEpIHdlIG9ubHkgY3JlYXRlIGFuIE5TSXRlbVByb3Zp
ZGVyCisgICAgICAgIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCBgV2ViSXRlbVByb3ZpZGVyUmVn
aXN0cmF0aW9uSW5mb0xpc3RgOyAoMikgc2luY2UgdGhlcmUncyBubyBvcHBvcnR1bml0eSB0byBj
bGVhbiB1cAorICAgICAgICB0ZW1wb3JhcnkgYWZ0ZXIgcGFzdGluZywgc2VyaWFsaXplIHRoZSBh
dHRhY2htZW50IGRhdGEgdXNpbmcgYC1zZXJpYWxpemVkUmVwcmVzZW50YXRpb25gLCBhbmQgcHJv
dmlkZSB0aGUKKyAgICAgICAgYXR0YWNobWVudCBkYXRhIGluc3RlYWQgb2YgYSBmaWxlIFVSTC4K
KworICAgICAgICBJZGVhbGx5LCB3ZSB3b3VsZCBvZmZlciB0aGUgZGF0YSBkaXJlY3RseSB0byB0
aGUgcGFzdGVib2FyZCBzbyB0aGF0IGV2ZW4gaWYgTWFpbCB0ZXJtaW5hdGVzLCB0aGUgY29udGVu
dHMgb2YgdGhlCisgICAgICAgIHBhc3RlYm9hcmQgY2FuIHN0aWxsIGJlIHByb3ZpZGVkIHdoZW4g
cGFzdGluZzsgaG93ZXZlciwgaXQgZG9lc24ndCBzZWVtIGxpa2Ugd2UgY2FuIGRvIHRoaXMgd2hp
bGUgYmVpbmcgYWJsZSB0bworICAgICAgICBvZmZlciBhIHN1Z2dlc3RlZCBuYW1lIGZvciB0aGUg
aXRlbSB3ZSdyZSB3cml0aW5nLiBTb21lIG90aGVyIGFwcHMgd29yayBhcm91bmQgdGhpcyBsaW1p
dGF0aW9uIGJ5IHdyaXRpbmcgdGhlCisgICAgICAgIGZpbGUgbmFtZSBhcyBwbGFpbiB0ZXh0IG9u
IHRoZSBwYXN0ZWJvYXJkLCBidXQgdGhpcyBkb2Vzbid0IHdvcmsgdGhlbiBhdHRlbXB0aW5nIHRv
IGNvcHkgYSBwbGFpbiB0ZXh0IGZpbGUgdGhhdAorICAgICAgICBoYXMgYSBmaWxlIG5hbWUuCisK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3Rl
Ym9hcmQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbXVsYXRlRWxlbWVudEFjdGlv
bjphdExvY2F0aW9uOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybUFjdGlvbk9uRWxlbWVu
dCk6CisKIDIwMjAtMDUtMTEgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5j
b20+CiAKICAgICAgICAgRmFpbCBuYXZpZ2F0aW9ucyB0byBub24gYXBwLWJvdW5kIGRvbWFpbnMg
YWZ0ZXIgdXNlIG9mIGFwcC1ib3VuZCBBUElzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggZjUyNGE3ODEwOThlM2M3YzNlZTM1NGZmYTc2NzAyYTkzMWVmM2QzOS4uMTAyODE3MzU3MzE5
Y2UxYzBkMTlkNTNkZWU4NzczYzgzNjUwNzg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMTI0LDYgKzEyNCwxMCBAQAogI2luY2x1ZGUgIlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKKyNpbmNsdWRl
ICJQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgYm9vbCBkaXNwYXRjaEJlZm9yZUlucHV0RXZlbnQoRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgQXRvbVN0cmluZyYgaW5wdXRUeXBlLCBjb25zdCBTdHJpbmcmIGRhdGEgPSB7IH0s
IFJlZlB0cjxEYXRhVHJhbnNmZXI+JiYgZGF0YVRyYW5zZmVyID0gbnVsbHB0ciwgY29uc3QgVmVj
dG9yPFJlZlB0cjxTdGF0aWNSYW5nZT4+JiB0YXJnZXRSYW5nZXMgPSB7IH0sIEV2ZW50OjpJc0Nh
bmNlbGFibGUgY2FuY2VsYWJsZSA9IEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcykKQEAgLTM5NTAs
NiArMzk1NCwxMSBAQCB2b2lkIEVkaXRvcjo6cGxhdGZvcm1Gb250QXR0cmlidXRlc0F0U2VsZWN0
aW9uU3RhcnQoRm9udEF0dHJpYnV0ZXMmLCBjb25zdCBSZW5kZQogewogfQogCitTdHJpbmcgRWRp
dG9yOjpwbGF0Zm9ybUNvbnRlbnRUeXBlRm9yQmxvYlR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSBj
b25zdAoreworICAgIHJldHVybiB0eXBlOworfQorCiAjZW5kaWYKIAogc3RhdGljIFZlY3RvcjxU
ZXh0TGlzdD4gZWRpdGFibGVUZXh0TGlzdHNBdFBvc2l0aW9uSW5EZXNjZW5kaW5nT3JkZXIoY29u
c3QgUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtNDA4Myw2ICs0MDkyLDMzIEBAIEZvbnRBdHRyaWJ1
dGVzIEVkaXRvcjo6Zm9udEF0dHJpYnV0ZXNBdFNlbGVjdGlvblN0YXJ0KCkgY29uc3QKIAogI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKK1Byb21pc2VkQXR0YWNobWVudEluZm8gRWRp
dG9yOjpwcm9taXNlZEF0dGFjaG1lbnRJbmZvKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgYXV0
byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQgfHwgIWNsaWVudC0+
c3VwcG9ydHNDbGllbnRTaWRlQXR0YWNobWVudERhdGEoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIFJlZlB0cjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGF0dGFjaG1lbnQ7CisgICAgaWYg
KGlzPEhUTUxBdHRhY2htZW50RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIGF0dGFjaG1lbnQg
PSAmZG93bmNhc3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihlbGVtZW50KTsKKyAgICBlbHNlIGlm
IChpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgYXR0YWNobWVudCA9IGRv
d25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQpLmF0dGFjaG1lbnRFbGVtZW50KCk7CisK
KyAgICBpZiAoIWF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8
U3RyaW5nPiBhZGRpdGlvbmFsVHlwZXM7CisgICAgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+
PiBhZGRpdGlvbmFsRGF0YTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBnZXRQYXN0ZWJvYXJk
VHlwZXNBbmREYXRhRm9yQXR0YWNobWVudChlbGVtZW50LCBhZGRpdGlvbmFsVHlwZXMsIGFkZGl0
aW9uYWxEYXRhKTsKKyNlbmRpZgorCisgICAgaWYgKGF1dG8qIGZpbGUgPSBhdHRhY2htZW50LT5m
aWxlKCkpCisgICAgICAgIHJldHVybiB7IGZpbGUtPnVybCgpLCBwbGF0Zm9ybUNvbnRlbnRUeXBl
Rm9yQmxvYlR5cGUoZmlsZS0+dHlwZSgpKSwgZmlsZS0+bmFtZSgpLCB7IH0sIFdURk1vdmUoYWRk
aXRpb25hbFR5cGVzKSwgV1RGTW92ZShhZGRpdGlvbmFsRGF0YSkgfTsKKworICAgIHJldHVybiB7
IHsgfSwgeyB9LCB7IH0sIGF0dGFjaG1lbnQtPnVuaXF1ZUlkZW50aWZpZXIoKSwgV1RGTW92ZShh
ZGRpdGlvbmFsVHlwZXMpLCBXVEZNb3ZlKGFkZGl0aW9uYWxEYXRhKSB9OworfQorCiB2b2lkIEVk
aXRvcjo6cmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJlZmVycmVkRmls
ZU5hbWUsIFJlZjxTaGFyZWRCdWZmZXI+JiYgZGF0YSkKIHsKICAgICBpZiAoYXV0byogY2xpZW50
ID0gdGhpcy0+Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA1NmY1ZWUzY2Fm
OWRlMzBiNzYxMjEyMzQ5OGM2MDhkYTYwOGU3YTlhLi4yYmU2NGE0NTRmNmNjNmI0MmUyNTNjNzcy
NTE0MzhkYTQ0MjAyNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTkyLDYgKzkyLDcg
QEAgc3RydWN0IFBhc3RlYm9hcmRVUkw7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0OwogCiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKK3N0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvOwogc3RydWN0IFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YTsKICNlbmRpZgogCkBAIC01NTks
NiArNTYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudEVsZW1lbnQo
SFRNTEF0dGFjaG1lbnRFbGVtZW50Jik7CiAgICAgdm9pZCBkaWRSZW1vdmVBdHRhY2htZW50RWxl
bWVudChIVE1MQXR0YWNobWVudEVsZW1lbnQmKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIFByb21p
c2VkQXR0YWNobWVudEluZm8gcHJvbWlzZWRBdHRhY2htZW50SW5mbyhFbGVtZW50Jik7CiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlwZXNBbmREYXRhRm9yQXR0
YWNobWVudChFbGVtZW50JiwgVmVjdG9yPFN0cmluZz4mIG91dFR5cGVzLCBWZWN0b3I8UmVmUHRy
PFNoYXJlZEJ1ZmZlcj4+JiBvdXREYXRhKTsKICNlbmRpZgpAQCAtNjE5LDYgKzYyMSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBub3RpZnlDbGllbnRPZkF0dGFjaG1lbnRVcGRhdGVzKCk7CiAjZW5k
aWYKIAorICAgIFN0cmluZyBwbGF0Zm9ybUNvbnRlbnRUeXBlRm9yQmxvYlR5cGUoY29uc3QgU3Ry
aW5nJiB0eXBlKSBjb25zdDsKKwogICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbkZvckN1dChjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAg
ICBEb2N1bWVudCYgbV9kb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvY29jb2EvRWRpdG9yQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Vk
aXRvckNvY29hLm1tCmluZGV4IDE0YjM1YzI4OGIzNmM2ZjBiY2RmMzAxZjk2NDljOGY5YmY1ZjBl
NTYuLmViNWZhZGJmZTJlMTJlYjdjMWFmYTA3ZWM2ZDMzMDc0NzlhYzNjNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQpAQCAtNTUsNiArNTUsNyBAQAog
I2ltcG9ydCAiUmVuZGVyU3R5bGUuaCIKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0ICJU
ZXh0LmgiCisjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldlYkNvbnRlbnRSZWFk
ZXIuaCIKICNpbXBvcnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0F0dHJp
YnV0ZWRTdHJpbmdTUEkuaD4KQEAgLTI1Nyw0ICsyNTgsMTIgQEAgdm9pZCBFZGl0b3I6OnRha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpCiAjZW5kaWYKIH0KIAorU3RyaW5nIEVkaXRvcjo6cGxh
dGZvcm1Db250ZW50VHlwZUZvckJsb2JUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKK3sK
KyAgICBhdXRvIHV0aVR5cGUgPSBVVElGcm9tTUlNRVR5cGUodHlwZSk7CisgICAgaWYgKCF1dGlU
eXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHV0aVR5cGU7CisgICAgcmV0dXJuIHR5cGU7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKaW5kZXggYjJiY2RhZGMyNTlhODY2MDFj
NmEyOWViNjgwMWM2MmU1M2FhNjNlZS4uN2FhOGVlNTg2NWRjNGY3Yjk1NDFiOWZhNDA5YmM3NmQx
NzZlODU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ2xpZW50LmgKQEAgLTM3LDcgKzM3LDEwIEBAIGNs
YXNzIERhdGFUcmFuc2ZlcjsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIElt
YWdlOworCisjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIHN0cnVjdCBQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOworI2VuZGlmCiAKIGNsYXNzIERyYWdDbGllbnQgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRl
eCBkNmI0MTU1OTg0NjAxODc4MGJhMWZjMTZhMTNhY2I2MTM2MmYyMDM5Li5iYTIwMDhlOTA0OTRh
OTY3NmRmZjc5MzA1M2NjNzZjOTk0OTM2MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcApAQCAtMTAzNiw3ICsxMDM2LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3Rh
cnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24K
ICAgICAgICAgQVNTRVJUKCFpbWFnZS0+ZmlsZW5hbWVFeHRlbnNpb24oKS5pc0VtcHR5KCkpOwog
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICAgICAgYXV0byBhdHRhY2htZW50
SW5mbyA9IHByb21pc2VkQXR0YWNobWVudEluZm8oc3JjLCBlbGVtZW50KTsKKyAgICAgICAgYXV0
byBhdHRhY2htZW50SW5mbyA9IHNyYy5lZGl0b3IoKS5wcm9taXNlZEF0dGFjaG1lbnRJbmZvKGVs
ZW1lbnQpOwogI2Vsc2UKICAgICAgICAgUHJvbWlzZWRBdHRhY2htZW50SW5mbyBhdHRhY2htZW50
SW5mbzsKICNlbmRpZgpAQCAtMTEzMiw5ICsxMTMyLDkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6
c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRp
b24KIAogICAgICAgICBQcm9taXNlZEF0dGFjaG1lbnRJbmZvIHByb21pc2VkQXR0YWNobWVudDsK
ICAgICAgICAgaWYgKGhhc0RhdGEgPT0gSGFzTm9uRGVmYXVsdFBhc3RlYm9hcmREYXRhOjpObykg
ewotICAgICAgICAgICAgcHJvbWlzZWRBdHRhY2htZW50ID0gcHJvbWlzZWRBdHRhY2htZW50SW5m
byhzcmMsIGF0dGFjaG1lbnQpOwotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgYXV0
byYgZWRpdG9yID0gc3JjLmVkaXRvcigpOworICAgICAgICAgICAgcHJvbWlzZWRBdHRhY2htZW50
ID0gZWRpdG9yLnByb21pc2VkQXR0YWNobWVudEluZm8oYXR0YWNobWVudCk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgICAgICAgICBpZiAoIXByb21pc2VkQXR0YWNobWVudCAmJiBlZGl0b3Iu
Y2xpZW50KCkpIHsKICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGlmIG5vIGZpbGUgVVJM
IGlzIHNwZWNpZmllZCwgY2FsbCBvdXQgdG8gdGhlIGluamVjdGVkIGJ1bmRsZSB0byBwb3B1bGF0
ZSB0aGUgcGFzdGVib2FyZCB3aXRoIGRhdGEuCiAgICAgICAgICAgICAgICAgZWRpdG9yLndpbGxX
cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChjcmVhdGVMaXZlUmFuZ2Uoc3JjLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkpLmdldCgpKTsKQEAgLTE0NzQsNDYgKzE0
NzQsNiBAQCBib29sIERyYWdDb250cm9sbGVyOjpzaG91bGRVc2VDYWNoZWRJbWFnZUZvckRyYWdJ
bWFnZShjb25zdCBJbWFnZSYgaW1hZ2UpIGNvbnN0CiAjZW5kaWYKIH0KIAotI2lmICFQTEFURk9S
TShDT0NPQSkKLQotU3RyaW5nIERyYWdDb250cm9sbGVyOjpwbGF0Zm9ybUNvbnRlbnRUeXBlRm9y
QmxvYlR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdAotewotICAgIHJldHVybiB0eXBlOwot
fQotCi0jZW5kaWYKLQotI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0KLVByb21pc2Vk
QXR0YWNobWVudEluZm8gRHJhZ0NvbnRyb2xsZXI6OnByb21pc2VkQXR0YWNobWVudEluZm8oRnJh
bWUmIGZyYW1lLCBFbGVtZW50JiBlbGVtZW50KQotewotICAgIGF1dG8qIGNsaWVudCA9IGZyYW1l
LmVkaXRvcigpLmNsaWVudCgpOwotICAgIGlmICghY2xpZW50IHx8ICFjbGllbnQtPnN1cHBvcnRz
Q2xpZW50U2lkZUF0dGFjaG1lbnREYXRhKCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBS
ZWZQdHI8SFRNTEF0dGFjaG1lbnRFbGVtZW50PiBhdHRhY2htZW50OwotICAgIGlmIChpczxIVE1M
QXR0YWNobWVudEVsZW1lbnQ+KGVsZW1lbnQpKQotICAgICAgICBhdHRhY2htZW50ID0gJmRvd25j
YXN0PEhUTUxBdHRhY2htZW50RWxlbWVudD4oZWxlbWVudCk7Ci0gICAgZWxzZSBpZiAoaXM8SFRN
TEltYWdlRWxlbWVudD4oZWxlbWVudCkpCi0gICAgICAgIGF0dGFjaG1lbnQgPSBkb3duY2FzdDxI
VE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KS5hdHRhY2htZW50RWxlbWVudCgpOwotCi0gICAgaWYg
KCFhdHRhY2htZW50KQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgVmVjdG9yPFN0cmluZz4g
YWRkaXRpb25hbFR5cGVzOwotICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4gYWRkaXRp
b25hbERhdGE7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZnJhbWUuZWRpdG9yKCkuZ2V0UGFz
dGVib2FyZFR5cGVzQW5kRGF0YUZvckF0dGFjaG1lbnQoZWxlbWVudCwgYWRkaXRpb25hbFR5cGVz
LCBhZGRpdGlvbmFsRGF0YSk7Ci0jZW5kaWYKLQotICAgIGlmIChhdXRvKiBmaWxlID0gYXR0YWNo
bWVudC0+ZmlsZSgpKQotICAgICAgICByZXR1cm4geyBmaWxlLT51cmwoKSwgcGxhdGZvcm1Db250
ZW50VHlwZUZvckJsb2JUeXBlKGZpbGUtPnR5cGUoKSksIGZpbGUtPm5hbWUoKSwgeyB9LCBXVEZN
b3ZlKGFkZGl0aW9uYWxUeXBlcyksIFdURk1vdmUoYWRkaXRpb25hbERhdGEpIH07Ci0KLSAgICBy
ZXR1cm4geyB7IH0sIHsgfSwgeyB9LCBhdHRhY2htZW50LT51bmlxdWVJZGVudGlmaWVyKCksIFdU
Rk1vdmUoYWRkaXRpb25hbFR5cGVzKSwgV1RGTW92ZShhZGRpdGlvbmFsRGF0YSkgfTsKLX0KLQot
I2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0KICNlbmRpZiAvLyBFTkFCTEUo
RFJBR19TVVBQT1JUKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmgKaW5kZXggZGU2ZGEzMTBmMTVjZGE2OWRmYzQ5YjIyMTUyYThkN2JiZmIz
ZWUyZS4uMWNmNjY1MmZkMThkMDkwMWUyYWUzMTE0NWU5NWVlZDRhMTVkYjM3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtMTM3LDE0ICsxMzcsOSBAQCBzdHJ1Y3QgUHJv
bWlzZWRBdHRhY2htZW50SW5mbzsKICAgICAgICAgYm9vbCB0cnlUb1VwZGF0ZURyb3BwZWRJbWFn
ZVBsYWNlaG9sZGVycyhjb25zdCBEcmFnRGF0YSYpOwogICAgICAgICB2b2lkIHJlbW92ZUFsbERy
b3BwZWRJbWFnZVBsYWNlaG9sZGVycygpOwogCi0gICAgICAgIFN0cmluZyBwbGF0Zm9ybUNvbnRl
bnRUeXBlRm9yQmxvYlR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdDsKLQogICAgICAgICB2
b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsKICAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiwgRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgbGFiZWwpOwogCi0jaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICAgICAg
UHJvbWlzZWRBdHRhY2htZW50SW5mbyBwcm9taXNlZEF0dGFjaG1lbnRJbmZvKEZyYW1lJiwgRWxl
bWVudCYpOwotI2VuZGlmCiAgICAgICAgIFBhZ2UmIG1fcGFnZTsKICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPERyYWdDbGllbnQ+IG1fY2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0RyYWdDb250cm9sbGVyTWFjLm1tCmluZGV4IDAzMzdkZDc0YjU5ZDlmNDU0NjFmMDYyMjZmOWZh
NTJkYzA4YTBiZDcuLjg1YmQ0OGFjYzIyNGQwZTc4NGIzMWMyODQ1YWQwNjg1N2JkODEwMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCkBAIC00Niw3
ICs0Niw2IEBACiAjaW1wb3J0ICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbXBvcnQgIlJhbmdl
LmgiCiAjaW1wb3J0ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW1wb3J0ICJVVElVdGls
aXRpZXMuaCIKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogI2ltcG9ydCA8TW9iaWxl
Q29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgpAQCAtOTIsMTQgKzkxLDYgQEAgY29u
c3QgSW50U2l6ZSYgRHJhZ0NvbnRyb2xsZXI6Om1heERyYWdJbWFnZVNpemUoKQogICAgIHJldHVy
biBtYXhEcmFnSW1hZ2VTaXplOwogfQogCi1TdHJpbmcgRHJhZ0NvbnRyb2xsZXI6OnBsYXRmb3Jt
Q29udGVudFR5cGVGb3JCbG9iVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0Ci17Ci0gICAg
YXV0byB1dGlUeXBlID0gVVRJRnJvbU1JTUVUeXBlKHR5cGUpOwotICAgIGlmICghdXRpVHlwZS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB1dGlUeXBlOwotICAgIHJldHVybiB0eXBlOwotfQot
CiB2b2lkIERyYWdDb250cm9sbGVyOjpjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCkKIHsKICNpZiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKaW5kZXggNzQ0NzMyNTg2
ZGViM2FkNDhmNjljOWZhZmM0MWViNjAxMWY4MjExYy4uOGFlYjIwNjgyODE1NmVhOTU5Y2E3MzQ0
NzkxYzAxY2JhOGM4Y2JkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaApAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tFbGVtZW50QWN0aW9uLmg+CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKQEAg
LTY3LDYgKzY4LDcgQEAKIC0gKHZvaWQpX2RvQWZ0ZXJSZXNldHRpbmdTaW5nbGVUYXBHZXN0dXJl
OihkaXNwYXRjaF9ibG9ja190KWFjdGlvbjsKIAogLSAoTlNEaWN0aW9uYXJ5ICopX3Byb3BlcnRp
ZXNPZkxheWVyV2l0aElEOih1bnNpZ25lZCBsb25nIGxvbmcpbGF5ZXJJRDsKKy0gKHZvaWQpX3Np
bXVsYXRlRWxlbWVudEFjdGlvbjooX1dLRWxlbWVudEFjdGlvblR5cGUpYWN0aW9uVHlwZSBhdExv
Y2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwogLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rp
b25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwogLSAodm9pZClfc2ltdWxhdGVUZXh0RW50
ZXJlZDooTlNTdHJpbmcgKil0ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggYTg0ZWQ5NmUzMDU3OThl
YzI1MGVjN2IxZGE0MGRhYjAwMzlkODJkNS4uMzYwYmRmYzExY2M1NGU5YWE1ZTViZDllMDFkODVi
ZTJjMmUwMWMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMjkzLDYgKzI5MywxMSBAQCAtIChDR1JlY3Qp
X2RyYWdDYXJldFJlY3QKICNlbmRpZgogfQogCistICh2b2lkKV9zaW11bGF0ZUVsZW1lbnRBY3Rp
b246KF9XS0VsZW1lbnRBY3Rpb25UeXBlKWFjdGlvblR5cGUgYXRMb2NhdGlvbjooQ0dQb2ludCls
b2NhdGlvbgoreworICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRWxlbWVudEFjdGlvbjphY3Rp
b25UeXBlIGF0TG9jYXRpb246bG9jYXRpb25dOworfQorCiAtICh2b2lkKV9zaW11bGF0ZUxvbmdQ
cmVzc0FjdGlvbkF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24KIHsKICAgICBbX2NvbnRlbnRW
aWV3IF9zaW11bGF0ZUxvbmdQcmVzc0FjdGlvbkF0TG9jYXRpb246bG9jYXRpb25dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDM0ZDk3NDFmNjUwMGYyOTkxMTQ5OTZhZjNk
MGE2MzI4ODhhMThiMzEuLjFkZGM2NGQ1ZDhjMTFjYThlM2Y1MjZmZmNhZmMyNDNlZjRjZWJhNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEwNiw2ICsxMDYsMTAgQEAg
dXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OwogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCiBzdHJ1Y3QgRHJhZ0l0ZW07CiAjZW5kaWYKKworI2lmIEVOQUJMRShBVFRBQ0hN
RU5UX0VMRU1FTlQpCitzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKKyNlbmRpZgogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUwOCw2ICs1MTIsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZEluc2VydEF0dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50JiwgY29uc3QgU3Ry
aW5nJiBzb3VyY2UpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBdHRhY2htZW50KEFQ
STo6QXR0YWNobWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRJbnZhbGlkYXRlRGF0YUZv
ckF0dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdyaXRl
UHJvbWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkKFdlYkNvcmU6OlByb21pc2VkQXR0YWNobWVu
dEluZm8mJikgeyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBOU0ZpbGVXcmFw
cGVyICphbGxvY0ZpbGVXcmFwcGVySW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBOU1NldCAqc2VyaWFsaXphYmxlRmlsZVdyYXBwZXJDbGFzc2VzKCkgY29u
c3QgeyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggNjgwYzU1Y2Y1MDljM2ZjN2U3NTUwODA3Y2RkNmQ5Yzk2M2U1MzcyMS4uNzJi
Zjc4NTAwOGUwMWRhNTkxMTVjNTkxYWFkNGVhMDYzNTFhZDAwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05NDgxLDYgKzk0ODEsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnRvdWNoQmFyTWVudUl0ZW1EYXRhUmVtb3ZlZChjb25zdCBUb3VjaEJhck1lbnVJ
dGVtRGF0YSYgdG91Y2gKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKK3ZvaWQg
V2ViUGFnZVByb3h5Ojp3cml0ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZChXZWJDb3Jl
OjpQcm9taXNlZEF0dGFjaG1lbnRJbmZvJiYgaW5mbykKK3sKKyAgICBwYWdlQ2xpZW50KCkud3Jp
dGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQoV1RGTW92ZShpbmZvKSk7Cit9CisKIFJl
ZlB0cjxBUEk6OkF0dGFjaG1lbnQ+IFdlYlBhZ2VQcm94eTo6YXR0YWNobWVudEZvcklkZW50aWZp
ZXIoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKSBjb25zdAogewogICAgIGlmIChpZGVudGlmaWVy
LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmE5
MGQzNTk5MGJjNDM2NWUwODIyZjhhNjNmMDAwZGY1NTFhYjQ5NS4uYTRmNmNjZDg0MzE2OTNlNzkw
MDlkZDI3NTE5Y2RkN2IwNGNkZmIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTE1Nyw2ICsxNTcsMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9taXNl
ZEF0dGFjaG1lbnRJbmZvLmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CkBAIC0yMjY1
LDYgKzIyNjksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlQXR0YWNobWVudChBUEk6
OkF0dGFjaG1lbnQmKTsKICAgICBSZWY8QVBJOjpBdHRhY2htZW50PiBlbnN1cmVBdHRhY2htZW50
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7CiAgICAgdm9pZCBpbnZhbGlkYXRlQWxsQXR0YWNo
bWVudHMoKTsKKworICAgIHZvaWQgd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQo
V2ViQ29yZTo6UHJvbWlzZWRBdHRhY2htZW50SW5mbyYmKTsKICNlbmRpZgogCiAgICAgdm9pZCBy
ZXBvcnRQYWdlTG9hZFJlc3VsdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggNzNmOTMyMTZiNGE0MWVjZmJhYjdiZTI1NDEyOWM4NWM3NzI4ZjE0MS4uMWQ3MDljYTg4
NGY1NDRmNTdlZDU3YmZmZmU1NTgyZDM0YzM0OTk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTU5LDYgKzU1OSw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkSW5zZXJ0QXR0YWNobWVudFdpdGhJZGVu
dGlmaWVyKFN0cmluZyBpZGVudGlmaWVyLCBTdHJpbmcgc291cmNlLCBib29sIGhhc0VuY2xvc2lu
Z0ltYWdlKQogICAgIERpZFJlbW92ZUF0dGFjaG1lbnRXaXRoSWRlbnRpZmllcihTdHJpbmcgaWRl
bnRpZmllcikKICAgICBTZXJpYWxpemVkQXR0YWNobWVudERhdGFGb3JJZGVudGlmaWVycyhWZWN0
b3I8U3RyaW5nPiBpZGVudGlmaWVycykgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZXJpYWxpemVkQXR0
YWNobWVudERhdGE+IHNlcmFsaXplZERhdGEpIFN5bmNocm9ub3VzCisgICAgV3JpdGVQcm9taXNl
ZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQoc3RydWN0IFdlYkNvcmU6OlByb21pc2VkQXR0YWNobWVu
dEluZm8gaW5mbykKICNlbmRpZgogCiAgICAgU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3Ry
aW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgU3RyaW5nIGNoYWxsZW5nZVN0cmluZywgVVJMIHVy
bCkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDdhOTM3N2FjMTgxMTU3NWE3MjRi
NjU1NmU3OTBjY2Q3NDhmMDI4YjguLmYzNjZmZDJlMzBiYWM0NWNlNTViOTM5M2Q0MTllM2IzZjZj
ODQ0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCkBAIC0yNTgsNiArMjU4LDEwIEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdLRHJh
d2luZ1ZpZXc+IGNyZWF0ZURyYXdpbmdWaWV3KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkVtYmVk
ZGVkVmlld0lEKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxF
TUVOVCkKKyAgICB2b2lkIHdyaXRlUHJvbWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkKFdlYkNv
cmU6OlByb21pc2VkQXR0YWNobWVudEluZm8mJikgZmluYWw7CisjZW5kaWYKKwogICAgIHZvaWQg
Y2FuY2VsUG9pbnRlcnNGb3JHZXN0dXJlUmVjb2duaXplcihVSUdlc3R1cmVSZWNvZ25pemVyKikg
b3ZlcnJpZGU7CiAgICAgV1RGOjpPcHRpb25hbDx1bnNpZ25lZD4gYWN0aXZlVG91Y2hJZGVudGlm
aWVyRm9yR2VzdHVyZVJlY29nbml6ZXIoVUlHZXN0dXJlUmVjb2duaXplciopIG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
aW5kZXggOTcxOTk2YzZiYTE3MjQ2NmNjNTRjNjliNGY1NjhlZjZjZjczYjNkMS4uNTViNjg5NDVl
YTAzYmE4MGFmZDU5ZDU1YjcwZWNmMDU1N2NjYjEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtOTUyLDYgKzk1MiwxNSBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1h
dGlvbihjb25zdCBJbnRlcmFjdGlvbgogICAgIFttX2NvbnRlbnRWaWV3IF9zaG93RGF0YURldGVj
dG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAor
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Ondy
aXRlUHJvbWlzZWRBdHRhY2htZW50VG9QYXN0ZWJvYXJkKFdlYkNvcmU6OlByb21pc2VkQXR0YWNo
bWVudEluZm8mJiBpbmZvKQoreworICAgIFttX2NvbnRlbnRWaWV3IF93cml0ZVByb21pc2VkQXR0
YWNobWVudFRvUGFzdGVib2FyZDpXVEZNb3ZlKGluZm8pXTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBkZGI5ZWIwMjRiZGIwMGNh
MjkyZGRkYjgwMGRjNDA0ZGQ5OTZmODBiLi5lNDA4ZjA0Y2JmYThlMjM1MTk4NmUxNGIwM2MwNDM1
MTQwMDg0MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0ICJXS1No
YXJlU2hlZXQuaCIKICNpbXBvcnQgIldLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaCIK
ICNpbXBvcnQgIldLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oIgorI2ltcG9ydCAiX1dL
RWxlbWVudEFjdGlvbi5oIgogI2ltcG9ydCAiX1dLRm9ybUlucHV0U2Vzc2lvbi5oIgogI2ltcG9y
dCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAg
LTU5OCwxMCArNTk5LDE1IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04o
REVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9yZW1v
dmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQorLSAodm9pZClfd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9h
cmQ6KFdlYkNvcmU6OlByb21pc2VkQXR0YWNobWVudEluZm8mJilpbmZvOworI2VuZGlmCisKIEBl
bmQKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS1Rlc3RpbmcpCiAKKy0gKHZvaWQpX3Np
bXVsYXRlRWxlbWVudEFjdGlvbjooX1dLRWxlbWVudEFjdGlvblR5cGUpYWN0aW9uVHlwZSBhdExv
Y2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwogLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rp
b25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwogLSAodm9pZClfc2ltdWxhdGVUZXh0RW50
ZXJlZDooTlNTdHJpbmcgKil0ZXh0OwogLSAodm9pZClzZWxlY3RGb3JtQWNjZXNzb3J5UGlja2Vy
Um93OihOU0ludGVnZXIpcm93SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0YWRiZjhhYWE5NWQ2
MGRlNWI3OTA4NGNlYjI5ODkyMmM2NDQ5NGRhLi5lMGE4MThiYmZjYzRiMjcwYWYwZDgzOTc1MWVi
YTUwZmQyYTE4NmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE0OSw2ICsxNDksMTAgQEAKICNpbXBv
cnQgPFVJS2l0L19VSUxvb2t1cEdlc3R1cmVSZWNvZ25pemVyLmg+CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCisjZW5k
aWYKKwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogI2ltcG9ydCAiV0tGb3JtQ29sb3JD
b250cm9sLmgiCiAjZW5kaWYKQEAgLTg1ODcsNiArODU5MSw2MSBAQCAtIChfVUlDdXJzb3JTdHls
ZSAqKWN1cnNvckludGVyYWN0aW9uOihfVUlDdXJzb3JJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9u
IHN0eWxlRgogCiAjZW5kaWYgLy8gSEFWRShVSV9DVVJTT1JfSU5URVJBQ1RJT04pCiAKKyNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorCitzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3Zp
ZGVyPiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Us
IGNvbnN0IFdlYkNvcmU6OlByb21pc2VkQXR0YWNobWVudEluZm8mIGluZm8pCit7CisgICAgYXV0
byBudW1iZXJPZkFkZGl0aW9uYWxUeXBlcyA9IGluZm8uYWRkaXRpb25hbFR5cGVzLnNpemUoKTsK
KyAgICBBU1NFUlQobnVtYmVyT2ZBZGRpdGlvbmFsVHlwZXMgPT0gaW5mby5hZGRpdGlvbmFsRGF0
YS5zaXplKCkpOworCisgICAgYXV0byBhdHRhY2htZW50ID0gcGFnZS5hdHRhY2htZW50Rm9ySWRl
bnRpZmllcihpbmZvLmF0dGFjaG1lbnRJZGVudGlmaWVyKTsKKyAgICBpZiAoIWF0dGFjaG1lbnQp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGF0dGFjaG1l
bnQtPnV0aVR5cGUoKTsKKyAgICBpZiAoIVt1dGlUeXBlIGxlbmd0aF0pCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBhdXRvIGZpbGVXcmFwcGVyID0gcmV0YWluUHRyKGF0dGFjaG1lbnQtPmZp
bGVXcmFwcGVyKCkpOworICAgIGlmICghZmlsZVdyYXBwZXIpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBhdXRvIGl0ZW0gPSBhZG9wdE5TKFtbTlNJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBbaXRlbSBzZXRQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZTpVSVByZWZlcnJlZFBy
ZXNlbnRhdGlvblN0eWxlQXR0YWNobWVudF07CisKKyAgICBOU1N0cmluZyAqZmlsZU5hbWUgPSBh
dHRhY2htZW50LT5maWxlTmFtZSgpOworICAgIGlmIChbZmlsZU5hbWUgbGVuZ3RoXSkKKyAgICAg
ICAgW2l0ZW0gc2V0U3VnZ2VzdGVkTmFtZTpmaWxlTmFtZV07CisKKyAgICBpZiAobnVtYmVyT2ZB
ZGRpdGlvbmFsVHlwZXMgPT0gaW5mby5hZGRpdGlvbmFsRGF0YS5zaXplKCkgJiYgbnVtYmVyT2ZB
ZGRpdGlvbmFsVHlwZXMpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8
IG51bWJlck9mQWRkaXRpb25hbFR5cGVzOyArK2luZGV4KSB7CisgICAgICAgICAgICBhdXRvIG5z
RGF0YSA9IGluZm8uYWRkaXRpb25hbERhdGFbaW5kZXhdLT5jcmVhdGVOU0RhdGEoKTsKKyAgICAg
ICAgICAgIFtpdGVtIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6
aW5mby5hZGRpdGlvbmFsVHlwZXNbaW5kZXhdIHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXBy
ZXNlbnRhdGlvblZpc2liaWxpdHlBbGwgbG9hZEhhbmRsZXI6W25zRGF0YV0odm9pZCAoXmNvbXBs
ZXRpb25IYW5kbGVyKShOU0RhdGEgKiwgTlNFcnJvciAqKSkgLT4gTlNQcm9ncmVzcyAqIHsKKyAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuc0RhdGEuZ2V0KCksIG5pbCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgICAgIH1dOworICAgICAgICB9CisgICAg
fQorCisgICAgW2l0ZW0gcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmll
cjp1dGlUeXBlIHZpc2liaWxpdHk6TlNJdGVtUHJvdmlkZXJSZXByZXNlbnRhdGlvblZpc2liaWxp
dHlBbGwgbG9hZEhhbmRsZXI6W2ZpbGVXcmFwcGVyXSh2b2lkICheY29tcGxldGlvbkhhbmRsZXIp
KE5TRGF0YSAqLCBOU0Vycm9yICopKSAtPiBOU1Byb2dyZXNzICogeworICAgICAgICBpZiAoYXV0
byBuc0RhdGEgPSByZXRhaW5QdHIoW2ZpbGVXcmFwcGVyIHNlcmlhbGl6ZWRSZXByZXNlbnRhdGlv
bl0pKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnNEYXRhLmdldCgpLCBuaWwpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuaWwsIFtOU0Vycm9y
IGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlcklu
Zm86bmlsXSk7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfV07CisKKyAgICByZXR1cm4gaXRl
bTsKK30KKworLSAodm9pZClfd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQ6KFdl
YkNvcmU6OlByb21pc2VkQXR0YWNobWVudEluZm8mJilpbmZvCit7CisgICAgaWYgKGF1dG8gaXRl
bSA9IGNyZWF0ZUl0ZW1Qcm92aWRlcigqX3BhZ2UsIFdURk1vdmUoaW5mbykpKQorICAgICAgICBV
SVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbVByb3ZpZGVycyA9IEBbIGl0ZW0uZ2V0
KCkgXTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdLQ29udGVudFZpZXcgKFdLVGVzdGluZykKQEAgLTg2MjksNiAr
ODY4OCwxNiBAQCAtICh2b2lkKV9zaW11bGF0ZVRleHRFbnRlcmVkOihOU1N0cmluZyAqKXRleHQK
ICNlbmRpZgogfQogCistICh2b2lkKV9zaW11bGF0ZUVsZW1lbnRBY3Rpb246KF9XS0VsZW1lbnRB
Y3Rpb25UeXBlKWFjdGlvblR5cGUgYXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbgoreworICAg
IFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKKyAgICBbc2Vs
ZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbYWN0aW9uVHlwZSwgcHJvdGVjdGVk
U2VsZl0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mbykgewor
ICAgICAgICBfV0tFbGVtZW50QWN0aW9uICphY3Rpb24gPSBbX1dLRWxlbWVudEFjdGlvbiBfZWxl
bWVudEFjdGlvbldpdGhUeXBlOmFjdGlvblR5cGUgYXNzaXN0YW50OnByb3RlY3RlZFNlbGYtPl9h
Y3Rpb25TaGVldEFzc2lzdGFudC5nZXQoKV07CisgICAgICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICplbGVtZW50SW5mbyA9IFtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhY3RpdmF0ZWRFbGVt
ZW50SW5mb1dpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvIHVzZXJJbmZv
Om5pbF07CisgICAgICAgIFthY3Rpb24gcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOmVsZW1lbnRJ
bmZvXTsKKyAgICB9IGZvclJlcXVlc3Q6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQobG9jYXRpb24pKV07Cit9CisKIC0gKHZvaWQp
X3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbgogewog
ICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggZWY0ZDI1N2FkM2EwZjAwNmI3ZmIwNzY0ODE4ZDI2OTJiYTA4OWZjYS4uMGE4Y2Q2ZDUzMjE3
MDRjYjM1OTA5ZTdiZThkM2IxMjIxZmEyMzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEzOCw2ICsxMzgsMTAgQEAK
ICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1Rl
eHRTdHJlYW0uaD4KIAorI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisjaW1wb3J0IDxX
ZWJDb3JlL1Byb21pc2VkQXR0YWNobWVudEluZm8uaD4KKyNlbmRpZgorCiAjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBXZWJQYWdlOjoiIGZtdCwgdGhp
cywgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChj
aGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFdlYlBhZ2U6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJH
U19fKQogCkBAIC0yOTc2LDkgKzI5ODAsMTIgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtQWN0aW9u
T25FbGVtZW50KHVpbnQzMl90IGFjdGlvbikKICAgICAgICAgICAgICAgICB0aXRsZSA9IHN0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh0aXRsZSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBtX2ludGVyYWN0aW9uTm9kZS0+ZG9jdW1lbnQoKS5lZGl0b3IoKS53cml0ZUltYWdl
VG9QYXN0ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgZWxlbWVu
dCwgdXJsLCB0aXRsZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5pc0xpbmsoKSkgewor
ICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuaXNMaW5rKCkpCiAgICAgICAgICAgICBtX2ludGVy
YWN0aW9uTm9kZS0+ZG9jdW1lbnQoKS5lZGl0b3IoKS5jb3B5VVJMKGVsZW1lbnQuZG9jdW1lbnQo
KS5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoZWxlbWVudC5h
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6aHJlZkF0dHIpKSksIGVs
ZW1lbnQudGV4dENvbnRlbnQoKSk7Ci0gICAgICAgIH0KKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9F
TEVNRU5UKQorICAgICAgICBlbHNlIGlmIChhdXRvIGF0dGFjaG1lbnRJbmZvID0gZWxlbWVudC5k
b2N1bWVudCgpLmVkaXRvcigpLnByb21pc2VkQXR0YWNobWVudEluZm8oZWxlbWVudCkpCisgICAg
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldyaXRlUHJvbWlzZWRBdHRhY2ht
ZW50VG9QYXN0ZWJvYXJkKFdURk1vdmUoYXR0YWNobWVudEluZm8pKSk7CisjZW5kaWYKICAgICB9
IGVsc2UgaWYgKHN0YXRpY19jYXN0PFNoZWV0QWN0aW9uPihhY3Rpb24pID09IFNoZWV0QWN0aW9u
OjpTYXZlSW1hZ2UpIHsKICAgICAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4oKmVsZW1lbnQucmVu
ZGVyZXIoKSkpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWQ3NTZhZTEwYWQ1YzFkODRjNDA1YzczNjkyMTE3
MjY0MzJhOTNmOC4uMDkwYTE3ODU2MDgyM2FlYjRkYjg2YTc3ZWFiODQ1YWUzYzBlOGM2MSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTA1LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdICJDb3B5IiBjb250ZXh0IG1lbnUgYWN0aW9uIGZvciBhdHRhY2ht
ZW50IGVsZW1lbnQgZG9lcyBub3Qgd29yayBpbiBNYWlsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4MDQzMTEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG5ldyBpT1MgQVBJIHRlc3QgdGhhdCBzaW11bGF0ZXMgdGhlIGNvbnRleHQgbWVu
dSBhY3Rpb24gdG8gImNvcHkiIG9uIGFuIGF0dGFjaG1lbnQgZWxlbWVudC4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW06CisK
IDIwMjAtMDUtMTEgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRmFpbCBuYXZpZ2F0aW9ucyB0byBub24gYXBwLWJvdW5kIGRvbWFpbnMgYWZ0ZXIg
dXNlIG9mIGFwcC1ib3VuZCBBUElzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQppbmRleCA0MzNhOTUyZDk1
NGM2ZmRiNGFkYzg0NmVjMTVjZmE5ZGQzZDdhOTM2Li4xZGY4Mjk1NzIwMzIxNmVlNmZhNjRkY2Vm
NDcxNTI1OWZmYWIyMWY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KQEAgLTIxNTMsNiArMjE1Myw0
OCBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkSW1hZ2VXaXRoTm9u
SW1hZ2VGaWxlRXh0ZW5zaW9uKQogICAgIH0pOwogfQogCitURVNUKFdLQXR0YWNobWVudFRlc3Rz
SU9TLCBDb3B5QXR0YWNobWVudFVzaW5nRWxlbWVudEFjdGlvbikKK3sKKyAgICBVSVBhc3RlYm9h
cmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbXMgPSBAWyBdOworCisgICAgYXV0byB3ZWJWaWV3ID0g
d2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOworICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJs
ZTpZRVNdOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5
PjwvYm9keT48c2NyaXB0PmRvY3VtZW50LmJvZHkuZm9jdXMoKTs8L3NjcmlwdD4iXTsKKworICAg
IGF1dG8gZG9jdW1lbnQgPSBhZG9wdE5TKFtbTlNGaWxlV3JhcHBlciBhbGxvY10gaW5pdFJlZ3Vs
YXJGaWxlV2l0aENvbnRlbnRzOnRlc3RQREZEYXRhKCldKTsKKyAgICBbZG9jdW1lbnQgc2V0UHJl
ZmVycmVkRmlsZW5hbWU6QCJoZWxsby5wZGYiXTsKKworICAgIGF1dG8gYXR0YWNobWVudCA9IHJl
dGFpblB0cihbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3Jh
cHBlcjpkb2N1bWVudC5nZXQoKSBjb250ZW50VHlwZTooX19icmlkZ2UgTlNTdHJpbmcgKilrVVRU
eXBlUERGXSk7CisgICAgTlNTdHJpbmcgKmlkZW50aWZpZXIgPSBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXR0YWNobWVudCcp
LnVuaXF1ZUlkZW50aWZpZXIiXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoaWRlbnRpZmllciwgW2F0
dGFjaG1lbnQgdW5pcXVlSWRlbnRpZmllcl0pOworCisgICAgLy8gRW5zdXJlIHRoYXQgd2UgY2Fu
IGhpdC10ZXN0IHRvIHRoZSBhdHRhY2htZW50IGVsZW1lbnQgd2hlbiBzaW11bGF0aW5nIGEgY29u
dGV4dCBtZW51IGVsZW1lbnQgYnkgYWRkaW5nIGEgY2xpY2sgZXZlbnQgaGFuZGxlci4KKyAgICBb
d2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignYXR0YWNobWVudCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4geyB9KSJd
OworICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpOT107CisKKyAgICBbd2ViVmlldyBfc2ltdWxh
dGVFbGVtZW50QWN0aW9uOl9XS0VsZW1lbnRBY3Rpb25UeXBlQ29weSBhdExvY2F0aW9uOkNHUG9p
bnRNYWtlKDIwLCAyMCldOworCisgICAgLy8gSXQgdGFrZXMgdHdvIElQQyByb3VuZCB0cmlwcyBi
ZXR3ZWVuIHRoZSBVSSBwcm9jZXNzIGFuZCB3ZWIgcHJvY2VzcyB1bnRpbCB0aGUgcGFzdGVib2Fy
ZCBkYXRhIGlzIHdyaXR0ZW4sCisgICAgLy8gc2luY2Ugd2UgZmlyc3QgbmVlZCB0byBoaXQtdGVz
dCB0byBkaXNjb3ZlciB0aGUgYWN0aXZhdGVkIGVsZW1lbnQsIGFuZCB0aGVuIHVzZSB0aGUgYWN0
aXZhdGVkIGVsZW1lbnQgdG8KKyAgICAvLyBzaW11bGF0ZSB0aGUgImNvcHkiIGFjdGlvbi4KKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgW3dlYlZpZXcg
d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgTlNBcnJheTxOU0l0ZW1Qcm92
aWRlciAqPiAqaXRlbVByb3ZpZGVycyA9IFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZC5p
dGVtUHJvdmlkZXJzOworICAgIEVYUEVDVF9FUSgxVSwgaXRlbVByb3ZpZGVycy5jb3VudCk7CisK
KyAgICBOU0l0ZW1Qcm92aWRlciAqaXRlbVByb3ZpZGVyID0gaXRlbVByb3ZpZGVycy5maXJzdE9i
amVjdDsKKyAgICBFWFBFQ1RfRVEoVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1l
bnQsIGl0ZW1Qcm92aWRlci5wcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJoZWxsby5wZGYiLCBpdGVtUHJvdmlkZXIuc3VnZ2VzdGVkTmFtZSk7CisKKyAg
ICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFtpdGVtUHJvdmlkZXIgbG9hZERhdGFS
ZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5
cGVQREYgY29tcGxldGlvbkhhbmRsZXI6XihOU0RhdGEgKmRhdGEsIE5TRXJyb3IgKikgeworICAg
ICAgICBFWFBFQ1RfVFJVRShbW2RvY3VtZW50IHNlcmlhbGl6ZWRSZXByZXNlbnRhdGlvbl0gaXNF
cXVhbFRvRGF0YTpkYXRhXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKICNpZiBIQVZFKFBFTkNJTEtJVCkK
IHN0YXRpYyBCT09MIGZvckVhY2hWaWV3SW5IaWVyYXJjaHkoVUlWaWV3ICp2aWV3LCB2b2lkKF5t
YXBGdW5jdGlvbikoVUlWaWV3ICpzdWJ2aWV3LCBCT09MICpzdG9wKSkKIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>