<?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>86251</bug_id>
          
          <creation_ts>2012-05-11 14:01:14 -0700</creation_ts>
          <short_desc>REGRESSION(r116498): Causes crashes in major sites and security issues (Requested by schenney on #webkit).</short_desc>
          <delta_ts>2012-05-11 14:24:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>83405</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>inferno</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621951</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 14:01:14 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/116498 broke the build:
Causes crashes in major sites and security issues (Requested by schenney on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621953</commentid>
    <comment_count>1</comment_count>
      <attachid>141491</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 14:01:55 -0700</bug_when>
    <thetext>Created attachment 141491
ROLLOUT of r116498

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621962</commentid>
    <comment_count>2</comment_count>
      <attachid>141491</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 14:11:20 -0700</bug_when>
    <thetext>Comment on attachment 141491
ROLLOUT of r116498

Clearing flags on attachment: 141491

Committed r116801: &lt;http://trac.webkit.org/changeset/116801&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621963</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 14:11:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621977</commentid>
    <comment_count>4</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-05-11 14:24:27 -0700</bug_when>
    <thetext>This was rolled out due to being the #1 cause of crashes in Chrome.

It caused at least two distinct bugs:
1) https://bugs.webkit.org/show_bug.cgi?id=86166
2) http://code.google.com/p/chromium/issues/detail?id=127418</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141491</attachid>
            <date>2012-05-11 14:01:55 -0700</date>
            <delta_ts>2012-05-11 14:11:20 -0700</delta_ts>
            <desc>ROLLOUT of r116498</desc>
            <filename>bug-86251-20120511210552.patch</filename>
            <type>text/plain</type>
            <size>24573</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJiZjNjMGM0MDY1ODM3
