<?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>87838</bug_id>
          
          <creation_ts>2012-05-30 02:53:31 -0700</creation_ts>
          <short_desc>Expose setApplicationCacheOriginQuota via window.internals</short_desc>
          <delta_ts>2014-02-13 09:30:33 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87993</dependson>
          <blocked>87284</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</reporter>
          <assigned_to name="Afonso Costa">afonso.costa</assigned_to>
          <cc>adauria</cc>
    
    <cc>afonso.costa</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jesus</cc>
    
    <cc>jochen</cc>
    
    <cc>joepeck</cc>
    
    <cc>michaeln</cc>
    
    <cc>ojan</cc>
    
    <cc>ravi.kasibhatla</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>637076</commentid>
    <comment_count>0</comment_count>
      <attachid>144773</attachid>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2012-05-30 02:53:31 -0700</bug_when>
    <thetext>Created attachment 144773
Initial patch. 

Move setApplicationCacheOriginQuota API to  WebCore::Internals instead of LayoutTestController interface. This is from the set of functions that were identified in the contributor meeting&apos;s hackaton. http://trac.webkit.org/wiki/Internals_Hackathon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637077</commentid>
    <comment_count>1</comment_count>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2012-05-30 02:56:21 -0700</bug_when>
    <thetext>I have attached just the basic patch (even with change log) since I am facing some issues with building chromium port. I will be soon uploading final patch after checking &amp; resolving build issues in other ports (if any) complete with Change log also. Hence I haven&apos;t marked any review flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637092</commentid>
    <comment_count>2</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-05-30 03:56:26 -0700</bug_when>
    <thetext>Chromium doesn&apos;t use the files in loader/appcache (with a few exceptions).

Maybe Michael (added) can advise how to mimic this for chromium?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637343</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-30 10:02:23 -0700</bug_when>
    <thetext>Hackathon notes about this function appear wrong - this function is certainly implemented at least on Mac, so it&apos;s not just Qt.

Perhaps we should institute a policy that any time WebKit test coverage through LayoutTestContoller is removes, similar coverage should be added in TestWebKitAPI?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637407</commentid>
    <comment_count>4</comment_count>
      <attachid>144773</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-05-30 10:41:18 -0700</bug_when>
    <thetext>Comment on attachment 144773
Initial patch. 

View in context: https://bugs.webkit.org/attachment.cgi?id=144773&amp;action=review

&gt; Source/WebCore/testing/Internals.cpp:980
&gt; +    cacheStorage().storeUpdatedQuotaForOrigin(document-&gt;securityOrigin(), quota);

This won&apos;t build in the chromium port because it doesn&apos;t use the ApplicationCacheStorage class, that file isn&apos;t compiled or linked into the project. Please just conditionally compile this method body out #if PLATFORM(CHROMIUM).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640091</commentid>
    <comment_count>5</comment_count>
      <attachid>145463</attachid>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2012-06-02 16:08:25 -0700</bug_when>
    <thetext>Created attachment 145463
Moving of setApplicationCacheOriginQuota from LayoutTestController to Internals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640094</commentid>
    <comment_count>6</comment_count>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2012-06-02 16:17:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 144773 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144773&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/testing/Internals.cpp:980
&gt; &gt; +    cacheStorage().storeUpdatedQuotaForOrigin(document-&gt;securityOrigin(), quota);
&gt; 
&gt; This won&apos;t build in the chromium port because it doesn&apos;t use the ApplicationCacheStorage class, that file isn&apos;t compiled or linked into the project. Please just conditionally compile this method body out #if PLATFORM(CHROMIUM).

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640095</commentid>
    <comment_count>7</comment_count>
    <who name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</who>
    <bug_when>2012-06-02 16:20:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Hackathon notes about this function appear wrong - this function is certainly implemented at least on Mac, so it&apos;s not just Qt.
Yes I cross verified that it is only implemented for Qt and Mac, but the movement to internals still looks correct and it doesn&apos;t effect test behavior.
&gt; 
&gt; Perhaps we should institute a policy that any time WebKit test coverage through LayoutTestContoller is removes, similar coverage should be added in TestWebKitAPI?
Are you suggesting that I should add new test for TestWebKitAPI for this? I will check on this and try to update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640134</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-02 23:01:34 -0700</bug_when>
    <thetext>Please also note the new blocking bug. Perhaps it was just a bad idea to move any functions that change settings to window.internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640658</commentid>
    <comment_count>9</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-06-04 10:16:33 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Please also note the new blocking bug. Perhaps it was just a bad idea to move any functions that change settings to window.internals.

That would be a shame. It avoids so much code duplication to have them on internals. We should try to see if we can resolve the issues with settings on internals if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940970</commentid>
    <comment_count>10</comment_count>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-17 14:19:46 -0700</bug_when>
    <thetext>Hi,

I&apos;d like to work on this issue. Could it be assigned to me?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940972</commentid>
    <comment_count>11</comment_count>
      <attachid>214511</attachid>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-17 14:26:18 -0700</bug_when>
    <thetext>Created attachment 214511
WIP patch for EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941004</commentid>
    <comment_count>12</comment_count>
      <attachid>214511</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-17 15:10:05 -0700</bug_when>
    <thetext>Comment on attachment 214511
WIP patch for EWS testing

Attachment 214511 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/4108516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941015</commentid>
    <comment_count>13</comment_count>
      <attachid>214522</attachid>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-17 15:27:07 -0700</bug_when>
    <thetext>Created attachment 214522
WIP patch (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941055</commentid>
    <comment_count>14</comment_count>
      <attachid>214534</attachid>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-17 17:28:08 -0700</bug_when>
    <thetext>Created attachment 214534
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944555</commentid>
    <comment_count>15</comment_count>
      <attachid>214534</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-29 13:14:35 -0700</bug_when>
    <thetext>Comment on attachment 214534
Proposed patch

Looks good! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944577</commentid>
    <comment_count>16</comment_count>
      <attachid>214534</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 13:48:19 -0700</bug_when>
    <thetext>Comment on attachment 214534
Proposed patch

What is going to undo the change after the current test finishes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944598</commentid>
    <comment_count>17</comment_count>
      <attachid>215424</attachid>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-29 14:03:02 -0700</bug_when>
    <thetext>Created attachment 215424
Proposed patch (v2)

Patch was rebased with branch master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944643</commentid>
    <comment_count>18</comment_count>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-29 15:18:13 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 214534 [details])
&gt; What is going to undo the change after the current test finishes?

Hi Alexey, the function clearAllApplicationCaches() is called before to set the new cache quota in all startTest().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944672</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-29 16:27:38 -0700</bug_when>
    <thetext>clearAllApplicationCaches() is a TestRunner feature, so it has to be a responsibility of the test to do this?

Ideally, any settings that are changed duting a test should be reset automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944889</commentid>
    <comment_count>20</comment_count>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-30 07:07:06 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; clearAllApplicationCaches() is a TestRunner feature, so it has to be a responsibility of the test to do this?
&gt; 
&gt; Ideally, any settings that are changed duting a test should be reset automatically.

Maybe the test should: reset -&gt; set -&gt; test -&gt; reset (at the end), just to keep the initial state of any configuration that is being tested.

@Joseph, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945081</commentid>
    <comment_count>21</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-30 11:46:54 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; clearAllApplicationCaches() is a TestRunner feature, so it has to be a responsibility of the test to do this?
&gt; &gt; 
&gt; &gt; Ideally, any settings that are changed duting a test should be reset automatically.
&gt; 
&gt; Maybe the test should: reset -&gt; set -&gt; test -&gt; reset (at the end), just to keep the initial state of any configuration that is being tested.
&gt; 
&gt; @Joseph, what do you think?

What Alexey means, is that the test driver should reset to a consistent state before every test. We cannot rely on the test reseting state at the end, because the test might crash or produce an error half way through, and then affect later tests. E.g. putting something in DumpRenderTree.mm resetWebViewToConsistentStateBeforeTesting(), and likewise for other ports.

Your change doesn&apos;t change the existing behavior, so I&apos;m still okay with it. But it would be nice to improve this even further and have DumpRenderTree reset the state between tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945088</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-30 11:51:03 -0700</bug_when>
    <thetext>Logically, the code to reset should be in Internals, because that&apos;s what changes the setting.

There is a &quot;Backup&quot; in InternalSettings, but I&apos;m not sure if Internals methods have an established pattern for doing the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945113</commentid>
    <comment_count>23</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-10-30 12:13:15 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Logically, the code to reset should be in Internals, because that&apos;s what changes the setting.
&gt; 
&gt; There is a &quot;Backup&quot; in InternalSettings, but I&apos;m not sure if Internals methods have an established pattern for doing the right thing.

This is what Internals::resetToConsistentState is for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945195</commentid>
    <comment_count>24</comment_count>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-30 15:04:52 -0700</bug_when>
    <thetext>So, do I need to update my patch or is it ok to be integrated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945704</commentid>
    <comment_count>25</comment_count>
      <attachid>215679</attachid>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-31 14:51:01 -0700</bug_when>
    <thetext>Created attachment 215679
Proposed patch (v3)

Patch was updated: 
- reset the origin quota to default value (in Internals::resetToConsistentState)
- rebased with branch master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945718</commentid>
    <comment_count>26</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-10-31 15:29:10 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created an attachment (id=215679) [details]
&gt; Proposed patch (v3)
&gt; 
&gt; Patch was updated: 
&gt; - reset the origin quota to default value (in Internals::resetToConsistentState)
&gt; - rebased with branch master

Should this patch be r? ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945723</commentid>
    <comment_count>27</comment_count>
      <attachid>215679</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-31 15:37:58 -0700</bug_when>
    <thetext>Comment on attachment 215679
Proposed patch (v3)

Attachment 215679 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/19358002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945727</commentid>
    <comment_count>28</comment_count>
      <attachid>215685</attachid>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-31 15:47:34 -0700</bug_when>
    <thetext>Created attachment 215685
Patch

