<?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>235963</bug_id>
          
          <creation_ts>2022-02-01 09:53:51 -0800</creation_ts>
          <short_desc>Mitigate hangs underneath -requestAutocorrectionContextWithCompletionHandler: when focusing text fields</short_desc>
          <delta_ts>2022-02-01 16:25:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>megan_gardner</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>1836028</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-01 09:53:51 -0800</bug_when>
    <thetext>rdar://70152487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836081</commentid>
    <comment_count>1</comment_count>
      <attachid>450552</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-01 11:23:21 -0800</bug_when>
    <thetext>Created attachment 450552
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836203</commentid>
    <comment_count>2</comment_count>
      <attachid>450552</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-01 16:10:39 -0800</bug_when>
    <thetext>Comment on attachment 450552
For EWS

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836216</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-01 16:25:06 -0800</bug_when>
    <thetext>Committed r288925 (246659@main): &lt;https://commits.webkit.org/246659@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450552.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450552</attachid>
            <date>2022-02-01 11:23:21 -0800</date>
            <delta_ts>2022-02-01 16:25:08 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-235963-20220201112321.patch</filename>
            <type>text/plain</type>
            <size>34564</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU5NzRkMTNkYjU5MDY2Njgw
ZWNmNWYxYzZhZjY4MDYzNDQ4ZDhhMzkuLjQ4ZTQ0MTFiZGQxMjQ1ODY4NDgzYTQxZTY2M2Q0MmVj
ODA3NGZlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA0IEBACisyMDIyLTAyLTAxICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1pdGlnYXRlIGhhbmdz
IHVuZGVybmVhdGggLXJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHRXaXRoQ29tcGxldGlvbkhh
bmRsZXI6IHdoZW4gZm9jdXNpbmcgdGV4dCBmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTk2MworICAgICAgICByZGFyOi8vNzAxNTI0ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciBm
b2N1c2luZyBhbiBpbnB1dCBmaWVsZCwgVUlLaXQgYXR0ZW1wdHMgdG8gaW52b2tlIGAtcmVxdWVz
dEF1dG9jb3JyZWN0aW9uQ29udGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcjpgIG9uCisgICAgICAg
IFdLQ29udGVudFZpZXcgdXAgdG8gNSB0aW1lcywgYmFjayB0byBiYWNrLiBJbiBXZWJLaXQsIHdl
IGhhbmRsZSB0aGlzIGxpa2Ugc3luYyBJUEMgYnkgd2FpdGluZyB1cCB0byAxIHNlY29uZCBmb3IK
KyAgICAgICAgYSByZXNwb25zZSAodGhpcyBpcyBkb25lIGJlY2F1c2UgVUlLaXQgd291bGQgb3Ro
ZXJ3aXNlIGxvY2sgdGhlIG1haW4gdGhyZWFkIGFsdG9nZXRoZXIgYWZ0ZXIgY2FsbGluZyB0aGlz
CisgICAgICAgIG1ldGhvZCwgd2hpY2ggcmVzdWx0cyBpbiBhIHBlcm1hbmVudCBkZWFkbG9jayBp
biB0aGUgVUkgcHJvY2VzcykuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHdlYiBw
cm9jZXNzIGlzIGFsc28gc2VuZGluZyBhIHN5bmMgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyBh
dCB0aGUgc2FtZSB0aW1lIChmb3IKKyAgICAgICAgaW5zdGFuY2UsIHdoZW4gc3Bpbm5pbmcgdXAg
dGhlIEdQVSBvciB3ZWIgYXV0aG4gcHJvY2VzcyksIHRoaXMgcmVzdWx0cyBpbiBiYWNrLXRvLWJh
Y2sgMSBzZWNvbmQgZGVhZGxvY2tzLCBmb3IgYQorICAgICAgICB0b3RhbCBVSSBwcm9jZXNzIGhh
bmcgdGltZSBvZiB1cCB0byA1IHNlY29uZHMgKGFzIG9ic2VydmVkIG9uIGFuIGlQYWQgd2l0aCBo
YXJkd2FyZSBrZXlib2FyZCBhdHRhY2hlZCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhdHRlbXB0
cyB0byByZWR1Y2UgaGFuZ3MgaW4gYC1bV0tDb250ZW50VmlldyByZXF1ZXN0QXV0b2NvcnJlY3Rp
b25Db250ZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyOl1gIGJ5CisgICAgICAgIGludHJvZHVjaW5n
IGEgbWVjaGFuaXNtIHRoYXQgdGhyb3R0bGVzIHJlZHVuZGFudCBgLXJlcXVlc3RBdXRvY29ycmVj
dGlvbkNvbnRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6YCByZXF1ZXN0cworICAgICAgICBkdXJp
bmcgdGhlIHNhbWUgcnVubG9vcCBieSBpbW1lZGlhdGVseSByZXR1cm5pbmcgdGhlIGxhc3QgcmVj
ZWl2ZWQgYXV0b2NvcnJlY3Rpb24gY29udGV4dCBpbnN0ZWFkIG9mIHJlcGVhdGVkbHkKKyAgICAg
ICAgd2FpdGluZyBvbiBzeW5jaHJvbm91cyBJUEMgbWVzc2FnZSByZXNwb25zZXMuIENvbWJpbmVk
IHdpdGggYW5vdGhlciBtZWNoYW5pc20gdGhhdCBwcmVlbXB0aXZlbHkgc2VuZHMgYW4KKyAgICAg
ICAgYXV0b2NvcnJlY3Rpb24gY29udGV4dCB3aGVuIGFuIGlucHV0IHZpZXcgaXMgc2hvd24sIHRo
aXMgbWVhbnMgdGhhdCB3ZSB3aWxsIChtb3N0bHkpIG5vIGxvbmdlciBoYW5nIHdoZW4KKyAgICAg
ICAgZm9jdXNpbmcgYW4gaW5wdXQgZmllbGQsIG9yIGhhbmcgZm9yIGF0IG1vc3QgMSBzZWNvbmQg
KGluc3RlYWQgb2YgNSkgaW4gdGhlIGNhc2Ugd2hlcmUgd2UgaGFwcGVuIHRvIGRlYWRsb2NrLgor
CisgICAgICAgIFNlZSBjb21tZW50cyBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
IFRlc3Q6IEF1dG9jb3JyZWN0aW9uVGVzdHMuQXV0b2NvcnJlY3Rpb25Db250ZXh0QmVmb3JlQW5k
QWZ0ZXJFZGl0aW5nCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oOgorCisgICAgICAgIEFkZCBhIG5ldyBmbGFnLCBgX2F1dG9jb3JyZWN0aW9uQ29u
dGV4dE5lZWRzVXBkYXRlYCwgdGhhdCB0cmFja3Mgd2hldGhlciBvciBub3QgaXQncyBzYWZlIHRv
IHJlcGx5IHRvCisgICAgICAgIGAtcmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dFdpdGhDb21w
bGV0aW9uSGFuZGxlcjpgIHVzaW5nIHRoZSBsYXN0LXJlY2VpdmVkIFdlYkF1dG9jb3JyZWN0aW9u
Q29udGV4dCBkYXRhIHRoYXQKKyAgICAgICAgd2FzIGNhY2hlZCBpbiB0aGUgVUkgcHJvY2Vzcy4K
KworICAgICAgICBUaGlzIGZsYWcgaXMgdW5zZXQgYWZ0ZXIgcmVjZWl2aW5nIGEgV2ViQXV0b2Nv
cnJlY3Rpb25Db250ZXh0LCBhbmQgc2V0IHdoZW4gYW55IGFzeW5jaHJvbm91cyB0ZXh0IGlucHV0
IG1ldGhvZHMKKyAgICAgICAgb24gV0tDb250ZW50VmlldyBoYXZlIGJlZW4gaW52b2tlZCwgd2hp
Y2ggbWF5IGNhdXNlIHRoZSBhdXRvY29ycmVjdGlvbiBjb250ZXh0IHRvIGNoYW5nZS4gVGhpcyBp
cyBpbXBvcnRhbnQgaW4KKyAgICAgICAgb3JkZXIgdG8gcHJlc2VydmUgdGhlIGV4aXN0aW5nIGJl
aGF2aW9yIHRoYXQgYSBjYWxsIHRvIGAtcmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dFdpdGhD
b21wbGV0aW9uSGFuZGxlcjpgCisgICAgICAgIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcgYSBt
ZXRob2QgbGlrZSBgLWluc2VydFRleHQ6YCBvciBgLXNlbGVjdEFsbDpgIHdpbGwgbm90IGltbWVk
aWF0ZWx5IHJldHVybiB3aXRoIGEgc3RhbGUKKyAgICAgICAgYXV0b2NvcnJlY3Rpb24gY29udGV4
dC4KKworICAgICAgICBUaGUgZmxhZyBpcyBhbHNvIHVuc2V0IGFmdGVyIHRoZSBjdXJyZW50IHJ1
bmxvb3AgZmluaXNoZXMsIGVuc3VyaW5nIHRoYXQgdGhpcyBoYWNrIGlzIGxpbWl0ZWQgdG8gYmFj
ay10by1iYWNrCisgICAgICAgIGF1dG9jb3JyZWN0aW9uIGNvbnRleHRzIHdoZXJlIGVkaXRpbmcg
YWN0aW9ucyBhcmUgbm90IGRpc3BhdGNoZWQgaW4gYmV0d2VlbiBlYWNoIHJlcXVlc3QuIEluIHRo
ZSBmdXR1cmUsIHdlIG1heQorICAgICAgICBiZSBhYmxlIHRvIG1ha2UgdGhpcyBjYWNoaW5nIHBv
bGljeSBtb3JlIGFnZ3Jlc3NpdmUsIGJ5IHJlbW92aW5nIHRoaXMgaW52YWxpZGF0aW9uLCB3aGlj
aCB3b3VsZCBhbGxvdyB1cyB0byBrZWVwCisgICAgICAgIHVzaW5nIHRoZSBzYW1lIGF1dG9jb3Jy
ZWN0aW9uIGNvbnRleHQgZGF0YSB1bnRpbCB3ZSBlaXRoZXIgbGVhcm4gYWJvdXQgYSBwcm9ncmFt
bWF0aWMgc2VsZWN0aW9uIGNoYW5nZSBpbiB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcywgb3IgdGhl
IFdlYktpdCBjbGllbnQgKGluIHRoZSBVSSBwcm9jZXNzKSBoYXMgdHJpZ2dlcmVkIGVkaXRpbmcg
b3Igc2VsZWN0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFjdGlvbl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IHJlcGxhY2VUZXh0OndpdGhUZXh0Ol0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHNlbGVjdFdvcmRCYWNrd2FyZF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHBhc3RlRm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcGFzdGVB
c1F1b3RhdGlvbkZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0
Rm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZWxlY3RBbGxGb3JXZWJW
aWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNoYW5nZVNlbGVjdGlvbldpdGhHZXN0
dXJlQXQ6d2l0aEdlc3R1cmU6d2l0aFN0YXRlOndpdGhGbGFnczpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBjaGFuZ2VTZWxlY3Rpb25XaXRoVG91Y2hBdDp3aXRoU2VsZWN0aW9uVG91Y2g6
YmFzZUlzU3RhcnQ6d2l0aEZsYWdzOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNoYW5n
ZVNlbGVjdGlvbldpdGhUb3VjaGVzRnJvbTp0bzp3aXRoR2VzdHVyZTp3aXRoU3RhdGU6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0UG9zaXRpb25BdFBvaW50OmNvbXBsZXRpb25I
YW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zZWxlY3RQb3NpdGlvbkF0UG9p
bnQ6c3RheWluZ1dpdGhpbkZvY3VzZWRFbGVtZW50OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdFBvc2l0aW9uQXRCb3VuZGFyeTppbkRpcmVjdGlv
bjpmcm9tUG9pbnQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgbW92ZVNlbGVjdGlvbkF0Qm91bmRhcnk6aW5EaXJlY3Rpb246Y29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eTph
dFBvaW50OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGJl
Z2luU2VsZWN0aW9uSW5EaXJlY3Rpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgdXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50OmNvbXBsZXRpb25I
YW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHVwZGF0ZVNlbGVjdGlvbldpdGhF
eHRlbnRQb2ludDp3aXRoQm91bmRhcnk6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgcmVwbGFjZURpY3RhdGVkVGV4dDp3aXRoVGV4dDpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyByZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0V2l0aENvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVBdXRvY29ycmVj
dGlvbkNvbnRleHQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYmVnaW5TZWxlY3Rpb25D
aGFuZ2VdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbnNlcnRUZXh0U3VnZ2VzdGlvbjpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2V0TWFya2VkVGV4dDpoaWdobGlnaHRzOnNl
bGVjdGVkUmFuZ2U6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW5zZXJ0VGV4dDpdKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbnNlcnRUZXh0OmFsdGVybmF0aXZlczpzdHlsZTpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZm9jdXNUZXh0SW5wdXRDb250ZXh0OnBsYWNl
Q2FyZXRBdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
d2lsbEJlZ2luVGV4dEludGVyYWN0aW9uSW5UZXh0SW5wdXRDb250ZXh0Ol0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJs
dXJQcmV2aW91c05vZGU6YWN0aXZpdHlTdGF0ZUNoYW5nZXM6dXNlck9iamVjdDpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERpZEJsdXJdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2VsZWN0aW9uQ2hhbmdlZF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RB
dXRvY29ycmVjdGlvbkNvbnRleHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0SXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpwcmVlbXB0aXZlbHlTZW5kQXV0b2NvcnJlY3Rpb25Db250ZXh0KToKKworICAg
ICAgICBQdWxsIG91dCBsb2dpYyB0aGF0IHByZWVtcHRpdmVseSBjb21wdXRlcyBhbmQgc2VuZHMg
V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0cyB0byB0aGUgVUkgcHJvY2VzcyAoaW4gYW50aWNpcGF0
aW9uCisgICAgICAgIG9mIHN5bmNocm9ub3VzIElQQykgaW50byBhbiBhcHByb3ByaWF0ZWx5LW5h
bWVkIGhlbHBlciBtZXRob2Q7IGFkZGl0aW9uYWxseSwgY2FsbCB0aGlzIG5ldyBoZWxwZXIgbWV0
aG9kIHdoZW4KKyAgICAgICAgdGhlIGtleWJvYXJkIGhhcyBiZWVuIHNob3duLCBmb2xsb3dpbmcg
ZWxlbWVudCBmb2N1cyBpbiB0aGUgVUkgcHJvY2Vzcy4KKworICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpoYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cHJlcGFyZVRvUnVuTW9kYWxKYXZhU2NyaXB0RGlhbG9nKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCk6IERlbGV0ZWQu
CisKKyAgICAgICAgRHJpdmUtYnk6IHJlbmFtZSB0aGlzIHRvIGBoYW5kbGVBdXRvY29ycmVjdGlv
bkNvbnRleHRSZXF1ZXN0YCBmb3IgY2xhcml0eSwgc2luY2UgdGhlIHB1cnBvc2Ugb2YgdGhpcyBt
ZXRob2QgaXMKKyAgICAgICAgdG8gc2VydmljZSBhIHJlcXVlc3QgZm9yIGF1dG9jb3JyZWN0aW9u
IGNvbnRleHQgdGhhdCB3YXMgc2VudCBieSB0aGUgVUkgcHJvY2Vzcy4KKwogMjAyMi0wMS0yNyAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICAiVW5y
ZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycu
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCmluZGV4IDAyMzM5ZTAxYjM3MTBmZDg0NGQ5MzU4OGFhYWEyODE2Mzc1ZWJi
OTIuLmFiNWU4NWM5Njg1MGM1OWU1YThjNzhlNmI4ZjE2YjdiYWMzOTg0NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKQEAgLTQ0NSw2ICs0NDUsNyBAQCB1c2luZyBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZp
ZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbgogICAgIEJPT0wg
X3RleHRJbnRlcmFjdGlvbkRpZENoYW5nZUZvY3VzZWRFbGVtZW50OwogICAgIEJPT0wgX3RyZWF0
QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0b3JTdGF0ZVVwZGF0ZTsKICAgICBib29sIF9p
c1dhaXRpbmdPblBvc2l0aW9uSW5mb3JtYXRpb247CisgICAgQk9PTCBfYXV0b2NvcnJlY3Rpb25D
b250ZXh0TmVlZHNVcGRhdGU7CiAKICAgICBXZWJDb3JlOjpQb2ludGVySUQgX2NvbW1pdFBvdGVu
dGlhbFRhcFBvaW50ZXJJZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNjZjOGE2NWE2ZTM2YmM0NDkz
NjIwZWNkNDUwNGVmZjYxMDQ5MTBhZC4uNmNkZDZhNjhmMTQ2Mzc1OTNmY2U4MDlmYWVlMzlhZDlm
MjkxZWFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDc5LDYgKzEwNzksOCBAQCAtICh2b2lkKXNl
dFVwSW50ZXJhY3Rpb24KICAgICBfdGV4dENoZWNraW5nQ29udHJvbGxlciA9IG1ha2VVbmlxdWU8
V2ViS2l0OjpUZXh0Q2hlY2tpbmdDb250cm9sbGVyPigqX3BhZ2UpOwogI2VuZGlmCiAKKyAgICBf
YXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CisKICAgICBfcGFnZS0+cHJv
Y2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKICAgICBfcGFnZS0+c2V0U2NyZWVuSXNC
ZWluZ0NhcHR1cmVkKFtbW3NlbGYgd2luZG93XSBzY3JlZW5dIGlzQ2FwdHVyZWRdKTsKIApAQCAt
MTExNCw2ICsxMTE2LDcgQEAgLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb24KICAgICBfYWRkaXRp
b25hbENvbnRleHRGb3JTdHJvbmdQYXNzd29yZEFzc2lzdGFuY2UgPSBuaWw7CiAgICAgX3dhaXRp
bmdGb3JFZGl0RHJhZ1NuYXBzaG90ID0gTk87CiAKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0
TmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgX2xhc3RBdXRvY29ycmVjdGlvbkNvbnRleHQgPSB7IH07
CiAKICAgICBfY2FuZGlkYXRlVmlld05lZWRzVXBkYXRlID0gTk87CkBAIC0zNjAxLDExICszNjA0
LDEzIEBAIC0gKEJPT0wpaXNSZXBsYWNlQWxsb3dlZAogCiAtICh2b2lkKXJlcGxhY2VUZXh0OihO
U1N0cmluZyAqKXRleHQgd2l0aFRleHQ6KE5TU3RyaW5nICopd29yZAogeworICAgIF9hdXRvY29y
cmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfcGFnZS0+cmVwbGFjZVNlbGVj
dGVkVGV4dCh0ZXh0LCB3b3JkKTsKIH0KIAogLSAodm9pZClzZWxlY3RXb3JkQmFja3dhcmQKIHsK
KyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgX3BhZ2Ut
PnNlbGVjdFdvcmRCYWNrd2FyZCgpOwogfQogCkBAIC00MDYzLDExICs0MDY4LDEzIEBAIC0gKHZv
aWQpcGFzdGVGb3JXZWJWaWV3OihpZClzZW5kZXIKICAgICBpZiAoc2VuZGVyID09IFVJTWVudUNv
bnRyb2xsZXIuc2hhcmVkTWVudUNvbnRyb2xsZXIgJiYgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVx
dWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZv
ckdlc3R1cmVdKQogICAgICAgICByZXR1cm47CiAKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0
TmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZCgicGFzdGUi
X3MpOwogfQogCiAtICh2b2lkKV9wYXN0ZUFzUXVvdGF0aW9uRm9yV2ViVmlldzooaWQpc2VuZGVy
CiB7CisgICAgX2F1dG9jb3JyZWN0aW9uQ29udGV4dE5lZWRzVXBkYXRlID0gWUVTOwogICAgIF9w
YWdlLT5leGVjdXRlRWRpdENvbW1hbmQoIlBhc3RlQXNRdW90YXRpb24iX3MpOwogfQogCkBAIC00
MDc2LDYgKzQwODMsNyBAQCAtICh2b2lkKXNlbGVjdEZvcldlYlZpZXc6KGlkKXNlbmRlcgogICAg
IGlmICghX3BhZ2UtPnByZWZlcmVuY2VzKCkudGV4dEludGVyYWN0aW9uRW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZ
RVM7CiAgICAgW190ZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2VsZWN0V29yZF07CiAgICAgLy8g
V2UgY2Fubm90IHVzZSBzZWxlY3RXb3JkIGNvbW1hbmQsIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBh
YmxlIHRvIHNlbGVjdCB0aGUgd29yZCBldmVuIHdoZW4gaXQgaXMgdGhlIGxhc3QgaW4gdGhlIHBh
cmFncmFwaC4KICAgICBfcGFnZS0+ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxh
cml0eTo6V29yZEdyYW51bGFyaXR5KTsKQEAgLTQwODYsNiArNDA5NCw3IEBAIC0gKHZvaWQpc2Vs
ZWN0QWxsRm9yV2ViVmlldzooaWQpc2VuZGVyCiAgICAgaWYgKCFfcGFnZS0+cHJlZmVyZW5jZXMo
KS50ZXh0SW50ZXJhY3Rpb25FbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIF9hdXRv
Y29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBbX3RleHRJbnRlcmFjdGlv
bkFzc2lzdGFudCBzZWxlY3RBbGw6c2VuZGVyXTsKICAgICBfcGFnZS0+c2VsZWN0QWxsKCk7CiB9
CkBAIC00NDU1LDYgKzQ0NjQsNyBAQCAtICh2b2lkKWNoYW5nZVNlbGVjdGlvbldpdGhHZXN0dXJl
QXQ6KENHUG9pbnQpcG9pbnQgd2l0aEdlc3R1cmU6KFVJV0tHZXN0dXJlVHlwZQogCiAtICh2b2lk
KWNoYW5nZVNlbGVjdGlvbldpdGhHZXN0dXJlQXQ6KENHUG9pbnQpcG9pbnQgd2l0aEdlc3R1cmU6
KFVJV0tHZXN0dXJlVHlwZSlnZXN0dXJlVHlwZSB3aXRoU3RhdGU6KFVJR2VzdHVyZVJlY29nbml6
ZXJTdGF0ZSlzdGF0ZSB3aXRoRmxhZ3M6KFVJV0tTZWxlY3Rpb25GbGFncylmbGFncwogeworICAg
IF9hdXRvY29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfdXNpbmdHZXN0
dXJlRm9yU2VsZWN0aW9uID0gWUVTOwogICAgIF9wYWdlLT5zZWxlY3RXaXRoR2VzdHVyZShXZWJD
b3JlOjpJbnRQb2ludChwb2ludCksIHRvR2VzdHVyZVR5cGUoZ2VzdHVyZVR5cGUpLCB0b0dlc3R1
cmVSZWNvZ25pemVyU3RhdGUoc3RhdGUpLCBzZWxmLl9oYXNGb2N1c2VkRWxlbWVudCwgW3NlbGYs
IHN0cm9uZ1NlbGYgPSByZXRhaW5QdHIoc2VsZiksIHN0YXRlLCBmbGFnc10oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvaW50LCBXZWJLaXQ6Okdlc3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBXZWJL
aXQ6Okdlc3R1cmVSZWNvZ25pemVyU3RhdGUgZ2VzdHVyZVN0YXRlLCBPcHRpb25TZXQ8V2ViS2l0
OjpTZWxlY3Rpb25GbGFncz4gaW5uZXJGbGFncykgewogICAgICAgICBzZWxlY3Rpb25DaGFuZ2Vk
V2l0aEdlc3R1cmUoc2VsZiwgcG9pbnQsIGdlc3R1cmVUeXBlLCBnZXN0dXJlU3RhdGUsIHRvU2Vs
ZWN0aW9uRmxhZ3MoZmxhZ3MpIHwgaW5uZXJGbGFncyk7CkBAIC00NDY1LDYgKzQ0NzUsNyBAQCAt
ICh2b2lkKWNoYW5nZVNlbGVjdGlvbldpdGhHZXN0dXJlQXQ6KENHUG9pbnQpcG9pbnQgd2l0aEdl
c3R1cmU6KFVJV0tHZXN0dXJlVHlwZQogCiAtICh2b2lkKWNoYW5nZVNlbGVjdGlvbldpdGhUb3Vj
aEF0OihDR1BvaW50KXBvaW50IHdpdGhTZWxlY3Rpb25Ub3VjaDooVUlXS1NlbGVjdGlvblRvdWNo
KXRvdWNoIGJhc2VJc1N0YXJ0OihCT09MKWJhc2VJc1N0YXJ0IHdpdGhGbGFnczooVUlXS1NlbGVj
dGlvbkZsYWdzKWZsYWdzCiB7CisgICAgX2F1dG9jb3JyZWN0aW9uQ29udGV4dE5lZWRzVXBkYXRl
ID0gWUVTOwogICAgIF91c2luZ0dlc3R1cmVGb3JTZWxlY3Rpb24gPSBZRVM7CiAgICAgX3BhZ2Ut
PnVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwgdG9T
ZWxlY3Rpb25Ub3VjaCh0b3VjaCksIGJhc2VJc1N0YXJ0LCBbc2VsZiwgc3Ryb25nU2VsZiA9IHJl
dGFpblB0cihzZWxmKSwgZmxhZ3NdKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgV2Vi
S2l0OjpTZWxlY3Rpb25Ub3VjaCB0b3VjaCwgT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxh
Z3M+IGlubmVyRmxhZ3MpIHsKICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZFdpdGhUb3VjaChzZWxm
LCBwb2ludCwgdG91Y2gsIHRvU2VsZWN0aW9uRmxhZ3MoZmxhZ3MpIHwgaW5uZXJGbGFncyk7CkBA
IC00NDc1LDYgKzQ0ODYsNyBAQCAtICh2b2lkKWNoYW5nZVNlbGVjdGlvbldpdGhUb3VjaEF0OihD
R1BvaW50KXBvaW50IHdpdGhTZWxlY3Rpb25Ub3VjaDooVUlXS1NlbGVjdAogCiAtICh2b2lkKWNo
YW5nZVNlbGVjdGlvbldpdGhUb3VjaGVzRnJvbTooQ0dQb2ludClmcm9tIHRvOihDR1BvaW50KXRv
IHdpdGhHZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2VzdHVyZVR5cGUgd2l0aFN0YXRlOihVSUdl
c3R1cmVSZWNvZ25pemVyU3RhdGUpZ2VzdHVyZVN0YXRlCiB7CisgICAgX2F1dG9jb3JyZWN0aW9u
Q29udGV4dE5lZWRzVXBkYXRlID0gWUVTOwogICAgIF91c2luZ0dlc3R1cmVGb3JTZWxlY3Rpb24g
PSBZRVM7CiAgICAgX3BhZ2UtPnNlbGVjdFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6OkludFBvaW50
KGZyb20pLCBXZWJDb3JlOjpJbnRQb2ludCh0byksIHRvR2VzdHVyZVR5cGUoZ2VzdHVyZVR5cGUp
LCB0b0dlc3R1cmVSZWNvZ25pemVyU3RhdGUoZ2VzdHVyZVN0YXRlKSwgW3NlbGYsIHN0cm9uZ1Nl
bGYgPSByZXRhaW5QdHIoc2VsZildKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgV2Vi
S2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgV2ViS2l0OjpHZXN0dXJlUmVjb2duaXplclN0
YXRlIGdlc3R1cmVTdGF0ZSwgT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxhZ3M+IGZsYWdz
KSB7CiAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWRXaXRoR2VzdHVyZShzZWxmLCBwb2ludCwgZ2Vz
dHVyZVR5cGUsIGdlc3R1cmVTdGF0ZSwgZmxhZ3MpOwpAQCAtNDU3MiwxMSArNDU4NCwxMyBAQCAt
ICh2b2lkKXJlcXVlc3RSZWN0c1RvRXZhZGVGb3JTZWxlY3Rpb25Db21tYW5kc1dpdGhDb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKShOUwogCiAtICh2b2lkKXNlbGVjdFBvc2l0aW9uQXRQb2ludDoo
Q0dQb2ludClwb2ludCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlv
bkhhbmRsZXIKIHsKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7
CiAgICAgW3NlbGYgX3NlbGVjdFBvc2l0aW9uQXRQb2ludDpwb2ludCBzdGF5aW5nV2l0aGluRm9j
dXNlZEVsZW1lbnQ6c2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgY29tcGxldGlvbkhhbmRsZXI6Y29t
cGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lkKV9zZWxlY3RQb3NpdGlvbkF0UG9pbnQ6KENH
UG9pbnQpcG9pbnQgc3RheWluZ1dpdGhpbkZvY3VzZWRFbGVtZW50OihCT09MKXN0YXlpbmdXaXRo
aW5Gb2N1c2VkRWxlbWVudCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIKIHsKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZ
RVM7CiAgICAgX3VzaW5nR2VzdHVyZUZvclNlbGVjdGlvbiA9IFlFUzsKIAogICAgIF9wYWdlLT5z
ZWxlY3RQb3NpdGlvbkF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQpLCBzdGF5aW5nV2l0
aGluRm9jdXNlZEVsZW1lbnQsIFt2aWV3ID0gcmV0YWluUHRyKHNlbGYpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewpAQCAtNDU4Nyw2ICs0
NjAxLDcgQEAgLSAodm9pZClfc2VsZWN0UG9zaXRpb25BdFBvaW50OihDR1BvaW50KXBvaW50IHN0
YXlpbmdXaXRoaW5Gb2N1c2VkRWxlbWVudDooQk9PTCkKIAogLSAodm9pZClzZWxlY3RQb3NpdGlv
bkF0Qm91bmRhcnk6KFVJVGV4dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5IGluRGlyZWN0aW9uOihV
SVRleHREaXJlY3Rpb24pZGlyZWN0aW9uIGZyb21Qb2ludDooQ0dQb2ludClwb2ludCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKKyAgICBfYXV0
b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgX3VzaW5nR2VzdHVyZUZv
clNlbGVjdGlvbiA9IFlFUzsKICAgICBfcGFnZS0+c2VsZWN0UG9zaXRpb25BdEJvdW5kYXJ5V2l0
aERpcmVjdGlvbihXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIHRvV0tUZXh0R3JhbnVsYXJpdHko
Z3JhbnVsYXJpdHkpLCB0b1dLU2VsZWN0aW9uRGlyZWN0aW9uKGRpcmVjdGlvbiksIHNlbGYuX2hh
c0ZvY3VzZWRFbGVtZW50LCBbdmlldyA9IHJldGFpblB0cihzZWxmKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSgpIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKQEAgLTQ1OTYsNiArNDYxMSw3IEBAIC0gKHZvaWQpc2VsZWN0UG9zaXRp
b25BdEJvdW5kYXJ5OihVSVRleHRHcmFudWxhcml0eSlncmFudWxhcml0eSBpbkRpcmVjdGlvbjoo
VUlUCiAKIC0gKHZvaWQpbW92ZVNlbGVjdGlvbkF0Qm91bmRhcnk6KFVJVGV4dEdyYW51bGFyaXR5
KWdyYW51bGFyaXR5IGluRGlyZWN0aW9uOihVSVRleHREaXJlY3Rpb24pZGlyZWN0aW9uIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogeworICAgIF9h
dXRvY29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfdXNpbmdHZXN0dXJl
Rm9yU2VsZWN0aW9uID0gWUVTOwogICAgIF9wYWdlLT5tb3ZlU2VsZWN0aW9uQXRCb3VuZGFyeVdp
dGhEaXJlY3Rpb24odG9XS1RleHRHcmFudWxhcml0eShncmFudWxhcml0eSksIHRvV0tTZWxlY3Rp
b25EaXJlY3Rpb24oZGlyZWN0aW9uKSwgW3ZpZXcgPSByZXRhaW5QdHIoc2VsZiksIGNvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwpAQCAtNDYwNSw2ICs0NjIxLDcgQEAgLSAodm9pZCltb3ZlU2Vs
ZWN0aW9uQXRCb3VuZGFyeTooVUlUZXh0R3JhbnVsYXJpdHkpZ3JhbnVsYXJpdHkgaW5EaXJlY3Rp
b246KFVJVGUKIAogLSAodm9pZClzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5OihVSVRleHRHcmFu
dWxhcml0eSlncmFudWxhcml0eSBhdFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogeworICAgIF9hdXRvY29ycmVj
dGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfdXNpbmdHZXN0dXJlRm9yU2VsZWN0
aW9uID0gWUVTOwogICAgICsrX3N1cHByZXNzTm9uRWRpdGFibGVTaW5nbGVUYXBUZXh0SW50ZXJh
Y3Rpb25Db3VudDsKICAgICBfcGFnZS0+c2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQo
V2ViQ29yZTo6SW50UG9pbnQocG9pbnQpLCB0b1dLVGV4dEdyYW51bGFyaXR5KGdyYW51bGFyaXR5
KSwgc2VsZi5faGFzRm9jdXNlZEVsZW1lbnQsIFt2aWV3ID0gcmV0YWluUHRyKHNlbGYpLCBzZWxl
Y3Rpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewpAQCAtNDYx
Niw2ICs0NjMzLDcgQEAgLSAodm9pZClzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5OihVSVRleHRH
cmFudWxhcml0eSlncmFudWxhcml0eSBhdFBvaW50OihDR1BvaW4KIAogLSAodm9pZCliZWdpblNl
bGVjdGlvbkluRGlyZWN0aW9uOihVSVRleHREaXJlY3Rpb24pZGlyZWN0aW9uIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShCT09MIGVuZElzTW92aW5nKSljb21wbGV0aW9uSGFuZGxlcgogewor
ICAgIF9hdXRvY29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfcGFnZS0+
YmVnaW5TZWxlY3Rpb25JbkRpcmVjdGlvbih0b1dLU2VsZWN0aW9uRGlyZWN0aW9uKGRpcmVjdGlv
biksIFtzZWxlY3Rpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0g
KGJvb2wgZW5kSXNNb3ZpbmcpIHsKICAgICAgICAgc2VsZWN0aW9uSGFuZGxlcihlbmRJc01vdmlu
Zyk7CiAgICAgfSk7CkBAIC00NjIzLDYgKzQ2NDEsNyBAQCAtICh2b2lkKWJlZ2luU2VsZWN0aW9u
SW5EaXJlY3Rpb246KFVJVGV4dERpcmVjdGlvbilkaXJlY3Rpb24gY29tcGxldGlvbkhhbmRsZXI6
KAogCiAtICh2b2lkKXVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludDooQ0dQb2ludClwb2lu
dCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBlbmRJc01vdmluZykpY29tcGxldGlv
bkhhbmRsZXIKIHsKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7
CiAgICAgYXV0byByZXNwZWN0U2VsZWN0aW9uQW5jaG9yID0gc2VsZi5pbnRlcmFjdGlvbkFzc2lz
dGFudC5fd2tfaGFzRmxvYXRpbmdDdXJzb3IgPyBXZWJLaXQ6OlJlc3BlY3RTZWxlY3Rpb25BbmNo
b3I6OlllcyA6IFdlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcjo6Tm87CiAgICAgX3BhZ2Ut
PnVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludChXZWJDb3JlOjpJbnRQb2ludChwb2ludCks
IHNlbGYuX2hhc0ZvY3VzZWRFbGVtZW50LCByZXNwZWN0U2VsZWN0aW9uQW5jaG9yLCBbc2VsZWN0
aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgZW5kSXNN
b3ZpbmcpIHsKICAgICAgICAgc2VsZWN0aW9uSGFuZGxlcihlbmRJc01vdmluZyk7CkBAIC00NjMx
LDYgKzQ2NTAsNyBAQCAtICh2b2lkKXVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludDooQ0dQ
b2ludClwb2ludCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXgogCiAtICh2b2lkKXVwZGF0ZVNl
bGVjdGlvbldpdGhFeHRlbnRQb2ludDooQ0dQb2ludClwb2ludCB3aXRoQm91bmRhcnk6KFVJVGV4
dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09M
IHNlbGVjdGlvbkVuZElzTW92aW5nKSljb21wbGV0aW9uSGFuZGxlcgogeworICAgIF9hdXRvY29y
cmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICArK19zdXBwcmVzc05vbkVkaXRh
YmxlU2luZ2xlVGFwVGV4dEludGVyYWN0aW9uQ291bnQ7CiAgICAgX3BhZ2UtPnVwZGF0ZVNlbGVj
dGlvbldpdGhFeHRlbnRQb2ludEFuZEJvdW5kYXJ5KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwg
dG9XS1RleHRHcmFudWxhcml0eShncmFudWxhcml0eSksIHNlbGYuX2hhc0ZvY3VzZWRFbGVtZW50
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCBw
cm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoYm9vbCBlbmRJc01vdmluZykgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihlbmRJc01vdmluZyk7CkBAIC00Njg0LDYgKzQ3MDQsNyBA
QCAtIChDR1JlY3QpdGV4dExhc3RSZWN0CiAKIC0gKHZvaWQpcmVwbGFjZURpY3RhdGVkVGV4dDoo
TlNTdHJpbmcqKW9sZFRleHQgd2l0aFRleHQ6KE5TU3RyaW5nICopbmV3VGV4dAogeworICAgIF9h
dXRvY29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfcGFnZS0+cmVwbGFj
ZURpY3RhdGVkVGV4dChvbGRUZXh0LCBuZXdUZXh0KTsKIH0KIApAQCAtNDc1Niw3ICs0Nzc3LDcg
QEAgLSAodm9pZClyZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0V2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShVSVdLQXV0b2NvcnIKICAgICAgICAgaWYgKF9pc1Vuc3VwcHJlc3NpbmdT
b2Z0d2FyZUtleWJvYXJkVXNpbmdMYXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4g
IV9hdXRvY29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZTsKICAgICB9KSgpOwogCiAgICAgaWYg
KHJlc3BvbmRXaXRoTGFzdEtub3duQXV0b2NvcnJlY3Rpb25Db250ZXh0KSB7CkBAIC00Nzc1LDE1
ICs0Nzk2LDI0IEBAIC0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dFdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoVUlXS0F1dG9jb3JyCiAgICAgX3BlbmRpbmdBdXRvY29y
cmVjdGlvbkNvbnRleHRIYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXI7CiAgICAgX3BhZ2UtPnJl
cXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoKTsKIAotICAgIGlmICh1c2VTeW5jUmVxdWVzdCkg
ewotICAgICAgICBfcGFnZS0+cHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+d2FpdEZvckFuZERpc3Bh
dGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQXV0b2NvcnJlY3Rp
b25Db250ZXh0PihfcGFnZS0+d2ViUGFnZUlEKCksIDFfcywgSVBDOjpXYWl0Rm9yT3B0aW9uOjpE
aXNwYXRjaEluY29taW5nU3luY01lc3NhZ2VzV2hpbGVXYWl0aW5nKTsKLSAgICAgICAgW3NlbGYg
X2NhbmNlbFBlbmRpbmdBdXRvY29ycmVjdGlvbkNvbnRleHRIYW5kbGVyXTsKLSAgICB9CisgICAg
aWYgKCF1c2VTeW5jUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildKCkgewor
ICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCisgICAgICAgICAg
ICBzdHJvbmdTZWxmLT5fYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7Cisg
ICAgfSk7CisKKyAgICBpZiAoIV9wYWdlLT5wcm9jZXNzKCkuY29ubmVjdGlvbigpLT53YWl0Rm9y
QW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVBdXRv
Y29ycmVjdGlvbkNvbnRleHQ+KF9wYWdlLT53ZWJQYWdlSUQoKSwgMV9zLCBJUEM6OldhaXRGb3JP
cHRpb246OkRpc3BhdGNoSW5jb21pbmdTeW5jTWVzc2FnZXNXaGlsZVdhaXRpbmcpKQorICAgICAg
ICBSRUxFQVNFX0xPRyhUZXh0SW5wdXQsICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgYXV0
b2NvcnJlY3Rpb24gY29udGV4dC4iKTsKKworICAgIFtzZWxmIF9jYW5jZWxQZW5kaW5nQXV0b2Nv
cnJlY3Rpb25Db250ZXh0SGFuZGxlcl07CiB9CiAKIC0gKHZvaWQpX2hhbmRsZUF1dG9jb3JyZWN0
aW9uQ29udGV4dDooY29uc3QgV2ViS2l0OjpXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQmKWNvbnRl
eHQKIHsKICAgICBfbGFzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCA9IGNvbnRleHQ7CisgICAgX2F1
dG9jb3JyZWN0aW9uQ29udGV4dE5lZWRzVXBkYXRlID0gTk87CiAgICAgW3NlbGYgdW5zdXBwcmVz
c1NvZnR3YXJlS2V5Ym9hcmRVc2luZ0xhc3RBdXRvY29ycmVjdGlvbkNvbnRleHRJZk5lZWRlZF07
CiAgICAgW3NlbGYgX2ludm9rZVBlbmRpbmdBdXRvY29ycmVjdGlvbkNvbnRleHRIYW5kbGVyOltX
S0F1dG9jb3JyZWN0aW9uQ29udGV4dCBhdXRvY29ycmVjdGlvbkNvbnRleHRXaXRoV2ViQ29udGV4
dDpjb250ZXh0XV07CiB9CkBAIC01MDIwLDYgKzUwNTAsNyBAQCAtIChCT09MKV9hbGxvd0FuaW1h
dGVkVXBkYXRlU2VsZWN0aW9uUmVjdFZpZXdzCiAKIC0gKHZvaWQpYmVnaW5TZWxlY3Rpb25DaGFu
Z2UKIHsKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CiAgICAg
X3NlbGVjdGlvbkNoYW5nZU5lc3RpbmdMZXZlbCsrOwogCiAgICAgW3NlbGYuaW5wdXREZWxlZ2F0
ZSBzZWxlY3Rpb25XaWxsQ2hhbmdlOnNlbGZdOwpAQCAtNTA1Nyw2ICs1MDg4LDcgQEAgLSAodm9p
ZClfZGlkQ2hhbmdlV2ViVmlld0VkaXRhYmlsaXR5CiAKIC0gKHZvaWQpaW5zZXJ0VGV4dFN1Z2dl
c3Rpb246KFVJVGV4dFN1Z2dlc3Rpb24gKil0ZXh0U3VnZ2VzdGlvbgogeworICAgIF9hdXRvY29y
cmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICAvLyBGSVhNRTogUmVwbGFjZSBO
U0NsYXNzRnJvbVN0cmluZyB3aXRoIGFjdHVhbCBjbGFzcyBhcyBzb29uIGFzIFVJS2l0IHN1Ym1p
dHRlZCB0aGUgbmV3IGNsYXNzIGludG8gdGhlIGlPUyBTREsuCiAgICAgaWYgKFt0ZXh0U3VnZ2Vz
dGlvbiBpc0tpbmRPZkNsYXNzOltVSVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24gY2xhc3NdXSkgewog
ICAgICAgICBfcGFnZS0+YXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKFsoVUlUZXh0QXV0b2ZpbGxT
dWdnZXN0aW9uICopdGV4dFN1Z2dlc3Rpb24gdXNlcm5hbWVdLCBbKFVJVGV4dEF1dG9maWxsU3Vn
Z2VzdGlvbiAqKXRleHRTdWdnZXN0aW9uIHBhc3N3b3JkXSk7CkBAIC01MjU3LDYgKzUyODksNyBA
QCAtICh2b2lkKXNldE1hcmtlZFRleHQ6KE5TU3RyaW5nICopbWFya2VkVGV4dCBzZWxlY3RlZFJh
bmdlOihOU1JhbmdlKXNlbGVjdGVkUmFuZwogCiAtICh2b2lkKV9zZXRNYXJrZWRUZXh0OihOU1N0
cmluZyAqKW1hcmtlZFRleHQgaGlnaGxpZ2h0czooY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbXBv
c2l0aW9uSGlnaGxpZ2h0PiYpaGlnaGxpZ2h0cyBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKXNlbGVj
dGVkUmFuZ2UKIHsKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7
CiAgICAgX2NhbmRpZGF0ZVZpZXdOZWVkc1VwZGF0ZSA9ICFzZWxmLmhhc01hcmtlZFRleHQ7CiAg
ICAgX21hcmtlZFRleHQgPSBtYXJrZWRUZXh0OwogICAgIF9wYWdlLT5zZXRDb21wb3NpdGlvbkFz
eW5jKG1hcmtlZFRleHQsIHsgfSwgaGlnaGxpZ2h0cywgc2VsZWN0ZWRSYW5nZSwgeyB9KTsKQEAg
LTU0MTAsMjEgKzU0NDMsMjYgQEAgLSAodm9pZClpbnNlcnRUZXh0OihOU1N0cmluZyAqKWFTdHJp
bmdWYWx1ZQogICAgICAgICBfbGFzdEluc2VydGVkQ2hhcmFjdGVyVG9PdmVycmlkZUNoYXJhY3Rl
ckJlZm9yZVNlbGVjdGlvbiA9IFthU3RyaW5nVmFsdWUgY2hhcmFjdGVyQXRJbmRleDphU3RyaW5n
VmFsdWUubGVuZ3RoIC0gMV07CiAgICAgICAgIF9wYWdlLT5zY2hlZHVsZUZ1bGxFZGl0b3JTdGF0
ZVVwZGF0ZSgpOwogICAgIH0KKworICAgIF9hdXRvY29ycmVjdGlvbkNvbnRleHROZWVkc1VwZGF0
ZSA9IFlFUzsKIH0KIAogLSAodm9pZClpbnNlcnRUZXh0OihOU1N0cmluZyAqKWFTdHJpbmdWYWx1
ZSBhbHRlcm5hdGl2ZXM6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilhbHRlcm5hdGl2ZXMgc3R5bGU6
KFVJVGV4dEFsdGVybmF0aXZlU3R5bGUpc3R5bGUKIHsKLSAgICBpZiAoIWFsdGVybmF0aXZlcy5j
b3VudCkKKyAgICBpZiAoIWFsdGVybmF0aXZlcy5jb3VudCkgewogICAgICAgICBbc2VsZiBpbnNl
cnRUZXh0OmFTdHJpbmdWYWx1ZV07Ci0gICAgZWxzZSB7Ci0gICAgICAgIEJPT0wgaXNMb3dDb25m
aWRlbmNlID0gc3R5bGUgPT0gVUlUZXh0QWx0ZXJuYXRpdmVTdHlsZUxvd0NvbmZpZGVuY2U7Ci0g
ICAgICAgIGF1dG8gdGV4dEFsdGVybmF0aXZlcyA9IGFkb3B0TlMoW1tOU1RleHRBbHRlcm5hdGl2
ZXMgYWxsb2NdIGluaXRXaXRoUHJpbWFyeVN0cmluZzphU3RyaW5nVmFsdWUgYWx0ZXJuYXRpdmVT
dHJpbmdzOmFsdGVybmF0aXZlcyBpc0xvd0NvbmZpZGVuY2U6aXNMb3dDb25maWRlbmNlXSk7Ci0g
ICAgICAgIFdlYkNvcmU6OlRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZSB0ZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UgeyB0ZXh0QWx0ZXJuYXRpdmVzLmdldCgpLCBOU01ha2VSYW5nZSgwLCBhU3RyaW5n
VmFsdWUubGVuZ3RoKSB9OwotCi0gICAgICAgIFdlYktpdDo6SW5zZXJ0VGV4dE9wdGlvbnMgb3B0
aW9uczsKLSAgICAgICAgb3B0aW9ucy5zaG91bGRTaW11bGF0ZUtleWJvYXJkSW5wdXQgPSBbc2Vs
ZiBfc2hvdWxkU2ltdWxhdGVLZXlib2FyZElucHV0T25UZXh0SW5zZXJ0aW9uXTsKLSAgICAgICAg
X3BhZ2UtPmluc2VydERpY3RhdGVkVGV4dEFzeW5jKGFTdHJpbmdWYWx1ZSwgeyB9LCB7IHRleHRB
bHRlcm5hdGl2ZVdpdGhSYW5nZSB9LCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KKworICAgIEJPT0wgaXNMb3dDb25maWRlbmNlID0gc3R5bGUgPT0gVUlUZXh0QWx0
ZXJuYXRpdmVTdHlsZUxvd0NvbmZpZGVuY2U7CisgICAgYXV0byB0ZXh0QWx0ZXJuYXRpdmVzID0g
YWRvcHROUyhbW05TVGV4dEFsdGVybmF0aXZlcyBhbGxvY10gaW5pdFdpdGhQcmltYXJ5U3RyaW5n
OmFTdHJpbmdWYWx1ZSBhbHRlcm5hdGl2ZVN0cmluZ3M6YWx0ZXJuYXRpdmVzIGlzTG93Q29uZmlk
ZW5jZTppc0xvd0NvbmZpZGVuY2VdKTsKKyAgICBXZWJDb3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2UgdGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlIHsgdGV4dEFsdGVybmF0aXZlcy5nZXQoKSwg
TlNNYWtlUmFuZ2UoMCwgYVN0cmluZ1ZhbHVlLmxlbmd0aCkgfTsKKworICAgIFdlYktpdDo6SW5z
ZXJ0VGV4dE9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnNob3VsZFNpbXVsYXRlS2V5Ym9h
cmRJbnB1dCA9IFtzZWxmIF9zaG91bGRTaW11bGF0ZUtleWJvYXJkSW5wdXRPblRleHRJbnNlcnRp
b25dOworICAgIF9wYWdlLT5pbnNlcnREaWN0YXRlZFRleHRBc3luYyhhU3RyaW5nVmFsdWUsIHsg
fSwgeyB0ZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UgfSwgV1RGTW92ZShvcHRpb25zKSk7CisKKyAg
ICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CiB9CiAKIC0gKEJPT0wp
aGFzVGV4dApAQCAtNTc2NCw2ICs1ODAyLDcgQEAgLSAodm9pZClfZm9jdXNUZXh0SW5wdXRDb250
ZXh0OihfV0tUZXh0SW5wdXRDb250ZXh0ICopY29udGV4dCBwbGFjZUNhcmV0QXQ6KENHUG8KICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaXNSZWFk
T25seSA/IG5pbCA6IHNlbGYpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIF9hdXRvY29y
cmVjdGlvbkNvbnRleHROZWVkc1VwZGF0ZSA9IFlFUzsKICAgICBfdXNpbmdHZXN0dXJlRm9yU2Vs
ZWN0aW9uID0gWUVTOwogICAgIGF1dG8gY2hlY2tGb2N1c2VkRWxlbWVudCA9IFt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+IHsgc2VsZiB9LCBjb250ZXh0ID0gYWRvcHROUyhb
Y29udGV4dCBjb3B5XSksIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3
ZWFrU2VsZi5nZXQoKTsKQEAgLTU4MTQsNiArNTg1Myw3IEBAIC0gKHZvaWQpX3dpbGxCZWdpblRl
eHRJbnRlcmFjdGlvbkluVGV4dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKWNv
bnRlCiAKICAgICBfdGV4dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQgPSBOTzsK
ICAgICBfcGFnZS0+c2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9u
KGZhbHNlKTsKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CiAg
ICAgX3VzaW5nR2VzdHVyZUZvclNlbGVjdGlvbiA9IFlFUzsKIH0KIApAQCAtNjA1NCw2ICs2MDk0
LDcgQEAgLSAodm9pZClrZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvckRpZEZpbmlzaFNjcm9sbGlu
ZzooV0tLZXlib2FyZFNjcm9sbFZpZXdBbmltYXQKIAogLSAodm9pZClleGVjdXRlRWRpdENvbW1h
bmRXaXRoQ2FsbGJhY2s6KE5TU3RyaW5nICopY29tbWFuZE5hbWUKIHsKKyAgICBfYXV0b2NvcnJl
Y3Rpb25Db250ZXh0TmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgLy8gRklYTUU6IEVkaXRpbmcgY29t
bWFuZHMgYXJlIG5vdCBjb25zaWRlcmVkIGJ5IFdlYktpdCBhcyB1c2VyIGluaXRpYXRlZCBldmVu
IGlmIHRoZXkgYXJlIHRoZSByZXN1bHQKICAgICAvLyBvZiBrZXlkb3duIG9yIGtleXVwLiBXZSBu
ZWVkIHRvIHF1ZXJ5IHRoZSBrZXlib2FyZCB0byBkZXRlcm1pbmUgaWYgdGhpcyB3YXMgY2FsbGVk
IGZyb20gdGhlIGtleWJvYXJkCiAgICAgLy8gb3Igbm90IHRvIGtub3cgd2hldGhlciB0byB0ZWxs
IFdlYktpdCB0byB0cmVhdCB0aGlzIGNvbW1hbmQgYXMgdXNlciBpbml0aWF0ZWQgb3Igbm90LgpA
QCAtNjQxMSw2ICs2NDUyLDcgQEAgLSAodm9pZClfZWxlbWVudERpZEZvY3VzOihjb25zdCBXZWJL
aXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHUKIAogICAgIGF1dG8g
aW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIgPSBzdGQ6OmV4Y2hhbmdlKF9pbnB1dFZpZXdVcGRhdGVE
ZWZlcnJlciwgbnVsbHB0cik7CiAKKyAgICBfYXV0b2NvcnJlY3Rpb25Db250ZXh0TmVlZHNVcGRh
dGUgPSBZRVM7CiAgICAgX2RpZEFjY2Vzc29yeVRhYkluaXRpYXRlRm9jdXMgPSBfaXNDaGFuZ2lu
Z0ZvY3VzVXNpbmdBY2Nlc3NvcnlUYWI7CiAKICAgICBpZCA8X1dLSW5wdXREZWxlZ2F0ZT4gaW5w
dXREZWxlZ2F0ZSA9IFtfd2ViVmlldyBfaW5wdXREZWxlZ2F0ZV07CkBAIC02NjAyLDYgKzY2NDQs
NyBAQCAtICh2b2lkKV9lbGVtZW50RGlkQmx1cgogICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmlzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UgPSBmYWxzZTsKICAgICBfaW5wdXRQ
ZXJpcGhlcmFsID0gbmlsOwogICAgIF9mb2N1c1JlcXVpcmVzU3Ryb25nUGFzc3dvcmRBc3Npc3Rh
bmNlID0gTk87CisgICAgX2F1dG9jb3JyZWN0aW9uQ29udGV4dE5lZWRzVXBkYXRlID0gWUVTOwog
ICAgIF9hZGRpdGlvbmFsQ29udGV4dEZvclN0cm9uZ1Bhc3N3b3JkQXNzaXN0YW5jZSA9IG5pbDsK
IAogICAgIFtzZWxmIHJlc2V0U2hvdWxkWm9vbVRvRm9jdXNSZWN0QWZ0ZXJTaG93aW5nS2V5Ym9h
cmRdOwpAQCAtNzIxNyw2ICs3MjYwLDcgQEAgLSAodm9pZClfdXBkYXRlU2VsZWN0aW9uQXNzaXN0
YW50U3VwcHJlc3Npb25TdGF0ZQogCiAtICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkCiB7CisgICAg
X2F1dG9jb3JyZWN0aW9uQ29udGV4dE5lZWRzVXBkYXRlID0gWUVTOwogI2lmIEVOQUJMRShBUFBf
SElHSExJR0hUUykKICAgICBbc2VsZiBzZXRVcEFwcEhpZ2hsaWdodE1lbnVzSWZOZWVkZWRdOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQppbmRleCA4M2EwMGQ3YzNiYWVlZTY5MDI4ZTQ0NmJhYzBhMjExZjJkMGU2YmY3Li5lMmQ2YjQ5
ODgxMTdkMmE3MzJmN2VlMWZhMDgzZmVkNmM0YWNmYzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBTdHJpbmcmLAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3Jy
ZWN0aW9uQ29udGV4dCgpCiB7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpSZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4
dFJlcXVlc3QoKSwgbV93ZWJQYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
QXV0b2NvcnJlY3Rpb25Db250ZXh0KGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYgY29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggN2Y3MGFkZDUxNTQwNGMzMmEyNWJkOTMwNGMwYThhZmE1ZjQ0Y2YzZC4uYzI4MzFmMjgyMjhm
ZDRiNDg0YjkzZDA5MTMwZWRkY2RjNWQxYjE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcxOTUsNyArNzE5NSw3IEBAIFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2UgV2ViUGFnZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNv
cmU6OkRPTVBhc3RlCiAgICAgLy8gcmVxdWVzdHMgb24gaU9TIGFyZSBjdXJyZW50bHkgc3luY2hy
b25vdXMgaW4gdGhlIHdlYiBwcm9jZXNzLiBUaGlzIGFsbG93cyB1cyB0byBpbW1lZGlhdGVseSBm
dWxmaWxsIHBlbmRpbmcKICAgICAvLyBhdXRvY29ycmVjdGlvbiBjb250ZXh0IHJlcXVlc3RzIGlu
IHRoZSBVSSBwcm9jZXNzIG9uIGlPUyBiZWZvcmUgaGFuZGxpbmcgdGhlIERPTSBwYXN0ZSByZXF1
ZXN0LiBUaGlzIHdvcmthcm91bmQKICAgICAvLyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIDxyZGFy
Oi8vcHJvYmxlbS8xNjIwNzAwMj4gaXMgcmVzb2x2ZWQuCi0gICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpIYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHQoYXV0b2NvcnJlY3Rpb25Db250
ZXh0KCkpKTsKKyAgICBwcmVlbXB0aXZlbHlTZW5kQXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CiAj
ZW5kaWYKICAgICBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzKHBhc3RlQWNjZXNzQ2F0ZWdvcnksIHJlY3RGb3JFbGVt
ZW50QXRJbnRlcmFjdGlvbkxvY2F0aW9uKCksIG9yaWdpbklkZW50aWZpZXIpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXF1ZXN0RE9NUGFzdGVBY2Nlc3M6OlJlcGx5KHJlc3BvbnNlKSk7CiAg
ICAgcmV0dXJuIHJlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDIyZmY2ZTlhMWVhZDA5NGZhZTZiNTkzMzBiYzljYmVhMjc3NWUxM2UuLmNh
ZTJmOThlNGNlMDk0Y2RkZWQ2NDgwMmMyNmMxOWIyZTRjZTI0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc5OCw3ICs3OTgsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZv
ckF1dG9jb3JyZWN0aW9uLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkF1dG9jb3JyZWN0aW9u
RGF0YSk+JiYgcmVwbHkpOwogICAgIHZvaWQgYXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCBTdHJp
bmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxUZXh0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIHN5bmNBcHBseUF1dG9jb3Jy
ZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFRl
eHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdEF1
dG9jb3JyZWN0aW9uQ29udGV4dCgpOworICAgIHZvaWQgaGFuZGxlQXV0b2NvcnJlY3Rpb25Db250
ZXh0UmVxdWVzdCgpOworICAgIHZvaWQgcHJlZW1wdGl2ZWx5U2VuZEF1dG9jb3JyZWN0aW9uQ29u
dGV4dCgpOwogICAgIHZvaWQgZ2V0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24mJik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFBvc2l0aW9uSW5m
b3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmKTsKICAgICB2b2lk
IHN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudENvbnRleHRPclBvc2l0aW9uKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+JiYsIFdlYkNvcmU6OkludFBvaW50JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KaW5kZXggMzBjMmQ5MjJjMzkzMzAwZTMyNjU2NzI4Yzg0ZDU5NjU4ZmUyYmIyOS4uOGI4MGE1
Y2I0M2UxNTc4MzE1M2I4NTk5OTE4NDgyMzgyYWYzYWQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC04Niw3ICs4
Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlcXVlc3RB
dXRvY29ycmVjdGlvbkRhdGEoU3RyaW5nIHRleHRGb3JBdXRvY29ycmVjdGlvbikgLT4gKHN0cnVj
dCBXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YSBkYXRhKSBBc3luYwogICAgIEFwcGx5QXV0
b2NvcnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBvcmlnaW5hbFRleHQpIC0+IChT
dHJpbmcgc3RyaW5nKSBBc3luYwogICAgIFN5bmNBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmluZyBj
b3JyZWN0aW9uLCBTdHJpbmcgb3JpZ2luYWxUZXh0KSAtPiAoYm9vbCBhdXRvY29ycmVjdGlvbkFw
cGxpZWQpIFN5bmNocm9ub3VzCi0gICAgUmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpCisg
ICAgSGFuZGxlQXV0b2NvcnJlY3Rpb25Db250ZXh0UmVxdWVzdCgpCiAgICAgUmVxdWVzdEV2YXNp
b25SZWN0c0Fib3ZlU2VsZWN0aW9uKCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHJl
Y3RzKSBBc3luYwogICAgIEdldFBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdCkgLT4gKHN0cnVjdCBXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSBTeW5jaHJvbm91cwog
ICAgIFJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uKHN0cnVjdCBXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDQyMmY5ZGVhNjJjYWU3ZWJkODE1
NWI2ZDRmMjk2YjIyYWE1OTIwOTcuLjQyYzc3MjczNDdmMzU0ZWUzNmZiYzJlNjhiNGQ5YWJmYTIx
YTY4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0xMjQ2LDcgKzEyNDYsMTMgQEAgdm9pZCBXZWJQYWdlOjpibHVyRm9j
dXNlZEVsZW1lbnQoKQogCiB2b2lkIFdlYlBhZ2U6OnNldElzU2hvd2luZ0lucHV0Vmlld0ZvckZv
Y3VzZWRFbGVtZW50KGJvb2wgc2hvd2luZ0lucHV0VmlldykKIHsKKyAgICBpZiAobV9pc1Nob3dp
bmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudCA9PSBzaG93aW5nSW5wdXRWaWV3KQorICAgICAg
ICByZXR1cm47CisKICAgICBtX2lzU2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVtZW50ID0g
c2hvd2luZ0lucHV0VmlldzsKKworICAgIGlmIChzaG93aW5nSW5wdXRWaWV3KQorICAgICAgICBw
cmVlbXB0aXZlbHlTZW5kQXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6c2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZShjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYg
Y29udGV4dCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI1NjYsNyArMjU3MiwxMiBAQCBXZWJB
dXRvY29ycmVjdGlvbkNvbnRleHQgV2ViUGFnZTo6YXV0b2NvcnJlY3Rpb25Db250ZXh0KCkKICAg
ICByZXR1cm4gY29ycmVjdGlvbjsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QXV0b2NvcnJl
Y3Rpb25Db250ZXh0KCkKK3ZvaWQgV2ViUGFnZTo6cHJlZW1wdGl2ZWx5U2VuZEF1dG9jb3JyZWN0
aW9uQ29udGV4dCgpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVB
dXRvY29ycmVjdGlvbkNvbnRleHQoYXV0b2NvcnJlY3Rpb25Db250ZXh0KCkpKTsKK30KKwordm9p
ZCBXZWJQYWdlOjpoYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHRSZXF1ZXN0KCkKIHsKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChh
dXRvY29ycmVjdGlvbkNvbnRleHQoKSkpOwogfQpAQCAtMjU4Myw3ICsyNTk0LDcgQEAgdm9pZCBX
ZWJQYWdlOjpwcmVwYXJlVG9SdW5Nb2RhbEphdmFTY3JpcHREaWFsb2coKQogICAgIC8vIFdlYkF1
dG9jb3JyZWN0aW9uQ29udGV4dCwgd2hpY2ggdHJpZ2dlcnMgc3luY2hyb25vdXMgSVBDIGJhY2sg
dG8gdGhlIHdlYiBwcm9jZXNzLCByZXN1bHRpbmcgaW4gZGVhZGxvY2suCiAgICAgLy8gVG8gYXZv
aWQgdGhpcyBkZWFkbG9jaywgd2UgcHJlZW1wdGl2ZWx5IGNvbXB1dGUgYW5kIHNlbmQgYXV0b2Nv
cnJlY3Rpb24gY29udGV4dCBkYXRhIHRvIHRoZSBVSSBwcm9jZXNzLAogICAgIC8vIHN1Y2ggdGhh
dCB0aGUgVUkgcHJvY2VzcyBjYW4gaW1tZWRpYXRlbHkgcmVzcG9uZCB0byBVSUtpdCB3aXRob3V0
IHN5bmNocm9ub3VzIElQQyB0byB0aGUgd2ViIHByb2Nlc3MuCi0gICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpIYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHQoYXV0b2NvcnJlY3Rpb25D
b250ZXh0KCkpKTsKKyAgICBwcmVlbXB0aXZlbHlTZW5kQXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7
CiB9CiAKIHN0YXRpYyBIVE1MQW5jaG9yRWxlbWVudCogY29udGFpbmluZ0xpbmtBbmNob3JFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYjg4MzYzZTQ5MTMzNGMyODg5ODIwZDBjY2ZiY2E3Y2E4NGUzZGVk
NC4uMTIzMGU0NzVkMDA3MTgzYWM1MjBiNDcyZTZiNzQ4NmVlNTI5ODZjMSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDIyLTAyLTAxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIE1pdGlnYXRlIGhhbmdzIHVuZGVybmVhdGggLXJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRl
eHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6IHdoZW4gZm9jdXNpbmcgdGV4dCBmaWVsZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTk2MworICAgICAg
ICByZGFyOi8vNzAxNTI0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QgdG8gZXhlcmNpc2UgYSBzY2VuYXJpbyB0aGF0
IGN1cnJlbnRseSBpc24ndCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzOiBpZiB0aGUgdGV4dCBp
bnB1dAorICAgICAgICBjbGllbnQgKGkuZS4gVUlLaXQpIGNhbGxzIGAtcmVxdWVzdEF1dG9jb3Jy
ZWN0aW9uQ29udGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcjpgLCB0aGVuIGludm9rZXMgYW4gYXN5
bmNocm9ub3VzCisgICAgICAgIEFQSSB0aGF0IHBlcmZvcm1zIGFuIGVkaXRpbmcgYWN0aW9uIG9y
IGNoYW5nZXMgdGhlIHNlbGVjdGlvbiwgYW5kIHRoZW4gcmVxdWVzdHMgYW5vdGhlciBhdXRvY29y
cmVjdGlvbiBjb250ZXh0LAorICAgICAgICB0aGUgc2Vjb25kIGF1dG9jb3JyZWN0aW9uIGNvbnRl
eHQgc2hvdWxkIHJlZmxlY3QgdGhlIGNoYW5nZXMgdGhhdCBvY2N1cnJlZCBhcyBhIHJlc3VsdCBv
ZiB0aGUgYXN5bmMgZWRpdGluZworICAgICAgICBhY3Rpb24uCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9BdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tOgorCiAyMDIyLTAxLTI3
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbRVdTXSBJ
Z25vcmUgaG9va3MgZnJvbSBjbG9zZWQgUFJzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9BdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvQXV0b2NvcnJlY3Rpb25UZXN0c0lPUy5tbQppbmRleCBlZmZiOTZhODU1
Njc0ODczMTcxMzlkZTlhNTIxNWI4ZjEyMzk2MjNkLi5hMTdhZTBhZTE3ZjMzMDRjMjI1ZDZkYmM2
MjQ0ZDc5YTFiNzIxYjllIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9BdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL0F1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0KQEAgLTE0MSw0ICsxNDEsNTEgQEAgVEVT
VChBdXRvY29ycmVjdGlvblRlc3RzLCBBdXRvY29ycmVjdGlvbkNvbnRleHREb2VzTm90SW5jbHVk
ZU5ld2xpbmVJblRleHRGaWVsZCkKICAgICBFWFBFQ1RfRVEoMFUsIFtjb250ZXh0QWZ0ZXJUeXBp
bmcgY29udGV4dEFmdGVyU2VsZWN0aW9uXS5sZW5ndGgpOwogfQogCitURVNUKEF1dG9jb3JyZWN0
aW9uVGVzdHMsIEF1dG9jb3JyZWN0aW9uQ29udGV4dEJlZm9yZUFuZEFmdGVyRWRpdGluZykKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdF0p
OworICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNz
aW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudElu
Zm8+KSAtPiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeSB7CisgICAgICAgIHJldHVy
biBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OworICAgIH1dOworCisgICAg
W3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6aW5wdXREZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiYXV0b2ZvY3VzZWQtdGV4dC1p
bnB1dCJdOworCisgICAgX19ibG9jayBSZXRhaW5QdHI8VUlXS0F1dG9jb3JyZWN0aW9uQ29udGV4
dD4gY29udGV4dEJlZm9yZUluc2VydGluZ1RleHQ7CisgICAgX19ibG9jayBSZXRhaW5QdHI8VUlX
S0F1dG9jb3JyZWN0aW9uQ29udGV4dD4gY29udGV4dEFmdGVySW5zZXJ0aW5nVGV4dDsKKyAgICBf
X2Jsb2NrIFJldGFpblB0cjxVSVdLQXV0b2NvcnJlY3Rpb25Db250ZXh0PiBjb250ZXh0QWZ0ZXJT
ZWxlY3Rpbmc7CisKKyAgICBhdXRvICpjb250ZW50VmlldyA9IFt3ZWJWaWV3IHRleHRJbnB1dENv
bnRlbnRWaWV3XTsKKyAgICBbY29udGVudFZpZXcgcmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4
dFdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKFVJV0tBdXRvY29ycmVjdGlvbkNvbnRleHQgKmNvbnRl
eHQpIHsKKyAgICAgICAgY29udGV4dEJlZm9yZUluc2VydGluZ1RleHQgPSBjb250ZXh0OworICAg
IH1dOworCisgICAgW2NvbnRlbnRWaWV3IGluc2VydFRleHQ6QCJoZWxsbyJdOworICAgIFtjb250
ZW50VmlldyByZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0V2l0aENvbXBsZXRpb25IYW5kbGVy
Ol4oVUlXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCAqY29udGV4dCkgeworICAgICAgICBjb250ZXh0
QWZ0ZXJJbnNlcnRpbmdUZXh0ID0gY29udGV4dDsKKyAgICB9XTsKKworICAgIF9fYmxvY2sgYm9v
bCBkb25lID0gZmFsc2U7CisgICAgW2NvbnRlbnRWaWV3IHNlbGVjdEFsbDpuaWxdOworICAgIFtj
b250ZW50VmlldyByZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0V2l0aENvbXBsZXRpb25IYW5k
bGVyOl4oVUlXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCAqY29udGV4dCkgeworICAgICAgICBjb250
ZXh0QWZ0ZXJTZWxlY3RpbmcgPSBjb250ZXh0OworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9
XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBFWFBFQ1Rf
RVEoMFUsIFtjb250ZXh0QmVmb3JlSW5zZXJ0aW5nVGV4dCBjb250ZXh0QmVmb3JlU2VsZWN0aW9u
XS5sZW5ndGgpOworICAgIEVYUEVDVF9FUSgwVSwgW2NvbnRleHRCZWZvcmVJbnNlcnRpbmdUZXh0
IHNlbGVjdGVkVGV4dF0ubGVuZ3RoKTsKKyAgICBFWFBFQ1RfRVEoMFUsIFtjb250ZXh0QmVmb3Jl
SW5zZXJ0aW5nVGV4dCBjb250ZXh0QWZ0ZXJTZWxlY3Rpb25dLmxlbmd0aCk7CisKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoImhlbGxvIiwgW2NvbnRleHRBZnRlckluc2VydGluZ1RleHQgY29udGV4dEJl
Zm9yZVNlbGVjdGlvbl0pOworICAgIEVYUEVDVF9FUSgwVSwgW2NvbnRleHRBZnRlckluc2VydGlu
Z1RleHQgc2VsZWN0ZWRUZXh0XS5sZW5ndGgpOworICAgIEVYUEVDVF9FUSgwVSwgW2NvbnRleHRB
ZnRlckluc2VydGluZ1RleHQgY29udGV4dEFmdGVyU2VsZWN0aW9uXS5sZW5ndGgpOworCisgICAg
RVhQRUNUX0VRKDBVLCBbY29udGV4dEFmdGVyU2VsZWN0aW5nIGNvbnRleHRCZWZvcmVTZWxlY3Rp
b25dLmxlbmd0aCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJoZWxsbyIsIFtjb250ZXh0QWZ0ZXJT
ZWxlY3Rpbmcgc2VsZWN0ZWRUZXh0XSk7CisgICAgRVhQRUNUX0VRKDBVLCBbY29udGV4dEFmdGVy
U2VsZWN0aW5nIGNvbnRleHRBZnRlclNlbGVjdGlvbl0ubGVuZ3RoKTsKK30KKwogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>