N2NhMDMzYTVhNmEzMzAwNjA4YTFlZWNlMS4uMWM5YjIyNDc4NWQwMmQwODFkYThkNGQ0ZmRjYzBl
Y2FjNDYzM2YyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA1LTExICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTE2NDk4LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTY0OTgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MjUxCisKKyAgICAgICAgQ2F1c2VzIGNyYXNoZXMgaW4gbWFqb3Igc2l0ZXMg
YW5kIHNlY3VyaXR5IGlzc3VlcyAoUmVxdWVzdGVkCisgICAgICAgIGJ5IHNjaGVubmV5IG9uICN3
ZWJraXQpLgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjphZGRDaGlsZCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0lubGluZVRleHQ6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdJbmxpbmVUZXh0OjpzZXRUZXh0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHSW5saW5lVGV4dDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWN1cnNpdmVV
cGRhdGVMYXlvdXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6
OmxheW91dEF0dHJpYnV0ZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Rl
eHQ6OmxheW91dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHVGV4dDo6aW52YWxpZGF0ZVRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OnJlY3Vyc2l2ZVVwZGF0ZVNjYWxlZEZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHVGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Rl
eHQ6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OnJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OnJlYnVpbGRMYXlv
dXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5oOgorICAgICAgICAoUmVuZGVyU1ZHVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjpsYXlvdXRBdHRyaWJ1dGVzKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUm9v
dElubGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5
b3V0QXR0cmlidXRlcyk6CisKIDIwMTItMDUtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRnJhbWVWaWV3LT5tX2xhc3RQYWludFRpbWUgaXMgbm90
IHVwZGF0ZWQgaW4gdGhlIHRpbGVkIGRyYXdpbmcgY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCmluZGV4IDk4YWY4ZTk1OGIyOGM0NmE4
OTM5MjU1MGJlYTBjYWVmZmY2MGNjMDYuLmFiOGNjMWE4NzU1NTRhOTAzYzhkMTQzZGRjYzNlNWQw
OTUzZDcxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIFJlbmRlclNWR0lubGluZTo6YWRk
Q2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsK
ICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGNoaWxkLCBiZWZvcmVDaGlsZCk7CiAgICAgaWYg
KFJlbmRlclNWR1RleHQqIHRleHRSZW5kZXJlciA9IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRl
clNWR1RleHRBbmNlc3Rvcih0aGlzKSkKLSAgICAgICAgdGV4dFJlbmRlcmVyLT5zdWJ0cmVlQ2hp
bGRBZGRlZChjaGlsZCk7CisgICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0No
YW5nZWQoY2hpbGQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAppbmRleCBhMGRmNDExM2UzZmI4Nzk3YTdkNmZi
YTJkMjYxZDhkNzBmNTcwNzhhLi4wOWQ0NDZiN2Q2ZWViOWZmNTc4ZDU0NmEwOTUwMjc0YzVhN2Zh
ZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5jcHAKQEAgLTgxLDE2ICs4MSwyOCBAQCB2b2lkIFJlbmRlclNWR0lubGluZVRl
eHQ6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgfQogCiAgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRB
dHRyaWJ1dGVzKj4gYWZmZWN0ZWRBdHRyaWJ1dGVzOwotICAgIHRleHRSZW5kZXJlci0+c3VidHJl
ZUNoaWxkV2lsbEJlRGVzdHJveWVkKHRoaXMsIGFmZmVjdGVkQXR0cmlidXRlcyk7CisgICAgdGV4
dFJlbmRlcmVyLT5sYXlvdXRBdHRyaWJ1dGVzV2lsbEJlRGVzdHJveWVkKHRoaXMsIGFmZmVjdGVk
QXR0cmlidXRlcyk7CisKICAgICBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKLSAgICB0
ZXh0UmVuZGVyZXItPnN1YnRyZWVDaGlsZFdhc0Rlc3Ryb3llZCh0aGlzLCBhZmZlY3RlZEF0dHJp
YnV0ZXMpOworICAgIGlmIChhZmZlY3RlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIWRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICAgICAgdGV4
dFJlbmRlcmVyLT5yZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhhZmZlY3RlZEF0dHJpYnV0ZXMpOwog
fQogCiB2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnNldFRleHRJbnRlcm5hbChQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IHRleHQpCiB7CiAgICAgUmVuZGVyVGV4dDo6c2V0VGV4dEludGVybmFsKHRl
eHQpOwotICAgIGlmIChSZW5kZXJTVkdUZXh0KiB0ZXh0UmVuZGVyZXIgPSBSZW5kZXJTVkdUZXh0
Ojpsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IodGhpcykpCi0gICAgICAgIHRleHRSZW5kZXJl
ci0+c3VidHJlZVRleHRDaGFuZ2VkKHRoaXMpOworCisgICAgLy8gV2hlbiB0aGUgdW5kZXJseWlu
ZyB0ZXh0IGNvbnRlbnQgY2hhbmdlcywgY2FsbCBib3RoIHRleHRET01DaGFuZ2VkKCkgJiBsYXlv
dXRBdHRyaWJ1dGVzQ2hhbmdlZCgpCisgICAgLy8gVGhlIGZvcm1lciB3aWxsIGNsZWFyIHRoZSBT
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IGNhY2hlLCB3aGljaCBkZXBlbmRzIG9uIHRoZSB0ZXh0
TGVuZ3RoKCkgb2YKKyAgICAvLyB0aGUgUmVuZGVyU1ZHSW5saW5lVGV4dCBvYmplY3RzLCBhbmQg
dGh1cyBuZWVkcyB0byBiZSByZWJ1aWxkLiBUaGUgbGF0dGVyIHdpbGwgYXNzdXJlIHRoYXQgdGhl
CisgICAgLy8gU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBSZW5k
ZXJTVkdJbmxpbmVUZXh0IHdpbGwgYmUgdXBkYXRlZC4KKyAgICBpZiAoUmVuZGVyU1ZHVGV4dCog
dGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZHVGV4dEFuY2VzdG9y
KHRoaXMpKSB7CisgICAgICAgIHRleHRSZW5kZXJlci0+aW52YWxpZGF0ZVRleHRQb3NpdGlvbmlu
Z0VsZW1lbnRzKCk7CisgICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRlc0NoYW5n
ZWQodGhpcyk7CisgICAgfQogfQogCiB2b2lkIFJlbmRlclNWR0lubGluZVRleHQ6OnN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
CkBAIC0xMTUsNyArMTI3LDcgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmVUZXh0OjpzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUKIAogICAgIC8vIFRo
ZSB0ZXh0IG1ldHJpY3MgbWF5IGJlIGluZmx1ZW5jZWQgYnkgc3R5bGUgY2hhbmdlcy4KICAgICBp
ZiAoUmVuZGVyU1ZHVGV4dCogdGV4dFJlbmRlcmVyID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVu
ZGVyU1ZHVGV4dEFuY2VzdG9yKHRoaXMpKQotICAgICAgICB0ZXh0UmVuZGVyZXItPnN1YnRyZWVT
dHlsZUNoYW5nZWQodGhpcyk7CisgICAgICAgIHRleHRSZW5kZXJlci0+bGF5b3V0QXR0cmlidXRl
c0NoYW5nZWQodGhpcyk7CiB9CiAKIElubGluZVRleHRCb3gqIFJlbmRlclNWR0lubGluZVRleHQ6
OmNyZWF0ZVRleHRCb3goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5jcHAKaW5kZXggZjBmMGI5YzMyZWExMTJmOTViY2VlYTJiMjlhNjAwODYwYTJiNTUw
MC4uZjUxMmFiODdiNDM4ODBmNmVjMWYyNGVhYTBhMTlkMjkwN2YyYmFmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCkBAIC0xMTAsMjIgKzEx
MCwyNCBAQCB2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
d2FzRml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6OnN1YnRyZWVDaGlsZEFkZGVkKFJl
bmRlck9iamVjdCogY2hpbGQpCitzdGF0aWMgaW5saW5lIHZvaWQgcmVjdXJzaXZlVXBkYXRlTGF5
b3V0QXR0cmlidXRlcyhSZW5kZXJPYmplY3QqIHN0YXJ0LCBTVkdUZXh0TGF5b3V0QXR0cmlidXRl
c0J1aWxkZXImIGJ1aWxkZXIpCiB7Ci0gICAgQVNTRVJUKGNoaWxkKTsKLSAgICBpZiAobV9uZWVk
c1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlKQorICAgIGlmIChzdGFydC0+aXNTVkdJbmxpbmVUZXh0
KCkpIHsKKyAgICAgICAgYnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVy
ZXIodG9SZW5kZXJTVkdJbmxpbmVUZXh0KHN0YXJ0KSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9
CiAKLSAgICAvLyBUaGUgcG9zaXRpb25pbmcgZWxlbWVudHMgY2FjaGUgZG9lc24ndCBpbmNsdWRl
IHRoZSBuZXcgJ2NoaWxkJyB5ZXQuIENsZWFyIHRoZQotICAgIC8vIGNhY2hlLCBhcyB0aGUgbmV4
dCBidWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIoKSBjYWxsIHJlYnVpbGRzIGl0
LgotICAgIGludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOworICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBjaGlsZCA9IHN0YXJ0LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5uZXh0U2libGluZygpKQorICAgICAgICByZWN1cnNpdmVVcGRhdGVMYXlvdXRBdHRyaWJ1
dGVzKGNoaWxkLCBidWlsZGVyKTsKK30KIAordm9pZCBSZW5kZXJTVkdUZXh0OjpsYXlvdXRBdHRy
aWJ1dGVzQ2hhbmdlZChSZW5kZXJPYmplY3QqIGNoaWxkKQoreworICAgIEFTU0VSVChjaGlsZCk7
CisgICAgaWYgKG1fbmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSkKKyAgICAgICAgcmV0dXJu
OwogICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwot
ICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gY2hpbGQ7IGRlc2NlbmRhbnQ7IGRl
c2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcihjaGlsZCkpIHsKLSAgICAgICAg
aWYgKGRlc2NlbmRhbnQtPmlzU1ZHSW5saW5lVGV4dCgpKQotICAgICAgICAgICAgbV9sYXlvdXRB
dHRyaWJ1dGVzQnVpbGRlci5idWlsZExheW91dEF0dHJpYnV0ZXNGb3JUZXh0UmVuZGVyZXIodG9S
ZW5kZXJTVkdJbmxpbmVUZXh0KGRlc2NlbmRhbnQpKTsKLSAgICB9Ci0KKyAgICByZWN1cnNpdmVV
cGRhdGVMYXlvdXRBdHRyaWJ1dGVzKGNoaWxkLCBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyKTsK
ICAgICByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpOwogfQogCkBAIC0xNjAsMTggKzE2MiwxMiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgZmluZFByZXZpb3VzQW5kTmV4dEF0dHJpYnV0ZXMoUmVuZGVy
T2JqZWN0KiBzdGFydCwgUmVuZGVyU1ZHSQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBS
ZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5l
VGV4dCogdGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGFmZmVjdGVkQXR0
cmlidXRlcykKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0QXR0cmlidXRlc1dpbGxCZURlc3Ry
b3llZChSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJp
YnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKQogewogICAgIEFTU0VSVCh0ZXh0KTsKLQotICAg
IC8vIFRoZSBwb3NpdGlvbmluZyBlbGVtZW50cyBjYWNoZSBkZXBlbmRzIG9uIHRoZSBzaXplIG9m
IGVhY2ggdGV4dCByZW5kZXJlciBpbiB0aGUKLSAgICAvLyBzdWJ0cmVlLiBJZiB0aGlzIGNoYW5n
ZXMsIGNsZWFyIHRoZSBjYWNoZS4gSXQncyBnb2luZyB0byBiZSByZWJ1aWx0IGJlbG93LgotICAg
IGludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOwotCiAgICAgaWYgKG1fbmVlZHNQ
b3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVGhpcyBs
b2dpYyByZXF1aXJlcyB0aGF0IHRoZSAndGV4dCcgY2hpbGQgaXMgc3RpbGwgaW5zZXJ0ZWQgaW4g
dGhlIHRyZWUuCiAgICAgYm9vbCBzdG9wQWZ0ZXJOZXh0ID0gZmFsc2U7CiAgICAgU1ZHVGV4dExh
eW91dEF0dHJpYnV0ZXMqIHByZXZpb3VzID0gMDsKICAgICBTVkdUZXh0TGF5b3V0QXR0cmlidXRl
cyogbmV4dCA9IDA7CkBAIC0xODAsOTQgKzE3NiwyOSBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OnN1
YnRyZWVDaGlsZFdpbGxCZURlc3Ryb3llZChSZW5kZXJTVkdJbmxpbmVUZXh0KiB0ZXh0LCBWZWN0
bwogICAgICAgICBhZmZlY3RlZEF0dHJpYnV0ZXMuYXBwZW5kKHByZXZpb3VzKTsKICAgICBpZiAo
bmV4dCkKICAgICAgICAgYWZmZWN0ZWRBdHRyaWJ1dGVzLmFwcGVuZChuZXh0KTsKK30KIAotICAg
IFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKiBjdXJyZW50TGF5b3V0QXR0cmlidXRlcyA9IHRleHQt
PmxheW91dEF0dHJpYnV0ZXMoKTsKLQotICAgIHNpemVfdCBwb3NpdGlvbiA9IG1fbGF5b3V0QXR0
cmlidXRlcy5maW5kKGN1cnJlbnRMYXlvdXRBdHRyaWJ1dGVzKTsKLSAgICBBU1NFUlQocG9zaXRp
b24gIT0gbm90Rm91bmQpOwotICAgIG1fbGF5b3V0QXR0cmlidXRlcy5yZW1vdmUocG9zaXRpb24p
OwotCi0gICAgQVNTRVJUKCFtX2xheW91dEF0dHJpYnV0ZXMuY29udGFpbnMoY3VycmVudExheW91
dEF0dHJpYnV0ZXMpKTsKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6aW52YWxpZGF0ZVRleHRQb3NpdGlv
bmluZ0VsZW1lbnRzKCkKK3sKKyAgICAvLyBDbGVhciB0aGUgdGV4dCBwb3NpdGlvbmluZyBlbGVt
ZW50cy4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIHdoZW4gZWl0aGVyIHRoZSBjaGlsZHJlbgorICAg
IC8vIG9mIGEgRE9NIHRleHQgZWxlbWVudCBoYXZlIGNoYW5nZWQsIG9yIHRoZSBsZW5ndGggb2Yg
dGhlIHRleHQgaW4gYW55IGNoaWxkIGVsZW1lbnQKKyAgICAvLyBoYXMgY2hhbmdlZC4gRmFpbHVy
ZSB0byBjbGVhciBtYXkgbGVhdmUgdXMgd2l0aCBpbnZhbGlkIGVsZW1lbnRzLCBhcyBvdGhlciBj
b2RlIHBhdGhzCisgICAgLy8gZG8gbm90IGFsd2F5cyBjYXVzZSB0aGUgcG9zaXRpb24gZWxlbWVu
dHMgdG8gYmUgbWFya2VkIGludmFsaWQgYmVmb3JlIHVzZS4KKyAgICBtX2xheW91dEF0dHJpYnV0
ZXNCdWlsZGVyLmNsZWFyVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKIH0KIAotc3RhdGljIGlu
bGluZSB2b2lkIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKFJlbmRlck9iamVjdCog
c3RhcnQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBhdHRyaWJ1dGVzKQorc3Rh
dGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZVVwZGF0ZVNjYWxlZEZvbnQoUmVuZGVyT2JqZWN0KiBz
dGFydCkKIHsKICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBzdGFydC0+Zmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAo
Y2hpbGQtPmlzU1ZHSW5saW5lVGV4dCgpKSB7Ci0gICAgICAgICAgICBhdHRyaWJ1dGVzLmFwcGVu
ZCh0b1JlbmRlclNWR0lubGluZVRleHQoY2hpbGQpLT5sYXlvdXRBdHRyaWJ1dGVzKCkpOworICAg
ICAgICAgICAgdG9SZW5kZXJTVkdJbmxpbmVUZXh0KGNoaWxkKS0+dXBkYXRlU2NhbGVkRm9udCgp
OwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICByZWN1cnNpdmVD
b2xsZWN0TGF5b3V0QXR0cmlidXRlcyhjaGlsZCwgYXR0cmlidXRlcyk7Ci0gICAgfQotfQotCi1z
dGF0aWMgaW5saW5lIHZvaWQgY2hlY2tMYXlvdXRBdHRyaWJ1dGVzQ29uc2lzdGVuY3koUmVuZGVy
U1ZHVGV4dCogdGV4dCwgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGV4cGVjdGVk
TGF5b3V0QXR0cmlidXRlcykKLXsKLSNpZm5kZWYgTkRFQlVHCi0gICAgVmVjdG9yPFNWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzKj4gbmV3TGF5b3V0QXR0cmlidXRlczsKLSAgICByZWN1cnNpdmVDb2xs
ZWN0TGF5b3V0QXR0cmlidXRlcyh0ZXh0LCBuZXdMYXlvdXRBdHRyaWJ1dGVzKTsKLSAgICBBU1NF
UlQobmV3TGF5b3V0QXR0cmlidXRlcyA9PSBleHBlY3RlZExheW91dEF0dHJpYnV0ZXMpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0odGV4dCk7Ci0gICAgVU5VU0VEX1BBUkFNKGV4cGVjdGVkTGF5
b3V0QXR0cmlidXRlcyk7Ci0jZW5kaWYKLX0KLQotdm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVl
Q2hpbGRXYXNEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCosIFZlY3RvcjxTVkdUZXh0TGF5
b3V0QXR0cmlidXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCi17Ci0gICAgaWYgKGRvY3VtZW50
QmVpbmdEZXN0cm95ZWQoKSB8fCBhZmZlY3RlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBjaGVja0xheW91dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeSh0aGlzLCBt
X2xheW91dEF0dHJpYnV0ZXMpOwotCi0gICAgc2l6ZV90IHNpemUgPSBhZmZlY3RlZEF0dHJpYnV0
ZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAg
ICBtX2xheW91dEF0dHJpYnV0ZXNCdWlsZGVyLnJlYnVpbGRNZXRyaWNzRm9yVGV4dFJlbmRlcmVy
KGFmZmVjdGVkQXR0cmlidXRlc1tpXS0+Y29udGV4dCgpKTsKLX0KLQotdm9pZCBSZW5kZXJTVkdU
ZXh0OjpzdWJ0cmVlU3R5bGVDaGFuZ2VkKFJlbmRlclNWR0lubGluZVRleHQqIHRleHQpCi17Ci0g
ICAgQVNTRVJUKHRleHQpOwotICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBtZXRyaWNzIGNhY2hl
LCBidXQgbm90IHRoZSB0ZXh0IHBvc2l0aW9uaW5nIGVsZW1lbnQgY2FjaGUKLSAgICAvLyBub3Ig
dGhlIGxheW91dCBhdHRyaWJ1dGVzIGNhY2hlZCBpbiB0aGUgbGVhZiAjdGV4dCByZW5kZXJlcnMu
Ci0gICAgRm9udENhY2hlUHVyZ2VQcmV2ZW50ZXIgZm9udENhY2hlUHVyZ2VQcmV2ZW50ZXI7Ci0g
ICAgZm9yIChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSB0ZXh0OyBkZXNjZW5kYW50OyBkZXNj
ZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIodGV4dCkpIHsKLSAgICAgICAgaWYg
KGRlc2NlbmRhbnQtPmlzU1ZHSW5saW5lVGV4dCgpKQotICAgICAgICAgICAgbV9sYXlvdXRBdHRy
aWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0ZvclRleHRSZW5kZXJlcih0b1JlbmRlclNWR0lu
bGluZVRleHQoZGVzY2VuZGFudCkpOwotICAgIH0KLX0KLQotdm9pZCBSZW5kZXJTVkdUZXh0Ojpz
dWJ0cmVlVGV4dENoYW5nZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCogdGV4dCkKLXsKLSAgICBBU1NF
UlQodGV4dCk7Ci0KLSAgICAvLyBUaGUgcG9zaXRpb25pbmcgZWxlbWVudHMgY2FjaGUgZGVwZW5k
cyBvbiB0aGUgc2l6ZSBvZiBlYWNoIHRleHQgcmVuZGVyZXIgaW4gdGhlCi0gICAgLy8gc3VidHJl
ZS4gSWYgdGhpcyBjaGFuZ2VzLCBjbGVhciB0aGUgY2FjaGUuIEl0J3MgZ29pbmcgdG8gYmUgcmVi
dWlsdCBiZWxvdy4KLSAgICBpbnZhbGlkYXRlVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKTsKLQot
ICAgIGlmIChtX25lZWRzUG9zaXRpb25pbmdWYWx1ZXNVcGRhdGUpCi0gICAgICAgIHJldHVybjsK
LQotICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwot
ICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gdGV4dDsgZGVzY2VuZGFudDsgZGVz
Y2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHRleHQpKSB7Ci0gICAgICAgIGlm
IChkZXNjZW5kYW50LT5pc1NWR0lubGluZVRleHQoKSkKLSAgICAgICAgICAgIG1fbGF5b3V0QXR0
cmlidXRlc0J1aWxkZXIuYnVpbGRMYXlvdXRBdHRyaWJ1dGVzRm9yVGV4dFJlbmRlcmVyKHRvUmVu
ZGVyU1ZHSW5saW5lVGV4dChkZXNjZW5kYW50KSk7CisgICAgICAgIHJlY3Vyc2l2ZVVwZGF0ZVNj
YWxlZEZvbnQoY2hpbGQpOwogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0OjppbnZhbGlk
YXRlVGV4dFBvc2l0aW9uaW5nRWxlbWVudHMoKQotewotICAgIC8vIENsZWFyIHRoZSB0ZXh0IHBv
c2l0aW9uaW5nIGVsZW1lbnRzLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBlaXRoZXIgdGhl
IGNoaWxkcmVuCi0gICAgLy8gb2YgYSBET00gdGV4dCBlbGVtZW50IGhhdmUgY2hhbmdlZCwgb3Ig
dGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBpbiBhbnkgY2hpbGQgZWxlbWVudAotICAgIC8vIGhhcyBj
aGFuZ2VkLiBGYWlsdXJlIHRvIGNsZWFyIG1heSBsZWF2ZSB1cyB3aXRoIGludmFsaWQgZWxlbWVu
dHMsIGFzIG90aGVyIGNvZGUgcGF0aHMKLSAgICAvLyBkbyBub3QgYWx3YXlzIGNhdXNlIHRoZSBw
b3NpdGlvbiBlbGVtZW50cyB0byBiZSBtYXJrZWQgaW52YWxpZCBiZWZvcmUgdXNlLgotICAgIG1f
bGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuY2xlYXJUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOwot
fQotCiB2b2lkIFJlbmRlclNWR1RleHQ6OmxheW91dCgpCiB7CiAgICAgQVNTRVJUKG5lZWRzTGF5
b3V0KCkpOwpAQCAtMjg0LDEyICsyMTUsOCBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmxheW91dCgp
CiAgICAgLy8gSWYgdGhlIHJvb3QgbGF5b3V0IHNpemUgY2hhbmdlZCAoZWcuIHdpbmRvdyBzaXpl
IGNoYW5nZXMpIG9yIHRoZSBwb3NpdGlvbmluZyB2YWx1ZXMgY2hhbmdlCiAgICAgLy8gb3IgdGhl
IHRyYW5zZm9ybSB0byB0aGUgcm9vdCBjb250ZXh0IGhhcyBjaGFuZ2VkIHRoZW4gcmVjb21wdXRl
IHRoZSBvbi1zY3JlZW4gZm9udCBzaXplLgogICAgIGlmIChtX25lZWRzVGV4dE1ldHJpY3NVcGRh
dGUgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluZFRyZWVSb290T2JqZWN0KHRoaXMpLT5pc0xheW91
dFNpemVDaGFuZ2VkKCkpIHsKLSAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQg
PSB0aGlzOyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3Jk
ZXIodGhpcykpIHsKLSAgICAgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1NWR0lubGluZVRleHQo
KSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlclNWR0lubGluZVRleHQoZGVzY2VuZGFudCktPnVw
ZGF0ZVNjYWxlZEZvbnQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlYnVpbGRBbGxMYXlvdXRB
dHRyaWJ1dGVzKCk7CisgICAgICAgIHJlY3Vyc2l2ZVVwZGF0ZVNjYWxlZEZvbnQodGhpcyk7Cisg
ICAgICAgIHJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKHRydWUpOwogICAgICAgICB1cGRhdGVDYWNo
ZWRCb3VuZGFyaWVzSW5QYXJlbnRzID0gdHJ1ZTsKICAgICAgICAgbV9uZWVkc1RleHRNZXRyaWNz
VXBkYXRlID0gZmFsc2U7CiAgICAgfQpAQCAtNDM3LDcgKzM2NCw3IEBAIEZsb2F0UmVjdCBSZW5k
ZXJTVkdUZXh0OjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0CiB2b2lkIFJl
bmRlclNWR1RleHQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCog
YmVmb3JlQ2hpbGQpCiB7CiAgICAgUmVuZGVyU1ZHQmxvY2s6OmFkZENoaWxkKGNoaWxkLCBiZWZv
cmVDaGlsZCk7Ci0gICAgc3VidHJlZUNoaWxkQWRkZWQoY2hpbGQpOworICAgIGxheW91dEF0dHJp
YnV0ZXNDaGFuZ2VkKGNoaWxkKTsKIH0KIAogLy8gRml4IGZvciA8cmRhcjovL3Byb2JsZW0vODA0
ODg3NT4uIFdlIHNob3VsZCBub3QgcmVuZGVyIDpmaXJzdC1saW5lIENTUyBTdHlsZQpAQCAtNDUz
LDIzICszODAsMzggQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojp1cGRhdGVGaXJzdExldHRlcigpCiB7
CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6cmVidWlsZEFsbExheW91dEF0dHJpYnV0ZXMoKQor
c3RhdGljIGlubGluZSB2b2lkIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRyaWJ1dGVzKFJlbmRl
ck9iamVjdCogc3RhcnQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBhdHRyaWJ1
dGVzKQogewotICAgIG1fbGF5b3V0QXR0cmlidXRlcy5jbGVhcigpOwotICAgIHJlY3Vyc2l2ZUNv
bGxlY3RMYXlvdXRBdHRyaWJ1dGVzKHRoaXMsIG1fbGF5b3V0QXR0cmlidXRlcyk7Ci0gICAgaWYg
KG1fbGF5b3V0QXR0cmlidXRlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBmb3Ig
KFJlbmRlck9iamVjdCogY2hpbGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmlzU1ZHSW5saW5l
VGV4dCgpKSB7CisgICAgICAgICAgICBhdHRyaWJ1dGVzLmFwcGVuZCh0b1JlbmRlclNWR0lubGlu
ZVRleHQoY2hpbGQpLT5sYXlvdXRBdHRyaWJ1dGVzKCkpOworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KIAotICAgIG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIucmVidWlsZE1ldHJp
Y3NGb3JXaG9sZVRyZWUodGhpcyk7CisgICAgICAgIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRy
aWJ1dGVzKGNoaWxkLCBhdHRyaWJ1dGVzKTsKKyAgICB9CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4
dDo6cmVidWlsZExheW91dEF0dHJpYnV0ZXMoKQordm9pZCBSZW5kZXJTVkdUZXh0OjpyZWJ1aWxk
TGF5b3V0QXR0cmlidXRlcyhib29sIHBlcmZvcm1GdWxsUmVidWlsZCkKIHsKKyAgICBpZiAocGVy
Zm9ybUZ1bGxSZWJ1aWxkKQorICAgICAgICBtX2xheW91dEF0dHJpYnV0ZXMuY2xlYXIoKTsKKwog
ICAgIGlmIChtX2xheW91dEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlYnVpbGRB
bGxMYXlvdXRBdHRyaWJ1dGVzKCk7CisgICAgICAgIHJlY3Vyc2l2ZUNvbGxlY3RMYXlvdXRBdHRy
aWJ1dGVzKHRoaXMsIG1fbGF5b3V0QXR0cmlidXRlcyk7CisgICAgICAgIGlmIChtX2xheW91dEF0
dHJpYnV0ZXMuaXNFbXB0eSgpIHx8ICFwZXJmb3JtRnVsbFJlYnVpbGQpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmlj
c0Zvcldob2xlVHJlZSh0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIFZlY3Rv
cjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IGFmZmVjdGVkQXR0cmlidXRlczsKKyAgICByZWJ1
aWxkTGF5b3V0QXR0cmlidXRlcyhhZmZlY3RlZEF0dHJpYnV0ZXMpOworfQorCit2b2lkIFJlbmRl
clNWR1RleHQ6OnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0
cmlidXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCit7CiAgICAgLy8gRGV0ZWN0IGNoYW5nZXMg
aW4gbGF5b3V0IGF0dHJpYnV0ZXMgYW5kIG9ubHkgbWVhc3VyZSB0aG9zZSB0ZXh0IHBhcnRzIHRo
YXQgaGF2ZSBjaGFuZ2VkIQogICAgIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+IG5l
d0xheW91dEF0dHJpYnV0ZXM7CiAgICAgcmVjdXJzaXZlQ29sbGVjdExheW91dEF0dHJpYnV0ZXMo
dGhpcywgbmV3TGF5b3V0QXR0cmlidXRlcyk7CkBAIC00NzgsNyArNDIwLDcgQEAgdm9pZCBSZW5k
ZXJTVkdUZXh0OjpyZWJ1aWxkTGF5b3V0QXR0cmlidXRlcygpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICAvLyBDb21wYXJlIG1fbGF5b3V0QXR0cmlidXRlcyB3aXRoIG5ld0xheW91dEF0
dHJpYnV0ZXMgdG8gZmlndXJlIG91dCB3aGljaCBhdHRyaWJ1dGVzIGdvdCBhZGRlZC4KKyAgICAv
LyBDb21wYXJlIG1fbGF5b3V0QXR0cmlidXRlcyB3aXRoIG5ld0xheW91dEF0dHJpYnV0ZXMgdG8g
ZmlndXJlIG91dCB3aGljaCBhdHRyaWJ1dGVzIGdvdCBhZGRlZC9yZW1vdmVkLgogICAgIHNpemVf
dCBzaXplID0gbmV3TGF5b3V0QXR0cmlidXRlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgU1ZHVGV4dExheW91dEF0dHJpYnV0ZXMqIGF0
dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1dGVzW2ldOwpAQCAtNDg2LDYgKzQyOCwxMCBAQCB2
b2lkIFJlbmRlclNWR1RleHQ6OnJlYnVpbGRMYXlvdXRBdHRyaWJ1dGVzKCkKICAgICAgICAgICAg
IG1fbGF5b3V0QXR0cmlidXRlc0J1aWxkZXIucmVidWlsZE1ldHJpY3NGb3JUZXh0UmVuZGVyZXIo
YXR0cmlidXRlcy0+Y29udGV4dCgpKTsKICAgICB9CiAKKyAgICBzaXplID0gYWZmZWN0ZWRBdHRy
aWJ1dGVzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAg
ICAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5yZWJ1aWxkTWV0cmljc0ZvclRleHRSZW5k
ZXJlcihhZmZlY3RlZEF0dHJpYnV0ZXNbaV0tPmNvbnRleHQoKSk7CisKICAgICBtX2xheW91dEF0
dHJpYnV0ZXMgPSBuZXdMYXlvdXRBdHRyaWJ1dGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IDIzYTBiNmE5YTZjYmY0OGQwYzYyNjI1
Y2E5ZmIxNmUzNThjOWM3MjcuLjU2NjViNDQ0MmU0YzA3MTZlZTk1N2Y2ZDQwMzI3Njk4OGI2N2Q5
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBA
IC00OCwxOCArNDgsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBSZW5kZXJTVkdUZXh0
KiBsb2NhdGVSZW5kZXJTVkdUZXh0QW5jZXN0b3IoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKICAg
ICBib29sIG5lZWRzUmVvcmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNSZW9yZGVyaW5n
OyB9Ci0gICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4mIGxheW91dEF0dHJpYnV0
ZXMoKSB7IHJldHVybiBtX2xheW91dEF0dHJpYnV0ZXM7IH0KLQotICAgIHZvaWQgc3VidHJlZUNo
aWxkQWRkZWQoUmVuZGVyT2JqZWN0Kik7Ci0gICAgdm9pZCBzdWJ0cmVlQ2hpbGRXaWxsQmVEZXN0
cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCosIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRl
cyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOwotICAgIHZvaWQgc3VidHJlZUNoaWxkV2FzRGVzdHJv
eWVkKFJlbmRlclNWR0lubGluZVRleHQqLCBWZWN0b3I8U1ZHVGV4dExheW91dEF0dHJpYnV0ZXMq
PiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKLSAgICB2b2lkIHN1YnRyZWVTdHlsZUNoYW5nZWQoUmVu
ZGVyU1ZHSW5saW5lVGV4dCopOwotICAgIHZvaWQgc3VidHJlZVRleHRDaGFuZ2VkKFJlbmRlclNW
R0lubGluZVRleHQqKTsKIAogICAgIC8vIENhbGwgdGhpcyBtZXRob2Qgd2hlbiBlaXRoZXIgdGhl
IGNoaWxkcmVuIG9mIGEgRE9NIHRleHQgZWxlbWVudCBoYXZlIGNoYW5nZWQsIG9yIHRoZSBsZW5n
dGggb2YKICAgICAvLyB0aGUgdGV4dCBpbiBhbnkgY2hpbGQgZWxlbWVudCBoYXMgY2hhbmdlZC4K
ICAgICB2b2lkIGludmFsaWRhdGVUZXh0UG9zaXRpb25pbmdFbGVtZW50cygpOwogCisgICAgdm9p
ZCBsYXlvdXRBdHRyaWJ1dGVzQ2hhbmdlZChSZW5kZXJPYmplY3QqKTsKKyAgICB2b2lkIGxheW91
dEF0dHJpYnV0ZXNXaWxsQmVEZXN0cm95ZWQoUmVuZGVyU1ZHSW5saW5lVGV4dCosIFZlY3RvcjxT
VkdUZXh0TGF5b3V0QXR0cmlidXRlcyo+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpOworICAgIHZvaWQg
cmVidWlsZExheW91dEF0dHJpYnV0ZXMoYm9vbCBwZXJmb3JtRnVsbFJlYnVpbGQgPSBmYWxzZSk7
CisgICAgdm9pZCByZWJ1aWxkTGF5b3V0QXR0cmlidXRlcyhWZWN0b3I8U1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMqPiYgYWZmZWN0ZWRBdHRyaWJ1dGVzKTsKKworICAgIFZlY3RvcjxTVkdUZXh0TGF5
b3V0QXR0cmlidXRlcyo+JiBsYXlvdXRBdHRyaWJ1dGVzKCkgeyByZXR1cm4gbV9sYXlvdXRBdHRy
aWJ1dGVzOyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNWR1RleHQiOyB9CiAgICAgdmlydHVhbCBib29sIGlz
U1ZHVGV4dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTkxLDkgKzkxLDYgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJzdExpbmVCbG9jaygpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGaXJzdExldHRlcigpOwogCi0gICAgdm9pZCByZWJ1aWxkQWxs
TGF5b3V0QXR0cmlidXRlcygpOwotICAgIHZvaWQgcmVidWlsZExheW91dEF0dHJpYnV0ZXMoKTsK
LQogICAgIGJvb2wgbV9uZWVkc1Jlb3JkZXJpbmcgOiAxOwogICAgIGJvb2wgbV9uZWVkc1Bvc2l0
aW9uaW5nVmFsdWVzVXBkYXRlIDogMTsKICAgICBib29sIG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUg
OiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5s
aW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJv
eC5jcHAKaW5kZXggMzRlOTNhMDJlZjc0MzJlM2MyNmVmMjM2MGQxY2YzZmQ0MzdlNDE2ZS4uNTcx
NDZjOTBjODM4YWI2NTMzYTQzZTczODA1NmUzODJlNWU4NWM5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCkBAIC03Myw2ICs3Myw3
IEBAIHZvaWQgU1ZHUm9vdElubGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9y
bWF0aW9uKCkKICAgICBSZW5kZXJTVkdUZXh0KiB0ZXh0Um9vdCA9IHRvUmVuZGVyU1ZHVGV4dChi
bG9jaygpKTsKICAgICBBU1NFUlQodGV4dFJvb3QpOwogCisgICAgdGV4dFJvb3QtPnJlYnVpbGRM
YXlvdXRBdHRyaWJ1dGVzKCk7CiAgICAgVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4m
IGxheW91dEF0dHJpYnV0ZXMgPSB0ZXh0Um9vdC0+bGF5b3V0QXR0cmlidXRlcygpOwogICAgIGlm
IChsYXlvdXRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0
cmlidXRlc0J1aWxkZXIuY3BwCmluZGV4IDA2N2JmNmJiOTdhMjdmMGUxNjE1MzAxNDZjNWY5ZWRi
OTc1OTViYjguLjAyYTIxMjNlYjY2N2VjY2Y3M2YwODBmNmJiNGU2ZmVjYTVkMmYzZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dExheW91dEF0dHJpYnV0
ZXNCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRM
YXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jcHAKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNsdWRlICJS
ZW5kZXJTVkdUZXh0LmgiCiAjaW5jbHVkZSAiU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIgog
CisvLyBTZXQgdG8gYSB2YWx1ZSA+IDAgdG8gZHVtcCB0aGUgdGV4dCBsYXlvdXQgYXR0cmlidXRl
cworI2RlZmluZSBEVU1QX1RFWFRfTEFZT1VUX0FUVFJJQlVURVMgMAorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzQnVpbGRlcjo6U1ZHVGV4dExheW91dEF0
dHJpYnV0ZXNCdWlsZGVyKCkKQEAgLTE3MCw2ICsxNzMsMTEgQEAgdm9pZCBTVkdUZXh0TGF5b3V0
QXR0cmlidXRlc0J1aWxkZXI6OmJ1aWxkTGF5b3V0QXR0cmlidXRlcyhSZW5kZXJTVkdUZXh0KiB0
ZXh0Um8KICAgICB1bnNpZ25lZCBzaXplID0gbV90ZXh0UG9zaXRpb25zLnNpemUoKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBmaWxsQ2hhcmFjdGVy
RGF0YU1hcChtX3RleHRQb3NpdGlvbnNbaV0pOworCisjaWYgRFVNUF9URVhUX0xBWU9VVF9BVFRS
SUJVVEVTID4gMAorICAgIGZwcmludGYoc3RkZXJyLCAiXG5EdW1waW5nIEFMTCBsYXlvdXQgYXR0
cmlidXRlcyBmb3IgUmVuZGVyU1ZHVGV4dCwgcmVuZGVyZXI9JXAsIG5vZGU9JXAgKG1fdGV4dExl
bmd0aDogJWkpXG4iLCB0ZXh0Um9vdCwgdGV4dFJvb3QtPm5vZGUoKSwgbV90ZXh0TGVuZ3RoKTsK
KyAgICBtX2NoYXJhY3RlckRhdGFNYXAuZHVtcCgpOworI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxp
bmUgdm9pZCB1cGRhdGVDaGFyYWN0ZXJEYXRhKHVuc2lnbmVkIGksIGZsb2F0JiBsYXN0Um90YXRp
b24sIFNWR0NoYXJhY3RlckRhdGEmIGRhdGEsIGNvbnN0IFNWR0xlbmd0aENvbnRleHQmIGxlbmd0
aENvbnRleHQsIGNvbnN0IFNWR0xlbmd0aExpc3QqIHhMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0
KiB5TGlzdCwgY29uc3QgU1ZHTGVuZ3RoTGlzdCogZHhMaXN0LCBjb25zdCBTVkdMZW5ndGhMaXN0
KiBkeUxpc3QsIGNvbnN0IFNWR051bWJlckxpc3QqIHJvdGF0ZUxpc3QpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWVlZWEy
MWQ3OWJmMzI4ZDZhMDRjOTQ2ZjgzNmU0NmRjYmZjOGIxOS4uOWM2YTY4ODc1MGU3Yjk3N2RhYzQ5
Y2UxZGJlNTA5ODNkMzNiYzM2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTExICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTE2NDk4LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMTY0OTgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MjUxCisKKyAgICAgICAgQ2F1c2VzIGNyYXNoZXMgaW4gbWFqb3Igc2l0
ZXMgYW5kIHNlY3VyaXR5IGlzc3VlcyAoUmVxdWVzdGVkCisgICAgICAgIGJ5IHNjaGVubmV5IG9u
ICN3ZWJraXQpLgorCisgICAgICAgICogc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy1l
eHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy90ZXh0L2FkZC10c3Bhbi1wb3Np
dGlvbi1idWcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvdGV4dC9tb2RpZnktdHNwYW4t
cG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3RleHQv
bW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sOiBSZW1vdmVkLgorCiAyMDEyLTA1LTExICBB
bGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFNo
YWRlcnNdIE1ha2UgQ1NTIFNoYWRlcnMgcmVuZGVyIHRvIHRleHR1cmUgZnJhbWVidWZmZXJzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVnLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9hZGQtdHNwYW4tcG9zaXRpb24tYnVn
LWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxZjg4OWJjOWI2
ZjJkYmM4MDAyMWRkZDU1YzRiOWYwZGI0MmZmMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0
aW9uLWJ1Zy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c3ZnPgotPHRleHQgaWQ9InRleHQiIHk9IjUw
Ij48dHNwYW4+U2hvdWxkIGJlIG9uPC90c3Bhbj48dHNwYW4gZHk9IjMwIj5kaWZmZXJlbnQgbGlu
ZXM8L3RzcGFuPjwvdGV4dD4KLTwvc3ZnPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sIGIvTGF5b3V0
VGVzdHMvc3ZnL3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkMzNjNTdmZmFhZDJiODM1ZDExMWFiYTFjMDE0YmM3OWEwYWE2Y2Fh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3N2Zy90ZXh0L2FkZC10c3Bhbi1wb3NpdGlvbi1idWcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keSBvbmxvYWQ9Imxv
YWRlZCgpIj4KLTxzdmc+Ci08dGl0bGU+VGhpcyB0ZXN0IHVzZWQgdG8gYmUgbGFpZCBvdXQgb24g
YSBzaW5nbGUgbGluZSwgaW5zdGVhZCBvZiBtdWx0aXBsZSBvbmVzPC90aXRsZT4KLTx0ZXh0IGlk
PSJ0ZXh0IiB5PSI1MCI+PC90ZXh0PgotCi08c2NyaXB0PgotdmFyIHRleHQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgidGV4dCIpWzBdOwotCi1mdW5jdGlvbiBhZGRTcGFucygpIHsK
LSAgICB2YXIgdHNwYW4xID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIsICJ0c3BhbiIpOwotICAgIHRzcGFuMS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiU2hvdWxkIGJlIG9uIikpOwotCi0gICAgdmFyIHRzcGFuMiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAidHNw
YW4iKTsKLSAgICB0c3BhbjIuc2V0QXR0cmlidXRlKCJkeSIsICIzMCIpOwotICAgIHRzcGFuMi5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiZGlmZmVyZW50IGxpbmVzIikpOwot
Ci0gICAgdGV4dC5hcHBlbmRDaGlsZCh0c3BhbjEpOwotICAgIHRleHQuYXBwZW5kQ2hpbGQodHNw
YW4yKTsKLQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLQotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
Ci0KLWZ1bmN0aW9uIGxvYWRlZCgpIHsKLSAgICAvLyBCdWcgaXMgb25seSB0cmlnZ2VyIGZyb20g
YW5vdGhlciBsb29wLgotICAgIHNldFRpbWVvdXQoYWRkU3BhbnMsIDApOwotfQotPC9zY3JpcHQ+
Ci08L3N2Zz4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy90
ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L3N2Zy90ZXh0L21vZGlmeS10c3Bhbi1wb3NpdGlvbi1idWctZXhwZWN0ZWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFmODg5YmM5YjZmMmRiYzgwMDIxZGRkNTVjNGI5ZjBk
YjQyZmYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLWV4cGVjdGVkLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08Ym9keT4KLTxzdmc+Ci08dGV4dCBpZD0idGV4dCIgeT0iNTAiPjx0c3Bhbj5TaG91bGQgYmUg
b248L3RzcGFuPjx0c3BhbiBkeT0iMzAiPmRpZmZlcmVudCBsaW5lczwvdHNwYW4+PC90ZXh0Pgot
PC9zdmc+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvdGV4
dC9tb2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvdGV4dC9t
b2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRlYTlkMDc1YTY5NWZmMmZkNGQ4ZTVhZjMxZjkwZmFlYmJhNTFmYjUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL3RleHQv
bW9kaWZ5LXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgot
PHN2Zz4KLTx0aXRsZT5UaGlzIHRlc3QgdXNlZCB0byBiZSBsYWlkIG91dCBvbiBhIHNpbmdsZSBs
aW5lLCBpbnN0ZWFkIG9mIG11bHRpcGxlIG9uZXM8L3RpdGxlPgotPHRleHQgaWQ9InRleHQiIHk9
IjUwIj48L3RleHQ+Ci0KLTxzY3JpcHQ+Ci12YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJ0ZXh0IilbMF07Ci0KLWZ1bmN0aW9uIGFkZFNwYW5zKCkgewotICAgIHZhciB0
c3BhbjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiwgInRzcGFuIik7Ci0gICAgdHNwYW4xLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJTaG91bGQgYmUgb24iKSk7Ci0KLSAgICB0c3BhbjIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRzcGFuIik7Ci0gICAgdHNw
YW4yLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJkaWZmZXJlbnQgbGluZXMi
KSk7Ci0KLSAgICB0ZXh0LmFwcGVuZENoaWxkKHRzcGFuMSk7Ci0gICAgdGV4dC5hcHBlbmRDaGls
ZCh0c3BhbjIpOwotCi0gICAgLy8gQnVnIGlzIG9ubHkgdHJpZ2dlciBmcm9tIGFub3RoZXIgbG9v
cC4KLSAgICBzZXRUaW1lb3V0KG1vdmVTcGFuLCAwKTsKLX0KLQotZnVuY3Rpb24gbW92ZVNwYW4o
KSB7Ci0gICAgdHNwYW4yLnNldEF0dHJpYnV0ZSgiZHkiLCAiMzAiKTsKLQotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKLX0KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0KLWZ1bmN0aW9uIGxvYWRlZCgp
IHsKLSAgICAvLyBCdWcgaXMgb25seSB0cmlnZ2VyIGZyb20gYW5vdGhlciBsb29wLgotICAgIHNl
dFRpbWVvdXQoYWRkU3BhbnMsIDApOwotfQotPC9zY3JpcHQ+Ci08L3N2Zz4KLTwvYm9keT4KLTwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>