Updated patch with missing symbols (according to Win build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945733</commentid>
    <comment_count>29</comment_count>
    <who name="Afonso Costa">afonso.costa</who>
    <bug_when>2013-10-31 15:57:13 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; Created an attachment (id=215679) [details] [details]
&gt; &gt; Proposed patch (v3)
&gt; &gt; 
&gt; &gt; Patch was updated: 
&gt; &gt; - reset the origin quota to default value (in Internals::resetToConsistentState)
&gt; &gt; - rebased with branch master
&gt; 
&gt; Should this patch be r? ?

Hi Joseph,

I&apos;ll set this flag after the patch is ok on EWS. Sorry, but I don&apos;t have a win environment to test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945990</commentid>
    <comment_count>30</comment_count>
      <attachid>215685</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-01 13:13:41 -0700</bug_when>
    <thetext>Comment on attachment 215685
Patch

Clearing flags on attachment: 215685

Committed r158450: &lt;http://trac.webkit.org/changeset/158450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980229</commentid>
    <comment_count>31</comment_count>
      <attachid>214534</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-13 04:03:02 -0800</bug_when>
    <thetext>Comment on attachment 214534
Proposed patch

Cleared Joseph Pecoraro&apos;s review+ from obsolete attachment 214534 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980328</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-13 09:30:33 -0800</bug_when>
    <thetext>Looks like this was landed, but commit-queue couldn&apos;t resolve the bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144773</attachid>
            <date>2012-05-30 02:53:31 -0700</date>
            <delta_ts>2012-06-02 16:08:25 -0700</delta_ts>
            <desc>Initial patch. </desc>
            <filename>appl_quota.diff</filename>
            <type>text/plain</type>
            <size>17170</size>
            <attacher name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0
aXBsZS1tYW5pZmVzdHMuaHRtbAppbmRleCA0OWQ2YjQ1Li40MGZjMjRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93
bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlm
ZXN0cy5odG1sCkBAIC0xNCw3ICsxNCw4IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcygpOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAq
MTAyNCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJu
YWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93
bmxvYWQuaHRtbAppbmRleCA4MDExOTAyLi5mZWVmMzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250
aW51ZWQtZG93bmxvYWQuaHRtbApAQCAtMTQsNyArMTQsOCBAQCBmdW5jdGlvbiBzdGFydFRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3Mo
KTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKDEwMjQpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAg
IGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAyNCk7CiAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCmluZGV4IGYwMDkwMGUuLjc5YzExYWMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEu
aHRtbApAQCAtMTUsNyArMTUsOCBAQCBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNr
cygpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNhbGxvd0luY3JlYXNlRm9yQXBw
bGljYXRpb25DYWNoZVF1b3RhKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKKyAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKDIwKjEwMjQpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9
CkBAIC00OSw3ICs1MCw4IEBAIGZ1bmN0aW9uIGFkZFNlY29uZElGcmFtZSgpIHsKICAgICAvLyBF
eHBlY3RlZCB0byBmYWlsLCB0aGVuIGluY3JlYXNlIHRoZSBxdW90YS4KICAgICBhZGRJRnJhbWVX
aXRoQ29udGludWF0aW9uKCJyZXNvdXJjZXMvcXVvdGEtb3JpZ2luLWlmcmFtZS0yLmh0bWwiLCBm
dW5jdGlvbihldmVudCkgewogICAgICAgICBsb2coZXZlbnQuZGF0YSk7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgxMDAqMTAyNCk7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgxMDAqMTAyNCk7CiAgICAgICAgIGFkZFRoaXJk
SUZyYW1lKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDNhZDU1
OTEuLjFiNDlhYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC01MjAsOSArNTIwLDYg
QEAgaHR0cC90ZXN0cy9taXNjL2NvcHktcmVzb2x2ZXMtdXJscy5odG1sCiAjIEVGTCdzIExheW91
dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVudCBzZXRDYWNoZU1vZGVsCiBmYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9uZXN0ZWQtZXhlY3V0aW9uLmh0bWwKIAotIyBFRkwncyBMYXlv
dXRUZXN0Q29udHJvbGxlciBkb2VzIG5vdCBpbXBsZW1lbnQgc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhCi1odHRwL3Rlc3RzL2FwcGNhY2hlCi0KICMgRUZMJ3MgTGF5b3V0VGVzdENvbnRy
b2xsZXIgZG9lcyBub3QgaW1wbGVtZW50IGNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbgog
aHR0cC90ZXN0cy9hcHBjYWNoZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggNjNkYTgxOS4uYjEwNGEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkludGVybmFs
cy5oIgogCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRl
ICJDbGllbnRSZWN0TGlzdC5oIgpAQCAtOTcxLDQgKzk3MiwxMiBAQCB1bnNpZ25lZCBJbnRlcm5h
bHM6Om51bWJlck9mU2Nyb2xsYWJsZUFyZWFzKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9u
Q29kZSYpCiAgICAgcmV0dXJuIGNvdW50OwogfQogCit2b2lkIEludGVybmFsczo6c2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWduZWQgbG9uZyBs
b25nIHF1b3RhKQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IGNhY2hlU3RvcmFnZSgpLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLCBxdW90YSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDk4NDI4ZWEuLmQ2OTAwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtMTYwLDYgKzE2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TmV0d29ya0luZm9ybWF0
aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIGxvbmcgYmFuZHdpZHRoLCBi
b29sIG1ldGVyZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKERvY3VtZW50KiwgdW5zaWduZWQgbG9uZyBsb25nKTsKKwogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlTm9kZXMoKSBjb25zdDsK
ICAgICB1bnNpZ25lZCBudW1iZXJPZkxpdmVEb2N1bWVudHMoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAwMGViZDUwLi44ZDk3OTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xMzcsNiArMTM3LDggQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIHZvaWQgc2V0TmV0d29ya0luZm9ybWF0aW9uKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBET01TdHJpbmcgZXZlbnRUeXBlLCBpbiBsb25nIGJhbmR3aWR0aCwgaW4gYm9vbGVhbiBt
ZXRlcmVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKIAorICAgICAgICB2b2lkIHNl
dEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gdW5z
aWduZWQgbG9uZyBsb25nIHF1b3RhKTsKKwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9S
XSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25h
bD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CiAgICAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGU2NjVjZjEuLjVhYTUxZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgpAQCAtMTM0LDYgKzEzNCw4IEBAIF9aTks3V2ViQ29yZThEb2N1bWVu
dDEzbm9kZXNGcm9tUmVjdEVpaWpqampiYjsKIF9aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNT
dGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfOE5vZGVMaXN0RTsKIF9aTks3V2ViQ29y
ZTZFZGl0b3IyNnNlbGVjdGlvblN0YXJ0SGFzTWFya2VyRm9yRU5TXzE0RG9jdW1lbnRNYXJrZXIx
ME1hcmtlclR5cGVFaWk7CiBfWk43V2ViQ29yZTE3SlNET01HbG9iYWxPYmplY3Q2c19pbmZvRTsK
K19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTI2c3RvcmVVcGRhdGVkUXVvdGFG
b3JPcmlnaW5FUEtOU18xNFNlY3VyaXR5T3JpZ2luRWw7CitfWk43V2ViQ29yZTEyY2FjaGVTdG9y
YWdlRXY7CiBsb2NhbDoKIF9aKjsKIGN0aSo7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZTUxZDBlZS4uN2M3ZGUzNCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTEwOSwyMSArMTEw
OSw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEFwcENhY2hlTWF4aW11bVNpemVDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGFDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0g
ICAgLy8gSGFzIG1hYyBpbXBsZW1lbnRhdGlvbgotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgTGF5
b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29u
dHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0KLSAgICBkb3VibGUg
c2l6ZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIE5VTEwpOwotICAg
IGlmICghaXNuYW4oc2l6ZSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KHNpemUpKTsKLQot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpT
VmFsdWVSZWYgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlv
bgpAQCAtMjM4MSw3ICsyMzY2LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldEFsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcyIsIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0NhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldEFsd2F5c0FjY2VwdENvb2tpZXMiLCBzZXRBbHdheXNBY2NlcHRD
b29raWVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXBwQ2FjaGVNYXhpbXVtU2l6
ZSIsIHNldEFwcENhY2hlTWF4aW11bVNpemVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEiLCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRFbmNvZGVkQXVkaW9EYXRhIiwg
c2V0RW5jb2RlZEF1ZGlvRGF0YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEF1dGhl
bnRpY2F0aW9uUGFzc3dvcmQiLCBzZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHNldEF1dGhlbnRp
Y2F0aW9uVXNlcm5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggZTJmYWU3ZS4uNjc4ZjliZCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC05MSw3ICs5MSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wp
OwogICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwogICAgIHZv
aWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwotICAg
IHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YSk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAg
ICB2b2lkIHNldEF1dG9maWxsZWQoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIG5vZGVPYmplY3Qs
IGJvb2wgYXV0b2ZpbGxlZCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKGludCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVy
QmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRl
c3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKaW5kZXggMGE2YzU4MC4uM2FmMGNlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxl
ckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5
b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAtNjc3LDExICs2NzcsNiBAQCB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1v
Y2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBi
b29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRv
dWJsZSBnYW1tYSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDIy
NjU3OGIuLjJkNGM2NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTIzNSw3ICsyMzUsNiBAQCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAg
ICBiaW5kTWV0aG9kKCJkdW1wQXNXZWJBcmNoaXZlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpk
dW1wQXNXZWJBcmNoaXZlKTsKICAgICBiaW5kTWV0aG9kKCJrZWVwV2ViSGlzdG9yeSIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3RvcnkpOwogICAgIGJpbmRNZXRob2QoIm9iakND
bGFzc05hbWVPZiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6b2JqQ0NsYXNzTmFtZU9mKTsKLSAg
ICBiaW5kTWV0aG9kKCJzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEiLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk7CiAgICAgYmluZE1l
dGhvZCgic2V0Q2FsbENsb3NlT25XZWJWaWV3cyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
Q2FsbENsb3NlT25XZWJWaWV3cyk7CiAgICAgYmluZE1ldGhvZCgic2V0TWFpbkZyYW1lSXNGaXJz
dFJlc3BvbmRlciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWFpbkZyYW1lSXNGaXJzdFJl
c3BvbmRlcik7CiAgICAgYmluZE1ldGhvZCgic2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CkBAIC04NjYs
MTIgKzg2NSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQXBwbGljYXRpb25D
YWNoZUZvck9yaWdpbihjb25zdCBDcHBBcmd1bWVudExpc3QmCiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCi17
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1
b3Rhcy4KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBv
cnQgZ2V0dGluZyBvcmlnaW5zIHRoYXQgaGF2ZSBhcHBsaWNhdGlvbiBjYWNoZXMuCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApp
bmRleCA1MzY3N2UyLi43OTJlZTk4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTMwOSw4ICszMDksNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIC8vIFJldHVybnMgb3JpZ2lucyB0aGF0IGhh
dmUgYXBwbGljYXRpb24gY2FjaGVzLgogICAgIHZvaWQgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNh
Y2hlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICAvLyBTZXRzIHRo
ZSBhcHBsaWNhdGlvbiBjYWNoZSBxdW90YSBmb3IgdGhlIGxvY2FsaG9zdCBvcmlnaW4uCi0gICAg
dm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIC8vIFJldHVybnMgZGlzayB1c2FnZSBieSBhbGwgYXBwbGlj
YXRpb24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCiAgICAgdm9pZCBhcHBsaWNhdGlvbkNhY2hlRGlz
a1VzYWdlRm9yT3JpZ2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVy
RWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVm
bC5jcHAKaW5kZXggMmEzZDgzMy4uNTE3NDA3NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC01MzYsMTIgKzUzNiw2
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMo
KQogICAgIGV3a19zZXR0aW5nc19hcHBsaWNhdGlvbl9jYWNoZV9jbGVhcigpOwogfQogCi12b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5z
aWduZWQgbG9uZyBsb25nKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBh
cHBsaWNhdGlvbiBjYWNoZSBxdW90YXMuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKE9w
YXF1ZUpTU3RyaW5nKikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgZGVs
ZXRpbmcgYWxsIGFwcGxpY2F0aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXgg
Mzc1YTIwNi4uNDIxY2M2NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC02NzYsMTEgKzY3Niw2IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKQogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbiBjYWNoZSBxdW90YXMuCiB9CiAK
LXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0
byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rhcy4KLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKE9wYXF1ZUpTU3RyaW5n
KikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgZGVsZXRpbmcgYWxsIGFw
cGxpY2F0aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IDE4OTkxY2UuLjUxYWIy
MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0KQEAgLTQ1MCwxMyArNDUwLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICBb
V2ViQXBwbGljYXRpb25DYWNoZSBzZXRNYXhpbXVtU2l6ZTpzaXplXTsKIH0KIAotdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAqb3JpZ2luID0gW1tX
ZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiXV07Ci0gICAgW1tvcmlnaW4gYXBwbGljYXRpb25DYWNo
ZVF1b3RhTWFuYWdlcl0gc2V0UXVvdGE6cXVvdGFdOwotICAgIFtvcmlnaW4gcmVsZWFzZV07Ci19
Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFi
bGVkKGJvb2wgZmxhZykKIHsKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNd
IHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOmZsYWddOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA3MzY1YTNhLi5l
ODdjMzA0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcApAQCAtNjA5LDEzICs2MDksNiBAQCBsb25nIGxvbmcgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmxvY2FsU3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbihjb25zdCBRU3RyaW5nJiBv
cgogICAgIHJldHVybiAwOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAg
IGlmICghbV90b3BMb2FkaW5nRnJhbWUpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3RvcExvYWRp
bmdGcmFtZS0+c2VjdXJpdHlPcmlnaW4oKS5zZXRBcHBsaWNhdGlvbkNhY2hlUXVvdGEocXVvdGEp
OwotfQotCiBsb25nIGxvbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVE
aXNrVXNhZ2VGb3JPcmlnaW4oY29uc3QgUVN0cmluZyYgb3JpZ2luKQogewogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBnZXR0aW5nIGRpc2sgdXNhZ2UgYnkgYWxsIGFwcGxpY2F0
aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IGEzOTdmYmEuLmY5NGEzNDkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTE5
OCw3ICsxOTgsNiBAQCBwdWJsaWMgc2xvdHM6CiAKICAgICB2b2lkIGNsZWFyQWxsQXBwbGljYXRp
b25DYWNoZXMoKTsKICAgICB2b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihjb25z
dCBRU3RyaW5nJiB1cmwpOwotICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CiAgICAgUVN0cmluZ0xpc3Qgb3JpZ2luc1dpdGhB
cHBsaWNhdGlvbkNhY2hlKCk7CiAgICAgbG9uZyBsb25nIGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNh
Z2VGb3JPcmlnaW4oY29uc3QgUVN0cmluZyYpOyAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoaW50
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwCmluZGV4IDFiNmE0MTUuLjE2ZTM3OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtOTcwLDExICs5
NzAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVG
b3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8g
c3VwcG9ydCBkZWxldGluZyBhbGwgYXBwbGljYXRpb24gY2FjaGUgZm9yIGFuIG9yaWdpbi4KIH0K
IAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRvIHN1cHBvcnQgYXBwbGljYXRpb24gY2FjaGUgcXVvdGFzLgotfQotCiBKU1ZhbHVlUmVmIExh
eW91dFRlc3RDb250cm9sbGVyOjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoSlNDb250ZXh0
UmVmIGNvbnRleHQpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBnZXQgb3JpZ2lucyB0
aGF0IGhhdmUgYXBwbGljYXRpb24gY2FjaGVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCA1YmE5NTg3Li4zMWY0YjdkIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcApAQCAtMjU5LDExICsyNTksNiBAQCBsb25nIGxvbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmxvY2FsU3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaQogICAgIHJl
dHVybiAwOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbiBjYWNoZSBxdW90YXMuCi19Ci0KIGxv
bmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZv
ck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
byBzdXBwb3J0IGdldHRpbmcgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZv
ciBhbiBvcmlnaW4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145463</attachid>
            <date>2012-06-02 16:08:25 -0700</date>
            <delta_ts>2014-02-05 10:54:51 -0800</delta_ts>
            <desc>Moving of setApplicationCacheOriginQuota from LayoutTestController to Internals</desc>
            <filename>87838.diff</filename>
            <type>text/plain</type>
            <size>20583</size>
            <attacher name="Ravi Phaneendra Kasibhatla">ravi.kasibhatla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2OGI2ZmQxLi4xMGYyYmNl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMDYtMDIgIFJhdmkgUGhhbmVlbmRyYSBLYXNpYmhhdGxhICA8cmF2aS5rYXNpYmhhdGxh
QG1vdG9yb2xhLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NzgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogRmls
dGVyIGZ1bmN0aW9uIHN5bWJvbHMgdXNlZCBpbiBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEuCisKIDIwMTItMDUtMzAgIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3Vu
Zy5jb20+LCBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBb
RUZMXVtXSzJdIEZpeCBXZWJLaXQyLUVGTCBidWlsZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQzMTMwMWIuLjc1OWYwNjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0wMiAgUmF2aSBQaGFuZWVuZHJhIEthc2li
aGF0bGEgIDxyYXZpLmthc2liaGF0bGFAbW90b3JvbGEuY29tPgorCisgICAgICAgIEV4cG9zZSBz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlhIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3Rz
Lmh0bWw6IFVzZSB3aW5kb3cuaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YSBpbnN0ZWFkCisgICAgICAgIG9mIHdpbmRvdy5sYXlvdXRjb250cm9sbGVyCisgICAgICAgICog
aHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbDoKKwogMjAx
Mi0wNS0zMCAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
RmlsZS5sYXN0TW9kaWZpZWREYXRlIG11c3QgcmV0dXJuIG51bGwgaWYgdGhlIG1vZGlmaWVkIHRp
bWUgaW5mbyBpcyBub3QgYXZhaWxhYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFu
aWZlc3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90
YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLmh0bWwKaW5kZXggNDlkNmI0
NS4uNDBmYzI0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVl
ZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbApAQCAtMTQsNyArMTQsOCBAQCBmdW5j
dGlvbiBzdGFydFRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVz
KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVs
ZWdhdGVDYWxsYmFja3MoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKDIwKjEwMjQpOworICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoMjAqMTAyNCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNv
bnRpbnVlZC1kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKaW5kZXggODAxMTkwMi4uZmVlZjMy
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVv
dGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKQEAgLTE0LDcgKzE0
LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxBcHBsaWNh
dGlvbkNhY2hlcygpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXBwbGljYXRp
b25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgxMDI0KTsKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKDEwMjQpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90
YS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRt
bAppbmRleCBmMDA5MDBlLi43OWMxMWFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwKQEAgLTE1LDcgKzE1LDggQEAgZnVuY3Rpb24g
c3RhcnRUZXN0KCkgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFsbEFwcGxp
Y2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBcHBsaWNh
dGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpOwotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAy
NCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxz
LnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpAQCAtNDksNyArNTAsOCBAQCBmdW5jdGlvbiBhZGRT
ZWNvbmRJRnJhbWUoKSB7CiAgICAgLy8gRXhwZWN0ZWQgdG8gZmFpbCwgdGhlbiBpbmNyZWFzZSB0
aGUgcXVvdGEuCiAgICAgYWRkSUZyYW1lV2l0aENvbnRpbnVhdGlvbigicmVzb3VyY2VzL3F1b3Rh
LW9yaWdpbi1pZnJhbWUtMi5odG1sIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgbG9nKGV2
ZW50LmRhdGEpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoMTAwKjEwMjQpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAw
KjEwMjQpOwogICAgICAgICBhZGRUaGlyZElGcmFtZSgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDA0MDFiYTkuLjQ4Y2RkYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0w
Ni0wMiAgUmF2aSBQaGFuZWVuZHJhIEthc2liaGF0bGEgIDxyYXZpLmthc2liaGF0bGFAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIEV4cG9zZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEg
dmlhIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg3ODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKTogTW92ZSBmcm9tIExheW91dFRlc3RDb250cm9sbGVyCisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDEyLTA1LTMwICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBGaWxlLmxhc3RNb2RpZmllZERhdGUgbXVzdCByZXR1cm4gbnVsbCBp
ZiB0aGUgbW9kaWZpZWQgdGltZSBpbmZvIGlzIG5vdCBhdmFpbGFibGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCBmNGFkM2Y2Li5iMDczZDgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSW50ZXJuYWxzLmgiCiAKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2xp
ZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCkBAIC0xMDkyLDQgKzEwOTMs
MTcgQEAgdm9pZCBJbnRlcm5hbHM6OndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQsIEVsZW1lbnQqIGUKICAgICBkb2N1bWVudC0+d2Via2l0RGlkRXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwogfQogI2VuZGlmCisKK3ZvaWQgSW50ZXJu
YWxzOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoRG9jdW1lbnQqIGRvY3VtZW50LCB1
bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCit7CisgICAgLy8gRklYTUU6OiBDaHJvbWl1bSBwb3J0
IGRvZXNuJ3QgaW5jbHVkZSBsb2FkZXIvYXBwY2FjaGUgZmlsZXMuCisgICAgLy8gQ2hyb21pdW0g
RFJUIGFsc28gaW1wbGVtZW50cyBvbmx5IHN0dWJzIGZvciB0aGlzIEFQSSBzbyBubyBpbXBsZW1l
bnRhdGlvbiBmb3IgQ2hyb21pdW0gcG9ydC4KKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FjaGVTdG9yYWdlKCkuc3Rv
cmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIHF1b3Rh
KTsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA2ZmE0
YTQ1Li5hNDczYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE4Myw2ICsx
ODMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKERvY3VtZW50KiwgdW5zaWduZWQgbG9uZyBsb25nKTsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQqKTsKICAgICBEb2N1bWVudE1h
cmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQg
aW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCBhYTEwODU4Li4yM2RkZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CkBAIC0xNTcsNiArMTU3LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgd2Via2l0
V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRWxl
bWVudCBlbGVtZW50KTsKICAgICAgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIEVsZW1lbnQgZWxlbWVudCk7CiAjZW5kaWYK
KyAgICAgCisgICAgICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGluIERv
Y3VtZW50IGRvY3VtZW50LCBpbiB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwogICAgIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDY0NTdiNjQuLmI3MGRjNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgpAQCAtMTQ4LDYgKzE0OCw4IEBAIF9aTjdXZWJDb3JlOERvY3VtZW50
MzR3ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50RVBOU183RWxlbWVudEU7CiBfWk43
V2ViQ29yZThEb2N1bWVudDM1d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRFUE5T
XzdFbGVtZW50RTsKIF9aTjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9iamVjdDZzX2luZm9FOwogX1pO
N1dlYkNvcmU3VGV4dFJ1bjIyc2V0QWxsb3dzUm91bmRpbmdIYWNrc0ViOworX1pON1dlYkNvcmUy
M0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjZzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbkVQS05T
XzE0U2VjdXJpdHlPcmlnaW5FbDsKK19aTjdXZWJDb3JlMTJjYWNoZVN0b3JhZ2VFdjsKIGxvY2Fs
OgogX1oqOwogY3RpKjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA2NDllMTc1Li4yYWFmYjZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDYtMDIgIFJhdmkg
UGhhbmVlbmRyYSBLYXNpYmhhdGxhICA8cmF2aS5rYXNpYmhhdGxhQG1vdG9yb2xhLmNvbT4KKwor
ICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIHZpYSB3aW5kb3cu
aW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOiBSZW1vdmUgdGhlIGRl
ZmluaXRpb24gb2Ygc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhLgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250
cm9sbGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5j
cHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisKIDIwMTItMDUtMzAgIE1p
a2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAg
ICAgW0VGTF1bRFJUXSBFRkwncyBEUlQgbmVlZHMgInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZp
Y2F0aW9uIiBtZXNzYWdlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZjFkZWUyNDE5Li41MjAzNTZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDg1LDIxICsxMDg1LDYgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICAvLyBIYXMg
bWFjIGltcGxlbWVudGF0aW9uCi0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLQotICAgIGRvdWJsZSBzaXplID0gSlNW
YWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgTlVMTCk7Ci0gICAgaWYgKCFpc25h
bihzaXplKSkKLSAgICAgICAgY29udHJvbGxlci0+c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oc2l6ZSkpOwotCi0gICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0yMzUx
LDcgKzIzMzYsNiBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxz
Iiwgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0QWx3YXlzQWNjZXB0Q29va2llcyIsIHNldEFsd2F5c0FjY2VwdENvb2tpZXNDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBcHBDYWNoZU1heGltdW1TaXplIiwgc2V0QXBw
Q2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSIsIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEVuY29kZWRBdWRpb0RhdGEiLCBzZXRFbmNvZGVk
QXVkaW9EYXRhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXV0aGVudGljYXRpb25Q
YXNzd29yZCIsIHNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmRDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lIiwgc2V0QXV0aGVudGljYXRpb25Vc2Vy
bmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAppbmRleCA2ZjAyZGIzLi41YTUzYjc1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTkxLDcgKzkxLDYgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCk7CiAgICAgdm9p
ZCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCk7CiAgICAgdm9pZCBzZXRBcHBD
YWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7Ci0gICAgdm9pZCBzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKICAg
ICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
QXV0b2ZpbGxlZChKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYgbm9kZU9iamVjdCwgYm9vbCBhdXRv
ZmlsbGVkKTsKICAgICB2b2lkIHNldENhY2hlTW9kZWwoaW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xs
ZXJCbGFja0JlcnJ5LmNwcAppbmRleCBjOTdiYTM5Li4yZGY5ODhiIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJy
eS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29u
dHJvbGxlckJsYWNrQmVycnkuY3BwCkBAIC02NTcsMTEgKzY1Nyw2IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0RldmljZU9y
aWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJv
dmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1h
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYzczOTE0My4uNTkx
ZWZjNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMjUwLDcgKzI1MCw2IEBAIExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRo
b2QoImR1bXBBc1dlYkFyY2hpdmUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1dlYkFy
Y2hpdmUpOwogICAgIGJpbmRNZXRob2QoImtlZXBXZWJIaXN0b3J5IiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjprZWVwV2ViSGlzdG9yeSk7CiAgICAgYmluZE1ldGhvZCgib2JqQ0NsYXNzTmFtZU9m
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpvYmpDQ2xhc3NOYW1lT2YpOwotICAgIGJpbmRNZXRo
b2QoInNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKTsKICAgICBiaW5kTWV0aG9kKCJzZXRD
YWxsQ2xvc2VPbldlYlZpZXdzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRDYWxsQ2xvc2VP
bldlYlZpZXdzKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVy
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKTsK
ICAgICBiaW5kTWV0aG9kKCJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKQEAgLTg4NCwxMiArODgzLDYg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3Jp
Z2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAot
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgYXBwbGljYXRpb24gY2FjaGUgcXVvdGFzLgotICAg
IHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCogcmVzdWx0KQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBnZXR0aW5n
IG9yaWdpbnMgdGhhdCBoYXZlIGFwcGxpY2F0aW9uIGNhY2hlcy4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDM3OTc4
NjUuLjFlMGQzNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzEwLDggKzMxMCw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgLy8gUmV0dXJucyBvcmlnaW5zIHRoYXQgaGF2ZSBhcHBsaWNh
dGlvbiBjYWNoZXMuCiAgICAgdm9pZCBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIC8vIFNldHMgdGhlIGFwcGxpY2F0
aW9uIGNhY2hlIHF1b3RhIGZvciB0aGUgbG9jYWxob3N0IG9yaWdpbi4KLSAgICB2b2lkIHNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CiAgICAgLy8gUmV0dXJucyBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNo
ZXMgZm9yIGFuIG9yaWdpbi4KICAgICB2b2lkIGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JP
cmlnaW4oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAppbmRl
eCBmODVhZDRmLi4yMWE0NmM4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
TGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKQEAgLTU3MSwxMyArNTcxLDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgZXdr
X3NldHRpbmdzX2FwcGxpY2F0aW9uX2NhY2hlX2NsZWFyKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25n
IGxvbmcgcXVvdGEpCi17Ci0gICAgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luID0gZXdrX2Zy
YW1lX3NlY3VyaXR5X29yaWdpbl9nZXQoYnJvd3Nlci0+bWFpbkZyYW1lKCkpOwotICAgIGV3a19z
ZWN1cml0eV9vcmlnaW5fYXBwbGljYXRpb25fY2FjaGVfcXVvdGFfc2V0KG9yaWdpbiwgcXVvdGEp
OwotICAgIGV3a19zZWN1cml0eV9vcmlnaW5fZnJlZShvcmlnaW4pOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oT3BhcXVlSlNT
dHJpbmcqKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBkZWxldGluZyBh
bGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA4ZTRjMTZj
Li4zZDk1YWNiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVz
dENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTY2MywxMSArNjYzLDYgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rhcy4KIH0KIAotdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2ln
bmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBv
cnQgYXBwbGljYXRpb24gY2FjaGUgcXVvdGFzLgotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oT3BhcXVlSlNTdHJpbmcqKQogewog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBkZWxldGluZyBhbGwgYXBwbGljYXRp
b24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNDE5YTJjZi4uOTM0ZTA1NCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbQpAQCAtNDQ1LDEzICs0NDUsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRB
cHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIFtXZWJBcHBs
aWNhdGlvbkNhY2hlIHNldE1heGltdW1TaXplOnNpemVdOwogfQogCi12b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBs
b25nIHF1b3RhKQotewotICAgIFdlYlNlY3VyaXR5T3JpZ2luICpvcmlnaW4gPSBbW1dlYlNlY3Vy
aXR5T3JpZ2luIGFsbG9jXSBpbml0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCJdXTsKLSAgICBbW29yaWdpbiBhcHBsaWNhdGlvbkNhY2hlUXVvdGFN
YW5hZ2VyXSBzZXRRdW90YTpxdW90YV07Ci0gICAgW29yaWdpbiByZWxlYXNlXTsKLX0KLQogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoYm9v
bCBmbGFnKQogewogICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVmZXJlbmNlc10gc2V0QXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6ZmxhZ107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDliYmY0MzkuLmQ3YzBjNjMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCkBAIC01ODksMTMgKzU4OSw2IEBAIGxvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6bG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcmIG9yCiAgICAg
cmV0dXJuIDA7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgaWYgKCFt
X3RvcExvYWRpbmdGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fdG9wTG9hZGluZ0ZyYW1l
LT5zZWN1cml0eU9yaWdpbigpLnNldEFwcGxpY2F0aW9uQ2FjaGVRdW90YShxdW90YSk7Ci19Ci0K
IGxvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2Fn
ZUZvck9yaWdpbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pCiB7CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0byBzdXBwb3J0IGdldHRpbmcgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2Fj
aGVzIGZvciBhbiBvcmlnaW4uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKaW5kZXggZWY2OGIzNi4uMjYxZjFiNyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMTk1LDcgKzE5
NSw2IEBAIHB1YmxpYyBzbG90czoKIAogICAgIHZvaWQgY2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hl
cygpOwogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKGNvbnN0IFFTdHJp
bmcmIHVybCk7Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWdu
ZWQgbG9uZyBsb25nIHF1b3RhKTsKICAgICBRU3RyaW5nTGlzdCBvcmlnaW5zV2l0aEFwcGxpY2F0
aW9uQ2FjaGUoKTsKICAgICBsb25nIGxvbmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9y
aWdpbihjb25zdCBRU3RyaW5nJik7IAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHAKaW5kZXggYTE2OGUxZS4uMDYzOTE2NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC05NTIsMTEgKzk1Miw2IEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdp
bihKU1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0
IGRlbGV0aW5nIGFsbCBhcHBsaWNhdGlvbiBjYWNoZSBmb3IgYW4gb3JpZ2luLgogfQogCi12b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5z
aWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3Vw
cG9ydCBhcHBsaWNhdGlvbiBjYWNoZSBxdW90YXMuCi19Ci0KIEpTVmFsdWVSZWYgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZShKU0NvbnRleHRSZWYgY29u
dGV4dCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIGdldCBvcmlnaW5zIHRoYXQgaGF2
ZSBhcHBsaWNhdGlvbiBjYWNoZXMuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xh
eW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IGY5YTAyYTMuLjkyOTlkZDYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBA
IC0yNTksMTEgKzI1OSw2IEBAIGxvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9jYWxT
dG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpCiAgICAgcmV0dXJuIDA7
CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgLy8gRklYTUU6IEltcGxl
bWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rhcy4KLX0KLQogbG9uZyBsb25n
IExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2lu
KEpTU3RyaW5nUmVmIG9yaWdpbikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBv
cnQgZ2V0dGluZyBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNoZXMgZm9yIGFuIG9y
aWdpbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214511</attachid>
            <date>2013-10-17 14:26:18 -0700</date>
            <delta_ts>2013-10-17 15:27:07 -0700</delta_ts>
            <desc>WIP patch for EWS testing</desc>
            <filename>0001-Expose-setApplicationCacheOriginQuota-via-window.int.patch</filename>
            <type>text/plain</type>
            <size>19199</size>
            <attacher name="Afonso Costa">afonso.costa</attacher>
            
              <data encoding="base64">RnJvbSBhZTAxNjI2YjFlZjNhMTc1ZWJiZjYwMDUxMDkxNGUzN2FhYTNjYTNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQWZvbnNvIFIuIENvc3RhIEpyIiA8YWZvbnNvLmNvc3RhQHNh
bXN1bmcuY29tPgpEYXRlOiBUaHUsIDE3IE9jdCAyMDEzIDE3OjEwOjMxIC0wNDAwClN1YmplY3Q6
IFtQQVRDSF0gRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93
LmludGVybmFscwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoKTm8gbmV3IHRl
c3RzLgoKKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEKKFdlYkNvcmU6OkludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKToKKiB0ZXN0aW5nL0ludGVybmFscy5oOiBEaXR0by4KKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6IERpdHRvLgoKVG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOiBNb3Zl
IHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YQp0byB3aW5kb3cuaW50ZXJuYWxzCihUZXN0
UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgoqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDog
RGl0dG8uCiogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHA6IFJlbW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKiBEdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0
UnVubmVyR3RrLmNwcDogRGl0dG8uCiogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW06IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDogRGl0dG8u
CiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
IERpdHRvLgoKTGF5b3V0VGVzdHM6CgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbDogVXBkYXRlZAp0byB1
c2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIGZyb20gd2luZG93LmludGVybmFscwoq
IGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1s
OiBEaXR0by4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sOiBEaXR0by4K
LS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMTIgKysrKysrKysrKysrCiAuLi4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxl
LW1hbmlmZXN0cy5odG1sIHwgIDMgKystCiAuLi4vYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRp
bnVlZC1kb3dubG9hZC5odG1sICAgIHwgIDMgKystCiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbi1xdW90YS5odG1sICAgIHwgIDYgKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAgICAgICAgICAgfCAg
OSArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggICAgICAgICAg
ICAgICAgICAgfCAgMiArKwogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsICAg
ICAgICAgICAgICAgICB8ICAyICsrCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwICAgICAgICAgICAgICAgICAgfCAxNiAtLS0tLS0tLS0t
LS0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggICAgICAgICAgICAgICAg
ICAgIHwgIDEgLQogLi4uL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwICAgICAg
ICAgICAgICB8ICA1IC0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVm
bC5jcHAgICAgICAgICAgIHwgIDcgLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rl
c3RSdW5uZXJHdGsuY3BwICAgICAgICAgICB8ICA1IC0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSAgICAgICAgICAgIHwgIDcgLS0tLS0tLQogVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwICAgICAgICAgICB8ICA1IC0tLS0tCiAu
Li4vSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgICAgICAgICAgIHwgIDEg
LQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCB8
ICA2IC0tLS0tLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmggICB8ICAxIC0KIDE5IGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDU4IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxZjVjNjZhLi5mODBiMjg4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMTAtMTcgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxhZm9uc28uY29zdGFAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2
aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1k
b3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbDogVXBkYXRlZAorICAgICAgICB0byB1c2Ug
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIGZyb20gd2luZG93LmludGVybmFscworICAg
ICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9h
ZC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90
YS5odG1sOiBEaXR0by4KKwogMjAxMy0xMC0xNyAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nIG9mIEFwcGxlIFdpbmRvd3Mg
cG9ydC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2lu
LXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9h
ZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbAppbmRleCBhZWM3NGViLi4yZDIxZDhjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51
ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxl
LW1hbmlmZXN0cy5odG1sCkBAIC0xNCw3ICsxNCw4IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFs
bEFwcGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFwcGxpY2F0aW9u
Q2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcygpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KDIwKjEwMjQpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQt
ZG93bmxvYWQuaHRtbAppbmRleCBiODgwYzNkLi4zMDMxNjE0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1j
b250aW51ZWQtZG93bmxvYWQuaHRtbApAQCAtMTQsNyArMTQsOCBAQCBmdW5jdGlvbiBzdGFydFRl
c3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIu
Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBcHBs
aWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAyNCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSgxMDI0KTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCmluZGV4IDQ2ZDg2ZDkuLmUwNDUyYjgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEu
aHRtbApAQCAtMTUsNyArMTUsOCBAQCBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgICAgIHRl
c3RSdW5uZXIuY2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpOwogICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKTsKICAgICAgICAgdGVzdFJ1
bm5lci5kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDIwKjEwMjQpOworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CkBA
IC00OSw3ICs1MCw4IEBAIGZ1bmN0aW9uIGFkZFNlY29uZElGcmFtZSgpIHsKICAgICAvLyBFeHBl
Y3RlZCB0byBmYWlsLCB0aGVuIGluY3JlYXNlIHRoZSBxdW90YS4KICAgICBhZGRJRnJhbWVXaXRo
Q29udGludWF0aW9uKCJyZXNvdXJjZXMvcXVvdGEtb3JpZ2luLWlmcmFtZS0yLmh0bWwiLCBmdW5j
dGlvbihldmVudCkgewogICAgICAgICBsb2coZXZlbnQuZGF0YSk7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDEwMCoxMDI0KTsKKyAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKDEwMCoxMDI0KTsKICAgICAgICAgYWRkVGhpcmRJRnJhbWUoKTsKICAg
ICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0M2JmYTAyLi5mNGJkNmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTMtMTAtMTcgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxhZm9uc28uY29z
dGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YSB2aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6IEFkZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOiBEaXR0by4KKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5pZGw6IERpdHRvLgorCiAyMDEzLTEwLTE3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ29tbWVudCBBZmZpbmVUcmFuc2Zvcm06OnhT
Y2FsZSgpIGFuZCB5U2NhbGUoKSB0byBtYWtlIHRoZWlyIG1lYW5pbmdzIGNsZWFyZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1ZmRmNjgzLi5hYTYxYzI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
SW50ZXJuYWxzLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNo
cm9tZS5oIgpAQCAtMTc0NSw2ICsxNzQ2LDE0IEBAIHZvaWQgSW50ZXJuYWxzOjp3ZWJraXREaWRF
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBFbGVtZW50KiBlCiB9
CiAjZW5kaWYKIAordm9pZCBJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
Y29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhY2hlU3RvcmFnZSgpLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGRvY3VtZW50LT5z
ZWN1cml0eU9yaWdpbigpLCBxdW90YSk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpyZWdpc3RlclVS
TFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2No
ZW1lKQogewogICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5n
Q29udGVudFNlY3VyaXR5UG9saWN5KHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA5MGFhYWIxLi41ZDA2YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTI2Miw2ICsyNjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7CiAjZW5kaWYKIAorICAgIHZvaWQg
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyk7CisKICAg
ICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3ko
Y29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHZvaWQgcmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJl
ZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGJhYTQxYzUuLjBhOTY5ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTIyMCw2ICsyMjAsOCBAQAog
ICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KERvY3VtZW50IGRvY3Vt
ZW50LCBFbGVtZW50IGVsZW1lbnQpOwogI2VuZGlmCiAKKyAgICB2b2lkIHNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOworCiAgICAgdm9pZCBy
ZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KERPTVN0cmlu
ZyBzY2hlbWUpOwogICAgIHZvaWQgcmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5n
Q29udGVudFNlY3VyaXR5UG9saWN5KERPTVN0cmluZyBzY2hlbWUpOwogCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjQ0NDA4Ny4uZjQyYjIxNyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDEzLTEwLTE3ICBBZm9uc28gUi4gQ29zdGEgSnIuICA8YWZvbnNvLmNvc3Rh
QHNhbXN1bmcuY29tPgorCisgICAgICAgIEV4cG9zZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEgdmlhIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg3ODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDogTW92ZSBz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKyAgICAgICAgdG8gd2luZG93LmludGVybmFs
cworICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6IERpdHRvLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOiBSZW1vdmUgc2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5l
ckd0ay5jcHA6IERpdHRvLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKwogMjAxMy0x
MC0xNyAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLiBBZGQgbXlzZWxmIGFzIGEgcmV2aWV3ZXIuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IDVjMGQwM2MuLmMyZjFmY2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwCkBAIC04NzMsMjEgKzg3Myw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEFwcENhY2hl
TWF4aW11bVNpemVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1
ZVJlZiBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCi17Ci0gICAgLy8gSGFzIG1hYyBpbXBsZW1lbnRhdGlvbgotICAgIGlm
IChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRl
c3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotCi0gICAgZG91Ymxl
IHNpemUgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBOVUxMKTsKLSAg
ICBpZiAoIXN0ZDo6aXNuYW4oc2l6ZSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KHNpemUp
KTsKLQotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3Rh
dGljIEpTVmFsdWVSZWYgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1l
bnRhdGlvbgpAQCAtMjEyNSw3ICsyMTEwLDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5l
cjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzIiwgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0QWx3YXlzQWNjZXB0Q29va2llcyIsIHNldEFsd2F5c0FjY2VwdENvb2tp
ZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBcHBDYWNoZU1heGltdW1TaXplIiwg
c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEVuY29kZWRBdWRpb0RhdGEiLCBzZXRF
bmNvZGVkQXVkaW9EYXRhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXV0aGVudGlj
YXRpb25QYXNzd29yZCIsIHNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmRDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJzZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lIiwgc2V0QXV0aGVudGljYXRp
b25Vc2VybmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5k
ZXggOGNkYWNkOS4uMjA1OThkNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtOTAs
NyArOTAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMcyhib29sKTsKICAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sKTsKICAgICB2b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25n
IHF1b3RhKTsKLSAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25l
ZCBsb25nIGxvbmcpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoYm9v
bCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKGludCk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZShib29sIHNldERlbGVnYXRlLCBib29sIHBlcm1pc3NpdmUpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5
LmNwcAppbmRleCA2MDg0OWQ0Li5hNGU3MjUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApAQCAtNTAxLDEx
ICs1MDEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZykKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihi
b29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBk
b3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihCbGFja0JlcnJ5
OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLCBjYW5Q
cm92aWRlQWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1h
LCBnYW1tYSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5l
ckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5k
ZXggMDc0NmU1Mi4uMzEyYzMxZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVu
bmVyRWZsLmNwcApAQCAtNTMwLDEzICs1MzAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWxs
QXBwbGljYXRpb25DYWNoZXMoKQogICAgIGV3a19zZXR0aW5nc19hcHBsaWNhdGlvbl9jYWNoZV9j
bGVhcigpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgRXdrX1NlY3VyaXR5X09yaWdp
biogb3JpZ2luID0gZXdrX2ZyYW1lX3NlY3VyaXR5X29yaWdpbl9nZXQoYnJvd3Nlci0+bWFpbkZy
YW1lKCkpOwotICAgIGV3a19zZWN1cml0eV9vcmlnaW5fYXBwbGljYXRpb25fY2FjaGVfcXVvdGFf
c2V0KG9yaWdpbiwgcXVvdGEpOwotICAgIGV3a19zZWN1cml0eV9vcmlnaW5fZnJlZShvcmlnaW4p
OwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihP
cGFxdWVKU1N0cmluZyogdXJsKQogewogICAgIEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbiA9
IGV3a19zZWN1cml0eV9vcmlnaW5fbmV3X2Zyb21fc3RyaW5nKHVybC0+c3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5l
ckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5k
ZXggMjY1ZmI1Yy4uYjhlZDlmZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L1Rlc3RSdW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVu
bmVyR3RrLmNwcApAQCAtNTcyLDExICs1NzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWxs
QXBwbGljYXRpb25DYWNoZXMoKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBh
cHBsaWNhdGlvbiBjYWNoZSBxdW90YXMuCiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgYXBwbGljYXRpb24gY2FjaGUgcXVvdGFzLgot
fQotCiB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihPcGFx
dWVKU1N0cmluZyopCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGRlbGV0
aW5nIGFsbCBhcHBsaWNhdGlvbiBjYWNoZXMgZm9yIGFuIG9yaWdpbi4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggYTQ2ZDQyOC4uMjkxZTRhYiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTM5NCwxMyArMzk0LDYg
QEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcg
bG9uZyBzaXplKQogICAgIFtXZWJBcHBsaWNhdGlvbkNhY2hlIHNldE1heGltdW1TaXplOnNpemVd
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1
bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgV2ViU2VjdXJpdHlPcmlnaW4gKm9yaWdp
biA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIGluaXRXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIl1dOwotICAgIFtbb3JpZ2luIGFwcGxpY2F0
aW9uQ2FjaGVRdW90YU1hbmFnZXJdIHNldFF1b3RhOnF1b3RhXTsKLSAgICBbb3JpZ2luIHJlbGVh
c2VdOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KGJvb2wgZmxhZykKIHsKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNl
dEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOmZsYWddOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDNmYjFjNWEuLjIxNTZjMDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTc5MCwxMSArNzkwLDYgQEAg
dm9pZCBUZXN0UnVubmVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oSlNTdHJpbmdS
ZWYgb3JpZ2luKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBkZWxldGluZyBh
bGwgYXBwbGljYXRpb24gY2FjaGUgZm9yIGFuIG9yaWdpbi4KIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3Rh
KQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbiBjYWNo
ZSBxdW90YXMuCi19Ci0KIEpTVmFsdWVSZWYgVGVzdFJ1bm5lcjo6b3JpZ2luc1dpdGhBcHBsaWNh
dGlvbkNhY2hlKEpTQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdG8gZ2V0IG9yaWdpbnMgdGhhdCBoYXZlIGFwcGxpY2F0aW9uIGNhY2hlcy4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCmluZGV4IGUyNjJiMjUuLjdiNWE3YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbApAQCAtMTA4LDcgKzEwOCw2IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAg
ICB2b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpOwog
ICAgIGxvbmcgbG9uZyBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKERPTVN0cmlu
ZyBvcmlnaW4pOwogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKERPTVN0
cmluZyBuYW1lKTsKLSAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNp
Z25lZCBsb25nIGxvbmcgYnl0ZXMpOwogICAgIHZvaWQgZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxp
Y2F0aW9uQ2FjaGVRdW90YSgpOwogICAgIG9iamVjdCBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2Fj
aGUoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggM2YyZDAzOC4uMTZlOTRjMiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yNjQs
MTIgKzI2NCw2IEBAIGxvbmcgbG9uZyBUZXN0UnVubmVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1Vz
YWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbikKICAgICByZXR1cm4gV0tCdW5kbGVHZXRB
cHBDYWNoZVVzYWdlRm9yT3JpZ2luKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwg
dG9XSyhvcmlnaW4pLmdldCgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzKQotewotICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW4oQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpKTsKLSAgICBXS0J1bmRsZVNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCks
IG9yaWdpbi5nZXQoKSwgYnl0ZXMpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OmRpc2FsbG93SW5j
cmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKQogewogICAgIG1fZGlzYWxsb3dJbmNyZWFz
ZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDM4Y2VmNmIuLmM3ODk0
YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCkBAIC0xNDMsNyArMTQzLDYgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJBcHBs
aWNhdGlvbkNhY2hlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbik7CiAgICAgdm9pZCBzZXRB
cHBDYWNoZU1heGltdW1TaXplKHVpbnQ2NF90KTsKICAgICBsb25nIGxvbmcgYXBwbGljYXRpb25D
YWNoZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pOwotICAgIHZvaWQgc2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyk7CiAgICAgdm9p
ZCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCk7CiAgICAgYm9vbCBz
aG91bGREaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCkgeyByZXR1cm4g
bV9kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhOyB9CiAgICAgSlNWYWx1
ZVJlZiBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKTsKLS0gCjEuOC40Cgo=
</data>
<flag name="commit-queue"
          id="237070"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214522</attachid>
            <date>2013-10-17 15:27:07 -0700</date>
            <delta_ts>2013-10-17 17:28:08 -0700</delta_ts>
            <desc>WIP patch (v2)</desc>
            <filename>0001-Expose-setApplicationCacheOriginQuota-via-window.int.patch</filename>
            <type>text/plain</type>
            <size>20523</size>
            <attacher name="Afonso Costa">afonso.costa</attacher>
            
              <data encoding="base64">RnJvbSBhMWJiZGRhMjUyNWUzY2QzMmZmNzY5MTQwNzhjNDAwOGYwMmQ3YTNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQWZvbnNvIFIuIENvc3RhIEpyIiA8YWZvbnNvLmNvc3RhQHNh
bXN1bmcuY29tPgpEYXRlOiBUaHUsIDE3IE9jdCAyMDEzIDE3OjEwOjMxIC0wNDAwClN1YmplY3Q6
IFtQQVRDSF0gRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93
LmludGVybmFscwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoKTm8gbmV3IHRl
c3RzLgoKKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEKKFdlYkNvcmU6OkludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKToKKiB0ZXN0aW5nL0ludGVybmFscy5oOiBEaXR0by4KKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6IERpdHRvLgoKVG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOiBNb3Zl
IHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YQp0byB3aW5kb3cuaW50ZXJuYWxzCihUZXN0
UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgoqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDog
RGl0dG8uCiogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHA6IFJlbW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKiBEdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0
UnVubmVyR3RrLmNwcDogRGl0dG8uCiogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW06IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDogRGl0dG8u
CiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
IERpdHRvLgoKTGF5b3V0VGVzdHM6CgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbDogVXBkYXRlZAp0byB1
c2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIGZyb20gd2luZG93LmludGVybmFscwoq
IGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1s
OiBEaXR0by4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sOiBEaXR0by4K
LS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgMTIgKysrKysrKysrKysrCiAuLi4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxl
LW1hbmlmZXN0cy5odG1sIHwgIDMgKystCiAuLi4vYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRp
bnVlZC1kb3dubG9hZC5odG1sICAgIHwgIDMgKystCiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbi1xdW90YS5odG1sICAgIHwgIDYgKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAgICAgICAgICAgfCAg
OSArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggICAgICAgICAg
ICAgICAgICAgfCAgMiArKwogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsICAg
ICAgICAgICAgICAgICB8ICAyICsrCiAuLi4vV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4
cG9ydHMuZGVmLmluICAgICAgIHwgIDIgKysKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKysrKysrKysrKysrKysrKwogVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgICAgICAgICAgICAgICAgICB8IDE2IC0tLS0t
LS0tLS0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCAgICAgICAgICAg
ICAgICAgICAgfCAgMSAtCiAuLi4vYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAg
ICAgICAgICAgICAgIHwgIDUgLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVu
bmVyRWZsLmNwcCAgICAgICAgICAgfCAgNyAtLS0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvVGVzdFJ1bm5lckd0ay5jcHAgICAgICAgICAgIHwgIDUgLS0tLS0KIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tICAgICAgICAgICAgfCAgNyAtLS0tLS0tCiBUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgICAgICAgICAgIHwgIDUgLS0t
LS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCAgICAgICAgICAg
fCAgMSAtCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIHwgIDYgLS0tLS0tCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaCAgIHwgIDEgLQogMjAgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwg
NTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFmNWM2NmEuLmY4MGIyODggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMy0xMC0xNyAgQWZvbnNvIFIuIENvc3RhIEpyLiAgPGFmb25zby5jb3N0YUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NzgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGlu
dWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sOiBVcGRhdGVkCisgICAgICAgIHRv
IHVzZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgZnJvbSB3aW5kb3cuaW50ZXJuYWxz
CisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRv
d25sb2FkLmh0bWw6IERpdHRvLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2lu
LXF1b3RhLmh0bWw6IERpdHRvLgorCiAyMDEzLTEwLTE3ICBSb2dlciBGb25nICA8cm9nZXJfZm9u
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcgb2YgQXBwbGUgV2lu
ZG93cyBwb3J0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRv
d25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sCmluZGV4IGFlYzc0ZWIuLjJkMjFkOGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNv
bnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVs
dGlwbGUtbWFuaWZlc3RzLmh0bWwKQEAgLTE0LDcgKzE0LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0
KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmNs
ZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXBwbGlj
YXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDIwKjEwMjQpOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoMjAqMTAyNCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRp
bnVlZC1kb3dubG9hZC5odG1sCmluZGV4IGI4ODBjM2QuLjMwMzE2MTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3du
bG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1
b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sCkBAIC0xNCw3ICsxNCw4IEBAIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1
bm5lci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcygpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgxMDI0KTsKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKDEwMjQpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwKaW5kZXggNDZkODZkOS4uZTA0
NTJiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4t
cXVvdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1x
dW90YS5odG1sCkBAIC0xNSw3ICsxNSw4IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAg
ICAgdGVzdFJ1bm5lci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcygpOwogICAgICAgICB0
ZXN0UnVubmVyLmRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KQEAgLTQ5LDcgKzUwLDggQEAgZnVuY3Rpb24gYWRkU2Vjb25kSUZyYW1lKCkgewogICAgIC8v
IEV4cGVjdGVkIHRvIGZhaWwsIHRoZW4gaW5jcmVhc2UgdGhlIHF1b3RhLgogICAgIGFkZElGcmFt
ZVdpdGhDb250aW51YXRpb24oInJlc291cmNlcy9xdW90YS1vcmlnaW4taWZyYW1lLTIuaHRtbCIs
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGxvZyhldmVudC5kYXRhKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAwKjEwMjQpOworICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAwKjEwMjQpOwogICAgICAgICBhZGRUaGlyZElGcmFtZSgp
OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQzYmZhMDIuLmY0YmQ2ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0xMC0xNyAgQWZvbnNvIFIuIENvc3RhIEpyLiAgPGFmb25z
by5jb3N0YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDogQWRkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YQorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6IERpdHRvLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDogRGl0dG8uCisKIDIwMTMtMTAtMTcgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21tZW50IEFmZmluZVRyYW5zZm9y
bTo6eFNjYWxlKCkgYW5kIHlTY2FsZSgpIHRvIG1ha2UgdGhlaXIgbWVhbmluZ3MgY2xlYXJlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDVmZGY2ODMuLmFhNjFjMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJJbnRlcm5hbHMuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJk
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lLmgiCkBAIC0xNzQ1LDYgKzE3NDYsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OndlYmtp
dERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1lbnQq
IGUKIH0KICNlbmRpZgogCit2b2lkIEludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1
cm47CisgICAgY2FjaGVTdG9yYWdlKCkuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCksIHF1b3RhKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3RyaW5n
JiBzY2hlbWUpCiB7CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBh
c3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDkwYWFhYjEuLjVkMDZjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdlYmtpdERpZEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCosIEVsZW1lbnQqKTsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsK
KwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBv
bGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAgICAgdm9pZCByZW1vdmVVUkxTY2hlbWVSZWdp
c3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3RyaW5nJiBzY2hl
bWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYmFhNDFjNS4uMGE5
Njk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjIwLDYgKzIyMCw4
IEBACiAgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRG9jdW1lbnQg
ZG9jdW1lbnQsIEVsZW1lbnQgZWxlbWVudCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CisKICAgICB2
b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koRE9N
U3RyaW5nIHNjaGVtZSk7CiAgICAgdm9pZCByZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBh
c3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koRE9NU3RyaW5nIHNjaGVtZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dl
YktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRF
eHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggZTdhZWFhNC4uNjlmMmUx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRH
ZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
dmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTQ1
OSwzICs0NTksNSBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9maXhlZEZv
bnRGYW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUJFQUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2Ny
aXB0Q29kZUBAQFosID9maXhlZEZvbnRGYW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUVCQUFFQlZB
dG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoP2ZhbnRhc3lGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFCRUFCVkF0b21pY1N0
cmluZ0BXVEZAQFc0VVNjcmlwdENvZGVAQEBaLCA/ZmFudGFzeUZvbnRGYW1pbHlAU2V0dGluZ3NA
V2ViQ29yZUBAUUVCQUFFQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWikKICAg
ICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2N1cnNpdmVGb250RmFtaWx5QFNldHRpbmdzQFdlYkNv
cmVAQFFCRUFCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlwdENvZGVAQEBaLCA/Y3Vyc2l2ZUZv
bnRGYW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUVCQUFFQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVT
Y3JpcHRDb2RlQEBAWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3N0b3JlVXBkYXRlZFF1
b3RhRm9yT3JpZ2luQEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlQFdlYkNvcmVAQFFBRV9OUEJWU2Vj
dXJpdHlPcmlnaW5AMkBfSkBaLCA/c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhQEludGVy
bmFsc0BXZWJDb3JlQEBRQUVYX0tAWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2NhY2hl
U3RvcmFnZUBXZWJDb3JlQEBZQUFBVkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlQDFAWFosID9zZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFASW50ZXJuYWxzQFdlYkNvcmVAQFFBRVhfS0BaKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY0NDQw
ODcuLmY0MmIyMTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0xMC0xNyAgQWZvbnNvIFIuIENvc3RhIEpyLiAg
PGFmb25zby5jb3N0YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHA6IE1vdmUgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhCisgICAgICAgIHRvIHdp
bmRvdy5pbnRlcm5hbHMKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDogUmVtb3Zl
IHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YQorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2VmbC9UZXN0UnVubmVyRWZsLmNwcDogRGl0dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbTogRGl0dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwOiBEaXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDogRGl0
dG8uCisKIDIwMTMtMTAtMTcgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gQWRkIG15c2VsZiBhcyBhIHJldmlld2VyLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCA1YzBkMDNjLi5jMmYxZmNmIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcApAQCAtODczLDIxICs4NzMsNiBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRBcHBDYWNoZU1heGltdW1TaXplQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAot
c3RhdGljIEpTVmFsdWVSZWYgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIC8vIEhhcyBtYWMgaW1wbGVtZW50
YXRpb24KLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBz
dGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsK
LQotICAgIGRvdWJsZSBzaXplID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sw
XSwgTlVMTCk7Ci0gICAgaWYgKCFzdGQ6OmlzbmFuKHNpemUpKQotICAgICAgICBjb250cm9sbGVy
LT5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9u
ZyBsb25nPihzaXplKSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmRDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdp
bmRvd3MgaW1wbGVtZW50YXRpb24KQEAgLTIxMjUsNyArMjExMCw2IEBAIEpTU3RhdGljRnVuY3Rp
b24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldEFsbG93Rmls
ZUFjY2Vzc0Zyb21GaWxlVVJMcyIsIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0NhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFsd2F5c0FjY2VwdENvb2tpZXMiLCBzZXRBbHdh
eXNBY2NlcHRDb29raWVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXBwQ2FjaGVN
YXhpbXVtU2l6ZSIsIHNldEFwcENhY2hlTWF4aW11bVNpemVDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAg
ICAgICB7ICJzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEiLCBzZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRFbmNvZGVkQXVk
aW9EYXRhIiwgc2V0RW5jb2RlZEF1ZGlvRGF0YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQiLCBzZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHNl
dEF1dGhlbnRpY2F0aW9uVXNlcm5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCmluZGV4IDhjZGFjZDkuLjIwNTk4ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmgKQEAgLTkwLDcgKzkwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dVbml2ZXJz
YWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCk7CiAgICAgdm9pZCBzZXRBbGxvd0ZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHMoYm9vbCk7CiAgICAgdm9pZCBzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2ln
bmVkIGxvbmcgbG9uZyBxdW90YSk7Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHls
ZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwogICAgIHZvaWQg
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBzZXREZWxlZ2F0ZSwgYm9vbCBwZXJtaXNzaXZl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5l
ckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggNjA4NDlkNC4uYTRlNzI1MyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHAKQEAgLTUwMSwxMSArNTAxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpjbGVhckFsbEFwcGxpY2F0
aW9uQ2FjaGVzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6
OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrRGV2aWNl
T3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Q
cm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2Ft
bWEpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRp
b24oQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCkt
PnBhZ2UoKSwgY2FuUHJvdmlkZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJldGEsIGNh
blByb3ZpZGVHYW1tYSwgZ2FtbWEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwCmluZGV4IDA3NDZlNTIuLjMxMmMzMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTUzMCwxMyArNTMwLDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCkKICAgICBld2tfc2V0dGluZ3NfYXBwbGlj
YXRpb25fY2FjaGVfY2xlYXIoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIEV3a19T
ZWN1cml0eV9PcmlnaW4qIG9yaWdpbiA9IGV3a19mcmFtZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGJy
b3dzZXItPm1haW5GcmFtZSgpKTsKLSAgICBld2tfc2VjdXJpdHlfb3JpZ2luX2FwcGxpY2F0aW9u
X2NhY2hlX3F1b3RhX3NldChvcmlnaW4sIHF1b3RhKTsKLSAgICBld2tfc2VjdXJpdHlfb3JpZ2lu
X2ZyZWUob3JpZ2luKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpjbGVhckFwcGxpY2F0aW9uQ2Fj
aGVGb3JPcmlnaW4oT3BhcXVlSlNTdHJpbmcqIHVybCkKIHsKICAgICBFd2tfU2VjdXJpdHlfT3Jp
Z2luKiBvcmlnaW4gPSBld2tfc2VjdXJpdHlfb3JpZ2luX25ld19mcm9tX3N0cmluZyh1cmwtPnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5u
ZXJHdGsuY3BwCmluZGV4IDI2NWZiNWMuLmI4ZWQ5ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTU3MiwxMSArNTcyLDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRvIHN1cHBvcnQgYXBwbGljYXRpb24gY2FjaGUgcXVvdGFzLgogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVv
dGEpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNh
Y2hlIHF1b3Rhcy4KLX0KLQogdm9pZCBUZXN0UnVubmVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVG
b3JPcmlnaW4oT3BhcXVlSlNTdHJpbmcqKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8g
c3VwcG9ydCBkZWxldGluZyBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IGE0NmQ0MjguLjI5
MWU0YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFj
Lm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC0z
OTQsMTMgKzM5NCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1
bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICBbV2ViQXBwbGljYXRpb25DYWNoZSBzZXRNYXhp
bXVtU2l6ZTpzaXplXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIFdlYlNlY3VyaXR5
T3JpZ2luICpvcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBpbml0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCJdXTsKLSAgICBbW29y
aWdpbiBhcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyXSBzZXRRdW90YTpxdW90YV07Ci0gICAg
W29yaWdpbiByZWxlYXNlXTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRBdXRob3JBbmRVc2Vy
U3R5bGVzRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHBy
ZWZlcmVuY2VzXSBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDpmbGFnXTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCAzZmIxYzVhLi4yMTU2YzAz
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC03OTAs
MTEgKzc5MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3Jp
Z2luKEpTU3RyaW5nUmVmIG9yaWdpbikKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBv
cnQgZGVsZXRpbmcgYWxsIGFwcGxpY2F0aW9uIGNhY2hlIGZvciBhbiBvcmlnaW4uCiB9CiAKLXZv
aWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxv
bmcgbG9uZyBxdW90YSkKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgYXBw
bGljYXRpb24gY2FjaGUgcXVvdGFzLgotfQotCiBKU1ZhbHVlUmVmIFRlc3RSdW5uZXI6Om9yaWdp
bnNXaXRoQXBwbGljYXRpb25DYWNoZShKU0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRvIGdldCBvcmlnaW5zIHRoYXQgaGF2ZSBhcHBsaWNhdGlvbiBjYWNo
ZXMuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBlMjYyYjI1Li43YjVhN2M2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEwOCw3ICsxMDgsNiBAQCBpbnRlcmZhY2UgVGVz
dFJ1bm5lciB7CiAgICAgdm9pZCBzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcg
bG9uZyBzaXplKTsKICAgICBsb25nIGxvbmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9y
aWdpbihET01TdHJpbmcgb3JpZ2luKTsKICAgICB2b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZUZv
ck9yaWdpbihET01TdHJpbmcgbmFtZSk7Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzKTsKICAgICB2b2lkIGRpc2FsbG93SW5j
cmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKICAgICBvYmplY3Qgb3JpZ2luc1dpdGhB
cHBsaWNhdGlvbkNhY2hlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDNmMmQwMzguLjE2ZTk0YzIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcApAQCAtMjY0LDEyICsyNjQsNiBAQCBsb25nIGxvbmcgVGVzdFJ1bm5lcjo6YXBwbGljYXRp
b25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcmV0dXJu
IFdLQnVuZGxlR2V0QXBwQ2FjaGVVc2FnZUZvck9yaWdpbihJbmplY3RlZEJ1bmRsZTo6c2hhcmVk
KCkuYnVuZGxlKCksIHRvV0sob3JpZ2luKS5nZXQoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcykK
LXsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSk7Ci0gICAgV0tC
dW5kbGVTZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLmJ1bmRsZSgpLCBvcmlnaW4uZ2V0KCksIGJ5dGVzKTsKLX0KLQogdm9pZCBUZXN0UnVubmVy
OjpkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCkKIHsKICAgICBtX2Rp
c2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAz
OGNlZjZiLi5jNzg5NGIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTQzLDcgKzE0Myw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pOwog
ICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CiAgICAgbG9uZyBsb25n
IGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKTsK
LSAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxv
bmcpOwogICAgIHZvaWQgZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgp
OwogICAgIGJvb2wgc2hvdWxkRGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90
YSgpIHsgcmV0dXJuIG1fZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YTsg
fQogICAgIEpTVmFsdWVSZWYgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKCk7Ci0tIAoxLjgu
NAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214534</attachid>
            <date>2013-10-17 17:28:08 -0700</date>
            <delta_ts>2014-02-13 04:03:01 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-Expose-setApplicationCacheOriginQuota-via-window.int.patch</filename>
            <type>text/plain</type>
            <size>21373</size>
            <attacher name="Afonso Costa">afonso.costa</attacher>
            
              <data encoding="base64">RnJvbSAwNWUwNTQ1ZmRiNTgxNTQyZDM2NDFlMWRmNDMyMTM4ZjUwMmEwOGExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQWZvbnNvIFIuIENvc3RhIEpyIiA8YWZvbnNvLmNvc3RhQHNh
bXN1bmcuY29tPgpEYXRlOiBUaHUsIDE3IE9jdCAyMDEzIDE5OjI4OjUyIC0wNDAwClN1YmplY3Q6
IFtQQVRDSF0gRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93
LmludGVybmFscwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoKTm8gbmV3IHRl
c3RzLgoKKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEKKFdlYkNvcmU6OkludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKToKKiB0ZXN0aW5nL0ludGVybmFscy5oOiBEaXR0by4KKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6IERpdHRvLgoKU291cmNlL1dlYktpdDoKCiogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0
R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluOiBBZGRlZApzeW1ib2xzIGZvciBzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgZnJvbSBJbnRlcm5hbHMKClRvb2xzOgoKKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcDogTW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEKdG8gd2luZG93LmludGVybmFscwooVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKiBE
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOiBSZW1vdmUgc2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhCiogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOiBEaXR0
by4KKiBEdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6IERpdHRvLgoqIER1bXBS
ZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOiBEaXR0by4KKiBEdW1wUmVuZGVyVHJlZS93
aW4vVGVzdFJ1bm5lcldpbi5jcHA6IERpdHRvLgoqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6IERpdHRvLgoqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6IERpdHRvLgoqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOiBEaXR0by4KCkxheW91dFRlc3RzOgoKKiBodHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUt
bWFuaWZlc3RzLmh0bWw6IFVwZGF0ZWQKdG8gdXNlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSBmcm9tIHdpbmRvdy5pbnRlcm5hbHMKKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1x
dW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRtbDogRGl0dG8uCiogaHR0cC90ZXN0cy9hcHBjYWNo
ZS9vcmlnaW4tcXVvdGEuaHRtbDogRGl0dG8uCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysrKysrKysrKwogLi4uLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbCB8ICAzICsrLQogLi4u
L2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRtbCAgICB8ICAzICsr
LQogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbCAgICB8
ICA2ICsrKystLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDE0ICsrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgICAgICAgICAgICAgICAgIHwgIDkgKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCAgICAgICAgICAgICAgICAgfCAgMiArKwogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysr
KysrKysKIC4uLi9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4gICAg
ICAgfCAgMiArKwogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcCAgICAgICAgICAgICAgICAgIHwgMTYgLS0tLS0tLS0tLS0tLS0tLQogVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oICAgICAgICAgICAgICAgICAgICB8ICAxIC0K
IC4uLi9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcCAgICAgICAgICAgICAgfCAg
NSAtLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwICAgICAg
ICAgICB8ICA3IC0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcCAgICAgICAgICAgfCAgNSAtLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RS
dW5uZXJNYWMubW0gICAgICAgICAgICB8ICA3IC0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9UZXN0UnVubmVyV2luLmNwcCAgICAgICAgICAgfCAgNSAtLS0tLQogLi4uL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsICAgICAgICAgICB8ICAxIC0KIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiAtLS0tLS0K
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oICAgfCAg
MSAtCiAyMSBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMWY1YzY2YS4uZjgwYjI4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTEw
LTE3ICBBZm9uc28gUi4gQ29zdGEgSnIuICA8YWZvbnNvLmNvc3RhQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIEV4cG9zZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlhIHdpbmRvdy5p
bnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3ODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVs
dGlwbGUtbWFuaWZlc3RzLmh0bWw6IFVwZGF0ZWQKKyAgICAgICAgdG8gdXNlIHNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSBmcm9tIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRtbDogRGl0
dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbDogRGl0
dG8uCisKIDIwMTMtMTAtMTcgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZyBvZiBBcHBsZSBXaW5kb3dzIHBvcnQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250
aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUt
bWFuaWZlc3RzLmh0bWwKaW5kZXggYWVjNzRlYi4uMmQyMWQ4YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2Fk
LW11bHRpcGxlLW1hbmlmZXN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
Y2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMu
aHRtbApAQCAtMTQsNyArMTQsOCBAQCBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxBcHBsaWNhdGlv
bkNhY2hlcygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdh
dGVDYWxsYmFja3MoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoMjAqMTAyNCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsK
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0
bWwKaW5kZXggYjg4MGMzZC4uMzAzMTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRv
d25sb2FkLmh0bWwKQEAgLTE0LDcgKzE0LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewogICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsQXBw
bGljYXRpb25DYWNoZXMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXBwbGljYXRpb25DYWNo
ZURlbGVnYXRlQ2FsbGJhY2tzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKDEwMjQpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAyNCk7
CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBj
YWNoZS9vcmlnaW4tcXVvdGEuaHRtbAppbmRleCA0NmQ4NmQ5Li5lMDQ1MmI4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwKQEAgLTE1
LDcgKzE1LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLmNs
ZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXBwbGlj
YXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZGlzYWxs
b3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpOwotICAgICAgICB0ZXN0UnVubmVy
LnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKDIwKjEwMjQpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpAQCAtNDksNyArNTAs
OCBAQCBmdW5jdGlvbiBhZGRTZWNvbmRJRnJhbWUoKSB7CiAgICAgLy8gRXhwZWN0ZWQgdG8gZmFp
bCwgdGhlbiBpbmNyZWFzZSB0aGUgcXVvdGEuCiAgICAgYWRkSUZyYW1lV2l0aENvbnRpbnVhdGlv
bigicmVzb3VyY2VzL3F1b3RhLW9yaWdpbi1pZnJhbWUtMi5odG1sIiwgZnVuY3Rpb24oZXZlbnQp
IHsKICAgICAgICAgbG9nKGV2ZW50LmRhdGEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgxMDAqMTAyNCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSgxMDAqMTAyNCk7CiAgICAgICAgIGFkZFRoaXJkSUZyYW1lKCk7CiAgICAgfSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNDNiZmEwMi4uZjRiZDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTEwLTE3ICBBZm9uc28gUi4gQ29zdGEgSnIuICA8YWZvbnNvLmNvc3RhQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIEV4cG9zZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlh
IHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg3ODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OiBBZGQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhCisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaDogRGl0dG8uCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OiBEaXR0by4KKwogMjAxMy0xMC0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIENvbW1lbnQgQWZmaW5lVHJhbnNmb3JtOjp4U2NhbGUoKSBhbmQg
eVNjYWxlKCkgdG8gbWFrZSB0aGVpciBtZWFuaW5ncyBjbGVhcmVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggNWZkZjY4My4uYWE2MWMyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkludGVybmFscy5o
IgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKQEAg
LTE3NDUsNiArMTc0NiwxNCBAQCB2b2lkIEludGVybmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCogZQogfQogI2VuZGlmCiAK
K3ZvaWQgSW50ZXJuYWxzOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQg
bG9uZyBsb25nIHF1b3RhKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1
bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZVN0
b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihkb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKSwgcXVvdGEpOworfQorCiB2b2lkIEludGVybmFsczo6cmVnaXN0ZXJVUkxTY2hlbWVBc0J5
cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSkKIHsKICAg
ICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1
cml0eVBvbGljeShzY2hlbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggOTBh
YWFiMS4uNWQwNmMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yNjIsNiAr
MjYyLDggQEAgcHVibGljOgogICAgIHZvaWQgd2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KERvY3VtZW50KiwgRWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2b2lkIHNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpOworCiAgICAgdm9pZCByZWdp
c3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmlu
ZyYgc2NoZW1lKTsKICAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2lu
Z0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBiYWE0MWM1Li4wYTk2OTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yMjAsNiArMjIwLDggQEAKICAgICB2b2lkIHdl
YmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCBkb2N1bWVudCwgRWxlbWVu
dCBlbGVtZW50KTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKKwogICAgIHZvaWQgcmVnaXN0ZXJVUkxT
Y2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShET01TdHJpbmcgc2NoZW1lKTsK
ICAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1
cml0eVBvbGljeShET01TdHJpbmcgc2NoZW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNjM0ZmJlLi5lNTBk
ZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTEwLTE3ICBBZm9uc28gUi4gQ29z
dGEgSnIuICA8YWZvbnNvLmNvc3RhQHNhbXN1bmcuY29tPgorCisgICAgICAgIEV4cG9zZSBzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlhIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQudmN4cHJvai9X
ZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW46IEFkZGVkCisgICAgICAg
IHN5bWJvbHMgZm9yIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSBmcm9tIEludGVybmFs
cworCiAyMDEzLTEwLTE1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFeHBvc2UgLVtXZWJQbHVnaW5QYWNrYWdlIGJ1bmRsZV0gYXMgU1BJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRF
eHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0
R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IGU3YWVhYTQuLjY5ZjJlMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJh
dG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHBy
b2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCkBAIC00NTksMyAr
NDU5LDUgQEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/Zml4ZWRGb250RmFt
aWx5QFNldHRpbmdzQFdlYkNvcmVAQFFCRUFCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlwdENv
ZGVAQEBaLCA/Zml4ZWRGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFFQkFBRUJWQXRvbWlj
U3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVy
KD9mYW50YXN5Rm9udEZhbWlseUBTZXR0aW5nc0BXZWJDb3JlQEBRQkVBQlZBdG9taWNTdHJpbmdA
V1RGQEBXNFVTY3JpcHRDb2RlQEBAWiwgP2ZhbnRhc3lGb250RmFtaWx5QFNldHRpbmdzQFdlYkNv
cmVAQFFFQkFBRUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFopCiAgICAgICAg
IHN5bWJvbFdpdGhQb2ludGVyKD9jdXJzaXZlRm9udEZhbWlseUBTZXR0aW5nc0BXZWJDb3JlQEBR
QkVBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWiwgP2N1cnNpdmVGb250RmFt
aWx5QFNldHRpbmdzQFdlYkNvcmVAQFFFQkFBRUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0
Q29kZUBAQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zdG9yZVVwZGF0ZWRRdW90YUZv
ck9yaWdpbkBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUBXZWJDb3JlQEBRQUVfTlBCVlNlY3VyaXR5
T3JpZ2luQDJAX0pAWiwgP3NldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUBJbnRlcm5hbHNA
V2ViQ29yZUBAUUFFWF9LQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9jYWNoZVN0b3Jh
Z2VAV2ViQ29yZUBAWUFBQVZBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUAxQFhaLCA/c2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhQEludGVybmFsc0BXZWJDb3JlQEBRQUVYX0tAWikKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNDQ0MDg3Li5m
NDJiMjE3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAtMTcgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxhZm9u
c28uY29zdGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSB2aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3Bw
OiBNb3ZlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YQorICAgICAgICB0byB3aW5kb3cu
aW50ZXJuYWxzCisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDogRGl0dG8uCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6IFJlbW92ZSBzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwv
VGVzdFJ1bm5lckVmbC5jcHA6IERpdHRvLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9U
ZXN0UnVubmVyR3RrLmNwcDogRGl0dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW06IERpdHRvLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
UnVubmVyV2luLmNwcDogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogRGl0dG8uCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDogRGl0dG8uCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6IERpdHRvLgor
CiAyMDEzLTEwLTE3ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEFkZCBteXNlbGYgYXMgYSByZXZpZXdlci4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggNWMwZDAzYy4uYzJmMWZjZiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAKQEAgLTg3MywyMSArODczLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0
QXBwQ2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlUmVmIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICAvLyBIYXMgbWFjIGltcGxlbWVudGF0aW9u
Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0KLSAg
ICBkb3VibGUgc2l6ZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIE5V
TEwpOwotICAgIGlmICghc3RkOjppc25hbihzaXplKSkKLSAgICAgICAgY29udHJvbGxlci0+c2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9u
Zz4oc2l6ZSkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwot
fQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dz
IGltcGxlbWVudGF0aW9uCkBAIC0yMTI1LDcgKzIxMTAsNiBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBU
ZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRBbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMiLCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRBbHdheXNBY2NlcHRDb29raWVzIiwgc2V0QWx3YXlzQWNj
ZXB0Q29va2llc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFwcENhY2hlTWF4aW11
bVNpemUiLCBzZXRBcHBDYWNoZU1heGltdW1TaXplQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAg
eyAic2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIiwgc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0RW5jb2RlZEF1ZGlvRGF0
YSIsIHNldEVuY29kZWRBdWRpb0RhdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRB
dXRoZW50aWNhdGlvblBhc3N3b3JkIiwgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiLCBzZXRBdXRo
ZW50aWNhdGlvblVzZXJuYW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuaAppbmRleCA4Y2RhY2Q5Li4yMDU5OGQ3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5o
CkBAIC05MCw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwogICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzKGJvb2wpOwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBs
b25nIGxvbmcgcXVvdGEpOwotICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KHVuc2lnbmVkIGxvbmcgbG9uZyk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHNldENhY2hlTW9kZWwoaW50KTsKICAgICB2b2lkIHNldEN1
c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgc2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFj
a0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJs
YWNrQmVycnkuY3BwCmluZGV4IDYwODQ5ZDQuLmE0ZTcyNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCkBA
IC01MDEsMTEgKzUwMSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNh
Y2hlcygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlk
ZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKQog
ewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKEJs
YWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdl
KCksIGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblByb3ZpZGVCZXRhLCBiZXRhLCBjYW5Qcm92
aWRlR2FtbWEsIGdhbW1hKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZs
LmNwcAppbmRleCAwNzQ2ZTUyLi4zMTJjMzFmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC01MzAsMTMgKzUzMCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgZXdrX3NldHRpbmdzX2FwcGxpY2F0aW9u
X2NhY2hlX2NsZWFyKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICBFd2tfU2VjdXJp
dHlfT3JpZ2luKiBvcmlnaW4gPSBld2tfZnJhbWVfc2VjdXJpdHlfb3JpZ2luX2dldChicm93c2Vy
LT5tYWluRnJhbWUoKSk7Ci0gICAgZXdrX3NlY3VyaXR5X29yaWdpbl9hcHBsaWNhdGlvbl9jYWNo
ZV9xdW90YV9zZXQob3JpZ2luLCBxdW90YSk7Ci0gICAgZXdrX3NlY3VyaXR5X29yaWdpbl9mcmVl
KG9yaWdpbik7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9y
T3JpZ2luKE9wYXF1ZUpTU3RyaW5nKiB1cmwpCiB7CiAgICAgRXdrX1NlY3VyaXR5X09yaWdpbiog
b3JpZ2luID0gZXdrX3NlY3VyaXR5X29yaWdpbl9uZXdfZnJvbV9zdHJpbmcodXJsLT5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9U
ZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcAppbmRleCAyNjVmYjVjLi5iOGVkOWZkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC01NzIsMTEgKzU3Miw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBz
dXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rhcy4KIH0KIAotdm9pZCBUZXN0UnVubmVyOjpz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQot
ewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbiBjYWNoZSBx
dW90YXMuCi19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3Jp
Z2luKE9wYXF1ZUpTU3RyaW5nKikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBv
cnQgZGVsZXRpbmcgYWxsIGFwcGxpY2F0aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBhNDZkNDI4Li4yOTFlNGFi
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtMzk0LDEz
ICszOTQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWdu
ZWQgbG9uZyBsb25nIHNpemUpCiAgICAgW1dlYkFwcGxpY2F0aW9uQ2FjaGUgc2V0TWF4aW11bVNp
emU6c2l6ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICBXZWJTZWN1cml0eU9yaWdp
biAqb3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiXV07Ci0gICAgW1tvcmlnaW4g
YXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlcl0gc2V0UXVvdGE6cXVvdGFdOwotICAgIFtvcmln
aW4gcmVsZWFzZV07Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXV0aG9yQW5kVXNlclN0eWxl
c0VuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVmZXJl
bmNlc10gc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6ZmxhZ107CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggM2ZiMWM1YS4uMjE1NmMwMyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzkwLDExICs3
OTAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihK
U1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGRl
bGV0aW5nIGFsbCBhcHBsaWNhdGlvbiBjYWNoZSBmb3IgYW4gb3JpZ2luLgogfQogCi12b2lkIFRl
c3RSdW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxv
bmcgcXVvdGEpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0
aW9uIGNhY2hlIHF1b3Rhcy4KLX0KLQogSlNWYWx1ZVJlZiBUZXN0UnVubmVyOjpvcmlnaW5zV2l0
aEFwcGxpY2F0aW9uQ2FjaGUoSlNDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0byBnZXQgb3JpZ2lucyB0aGF0IGhhdmUgYXBwbGljYXRpb24gY2FjaGVzLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZTI2MmIyNS4uN2I1YTdjNiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVu
bmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMDgsNyArMTA4LDYgQEAgaW50ZXJmYWNlIFRlc3RSdW5u
ZXIgewogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSk7CiAgICAgbG9uZyBsb25nIGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4o
RE9NU3RyaW5nIG9yaWdpbik7CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmln
aW4oRE9NU3RyaW5nIG5hbWUpOwotICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcyk7CiAgICAgdm9pZCBkaXNhbGxvd0luY3JlYXNl
Rm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCk7CiAgICAgb2JqZWN0IG9yaWdpbnNXaXRoQXBwbGlj
YXRpb25DYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAzZjJkMDM4Li4xNmU5NGMyIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTI2NCwxMiArMjY0LDYgQEAgbG9uZyBsb25nIFRlc3RSdW5uZXI6OmFwcGxpY2F0aW9uQ2Fj
aGVEaXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBXS0J1
bmRsZUdldEFwcENhY2hlVXNhZ2VGb3JPcmlnaW4oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1
bmRsZSgpLCB0b1dLKG9yaWdpbikuZ2V0KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXMpCi17Ci0g
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbihBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikpOwotICAgIFdLQnVuZGxl
U2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5i
dW5kbGUoKSwgb3JpZ2luLmdldCgpLCBieXRlcyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZGlz
YWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpCiB7CiAgICAgbV9kaXNhbGxv
d0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMzhjZWY2
Yi4uYzc4OTRiMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmgKQEAgLTE0Myw3ICsxNDMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKTsKICAgICB2
b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodWludDY0X3QpOwogICAgIGxvbmcgbG9uZyBhcHBs
aWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbik7Ci0gICAg
dm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsK
ICAgICB2b2lkIGRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKICAg
ICBib29sIHNob3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKSB7
IHJldHVybiBtX2Rpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGE7IH0KICAg
ICBKU1ZhbHVlUmVmIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSgpOwotLSAKMS44LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215424</attachid>
            <date>2013-10-29 14:03:02 -0700</date>
            <delta_ts>2013-10-31 14:51:01 -0700</delta_ts>
            <desc>Proposed patch (v2)</desc>
            <filename>0001-Expose-setApplicationCacheOriginQuota-via-window.int.patch</filename>
            <type>text/plain</type>
            <size>21370</size>
            <attacher name="Afonso Costa">afonso.costa</attacher>
            
              <data encoding="base64">RnJvbSBiYjRmNjZiN2U4YzI3YjdmNGQ0MTZiYTVkOTgzYTBjOWIwNDVkZjc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQWZvbnNvIFIuIENvc3RhIEpyIiA8YWZvbnNvLmNvc3RhQHNh
bXN1bmcuY29tPgpEYXRlOiBUdWUsIDI5IE9jdCAyMDEzIDE3OjAzOjU3IC0wNDAwClN1YmplY3Q6
IFtQQVRDSF0gRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93
LmludGVybmFscwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4
CgpSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCgpTb3VyY2UvV2ViQ29yZToKCiogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOiBBZGQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhCihXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CiogdGVzdGlu
Zy9JbnRlcm5hbHMuaDogRGl0dG8uCiogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBEaXR0by4KClNv
dXJjZS9XZWJLaXQ6CgoqIFdlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJL
aXRFeHBvcnRzLmRlZi5pbjogQWRkCnN5bWJvbHMgZm9yIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YSBmcm9tIEludGVybmFscwoKVG9vbHM6CgoqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwOiBNb3ZlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YQp0byB3aW5kb3cuaW50
ZXJuYWxzCihUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgoqIER1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaDogRGl0dG8uCiogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHA6IFJlbW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKiBE
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6IERpdHRvLgoqIER1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDogRGl0dG8uCiogRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW06IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6IERpdHRvLgoKTGF5b3V0VGVzdHM6CgoqIGh0dHAvdGVzdHMvYXBwY2FjaGUv
b3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbDog
VXBkYXRlZAp0byB1c2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIGZyb20gd2luZG93
LmludGVybmFscwoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1k
b3dubG9hZC5odG1sOiBEaXR0by4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5o
dG1sOiBEaXR0by4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgMTIgKysrKysrKysrKysrCiAuLi4tcXVvdGEtY29udGludWVkLWRvd25s
b2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sIHwgIDMgKystCiAuLi4vYXBwY2FjaGUvb3JpZ2lu
LXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sICAgIHwgIDMgKystCiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sICAgIHwgIDYgKysrKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAgICAg
ICAgICAgIHwgIDkgKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
ICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbCAgICAgICAgICAgICAgICAgfCAgMiArKwogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrKysrKysKIC4uLi9XZWJLaXRF
eHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4gICAgICAgfCAgMiArKwogVG9vbHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwICsrKysr
KysrKysrKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCAgICAg
ICAgICAgICAgICAgIHwgMTYgLS0tLS0tLS0tLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5oICAgICAgICAgICAgICAgICAgICB8ICAxIC0KIC4uLi9ibGFja2JlcnJ5L1Rl
c3RSdW5uZXJCbGFja0JlcnJ5LmNwcCAgICAgICAgICAgICAgfCAgNSAtLS0tLQogVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwICAgICAgICAgICB8ICA3IC0tLS0tLS0K
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCAgICAgICAgICAgfCAg
NSAtLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gICAgICAg
ICAgICB8ICA3IC0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcCAgICAgICAgICAgfCAgNSAtLS0tLQogLi4uL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsICAgICAgICAgICB8ICAxIC0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiAtLS0tLS0KIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oICAgfCAgMSAtCiAyMSBmaWxlcyBjaGFu
Z2VkLCA3NyBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzE3YTFhMy4u
MGY4Yjc4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTEwLTI5ICBBZm9uc28gUi4gQ29z
dGEgSnIuICA8YWZvbnNvLmNvc3RhQHNhbXN1bmcuY29tPgorCisgICAgICAgIEV4cG9zZSBzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlhIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBj
YWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5o
dG1sOiBVcGRhdGVkCisgICAgICAgIHRvIHVzZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEgZnJvbSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWw6IERpdHRvLgorICAgICAgICAqIGh0
dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWw6IERpdHRvLgorCiAyMDEzLTEwLTI5
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsg
c29tZSBjb2xvcnNwYWNlLXNlbnNpdGl2ZSB0ZXN0cyBhcyBwb3NzaWJseSBwYXNzaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29u
dGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxl
LW1hbmlmZXN0cy5odG1sCmluZGV4IGFlYzc0ZWIuLjJkMjFkOGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9h
ZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3Rz
Lmh0bWwKQEAgLTE0LDcgKzE0LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsQXBwbGljYXRp
b25DYWNoZXMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXBwbGljYXRpb25DYWNoZURlbGVn
YXRlQ2FsbGJhY2tzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKDIwKjEwMjQpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7
CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5o
dG1sCmluZGV4IGI4ODBjM2QuLjMwMzE2MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1k
b3dubG9hZC5odG1sCkBAIC0xNCw3ICsxNCw4IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbEFw
cGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFwcGxpY2F0aW9uQ2Fj
aGVEZWxlZ2F0ZUNhbGxiYWNrcygpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YSgxMDI0KTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDEwMjQp
OwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
Y2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwKaW5kZXggNDZkODZkOS4uZTA0NTJiOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCkBAIC0x
NSw3ICsxNSw4IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdGVzdFJ1bm5lci5j
bGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFwcGxp
Y2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcygpOwogICAgICAgICB0ZXN0UnVubmVyLmRpc2Fs
bG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7CisgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KQEAgLTQ5LDcgKzUw
LDggQEAgZnVuY3Rpb24gYWRkU2Vjb25kSUZyYW1lKCkgewogICAgIC8vIEV4cGVjdGVkIHRvIGZh
aWwsIHRoZW4gaW5jcmVhc2UgdGhlIHF1b3RhLgogICAgIGFkZElGcmFtZVdpdGhDb250aW51YXRp
b24oInJlc291cmNlcy9xdW90YS1vcmlnaW4taWZyYW1lLTIuaHRtbCIsIGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgICAgIGxvZyhldmVudC5kYXRhKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAwKjEwMjQpOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoMTAwKjEwMjQpOwogICAgICAgICBhZGRUaGlyZElGcmFtZSgpOwogICAgIH0pOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ1YzQwYjkuLjdjODVjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMy0xMC0yOSAgQWZvbnNvIFIuIENvc3RhIEpyLiAgPGFmb25zby5jb3N0YUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIHZp
YSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NzgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4K
KworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDogQWRkIHNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YQorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6IERpdHRv
LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogRGl0dG8uCisKIDIwMTMtMTAtMjkg
IEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlck9iamVj
dDo6b3V0bGluZVN0eWxlRm9yUmVwYWludCgpIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMzVlNTlhNS4uYzA5ODNlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1
ZGUgIkludGVybmFscy5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRl
ICJDaHJvbWUuaCIKQEAgLTE4MTAsNiArMTgxMSwxNCBAQCB2b2lkIEludGVybmFsczo6d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiB9CiAjZW5kaWYK
IAordm9pZCBJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25l
ZCBsb25nIGxvbmcgcXVvdGEpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hl
U3RvcmFnZSgpLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGRvY3VtZW50LT5zZWN1cml0eU9y
aWdpbigpLCBxdW90YSk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpyZWdpc3RlclVSTFNjaGVtZUFz
QnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKQogewog
ICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNl
Y3VyaXR5UG9saWN5KHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAw
NTdhNjdmLi40OTVkY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI2Miw2
ICsyNjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoRWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpOworCiAgICAgdm9pZCByZWdpc3RlclVSTFNj
aGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1l
KTsKICAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2luZ0NvbnRlbnRT
ZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAppbmRleCBjNTdjOWQ4Li5hN2VhZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCkBAIC0yMTksNiArMjE5LDggQEAKICAgICB2b2lkIHdlYmtpdERpZEV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50IGVsZW1lbnQpOwogI2VuZGlmCiAKKyAgICB2
b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVv
dGEpOworCiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3Vy
aXR5UG9saWN5KERPTVN0cmluZyBzY2hlbWUpOwogICAgIHZvaWQgcmVtb3ZlVVJMU2NoZW1lUmVn
aXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KERPTVN0cmluZyBzY2hlbWUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDNmOTQ0OTQuLjZjYWVjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTMtMTAtMjkgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxhZm9uc28uY29zdGFAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2
aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8u
CisKKyAgICAgICAgKiBXZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0
RXhwb3J0cy5kZWYuaW46IEFkZAorICAgICAgICBzeW1ib2xzIGZvciBzZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEgZnJvbSBJbnRlcm5hbHMKKwogMjAxMy0xMC0yOCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVwc3RyZWFtIHJlbWFpbmluZyBQ
TEFURk9STShJT1MpIGFuZCBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikgcGllY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9X
ZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IGNjZGIwNzAuLmI3ZWQ1
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0
R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCkBAIC00
NTcsMyArNDU3LDUgQEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/Zml4ZWRG
b250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFCRUFCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNj
cmlwdENvZGVAQEBaLCA/Zml4ZWRGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFFQkFBRUJW
QXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQ
b2ludGVyKD9mYW50YXN5Rm9udEZhbWlseUBTZXR0aW5nc0BXZWJDb3JlQEBRQkVBQlZBdG9taWNT
dHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWiwgP2ZhbnRhc3lGb250RmFtaWx5QFNldHRpbmdz
QFdlYkNvcmVAQFFFQkFBRUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFopCiAg
ICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9jdXJzaXZlRm9udEZhbWlseUBTZXR0aW5nc0BXZWJD
b3JlQEBRQkVBQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3JpcHRDb2RlQEBAWiwgP2N1cnNpdmVG
b250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVAQFFFQkFBRUJWQXRvbWljU3RyaW5nQFdURkBAVzRV
U2NyaXB0Q29kZUBAQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zdG9yZVVwZGF0ZWRR
dW90YUZvck9yaWdpbkBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUBXZWJDb3JlQEBRQUVfTlBCVlNl
Y3VyaXR5T3JpZ2luQDJAX0pAWiwgP3NldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUBJbnRl
cm5hbHNAV2ViQ29yZUBAUUFFWF9LQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9jYWNo
ZVN0b3JhZ2VAV2ViQ29yZUBAWUFBQVZBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUAxQFhaLCA/c2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhQEludGVybmFsc0BXZWJDb3JlQEBRQUVYX0tAWikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYzZm
NmI5Li4zZjcwNDkyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAtMjkgIEFmb25zbyBSLiBDb3N0YSBKci4g
IDxhZm9uc28uY29zdGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmNwcDogTW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKyAgICAgICAgdG8g
d2luZG93LmludGVybmFscworICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6IERpdHRvLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOiBSZW1v
dmUgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6IERpdHRvLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93
aW4vVGVzdFJ1bm5lcldpbi5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6IERpdHRvLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6IERpdHRvLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOiBE
aXR0by4KKwogMjAxMy0xMC0yOSAgTHVjYXMgRm9yc2NobGVyICA8bGZvcnNjaGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgVGVhY2ggdGhlIFdlYktpdDIgdGVzdGVycyB0byBhYm9ydCBlYXJseSBi
eSBzZXR0aW5nIHRoZSBzaG91bGRBYm9ydEVhcmx5IHByb3BlcnR5IHRvIFRydWUuCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGZiOTBkYzguLmU4NzFmN2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC04NzcsMjEgKzg3Nyw2IEBAIHN0YXRpYyBKU1ZhbHVl
UmVmIHNldEFwcENhY2hlTWF4aW11bVNpemVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQog
Ci1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgLy8gSGFzIG1hYyBpbXBsZW1l
bnRhdGlvbgotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9
IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkp
OwotCi0gICAgZG91YmxlIHNpemUgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRz
WzBdLCBOVUxMKTsKLSAgICBpZiAoIXN0ZDo6aXNuYW4oc2l6ZSkpCi0gICAgICAgIGNvbnRyb2xs
ZXItPnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KHNpemUpKTsKLQotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFjICYg
d2luZG93cyBpbXBsZW1lbnRhdGlvbgpAQCAtMjEyOSw3ICsyMTE0LDYgQEAgSlNTdGF0aWNGdW5j
dGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QWx3YXlzQWNjZXB0Q29va2llcyIsIHNldEFs
d2F5c0FjY2VwdENvb2tpZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBcHBDYWNo
ZU1heGltdW1TaXplIiwgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0g
ICAgICAgIHsgInNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsIHNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEF1ZGlvUmVz
dWx0Iiwgc2V0QXVkaW9SZXN1bHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBdXRo
ZW50aWNhdGlvblBhc3N3b3JkIiwgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiLCBzZXRBdXRoZW50
aWNhdGlvblVzZXJuYW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aAppbmRleCBkMmIzYTA0Li4yZjcxNWU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBA
IC05MCw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzKGJvb2wpOwogICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzKGJvb2wpOwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25n
IGxvbmcgcXVvdGEpOwotICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVu
c2lnbmVkIGxvbmcgbG9uZyk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIHNldENhY2hlTW9kZWwoaW50KTsKICAgICB2b2lkIHNldEN1c3Rv
bVBvbGljeURlbGVnYXRlKGJvb2wgc2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0Jl
cnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNr
QmVycnkuY3BwCmluZGV4IDYwODQ5ZDQuLmE0ZTcyNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCkBAIC01
MDEsMTEgKzUwMSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hl
cygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0
aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJl
dGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKQogewog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKEJsYWNr
QmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCks
IGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblByb3ZpZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRl
R2FtbWEsIGdhbW1hKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0
UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cAppbmRleCAwNzQ2ZTUyLi4zMTJjMzFmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rl
c3RSdW5uZXJFZmwuY3BwCkBAIC01MzAsMTMgKzUzMCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xl
YXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgZXdrX3NldHRpbmdzX2FwcGxpY2F0aW9uX2Nh
Y2hlX2NsZWFyKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICBFd2tfU2VjdXJpdHlf
T3JpZ2luKiBvcmlnaW4gPSBld2tfZnJhbWVfc2VjdXJpdHlfb3JpZ2luX2dldChicm93c2VyLT5t
YWluRnJhbWUoKSk7Ci0gICAgZXdrX3NlY3VyaXR5X29yaWdpbl9hcHBsaWNhdGlvbl9jYWNoZV9x
dW90YV9zZXQob3JpZ2luLCBxdW90YSk7Ci0gICAgZXdrX3NlY3VyaXR5X29yaWdpbl9mcmVlKG9y
aWdpbik7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3Jp
Z2luKE9wYXF1ZUpTU3RyaW5nKiB1cmwpCiB7CiAgICAgRXdrX1NlY3VyaXR5X09yaWdpbiogb3Jp
Z2luID0gZXdrX3NlY3VyaXR5X29yaWdpbl9uZXdfZnJvbV9zdHJpbmcodXJsLT5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0
UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cAppbmRleCBmNjcwOWQ1Li41OTQyYmNjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rl
c3RSdW5uZXJHdGsuY3BwCkBAIC01NzUsMTEgKzU3NSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xl
YXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBw
b3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rhcy4KIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewot
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbiBjYWNoZSBxdW90
YXMuCi19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2lu
KE9wYXF1ZUpTU3RyaW5nKikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQg
ZGVsZXRpbmcgYWxsIGFwcGxpY2F0aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBhNDZkNDI4Li4yOTFlNGFiIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtMzk0LDEzICsz
OTQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQg
bG9uZyBsb25nIHNpemUpCiAgICAgW1dlYkFwcGxpY2F0aW9uQ2FjaGUgc2V0TWF4aW11bVNpemU6
c2l6ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAq
b3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiXV07Ci0gICAgW1tvcmlnaW4gYXBw
bGljYXRpb25DYWNoZVF1b3RhTWFuYWdlcl0gc2V0UXVvdGE6cXVvdGFdOwotICAgIFtvcmlnaW4g
cmVsZWFzZV07Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0Vu
YWJsZWQoYm9vbCBmbGFnKQogewogICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVmZXJlbmNl
c10gc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6ZmxhZ107CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggM2ZiMWM1YS4uMjE1NmMwMyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzkwLDExICs3OTAs
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihKU1N0
cmluZ1JlZiBvcmlnaW4pCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGRlbGV0
aW5nIGFsbCBhcHBsaWNhdGlvbiBjYWNoZSBmb3IgYW4gb3JpZ2luLgogfQogCi12b2lkIFRlc3RS
dW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcg
cXVvdGEpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9u
IGNhY2hlIHF1b3Rhcy4KLX0KLQogSlNWYWx1ZVJlZiBUZXN0UnVubmVyOjpvcmlnaW5zV2l0aEFw
cGxpY2F0aW9uQ2FjaGUoSlNDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0byBnZXQgb3JpZ2lucyB0aGF0IGhhdmUgYXBwbGljYXRpb24gY2FjaGVzLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZTI2MmIyNS4uN2I1YTdjNiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCkBAIC0xMDgsNyArMTA4LDYgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIg
ewogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6
ZSk7CiAgICAgbG9uZyBsb25nIGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oRE9N
U3RyaW5nIG9yaWdpbik7CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4o
RE9NU3RyaW5nIG5hbWUpOwotICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcyk7CiAgICAgdm9pZCBkaXNhbGxvd0luY3JlYXNlRm9y
QXBwbGljYXRpb25DYWNoZVF1b3RhKCk7CiAgICAgb2JqZWN0IG9yaWdpbnNXaXRoQXBwbGljYXRp
b25DYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAyNWVjNjUyLi5iZDY5ZTA1IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTI2NCwxMiArMjY0LDYgQEAgbG9uZyBsb25nIFRlc3RSdW5uZXI6OmFwcGxpY2F0aW9uQ2FjaGVE
aXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBXS0J1bmRs
ZUdldEFwcENhY2hlVXNhZ2VGb3JPcmlnaW4oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRs
ZSgpLCB0b1dLKG9yaWdpbikuZ2V0KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXMpCi17Ci0gICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbihBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikpOwotICAgIFdLQnVuZGxlU2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5k
bGUoKSwgb3JpZ2luLmdldCgpLCBieXRlcyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZGlzYWxs
b3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpCiB7CiAgICAgbV9kaXNhbGxvd0lu
Y3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNDYyNTJhZS4u
OWQ5NjBmMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKQEAgLTE0Myw3ICsxNDMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVh
ckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKTsKICAgICB2b2lk
IHNldEFwcENhY2hlTWF4aW11bVNpemUodWludDY0X3QpOwogICAgIGxvbmcgbG9uZyBhcHBsaWNh
dGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbik7Ci0gICAgdm9p
ZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsKICAg
ICB2b2lkIGRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKICAgICBi
b29sIHNob3VsZERpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKSB7IHJl
dHVybiBtX2Rpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGE7IH0KICAgICBK
U1ZhbHVlUmVmIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSgpOwotLSAKMS44LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215679</attachid>
            <date>2013-10-31 14:51:01 -0700</date>
            <delta_ts>2013-10-31 15:47:34 -0700</delta_ts>
            <desc>Proposed patch (v3)</desc>
            <filename>0001-Expose-setApplicationCacheOriginQuota-via-window.int.patch</filename>
            <type>text/plain</type>
            <size>22053</size>
            <attacher name="Afonso Costa">afonso.costa</attacher>
            
              <data encoding="base64">RnJvbSA1Y2RiYWQ2NDY2OTY2OWJiZTg2ODkwMTQ2MzhiMTA4NzI5YWQ2NjlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQWZvbnNvIFIuIENvc3RhIEpyIiA8YWZvbnNvLmNvc3RhQHNh
bXN1bmcuY29tPgpEYXRlOiBUaHUsIDMxIE9jdCAyMDEzIDE3OjQ4OjAxIC0wNDAwClN1YmplY3Q6
IFtQQVRDSF0gRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93
LmludGVybmFscwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4
CgpSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCgpTb3VyY2UvV2ViQ29yZToKCkFsc28gcmVz
ZXQgdGhlIGRlZmF1bHQgb3JpZ2luIHF1b3RhIGluIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKS4K
CiogdGVzdGluZy9JbnRlcm5hbHMuY3BwOiBBZGQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhLgooV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKTogUmVzZXQg
dGhlIGRlZmF1bHQgb3JpZ2luCnF1b3RhLgooV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBBZGRlZC4KKiB0ZXN0aW5nL0ludGVybmFscy5oOiBBZGQg
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhLgoqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDog
RGl0dG8uCgpTb3VyY2UvV2ViS2l0OgoKKiBXZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5l
cmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW46IEFkZApzeW1ib2xzIGZvciBzZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEgZnJvbSBJbnRlcm5hbHMuCgpUb29sczoKCiogRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHA6IE1vdmUgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhCnRv
IHdpbmRvdy5pbnRlcm5hbHMKKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CiogRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDogUmVtb3ZlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YS4KKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6IERpdHRvLgoq
IER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDogRGl0dG8uCiogRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6IERpdHRvLgoKTGF5b3V0VGVzdHM6CgoqIGh0dHAvdGVz
dHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5p
ZmVzdHMuaHRtbDogVXBkYXRlZAp0byB1c2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
IGZyb20gd2luZG93LmludGVybmFscwoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC5odG1sOiBEaXR0by4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29y
aWdpbi1xdW90YS5odG1sOiBEaXR0by4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysrKysrCiAuLi4tcXVvdGEtY29u
dGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sIHwgIDMgKystCiAuLi4vYXBw
Y2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sICAgIHwgIDMgKystCiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sICAgIHwgIDYg
KysrKy0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMTYgKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwICAgICAgICAgICAgICAgICB8IDEwICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmggICAgICAgICAgICAgICAgICAgfCAgMiArKwogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsICAgICAgICAgICAgICAgICB8ICAyICsrCiBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysr
KysrKwogLi4uL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiAgICAg
ICB8ICAyICsrCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuY3BwICAgICAgICAgICAgICAgICAgfCAxNiAtLS0tLS0tLS0tLS0tLS0tCiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggICAgICAgICAgICAgICAgICAgIHwgIDEgLQog
Li4uL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwICAgICAgICAgICAgICB8ICA1
IC0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgICAgICAg
ICAgIHwgIDcgLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsu
Y3BwICAgICAgICAgICB8ICA1IC0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1
bm5lck1hYy5tbSAgICAgICAgICAgIHwgIDcgLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1Rlc3RSdW5uZXJXaW4uY3BwICAgICAgICAgICB8ICA1IC0tLS0tCiAuLi4vSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgICAgICAgICAgIHwgIDEgLQogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCB8ICA2IC0tLS0tLQog
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggICB8ICAx
IC0KIDIxIGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMjczOWIzLi4wZDI1ZjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMTAt
MzEgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxhZm9uc28uY29zdGFAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93Lmlu
dGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVs
dGlwbGUtbWFuaWZlc3RzLmh0bWw6IFVwZGF0ZWQKKyAgICAgICAgdG8gdXNlIHNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSBmcm9tIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRtbDogRGl0
dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbDogRGl0
dG8uCisKIDIwMTMtMTAtMzEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIENTUzMgdGV4dCBkZWNvcmF0aW9uIGltcGxlbWVudGF0aW9uIGJl
aGluZCBFTkFCTEUoQ1NTM19URVhUX0RFQ09SQVRJT04pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVs
dGlwbGUtbWFuaWZlc3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29y
aWdpbi1xdW90YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLmh0bWwKaW5k
ZXggYWVjNzRlYi4uMmQyMWQ4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVzdHMuaHRtbApAQCAtMTQsNyArMTQs
OCBAQCBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpOwogICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1
b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBj
YWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKaW5kZXggYjg4MGMzZC4u
MzAzMTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmln
aW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWwKQEAgLTE0
LDcgKzE0LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsK
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tz
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDEw
MjQpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFs
cy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAyNCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1x
dW90YS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEu
aHRtbAppbmRleCA0NmQ4NmQ5Li5lMDQ1MmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwKQEAgLTE1LDcgKzE1LDggQEAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkgewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsQXBwbGljYXRpb25D
YWNoZXMoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRl
Q2FsbGJhY2tzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxp
Y2F0aW9uQ2FjaGVRdW90YSgpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSgyMCoxMDI0KTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDIwKjEw
MjQpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CiAgICAgfQpAQCAtNDksNyArNTAsOCBAQCBmdW5jdGlvbiBhZGRT
ZWNvbmRJRnJhbWUoKSB7CiAgICAgLy8gRXhwZWN0ZWQgdG8gZmFpbCwgdGhlbiBpbmNyZWFzZSB0
aGUgcXVvdGEuCiAgICAgYWRkSUZyYW1lV2l0aENvbnRpbnVhdGlvbigicmVzb3VyY2VzL3F1b3Rh
LW9yaWdpbi1pZnJhbWUtMi5odG1sIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgbG9nKGV2
ZW50LmRhdGEpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSgxMDAqMTAyNCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgxMDAqMTAyNCk7CiAg
ICAgICAgIGFkZFRoaXJkSUZyYW1lKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I2MjM3
MS4uMzAwNjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTEwLTMxICBBZm9u
c28gUi4gQ29zdGEgSnIuICA8YWZvbnNvLmNvc3RhQHNhbXN1bmcuY29tPgorCisgICAgICAgIEV4
cG9zZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlhIHdpbmRvdy5pbnRlcm5hbHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEFsc28gcmVz
ZXQgdGhlIGRlZmF1bHQgb3JpZ2luIHF1b3RhIGluIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKS4K
KworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDogQWRkIHNldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YS4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZSk6IFJlc2V0IHRoZSBkZWZhdWx0IG9yaWdpbgorICAgICAgICBxdW90YS4KKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkIHNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YS4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6IERp
dHRvLgorCiAyMDEzLTEwLTMxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCB0eXBvIGZpeCBhZnRlciAxNTgzODYuIChidWlsZGZpeCBh
ZnRlciByMTU4MzY1KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDM1ZTU5
YTUuLmVmYmI4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJJbnRlcm5hbHMuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1
ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC0yNzMsNiArMjc0LDcgQEAgdm9pZCBJbnRl
cm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSogcGFnZSkKICAgICAgICAgcGFnZS0+
bWFpbkZyYW1lKCkuZWRpdG9yKCkudG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAg
ICBpZiAocGFnZS0+bWFpbkZyYW1lKCkuZWRpdG9yKCkuaXNPdmVyd3JpdGVNb2RlRW5hYmxlZCgp
KQogICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS5lZGl0b3IoKS50b2dnbGVPdmVyd3JpdGVNb2Rl
RW5hYmxlZCgpOworICAgIGNhY2hlU3RvcmFnZSgpLnNldERlZmF1bHRPcmlnaW5RdW90YShBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpKTsKIH0KIAogSW50ZXJuYWxzOjpJbnRlcm5h
bHMoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtMTgxMCw2ICsxODEyLDE0IEBAIHZvaWQgSW50ZXJu
YWxzOjp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkK
IH0KICNlbmRpZgogCit2b2lkIEludGVybmFsczo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47
CisgICAgY2FjaGVTdG9yYWdlKCkuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oZG9jdW1lbnQt
PnNlY3VyaXR5T3JpZ2luKCksIHF1b3RhKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnJlZ2lzdGVy
VVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3RyaW5nJiBz
Y2hlbWUpCiB7CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3Np
bmdDb250ZW50U2VjdXJpdHlQb2xpY3koc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCmluZGV4IDA1N2E2N2YuLjQ5NWRjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtMjYyLDYgKzI2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdlYmtpdERpZEV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kik7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyk7CisKICAgICB2b2lkIHJl
Z2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3Ry
aW5nJiBzY2hlbWUpOwogICAgIHZvaWQgcmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNz
aW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGM1N2M5ZDguLmE3ZWFlNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTIxOSw2ICsyMTksOCBAQAogICAgIHZvaWQg
d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQgZWxlbWVudCk7CiAjZW5k
aWYKIAorICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxv
bmcgbG9uZyBxdW90YSk7CisKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdD
b250ZW50U2VjdXJpdHlQb2xpY3koRE9NU3RyaW5nIHNjaGVtZSk7CiAgICAgdm9pZCByZW1vdmVV
UkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koRE9NU3Ry
aW5nIHNjaGVtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUyNmViMC4uMWFmZjc0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMy0xMC0zMSAgQWZvbnNvIFIuIENvc3RhIEpyLiAgPGFmb25zby5j
b3N0YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBFeHBvc2Ugc2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2Vw
aCBQZWNvcmFyby4KKworICAgICAgICAqIFdlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVy
YXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbjogQWRkCisgICAgICAgIHN5bWJvbHMgZm9yIHNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSBmcm9tIEludGVybmFscy4KKwogMjAxMy0xMC0yOSAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVXBzdHJlYW0g
U291cmNlL1dlYktpdC9pb3MvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hw
cm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMu
ZGVmLmluCmluZGV4IDgyMzUxMzYuLjE1OWY1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9y
L1dlYktpdEV4cG9ydHMuZGVmLmluCkBAIC00NTgsMyArNDU4LDUgQEAgRVhQT1JUUwogICAgICAg
ICBzeW1ib2xXaXRoUG9pbnRlcig/Y3Vyc2l2ZUZvbnRGYW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBA
UUJFQUJWQXRvbWljU3RyaW5nQFdURkBAVzRVU2NyaXB0Q29kZUBAQFosID9jdXJzaXZlRm9udEZh
bWlseUBTZXR0aW5nc0BXZWJDb3JlQEBRRUJBQUVCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlw
dENvZGVAQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/c2V0U2ltcGxlTGluZUxheW91
dEVuYWJsZWRAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFosID9zZXRTaW1wbGVMaW5lTGF5b3V0
RW5hYmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBRRUFBWF9OQFopCiAgICAgICAgIHN5bWJvbFdpdGhQ
b2ludGVyKD9zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZEBTZXR0aW5nc0BX
ZWJDb3JlQEBRQUVYX05AWiwgP3NldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVk
QFNldHRpbmdzQFdlYkNvcmVAQFFFQUFYX05AWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIo
P3N0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luQEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlQFdlYkNv
cmVAQFFBRV9OUEJWU2VjdXJpdHlPcmlnaW5AMkBfSkBaLCA/c2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhQEludGVybmFsc0BXZWJDb3JlQEBRQUVYX0tAWikKKyAgICAgICAgc3ltYm9sV2l0
aFBvaW50ZXIoP2NhY2hlU3RvcmFnZUBXZWJDb3JlQEBZQUFBVkFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlQDFAWFosID9zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFASW50ZXJuYWxzQFdlYkNv
cmVAQFFBRVhfS0BaKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDlhNzU5YTMuLjBkZjU0MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0xMC0zMSAgQWZvbnNv
IFIuIENvc3RhIEpyLiAgPGFmb25zby5jb3N0YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBFeHBv
c2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgzOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOiBNb3ZlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YQorICAgICAgICB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0
aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDogRGl0
dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tC
ZXJyeS5jcHA6IFJlbW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEuCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOiBEaXR0by4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6IERpdHRvLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOiBEaXR0by4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6IERpdHRvLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6IERp
dHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oOiBEaXR0by4KKwogMjAxMy0xMC0zMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBDYWNoZWRUcmFuc2NlbmRlbnRhbEZ1bmN0aW9u
IGJlY2F1c2UgY2FjaGluZyBtYXRoIGZ1bmN0aW9ucyBpcyBhbiB1Z2x5IGlkZWEKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZmI5MGRjOC4uZTg3MWY3ZCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTg3NywyMSArODc3LDYgQEAgc3RhdGljIEpTVmFsdWVS
ZWYgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAK
LXN0YXRpYyBKU1ZhbHVlUmVmIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICAvLyBIYXMgbWFjIGltcGxlbWVu
dGF0aW9uCi0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7
Ci0KLSAgICBkb3VibGUgc2l6ZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNb
MF0sIE5VTEwpOwotICAgIGlmICghc3RkOjppc25hbihzaXplKSkKLSAgICAgICAgY29udHJvbGxl
ci0+c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHN0YXRpY19jYXN0PHVuc2lnbmVkIGxv
bmcgbG9uZz4oc2l6ZSkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3
aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0yMTI5LDcgKzIxMTQsNiBAQCBKU1N0YXRpY0Z1bmN0
aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRBbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMiLCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBbHdheXNBY2NlcHRDb29raWVzIiwgc2V0QWx3
YXlzQWNjZXB0Q29va2llc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFwcENhY2hl
TWF4aW11bVNpemUiLCBzZXRBcHBDYWNoZU1heGltdW1TaXplQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAg
ICAgICAgeyAic2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIiwgc2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXVkaW9SZXN1
bHQiLCBzZXRBdWRpb1Jlc3VsdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEF1dGhl
bnRpY2F0aW9uUGFzc3dvcmQiLCBzZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHNldEF1dGhlbnRp
Y2F0aW9uVXNlcm5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5o
CmluZGV4IGQyYjNhMDQuLjJmNzE1ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAg
LTkwLDcgKzkwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHMoYm9vbCk7CiAgICAgdm9pZCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVS
THMoYm9vbCk7CiAgICAgdm9pZCBzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcg
bG9uZyBxdW90YSk7Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5z
aWduZWQgbG9uZyBsb25nKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KGJvb2wpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwogICAgIHZvaWQgc2V0Q3VzdG9t
UG9saWN5RGVsZWdhdGUoYm9vbCBzZXREZWxlZ2F0ZSwgYm9vbCBwZXJtaXNzaXZlKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVy
cnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tC
ZXJyeS5jcHAKaW5kZXggNjA4NDlkNC4uYTRlNzI1MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKQEAgLTUw
MSwxMSArNTAxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVz
KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRp
b24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0
YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpCiB7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oQmxhY2tC
ZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKSwg
Y2FuUHJvdmlkZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJldGEsIGNhblByb3ZpZGVH
YW1tYSwgZ2FtbWEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RS
dW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3Bw
CmluZGV4IDA3NDZlNTIuLjMxMmMzMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHAKQEAgLTUzMCwxMyArNTMwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpjbGVh
ckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCkKICAgICBld2tfc2V0dGluZ3NfYXBwbGljYXRpb25fY2Fj
aGVfY2xlYXIoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIEV3a19TZWN1cml0eV9P
cmlnaW4qIG9yaWdpbiA9IGV3a19mcmFtZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGJyb3dzZXItPm1h
aW5GcmFtZSgpKTsKLSAgICBld2tfc2VjdXJpdHlfb3JpZ2luX2FwcGxpY2F0aW9uX2NhY2hlX3F1
b3RhX3NldChvcmlnaW4sIHF1b3RhKTsKLSAgICBld2tfc2VjdXJpdHlfb3JpZ2luX2ZyZWUob3Jp
Z2luKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmln
aW4oT3BhcXVlSlNTdHJpbmcqIHVybCkKIHsKICAgICBFd2tfU2VjdXJpdHlfT3JpZ2luKiBvcmln
aW4gPSBld2tfc2VjdXJpdHlfb3JpZ2luX25ld19mcm9tX3N0cmluZyh1cmwtPnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
CmluZGV4IGY2NzA5ZDUuLjU5NDJiY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVz
dFJ1bm5lckd0ay5jcHAKQEAgLTU3NSwxMSArNTc1LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpjbGVh
ckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBv
cnQgYXBwbGljYXRpb24gY2FjaGUgcXVvdGFzLgogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0g
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rh
cy4KLX0KLQogdm9pZCBUZXN0UnVubmVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4o
T3BhcXVlSlNTdHJpbmcqKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gc3VwcG9ydCBk
ZWxldGluZyBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IGE0NmQ0MjguLjI5MWU0YWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC0zOTQsMTMgKzM5
NCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSkKICAgICBbV2ViQXBwbGljYXRpb25DYWNoZSBzZXRNYXhpbXVtU2l6ZTpz
aXplXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIFdlYlNlY3VyaXR5T3JpZ2luICpv
cmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBpbml0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCJdXTsKLSAgICBbW29yaWdpbiBhcHBs
aWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyXSBzZXRRdW90YTpxdW90YV07Ci0gICAgW29yaWdpbiBy
ZWxlYXNlXTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZChib29sIGZsYWcpCiB7CiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVuY2Vz
XSBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDpmbGFnXTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCAzZmIxYzVhLi4yMTU2YzAzIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC03OTAsMTEgKzc5MCw2
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKEpTU3Ry
aW5nUmVmIG9yaWdpbikKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgZGVsZXRp
bmcgYWxsIGFwcGxpY2F0aW9uIGNhY2hlIGZvciBhbiBvcmlnaW4uCiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBx
dW90YSkKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgYXBwbGljYXRpb24g
Y2FjaGUgcXVvdGFzLgotfQotCiBKU1ZhbHVlUmVmIFRlc3RSdW5uZXI6Om9yaWdpbnNXaXRoQXBw
bGljYXRpb25DYWNoZShKU0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRvIGdldCBvcmlnaW5zIHRoYXQgaGF2ZSBhcHBsaWNhdGlvbiBjYWNoZXMuCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBlMjYyYjI1Li43YjVhN2M2IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKQEAgLTEwOCw3ICsxMDgsNiBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7
CiAgICAgdm9pZCBzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXpl
KTsKICAgICBsb25nIGxvbmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihET01T
dHJpbmcgb3JpZ2luKTsKICAgICB2b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihE
T01TdHJpbmcgbmFtZSk7Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzKTsKICAgICB2b2lkIGRpc2FsbG93SW5jcmVhc2VGb3JB
cHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKICAgICBvYmplY3Qgb3JpZ2luc1dpdGhBcHBsaWNhdGlv
bkNhY2hlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDI1ZWM2NTIuLmJkNjllMDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAt
MjY0LDEyICsyNjQsNiBAQCBsb25nIGxvbmcgVGVzdFJ1bm5lcjo6YXBwbGljYXRpb25DYWNoZURp
c2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgcmV0dXJuIFdLQnVuZGxl
R2V0QXBwQ2FjaGVVc2FnZUZvck9yaWdpbihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxl
KCksIHRvV0sob3JpZ2luKS5nZXQoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlcykKLXsKLSAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiKSk7Ci0gICAgV0tCdW5kbGVTZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRs
ZSgpLCBvcmlnaW4uZ2V0KCksIGJ5dGVzKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpkaXNhbGxv
d0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKCkKIHsKICAgICBtX2Rpc2FsbG93SW5j
cmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBmMGNjYjU0Li41
MzZiYmI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaApAQCAtMTQxLDcgKzE0MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFy
QXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pOwogICAgIHZvaWQg
c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CiAgICAgbG9uZyBsb25nIGFwcGxpY2F0
aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKTsKLSAgICB2b2lk
IHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpOwogICAg
IHZvaWQgZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpOwogICAgIGJv
b2wgc2hvdWxkRGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YSgpIHsgcmV0
dXJuIG1fZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YTsgfQogICAgIEpT
VmFsdWVSZWYgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKCk7Ci0tIAoxLjguNAoK
</data>
<flag name="commit-queue"
          id="238472"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215685</attachid>
            <date>2013-10-31 15:47:34 -0700</date>
            <delta_ts>2013-11-01 13:13:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Expose-setApplicationCacheOriginQuota-via-window.int.patch</filename>
            <type>text/plain</type>
            <size>22207</size>
            <attacher name="Afonso Costa">afonso.costa</attacher>
            
              <data encoding="base64">RnJvbSA1YjNmZDJmMTU3MzIyZjUyY2VhNTg5ZWFmYjhkNGQyNjUzYzRkZDMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQWZvbnNvIFIuIENvc3RhIEpyIiA8YWZvbnNvLmNvc3RhQHNh
bXN1bmcuY29tPgpEYXRlOiBUaHUsIDMxIE9jdCAyMDEzIDE3OjQ4OjAxIC0wNDAwClN1YmplY3Q6
IFtQQVRDSF0gRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93
LmludGVybmFscwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM4
CgpSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCgpTb3VyY2UvV2ViQ29yZToKCkFsc28gcmVz
ZXQgdGhlIGRlZmF1bHQgb3JpZ2luIHF1b3RhIGluIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKS4K
CiogdGVzdGluZy9JbnRlcm5hbHMuY3BwOiBBZGQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhLgooV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKTogUmVzZXQg
dGhlIGRlZmF1bHQgb3JpZ2luCnF1b3RhLgooV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBBZGRlZC4KKiB0ZXN0aW5nL0ludGVybmFscy5oOiBBZGQg
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhLgoqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDog
RGl0dG8uCgpTb3VyY2UvV2ViS2l0OgoKKiBXZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5l
cmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW46IEFkZApzeW1ib2xzIGZvciBzZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEgZnJvbSBJbnRlcm5hbHMuCgpUb29sczoKCiogRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHA6IE1vdmUgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhCnRv
IHdpbmRvdy5pbnRlcm5hbHMKKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CiogRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDogUmVtb3ZlIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YS4KKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6IERpdHRvLgoq
IER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDogRGl0dG8uCiogRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06IERpdHRvLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDogRGl0dG8uCiogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6IERpdHRvLgoKTGF5b3V0VGVzdHM6CgoqIGh0dHAvdGVz
dHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5p
ZmVzdHMuaHRtbDogVXBkYXRlZAp0byB1c2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
IGZyb20gd2luZG93LmludGVybmFscwoqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
LWNvbnRpbnVlZC1kb3dubG9hZC5odG1sOiBEaXR0by4KKiBodHRwL3Rlc3RzL2FwcGNhY2hlL29y
aWdpbi1xdW90YS5odG1sOiBEaXR0by4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysrKysrCiAuLi4tcXVvdGEtY29u
dGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sIHwgIDMgKystCiAuLi4vYXBw
Y2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sICAgIHwgIDMgKystCiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sICAgIHwgIDYg
KysrKy0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMTYgKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwICAgICAgICAgICAgICAgICB8IDEwICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmggICAgICAgICAgICAgICAgICAgfCAgMiArKwogU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsICAgICAgICAgICAgICAgICB8ICAyICsrCiBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysr
KysrKwogLi4uL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiAgICAg
ICB8ICAzICsrKwogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcCAgICAgICAgICAgICAgICAgIHwgMTYgLS0tLS0tLS0tLS0tLS0tLQogVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oICAgICAgICAgICAgICAgICAgICB8ICAxIC0K
IC4uLi9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcCAgICAgICAgICAgICAgfCAg
NSAtLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwICAgICAg
ICAgICB8ICA3IC0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcCAgICAgICAgICAgfCAgNSAtLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RS
dW5uZXJNYWMubW0gICAgICAgICAgICB8ICA3IC0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9UZXN0UnVubmVyV2luLmNwcCAgICAgICAgICAgfCAgNSAtLS0tLQogLi4uL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsICAgICAgICAgICB8ICAxIC0KIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgNiAtLS0tLS0K
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oICAgfCAg
MSAtCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYTI3MzliMy4uMGQyNWYwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTEw
LTMxICBBZm9uc28gUi4gQ29zdGEgSnIuICA8YWZvbnNvLmNvc3RhQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIEV4cG9zZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgdmlhIHdpbmRvdy5p
bnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3ODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11
bHRpcGxlLW1hbmlmZXN0cy5odG1sOiBVcGRhdGVkCisgICAgICAgIHRvIHVzZSBzZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEgZnJvbSB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgICogaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLmh0bWw6IERp
dHRvLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWw6IERp
dHRvLgorCiAyMDEzLTEwLTMxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgTW92ZSBDU1MzIHRleHQgZGVjb3JhdGlvbiBpbXBsZW1lbnRhdGlvbiBi
ZWhpbmQgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11
bHRpcGxlLW1hbmlmZXN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW4tcXVvdGEtY29udGludWVkLWRvd25sb2FkLW11bHRpcGxlLW1hbmlmZXN0cy5odG1sCmlu
ZGV4IGFlYzc0ZWIuLjJkMjFkOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC1tdWx0aXBsZS1tYW5pZmVz
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90
YS1jb250aW51ZWQtZG93bmxvYWQtbXVsdGlwbGUtbWFuaWZlc3RzLmh0bWwKQEAgLTE0LDcgKzE0
LDggQEAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDIwKjEwMjQp
OworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5z
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1x
dW90YS1jb250aW51ZWQtZG93bmxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
Y2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sCmluZGV4IGI4ODBjM2Qu
LjMwMzE2MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3Jp
Z2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLWNvbnRpbnVlZC1kb3dubG9hZC5odG1sCkBAIC0x
NCw3ICsxNCw4IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7
CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNr
cygpOwotICAgICAgICB0ZXN0UnVubmVyLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgx
MDI0KTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5h
bHMuc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKDEwMjQpOwogICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4t
cXVvdGEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3Rh
Lmh0bWwKaW5kZXggNDZkODZkOS4uZTA0NTJiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1xdW90YS5odG1sCkBAIC0xNSw3ICsxNSw4IEBAIGZ1bmN0
aW9uIHN0YXJ0VGVzdCgpIHsKICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbEFwcGxpY2F0aW9u
Q2FjaGVzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0
ZUNhbGxiYWNrcygpOwogICAgICAgICB0ZXN0UnVubmVyLmRpc2FsbG93SW5jcmVhc2VGb3JBcHBs
aWNhdGlvbkNhY2hlUXVvdGEoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoMjAqMTAyNCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgaW50ZXJuYWxzLnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgyMCox
MDI0KTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KQEAgLTQ5LDcgKzUwLDggQEAgZnVuY3Rpb24gYWRk
U2Vjb25kSUZyYW1lKCkgewogICAgIC8vIEV4cGVjdGVkIHRvIGZhaWwsIHRoZW4gaW5jcmVhc2Ug
dGhlIHF1b3RhLgogICAgIGFkZElGcmFtZVdpdGhDb250aW51YXRpb24oInJlc291cmNlcy9xdW90
YS1vcmlnaW4taWZyYW1lLTIuaHRtbCIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIGxvZyhl
dmVudC5kYXRhKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoMTAwKjEwMjQpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
ICAgIGludGVybmFscy5zZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoMTAwKjEwMjQpOwog
ICAgICAgICBhZGRUaGlyZElGcmFtZSgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNiNjIz
NzEuLjMwMDY2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0xMC0zMSAgQWZv
bnNvIFIuIENvc3RhIEpyLiAgPGFmb25zby5jb3N0YUBzYW1zdW5nLmNvbT4KKworICAgICAgICBF
eHBvc2Ugc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhIHZpYSB3aW5kb3cuaW50ZXJuYWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzgzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBBbHNvIHJl
c2V0IHRoZSBkZWZhdWx0IG9yaWdpbiBxdW90YSBpbiByZXNldFRvQ29uc2lzdGVudFN0YXRlKCku
CisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6IEFkZCBzZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25z
aXN0ZW50U3RhdGUpOiBSZXNldCB0aGUgZGVmYXVsdCBvcmlnaW4KKyAgICAgICAgcXVvdGEuCisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YSk6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6IEFkZCBzZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBE
aXR0by4KKwogMjAxMy0xMC0zMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgdHlwbyBmaXggYWZ0ZXIgMTU4Mzg2LiAoYnVpbGRmaXgg
YWZ0ZXIgcjE1ODM2NSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzNWU1
OWE1Li5lZmJiODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiSW50ZXJuYWxzLmgiCiAKICNpbmNsdWRlICJBbmltYXRpb25D
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNs
dWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgpAQCAtMjczLDYgKzI3NCw3IEBAIHZvaWQgSW50
ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UqIHBhZ2UpCiAgICAgICAgIHBhZ2Ut
Pm1haW5GcmFtZSgpLmVkaXRvcigpLnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CiAg
ICAgaWYgKHBhZ2UtPm1haW5GcmFtZSgpLmVkaXRvcigpLmlzT3ZlcndyaXRlTW9kZUVuYWJsZWQo
KSkKICAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCkuZWRpdG9yKCkudG9nZ2xlT3ZlcndyaXRlTW9k
ZUVuYWJsZWQoKTsKKyAgICBjYWNoZVN0b3JhZ2UoKS5zZXREZWZhdWx0T3JpZ2luUXVvdGEoQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKSk7CiB9CiAKIEludGVybmFsczo6SW50ZXJu
YWxzKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTE4MTAsNiArMTgxMiwxNCBAQCB2b2lkIEludGVy
bmFsczo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
CiB9CiAjZW5kaWYKIAordm9pZCBJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gY29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
OworICAgIGNhY2hlU3RvcmFnZSgpLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGRvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpLCBxdW90YSk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpyZWdpc3Rl
clVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYg
c2NoZW1lKQogewogICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNz
aW5nQ29udGVudFNlY3VyaXR5UG9saWN5KHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCAwNTdhNjdmLi40OTVkY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKQEAgLTI2Miw2ICsyNjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3ZWJraXREaWRFeGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2b2lkIHNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpOworCiAgICAgdm9pZCBy
ZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0
cmluZyYgc2NoZW1lKTsKICAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFz
c2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBjNTdjOWQ4Li5hN2VhZTU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yMTksNiArMjE5LDggQEAKICAgICB2b2lk
IHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50IGVsZW1lbnQpOwogI2Vu
ZGlmCiAKKyAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBs
b25nIGxvbmcgcXVvdGEpOworCiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5n
Q29udGVudFNlY3VyaXR5UG9saWN5KERPTVN0cmluZyBzY2hlbWUpOwogICAgIHZvaWQgcmVtb3Zl
VVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KERPTVN0
cmluZyBzY2hlbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1MjZlYjAuLjFhZmY3NGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTMtMTAtMzEgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxhZm9uc28u
Y29zdGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YSB2aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBKb3Nl
cGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBXZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5l
cmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW46IEFkZAorICAgICAgICBzeW1ib2xzIGZvciBzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEgZnJvbSBJbnRlcm5hbHMuCisKIDIwMTMtMTAtMjkg
IEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFVwc3RyZWFt
IFNvdXJjZS9XZWJLaXQvaW9zLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4
cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRz
LmRlZi5pbgppbmRleCA4MjM1MTM2Li5mYmYxN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRv
ci9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtNDU4LDMgKzQ1OCw2IEBAIEVYUE9SVFMKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP2N1cnNpdmVGb250RmFtaWx5QFNldHRpbmdzQFdlYkNvcmVA
QFFCRUFCVkF0b21pY1N0cmluZ0BXVEZAQFc0VVNjcmlwdENvZGVAQEBaLCA/Y3Vyc2l2ZUZvbnRG
YW1pbHlAU2V0dGluZ3NAV2ViQ29yZUBAUUVCQUFFQlZBdG9taWNTdHJpbmdAV1RGQEBXNFVTY3Jp
cHRDb2RlQEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3NldFNpbXBsZUxpbmVMYXlv
dXRFbmFibGVkQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaLCA/c2V0U2ltcGxlTGluZUxheW91
dEVuYWJsZWRAU2V0dGluZ3NAV2ViQ29yZUBAUUVBQVhfTkBaKQogICAgICAgICBzeW1ib2xXaXRo
UG9pbnRlcig/c2V0U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWRAU2V0dGluZ3NA
V2ViQ29yZUBAUUFFWF9OQFosID9zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxl
ZEBTZXR0aW5nc0BXZWJDb3JlQEBRRUFBWF9OQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVy
KD9zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbkBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUBXZWJD
b3JlQEBRQUVfTlBCVlNlY3VyaXR5T3JpZ2luQDJAX0pAWiwgP3NldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YUBJbnRlcm5hbHNAV2ViQ29yZUBAUUFFWF9LQFopCisgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9jYWNoZVN0b3JhZ2VAV2ViQ29yZUBAWUFBQVZBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZUAxQFhaLCA/c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhQEludGVybmFsc0BXZWJD
b3JlQEBRQUVYX0tAWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3NldERlZmF1bHRPcmln
aW5RdW90YUBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZUBXZWJDb3JlQEBRQUVYX0pAWiwgP3Jlc2V0
VG9Db25zaXN0ZW50U3RhdGVASW50ZXJuYWxzQFdlYkNvcmVAQFNBWFBBVlBhZ2VAMkBAWikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5YTc1OWEz
Li4wZGY1NDMwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAtMzEgIEFmb25zbyBSLiBDb3N0YSBKci4gIDxh
Zm9uc28uY29zdGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgRXhwb3NlIHNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YSB2aWEgd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcDogTW92ZSBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEKKyAgICAgICAgdG8gd2lu
ZG93LmludGVybmFscworICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6IERpdHRvLgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOiBSZW1vdmUg
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2VmbC9UZXN0UnVubmVyRWZsLmNwcDogRGl0dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbTogRGl0dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwOiBEaXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDogRGl0
dG8uCisKIDIwMTMtMTAtMzEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgQ2FjaGVkVHJhbnNjZW5kZW50YWxGdW5jdGlvbiBiZWNhdXNlIGNhY2hpbmcg
bWF0aCBmdW5jdGlvbnMgaXMgYW4gdWdseSBpZGVhCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwCmluZGV4IGZiOTBkYzguLmU4NzFmN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC04NzcsMjEgKzg3Nyw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEFwcENhY2hlTWF4
aW11bVNpemVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCi17Ci0gICAgLy8gSGFzIG1hYyBpbXBsZW1lbnRhdGlvbgotICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RS
dW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotCi0gICAgZG91YmxlIHNp
emUgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBOVUxMKTsKLSAgICBp
ZiAoIXN0ZDo6aXNuYW4oc2l6ZSkpCi0gICAgICAgIGNvbnRyb2xsZXItPnNldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KHNpemUpKTsK
LQotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGlj
IEpTVmFsdWVSZWYgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRh
dGlvbgpAQCAtMjEyOSw3ICsyMTE0LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6
c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzIiwgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0QWx3YXlzQWNjZXB0Q29va2llcyIsIHNldEFsd2F5c0FjY2VwdENvb2tpZXND
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBcHBDYWNoZU1heGltdW1TaXplIiwgc2V0
QXBwQ2FjaGVNYXhpbXVtU2l6ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSIsIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEF1ZGlvUmVzdWx0Iiwgc2V0QXVkaW9SZXN1
bHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBdXRoZW50aWNhdGlvblBhc3N3b3Jk
Iiwgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiLCBzZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCBkMmIzYTA0Li4y
ZjcxNWU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC05MCw3ICs5MCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wp
OwogICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wpOwogICAgIHZv
aWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwotICAg
IHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyk7
CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldENhY2hlTW9kZWwoaW50KTsKICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJv
b2wgc2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCmluZGV4IDYw
ODQ5ZDQuLmE0ZTcyNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCkBAIC01MDEsMTEgKzUwMSw2IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEodW5zaWduZWQgbG9uZyBsb25nKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlk
ZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBi
b29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKQogewogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKEJsYWNrQmVycnk6OldlYktpdDo6RHVt
cFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCksIGNhblByb3ZpZGVBbHBoYSwg
YWxwaGEsIGNhblByb3ZpZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAppbmRleCAwNzQ2ZTUyLi4z
MTJjMzFmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVm
bC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBA
IC01MzAsMTMgKzUzMCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNh
Y2hlcygpCiAgICAgZXdrX3NldHRpbmdzX2FwcGxpY2F0aW9uX2NhY2hlX2NsZWFyKCk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YSkKLXsKLSAgICBFd2tfU2VjdXJpdHlfT3JpZ2luKiBvcmlnaW4gPSBl
d2tfZnJhbWVfc2VjdXJpdHlfb3JpZ2luX2dldChicm93c2VyLT5tYWluRnJhbWUoKSk7Ci0gICAg
ZXdrX3NlY3VyaXR5X29yaWdpbl9hcHBsaWNhdGlvbl9jYWNoZV9xdW90YV9zZXQob3JpZ2luLCBx
dW90YSk7Ci0gICAgZXdrX3NlY3VyaXR5X29yaWdpbl9mcmVlKG9yaWdpbik7Ci19Ci0KIHZvaWQg
VGVzdFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKE9wYXF1ZUpTU3RyaW5n
KiB1cmwpCiB7CiAgICAgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luID0gZXdrX3NlY3VyaXR5
X29yaWdpbl9uZXdfZnJvbV9zdHJpbmcodXJsLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCBmNjcwOWQ1Li41
OTQyYmNjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0
ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBA
IC01NzUsMTEgKzU3NSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNh
Y2hlcygpCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNh
Y2hlIHF1b3Rhcy4KIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQotewotICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbiBjYWNoZSBxdW90YXMuCi19Ci0KIHZvaWQgVGVz
dFJ1bm5lcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKE9wYXF1ZUpTU3RyaW5nKikK
IHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgZGVsZXRpbmcgYWxsIGFwcGxp
Y2F0aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVz
dFJ1bm5lck1hYy5tbQppbmRleCBhNDZkNDI4Li4yOTFlNGFiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtMzk0LDEzICszOTQsNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiAg
ICAgW1dlYkFwcGxpY2F0aW9uQ2FjaGUgc2V0TWF4aW11bVNpemU6c2l6ZV07CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcg
bG9uZyBxdW90YSkKLXsKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAqb3JpZ2luID0gW1tXZWJTZWN1
cml0eU9yaWdpbiBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiXV07Ci0gICAgW1tvcmlnaW4gYXBwbGljYXRpb25DYWNoZVF1b3Rh
TWFuYWdlcl0gc2V0UXVvdGE6cXVvdGFdOwotICAgIFtvcmlnaW4gcmVsZWFzZV07Ci19Ci0KIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoYm9vbCBmbGFnKQog
ewogICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVmZXJlbmNlc10gc2V0QXV0aG9yQW5kVXNl
clN0eWxlc0VuYWJsZWQ6ZmxhZ107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5l
cldpbi5jcHAKaW5kZXggM2ZiMWM1YS4uMjE1NmMwMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzkwLDExICs3OTAsNiBAQCB2b2lkIFRlc3RSdW5u
ZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4pCiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGRlbGV0aW5nIGFsbCBhcHBsaWNhdGlv
biBjYWNoZSBmb3IgYW4gb3JpZ2luLgogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCi17Ci0gICAgLy8g
RklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGFwcGxpY2F0aW9uIGNhY2hlIHF1b3Rhcy4KLX0K
LQogSlNWYWx1ZVJlZiBUZXN0UnVubmVyOjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoSlND
b250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBnZXQgb3Jp
Z2lucyB0aGF0IGhhdmUgYXBwbGljYXRpb24gY2FjaGVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggZTI2MmIyNS4uN2I1YTdjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBA
IC0xMDgsNyArMTA4LDYgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0QXBw
Q2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CiAgICAgbG9uZyBsb25n
IGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oRE9NU3RyaW5nIG9yaWdpbik7CiAg
ICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oRE9NU3RyaW5nIG5hbWUpOwot
ICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9u
ZyBieXRlcyk7CiAgICAgdm9pZCBkaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1
b3RhKCk7CiAgICAgb2JqZWN0IG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSgpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAppbmRleCAyNWVjNjUyLi5iZDY5ZTA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTI2NCwxMiArMjY0LDYgQEAg
bG9uZyBsb25nIFRlc3RSdW5uZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4o
SlNTdHJpbmdSZWYgb3JpZ2luKQogICAgIHJldHVybiBXS0J1bmRsZUdldEFwcENhY2hlVXNhZ2VG
b3JPcmlnaW4oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCB0b1dLKG9yaWdpbiku
Z2V0KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXMpCi17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG9yaWdpbihBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIikpOwotICAgIFdLQnVuZGxlU2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgb3JpZ2luLmdldCgp
LCBieXRlcyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxp
Y2F0aW9uQ2FjaGVRdW90YSgpCiB7CiAgICAgbV9kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRp
b25DYWNoZVF1b3RhID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggZjBjY2I1NC4uNTM2YmJiOCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTE0MSw3ICsxNDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVG
b3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luKTsKICAgICB2b2lkIHNldEFwcENhY2hlTWF4aW11
bVNpemUodWludDY0X3QpOwogICAgIGxvbmcgbG9uZyBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdl
Rm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbik7Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsKICAgICB2b2lkIGRpc2FsbG93SW5j
cmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKICAgICBib29sIHNob3VsZERpc2FsbG93
SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKSB7IHJldHVybiBtX2Rpc2FsbG93SW5j
cmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGE7IH0KICAgICBKU1ZhbHVlUmVmIG9yaWdpbnNX
aXRoQXBwbGljYXRpb25DYWNoZSgpOwotLSAKMS44LjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>