<?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>31067</bug_id>
          
          <creation_ts>2009-11-03 09:50:33 -0800</creation_ts>
          <short_desc>Chromium crashes when a plugin invokes the document.open function via NPAPI</short_desc>
          <delta_ts>2009-11-10 14:22:16 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ananta Iyengar">ananta</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160098</commentid>
    <comment_count>0</comment_count>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-11-03 09:50:33 -0800</bug_when>
    <thetext>This is a chromium only issue.
If a plugin invokes the document.open function on the document object via the NPN_Invoke function 
then the chrome renderer process crashes.

The crash occurs in the V8 bindings code.

The associated chromium bug is http://code.google.com/p/chromium/issues/detail?id=25703

I will submit a patch for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160186</commentid>
    <comment_count>1</comment_count>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-11-03 13:19:08 -0800</bug_when>
    <thetext>This crash occurs if the plugin invokes the NPN_Invoke API to open a document via document.open without an associated javascript context.

If the NPN_Invoke API is used to open a popup via window.open, it fails as well in Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160264</commentid>
    <comment_count>2</comment_count>
      <attachid>42435</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-11-03 16:28:51 -0800</bug_when>
    <thetext>Created attachment 42435
Initial patch with layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160314</commentid>
    <comment_count>3</comment_count>
      <attachid>42435</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-03 21:52:35 -0800</bug_when>
    <thetext>Comment on attachment 42435
Initial patch with layout tests.

This looks great.  A couple minor issues:

 123     if (frame)
 124         htmlDocument-&gt;write(writeHelperGetString(args), frame-&gt;document());

We can call htmlDocument-&gt;write even when |frame| is null.  We can just pass a null second argument.

In your LayoutTest/ChangeLog, you have several copies of the change description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160691</commentid>
    <comment_count>4</comment_count>
      <attachid>42538</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-11-04 19:24:37 -0800</bug_when>
    <thetext>Created attachment 42538
Updated patch based on initial review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160920</commentid>
    <comment_count>5</comment_count>
      <attachid>42586</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-11-05 12:28:06 -0800</bug_when>
    <thetext>Created attachment 42586
Updated patch which now passes layout test runs on mac and windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161229</commentid>
    <comment_count>6</comment_count>
      <attachid>42669</attachid>
    <who name="Ananta Iyengar">ananta</who>
    <bug_when>2009-11-06 12:39:16 -0800</bug_when>
    <thetext>Created attachment 42669
Updated patch with the document.open invocation from the plugin now done in npp_destroystream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161248</commentid>
    <comment_count>7</comment_count>
      <attachid>42669</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-06 14:40:53 -0800</bug_when>
    <thetext>Comment on attachment 42669
Updated patch with the document.open invocation from the plugin now done in npp_destroystream

This looks great.  One typo:

 132     if (frame)
 133         htmlDocument-&gt;writeln(writeHelperGetString(args), frame ? frame-&gt;document() : NULL);

We don&apos;t want the &quot;if (frame)&quot; here.  I can either fix this you on landing or we can use commit-queue if you upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161252</commentid>
    <comment_count>8</comment_count>
      <attachid>42672</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-06 14:49:32 -0800</bug_when>
    <thetext>Created attachment 42672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161256</commentid>
    <comment_count>9</comment_count>
      <attachid>42672</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-06 15:00:55 -0800</bug_when>
    <thetext>Comment on attachment 42672
Patch

Clearing flags on attachment: 42672

Committed r50607: &lt;http://trac.webkit.org/changeset/50607&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161257</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-06 15:01:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162218</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-11-10 14:22:16 -0800</bug_when>
    <thetext>Hi guys,

Running plugins/window-open.html with Qt WebKit does not open any window. Can you give me any hints on where to look in the code base for fixing this?

It basically calls invoke which uses a cross platform implementation. Our DRT also supports opening windows.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42435</attachid>
            <date>2009-11-03 16:28:51 -0800</date>
            <delta_ts>2009-11-04 19:24:37 -0800</delta_ts>
            <desc>Initial patch with layout tests.</desc>
            <filename>V8BindingsFix.txt</filename>
            <type>text/plain</type>
            <size>16091</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDQ4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMTEtMDMgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxh
bmFudGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LAorICAgICAgICB3aGljaCBhZmZlY3RzIENo
cm9taXVtIG9ubHkuCisgICAgICAgIAorICAgICAgICBDaGFuZ2VzIHRvIFY4SFRNTERvY3VtZW50
Q3VzdG9tLmNwcCBhcmUgYXMgYmVsb3c6LQorICAgICAgICAxLiBUaGUgSFRNTERvY3VtZW50T3Bl
biBmdW5jdGlvbiB3b3VsZCBjYXVzZSBhIGNyYXNoIGluIENocm9taXVtIGlmCisgICAgICAgICAg
IHRoZXJlIHdhcyBubyBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dC4gV2Ugbm93IGNoZWNrIGZv
ciB0aGlzIGNhc2UKKyAgICAgICAgICAgYW5kIHBhc3MgaW4gTlVMTCB0byB0aGUgSFRNTERvY3Vt
ZW50OjpvcGVuIGZ1bmN0aW9uIHdoaWNoIGNhbiBoYW5kbGUKKyAgICAgICAgICAgYSBOVUxMIGRv
Y3VtZW50IHBhcmFtZXRlci4KKyAgICAgICAgMi4gVGhlIG90aGVyIGZ1bmN0aW9ucyBsaWtlIEhU
TUxEb2N1bWVudFdyaXRlLCBIVE1MRG9jdW1lbnRXcml0ZWxuLCBldGMKKyAgICAgICAgICAgaGFk
IEFTU0VSVFMgZm9yIGEgTlVMTCBjYWxsZXIgZnJhbWUsIHdoaWNoIHdhcyBib2d1cyBhcyBpdCB3
b3VsZCBjcmFzaAorICAgICAgICAgICBhbnl3YXkuIFdlIG5vdyBjaGVjayBmb3IgdGhpcyBjYXNl
IGFuZCByZXR1cm4gYSBmYWlsdXJlLgorICAgICAgICAgICAKKyAgICAgICAgQ2hhbmdlcyB0byBW
OERPTVdpbmRvd0N1c3RvbS5jcHAgYXJlIGFzIGJlbG93Oi0KKyAgICAgICAgMS4gSW5zdGVhZCBv
ZiBmYWlsaW5nIHRoZSB3aW5kb3cub3BlbiBjYWxsIG1hZGUgYnkgTlBBUEkgZm9yIGxhY2sgb2Yg
YQorICAgICAgICAgICBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dCwgd2Ugbm93IHVzZSB0aGUg
ZW50ZXJlZCBjb250ZXh0IGFzIHRoZSBjYWxsaW5nCisgICAgICAgICAgIGNvbnRleHQuCisgICAg
ICAgICAgIAorICAgICAgICBUZXN0czogcGx1Z2lucy9kb2N1bWVudC1vcGVuLmh0bWwKKyAgICAg
ICAgICAgICAgIHBsdWdpbnMvd2luZG93LW9wZW4uaHRtbAorCisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBTExC
QUNLX0ZVTkNfREVDTCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3Vt
ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBTExCQUNLX0ZVTkNfREVDTCk6CisK
IDIwMDktMTEtMDMgIEVyaWMgWi4gQXllcnMgIDx6dW5kZWxAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiA1MDQ4NykKKysr
IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjkzLDE0ICs2OTMsMTUgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNMKERPTVdpbmRv
d09wZW4pCiAgICAgaWYgKCFWOFByb3h5OjpjYW5BY2Nlc3NGcmFtZShmcmFtZSwgdHJ1ZSkpCiAg
ICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAgICBGcmFtZSogY2FsbGluZ0ZyYW1l
ID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7Ci0gICAgaWYgKCFj
YWxsaW5nRnJhbWUpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KICAgICBGcmFt
ZSogZW50ZXJlZEZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0
KCk7CiAgICAgaWYgKCFlbnRlcmVkRnJhbWUpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7CiAKKyAgICBGcmFtZSogY2FsbGluZ0ZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZv
ckNhbGxpbmdDb250ZXh0KCk7CisgICAgLy8gV2UgbWF5IG5vdCBoYXZlIGEgY2FsbGluZyBjb250
ZXh0IGlmIHdlIGFyZSBpbnZva2VkIGJ5IGEgcGx1Z2luIHZpYSBOUEFQSS4KKyAgICBpZiAoIWNh
bGxpbmdGcmFtZSkKKyAgICAgICAgY2FsbGluZ0ZyYW1lID0gZW50ZXJlZEZyYW1lOworCiAgICAg
UGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gNTA0ODcpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMCw4ICsxMjAsOCBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSFRNTERvY3VtZW50
V3JpdGUpCiAgICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50LndyaXRlKCkiKTsKICAgICBI
VE1MRG9jdW1lbnQqIGh0bWxEb2N1bWVudCA9IFY4RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBw
ZXJUb05vZGU8SFRNTERvY3VtZW50PihhcmdzLkhvbGRlcigpKTsKICAgICBGcmFtZSogZnJhbWUg
PSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKTsKLSAgICBBU1NFUlQo
ZnJhbWUpOwotICAgIGh0bWxEb2N1bWVudC0+d3JpdGUod3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJn
cyksIGZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIGh0bWxEb2N1
bWVudC0+d3JpdGUod3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1lLT5kb2N1bWVudCgp
KTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0xMzAsOCArMTMwLDggQEAg
Q0FMTEJBQ0tfRlVOQ19ERUNMKEhUTUxEb2N1bWVudFdyaXRlbG4pCiAgICAgSU5DX1NUQVRTKCJE
T00uSFRNTERvY3VtZW50LndyaXRlbG4oKSIpOwogICAgIEhUTUxEb2N1bWVudCogaHRtbERvY3Vt
ZW50ID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1MRG9jdW1lbnQ+
KGFyZ3MuSG9sZGVyKCkpOwogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJh
bWVGb3JDYWxsaW5nQ29udGV4dCgpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgaHRtbERvY3Vt
ZW50LT53cml0ZWxuKHdyaXRlSGVscGVyR2V0U3RyaW5nKGFyZ3MpLCBmcmFtZS0+ZG9jdW1lbnQo
KSk7CisgICAgaWYgKGZyYW1lKQorICAgICAgICBodG1sRG9jdW1lbnQtPndyaXRlbG4od3JpdGVI
ZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzAsNyArMTcwLDcgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNM
KEhUTUxEb2N1bWVudE9wZW4pCiAgICAgfQogCiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6
cmV0cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7Ci0gICAgaHRtbERvY3VtZW50LT5vcGVu
KGZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBodG1sRG9jdW1lbnQtPm9wZW4oZnJhbWUgPyBmcmFt
ZS0+ZG9jdW1lbnQoKSA6IE5VTEwpOwogICAgIC8vIFJldHVybiB0aGUgZG9jdW1lbnQuCiAgICAg
cmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiB9CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDQ4OSkKKysrIFdl
YktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDA5
LTExLTAzICBBbmFudGFuYXJheWFuYW4gRyBJeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBm
dW5jdGlvbmFsaXR5IHRvIHRoZSBsYXlvdXQgdGVzdCBwbHVnaW4gdG8gaW52b2tlIGRvY3VtZW50
Lm9wZW4gYW5kCisgICAgICAgIHdpbmRvdy5vcGVuIHdpdGggZGVmYXVsdCBhcmd1bWVudHMuIFRo
ZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LCB3aGljaCBhZmZlY3RzIENocm9taXVtLiBCYXNpY2Fs
bHkKKyAgICAgICAgd2luZG93Lm9wZW4gYW5kIGRvY3VtZW50Lm9wZW4gY2FsbHMgaXNzdWVkIGJ5
IE5QQVBJIHBsdWdpbnMgdmlhIE5QTl9JbnZva2UgZG9uJ3QKKyAgICAgICAgd29yayBpbiBDaHJv
bWl1bSAoVjgpIGlmIHRoZXJlIGlzIG5vIGNhbGxpbmcgamF2YXNjcmlwdCBjb250ZXh0LiBUbyBh
Y2hpZXZlIHRoaXMKKyAgICAgICAgZWZmZWN0IHdlIGludm9rZSB0aGVzZSBmdW5jdGlvbnMgaW4g
dGhlIGxheW91dCB0ZXN0IHBsdWdpbiBpbiB0aGUgTlBQX1NldFdpbmRvdworICAgICAgICBjYWxs
LgorICAgICAgICAKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJM
IChPT1BTISkKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5z
dWJwcm9qL1BsdWdpbk9iamVjdC5jcHA6CisgICAgICAgICh0ZXN0RG9jdW1lbnRPcGVuKToKKyAg
ICAgICAgKHRlc3RXaW5kb3dPcGVuKToKKyAgICAgICAgKHBsdWdpbkFsbG9jYXRlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9QbHVnaW5PYmpl
Y3QuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJv
ai9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAgICAoTlBQX1NldFdpbmRvdyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNw
cDoKKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAgICAoTlBQX1NldFdpbmRvdyk6CisKIDIwMDkt
MTEtMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5vIHJldmll
dywganVzdCBjaGFuZ2luZyB3b3JkaW5nIG9mIGxvZyBtZXNzYWdlLgpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4uc3VicHJvai9QbHVnaW5PYmplY3QuY3BwCShyZXZpc2lvbiA1MDQ4NykKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdp
bk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0Myw2ICs2NDMsNTIgQEAgc3RhdGljIGJv
b2wgdGVzdENvbnN0cnVjdChQbHVnaW5PYmplY3QqIAogICAgIHJldHVybiBicm93c2VyLT5jb25z
dHJ1Y3Qob2JqLT5ucHAsIE5QVkFSSUFOVF9UT19PQkpFQ1QoYXJnc1swXSksIGFyZ3MgKyAxLCBh
cmdDb3VudCAtIDEsIHJlc3VsdCk7CiB9CiAKK2Jvb2wgdGVzdERvY3VtZW50T3BlbihOUFAgbnBw
LCBOUFZhcmlhbnQqIHJlc3VsdCkgeworICAgIE5QSWRlbnRpZmllciBkb2N1bWVudElkID0gYnJv
d3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcigiZG9jdW1lbnQiKTsKKyAgICBOUElkZW50aWZpZXIg
b3BlbklkID0gYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcigib3BlbiIpOworCisgICAgTlBP
YmplY3QgKndpbmRvd09iamVjdCA9IE5VTEw7CisgICAgYnJvd3Nlci0+Z2V0dmFsdWUobnBwLCBO
UE5WV2luZG93TlBPYmplY3QsICZ3aW5kb3dPYmplY3QpOworICAgIGlmICghd2luZG93T2JqZWN0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOUFZhcmlhbnQgZG9jVmFyaWFudDsKKyAg
ICBicm93c2VyLT5nZXRwcm9wZXJ0eShucHAsIHdpbmRvd09iamVjdCwgZG9jdW1lbnRJZCwgJmRv
Y1ZhcmlhbnQpOworICAgIGlmIChkb2NWYXJpYW50LnR5cGUgIT0gTlBWYXJpYW50VHlwZV9PYmpl
Y3QpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5QT2JqZWN0ICpkb2N1bWVudE9iamVj
dCA9IE5QVkFSSUFOVF9UT19PQkpFQ1QoZG9jVmFyaWFudCk7CisKKyAgICBOUFZhcmlhbnQgb3Bl
bkFyZ3NbMl07CisgICAgU1RSSU5HWl9UT19OUFZBUklBTlQoInRleHQvaHRtbCIsIG9wZW5Bcmdz
WzBdKTsKKyAgICBTVFJJTkdaX1RPX05QVkFSSUFOVCgiX2JsYW5rIiwgb3BlbkFyZ3NbMV0pOwor
CisgICAgYnJvd3Nlci0+aW52b2tlKG5wcCwgZG9jdW1lbnRPYmplY3QsIG9wZW5JZCwgb3BlbkFy
Z3MsIDIsIHJlc3VsdCk7CisKKyAgICBicm93c2VyLT5yZWxlYXNlb2JqZWN0KGRvY3VtZW50T2Jq
ZWN0KTsKKyAgICBpZiAocmVzdWx0LT50eXBlICE9IE5QVmFyaWFudFR5cGVfT2JqZWN0KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgdGVzdFdpbmRv
d09wZW4oTlBQIG5wcCwgTlBWYXJpYW50KiByZXN1bHQpIHsKKyAgICBOUElkZW50aWZpZXIgb3Bl
bklkID0gYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcigib3BlbiIpOworCisgICAgTlBPYmpl
Y3QgKndpbmRvd09iamVjdCA9IE5VTEw7CisgICAgYnJvd3Nlci0+Z2V0dmFsdWUobnBwLCBOUE5W
V2luZG93TlBPYmplY3QsICZ3aW5kb3dPYmplY3QpOworICAgIGlmICghd2luZG93T2JqZWN0KQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOUFZhcmlhbnQgb3BlbkFyZ3NbMl07CisgICAg
U1RSSU5HWl9UT19OUFZBUklBTlQoImFib3V0OmJsYW5rIiwgb3BlbkFyZ3NbMF0pOworICAgIFNU
UklOR1pfVE9fTlBWQVJJQU5UKCJfYmxhbmsiLCBvcGVuQXJnc1sxXSk7CisKKyAgICBicm93c2Vy
LT5pbnZva2UobnBwLCB3aW5kb3dPYmplY3QsIG9wZW5JZCwgb3BlbkFyZ3MsIDIsIHJlc3VsdCk7
CisgICAgaWYgKHJlc3VsdC0+dHlwZSAhPSBOUFZhcmlhbnRUeXBlX09iamVjdCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCBwbHVnaW5J
bnZva2UoTlBPYmplY3QqIGhlYWRlciwgTlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFu
dCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewogICAgIFBs
dWdpbk9iamVjdCogcGx1Z2luID0gcmVpbnRlcnByZXRfY2FzdDxQbHVnaW5PYmplY3QqPihoZWFk
ZXIpOwpAQCAtNzMzLDYgKzc3OSw5IEBAIHN0YXRpYyBOUE9iamVjdCAqcGx1Z2luQWxsb2NhdGUo
TlBQIG5wcCwKICAgICBuZXdJbnN0YW5jZS0+bGFzdFVybCA9IE5VTEw7CiAgICAgbmV3SW5zdGFu
Y2UtPmxhc3RIZWFkZXJzID0gTlVMTDsKIAorICAgIG5ld0luc3RhbmNlLT50ZXN0RG9jdW1lbnRP
cGVuID0gRkFMU0U7CisgICAgbmV3SW5zdGFuY2UtPnRlc3RXaW5kb3dPcGVuID0gRkFMU0U7CisK
ICAgICByZXR1cm4gKE5QT2JqZWN0KiluZXdJbnN0YW5jZTsKIH0KIApJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0LmgJKHJldmlzaW9uIDUwNDg3KQorKysgV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgIE5QQm9vbCBjYWNoZWRQcml2YXRlQnJvd3NpbmdNb2RlOwogICAgIE5QT2JqZWN0KiB0ZXN0
T2JqZWN0OwogICAgIE5QU3RyZWFtKiBzdHJlYW07CisgICAgTlBCb29sIHRlc3REb2N1bWVudE9w
ZW47CisgICAgTlBCb29sIHRlc3RXaW5kb3dPcGVuOwogICAgIGNoYXIqIG9uU3RyZWFtTG9hZDsK
ICAgICBjaGFyKiBvblN0cmVhbURlc3Ryb3k7CiAgICAgY2hhciogb25EZXN0cm95OwpAQCAtNTYs
MyArNTgsNSBAQCBleHRlcm4gdm9pZCBoYW5kbGVDYWxsYmFjayhQbHVnaW5PYmplY3QqCiBleHRl
cm4gdm9pZCBub3RpZnlTdHJlYW0oUGx1Z2luT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIgKnVy
bCwgY29uc3QgY2hhciAqaGVhZGVycyk7CiBleHRlcm4gdm9pZCB0ZXN0TlBSdW50aW1lKE5QUCBu
cHApOwogZXh0ZXJuIHZvaWQgcGx1Z2luTG9nKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogZm9y
bWF0LCAuLi4pOworZXh0ZXJuIGJvb2wgdGVzdERvY3VtZW50T3BlbihOUFAgbnBwLCBOUFZhcmlh
bnQqIHJlc3VsdCk7CitleHRlcm4gYm9vbCB0ZXN0V2luZG93T3BlbihOUFAgbnBwLCBOUFZhcmlh
bnQqIHJlc3VsdCk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4uc3VicHJvai9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9tYWluLmNwcAkocmV2aXNpb24g
NTA0ODcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4u
c3VicHJvai9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNywxMCBAQCBOUEVy
cm9yIE5QUF9OZXcoTlBNSU1FVHlwZSBwbHVnaW5UeXBlLCBOCiAgICAgICAgICAgICBleGVjdXRl
U2NyaXB0KG9iaiwgImRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJyciKTsKICAgICAgICAgZWxz
ZSBpZiAoIXN0cmNhc2VjbXAoYXJnbltpXSwgIm9uZGVzdHJveSIpKQogICAgICAgICAgICAgb2Jq
LT5vbkRlc3Ryb3kgPSBzdHJkdXAoYXJndltpXSk7CisgICAgICAgIGVsc2UgaWYgKHN0cmNhc2Vj
bXAoYXJnbltpXSwgInRlc3Rkb2N1bWVudG9wZW4iKSA9PSAwKQorICAgICAgICAgICAgb2JqLT50
ZXN0RG9jdW1lbnRPcGVuID0gVFJVRTsKKyAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChhcmdu
W2ldLCAidGVzdHdpbmRvd29wZW4iKSA9PSAwKQorICAgICAgICAgICAgb2JqLT50ZXN0V2luZG93
T3BlbiA9IFRSVUU7CiAgICAgfQogICAgICAgICAKICNpZm5kZWYgTlBfTk9fQ0FSQk9OCkBAIC0x
NzMsNiArMTc3LDI2IEBAIE5QRXJyb3IgTlBQX1NldFdpbmRvdyhOUFAgaW5zdGFuY2UsIE5QV2kK
ICAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgIk5QUF9TZXRXaW5kb3c6ICVkICVkIiwg
KGludCl3aW5kb3ctPndpZHRoLCAoaW50KXdpbmRvdy0+aGVpZ2h0KTsKICAgICAgICAgICAgIG9i
ai0+bG9nU2V0V2luZG93ID0gZmFsc2U7CiAgICAgICAgIH0KKworICAgICAgICBpZiAob2JqLT50
ZXN0RG9jdW1lbnRPcGVuKSB7CisgICAgICAgICAgICBOUFZhcmlhbnQgcmVzdWx0OworICAgICAg
ICAgICAgdGVzdERvY3VtZW50T3BlbihpbnN0YW5jZSwgJnJlc3VsdCk7CisgICAgICAgICAgICBp
ZiAocmVzdWx0LnR5cGUgPT0gTlBWYXJpYW50VHlwZV9PYmplY3QpIHsKKyAgICAgICAgICAgICAg
ICBicm93c2VyLT5yZWxlYXNlb2JqZWN0KHJlc3VsdC52YWx1ZS5vYmplY3RWYWx1ZSk7CisgICAg
ICAgICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAiRE9DVU1FTlQgT1BFTiBTVUNDRVNTIik7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvYmotPnRlc3REb2N1bWVudE9wZW4gPSBGQUxT
RTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvYmotPnRlc3RXaW5kb3dPcGVuKSB7CisgICAg
ICAgICAgICBOUFZhcmlhbnQgcmVzdWx0OworICAgICAgICAgICAgdGVzdFdpbmRvd09wZW4oaW5z
dGFuY2UsICZyZXN1bHQpOworICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlID09IE5QVmFyaWFu
dFR5cGVfT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChy
ZXN1bHQudmFsdWUub2JqZWN0VmFsdWUpOworICAgICAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0
YW5jZSwgIldJTkRPVyBPUEVOIFNVQ0NFU1MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IG9iai0+dGVzdFdpbmRvd09wZW4gPSBGQUxTRTsKKyAgICAgICAgfQogICAgIH0KICAgICAKICAg
ICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAJKHJldmlz
aW9uIDUwNDg3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2Fw
ZVBsdWdpbi9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsMTAgQEAgTlBFcnJv
ciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAgICAgICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgICAgICAgICAgICAgICAgICBpZiAoX3N0cmlj
bXAoYXJnbltpXSwgInNyYyIpID09IDApCiAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5M
b2coaW5zdGFuY2UsICJzcmM6ICVzIiwgYXJndltpXSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJ0ZXN0ZG9jdW1lbnRvcGVuIikgPT0g
MCkKKyAgICAgICAgICAgICAgICBvYmotPnRlc3REb2N1bWVudE9wZW4gPSBUUlVFOworICAgICAg
ICAgICAgICBlbHNlIGlmIChfc3RyaWNtcChhcmduW2ldLCAidGVzdHdpbmRvd29wZW4iKSA9PSAw
KQorICAgICAgICAgICAgICAgIG9iai0+dGVzdFdpbmRvd09wZW4gPSBUUlVFOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBpbnN0YW5jZS0+cGRhdGEgPSBvYmo7CkBAIC0xMjAsNiArMTIz
LDMwIEBAIE5QRXJyb3IgTlBQX0Rlc3Ryb3koTlBQIGluc3RhbmNlLCBOUFNhdmUKIAogTlBFcnJv
ciBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaW5kb3cgKndpbmRvdykKIHsKKyAgICBQ
bHVnaW5PYmplY3QqIG9iaiA9IHN0YXRpY19jYXN0PFBsdWdpbk9iamVjdCo+KGluc3RhbmNlLT5w
ZGF0YSk7CisKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPnRlc3REb2N1bWVudE9w
ZW4pIHsKKyAgICAgICAgICAgIE5QVmFyaWFudCByZXN1bHQ7CisgICAgICAgICAgICB0ZXN0RG9j
dW1lbnRPcGVuKGluc3RhbmNlLCAmcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQudHlw
ZSA9PSBOUFZhcmlhbnRUeXBlX09iamVjdCkgeworICAgICAgICAgICAgICAgIGJyb3dzZXItPnJl
bGVhc2VvYmplY3QocmVzdWx0LnZhbHVlLm9iamVjdFZhbHVlKTsKKyAgICAgICAgICAgICAgICBw
bHVnaW5Mb2coaW5zdGFuY2UsICJET0NVTUVOVCBPUEVOIFNVQ0NFU1MiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIG9iai0+dGVzdERvY3VtZW50T3BlbiA9IEZBTFNFOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKG9iai0+dGVzdFdpbmRvd09wZW4pIHsKKyAgICAgICAgICAgIE5QVmFy
aWFudCByZXN1bHQ7CisgICAgICAgICAgICB0ZXN0V2luZG93T3BlbihpbnN0YW5jZSwgJnJlc3Vs
dCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT0gTlBWYXJpYW50VHlwZV9PYmplY3Qp
IHsKKyAgICAgICAgICAgICAgICBicm93c2VyLT5yZWxlYXNlb2JqZWN0KHJlc3VsdC52YWx1ZS5v
YmplY3RWYWx1ZSk7CisgICAgICAgICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAiV0lORE9X
IE9QRU4gU1VDQ0VTUyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2JqLT50ZXN0V2lu
ZG93T3BlbiA9IEZBTFNFOworICAgICAgICB9CisgICAgfQorCiAgICAgcmV0dXJuIE5QRVJSX05P
X0VSUk9SOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDQ4OSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDA5LTExLTAzICBBbmFu
dGFuYXJheWFuYW4gRyBJeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdHMg
dG8gdGVzdCBkb2N1bWVudC5vcGVuIGFuZCB3aW5kb3cub3BlbiBjYWxscyBpc3N1ZWQKKyAgICAg
ICAgYnkgTlBBUEkgcGx1Z2lucyB3aXRob3V0IGEgY2FsbGluZyBqYXZhc2NyaXB0IGNvbnRleHQu
IFRoZSBhc3NvY2lhdGVkCisgICAgICAgIHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LCB3aGljaAorICAgICAgICBhZmZlY3RzIENocm9t
aXVtLgorCisgICAgICAgICogcGx1Z2lucy9kb2N1bWVudC1vcGVuLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGx1Z2lucy9kb2N1bWVudC1vcGVuLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsdWdpbnMvd2luZG93LW9wZW4tYWN0dWFsLnR4dDogQWRkZWQuCisgICAgICAgICogcGx1
Z2lucy93aW5kb3ctb3Blbi5odG1sOiBBZGRlZC4KKworMjAwOS0xMS0wMyAgQW5hbnRhbmFyYXlh
bmFuIEcgSXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFu
ZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIHBsdWdpbnMvZG9jdW1lbnQtb3Blbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3dpbmRvdy1vcGVuLWFjdHVhbC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsdWdpbnMvd2luZG93LW9wZW4uaHRtbDogQWRkZWQuCisKKzIwMDktMTEtMDMg
IEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBk
ZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBwbHVnaW5zL2RvY3Vt
ZW50LW9wZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL2RvY3VtZW50
LW9wZW4uaHRtbDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy93aW5kb3ctb3Blbi1hY3R1YWwu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3dpbmRvdy1vcGVuLmh0bWw6IEFkZGVkLgor
CiAyMDA5LTExLTAzICBFcmljIFouIEF5ZXJzICA8enVuZGVsQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lu
cy9kb2N1bWVudC1vcGVuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1vcGVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogRE9DVU1FTlQgT1BF
TiBTVUNDRVNTCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MHB4O292ZXJmbG93
OmhpZGRlbiI+Cis8b2JqZWN0IG5hbWU9InRlc3RQbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gt
d2Via2l0LXRlc3QtbmV0c2NhcGUiIHRlc3Rkb2N1bWVudG9wZW49InRydWUiPgorPC9vYmplY3Q+
Cis8ZGl2PgorICAgIFRoaXMgdGVzdHMgdGhhdCBkb2N1bWVudC5vcGVuIGludm9rZWQgYnkgYSBw
bHVnaW4gdmlhIE5QTl9JbnZva2Ugc3VjY2VlZHMuCis8L2Rpdj4KKzxib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi1hY3R1YWwudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4tYWN0dWFsLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4tYWN0dWFsLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lO
OiBXSU5ET1cgT1BFTiBTVUNDRVNTCisKK1RoaXMgdGVzdHMgdGhhdCB3aW5kb3cub3BlbiBpbnZv
a2VkIGJ5IGEgcGx1Z2luIHZpYSBOUE5fSW52b2tlIHN1Y2NlZWRzLgpJbmRleDogTGF5b3V0VGVz
dHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
dWdpbnMvd2luZG93LW9wZW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdp
bnMvd2luZG93LW9wZW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorPC9zY3JpcHQ+Cis8Ym9keSBzdHls
ZT0ibWFyZ2luOjBweDtvdmVyZmxvdzpoaWRkZW4iPgorPG9iamVjdCBuYW1lPSJ0ZXN0UGx1Z2lu
IiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB0ZXN0d2luZG93b3Bl
bj0idHJ1ZSI+Cis8L29iamVjdD4KKzxkaXY+CisgICAgVGhpcyB0ZXN0cyB0aGF0IHdpbmRvdy5v
cGVuIGludm9rZWQgYnkgYSBwbHVnaW4gdmlhIE5QTl9JbnZva2Ugc3VjY2VlZHMuCis8L2Rpdj4K
Kzxib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="23969"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42538</attachid>
            <date>2009-11-04 19:24:37 -0800</date>
            <delta_ts>2009-11-05 12:28:06 -0800</delta_ts>
            <desc>Updated patch based on initial review comments</desc>
            <filename>V8BindingsFix.txt</filename>
            <type>text/plain</type>
            <size>15661</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDUzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMTEtMDQgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxh
bmFudGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LAorICAgICAgICB3aGljaCBhZmZlY3RzIENo
cm9taXVtIG9ubHkuCisgICAgICAgIAorICAgICAgICBDaGFuZ2VzIHRvIFY4SFRNTERvY3VtZW50
Q3VzdG9tLmNwcCBhcmUgYXMgYmVsb3c6LQorICAgICAgICAxLiBUaGUgSFRNTERvY3VtZW50T3Bl
biBmdW5jdGlvbiB3b3VsZCBjYXVzZSBhIGNyYXNoIGluIENocm9taXVtIGlmCisgICAgICAgICAg
IHRoZXJlIHdhcyBubyBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dC4gV2Ugbm93IGNoZWNrIGZv
ciB0aGlzIGNhc2UKKyAgICAgICAgICAgYW5kIHBhc3MgaW4gTlVMTCB0byB0aGUgSFRNTERvY3Vt
ZW50OjpvcGVuIGZ1bmN0aW9uIHdoaWNoIGNhbiBoYW5kbGUKKyAgICAgICAgICAgYSBOVUxMIGRv
Y3VtZW50IHBhcmFtZXRlci4KKyAgICAgICAgMi4gVGhlIG90aGVyIGZ1bmN0aW9ucyBsaWtlIEhU
TUxEb2N1bWVudFdyaXRlLCBIVE1MRG9jdW1lbnRXcml0ZWxuLCBldGMKKyAgICAgICAgICAgaGFk
IEFTU0VSVFMgZm9yIGEgTlVMTCBjYWxsZXIgZnJhbWUsIHdoaWNoIHdhcyBib2d1cyBhcyBpdCB3
b3VsZCBjcmFzaAorICAgICAgICAgICBhbnl3YXkuIFdlIG5vdyBjaGVjayBmb3IgdGhpcyBjYXNl
IGFuZCByZXR1cm4gYSBmYWlsdXJlLgorICAgICAgICAgICAKKyAgICAgICAgQ2hhbmdlcyB0byBW
OERPTVdpbmRvd0N1c3RvbS5jcHAgYXJlIGFzIGJlbG93Oi0KKyAgICAgICAgMS4gSW5zdGVhZCBv
ZiBmYWlsaW5nIHRoZSB3aW5kb3cub3BlbiBjYWxsIG1hZGUgYnkgTlBBUEkgZm9yIGxhY2sgb2Yg
YQorICAgICAgICAgICBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dCwgd2Ugbm93IHVzZSB0aGUg
ZW50ZXJlZCBjb250ZXh0IGFzIHRoZSBjYWxsaW5nCisgICAgICAgICAgIGNvbnRleHQuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0FMTEJBQ0tfRlVOQ19ERUNMKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0FMTEJB
Q0tfRlVOQ19ERUNMKToKKwogMjAwOS0xMS0wNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAkocmV2
aXNpb24gNTA0ODcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5MywxNCArNjkzLDE1IEBAIENBTExCQUNLX0ZV
TkNfREVDTChET01XaW5kb3dPcGVuKQogICAgIGlmICghVjhQcm94eTo6Y2FuQWNjZXNzRnJhbWUo
ZnJhbWUsIHRydWUpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCi0gICAgRnJh
bWUqIGNhbGxpbmdGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4
dCgpOwotICAgIGlmICghY2FsbGluZ0ZyYW1lKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOwotCiAgICAgRnJhbWUqIGVudGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVG
b3JFbnRlcmVkQ29udGV4dCgpOwogICAgIGlmICghZW50ZXJlZEZyYW1lKQogICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogCisgICAgRnJhbWUqIGNhbGxpbmdGcmFtZSA9IFY4UHJveHk6
OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4dCgpOworICAgIC8vIFdlIG1heSBub3QgaGF2
ZSBhIGNhbGxpbmcgY29udGV4dCBpZiB3ZSBhcmUgaW52b2tlZCBieSBhIHBsdWdpbiB2aWEgTlBB
UEkuCisgICAgaWYgKCFjYWxsaW5nRnJhbWUpCisgICAgICAgIGNhbGxpbmdGcmFtZSA9IGVudGVy
ZWRGcmFtZTsKKwogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFn
ZSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9u
IDUwNDg3KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0
b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsOCArMTIwLDcgQEAgQ0FMTEJBQ0tfRlVOQ19E
RUNMKEhUTUxEb2N1bWVudFdyaXRlKQogICAgIElOQ19TVEFUUygiRE9NLkhUTUxEb2N1bWVudC53
cml0ZSgpIik7CiAgICAgSFRNTERvY3VtZW50KiBodG1sRG9jdW1lbnQgPSBWOERPTVdyYXBwZXI6
OmNvbnZlcnRET01XcmFwcGVyVG9Ob2RlPEhUTUxEb2N1bWVudD4oYXJncy5Ib2xkZXIoKSk7CiAg
ICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0
KCk7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBodG1sRG9jdW1lbnQtPndyaXRlKHdyaXRlSGVs
cGVyR2V0U3RyaW5nKGFyZ3MpLCBmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgaHRtbERvY3VtZW50
LT53cml0ZSh3cml0ZUhlbHBlckdldFN0cmluZyhhcmdzKSwgZnJhbWUgPyBmcmFtZS0+ZG9jdW1l
bnQoKSA6IE5VTEwpOwogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTEzMCw4
ICsxMjksOCBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSFRNTERvY3VtZW50V3JpdGVsbikKICAgICBJ
TkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQud3JpdGVsbigpIik7CiAgICAgSFRNTERvY3VtZW50
KiBodG1sRG9jdW1lbnQgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9Ob2RlPEhU
TUxEb2N1bWVudD4oYXJncy5Ib2xkZXIoKSk7CiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6
cmV0cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAg
ICBodG1sRG9jdW1lbnQtPndyaXRlbG4od3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1l
LT5kb2N1bWVudCgpKTsKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIGh0bWxEb2N1bWVudC0+d3Jp
dGVsbih3cml0ZUhlbHBlckdldFN0cmluZyhhcmdzKSwgZnJhbWUgPyBmcmFtZS0+ZG9jdW1lbnQo
KSA6IE5VTEwpOwogICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3MCw3ICsx
NjksNyBAQCBDQUxMQkFDS19GVU5DX0RFQ0woSFRNTERvY3VtZW50T3BlbikKICAgICB9CiAKICAg
ICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQo
KTsKLSAgICBodG1sRG9jdW1lbnQtPm9wZW4oZnJhbWUtPmRvY3VtZW50KCkpOworICAgIGh0bWxE
b2N1bWVudC0+b3BlbihmcmFtZSA/IGZyYW1lLT5kb2N1bWVudCgpIDogTlVMTCk7CiAgICAgLy8g
UmV0dXJuIHRoZSBkb2N1bWVudC4KICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKIH0KSW5kZXg6
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDUwNTM5KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMTEtMDQgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5n
YXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIGxheW91dCB0ZXN0
IHBsdWdpbiB0byBpbnZva2UgZG9jdW1lbnQub3BlbiBhbmQKKyAgICAgICAgd2luZG93Lm9wZW4g
d2l0aCBkZWZhdWx0IGFyZ3VtZW50cy4gVGhlIGFzc29jaWF0ZWQgd2Via2l0IGJ1ZyBpcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwNjcsIHdoaWNo
IGFmZmVjdHMgQ2hyb21pdW0uIEJhc2ljYWxseQorICAgICAgICB3aW5kb3cub3BlbiBhbmQgZG9j
dW1lbnQub3BlbiBjYWxscyBpc3N1ZWQgYnkgTlBBUEkgcGx1Z2lucyB2aWEgTlBOX0ludm9rZSBk
b24ndAorICAgICAgICB3b3JrIGluIENocm9taXVtIChWOCkgaWYgdGhlcmUgaXMgbm8gY2FsbGlu
ZyBqYXZhc2NyaXB0IGNvbnRleHQuIFRvIGFjaGlldmUgdGhpcworICAgICAgICBlZmZlY3Qgd2Ug
aW52b2tlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgbGF5b3V0IHRlc3QgcGx1Z2luIGluIHRoZSBO
UFBfU2V0V2luZG93CisgICAgICAgIGNhbGwuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9U
ZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9QbHVnaW5PYmplY3QuY3BwOgorICAgICAgICAodGVz
dERvY3VtZW50T3Blbik6CisgICAgICAgICh0ZXN0V2luZG93T3Blbik6CisgICAgICAgIChwbHVn
aW5BbGxvY2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0lu
LnN1YnByb2ovUGx1Z2luT2JqZWN0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5l
dHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHA6CisgICAgICAgIChOUFBfTmV3KToKKyAgICAg
ICAgKE5QUF9TZXRXaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0
c2NhcGVQbHVnaW4vbWFpbi5jcHA6CisgICAgICAgIChOUFBfTmV3KToKKyAgICAgICAgKE5QUF9T
ZXRXaW5kb3cpOgorCiAyMDA5LTExLTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KSW5kZXg6IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0LmNwcAkocmV2aXNpb24gNTA0ODcpCisrKyBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9QbHVn
aW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsNiArNjQzLDUyIEBAIHN0YXRpYyBi
b29sIHRlc3RDb25zdHJ1Y3QoUGx1Z2luT2JqZWN0KiAKICAgICByZXR1cm4gYnJvd3Nlci0+Y29u
c3RydWN0KG9iai0+bnBwLCBOUFZBUklBTlRfVE9fT0JKRUNUKGFyZ3NbMF0pLCBhcmdzICsgMSwg
YXJnQ291bnQgLSAxLCByZXN1bHQpOwogfQogCitib29sIHRlc3REb2N1bWVudE9wZW4oTlBQIG5w
cCwgTlBWYXJpYW50KiByZXN1bHQpIHsKKyAgICBOUElkZW50aWZpZXIgZG9jdW1lbnRJZCA9IGJy
b3dzZXItPmdldHN0cmluZ2lkZW50aWZpZXIoImRvY3VtZW50Iik7CisgICAgTlBJZGVudGlmaWVy
IG9wZW5JZCA9IGJyb3dzZXItPmdldHN0cmluZ2lkZW50aWZpZXIoIm9wZW4iKTsKKworICAgIE5Q
T2JqZWN0ICp3aW5kb3dPYmplY3QgPSBOVUxMOworICAgIGJyb3dzZXItPmdldHZhbHVlKG5wcCwg
TlBOVldpbmRvd05QT2JqZWN0LCAmd2luZG93T2JqZWN0KTsKKyAgICBpZiAoIXdpbmRvd09iamVj
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTlBWYXJpYW50IGRvY1ZhcmlhbnQ7Cisg
ICAgYnJvd3Nlci0+Z2V0cHJvcGVydHkobnBwLCB3aW5kb3dPYmplY3QsIGRvY3VtZW50SWQsICZk
b2NWYXJpYW50KTsKKyAgICBpZiAoZG9jVmFyaWFudC50eXBlICE9IE5QVmFyaWFudFR5cGVfT2Jq
ZWN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOUE9iamVjdCAqZG9jdW1lbnRPYmpl
Y3QgPSBOUFZBUklBTlRfVE9fT0JKRUNUKGRvY1ZhcmlhbnQpOworCisgICAgTlBWYXJpYW50IG9w
ZW5BcmdzWzJdOworICAgIFNUUklOR1pfVE9fTlBWQVJJQU5UKCJ0ZXh0L2h0bWwiLCBvcGVuQXJn
c1swXSk7CisgICAgU1RSSU5HWl9UT19OUFZBUklBTlQoIl9ibGFuayIsIG9wZW5BcmdzWzFdKTsK
KworICAgIGJyb3dzZXItPmludm9rZShucHAsIGRvY3VtZW50T2JqZWN0LCBvcGVuSWQsIG9wZW5B
cmdzLCAyLCByZXN1bHQpOworCisgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChkb2N1bWVudE9i
amVjdCk7CisgICAgaWYgKHJlc3VsdC0+dHlwZSAhPSBOUFZhcmlhbnRUeXBlX09iamVjdCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIHRlc3RXaW5k
b3dPcGVuKE5QUCBucHAsIE5QVmFyaWFudCogcmVzdWx0KSB7CisgICAgTlBJZGVudGlmaWVyIG9w
ZW5JZCA9IGJyb3dzZXItPmdldHN0cmluZ2lkZW50aWZpZXIoIm9wZW4iKTsKKworICAgIE5QT2Jq
ZWN0ICp3aW5kb3dPYmplY3QgPSBOVUxMOworICAgIGJyb3dzZXItPmdldHZhbHVlKG5wcCwgTlBO
VldpbmRvd05QT2JqZWN0LCAmd2luZG93T2JqZWN0KTsKKyAgICBpZiAoIXdpbmRvd09iamVjdCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTlBWYXJpYW50IG9wZW5BcmdzWzJdOworICAg
IFNUUklOR1pfVE9fTlBWQVJJQU5UKCJhYm91dDpibGFuayIsIG9wZW5BcmdzWzBdKTsKKyAgICBT
VFJJTkdaX1RPX05QVkFSSUFOVCgiX2JsYW5rIiwgb3BlbkFyZ3NbMV0pOworCisgICAgYnJvd3Nl
ci0+aW52b2tlKG5wcCwgd2luZG93T2JqZWN0LCBvcGVuSWQsIG9wZW5BcmdzLCAyLCByZXN1bHQp
OworICAgIGlmIChyZXN1bHQtPnR5cGUgIT0gTlBWYXJpYW50VHlwZV9PYmplY3QpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGJvb2wgcGx1Z2lu
SW52b2tlKE5QT2JqZWN0KiBoZWFkZXIsIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlh
bnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBQ
bHVnaW5PYmplY3QqIHBsdWdpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGx1Z2luT2JqZWN0Kj4oaGVh
ZGVyKTsKQEAgLTczMyw2ICs3NzksOSBAQCBzdGF0aWMgTlBPYmplY3QgKnBsdWdpbkFsbG9jYXRl
KE5QUCBucHAsCiAgICAgbmV3SW5zdGFuY2UtPmxhc3RVcmwgPSBOVUxMOwogICAgIG5ld0luc3Rh
bmNlLT5sYXN0SGVhZGVycyA9IE5VTEw7CiAKKyAgICBuZXdJbnN0YW5jZS0+dGVzdERvY3VtZW50
T3BlbiA9IEZBTFNFOworICAgIG5ld0luc3RhbmNlLT50ZXN0V2luZG93T3BlbiA9IEZBTFNFOwor
CiAgICAgcmV0dXJuIChOUE9iamVjdCopbmV3SW5zdGFuY2U7CiB9CiAKSW5kZXg6IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5oCShyZXZpc2lvbiA1MDQ4NykKKysrIFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIHR5cGVkZWYgc3RydWN0IHsK
ICAgICBOUEJvb2wgY2FjaGVkUHJpdmF0ZUJyb3dzaW5nTW9kZTsKICAgICBOUE9iamVjdCogdGVz
dE9iamVjdDsKICAgICBOUFN0cmVhbSogc3RyZWFtOworICAgIE5QQm9vbCB0ZXN0RG9jdW1lbnRP
cGVuOworICAgIE5QQm9vbCB0ZXN0V2luZG93T3BlbjsKICAgICBjaGFyKiBvblN0cmVhbUxvYWQ7
CiAgICAgY2hhciogb25TdHJlYW1EZXN0cm95OwogICAgIGNoYXIqIG9uRGVzdHJveTsKQEAgLTU2
LDMgKzU4LDUgQEAgZXh0ZXJuIHZvaWQgaGFuZGxlQ2FsbGJhY2soUGx1Z2luT2JqZWN0KgogZXh0
ZXJuIHZvaWQgbm90aWZ5U3RyZWFtKFBsdWdpbk9iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyICp1
cmwsIGNvbnN0IGNoYXIgKmhlYWRlcnMpOwogZXh0ZXJuIHZvaWQgdGVzdE5QUnVudGltZShOUFAg
bnBwKTsKIGV4dGVybiB2b2lkIHBsdWdpbkxvZyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIGZv
cm1hdCwgLi4uKTsKK2V4dGVybiBib29sIHRlc3REb2N1bWVudE9wZW4oTlBQIG5wcCwgTlBWYXJp
YW50KiByZXN1bHQpOworZXh0ZXJuIGJvb2wgdGVzdFdpbmRvd09wZW4oTlBQIG5wcCwgTlBWYXJp
YW50KiByZXN1bHQpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNj
YXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAJKHJldmlzaW9u
IDUwNDg3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0lu
LnN1YnByb2ovbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsMTAgQEAgTlBF
cnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAgICAgZXhlY3V0
ZVNjcmlwdChvYmosICJkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICcnIik7CiAgICAgICAgIGVs
c2UgaWYgKCFzdHJjYXNlY21wKGFyZ25baV0sICJvbmRlc3Ryb3kiKSkKICAgICAgICAgICAgIG9i
ai0+b25EZXN0cm95ID0gc3RyZHVwKGFyZ3ZbaV0pOworICAgICAgICBlbHNlIGlmIChzdHJjYXNl
Y21wKGFyZ25baV0sICJ0ZXN0ZG9jdW1lbnRvcGVuIikgPT0gMCkKKyAgICAgICAgICAgIG9iai0+
dGVzdERvY3VtZW50T3BlbiA9IFRSVUU7CisgICAgICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAoYXJn
bltpXSwgInRlc3R3aW5kb3dvcGVuIikgPT0gMCkKKyAgICAgICAgICAgIG9iai0+dGVzdFdpbmRv
d09wZW4gPSBUUlVFOwogICAgIH0KICAgICAgICAgCiAjaWZuZGVmIE5QX05PX0NBUkJPTgpAQCAt
MTczLDYgKzE3NywyNiBAQCBOUEVycm9yIE5QUF9TZXRXaW5kb3coTlBQIGluc3RhbmNlLCBOUFdp
CiAgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJOUFBfU2V0V2luZG93OiAlZCAlZCIs
IChpbnQpd2luZG93LT53aWR0aCwgKGludCl3aW5kb3ctPmhlaWdodCk7CiAgICAgICAgICAgICBv
YmotPmxvZ1NldFdpbmRvdyA9IGZhbHNlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG9iai0+
dGVzdERvY3VtZW50T3BlbikgeworICAgICAgICAgICAgTlBWYXJpYW50IHJlc3VsdDsKKyAgICAg
ICAgICAgIHRlc3REb2N1bWVudE9wZW4oaW5zdGFuY2UsICZyZXN1bHQpOworICAgICAgICAgICAg
aWYgKHJlc3VsdC50eXBlID09IE5QVmFyaWFudFR5cGVfT2JqZWN0KSB7CisgICAgICAgICAgICAg
ICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChyZXN1bHQudmFsdWUub2JqZWN0VmFsdWUpOworICAg
ICAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgIkRPQ1VNRU5UIE9QRU4gU1VDQ0VTUyIp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2JqLT50ZXN0RG9jdW1lbnRPcGVuID0gRkFM
U0U7CisgICAgICAgIH0KKworICAgICAgICBpZiAob2JqLT50ZXN0V2luZG93T3BlbikgeworICAg
ICAgICAgICAgTlBWYXJpYW50IHJlc3VsdDsKKyAgICAgICAgICAgIHRlc3RXaW5kb3dPcGVuKGlu
c3RhbmNlLCAmcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PSBOUFZhcmlh
bnRUeXBlX09iamVjdCkgeworICAgICAgICAgICAgICAgIGJyb3dzZXItPnJlbGVhc2VvYmplY3Qo
cmVzdWx0LnZhbHVlLm9iamVjdFZhbHVlKTsKKyAgICAgICAgICAgICAgICBwbHVnaW5Mb2coaW5z
dGFuY2UsICJXSU5ET1cgT1BFTiBTVUNDRVNTIik7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBvYmotPnRlc3RXaW5kb3dPcGVuID0gRkFMU0U7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAg
ICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCShyZXZp
c2lvbiA1MDQ4NykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2Nh
cGVQbHVnaW4vbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDEwIEBAIE5QRXJy
b3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE4KICAgICAgICAgICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGFyZ2M7IGkrKykKICAgICAgICAgICAgICAgICAgICAgaWYgKF9zdHJp
Y21wKGFyZ25baV0sICJzcmMiKSA9PSAwKQogICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2lu
TG9nKGluc3RhbmNlLCAic3JjOiAlcyIsIGFyZ3ZbaV0pOwotICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNlIGlmIChfc3RyaWNtcChhcmduW2ldLCAidGVzdGRvY3VtZW50b3BlbiIpID09
IDApCisgICAgICAgICAgICAgICAgb2JqLT50ZXN0RG9jdW1lbnRPcGVuID0gVFJVRTsKKyAgICAg
ICAgICAgICAgZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgInRlc3R3aW5kb3dvcGVuIikgPT0g
MCkKKyAgICAgICAgICAgICAgICBvYmotPnRlc3RXaW5kb3dPcGVuID0gVFJVRTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgaW5zdGFuY2UtPnBkYXRhID0gb2JqOwpAQCAtMTIwLDYgKzEy
MywzMCBAQCBOUEVycm9yIE5QUF9EZXN0cm95KE5QUCBpbnN0YW5jZSwgTlBTYXZlCiAKIE5QRXJy
b3IgTlBQX1NldFdpbmRvdyhOUFAgaW5zdGFuY2UsIE5QV2luZG93ICp3aW5kb3cpCiB7CisgICAg
UGx1Z2luT2JqZWN0KiBvYmogPSBzdGF0aWNfY2FzdDxQbHVnaW5PYmplY3QqPihpbnN0YW5jZS0+
cGRhdGEpOworCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT50ZXN0RG9jdW1lbnRP
cGVuKSB7CisgICAgICAgICAgICBOUFZhcmlhbnQgcmVzdWx0OworICAgICAgICAgICAgdGVzdERv
Y3VtZW50T3BlbihpbnN0YW5jZSwgJnJlc3VsdCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LnR5
cGUgPT0gTlBWYXJpYW50VHlwZV9PYmplY3QpIHsKKyAgICAgICAgICAgICAgICBicm93c2VyLT5y
ZWxlYXNlb2JqZWN0KHJlc3VsdC52YWx1ZS5vYmplY3RWYWx1ZSk7CisgICAgICAgICAgICAgICAg
cGx1Z2luTG9nKGluc3RhbmNlLCAiRE9DVU1FTlQgT1BFTiBTVUNDRVNTIik7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBvYmotPnRlc3REb2N1bWVudE9wZW4gPSBGQUxTRTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChvYmotPnRlc3RXaW5kb3dPcGVuKSB7CisgICAgICAgICAgICBOUFZh
cmlhbnQgcmVzdWx0OworICAgICAgICAgICAgdGVzdFdpbmRvd09wZW4oaW5zdGFuY2UsICZyZXN1
bHQpOworICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlID09IE5QVmFyaWFudFR5cGVfT2JqZWN0
KSB7CisgICAgICAgICAgICAgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChyZXN1bHQudmFsdWUu
b2JqZWN0VmFsdWUpOworICAgICAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgIldJTkRP
VyBPUEVOIFNVQ0NFU1MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9iai0+dGVzdFdp
bmRvd09wZW4gPSBGQUxTRTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHJldHVybiBOUEVSUl9O
T19FUlJPUjsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTA1MzkpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMS0wNCAgQW5h
bnRhbmFyYXlhbmFuIEcgSXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbGF5b3V0IHRlc3Rz
IHRvIHRlc3QgZG9jdW1lbnQub3BlbiBhbmQgd2luZG93Lm9wZW4gY2FsbHMgaXNzdWVkCisgICAg
ICAgIGJ5IE5QQVBJIHBsdWdpbnMgd2l0aG91dCBhIGNhbGxpbmcgamF2YXNjcmlwdCBjb250ZXh0
LiBUaGUgYXNzb2NpYXRlZAorICAgICAgICB3ZWJraXQgYnVnIGlzIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTA2Nywgd2hpY2gKKyAgICAgICAgYWZmZWN0cyBDaHJv
bWl1bS4KKworICAgICAgICAqIHBsdWdpbnMvZG9jdW1lbnQtb3Blbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbHVnaW5zL3dpbmRvdy1vcGVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGx1Z2lucy93aW5kb3ctb3Blbi5odG1sOiBBZGRlZC4KKwogMjAwOS0xMS0wNCAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBl
dGVyc29uLgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1vcGVuLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1v
cGVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDA6IFBMVUdJTjogRE9DVU1FTlQgT1BFTiBTVUNDRVNTCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4NCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgew0KKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0K
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOw0KKyAgICAgICAg
Ly8gSWYgd2UgYXJlIG5vdCBkb25lIHdpdGhpbiA1MCBtcyB0aGVuIHdlIGFzc3VtZSB0aGF0IHRo
ZSB0ZXN0IGZhaWxlZC4gICAgICAgIA0KKyAgICAgICAgc2V0VGltZW91dChsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCksIDUwKTsNCisgICAgICB9Cis8L3NjcmlwdD4KKzxib2R5IHN0
eWxlPSJtYXJnaW46MHB4O292ZXJmbG93OmhpZGRlbiI+Cis8b2JqZWN0IG5hbWU9InRlc3RQbHVn
aW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHRlc3Rkb2N1bWVu
dG9wZW49InRydWUiPgorPC9vYmplY3Q+Cis8ZGl2PgorICAgIFRoaXMgdGVzdHMgdGhhdCBkb2N1
bWVudC5vcGVuIGludm9rZWQgYnkgYSBwbHVnaW4gdmlhIE5QTl9JbnZva2Ugc3VjY2VlZHMuCis8
L2Rpdj4KKzxib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ct
b3Blbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5k
b3ctb3Blbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5z
L3dpbmRvdy1vcGVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBXSU5ET1cgT1BFTiBTVUNDRVNTCisKK1Ro
aXMgdGVzdHMgdGhhdCB3aW5kb3cub3BlbiBpbnZva2VkIGJ5IGEgcGx1Z2luIHZpYSBOUE5fSW52
b2tlIHN1Y2NlZWRzLgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4uaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4uaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsNCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsNCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsNCisgICAgICAgDQorICAgICAgICAvLyBJZiB3ZSBhcmUgbm90IGRvbmUgd2l0aGluIDUw
IG1zIHRoZW4gd2UgYXNzdW1lIHRoYXQgdGhlIHRlc3QgZmFpbGVkLg0KKyAgICAgICAgc2V0VGlt
ZW91dChsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCksIDUwKTsNCisgICAgIH0KKyAg
ICAgCis8L3NjcmlwdD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MHB4O292ZXJmbG93OmhpZGRlbiI+
Cis8b2JqZWN0IG5hbWU9InRlc3RQbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRl
c3QtbmV0c2NhcGUiIHRlc3R3aW5kb3dvcGVuPSJ0cnVlIj4KKzwvb2JqZWN0PgorPGRpdj4KKyAg
ICBUaGlzIHRlc3RzIHRoYXQgd2luZG93Lm9wZW4gaW52b2tlZCBieSBhIHBsdWdpbiB2aWEgTlBO
X0ludm9rZSBzdWNjZWVkcy4KKzwvZGl2PgorPGJvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42586</attachid>
            <date>2009-11-05 12:28:06 -0800</date>
            <delta_ts>2009-11-06 12:39:16 -0800</delta_ts>
            <desc>Updated patch which now passes layout test runs on mac and windows.</desc>
            <filename>V8BindingsFix.txt</filename>
            <type>text/plain</type>
            <size>16670</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDU3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMTEtMDUgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxh
bmFudGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LAorICAgICAgICB3aGljaCBhZmZlY3RzIENo
cm9taXVtIG9ubHkuCisgICAgICAgIAorICAgICAgICBDaGFuZ2VzIHRvIFY4SFRNTERvY3VtZW50
Q3VzdG9tLmNwcCBhcmUgYXMgYmVsb3c6LQorICAgICAgICAxLiBUaGUgSFRNTERvY3VtZW50T3Bl
biBmdW5jdGlvbiB3b3VsZCBjYXVzZSBhIGNyYXNoIGluIENocm9taXVtIGlmCisgICAgICAgICAg
IHRoZXJlIHdhcyBubyBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dC4gV2Ugbm93IGNoZWNrIGZv
ciB0aGlzIGNhc2UKKyAgICAgICAgICAgYW5kIHBhc3MgaW4gTlVMTCB0byB0aGUgSFRNTERvY3Vt
ZW50OjpvcGVuIGZ1bmN0aW9uIHdoaWNoIGNhbiBoYW5kbGUKKyAgICAgICAgICAgYSBOVUxMIGRv
Y3VtZW50IHBhcmFtZXRlci4KKyAgICAgICAgMi4gVGhlIG90aGVyIGZ1bmN0aW9ucyBsaWtlIEhU
TUxEb2N1bWVudFdyaXRlLCBIVE1MRG9jdW1lbnRXcml0ZWxuLCBldGMKKyAgICAgICAgICAgaGFk
IEFTU0VSVFMgZm9yIGEgTlVMTCBjYWxsZXIgZnJhbWUsIHdoaWNoIHdhcyBib2d1cyBhcyBpdCB3
b3VsZCBjcmFzaAorICAgICAgICAgICBhbnl3YXkuIFdlIG5vdyBjaGVjayBmb3IgdGhpcyBjYXNl
IGFuZCByZXR1cm4gYSBmYWlsdXJlLgorICAgICAgICAgICAKKyAgICAgICAgQ2hhbmdlcyB0byBW
OERPTVdpbmRvd0N1c3RvbS5jcHAgYXJlIGFzIGJlbG93Oi0KKyAgICAgICAgMS4gSW5zdGVhZCBv
ZiBmYWlsaW5nIHRoZSB3aW5kb3cub3BlbiBjYWxsIG1hZGUgYnkgTlBBUEkgZm9yIGxhY2sgb2Yg
YQorICAgICAgICAgICBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dCwgd2Ugbm93IHVzZSB0aGUg
ZW50ZXJlZCBjb250ZXh0IGFzIHRoZSBjYWxsaW5nCisgICAgICAgICAgIGNvbnRleHQuCisKKyAg
ICAgICAgVGVzdHM6IHBsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCisgICAgICAgICAgICAgICBw
bHVnaW5zL3dpbmRvdy1vcGVuLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RF
Q0wpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RFQ0wpOgorCiAyMDA5LTExLTA1
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RE9NV2luZG93Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlzaW9uIDUwNDg3KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02OTMsMTQgKzY5MywxNSBAQCBDQUxMQkFDS19GVU5DX0RFQ0woRE9NV2luZG93T3BlbikK
ICAgICBpZiAoIVY4UHJveHk6OmNhbkFjY2Vzc0ZyYW1lKGZyYW1lLCB0cnVlKSkKICAgICAgICAg
cmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIEZyYW1lKiBjYWxsaW5nRnJhbWUgPSBWOFBy
b3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKTsKLSAgICBpZiAoIWNhbGxpbmdG
cmFtZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEZyYW1lKiBlbnRl
cmVkRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAg
ICBpZiAoIWVudGVyZWRGcmFtZSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAor
ICAgIEZyYW1lKiBjYWxsaW5nRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGlu
Z0NvbnRleHQoKTsKKyAgICAvLyBXZSBtYXkgbm90IGhhdmUgYSBjYWxsaW5nIGNvbnRleHQgaWYg
d2UgYXJlIGludm9rZWQgYnkgYSBwbHVnaW4gdmlhIE5QQVBJLgorICAgIGlmICghY2FsbGluZ0Zy
YW1lKQorICAgICAgICBjYWxsaW5nRnJhbWUgPSBlbnRlcmVkRnJhbWU7CisKICAgICBQYWdlKiBw
YWdlID0gZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1
bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA1MDQ4NykKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTIwLDggKzEyMCw3IEBAIENBTExCQUNLX0ZVTkNfREVDTChIVE1MRG9jdW1lbnRXcml0ZSkK
ICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQud3JpdGUoKSIpOwogICAgIEhUTUxEb2N1
bWVudCogaHRtbERvY3VtZW50ID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9k
ZTxIVE1MRG9jdW1lbnQ+KGFyZ3MuSG9sZGVyKCkpOwogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJv
eHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4dCgpOwotICAgIEFTU0VSVChmcmFtZSk7
Ci0gICAgaHRtbERvY3VtZW50LT53cml0ZSh3cml0ZUhlbHBlckdldFN0cmluZyhhcmdzKSwgZnJh
bWUtPmRvY3VtZW50KCkpOworICAgIGh0bWxEb2N1bWVudC0+d3JpdGUod3JpdGVIZWxwZXJHZXRT
dHJpbmcoYXJncyksIGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiBOVUxMKTsKICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0xMzAsOCArMTI5LDggQEAgQ0FMTEJBQ0tfRlVO
Q19ERUNMKEhUTUxEb2N1bWVudFdyaXRlbG4pCiAgICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3Vt
ZW50LndyaXRlbG4oKSIpOwogICAgIEhUTUxEb2N1bWVudCogaHRtbERvY3VtZW50ID0gVjhET01X
cmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1MRG9jdW1lbnQ+KGFyZ3MuSG9sZGVy
KCkpOwogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5n
Q29udGV4dCgpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgaHRtbERvY3VtZW50LT53cml0ZWxu
KHdyaXRlSGVscGVyR2V0U3RyaW5nKGFyZ3MpLCBmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgaWYg
KGZyYW1lKQorICAgICAgICBodG1sRG9jdW1lbnQtPndyaXRlbG4od3JpdGVIZWxwZXJHZXRTdHJp
bmcoYXJncyksIGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiBOVUxMKTsKICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzAsNyArMTY5LDcgQEAgQ0FMTEJBQ0tfRlVOQ19E
RUNMKEhUTUxEb2N1bWVudE9wZW4pCiAgICAgfQogCiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94
eTo6cmV0cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7Ci0gICAgaHRtbERvY3VtZW50LT5v
cGVuKGZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICBodG1sRG9jdW1lbnQtPm9wZW4oZnJhbWUgPyBm
cmFtZS0+ZG9jdW1lbnQoKSA6IE5VTEwpOwogICAgIC8vIFJldHVybiB0aGUgZG9jdW1lbnQuCiAg
ICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiB9CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDU3NCkKKysr
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisy
MDA5LTExLTA1ICBBbmFudGFuYXJheWFuYW4gRyBJeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBmdW5jdGlvbmFsaXR5IHRvIHRoZSBsYXlvdXQgdGVzdCBwbHVnaW4gdG8gaW52b2tlIGRvY3Vt
ZW50Lm9wZW4gYW5kCisgICAgICAgIHdpbmRvdy5vcGVuIHdpdGggZGVmYXVsdCBhcmd1bWVudHMu
IFRoZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LCB3aGljaCBhZmZlY3RzIENocm9taXVtLiBCYXNp
Y2FsbHkKKyAgICAgICAgd2luZG93Lm9wZW4gYW5kIGRvY3VtZW50Lm9wZW4gY2FsbHMgaXNzdWVk
IGJ5IE5QQVBJIHBsdWdpbnMgdmlhIE5QTl9JbnZva2UgZG9uJ3QKKyAgICAgICAgd29yayBpbiBD
aHJvbWl1bSAoVjgpIGlmIHRoZXJlIGlzIG5vIGNhbGxpbmcgamF2YXNjcmlwdCBjb250ZXh0LiBU
byBhY2hpZXZlIHRoaXMKKyAgICAgICAgZWZmZWN0IHdlIGludm9rZSB0aGVzZSBmdW5jdGlvbnMg
aW4gdGhlIGxheW91dCB0ZXN0IHBsdWdpbiBpbiB0aGUgTlBQX1NldFdpbmRvdworICAgICAgICBm
b3IgdGhlIHdpbmRvdy5vcGVuIHRlc3QgY2FzZSBhbmQgaW4gTlBQX0Rlc3Ryb3kgZm9yIHRoZSBk
b2N1bWVudC5vcGVuIHRlc3QgY2FzZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5jcHA6CisgICAgICAgICh0ZXN0RG9j
dW1lbnRPcGVuKToKKyAgICAgICAgKHRlc3RXaW5kb3dPcGVuKToKKyAgICAgICAgKHBsdWdpbkFs
bG9jYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3Vi
cHJvai9QbHVnaW5PYmplY3QuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4uc3VicHJvai9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAgICAo
TlBQX0Rlc3Ryb3kpOgorICAgICAgICAoTlBQX1NldFdpbmRvdyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9O
ZXcpOgorICAgICAgICAoTlBQX0Rlc3Ryb3kpOgorICAgICAgICAoTlBQX1NldFdpbmRvdyk6CisK
IDIwMDktMTEtMDQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIE5v
IHJldmlldywganVzdCBhZGQgYSBsaW5lIHdoaWNoIGdvdCBsZWZ0IG91dCBvZiB0aGUgcGF0Y2gg
dXBsb2FkZWQgZm9yIGNvbW1pdC4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1
Z2luT2JqZWN0LmNwcAkocmV2aXNpb24gNTA0ODcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9QbHVnaW5PYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NDMsNiArNjQzLDUyIEBAIHN0YXRpYyBib29sIHRlc3RDb25zdHJ1Y3QoUGx1
Z2luT2JqZWN0KiAKICAgICByZXR1cm4gYnJvd3Nlci0+Y29uc3RydWN0KG9iai0+bnBwLCBOUFZB
UklBTlRfVE9fT0JKRUNUKGFyZ3NbMF0pLCBhcmdzICsgMSwgYXJnQ291bnQgLSAxLCByZXN1bHQp
OwogfQogCitib29sIHRlc3REb2N1bWVudE9wZW4oTlBQIG5wcCwgTlBWYXJpYW50KiByZXN1bHQp
IHsKKyAgICBOUElkZW50aWZpZXIgZG9jdW1lbnRJZCA9IGJyb3dzZXItPmdldHN0cmluZ2lkZW50
aWZpZXIoImRvY3VtZW50Iik7CisgICAgTlBJZGVudGlmaWVyIG9wZW5JZCA9IGJyb3dzZXItPmdl
dHN0cmluZ2lkZW50aWZpZXIoIm9wZW4iKTsKKworICAgIE5QT2JqZWN0ICp3aW5kb3dPYmplY3Qg
PSBOVUxMOworICAgIGJyb3dzZXItPmdldHZhbHVlKG5wcCwgTlBOVldpbmRvd05QT2JqZWN0LCAm
d2luZG93T2JqZWN0KTsKKyAgICBpZiAoIXdpbmRvd09iamVjdCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgTlBWYXJpYW50IGRvY1ZhcmlhbnQ7CisgICAgYnJvd3Nlci0+Z2V0cHJvcGVy
dHkobnBwLCB3aW5kb3dPYmplY3QsIGRvY3VtZW50SWQsICZkb2NWYXJpYW50KTsKKyAgICBpZiAo
ZG9jVmFyaWFudC50eXBlICE9IE5QVmFyaWFudFR5cGVfT2JqZWN0KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBOUE9iamVjdCAqZG9jdW1lbnRPYmplY3QgPSBOUFZBUklBTlRfVE9fT0JK
RUNUKGRvY1ZhcmlhbnQpOworCisgICAgTlBWYXJpYW50IG9wZW5BcmdzWzJdOworICAgIFNUUklO
R1pfVE9fTlBWQVJJQU5UKCJ0ZXh0L2h0bWwiLCBvcGVuQXJnc1swXSk7CisgICAgU1RSSU5HWl9U
T19OUFZBUklBTlQoIl9ibGFuayIsIG9wZW5BcmdzWzFdKTsKKworICAgIGJyb3dzZXItPmludm9r
ZShucHAsIGRvY3VtZW50T2JqZWN0LCBvcGVuSWQsIG9wZW5BcmdzLCAyLCByZXN1bHQpOworCisg
ICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChkb2N1bWVudE9iamVjdCk7CisgICAgaWYgKHJlc3Vs
dC0+dHlwZSAhPSBOUFZhcmlhbnRUeXBlX09iamVjdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIHRlc3RXaW5kb3dPcGVuKE5QUCBucHAsIE5QVmFy
aWFudCogcmVzdWx0KSB7CisgICAgTlBJZGVudGlmaWVyIG9wZW5JZCA9IGJyb3dzZXItPmdldHN0
cmluZ2lkZW50aWZpZXIoIm9wZW4iKTsKKworICAgIE5QT2JqZWN0ICp3aW5kb3dPYmplY3QgPSBO
VUxMOworICAgIGJyb3dzZXItPmdldHZhbHVlKG5wcCwgTlBOVldpbmRvd05QT2JqZWN0LCAmd2lu
ZG93T2JqZWN0KTsKKyAgICBpZiAoIXdpbmRvd09iamVjdCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgTlBWYXJpYW50IG9wZW5BcmdzWzJdOworICAgIFNUUklOR1pfVE9fTlBWQVJJQU5U
KCJhYm91dDpibGFuayIsIG9wZW5BcmdzWzBdKTsKKyAgICBTVFJJTkdaX1RPX05QVkFSSUFOVCgi
X2JsYW5rIiwgb3BlbkFyZ3NbMV0pOworCisgICAgYnJvd3Nlci0+aW52b2tlKG5wcCwgd2luZG93
T2JqZWN0LCBvcGVuSWQsIG9wZW5BcmdzLCAyLCByZXN1bHQpOworICAgIGlmIChyZXN1bHQtPnR5
cGUgIT0gTlBWYXJpYW50VHlwZV9PYmplY3QpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGJvb2wgcGx1Z2luSW52b2tlKE5QT2JqZWN0KiBoZWFk
ZXIsIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFy
Z0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBQbHVnaW5PYmplY3QqIHBsdWdpbiA9
IHJlaW50ZXJwcmV0X2Nhc3Q8UGx1Z2luT2JqZWN0Kj4oaGVhZGVyKTsKQEAgLTczMyw2ICs3Nzks
OSBAQCBzdGF0aWMgTlBPYmplY3QgKnBsdWdpbkFsbG9jYXRlKE5QUCBucHAsCiAgICAgbmV3SW5z
dGFuY2UtPmxhc3RVcmwgPSBOVUxMOwogICAgIG5ld0luc3RhbmNlLT5sYXN0SGVhZGVycyA9IE5V
TEw7CiAKKyAgICBuZXdJbnN0YW5jZS0+dGVzdERvY3VtZW50T3BlbkluRGVzdHJveSA9IEZBTFNF
OworICAgIG5ld0luc3RhbmNlLT50ZXN0V2luZG93T3BlbiA9IEZBTFNFOworCiAgICAgcmV0dXJu
IChOUE9iamVjdCopbmV3SW5zdGFuY2U7CiB9CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJw
cm9qL1BsdWdpbk9iamVjdC5oCShyZXZpc2lvbiA1MDQ4NykKKysrIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBOUEJvb2wg
Y2FjaGVkUHJpdmF0ZUJyb3dzaW5nTW9kZTsKICAgICBOUE9iamVjdCogdGVzdE9iamVjdDsKICAg
ICBOUFN0cmVhbSogc3RyZWFtOworICAgIE5QQm9vbCB0ZXN0RG9jdW1lbnRPcGVuSW5EZXN0cm95
OworICAgIE5QQm9vbCB0ZXN0V2luZG93T3BlbjsKICAgICBjaGFyKiBvblN0cmVhbUxvYWQ7CiAg
ICAgY2hhciogb25TdHJlYW1EZXN0cm95OwogICAgIGNoYXIqIG9uRGVzdHJveTsKQEAgLTU2LDMg
KzU4LDUgQEAgZXh0ZXJuIHZvaWQgaGFuZGxlQ2FsbGJhY2soUGx1Z2luT2JqZWN0KgogZXh0ZXJu
IHZvaWQgbm90aWZ5U3RyZWFtKFBsdWdpbk9iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyICp1cmws
IGNvbnN0IGNoYXIgKmhlYWRlcnMpOwogZXh0ZXJuIHZvaWQgdGVzdE5QUnVudGltZShOUFAgbnBw
KTsKIGV4dGVybiB2b2lkIHBsdWdpbkxvZyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIGZvcm1h
dCwgLi4uKTsKK2V4dGVybiBib29sIHRlc3REb2N1bWVudE9wZW4oTlBQIG5wcCwgTlBWYXJpYW50
KiByZXN1bHQpOworZXh0ZXJuIGJvb2wgdGVzdFdpbmRvd09wZW4oTlBQIG5wcCwgTlBWYXJpYW50
KiByZXN1bHQpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAJKHJldmlzaW9uIDUw
NDg3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1
YnByb2ovbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsMTAgQEAgTlBFcnJv
ciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAgICAgZXhlY3V0ZVNj
cmlwdChvYmosICJkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICcnIik7CiAgICAgICAgIGVsc2Ug
aWYgKCFzdHJjYXNlY21wKGFyZ25baV0sICJvbmRlc3Ryb3kiKSkKICAgICAgICAgICAgIG9iai0+
b25EZXN0cm95ID0gc3RyZHVwKGFyZ3ZbaV0pOworICAgICAgICBlbHNlIGlmIChzdHJjYXNlY21w
KGFyZ25baV0sICJ0ZXN0ZG9jdW1lbnRvcGVuaW5kZXN0cm95IikgPT0gMCkKKyAgICAgICAgICAg
IG9iai0+dGVzdERvY3VtZW50T3BlbkluRGVzdHJveSA9IFRSVUU7CisgICAgICAgIGVsc2UgaWYg
KHN0cmNhc2VjbXAoYXJnbltpXSwgInRlc3R3aW5kb3dvcGVuIikgPT0gMCkKKyAgICAgICAgICAg
IG9iai0+dGVzdFdpbmRvd09wZW4gPSBUUlVFOwogICAgIH0KICAgICAgICAgCiAjaWZuZGVmIE5Q
X05PX0NBUkJPTgpAQCAtMTQyLDYgKzE0NiwxNiBAQCBOUEVycm9yIE5QUF9EZXN0cm95KE5QUCBp
bnN0YW5jZSwgTlBTYXZlCiB7CiAgICAgUGx1Z2luT2JqZWN0KiBvYmogPSBzdGF0aWNfY2FzdDxQ
bHVnaW5PYmplY3QqPihpbnN0YW5jZS0+cGRhdGEpOwogICAgIGlmIChvYmopIHsKKyAgICAgICAg
aWYgKG9iai0+dGVzdERvY3VtZW50T3BlbkluRGVzdHJveSkgeworICAgICAgICAgICAgTlBWYXJp
YW50IHJlc3VsdDsKKyAgICAgICAgICAgIHRlc3REb2N1bWVudE9wZW4oaW5zdGFuY2UsICZyZXN1
bHQpOworICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlID09IE5QVmFyaWFudFR5cGVfT2JqZWN0
KSB7CisgICAgICAgICAgICAgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChyZXN1bHQudmFsdWUu
b2JqZWN0VmFsdWUpOworICAgICAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgIkRPQ1VN
RU5UIE9QRU4gU1VDQ0VTUyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2JqLT50ZXN0
RG9jdW1lbnRPcGVuSW5EZXN0cm95ID0gRkFMU0U7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
b2JqLT5vbkRlc3Ryb3kpIHsKICAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPm9u
RGVzdHJveSk7CiAgICAgICAgICAgICBmcmVlKG9iai0+b25EZXN0cm95KTsKQEAgLTE3Myw2ICsx
ODcsMTYgQEAgTlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaQogICAgICAg
ICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAiTlBQX1NldFdpbmRvdzogJWQgJWQiLCAoaW50KXdp
bmRvdy0+d2lkdGgsIChpbnQpd2luZG93LT5oZWlnaHQpOwogICAgICAgICAgICAgb2JqLT5sb2dT
ZXRXaW5kb3cgPSBmYWxzZTsKICAgICAgICAgfQorCisgICAgICAgIGlmIChvYmotPnRlc3RXaW5k
b3dPcGVuKSB7CisgICAgICAgICAgICBOUFZhcmlhbnQgcmVzdWx0OworICAgICAgICAgICAgdGVz
dFdpbmRvd09wZW4oaW5zdGFuY2UsICZyZXN1bHQpOworICAgICAgICAgICAgaWYgKHJlc3VsdC50
eXBlID09IE5QVmFyaWFudFR5cGVfT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgYnJvd3Nlci0+
cmVsZWFzZW9iamVjdChyZXN1bHQudmFsdWUub2JqZWN0VmFsdWUpOworICAgICAgICAgICAgICAg
IHBsdWdpbkxvZyhpbnN0YW5jZSwgIldJTkRPVyBPUEVOIFNVQ0NFU1MiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIG9iai0+dGVzdFdpbmRvd09wZW4gPSBGQUxTRTsKKyAgICAgICAgfQog
ICAgIH0KICAgICAKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CkluZGV4OiBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4v
bWFpbi5jcHAJKHJldmlzaW9uIDUwNDg3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNyAr
ODgsMTAgQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAg
ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgICAgICAgICAgICAg
ICAgICBpZiAoX3N0cmljbXAoYXJnbltpXSwgInNyYyIpID09IDApCiAgICAgICAgICAgICAgICAg
ICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJzcmM6ICVzIiwgYXJndltpXSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJ0ZXN0ZG9j
dW1lbnRvcGVuaW5kZXN0cm95IikgPT0gMCkKKyAgICAgICAgICAgICAgICBvYmotPnRlc3REb2N1
bWVudE9wZW5JbkRlc3Ryb3kgPSBUUlVFOworICAgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNt
cChhcmduW2ldLCAidGVzdHdpbmRvd29wZW4iKSA9PSAwKQorICAgICAgICAgICAgICAgIG9iai0+
dGVzdFdpbmRvd09wZW4gPSBUUlVFOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpbnN0
YW5jZS0+cGRhdGEgPSBvYmo7CkBAIC0xMDEsNiArMTA0LDE2IEBAIE5QRXJyb3IgTlBQX0Rlc3Ry
b3koTlBQIGluc3RhbmNlLCBOUFNhdmUKIHsKICAgICBQbHVnaW5PYmplY3QgKm9iaiA9IChQbHVn
aW5PYmplY3QqKWluc3RhbmNlLT5wZGF0YTsKICAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChv
YmotPnRlc3REb2N1bWVudE9wZW5JbkRlc3Ryb3kpIHsKKyAgICAgICAgICAgIE5QVmFyaWFudCBy
ZXN1bHQ7CisgICAgICAgICAgICB0ZXN0RG9jdW1lbnRPcGVuKGluc3RhbmNlLCAmcmVzdWx0KTsK
KyAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PSBOUFZhcmlhbnRUeXBlX09iamVjdCkgewor
ICAgICAgICAgICAgICAgIGJyb3dzZXItPnJlbGVhc2VvYmplY3QocmVzdWx0LnZhbHVlLm9iamVj
dFZhbHVlKTsKKyAgICAgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJET0NVTUVOVCBP
UEVOIFNVQ0NFU1MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9iai0+dGVzdERvY3Vt
ZW50T3BlbkluRGVzdHJveSA9IEZBTFNFOworICAgICAgICB9CisKICAgICAgICAgaWYgKG9iai0+
b25TdHJlYW1Mb2FkKQogICAgICAgICAgICAgZnJlZShvYmotPm9uU3RyZWFtTG9hZCk7CiAKQEAg
LTEyMCw2ICsxMzMsMjAgQEAgTlBFcnJvciBOUFBfRGVzdHJveShOUFAgaW5zdGFuY2UsIE5QU2F2
ZQogCiBOUEVycm9yIE5QUF9TZXRXaW5kb3coTlBQIGluc3RhbmNlLCBOUFdpbmRvdyAqd2luZG93
KQogeworICAgIFBsdWdpbk9iamVjdCogb2JqID0gc3RhdGljX2Nhc3Q8UGx1Z2luT2JqZWN0Kj4o
aW5zdGFuY2UtPnBkYXRhKTsKKworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+dGVz
dFdpbmRvd09wZW4pIHsKKyAgICAgICAgICAgIE5QVmFyaWFudCByZXN1bHQ7CisgICAgICAgICAg
ICB0ZXN0V2luZG93T3BlbihpbnN0YW5jZSwgJnJlc3VsdCk7CisgICAgICAgICAgICBpZiAocmVz
dWx0LnR5cGUgPT0gTlBWYXJpYW50VHlwZV9PYmplY3QpIHsKKyAgICAgICAgICAgICAgICBicm93
c2VyLT5yZWxlYXNlb2JqZWN0KHJlc3VsdC52YWx1ZS5vYmplY3RWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAiV0lORE9XIE9QRU4gU1VDQ0VTUyIpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgb2JqLT50ZXN0V2luZG93T3BlbiA9IEZBTFNFOworICAgICAg
ICB9CisgICAgfQorCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA1MDU3NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDA5LTExLTA1ICBBbmFudGFuYXJheWFuYW4gRyBJeWVuZ2FyICA8
YW5hbnRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdHMgdG8gdGVzdCBkb2N1bWVudC5vcGVuIGFu
ZCB3aW5kb3cub3BlbiBjYWxscyBpc3N1ZWQKKyAgICAgICAgYnkgTlBBUEkgcGx1Z2lucyB3aXRo
b3V0IGEgY2FsbGluZyBqYXZhc2NyaXB0IGNvbnRleHQuIFRoZSBhc3NvY2lhdGVkCisgICAgICAg
IHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
MDY3LCB3aGljaAorICAgICAgICBhZmZlY3RzIENocm9taXVtLgorCisgICAgICAgICogcGx1Z2lu
cy9kb2N1bWVudC1vcGVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9k
b2N1bWVudC1vcGVuLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvd2luZG93LW9wZW4t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3dpbmRvdy1vcGVuLmh0bWw6
IEFkZGVkLgorCiBpMjAwOS0xMS0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBMYXlv
dXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBQTFVH
SU46IERPQ1VNRU5UIE9QRU4gU1VDQ0VTUworVGhpcyB0ZXN0cyB0aGF0IGRvY3VtZW50Lm9wZW4g
aW52b2tlZCBieSBhIHBsdWdpbiB2aWEgTlBOX0ludm9rZSBzdWNjZWVkcy4KSW5kZXg6IExheW91
dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvcGx1Z2lucy9kb2N1bWVudC1vcGVuLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIg
QEAKKzxodG1sPgorPGhlYWQ+Cis8Ym9keT4KKzxvYmplY3QgaWQ9InRlc3RQbHVnaW4iIHR5cGU9
ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHRlc3Rkb2N1bWVudG9wZW5pbmRl
c3Ryb3k9InRydWUiPgorPC9vYmplY3Q+Cis8ZGl2PgorICAgIFRoaXMgdGVzdHMgdGhhdCBkb2N1
bWVudC5vcGVuIGludm9rZWQgYnkgYSBwbHVnaW4gdmlhIE5QTl9JbnZva2Ugc3VjY2VlZHMuCis8
L2Rpdj4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgLy8gSWYgd2UgYXJlIG5v
dCBkb25lIHdpdGhpbiA1MCBtcyB0aGVuIHdlIGFzc3VtZSB0aGF0IHRoZSB0ZXN0IGZhaWxlZC4K
KyAgICAgICAgc2V0VGltZW91dCgnbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpJywg
NTApOworCisgICAgICAgIHZhciBwbHVnaW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dFBsdWdpbiIpOworICAgICAgICB2YXIgcGFyZW50ID0gcGx1Z2luLnBhcmVudE5vZGU7CisgICAg
ICAgIHBhcmVudC5yZW1vdmVDaGlsZChwbHVnaW4pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbHVnaW5zL3dpbmRvdy1vcGVu
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMDogUExVR0lOOiBXSU5ET1cgT1BFTiBTVUNDRVNTCisKK1RoaXMgdGVzdHMgdGhh
dCB3aW5kb3cub3BlbiBpbnZva2VkIGJ5IGEgcGx1Z2luIHZpYSBOUE5fSW52b2tlIHN1Y2NlZWRz
LgpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4uaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5P
cGVuV2luZG93cygpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAK
KyAgICAgICAgLy8gSWYgd2UgYXJlIG5vdCBkb25lIHdpdGhpbiA1MCBtcyB0aGVuIHdlIGFzc3Vt
ZSB0aGF0IHRoZSB0ZXN0IGZhaWxlZC4KKyAgICAgICAgc2V0VGltZW91dCgnbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpJywgNTApOworICAgICB9CisgICAgIAorPC9zY3JpcHQ+Cis8
Ym9keSBzdHlsZT0ibWFyZ2luOjBweDtvdmVyZmxvdzpoaWRkZW4iPgorPG9iamVjdCBuYW1lPSJ0
ZXN0UGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB0ZXN0
d2luZG93b3Blbj0idHJ1ZSI+Cis8L29iamVjdD4KKzxkaXY+CisgICAgVGhpcyB0ZXN0cyB0aGF0
IHdpbmRvdy5vcGVuIGludm9rZWQgYnkgYSBwbHVnaW4gdmlhIE5QTl9JbnZva2Ugc3VjY2VlZHMu
Cis8L2Rpdj4KKzxib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42669</attachid>
            <date>2009-11-06 12:39:16 -0800</date>
            <delta_ts>2009-11-06 14:49:27 -0800</delta_ts>
            <desc>Updated patch with the document.open invocation from the plugin now done in npp_destroystream</desc>
            <filename>V8BindingsFix.txt</filename>
            <type>text/plain</type>
            <size>15906</size>
            <attacher name="Ananta Iyengar">ananta</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDYwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMTEtMDYgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxh
bmFudGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LAorICAgICAgICB3aGljaCBhZmZlY3RzIENo
cm9taXVtIG9ubHkuCisgICAgICAgIAorICAgICAgICBDaGFuZ2VzIHRvIFY4SFRNTERvY3VtZW50
Q3VzdG9tLmNwcCBhcmUgYXMgYmVsb3c6LQorICAgICAgICAxLiBUaGUgSFRNTERvY3VtZW50T3Bl
biBmdW5jdGlvbiB3b3VsZCBjYXVzZSBhIGNyYXNoIGluIENocm9taXVtIGlmCisgICAgICAgICAg
IHRoZXJlIHdhcyBubyBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dC4gV2Ugbm93IGNoZWNrIGZv
ciB0aGlzIGNhc2UKKyAgICAgICAgICAgYW5kIHBhc3MgaW4gTlVMTCB0byB0aGUgSFRNTERvY3Vt
ZW50OjpvcGVuIGZ1bmN0aW9uIHdoaWNoIGNhbiBoYW5kbGUKKyAgICAgICAgICAgYSBOVUxMIGRv
Y3VtZW50IHBhcmFtZXRlci4KKyAgICAgICAgMi4gVGhlIG90aGVyIGZ1bmN0aW9ucyBsaWtlIEhU
TUxEb2N1bWVudFdyaXRlLCBIVE1MRG9jdW1lbnRXcml0ZWxuLCBldGMKKyAgICAgICAgICAgaGFk
IEFTU0VSVFMgZm9yIGEgTlVMTCBjYWxsZXIgZnJhbWUsIHdoaWNoIHdhcyBib2d1cyBhcyBpdCB3
b3VsZCBjcmFzaAorICAgICAgICAgICBhbnl3YXkuIFdlIG5vdyBjaGVjayBmb3IgdGhpcyBjYXNl
IGFuZCByZXR1cm4gYSBmYWlsdXJlLgorICAgICAgICAgICAKKyAgICAgICAgQ2hhbmdlcyB0byBW
OERPTVdpbmRvd0N1c3RvbS5jcHAgYXJlIGFzIGJlbG93Oi0KKyAgICAgICAgMS4gSW5zdGVhZCBv
ZiBmYWlsaW5nIHRoZSB3aW5kb3cub3BlbiBjYWxsIG1hZGUgYnkgTlBBUEkgZm9yIGxhY2sgb2Yg
YQorICAgICAgICAgICBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dCwgd2Ugbm93IHVzZSB0aGUg
ZW50ZXJlZCBjb250ZXh0IGFzIHRoZSBjYWxsaW5nCisgICAgICAgICAgIGNvbnRleHQuCisKKyAg
ICAgICAgVGVzdHM6IHBsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCisgICAgICAgICAgICAgICBw
bHVnaW5zL3dpbmRvdy1vcGVuLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RF
Q0wpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RFQ0wpOgorCiAyMDA5LTExLTA2
ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
V2luZG93Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlzaW9uIDUwNDg3KQorKysgV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
OTMsMTQgKzY5MywxNSBAQCBDQUxMQkFDS19GVU5DX0RFQ0woRE9NV2luZG93T3BlbikKICAgICBp
ZiAoIVY4UHJveHk6OmNhbkFjY2Vzc0ZyYW1lKGZyYW1lLCB0cnVlKSkKICAgICAgICAgcmV0dXJu
IHY4OjpVbmRlZmluZWQoKTsKIAotICAgIEZyYW1lKiBjYWxsaW5nRnJhbWUgPSBWOFByb3h5Ojpy
ZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKTsKLSAgICBpZiAoIWNhbGxpbmdGcmFtZSkK
LSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQogICAgIEZyYW1lKiBlbnRlcmVkRnJh
bWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAo
IWVudGVyZWRGcmFtZSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAorICAgIEZy
YW1lKiBjYWxsaW5nRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRl
eHQoKTsKKyAgICAvLyBXZSBtYXkgbm90IGhhdmUgYSBjYWxsaW5nIGNvbnRleHQgaWYgd2UgYXJl
IGludm9rZWQgYnkgYSBwbHVnaW4gdmlhIE5QQVBJLgorICAgIGlmICghY2FsbGluZ0ZyYW1lKQor
ICAgICAgICBjYWxsaW5nRnJhbWUgPSBlbnRlcmVkRnJhbWU7CisKICAgICBQYWdlKiBwYWdlID0g
ZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZp
bmVkKCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
RG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA1MDQ4NykKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIw
LDggKzEyMCw3IEBAIENBTExCQUNLX0ZVTkNfREVDTChIVE1MRG9jdW1lbnRXcml0ZSkKICAgICBJ
TkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1lbnQud3JpdGUoKSIpOwogICAgIEhUTUxEb2N1bWVudCog
aHRtbERvY3VtZW50ID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1M
RG9jdW1lbnQ+KGFyZ3MuSG9sZGVyKCkpOwogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJl
dHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4dCgpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAg
aHRtbERvY3VtZW50LT53cml0ZSh3cml0ZUhlbHBlckdldFN0cmluZyhhcmdzKSwgZnJhbWUtPmRv
Y3VtZW50KCkpOworICAgIGh0bWxEb2N1bWVudC0+d3JpdGUod3JpdGVIZWxwZXJHZXRTdHJpbmco
YXJncyksIGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiBOVUxMKTsKICAgICByZXR1cm4gdjg6
OlVuZGVmaW5lZCgpOwogfQogCkBAIC0xMzAsOCArMTI5LDggQEAgQ0FMTEJBQ0tfRlVOQ19ERUNM
KEhUTUxEb2N1bWVudFdyaXRlbG4pCiAgICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50Lndy
aXRlbG4oKSIpOwogICAgIEhUTUxEb2N1bWVudCogaHRtbERvY3VtZW50ID0gVjhET01XcmFwcGVy
Ojpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1MRG9jdW1lbnQ+KGFyZ3MuSG9sZGVyKCkpOwog
ICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4
dCgpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgaHRtbERvY3VtZW50LT53cml0ZWxuKHdyaXRl
SGVscGVyR2V0U3RyaW5nKGFyZ3MpLCBmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgaWYgKGZyYW1l
KQorICAgICAgICBodG1sRG9jdW1lbnQtPndyaXRlbG4od3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJn
cyksIGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiBOVUxMKTsKICAgICByZXR1cm4gdjg6OlVu
ZGVmaW5lZCgpOwogfQogCkBAIC0xNzAsNyArMTY5LDcgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNMKEhU
TUxEb2N1bWVudE9wZW4pCiAgICAgfQogCiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0
cmlldmVGcmFtZUZvckNhbGxpbmdDb250ZXh0KCk7Ci0gICAgaHRtbERvY3VtZW50LT5vcGVuKGZy
YW1lLT5kb2N1bWVudCgpKTsKKyAgICBodG1sRG9jdW1lbnQtPm9wZW4oZnJhbWUgPyBmcmFtZS0+
ZG9jdW1lbnQoKSA6IE5VTEwpOwogICAgIC8vIFJldHVybiB0aGUgZG9jdW1lbnQuCiAgICAgcmV0
dXJuIGFyZ3MuSG9sZGVyKCk7CiB9CkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDYwMykKKysrIFdlYktp
dFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDA5LTEx
LTA2ICBBbmFudGFuYXJheWFuYW4gRyBJeWVuZ2FyICA8YW5hbnRhQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBmdW5j
dGlvbmFsaXR5IHRvIHRoZSBsYXlvdXQgdGVzdCBwbHVnaW4gdG8gaW52b2tlIGRvY3VtZW50Lm9w
ZW4gYW5kCisgICAgICAgIHdpbmRvdy5vcGVuIHdpdGggZGVmYXVsdCBhcmd1bWVudHMuIFRoZSBh
c3NvY2lhdGVkIHdlYmtpdCBidWcgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDY3LCB3aGljaCBhZmZlY3RzIENocm9taXVtLiBCYXNpY2FsbHkK
KyAgICAgICAgd2luZG93Lm9wZW4gYW5kIGRvY3VtZW50Lm9wZW4gY2FsbHMgaXNzdWVkIGJ5IE5Q
QVBJIHBsdWdpbnMgdmlhIE5QTl9JbnZva2UgZG9uJ3QKKyAgICAgICAgd29yayBpbiBDaHJvbWl1
bSAoVjgpIGlmIHRoZXJlIGlzIG5vIGNhbGxpbmcgamF2YXNjcmlwdCBjb250ZXh0LiBUbyBhY2hp
ZXZlIHRoaXMKKyAgICAgICAgZWZmZWN0IHdlIGludm9rZSB0aGVzZSBmdW5jdGlvbnMgaW4gdGhl
IGxheW91dCB0ZXN0IHBsdWdpbiBpbiB0aGUgTlBQX1NldFdpbmRvdworICAgICAgICBmb3IgdGhl
IHdpbmRvdy5vcGVuIHRlc3QgY2FzZSBhbmQgaW4gTlBQX0Rlc3Ryb3lTdHJlYW0gZm9yIHRoZSBk
b2N1bWVudC5vcGVuIHRlc3QgY2FzZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5jcHA6CisgICAgICAgICh0ZXN0RG9j
dW1lbnRPcGVuKToKKyAgICAgICAgKHRlc3RXaW5kb3dPcGVuKToKKyAgICAgICAgKHBsdWdpbkFs
bG9jYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3Vi
cHJvai9QbHVnaW5PYmplY3QuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4uc3VicHJvai9tYWluLmNwcDoKKyAgICAgICAgKE5QUF9OZXcpOgorICAgICAgICAo
TlBQX1NldFdpbmRvdyk6CisgICAgICAgIChOUFBfRGVzdHJveVN0cmVhbSk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcDoKKyAgICAgICAg
KE5QUF9OZXcpOgorICAgICAgICAoTlBQX1NldFdpbmRvdyk6CisgICAgICAgIChOUFBfTmV3U3Ry
ZWFtKToKKyAgICAgICAgKE5QUF9EZXN0cm95U3RyZWFtKToKKwogMjAwOS0xMS0wNiAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5z
dWJwcm9qL1BsdWdpbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0LmNwcAkocmV2
aXNpb24gNTA0ODcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQ
bHVnSW4uc3VicHJvai9QbHVnaW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsNiAr
NjQzLDYwIEBAIHN0YXRpYyBib29sIHRlc3RDb25zdHJ1Y3QoUGx1Z2luT2JqZWN0KiAKICAgICBy
ZXR1cm4gYnJvd3Nlci0+Y29uc3RydWN0KG9iai0+bnBwLCBOUFZBUklBTlRfVE9fT0JKRUNUKGFy
Z3NbMF0pLCBhcmdzICsgMSwgYXJnQ291bnQgLSAxLCByZXN1bHQpOwogfQogCitib29sIHRlc3RE
b2N1bWVudE9wZW4oTlBQIG5wcCkgeworICAgIE5QSWRlbnRpZmllciBkb2N1bWVudElkID0gYnJv
d3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcigiZG9jdW1lbnQiKTsKKyAgICBOUElkZW50aWZpZXIg
b3BlbklkID0gYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcigib3BlbiIpOworCisgICAgTlBP
YmplY3QgKndpbmRvd09iamVjdCA9IE5VTEw7CisgICAgYnJvd3Nlci0+Z2V0dmFsdWUobnBwLCBO
UE5WV2luZG93TlBPYmplY3QsICZ3aW5kb3dPYmplY3QpOworICAgIGlmICghd2luZG93T2JqZWN0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOUFZhcmlhbnQgZG9jVmFyaWFudDsKKyAg
ICBicm93c2VyLT5nZXRwcm9wZXJ0eShucHAsIHdpbmRvd09iamVjdCwgZG9jdW1lbnRJZCwgJmRv
Y1ZhcmlhbnQpOworICAgIGlmIChkb2NWYXJpYW50LnR5cGUgIT0gTlBWYXJpYW50VHlwZV9PYmpl
Y3QpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5QT2JqZWN0ICpkb2N1bWVudE9iamVj
dCA9IE5QVkFSSUFOVF9UT19PQkpFQ1QoZG9jVmFyaWFudCk7CisKKyAgICBOUFZhcmlhbnQgb3Bl
bkFyZ3NbMl07CisgICAgU1RSSU5HWl9UT19OUFZBUklBTlQoInRleHQvaHRtbCIsIG9wZW5Bcmdz
WzBdKTsKKyAgICBTVFJJTkdaX1RPX05QVkFSSUFOVCgiX2JsYW5rIiwgb3BlbkFyZ3NbMV0pOwor
CisgICAgTlBWYXJpYW50IHJlc3VsdDsKKyAgICBicm93c2VyLT5pbnZva2UobnBwLCBkb2N1bWVu
dE9iamVjdCwgb3BlbklkLCBvcGVuQXJncywgMiwgJnJlc3VsdCk7CisgICAgYnJvd3Nlci0+cmVs
ZWFzZW9iamVjdChkb2N1bWVudE9iamVjdCk7CisKKyAgICBpZiAocmVzdWx0LnR5cGUgPT0gTlBW
YXJpYW50VHlwZV9PYmplY3QpIHsKKyAgICAgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChyZXN1
bHQudmFsdWUub2JqZWN0VmFsdWUpOworICAgICAgICBwbHVnaW5Mb2cobnBwLCAiRE9DVU1FTlQg
T1BFTiBTVUNDRVNTIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgdGVzdFdpbmRvd09wZW4oTlBQIG5wcCkgeworICAgIE5QSWRlbnRp
ZmllciBvcGVuSWQgPSBicm93c2VyLT5nZXRzdHJpbmdpZGVudGlmaWVyKCJvcGVuIik7CisKKyAg
ICBOUE9iamVjdCAqd2luZG93T2JqZWN0ID0gTlVMTDsKKyAgICBicm93c2VyLT5nZXR2YWx1ZShu
cHAsIE5QTlZXaW5kb3dOUE9iamVjdCwgJndpbmRvd09iamVjdCk7CisgICAgaWYgKCF3aW5kb3dP
YmplY3QpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5QVmFyaWFudCBvcGVuQXJnc1sy
XTsKKyAgICBTVFJJTkdaX1RPX05QVkFSSUFOVCgiYWJvdXQ6YmxhbmsiLCBvcGVuQXJnc1swXSk7
CisgICAgU1RSSU5HWl9UT19OUFZBUklBTlQoIl9ibGFuayIsIG9wZW5BcmdzWzFdKTsKKworICAg
IE5QVmFyaWFudCByZXN1bHQ7CisgICAgYnJvd3Nlci0+aW52b2tlKG5wcCwgd2luZG93T2JqZWN0
LCBvcGVuSWQsIG9wZW5BcmdzLCAyLCAmcmVzdWx0KTsKKyAgICBpZiAocmVzdWx0LnR5cGUgPT0g
TlBWYXJpYW50VHlwZV9PYmplY3QpIHsKKyAgICAgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChy
ZXN1bHQudmFsdWUub2JqZWN0VmFsdWUpOworICAgICAgICBwbHVnaW5Mb2cobnBwLCAiV0lORE9X
IE9QRU4gU1VDQ0VTUyIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBwbHVnaW5JbnZva2UoTlBPYmplY3QqIGhlYWRlciwg
TlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291
bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewogICAgIFBsdWdpbk9iamVjdCogcGx1Z2luID0gcmVp
bnRlcnByZXRfY2FzdDxQbHVnaW5PYmplY3QqPihoZWFkZXIpOwpAQCAtNzMzLDYgKzc4Nyw5IEBA
IHN0YXRpYyBOUE9iamVjdCAqcGx1Z2luQWxsb2NhdGUoTlBQIG5wcCwKICAgICBuZXdJbnN0YW5j
ZS0+bGFzdFVybCA9IE5VTEw7CiAgICAgbmV3SW5zdGFuY2UtPmxhc3RIZWFkZXJzID0gTlVMTDsK
IAorICAgIG5ld0luc3RhbmNlLT50ZXN0RG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtID0gRkFM
U0U7CisgICAgbmV3SW5zdGFuY2UtPnRlc3RXaW5kb3dPcGVuID0gRkFMU0U7CisKICAgICByZXR1
cm4gKE5QT2JqZWN0KiluZXdJbnN0YW5jZTsKIH0KIApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1
YnByb2ovUGx1Z2luT2JqZWN0LmgJKHJldmlzaW9uIDUwNDg3KQorKysgV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIE5QQm9v
bCBjYWNoZWRQcml2YXRlQnJvd3NpbmdNb2RlOwogICAgIE5QT2JqZWN0KiB0ZXN0T2JqZWN0Owog
ICAgIE5QU3RyZWFtKiBzdHJlYW07CisgICAgTlBCb29sIHRlc3REb2N1bWVudE9wZW5JbkRlc3Ry
b3lTdHJlYW07CisgICAgTlBCb29sIHRlc3RXaW5kb3dPcGVuOwogICAgIGNoYXIqIG9uU3RyZWFt
TG9hZDsKICAgICBjaGFyKiBvblN0cmVhbURlc3Ryb3k7CiAgICAgY2hhciogb25EZXN0cm95OwpA
QCAtNTYsMyArNTgsNSBAQCBleHRlcm4gdm9pZCBoYW5kbGVDYWxsYmFjayhQbHVnaW5PYmplY3Qq
CiBleHRlcm4gdm9pZCBub3RpZnlTdHJlYW0oUGx1Z2luT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNo
YXIgKnVybCwgY29uc3QgY2hhciAqaGVhZGVycyk7CiBleHRlcm4gdm9pZCB0ZXN0TlBSdW50aW1l
KE5QUCBucHApOwogZXh0ZXJuIHZvaWQgcGx1Z2luTG9nKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hh
ciogZm9ybWF0LCAuLi4pOworZXh0ZXJuIGJvb2wgdGVzdERvY3VtZW50T3BlbihOUFAgbnBwKTsK
K2V4dGVybiBib29sIHRlc3RXaW5kb3dPcGVuKE5QUCBucHApOwpJbmRleDogV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1
YnByb2ovbWFpbi5jcHAJKHJldmlzaW9uIDUwNDg3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNyw2ICsxMDcsMTAgQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlw
ZSwgTgogICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosICJkb2N1bWVudC5ib2R5LmlubmVy
SFRNTCA9ICcnIik7CiAgICAgICAgIGVsc2UgaWYgKCFzdHJjYXNlY21wKGFyZ25baV0sICJvbmRl
c3Ryb3kiKSkKICAgICAgICAgICAgIG9iai0+b25EZXN0cm95ID0gc3RyZHVwKGFyZ3ZbaV0pOwor
ICAgICAgICBlbHNlIGlmIChzdHJjYXNlY21wKGFyZ25baV0sICJ0ZXN0ZG9jdW1lbnRvcGVuaW5k
ZXN0cm95c3RyZWFtIikgPT0gMCkKKyAgICAgICAgICAgIG9iai0+dGVzdERvY3VtZW50T3Blbklu
RGVzdHJveVN0cmVhbSA9IFRSVUU7CisgICAgICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAoYXJnbltp
XSwgInRlc3R3aW5kb3dvcGVuIikgPT0gMCkKKyAgICAgICAgICAgIG9iai0+dGVzdFdpbmRvd09w
ZW4gPSBUUlVFOwogICAgIH0KICAgICAgICAgCiAjaWZuZGVmIE5QX05PX0NBUkJPTgpAQCAtMTcz
LDYgKzE3NywxMSBAQCBOUEVycm9yIE5QUF9TZXRXaW5kb3coTlBQIGluc3RhbmNlLCBOUFdpCiAg
ICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJOUFBfU2V0V2luZG93OiAlZCAlZCIsIChp
bnQpd2luZG93LT53aWR0aCwgKGludCl3aW5kb3ctPmhlaWdodCk7CiAgICAgICAgICAgICBvYmot
PmxvZ1NldFdpbmRvdyA9IGZhbHNlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG9iai0+dGVz
dFdpbmRvd09wZW4pIHsKKyAgICAgICAgICAgIHRlc3RXaW5kb3dPcGVuKGluc3RhbmNlKTsKKyAg
ICAgICAgICAgIG9iai0+dGVzdFdpbmRvd09wZW4gPSBGQUxTRTsKKyAgICAgICAgfQogICAgIH0K
ICAgICAKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CkBAIC0yMTcsNiArMjI2LDExIEBAIE5Q
RXJyb3IgTlBQX0Rlc3Ryb3lTdHJlYW0oTlBQIGluc3RhbmNlLCAKICAgICBpZiAob2JqLT5vblN0
cmVhbURlc3Ryb3kpCiAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPm9uU3RyZWFtRGVz
dHJveSk7CiAKKyAgICBpZiAob2JqLT50ZXN0RG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtKSB7
CisgICAgICAgIHRlc3REb2N1bWVudE9wZW4oaW5zdGFuY2UpOworICAgICAgICBvYmotPnRlc3RE
b2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0gPSBGQUxTRTsKKyAgICB9CisKICAgICByZXR1cm4g
TlBFUlJfTk9fRVJST1I7CiB9CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcAkocmV2aXNpb24g
NTA0ODcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1
Z2luL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMiArODgsMTUgQEAgTlBFcnJvciBO
UFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTgogICAgICAgICAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgICAgICAgICAgICAgICAgICBpZiAoX3N0cmljbXAo
YXJnbltpXSwgInNyYyIpID09IDApCiAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5Mb2co
aW5zdGFuY2UsICJzcmM6ICVzIiwgYXJndltpXSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UgaWYgKF9zdHJpY21wKGFyZ25baV0sICJ0ZXN0ZG9jdW1lbnRvcGVuaW5kZXN0cm95
c3RyZWFtIikgPT0gMCkKKyAgICAgICAgICAgICAgICBvYmotPnRlc3REb2N1bWVudE9wZW5JbkRl
c3Ryb3lTdHJlYW0gPSBUUlVFOworICAgICAgICAgICAgICBlbHNlIGlmIChfc3RyaWNtcChhcmdu
W2ldLCAidGVzdHdpbmRvd29wZW4iKSA9PSAwKQorICAgICAgICAgICAgICAgIG9iai0+dGVzdFdp
bmRvd09wZW4gPSBUUlVFOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpbnN0YW5jZS0+
cGRhdGEgPSBvYmo7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwog
fQogCkBAIC0xMjAsNiArMTIzLDE1IEBAIE5QRXJyb3IgTlBQX0Rlc3Ryb3koTlBQIGluc3RhbmNl
LCBOUFNhdmUKIAogTlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaW5kb3cg
KndpbmRvdykKIHsKKyAgICBQbHVnaW5PYmplY3QqIG9iaiA9IHN0YXRpY19jYXN0PFBsdWdpbk9i
amVjdCo+KGluc3RhbmNlLT5wZGF0YSk7CisKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChv
YmotPnRlc3RXaW5kb3dPcGVuKSB7CisgICAgICAgICAgICB0ZXN0V2luZG93T3BlbihpbnN0YW5j
ZSk7CisgICAgICAgICAgICBvYmotPnRlc3RXaW5kb3dPcGVuID0gRkFMU0U7CisgICAgICAgIH0K
KyAgICB9CisKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKQEAgLTE0OSw3ICsxNjEs
NyBAQCBOUEVycm9yIE5QUF9OZXdTdHJlYW0oTlBQIGluc3RhbmNlLCBOUE1JCiAKICAgICBpZiAo
b2JqLT5vblN0cmVhbUxvYWQpCiAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPm9uU3Ry
ZWFtTG9hZCk7Ci0gICAgCisKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKQEAgLTE2
MCw2ICsxNzIsMTAgQEAgTlBFcnJvciBOUFBfRGVzdHJveVN0cmVhbShOUFAgaW5zdGFuY2UsIAog
ICAgIGlmIChvYmotPm9uU3RyZWFtRGVzdHJveSkKICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmos
IG9iai0+b25TdHJlYW1EZXN0cm95KTsKIAorICAgIGlmIChvYmotPnRlc3REb2N1bWVudE9wZW5J
bkRlc3Ryb3lTdHJlYW0pIHsKKyAgICAgICAgdGVzdERvY3VtZW50T3BlbihpbnN0YW5jZSk7Cisg
ICAgfQorCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA1MDYwMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDA5LTExLTA2ICBBbmFudGFuYXJheWFuYW4gRyBJeWVuZ2FyICA8YW5hbnRh
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBsYXlvdXQgdGVzdHMgdG8gdGVzdCBkb2N1bWVudC5vcGVuIGFuZCB3aW5k
b3cub3BlbiBjYWxscyBpc3N1ZWQKKyAgICAgICAgYnkgTlBBUEkgcGx1Z2lucyB3aXRob3V0IGEg
Y2FsbGluZyBqYXZhc2NyaXB0IGNvbnRleHQuIFRoZSBhc3NvY2lhdGVkCisgICAgICAgIHdlYmtp
dCBidWcgaXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMDY3LCB3
aGljaAorICAgICAgICBhZmZlY3RzIENocm9taXVtLgorCisgICAgICAgICogcGx1Z2lucy9kb2N1
bWVudC1vcGVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9kb2N1bWVu
dC1vcGVuLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsdWdpbnMvd2luZG93LW9wZW4tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL3dpbmRvdy1vcGVuLmh0bWw6IEFkZGVk
LgorCiAyMDA5LTExLTA0ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9w
bHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBET0NVTUVO
VCBPUEVOIFNVQ0NFU1MKSW5kZXg6IExheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1vcGVuLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8Ym9keT4KKzxl
bWJlZCBpZD0idGVzdFBsdWdpbiIgCisgICAgICAgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC1uZXRzY2FwZSIKKyAgICAgICBzcmM9ImRhdGE6dGV4dC9wbGFpbiwiCisgICAgICAgdGVz
dGRvY3VtZW50b3BlbmluZGVzdHJveXN0cmVhbT0idHJ1ZSI+Cis8L2VtYmVkPgorCis8ZGl2Pgor
ICAgIFRoaXMgdGVzdHMgdGhhdCBkb2N1bWVudC5vcGVuIGludm9rZWQgYnkgYSBwbHVnaW4gdmlh
IE5QTl9JbnZva2Ugd2l0aG91dCBhIGphdmFzY3JpcHQgY29udGV4dCBzdWNjZWVkcy4KKzwvZGl2
PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQorICAgICAgICAvLyBJZiB3ZSBhcmUgbm90
IGRvbmUgd2l0aGluIDUwIG1zIHRoZW4gd2UgYXNzdW1lIHRoYXQgdGhlIHRlc3QgZmFpbGVkLg0K
KyAgICAgICAgc2V0VGltZW91dCgnbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpJywg
NTApOw0KKyAgICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbHVnaW5zL3dpbmRvdy1vcGVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBXSU5E
T1cgT1BFTiBTVUNDRVNTCisKK1RoaXMgdGVzdHMgdGhhdCB3aW5kb3cub3BlbiBpbnZva2VkIGJ5
IGEgcGx1Z2luIHZpYSBOUE5fSW52b2tlIHdpdGhvdXQgYSBqYXZhc2NyaXB0IGNvbnRleHQgc3Vj
Y2VlZHMuCkluZGV4OiBMYXlvdXRUZXN0cy9wbHVnaW5zL3dpbmRvdy1vcGVuLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDIxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dENhbk9wZW5XaW5kb3dzKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
ICAgIAorICAgICAgICAvLyBJZiB3ZSBhcmUgbm90IGRvbmUgd2l0aGluIDUwIG1zIHRoZW4gd2Ug
YXNzdW1lIHRoYXQgdGhlIHRlc3QgZmFpbGVkLgorICAgICAgICBzZXRUaW1lb3V0KCdsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCknLCA1MCk7CisgICAgIH0KKyAgICAgCis8L3Njcmlw
dD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MHB4O292ZXJmbG93OmhpZGRlbiI+Cis8b2JqZWN0IG5h
bWU9InRlc3RQbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUi
IHRlc3R3aW5kb3dvcGVuPSJ0cnVlIj4KKzwvb2JqZWN0PgorPGRpdj4KKyAgICBUaGlzIHRlc3Rz
IHRoYXQgd2luZG93Lm9wZW4gaW52b2tlZCBieSBhIHBsdWdpbiB2aWEgTlBOX0ludm9rZSB3aXRo
b3V0IGEgamF2YXNjcmlwdCBjb250ZXh0IHN1Y2NlZWRzLgorPC9kaXY+Cis8Ym9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42672</attachid>
            <date>2009-11-06 14:49:32 -0800</date>
            <delta_ts>2009-11-06 15:00:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-31067-20091106144930.patch</filename>
            <type>text/plain</type>
            <size>15975</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODRmMzk3Li4zNDAwZDc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTEt
MDYgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxhbmFudGFAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGxheW91
dCB0ZXN0cyB0byB0ZXN0IGRvY3VtZW50Lm9wZW4gYW5kIHdpbmRvdy5vcGVuIGNhbGxzIGlzc3Vl
ZAorICAgICAgICBieSBOUEFQSSBwbHVnaW5zIHdpdGhvdXQgYSBjYWxsaW5nIGphdmFzY3JpcHQg
Y29udGV4dC4gVGhlIGFzc29jaWF0ZWQKKyAgICAgICAgd2Via2l0IGJ1ZyBpcyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwNjcsIHdoaWNoCisgICAgICAgIGFmZmVj
dHMgQ2hyb21pdW0uCisKKyAgICAgICAgKiBwbHVnaW5zL2RvY3VtZW50LW9wZW4tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGx1Z2lucy93aW5kb3ctb3Blbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsdWdpbnMvd2luZG93LW9wZW4uaHRtbDogQWRkZWQuCisKIDIwMDktMTEtMDYgIFN0
ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9kb2N1bWVudC1v
cGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UwNTA4YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogRE9D
VU1FTlQgT1BFTiBTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2RvY3Vt
ZW50LW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhN2ZmMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbApAQCAtMCwwICsxLDIy
IEBACis8aHRtbD4KKzxoZWFkPgorPGJvZHk+Cis8ZW1iZWQgaWQ9InRlc3RQbHVnaW4iIAorICAg
ICAgIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiCisgICAgICAgc3Jj
PSJkYXRhOnRleHQvcGxhaW4sIgorICAgICAgIHRlc3Rkb2N1bWVudG9wZW5pbmRlc3Ryb3lzdHJl
YW09InRydWUiPgorPC9lbWJlZD4KKworPGRpdj4KKyAgICBUaGlzIHRlc3RzIHRoYXQgZG9jdW1l
bnQub3BlbiBpbnZva2VkIGJ5IGEgcGx1Z2luIHZpYSBOUE5fSW52b2tlIHdpdGhvdXQgYSBqYXZh
c2NyaXB0IGNvbnRleHQgc3VjY2VlZHMuCis8L2Rpdj4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOw0KKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOw0KKyAgICAgICAgLy8gSWYgd2UgYXJlIG5vdCBkb25lIHdpdGhpbiA1MCBtcyB0aGVuIHdl
IGFzc3VtZSB0aGF0IHRoZSB0ZXN0IGZhaWxlZC4NCisgICAgICAgIHNldFRpbWVvdXQoJ2xheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKScsIDUwKTsNCisgICAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvd2luZG93
LW9wZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY0Nzc4MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvd2luZG93LW9wZW4tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogV0lO
RE9XIE9QRU4gU1VDQ0VTUworCitUaGlzIHRlc3RzIHRoYXQgd2luZG93Lm9wZW4gaW52b2tlZCBi
eSBhIHBsdWdpbiB2aWEgTlBOX0ludm9rZSB3aXRob3V0IGEgamF2YXNjcmlwdCBjb250ZXh0IHN1
Y2NlZWRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1s
IGIvTGF5b3V0VGVzdHMvcGx1Z2lucy93aW5kb3ctb3Blbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmFlZGVmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbHVnaW5zL3dpbmRvdy1vcGVuLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAKKyAgICAgICAgLy8gSWYgd2UgYXJlIG5v
dCBkb25lIHdpdGhpbiA1MCBtcyB0aGVuIHdlIGFzc3VtZSB0aGF0IHRoZSB0ZXN0IGZhaWxlZC4K
KyAgICAgICAgc2V0VGltZW91dCgnbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpJywg
NTApOworICAgICB9CisgICAgIAorPC9zY3JpcHQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOjBweDtv
dmVyZmxvdzpoaWRkZW4iPgorPG9iamVjdCBuYW1lPSJ0ZXN0UGx1Z2luIiB0eXBlPSJhcHBsaWNh
dGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB0ZXN0d2luZG93b3Blbj0idHJ1ZSI+Cis8L29i
amVjdD4KKzxkaXY+CisgICAgVGhpcyB0ZXN0cyB0aGF0IHdpbmRvdy5vcGVuIGludm9rZWQgYnkg
YSBwbHVnaW4gdmlhIE5QTl9JbnZva2Ugd2l0aG91dCBhIGphdmFzY3JpcHQgY29udGV4dCBzdWNj
ZWVkcy4KKzwvZGl2PgorPGJvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDExNzZjMGEuLjAwMjBlMzkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzIgQEAKKzIwMDktMTEtMDYgIEFuYW50YW5hcmF5YW5hbiBHIEl5ZW5nYXIgIDxhbmFudGFAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBhc3NvY2lhdGVkIHdlYmtpdCBidWcgaXMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDY3LAorICAgICAgICB3aGljaCBhZmZlY3RzIENocm9taXVtIG9u
bHkuCisgICAgICAgIAorICAgICAgICBDaGFuZ2VzIHRvIFY4SFRNTERvY3VtZW50Q3VzdG9tLmNw
cCBhcmUgYXMgYmVsb3c6LQorICAgICAgICAxLiBUaGUgSFRNTERvY3VtZW50T3BlbiBmdW5jdGlv
biB3b3VsZCBjYXVzZSBhIGNyYXNoIGluIENocm9taXVtIGlmCisgICAgICAgICAgIHRoZXJlIHdh
cyBubyBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dC4gV2Ugbm93IGNoZWNrIGZvciB0aGlzIGNh
c2UKKyAgICAgICAgICAgYW5kIHBhc3MgaW4gTlVMTCB0byB0aGUgSFRNTERvY3VtZW50OjpvcGVu
IGZ1bmN0aW9uIHdoaWNoIGNhbiBoYW5kbGUKKyAgICAgICAgICAgYSBOVUxMIGRvY3VtZW50IHBh
cmFtZXRlci4KKyAgICAgICAgMi4gVGhlIG90aGVyIGZ1bmN0aW9ucyBsaWtlIEhUTUxEb2N1bWVu
dFdyaXRlLCBIVE1MRG9jdW1lbnRXcml0ZWxuLCBldGMKKyAgICAgICAgICAgaGFkIEFTU0VSVFMg
Zm9yIGEgTlVMTCBjYWxsZXIgZnJhbWUsIHdoaWNoIHdhcyBib2d1cyBhcyBpdCB3b3VsZCBjcmFz
aAorICAgICAgICAgICBhbnl3YXkuIFdlIG5vdyBjaGVjayBmb3IgdGhpcyBjYXNlIGFuZCByZXR1
cm4gYSBmYWlsdXJlLgorICAgICAgICAgICAKKyAgICAgICAgQ2hhbmdlcyB0byBWOERPTVdpbmRv
d0N1c3RvbS5jcHAgYXJlIGFzIGJlbG93Oi0KKyAgICAgICAgMS4gSW5zdGVhZCBvZiBmYWlsaW5n
IHRoZSB3aW5kb3cub3BlbiBjYWxsIG1hZGUgYnkgTlBBUEkgZm9yIGxhY2sgb2YgYQorICAgICAg
ICAgICBjYWxsaW5nIGphdmFzY3JpcHQgY29udGV4dCwgd2Ugbm93IHVzZSB0aGUgZW50ZXJlZCBj
b250ZXh0IGFzIHRoZSBjYWxsaW5nCisgICAgICAgICAgIGNvbnRleHQuCisKKyAgICAgICAgVGVz
dHM6IHBsdWdpbnMvZG9jdW1lbnQtb3Blbi5odG1sCisgICAgICAgICAgICAgICBwbHVnaW5zL3dp
bmRvdy1vcGVuLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRv
d0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RFQ0wpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RFQ0wpOgorCiAyMDA5LTExLTA2ICBTdGV2ZSBC
bG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCAyZDg2YzM0Li43MTA2OTcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCkBAIC03MDIsMTQgKzcwMiwxNSBAQCBD
QUxMQkFDS19GVU5DX0RFQ0woRE9NV2luZG93T3BlbikKICAgICBpZiAoIVY4UHJveHk6OmNhbkFj
Y2Vzc0ZyYW1lKGZyYW1lLCB0cnVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
IAotICAgIEZyYW1lKiBjYWxsaW5nRnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2Fs
bGluZ0NvbnRleHQoKTsKLSAgICBpZiAoIWNhbGxpbmdGcmFtZSkKLSAgICAgICAgcmV0dXJuIHY4
OjpVbmRlZmluZWQoKTsKLQogICAgIEZyYW1lKiBlbnRlcmVkRnJhbWUgPSBWOFByb3h5OjpyZXRy
aWV2ZUZyYW1lRm9yRW50ZXJlZENvbnRleHQoKTsKICAgICBpZiAoIWVudGVyZWRGcmFtZSkKICAg
ICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAorICAgIEZyYW1lKiBjYWxsaW5nRnJhbWUg
PSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKTsKKyAgICAvLyBXZSBt
YXkgbm90IGhhdmUgYSBjYWxsaW5nIGNvbnRleHQgaWYgd2UgYXJlIGludm9rZWQgYnkgYSBwbHVn
aW4gdmlhIE5QQVBJLgorICAgIGlmICghY2FsbGluZ0ZyYW1lKQorICAgICAgICBjYWxsaW5nRnJh
bWUgPSBlbnRlcmVkRnJhbWU7CisKICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKaW5kZXgg
YWZjOWVkMS4uOWNmMmYzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTIwLDggKzEyMCw3IEBAIENBTExCQUNLX0ZV
TkNfREVDTChIVE1MRG9jdW1lbnRXcml0ZSkKICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRG9jdW1l
bnQud3JpdGUoKSIpOwogICAgIEhUTUxEb2N1bWVudCogaHRtbERvY3VtZW50ID0gVjhET01XcmFw
cGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9kZTxIVE1MRG9jdW1lbnQ+KGFyZ3MuSG9sZGVyKCkp
OwogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29u
dGV4dCgpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgaHRtbERvY3VtZW50LT53cml0ZSh3cml0
ZUhlbHBlckdldFN0cmluZyhhcmdzKSwgZnJhbWUtPmRvY3VtZW50KCkpOworICAgIGh0bWxEb2N1
bWVudC0+d3JpdGUod3JpdGVIZWxwZXJHZXRTdHJpbmcoYXJncyksIGZyYW1lID8gZnJhbWUtPmRv
Y3VtZW50KCkgOiBOVUxMKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0x
MzAsOCArMTI5LDcgQEAgQ0FMTEJBQ0tfRlVOQ19ERUNMKEhUTUxEb2N1bWVudFdyaXRlbG4pCiAg
ICAgSU5DX1NUQVRTKCJET00uSFRNTERvY3VtZW50LndyaXRlbG4oKSIpOwogICAgIEhUTUxEb2N1
bWVudCogaHRtbERvY3VtZW50ID0gVjhET01XcmFwcGVyOjpjb252ZXJ0RE9NV3JhcHBlclRvTm9k
ZTxIVE1MRG9jdW1lbnQ+KGFyZ3MuSG9sZGVyKCkpOwogICAgIEZyYW1lKiBmcmFtZSA9IFY4UHJv
eHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4dCgpOwotICAgIEFTU0VSVChmcmFtZSk7
Ci0gICAgaHRtbERvY3VtZW50LT53cml0ZWxuKHdyaXRlSGVscGVyR2V0U3RyaW5nKGFyZ3MpLCBm
cmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgaHRtbERvY3VtZW50LT53cml0ZWxuKHdyaXRlSGVscGVy
R2V0U3RyaW5nKGFyZ3MpLCBmcmFtZSA/IGZyYW1lLT5kb2N1bWVudCgpIDogTlVMTCk7CiAgICAg
cmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIApAQCAtMTcwLDcgKzE2OCw3IEBAIENBTExCQUNL
X0ZVTkNfREVDTChIVE1MRG9jdW1lbnRPcGVuKQogICAgIH0KIAogICAgIEZyYW1lKiBmcmFtZSA9
IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDYWxsaW5nQ29udGV4dCgpOwotICAgIGh0bWxEb2N1
bWVudC0+b3BlbihmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgaHRtbERvY3VtZW50LT5vcGVuKGZy
YW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiBOVUxMKTsKICAgICAvLyBSZXR1cm4gdGhlIGRvY3Vt
ZW50LgogICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ1NjU0MDIuLmI4Yjk2
ZWQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0xMS0wNiAgQW5hbnRhbmFyYXlhbmFuIEcg
SXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSB0byB0aGUgbGF5b3V0
IHRlc3QgcGx1Z2luIHRvIGludm9rZSBkb2N1bWVudC5vcGVuIGFuZAorICAgICAgICB3aW5kb3cu
b3BlbiB3aXRoIGRlZmF1bHQgYXJndW1lbnRzLiBUaGUgYXNzb2NpYXRlZCB3ZWJraXQgYnVnIGlz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTA2Nywg
d2hpY2ggYWZmZWN0cyBDaHJvbWl1bS4gQmFzaWNhbGx5CisgICAgICAgIHdpbmRvdy5vcGVuIGFu
ZCBkb2N1bWVudC5vcGVuIGNhbGxzIGlzc3VlZCBieSBOUEFQSSBwbHVnaW5zIHZpYSBOUE5fSW52
b2tlIGRvbid0CisgICAgICAgIHdvcmsgaW4gQ2hyb21pdW0gKFY4KSBpZiB0aGVyZSBpcyBubyBj
YWxsaW5nIGphdmFzY3JpcHQgY29udGV4dC4gVG8gYWNoaWV2ZSB0aGlzCisgICAgICAgIGVmZmVj
dCB3ZSBpbnZva2UgdGhlc2UgZnVuY3Rpb25zIGluIHRoZSBsYXlvdXQgdGVzdCBwbHVnaW4gaW4g
dGhlIE5QUF9TZXRXaW5kb3cKKyAgICAgICAgZm9yIHRoZSB3aW5kb3cub3BlbiB0ZXN0IGNhc2Ug
YW5kIGluIE5QUF9EZXN0cm95U3RyZWFtIGZvciB0aGUgZG9jdW1lbnQub3BlbiB0ZXN0IGNhc2Uu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9Q
bHVnaW5PYmplY3QuY3BwOgorICAgICAgICAodGVzdERvY3VtZW50T3Blbik6CisgICAgICAgICh0
ZXN0V2luZG93T3Blbik6CisgICAgICAgIChwbHVnaW5BbGxvY2F0ZSk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0Lmg6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5j
cHA6CisgICAgICAgIChOUFBfTmV3KToKKyAgICAgICAgKE5QUF9TZXRXaW5kb3cpOgorICAgICAg
ICAoTlBQX0Rlc3Ryb3lTdHJlYW0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHA6CisgICAgICAgIChOUFBfTmV3KToKKyAgICAgICAgKE5Q
UF9TZXRXaW5kb3cpOgorICAgICAgICAoTlBQX05ld1N0cmVhbSk6CisgICAgICAgIChOUFBfRGVz
dHJveVN0cmVhbSk6CisKIDIwMDktMTEtMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9QbHVnaW5PYmpl
Y3QuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1
YnByb2ovUGx1Z2luT2JqZWN0LmNwcAppbmRleCBiOThhMTc1Li45YzJiOWQ1IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4uc3VicHJvai9Q
bHVnaW5PYmplY3QuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRz
Y2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5jcHAKQEAgLTY0Myw2ICs2NDMsNjAgQEAg
c3RhdGljIGJvb2wgdGVzdENvbnN0cnVjdChQbHVnaW5PYmplY3QqIG9iaiwgY29uc3QgTlBWYXJp
YW50KiBhcmdzLCB1aW50MzJfdCBhcmcKICAgICByZXR1cm4gYnJvd3Nlci0+Y29uc3RydWN0KG9i
ai0+bnBwLCBOUFZBUklBTlRfVE9fT0JKRUNUKGFyZ3NbMF0pLCBhcmdzICsgMSwgYXJnQ291bnQg
LSAxLCByZXN1bHQpOwogfQogCitib29sIHRlc3REb2N1bWVudE9wZW4oTlBQIG5wcCkgeworICAg
IE5QSWRlbnRpZmllciBkb2N1bWVudElkID0gYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcigi
ZG9jdW1lbnQiKTsKKyAgICBOUElkZW50aWZpZXIgb3BlbklkID0gYnJvd3Nlci0+Z2V0c3RyaW5n
aWRlbnRpZmllcigib3BlbiIpOworCisgICAgTlBPYmplY3QgKndpbmRvd09iamVjdCA9IE5VTEw7
CisgICAgYnJvd3Nlci0+Z2V0dmFsdWUobnBwLCBOUE5WV2luZG93TlBPYmplY3QsICZ3aW5kb3dP
YmplY3QpOworICAgIGlmICghd2luZG93T2JqZWN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBOUFZhcmlhbnQgZG9jVmFyaWFudDsKKyAgICBicm93c2VyLT5nZXRwcm9wZXJ0eShucHAs
IHdpbmRvd09iamVjdCwgZG9jdW1lbnRJZCwgJmRvY1ZhcmlhbnQpOworICAgIGlmIChkb2NWYXJp
YW50LnR5cGUgIT0gTlBWYXJpYW50VHlwZV9PYmplY3QpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIE5QT2JqZWN0ICpkb2N1bWVudE9iamVjdCA9IE5QVkFSSUFOVF9UT19PQkpFQ1QoZG9j
VmFyaWFudCk7CisKKyAgICBOUFZhcmlhbnQgb3BlbkFyZ3NbMl07CisgICAgU1RSSU5HWl9UT19O
UFZBUklBTlQoInRleHQvaHRtbCIsIG9wZW5BcmdzWzBdKTsKKyAgICBTVFJJTkdaX1RPX05QVkFS
SUFOVCgiX2JsYW5rIiwgb3BlbkFyZ3NbMV0pOworCisgICAgTlBWYXJpYW50IHJlc3VsdDsKKyAg
ICBicm93c2VyLT5pbnZva2UobnBwLCBkb2N1bWVudE9iamVjdCwgb3BlbklkLCBvcGVuQXJncywg
MiwgJnJlc3VsdCk7CisgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChkb2N1bWVudE9iamVjdCk7
CisKKyAgICBpZiAocmVzdWx0LnR5cGUgPT0gTlBWYXJpYW50VHlwZV9PYmplY3QpIHsKKyAgICAg
ICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChyZXN1bHQudmFsdWUub2JqZWN0VmFsdWUpOworICAg
ICAgICBwbHVnaW5Mb2cobnBwLCAiRE9DVU1FTlQgT1BFTiBTVUNDRVNTIik7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgdGVzdFdpbmRv
d09wZW4oTlBQIG5wcCkgeworICAgIE5QSWRlbnRpZmllciBvcGVuSWQgPSBicm93c2VyLT5nZXRz
dHJpbmdpZGVudGlmaWVyKCJvcGVuIik7CisKKyAgICBOUE9iamVjdCAqd2luZG93T2JqZWN0ID0g
TlVMTDsKKyAgICBicm93c2VyLT5nZXR2YWx1ZShucHAsIE5QTlZXaW5kb3dOUE9iamVjdCwgJndp
bmRvd09iamVjdCk7CisgICAgaWYgKCF3aW5kb3dPYmplY3QpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIE5QVmFyaWFudCBvcGVuQXJnc1syXTsKKyAgICBTVFJJTkdaX1RPX05QVkFSSUFO
VCgiYWJvdXQ6YmxhbmsiLCBvcGVuQXJnc1swXSk7CisgICAgU1RSSU5HWl9UT19OUFZBUklBTlQo
Il9ibGFuayIsIG9wZW5BcmdzWzFdKTsKKworICAgIE5QVmFyaWFudCByZXN1bHQ7CisgICAgYnJv
d3Nlci0+aW52b2tlKG5wcCwgd2luZG93T2JqZWN0LCBvcGVuSWQsIG9wZW5BcmdzLCAyLCAmcmVz
dWx0KTsKKyAgICBpZiAocmVzdWx0LnR5cGUgPT0gTlBWYXJpYW50VHlwZV9PYmplY3QpIHsKKyAg
ICAgICAgYnJvd3Nlci0+cmVsZWFzZW9iamVjdChyZXN1bHQudmFsdWUub2JqZWN0VmFsdWUpOwor
ICAgICAgICBwbHVnaW5Mb2cobnBwLCAiV0lORE9XIE9QRU4gU1VDQ0VTUyIpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBw
bHVnaW5JbnZva2UoTlBPYmplY3QqIGhlYWRlciwgTlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5Q
VmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQogewog
ICAgIFBsdWdpbk9iamVjdCogcGx1Z2luID0gcmVpbnRlcnByZXRfY2FzdDxQbHVnaW5PYmplY3Qq
PihoZWFkZXIpOwpAQCAtNzMzLDYgKzc4Nyw5IEBAIHN0YXRpYyBOUE9iamVjdCAqcGx1Z2luQWxs
b2NhdGUoTlBQIG5wcCwgTlBDbGFzcyAqdGhlQ2xhc3MpCiAgICAgbmV3SW5zdGFuY2UtPmxhc3RV
cmwgPSBOVUxMOwogICAgIG5ld0luc3RhbmNlLT5sYXN0SGVhZGVycyA9IE5VTEw7CiAKKyAgICBu
ZXdJbnN0YW5jZS0+dGVzdERvY3VtZW50T3BlbkluRGVzdHJveVN0cmVhbSA9IEZBTFNFOworICAg
IG5ld0luc3RhbmNlLT50ZXN0V2luZG93T3BlbiA9IEZBTFNFOworCiAgICAgcmV0dXJuIChOUE9i
amVjdCopbmV3SW5zdGFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL1BsdWdpbk9iamVjdC5oIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2Jq
ZWN0LmgKaW5kZXggYjM0ZDI0YS4uMTU3YTFkMiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovUGx1Z2luT2JqZWN0LmgKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ov
UGx1Z2luT2JqZWN0LmgKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIE5Q
Qm9vbCBjYWNoZWRQcml2YXRlQnJvd3NpbmdNb2RlOwogICAgIE5QT2JqZWN0KiB0ZXN0T2JqZWN0
OwogICAgIE5QU3RyZWFtKiBzdHJlYW07CisgICAgTlBCb29sIHRlc3REb2N1bWVudE9wZW5JbkRl
c3Ryb3lTdHJlYW07CisgICAgTlBCb29sIHRlc3RXaW5kb3dPcGVuOwogICAgIGNoYXIqIG9uU3Ry
ZWFtTG9hZDsKICAgICBjaGFyKiBvblN0cmVhbURlc3Ryb3k7CiAgICAgY2hhciogb25EZXN0cm95
OwpAQCAtNTYsMyArNTgsNSBAQCBleHRlcm4gdm9pZCBoYW5kbGVDYWxsYmFjayhQbHVnaW5PYmpl
Y3QqIG9iamVjdCwgY29uc3QgY2hhciAqdXJsLCBOUFJlYXNvbiByZWFzbwogZXh0ZXJuIHZvaWQg
bm90aWZ5U3RyZWFtKFBsdWdpbk9iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyICp1cmwsIGNvbnN0
IGNoYXIgKmhlYWRlcnMpOwogZXh0ZXJuIHZvaWQgdGVzdE5QUnVudGltZShOUFAgbnBwKTsKIGV4
dGVybiB2b2lkIHBsdWdpbkxvZyhOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4u
KTsKK2V4dGVybiBib29sIHRlc3REb2N1bWVudE9wZW4oTlBQIG5wcCk7CitleHRlcm4gYm9vbCB0
ZXN0V2luZG93T3BlbihOUFAgbnBwKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi5zdWJwcm9qL21haW4uY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKaW5kZXgg
MDA1ZTkyYS4uNTg4M2ZmYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luLnN1YnByb2ovbWFpbi5jcHAKQEAgLTEwNyw2
ICsxMDcsMTAgQEAgTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQIGlu
c3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2gKICAgICAgICAgICAgIGV4ZWN1dGVT
Y3JpcHQob2JqLCAiZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJyIpOwogICAgICAgICBlbHNl
IGlmICghc3RyY2FzZWNtcChhcmduW2ldLCAib25kZXN0cm95IikpCiAgICAgICAgICAgICBvYmot
Pm9uRGVzdHJveSA9IHN0cmR1cChhcmd2W2ldKTsKKyAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNt
cChhcmduW2ldLCAidGVzdGRvY3VtZW50b3BlbmluZGVzdHJveXN0cmVhbSIpID09IDApCisgICAg
ICAgICAgICBvYmotPnRlc3REb2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0gPSBUUlVFOworICAg
ICAgICBlbHNlIGlmIChzdHJjYXNlY21wKGFyZ25baV0sICJ0ZXN0d2luZG93b3BlbiIpID09IDAp
CisgICAgICAgICAgICBvYmotPnRlc3RXaW5kb3dPcGVuID0gVFJVRTsKICAgICB9CiAgICAgICAg
IAogI2lmbmRlZiBOUF9OT19DQVJCT04KQEAgLTE3Myw2ICsxNzcsMTEgQEAgTlBFcnJvciBOUFBf
U2V0V2luZG93KE5QUCBpbnN0YW5jZSwgTlBXaW5kb3cgKndpbmRvdykKICAgICAgICAgICAgIHBs
dWdpbkxvZyhpbnN0YW5jZSwgIk5QUF9TZXRXaW5kb3c6ICVkICVkIiwgKGludCl3aW5kb3ctPndp
ZHRoLCAoaW50KXdpbmRvdy0+aGVpZ2h0KTsKICAgICAgICAgICAgIG9iai0+bG9nU2V0V2luZG93
ID0gZmFsc2U7CiAgICAgICAgIH0KKworICAgICAgICBpZiAob2JqLT50ZXN0V2luZG93T3Blbikg
eworICAgICAgICAgICAgdGVzdFdpbmRvd09wZW4oaW5zdGFuY2UpOworICAgICAgICAgICAgb2Jq
LT50ZXN0V2luZG93T3BlbiA9IEZBTFNFOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIHJl
dHVybiBOUEVSUl9OT19FUlJPUjsKQEAgLTIxNyw2ICsyMjYsMTEgQEAgTlBFcnJvciBOUFBfRGVz
dHJveVN0cmVhbShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtICpzdHJlYW0sIE5QUmVhc29uIHJlYXNv
bikKICAgICBpZiAob2JqLT5vblN0cmVhbURlc3Ryb3kpCiAgICAgICAgIGV4ZWN1dGVTY3JpcHQo
b2JqLCBvYmotPm9uU3RyZWFtRGVzdHJveSk7CiAKKyAgICBpZiAob2JqLT50ZXN0RG9jdW1lbnRP
cGVuSW5EZXN0cm95U3RyZWFtKSB7CisgICAgICAgIHRlc3REb2N1bWVudE9wZW4oaW5zdGFuY2Up
OworICAgICAgICBvYmotPnRlc3REb2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0gPSBGQUxTRTsK
KyAgICB9CisKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdE5ldHNjYXBlUGx1Z2luL21haW4u
Y3BwCmluZGV4IDcxNzVkMzMuLjgyYjFkNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9UZXN0TmV0c2NhcGVQbHVnaW4vbWFpbi5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3ROZXRzY2FwZVBsdWdpbi9tYWluLmNwcApAQCAtODgs
MTIgKzg4LDE1IEBAIE5QRXJyb3IgTlBQX05ldyhOUE1JTUVUeXBlIHBsdWdpblR5cGUsIE5QUCBp
bnN0YW5jZSwgdWludDE2IG1vZGUsIGludDE2IGFyZ2MsIGNoCiAgICAgICAgICAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBhcmdjOyBpKyspCiAgICAgICAgICAgICAgICAgICAgIGlmIChfc3Ry
aWNtcChhcmduW2ldLCAic3JjIikgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdp
bkxvZyhpbnN0YW5jZSwgInNyYzogJXMiLCBhcmd2W2ldKTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoX3N0cmljbXAoYXJnbltpXSwgInRlc3Rkb2N1bWVudG9wZW5pbmRl
c3Ryb3lzdHJlYW0iKSA9PSAwKQorICAgICAgICAgICAgICAgIG9iai0+dGVzdERvY3VtZW50T3Bl
bkluRGVzdHJveVN0cmVhbSA9IFRSVUU7CisgICAgICAgICAgICAgIGVsc2UgaWYgKF9zdHJpY21w
KGFyZ25baV0sICJ0ZXN0d2luZG93b3BlbiIpID09IDApCisgICAgICAgICAgICAgICAgb2JqLT50
ZXN0V2luZG93T3BlbiA9IFRSVUU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGluc3Rh
bmNlLT5wZGF0YSA9IG9iajsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gTlBFUlJfTk9fRVJS
T1I7CiB9CiAKQEAgLTEyMCw2ICsxMjMsMTUgQEAgTlBFcnJvciBOUFBfRGVzdHJveShOUFAgaW5z
dGFuY2UsIE5QU2F2ZWREYXRhICoqc2F2ZSkKIAogTlBFcnJvciBOUFBfU2V0V2luZG93KE5QUCBp
bnN0YW5jZSwgTlBXaW5kb3cgKndpbmRvdykKIHsKKyAgICBQbHVnaW5PYmplY3QqIG9iaiA9IHN0
YXRpY19jYXN0PFBsdWdpbk9iamVjdCo+KGluc3RhbmNlLT5wZGF0YSk7CisKKyAgICBpZiAob2Jq
KSB7CisgICAgICAgIGlmIChvYmotPnRlc3RXaW5kb3dPcGVuKSB7CisgICAgICAgICAgICB0ZXN0
V2luZG93T3BlbihpbnN0YW5jZSk7CisgICAgICAgICAgICBvYmotPnRlc3RXaW5kb3dPcGVuID0g
RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9
CiAKQEAgLTE0OSw3ICsxNjEsNyBAQCBOUEVycm9yIE5QUF9OZXdTdHJlYW0oTlBQIGluc3RhbmNl
LCBOUE1JTUVUeXBlIHR5cGUsIE5QU3RyZWFtICpzdHJlYW0sIE5QQm9vbCBzZQogCiAgICAgaWYg
KG9iai0+b25TdHJlYW1Mb2FkKQogICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vblN0
cmVhbUxvYWQpOwotICAgIAorCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCkBAIC0x
NjAsNiArMTcyLDEwIEBAIE5QRXJyb3IgTlBQX0Rlc3Ryb3lTdHJlYW0oTlBQIGluc3RhbmNlLCBO
UFN0cmVhbSAqc3RyZWFtLCBOUFJlYXNvbiByZWFzb24pCiAgICAgaWYgKG9iai0+b25TdHJlYW1E
ZXN0cm95KQogICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vblN0cmVhbURlc3Ryb3kp
OwogCisgICAgaWYgKG9iai0+dGVzdERvY3VtZW50T3BlbkluRGVzdHJveVN0cmVhbSkgeworICAg
ICAgICB0ZXN0RG9jdW1lbnRPcGVuKGluc3RhbmNlKTsKKyAgICB9CisKICAgICByZXR1cm4gTlBF
UlJfTk9fRVJST1I7CiB9
</data>

          </attachment>
      

    </bug>

</bugzilla>