<?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>70951</bug_id>
          
          <creation_ts>2011-10-26 11:41:38 -0700</creation_ts>
          <short_desc>IDL constants can&apos;t use [Reflect]</short_desc>
          <delta_ts>2011-11-01 18:52:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anna Cavender">annacc</reporter>
          <assigned_to name="Anna Cavender">annacc</assigned_to>
          <cc>abarth</cc>
    
    <cc>code.vineet</cc>
    
    <cc>darin</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491056</commentid>
    <comment_count>0</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-26 11:41:38 -0700</bug_when>
    <thetext>For an example, see WebCore/html/TextTrack.idl.  The [Reflect] is not honored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491223</commentid>
    <comment_count>1</comment_count>
      <attachid>112605</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-26 15:26:23 -0700</bug_when>
    <thetext>Created attachment 112605
patch for V8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491260</commentid>
    <comment_count>2</comment_count>
      <attachid>112605</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-26 16:28:51 -0700</bug_when>
    <thetext>Comment on attachment 112605
patch for V8

Can you add an attribute to a test IDL file to exercise the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491266</commentid>
    <comment_count>3</comment_count>
      <attachid>112605</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-26 16:32:41 -0700</bug_when>
    <thetext>Comment on attachment 112605
patch for V8

TestObj.idl in Source/WebCore/bindings/test.  You can run the tests with run-bindings-tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491667</commentid>
    <comment_count>4</comment_count>
      <attachid>112698</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-27 10:10:15 -0700</bug_when>
    <thetext>Created attachment 112698
Patch

Sure thing!  Thanks Adam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491671</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 10:14:09 -0700</bug_when>
    <thetext>Attachment 112698 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:179:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:1930:  jsTestObjCONST_REFLECTED is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:258:  jsTestObjCONST_REFLECTED is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:1401:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 4 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491728</commentid>
    <comment_count>6</comment_count>
      <attachid>112698</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-10-27 11:04:03 -0700</bug_when>
    <thetext>Comment on attachment 112698
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        * bindings/scripts/CodeGeneratorV8.pm:
&gt; +        (GenerateImplementation): check for [Reflect] and assign name accordingly.
&gt; +
&gt; +        * bindings/scripts/test/CPP/WebDOMTestObj.h: Update test file.
&gt; +        * bindings/scripts/test/JS/JSTestObj.cpp: Update test file.
&gt; +        (WebCore::jsTestObjCONST_REFLECTED):

Won&apos;t run-bindings-tests fail for every port that doesn&apos;t use V8 unless you also update the JSC code generator?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491764</commentid>
    <comment_count>7</comment_count>
      <attachid>112698</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-27 11:30:00 -0700</bug_when>
    <thetext>Comment on attachment 112698
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:13

&gt; 
&gt; Won&apos;t run-bindings-tests fail for every port that doesn&apos;t use V8 unless you also update the JSC code generator?

Yes.  Hmm, does that mean we&apos;ll need a change for each CodeGenerator* ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491768</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 11:36:29 -0700</bug_when>
    <thetext>run-bindings-tests keeps separate results for each code generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491772</commentid>
    <comment_count>9</comment_count>
      <attachid>112698</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 11:41:42 -0700</bug_when>
    <thetext>Comment on attachment 112698
Patch

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

Do we need this feature to work for JSC as well?

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:193
&gt; +        const [Reflect=CONST_CUSTOM] unsigned short CONST_REFLECTED = 0;

I would have used a number other than zero here, just because 0 is a special number that could come from lots of places.  You want to make sure this number makes it to the output file.

&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:1386
&gt; +    {&quot;CONST_CUSTOM&quot;, static_cast&lt;signed int&gt;(0)},

It looks like you&apos;ve got this backwards, right?  Reading this code CONST_CUSTOM is exposed to JavaScript, but TestObj::CONST_REFLECTED is used on the implementation object.  I would have expected the reverse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491782</commentid>
    <comment_count>10</comment_count>
      <attachid>112698</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-27 11:50:16 -0700</bug_when>
    <thetext>Comment on attachment 112698
Patch

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

Adam, yes, this will need to be implemented for JSC too.  I&apos;ll see what I can do.

&gt;&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:193
&gt;&gt; +        const [Reflect=CONST_CUSTOM] unsigned short CONST_REFLECTED = 0;
&gt; 
&gt; I would have used a number other than zero here, just because 0 is a special number that could come from lots of places.  You want to make sure this number makes it to the output file.

OK, will change.

&gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:1386
&gt;&gt; +    {&quot;CONST_CUSTOM&quot;, static_cast&lt;signed int&gt;(0)},
&gt; 
&gt; It looks like you&apos;ve got this backwards, right?  Reading this code CONST_CUSTOM is exposed to JavaScript, but TestObj::CONST_REFLECTED is used on the implementation object.  I would have expected the reverse.

I was confused by this too.  But, I just stole the method used by the other Reflect testers (e.g. attribute [Reflect=customContentStringAttr] DOMString reflectedStringAttr;).  I could make them more explicit.  How about CONST_JAVASCRIPT and CONST_IMPL ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491812</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 12:18:21 -0700</bug_when>
    <thetext>&gt; I was confused by this too.  But, I just stole the method used by the other Reflect testers (e.g. attribute [Reflect=customContentStringAttr] DOMString reflectedStringAttr;).  I could make them more explicit.  How about CONST_JAVASCRIPT and CONST_IMPL ?

Sure.

Another this we can do is to use this feature in a real IDL file and write a LayoutTest that verifies that the right name is exposed as part of the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492250</commentid>
    <comment_count>12</comment_count>
      <attachid>112817</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-27 22:55:54 -0700</bug_when>
    <thetext>Created attachment 112817
changes added to JSC + new layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492252</commentid>
    <comment_count>13</comment_count>
      <attachid>112817</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 22:59:35 -0700</bug_when>
    <thetext>Comment on attachment 112817
changes added to JSC + new layout test

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1116
&gt; -            my $getter = &quot;js&quot; . $interfaceName . $codeGenerator-&gt;WK_ucfirst($constant-&gt;name);
&gt; +            my $reflect = $constant-&gt;extendedAttributes-&gt;{&quot;Reflect&quot;};
&gt; +            my $name = $reflect ? $reflect : $constant-&gt;name;
&gt; +            my $getter = &quot;js&quot; . $interfaceName . $codeGenerator-&gt;WK_ucfirst($name);

Can we break this copy/paste code out into a function?

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:193
&gt; +        const [Reflect=CONST_JAVASCRIPT] unsigned short CONST_IMPL = 15;

Isn&apos;t this backwards?  The attribute should have the implementation name and the main declaration should have the API name that JavaScript sees.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492258</commentid>
    <comment_count>14</comment_count>
      <attachid>112817</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-27 23:13:49 -0700</bug_when>
    <thetext>Comment on attachment 112817
changes added to JSC + new layout test

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1116
&gt;&gt; +            my $getter = &quot;js&quot; . $interfaceName . $codeGenerator-&gt;WK_ucfirst($name);
&gt; 
&gt; Can we break this copy/paste code out into a function?

Yes, that would be better :).

&gt;&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:193
&gt;&gt; +        const [Reflect=CONST_JAVASCRIPT] unsigned short CONST_IMPL = 15;
&gt; 
&gt; Isn&apos;t this backwards?  The attribute should have the implementation name and the main declaration should have the API name that JavaScript sees.

No.  Checkout examples of &apos;for&apos; and &apos;default&apos; in HTMLLabelElement.idl and HTMLTrackElement.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492261</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 23:22:00 -0700</bug_when>
    <thetext>&gt; No.  Checkout examples of &apos;for&apos; and &apos;default&apos; in HTMLLabelElement.idl and HTMLTrackElement.idl

Those IDL files are wrong.  The stuff in the attribute value should be the implementation name and the stuff outside the attribute should be the name exposed to JavaScript.

If you remove all our implementation-specific attributs, the IDL files you&apos;re left with should match the specs.  The spec says:

           attribute boolean default;

not

           attribute boolean isDefault;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492269</commentid>
    <comment_count>16</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-27 23:43:07 -0700</bug_when>
    <thetext>Ah!  I understand better how this attribute is to be used.  Thanks Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492472</commentid>
    <comment_count>17</comment_count>
      <attachid>112869</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-10-28 08:48:22 -0700</bug_when>
    <thetext>Created attachment 112869
function for getting reflect name + swapping order</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492474</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 08:50:20 -0700</bug_when>
    <thetext>Attachment 112869 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/medi...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:1935:  jsTestObjCONST_IMPL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:258:  jsTestObjCONST_IMPL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492541</commentid>
    <comment_count>19</comment_count>
      <attachid>112869</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-28 11:11:08 -0700</bug_when>
    <thetext>Comment on attachment 112869
function for getting reflect name + swapping order

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

&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:1390
&gt; +    {&quot;CONST_IMPL&quot;, static_cast&lt;signed int&gt;(15)},

The JSC bindings look right, but this one still looks backwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493990</commentid>
    <comment_count>20</comment_count>
      <attachid>113188</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-01 10:21:05 -0700</bug_when>
    <thetext>Created attachment 113188
only modify the constant with the reflected name for implemenmtation value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493994</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 10:25:05 -0700</bug_when>
    <thetext>Attachment 113188 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/medi...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:1935:  jsTestObjCONST_JAVASCRIPT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:258:  jsTestObjCONST_JAVASCRIPT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494006</commentid>
    <comment_count>22</comment_count>
      <attachid>113188</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-01 10:39:27 -0700</bug_when>
    <thetext>Comment on attachment 113188
only modify the constant with the reflected name for implemenmtation value

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

I don’t understand the need for this [Reflect=XXX] feature for constants. Why can’t we use the ALL CAPS form inside our DOM code too?

&gt; Source/WebCore/bindings/scripts/CodeGenerator.pm:572
&gt; +            my $name =  $reflect ? $reflect : $constant-&gt;name;

Extra space here after the &quot;=&quot; sign.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494024</commentid>
    <comment_count>23</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-01 11:00:07 -0700</bug_when>
    <thetext>Darin,

Sorry I didn&apos;t include the context/reasoning here.

We need the [Reflect] because of some weird windows defines that conflict with the enums defined in TextTrack.idl: (I believe it was TextTrack::ERROR that it didn&apos;t like).  I tried to hunt down the original error that broke the build, but the old link no longer works.

Because we want to use TextTrack::ERROR to match the spec, the Reflect would be a really nice option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494052</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-01 11:54:29 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; We need the [Reflect] because of some weird windows defines that conflict with the enums defined in TextTrack.idl: (I believe it was TextTrack::ERROR that it didn&apos;t like).

Yes, that should indeed be included in the change log and maybe even a comment in the IDL file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494164</commentid>
    <comment_count>25</comment_count>
      <attachid>113223</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-01 14:33:02 -0700</bug_when>
    <thetext>Created attachment 113223
fixing = typo and adding better description in changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494167</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 14:36:07 -0700</bug_when>
    <thetext>Attachment 113223 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/medi...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:1935:  jsTestObjCONST_JAVASCRIPT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebCore/bindings/scripts/test/JS/JSTestObj.h:258:  jsTestObjCONST_JAVASCRIPT is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494201</commentid>
    <comment_count>27</comment_count>
      <attachid>113223</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-01 15:20:27 -0700</bug_when>
    <thetext>Comment on attachment 113223
fixing = typo and adding better description in changelog

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

&gt; Source/WebCore/html/TextTrack.idl:46
&gt; +        const [Reflect=None] unsigned short NONE = 0;
&gt; +        const [Reflect=Loading] unsigned short LOADING = 1;
&gt; +        const [Reflect=Loaded] unsigned short LOADED = 2;
&gt; +        const [Reflect=Error] unsigned short ERROR = 3;
&gt;          readonly attribute unsigned short readyState;
&gt;  
&gt; -        const [Reflect=DISABLED] unsigned short Disabled = 0;
&gt; -        const [Reflect=HIDDEN] unsigned short Hidden = 1;
&gt; -        const [Reflect=SHOWING] unsigned short Showing = 2;
&gt; +        const [Reflect=Disabled] unsigned short DISABLED = 0;
&gt; +        const [Reflect=Hidden] unsigned short HIDDEN = 1;
&gt; +        const [Reflect=Showing] unsigned short SHOWING = 2;

Given that ERROR is the one that conflicts, do we need to rename all the others?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494253</commentid>
    <comment_count>28</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-01 16:01:45 -0700</bug_when>
    <thetext>I just figured it was a good opportunity to better conform to other WebKit enums that do not use all caps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494294</commentid>
    <comment_count>29</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-01 16:39:59 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; I just figured it was a good opportunity to better conform to other WebKit enums that do not use all caps.

I think that’s not a great idea. Generally our DOM bindings use the names from the DOM itself, and don’t try to conform with WebKit coding style.

If we did want to do that in general, then we’d probably make the default mapping convert from all uppercase to mixed case rather than doing it on a case by case basis for each DOM enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494318</commentid>
    <comment_count>30</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-01 17:06:10 -0700</bug_when>
    <thetext>OK, that&apos;s fine.  I&apos;ll change TextTrack.idl to only use [Reflect] for ERROR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494347</commentid>
    <comment_count>31</comment_count>
      <attachid>113264</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-01 17:29:53 -0700</bug_when>
    <thetext>Created attachment 113264
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494397</commentid>
    <comment_count>32</comment_count>
      <attachid>113264</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 18:52:52 -0700</bug_when>
    <thetext>Comment on attachment 113264
Patch for landing

Clearing flags on attachment: 113264

Committed r99027: &lt;http://trac.webkit.org/changeset/99027&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494398</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 18:52:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112605</attachid>
            <date>2011-10-26 15:26:23 -0700</date>
            <delta_ts>2011-10-27 10:10:11 -0700</delta_ts>
            <desc>patch for V8</desc>
            <filename>bug-70951-20111026152622.patch</filename>
            <type>text/plain</type>
            <size>1495</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1MjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MmMzMDJjZjAyYjExMTJk
MzYyYmZlNTM3ZTgxYTI1ZmFjZjdiOTlmLi5mMGM3OTI4N2M5MmQyMDEzMjgwYTljZjU5ZDdlZjE1
ODE5YjIwYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMjYgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMgZm9yIFY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKwogMjAxMS0xMC0yNiAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1
MDc3NT4gUkVHUkVTU0lPTiAocjk3MDMyKTogU2xpZGVyIHRodW1iIGlzIG5vdCBkcmF3bgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpp
bmRleCA2ODAzZmMxOGM0NGMzYmYzMWQ2OGIzOTRiM2RkZTA3YTVhYWY4NzkxLi4xM2M0ZTVhNzg3
ZDhjMTkzNTI3ZWZjN2ExM2UzYTQyMThkNzYxZDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjExNSw3ICsyMTE1LDgg
QEAgRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0IEJhdGNoZWRD
b25zdGFudCAke2ludGVyZmFjZU5hbWV9Q29uc3RzW10gPSB7XG4iKTsKICAgICB9CiAgICAgZm9y
ZWFjaCBteSAkY29uc3RhbnQgKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9KSB7Ci0gICAgICAgIG15
ICRuYW1lID0gJGNvbnN0YW50LT5uYW1lOworICAgICAgICBteSAkcmVmbGVjdCA9ICRjb25zdGFu
dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKKyAgICAgICAgbXkgJG5hbWUgPSAk
cmVmbGVjdCBlcSAiIiA/ICRjb25zdGFudC0+bmFtZSA6ICRyZWZsZWN0OwogICAgICAgICBteSAk
dmFsdWUgPSAkY29uc3RhbnQtPnZhbHVlOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRjb25zdGFu
dC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzOwogICAgICAgICBpZiAoJGF0dHJFeHQtPnsiRW5hYmxlZEF0
UnVudGltZSJ9KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112698</attachid>
            <date>2011-10-27 10:10:15 -0700</date>
            <delta_ts>2011-10-27 22:55:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70951-20111027101013.patch</filename>
            <type>text/plain</type>
            <size>10346</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1OTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjY2NhZmRjMjYwZDVkODVj
MDBlOGE0NWJiMTNiMmVlNjMxY2UzMzc1Li4zMDE2MTdhMzFlZjUzYTZkNjg5YzA1YWQwNGUxODI3
NjAwYzI4OWM2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMjcgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMgZm9yIFY4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKTogY2hlY2sgZm9yIFtSZWZsZWN0XSBh
bmQgYXNzaWduIG5hbWUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaDogVXBkYXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogVXBkYXRlIHRlc3QgZmlsZS4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNPTlNUX1JFRkxFQ1RFRCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOiBVcGRhdGUgdGVzdCBmaWxlLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDogVXBkYXRl
IHRlc3QgZmlsZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6
IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHA6IFVwZGF0ZSB0ZXN0IGZpbGUuCisKIDIwMTEtMTAtMjcgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICB1c2UgbWFpbi9jcm9zcyBpbnN0ZWFkIG9m
IGxvZ2ljYWwgd2lkdGgvaGVpZ2h0IHdoZW4gdGFsa2luZyBhYm91dCBmbG93IGRpcmVjdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCA5ZmIyN2M1NDNkZDVlYmZlMjE1ZDk5NjYwYjdkNDEwNTU0M2I3MTkwLi40NWE2Yzlm
ODYxNTNjM2Y0OTA3MTQ4NjFjNmM5YzBmMzIxODYzMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjExOCw3ICsyMTE4
LDggQEAgRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0IEJhdGNo
ZWRDb25zdGFudCAke2ludGVyZmFjZU5hbWV9Q29uc3RzW10gPSB7XG4iKTsKICAgICB9CiAgICAg
Zm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9KSB7Ci0gICAgICAg
IG15ICRuYW1lID0gJGNvbnN0YW50LT5uYW1lOworICAgICAgICBteSAkcmVmbGVjdCA9ICRjb25z
dGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKKyAgICAgICAgbXkgJG5hbWUg
PSAkcmVmbGVjdCA/ICRyZWZsZWN0IDogJGNvbnN0YW50LT5uYW1lOwogICAgICAgICBteSAkdmFs
dWUgPSAkY29uc3RhbnQtPnZhbHVlOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRjb25zdGFudC0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzOwogICAgICAgICBpZiAoJGF0dHJFeHQtPnsiRW5hYmxlZEF0UnVu
dGltZSJ9KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCmluZGV4IDBiNDhiM2I3NmY1NmM1NDAzNTA5NDMxNjM3
MTY1OWQ4MWYzOTYzMDguLmQ4OTk0OTc5ZmNjMmY1ZWM4NDlmOTY2YTNjNDU4NGY5MTYxOGNhNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9D
UFAvV2ViRE9NVGVzdE9iai5oCkBAIC01OCw3ICs1OCw4IEBAIHB1YmxpYzoKICAgICAgICAgV0VC
RE9NX0NPTlNUX1ZBTFVFXzExID0gMHhmZmZmZmZmZiwKICAgICAgICAgV0VCRE9NX0NPTlNUX1ZB
TFVFXzEyID0gMHgwMSwKICAgICAgICAgV0VCRE9NX0NPTlNUX1ZBTFVFXzEzID0gMFgyMCwKLSAg
ICAgICAgV0VCRE9NX0NPTlNUX1ZBTFVFXzE0ID0gMHgxYWJjCisgICAgICAgIFdFQkRPTV9DT05T
VF9WQUxVRV8xNCA9IDB4MWFiYywKKyAgICAgICAgV0VCRE9NX0NPTlNUX1JFRkxFQ1RFRCA9IDAK
ICAgICB9OwogCiAgICAgaW50IHJlYWRPbmx5SW50QXR0cigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRl
eCBjNDk4NWFlMmVjZWFmNGUyNTg2OTIxYWZjN2YyMmQ5ZGYyNmJjMzg3Li41ODllNTA2OGY4NTJh
YTM1MjkwN2ExNjljNTYzMzk4YTNmMDhiMTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTU4LDYgKzE1OCw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxl
VmFsdWVzW10gPQogICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNPTlNUX1ZBTFVFXzEyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJ
TlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAgVEhVTktfR0VO
RVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZB
TFVFXzE0IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KSwgKGludHB0
cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAor
ICAgIHsgIkNPTlNUX1JFRkxFQ1RFRCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9S
RUZMRUNURUQpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6
Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAwLCAwLCAwLCAwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRS
SU5TSUMoREZHOjpOb0ludHJpbnNpYykgfQogfTsKIApAQCAtMTc1LDYgKzE3Niw3IEBAIENPTVBJ
TEVfQVNTRVJUKDB4ZmZmZmZmZmYgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTEsIFRlc3RPYmpF
bnVtQ09OU1RfVkFMVUVfMTFJCiBDT01QSUxFX0FTU0VSVCgweDAxID09IFRlc3RPYmo6OkNPTlNU
X1ZBTFVFXzEyLCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzEySXNXcm9uZ1VzZURvbnRDaGVja0Vu
dW1zKTsKIENPTVBJTEVfQVNTRVJUKDBYMjAgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTMsIFRl
c3RPYmpFbnVtQ09OU1RfVkFMVUVfMTNJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOwogQ09NUElM
RV9BU1NFUlQoMHgxYWJjID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzE0LCBUZXN0T2JqRW51bUNP
TlNUX1ZBTFVFXzE0SXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKK0NPTVBJTEVfQVNTRVJUKDAg
PT0gVGVzdE9iajo6Q09OU1RfUkVGTEVDVEVELCBUZXN0T2JqRW51bUNPTlNUX1JFRkxFQ1RFRElz
V3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iakNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9y
T2JqZWN0OjpzX2luZm8sICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdE9iakNvbnN0cnVjdG9yKSB9OwogCkBAIC0yMjUsNiArMjI3LDcgQEAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQogICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNP
TlNUX1ZBTFVFXzEyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhE
Rkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9S
KDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzE0
IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KSwgKGludHB0cl90KTAg
VEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAorICAgIHsg
IkNPTlNUX1JFRkxFQ1RFRCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9SRUZMRUNU
RUQpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRy
aW5zaWMpIH0sCiAgICAgeyAidm9pZE1ldGhvZCIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZvaWRNZXRob2QpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lD
KERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAidm9pZE1ldGhvZFdpdGhBcmdzIiwgRG9udERl
bGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMg
VEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsg
ImludE1ldGhvZCIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkludE1ldGhvZCksIChp
bnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykg
fSwKQEAgLTI3NCw3ICsyNzcsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB9OwogCiAjdW5kZWYgVEhVTktfR0VORVJBVE9S
Ci1zdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBl
VGFibGUgPSB7IDEzNywgMTI3LCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9Owor
c3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIEpTVGVzdE9ialByb3RvdHlwZVRh
YmxlID0geyAxMzgsIDEyNywgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAgfTsKIGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RPYmpQcm90
b3R5cGUiLCAmSlNDOjpKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sICZKU1Rlc3RPYmpQcm90b3R5
cGVUYWJsZSwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmpQcm90b3R5cGUpIH07CiAK
IEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtMTkyNCw2ICsxOTI3LDEyIEBAIEpTVmFsdWUg
anNUZXN0T2JqQ09OU1RfVkFMVUVfMTQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJ
ZGVudGlmaWVyJikKICAgICByZXR1cm4ganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50PigweDFhYmMp
KTsKIH0KIAorSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9SRUZMRUNURUQoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CisgICAgcmV0dXJuIGpzTnVtYmVyKHN0YXRpY19jYXN0PGludD4oMCkpOworfQorCiBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVGVzdE9iaiogaW1wbCkKIHsKICAgICByZXR1cm4gd3JhcDxKU1Rlc3RPYmo+KGV4
ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggOWNkYTA4NmY0ZWUwNWUyN2JkOGI2
NjcyM2U3ZDJkMDAzNjQ3ODYwNi4uNzgwOWRjNzM4OGQ2MDVhM2Y3YmUwMTVkOWZkZjNjNmNlYmZh
ZTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaApAQCAtMjU1LDYgKzI1NSw3IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpD
T05TVF9WQUxVRV8xMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJ
CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMTIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogSlNDOjpKU1ZhbHVlIGpzVGVz
dE9iakNPTlNUX1ZBTFVFXzEzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xNChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CitK
U0M6OkpTVmFsdWUganNUZXN0T2JqQ09OU1RfUkVGTEVDVEVEKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmgKaW5kZXggNTg2ZTAwMjM2NzY4MDg3MWVlODM1YzFkMjc5Mzc1NzEw
NzdlMjEzNi4uNWVhN2VjMjY0MjAwNjc2MjE1YTIyM2NjOGMyZmM2MjM5YzMwYmNmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaApAQCAtNDksNyArNDksOCBAQCBlbnVtIHsKICAgICBET01fQ09OU1RfVkFMVUVfMTEg
PSAweGZmZmZmZmZmLAogICAgIERPTV9DT05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAgRE9NX0NP
TlNUX1ZBTFVFXzEzID0gMFgyMCwKLSAgICBET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMKKyAg
ICBET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMsCisgICAgRE9NX0NPTlNUX1JFRkxFQ1RFRCA9
IDAKIH07CiAKIEBpbnRlcmZhY2UgRE9NVGVzdE9iaiA6IERPTU9iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDIyNDJkZWU0
MGE4ZGQ5YzJhOWQ5MmQwODFhY2JmYzNkODFkZTM4OTcuLmY2YTBhYmQzNGQ3YzdlOTAwYjU3MDE2
ODU3NGIxYjAxNzJmYmI1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTE5MCw1ICsxOTAsNiBAQCBtb2R1bGUgdGVzdCB7CiAg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUX1ZBTFVFXzEyID0gMHgwMTsKICAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTMgPSAwWDIwOwogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xNCA9IDB4MWFiYzsKKyAgICAgICAgY29u
c3QgW1JlZmxlY3Q9Q09OU1RfQ1VTVE9NXSB1bnNpZ25lZCBzaG9ydCBDT05TVF9SRUZMRUNURUQg
PSAwOwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDAxMjM5MTcxNGNiYTIxOTBkOTU3NTg1MzAz
Y2Y2Y2QyZTc5NGQ5MzkuLjEwYmQ5MDNjN2Y3ZTg5MGNhMmU3ZmU2YzRlMTU0NWIwODJmZTBlZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCkBAIC0xMzgzLDYgKzEzODMsNyBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZENv
bnN0YW50IFRlc3RPYmpDb25zdHNbXSA9IHsKICAgICB7IkNPTlNUX1ZBTFVFXzEyIiwgc3RhdGlj
X2Nhc3Q8c2lnbmVkIGludD4oMHgwMSl9LAogICAgIHsiQ09OU1RfVkFMVUVfMTMiLCBzdGF0aWNf
Y2FzdDxzaWduZWQgaW50PigwWDIwKX0sCiAgICAgeyJDT05TVF9WQUxVRV8xNCIsIHN0YXRpY19j
YXN0PHNpZ25lZCBpbnQ+KDB4MWFiYyl9LAorICAgIHsiQ09OU1RfQ1VTVE9NIiwgc3RhdGljX2Nh
c3Q8c2lnbmVkIGludD4oMCl9LAogfTsKIAogCkBAIC0xMzk3LDYgKzEzOTgsNyBAQCBDT01QSUxF
X0FTU0VSVCgweGZmZmZmZmZmID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzExLCBUZXN0T2JqRW51
bUNPTlNUX1ZBTFVFXzExSQogQ09NUElMRV9BU1NFUlQoMHgwMSA9PSBUZXN0T2JqOjpDT05TVF9W
QUxVRV8xMiwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xMklzV3JvbmdVc2VEb250Q2hlY2tFbnVt
cyk7CiBDT01QSUxFX0FTU0VSVCgwWDIwID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzEzLCBUZXN0
T2JqRW51bUNPTlNUX1ZBTFVFXzEzSXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKIENPTVBJTEVf
QVNTRVJUKDB4MWFiYyA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xNCwgVGVzdE9iakVudW1DT05T
VF9WQUxVRV8xNElzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CitDT01QSUxFX0FTU0VSVCgwID09
IFRlc3RPYmo6OkNPTlNUX1JFRkxFQ1RFRCwgVGVzdE9iakVudW1DT05TVF9SRUZMRUNURURJc1dy
b25nVXNlRG9udENoZWNrRW51bXMpOwogCiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112817</attachid>
            <date>2011-10-27 22:55:54 -0700</date>
            <delta_ts>2011-10-28 08:48:17 -0700</delta_ts>
            <desc>changes added to JSC + new layout test</desc>
            <filename>bug-70951-20111027225553.patch</filename>
            <type>text/plain</type>
            <size>38081</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NTg3ZTIxOWVlMjc1Yjlj
ZWE4N2I4ODMxMjAxY2NiMGI0YmY2NjI3Li41NjhiOWYzYjcwYjFhOTI3ODhmZmNhYmNmZjcxZTY3
NmRhY2UxMmNkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjcgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOiBjaGVjayBmb3IgW1JlZmxlY3RdIGFuZCBhc3NpZ24gbmFtZSBhY2NvcmRp
bmdseS4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBjaGVjayBmb3IgW1JlZmxl
Y3RdIGFuZCBhc3NpZ24gbmFtZSBhY2NvcmRpbmdseS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24p
OiBjaGVjayBmb3IgW1JlZmxlY3RdIGFuZCBhc3NpZ24gbmFtZSBhY2NvcmRpbmdseS4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOiBVcGRhdGUg
dGVzdCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwOiBVcGRhdGUgdGVzdCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDogVXBkYXRlIHRlc3QgZmls
ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogVXBk
YXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmg6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5oOiBVcGRhdGUgdGVzdCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDogVXBkYXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDogVXBkYXRlIHRlc3QgZmlsZS4K
KwogMjAxMS0xMC0yNyAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgR2VuZXJhdGUgV2ViS2l0Q1NTTWF0cml4IGNvbnN0cnVjdG9yIGZvciBKU0MgYnkgW0Nv
bnN0cnVjdG9yXSBJREwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZWEzYWFhYWE0OTJmNDY2YjU2MDIyOGJlZGM5MTc1MTc1
YTc2MTIyMC4uOTExNGJlNzEwZjMwNTkxOGQ1YWM4YzE4OWM4NjQ2MjUxMmZmOTE0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTExMTEsNyArMTExMSw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkbnVtQ29u
c3RhbnRzID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIvLyBDb25zdGFudHNc
blxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRhTm9kZS0+Y29uc3Rh
bnRzfSkgewotICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAu
ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjb25zdGFudC0+bmFtZSk7CisgICAgICAgICAg
ICBteSAkcmVmbGVjdCA9ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3Qi
fTsKKyAgICAgICAgICAgIG15ICRuYW1lID0gJHJlZmxlY3QgPyAkcmVmbGVjdCA6ICRjb25zdGFu
dC0+bmFtZTsKKyAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7XG4iKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTEzNTQsOCArMTM1NiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAg
ICAgICAgICMgRklYTUU6IHdlIHNob3VsZCBub3QgbmVlZCBhIGZ1bmN0aW9uIGZvciBldmVyeSBj
b25zdGFudC4KICAgICAgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGRhdGFOb2RlLT5jb25z
dGFudHN9KSB7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgJGNvbnN0YW50LT5uYW1lKTsK
LSAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkY29uc3RhbnQtPm5hbWUpOworICAgICAgICAgICAgbXkgJHJl
ZmxlY3QgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07CisgICAg
ICAgICAgICBteSAkbmFtZSA9ICRyZWZsZWN0ID8gJHJlZmxlY3QgOiAkY29uc3RhbnQtPm5hbWU7
CisgICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgJG5hbWUpOworICAgICAgICAgICAgbXkgJGdl
dHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRuYW1lKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwogICAgICAg
ICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hTcGVj
aWFscywgIkRvbnREZWxldGUgfCBSZWFkT25seSIpOwpAQCAtMTM4Myw4ICsxMzg3LDEwIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIEZJWE1FOiB3ZSBzaG91bGQgbm90IG5l
ZWQgYSBmdW5jdGlvbiBmb3IgZXZlcnkgY29uc3RhbnQuCiAgICAgZm9yZWFjaCBteSAkY29uc3Rh
bnQgKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9KSB7Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAk
Y29uc3RhbnQtPm5hbWUpOwotICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VO
YW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNvbnN0YW50LT5uYW1lKTsKKyAgICAg
ICAgbXkgJHJlZmxlY3QgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0
In07CisgICAgICAgIG15ICRuYW1lID0gJHJlZmxlY3QgPyAkcmVmbGVjdCA6ICRjb25zdGFudC0+
bmFtZTsKKyAgICAgICAgcHVzaChAaGFzaEtleXMsICRuYW1lKTsKKyAgICAgICAgbXkgJGdldHRl
ciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRu
YW1lKTsKICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7CiAgICAgICAgIHB1c2go
QGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgIkRvbnREZWxl
dGUgfCBSZWFkT25seSIpOwpAQCAtMjA3Miw3ICsyMDc4LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIvLyBDb25zdGFudCBnZXR0ZXJz
XG5cbiIpOwogCiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRhTm9kZS0+Y29u
c3RhbnRzfSkgewotICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFt
ZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjb25zdGFudC0+bmFtZSk7CisgICAgICAg
ICAgICBteSAkcmVmbGVjdCA9ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxl
Y3QifTsKKyAgICAgICAgICAgIG15ICRuYW1lID0gJHJlZmxlY3QgPyAkcmVmbGVjdCA6ICRjb25z
dGFudC0+bmFtZTsKKyAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAKICAgICAgICAgICAgICMg
RklYTUU6IHRoaXMgY2FzdHMgaW50byBpbnQgdG8gbWF0Y2ggb3VyIHByZXZpb3VzIGJlaGF2aW9y
IHdoaWNoIHR1cm5lZCAweEZGRkZGRkZGIGluIC0xIGZvciBOb2RlRmlsdGVyLlNIT1dfQUxMCiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtnZXR0ZXJ9KEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpXG4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMWI1NTQ4
OTU2MWM4NDBjODllNjc1OTk4NjUyZjRiNzIwMzYzNWU1Zi4uYThmYjVkMDgxYWYwOGJlZjZlNzdh
ZDE3MTU2OWFmNmM1ZmUyMDExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTIxMjEsNyArMjEyMSw4IEBAIEVORAogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0YXRpYyBjb25zdCBCYXRjaGVkQ29uc3RhbnQgJHtp
bnRlcmZhY2VOYW1lfUNvbnN0c1tdID0ge1xuIik7CiAgICAgfQogICAgIGZvcmVhY2ggbXkgJGNv
bnN0YW50IChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSkgewotICAgICAgICBteSAkbmFtZSA9ICRj
b25zdGFudC0+bmFtZTsKKyAgICAgICAgbXkgJHJlZmxlY3QgPSAkY29uc3RhbnQtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJSZWZsZWN0In07CisgICAgICAgIG15ICRuYW1lID0gJHJlZmxlY3QgPyAk
cmVmbGVjdCA6ICRjb25zdGFudC0+bmFtZTsKICAgICAgICAgbXkgJHZhbHVlID0gJGNvbnN0YW50
LT52YWx1ZTsKICAgICAgICAgbXkgJGF0dHJFeHQgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0cmli
dXRlczsKICAgICAgICAgaWYgKCRhdHRyRXh0LT57IkVuYWJsZWRBdFJ1bnRpbWUifSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TVRlc3RPYmouaAppbmRleCAwYjQ4YjNiNzZmNTZjNTQwMzUwOTQzMTYzNzE2NTlkODFmMzk2MzA4
Li5lYWQ4ZGFkODIzNGNiMmQyMDE2MmM3OGEwN2QwYzVjYjQ2OTBjZDU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouaApAQCAtNTgsNyArNTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxV
RV8xMSA9IDB4ZmZmZmZmZmYsCiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMiA9IDB4MDEs
CiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMyA9IDBYMjAsCi0gICAgICAgIFdFQkRPTV9D
T05TVF9WQUxVRV8xNCA9IDB4MWFiYworICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTQgPSAw
eDFhYmMsCisgICAgICAgIFdFQkRPTV9DT05TVF9JTVBMID0gMTUKICAgICB9OwogCiAgICAgaW50
IHJlYWRPbmx5SW50QXR0cigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBlNmZj
ODk2YzY5ZmM3ZmNmZDUyNjY2MGQ4MzRmZDE3YzJmOTg0N2VhLi4zNjYxNDc2NGZmODg3YTU5Mjk2
MGNjNjliMjhmMmVhN2Q2ZjIxMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMTA1LDEw
ICsxMDUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0SW50ZXJmYWMKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVU
eXBlRXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGNvbnN0IFN0cmluZyYgc3RyMSh1c3RyaW5nVG9TdHJpbmcoZXhlYy0+
YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKKyAgICBjb25zdCBTdHJpbmcmIHN0cjEodXN0
cmluZ1RvU3RyaW5nKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1Vu
ZGVmaW5lZCkuaXNFbXB0eSgpID8gVVN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKS50b1N0cmluZyhleGVjKSkpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIHN0cjIodXN0cmluZ1RvU3RyaW5nKGV4ZWMt
PmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgY29uc3QgU3RyaW5nJiBzdHIyKHVz
dHJpbmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNV
bmRlZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsIDEsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYykpKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGpzQ29u
c3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCA3OTQ4Nzk3ZDA2YmFlMzhlYmEyZDAwMmM5
YzZhNzg4NjNhYTcxYjgwLi43YTVhZmE5MTljY2JjOWM2NmM0MGMzZDk0MWMyODNiMGM4ZTZiYThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0x
ODYsNyArMTg2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QKICAgICBKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnNf
aW5mbyk7CiAgICAgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGltcCA9IHN0YXRpY19jYXN0
PFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBS
ZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbGlzdGVuZXIoTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6Y3JlYXRlKFNjcmlwdFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+YXJndW1l
bnQoMCkpKSk7CisgICAgUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyKE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZShTY3JpcHRWYWx1ZShleGVjLT5nbG9iYWxEYXRh
KCksIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkp
KSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcC0+bWV0aG9kKGxpc3RlbmVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKaW5kZXggNWYxYzU0NTlmZjAwZWZmN2UwMTYwN2JkOGNiNzZlNzYwNjEzNjdmMy4uMzNl
NmFjYmVkNjk3N2M3MTllNGIwMGJlZDNiN2Y2NmVjN2RkYWZlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE1
OCw2ICsxNTgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqQ29uc3Ry
dWN0b3JUYWJsZVZhbHVlc1tdID0KICAgICB7ICJDT05TVF9WQUxVRV8xMiIsIERvbnREZWxldGUg
fCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMiksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRP
UigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJDT05TVF9WQUxVRV8x
MyIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMyksIChpbnRwdHJfdCkw
IFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7
ICJDT05TVF9WQUxVRV8xNCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8x
NCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJp
bnNpYykgfSwKKyAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5U
UklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAwLCAwLCAwLCAwIFRIVU5LX0dFTkVS
QVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfQogfTsKIApAQCAtMTc1LDYgKzE3
Niw3IEBAIENPTVBJTEVfQVNTRVJUKDB4ZmZmZmZmZmYgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVf
MTEsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTFJCiBDT01QSUxFX0FTU0VSVCgweDAxID09IFRl
c3RPYmo6OkNPTlNUX1ZBTFVFXzEyLCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzEySXNXcm9uZ1Vz
ZURvbnRDaGVja0VudW1zKTsKIENPTVBJTEVfQVNTRVJUKDBYMjAgPT0gVGVzdE9iajo6Q09OU1Rf
VkFMVUVfMTMsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTNJc1dyb25nVXNlRG9udENoZWNrRW51
bXMpOwogQ09NUElMRV9BU1NFUlQoMHgxYWJjID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzE0LCBU
ZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzE0SXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKK0NPTVBJ
TEVfQVNTRVJUKDE1ID09IFRlc3RPYmo6OkNPTlNUX0lNUEwsIFRlc3RPYmpFbnVtQ09OU1RfSU1Q
TElzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iakNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVj
dG9yT2JqZWN0OjpzX2luZm8sICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdE9iakNvbnN0cnVjdG9yKSB9OwogCkBAIC0yMjUsNiArMjI3LDcg
QEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
akNPTlNUX1ZBTFVFXzEyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJ
QyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJB
VE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVF
XzE0IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KSwgKGludHB0cl90
KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAorICAg
IHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFW
QVNDUklQVCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpO
b0ludHJpbnNpYykgfSwKICAgICB7ICJ2b2lkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9u
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVm9pZE1ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRS
SU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBE
b250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRy
X3QpMyBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAg
ICAgeyAiaW50TWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uSW50TWV0aG9k
KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmlu
c2ljKSB9LApAQCAtNzkwLDcgKzc5Myw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlCiB7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09i
amVjdCk7CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRo
aXMtPmltcGwoKSk7Ci0gICAgaW1wLT5zZXRTdHJpbmdBdHRyKHVzdHJpbmdUb1N0cmluZyh2YWx1
ZS50b1N0cmluZyhleGVjKSkpOworICAgIGltcC0+c2V0U3RyaW5nQXR0cih1c3RyaW5nVG9TdHJp
bmcodmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUudG9TdHJpbmcoZXhlYykpKTsK
IH0KIAogCkBAIC05MzEsNyArOTM0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2IKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNldFN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJpbmdUb1N0cmluZyh2YWx1ZS50b1N0cmluZyhleGVj
KSksIGVjKTsKKyAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJp
bmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhl
eGVjKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogfQogCkBAIC05NDEs
NyArOTQ0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2IKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2Jq
KiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKHVzdHJpbmdUb1N0cmluZyh2YWx1ZS50b1N0cmluZyhleGVjKSksIGVjKTsKKyAgICBp
bXAtPnNldFN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKHVzdHJpbmdUb1N0cmluZyh2YWx1
ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKSksIGVjKTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogfQogCkBAIC0xMDQyLDEzICsxMDQ1LDEzIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGludCBpbnRBcmcoZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKSk7CisgICAgaW50
IGludEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmlu
ZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBjb25zdCBTdHJp
bmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhl
YykpKTsKKyAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoZXhlYywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBV
U3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRl
ZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcodG9UZXN0T2JqKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDIsIE1pc3NpbmdJ
c1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wLT52b2lkTWV0aG9k
V2l0aEFyZ3MoaW50QXJnLCBzdHJBcmcsIG9iakFyZyk7CkBAIC0xMDc2LDEzICsxMDc5LDEzIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25J
bnRNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGludCBpbnRBcmcoZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKSk7CisgICAgaW50
IGludEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmlu
ZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBjb25zdCBTdHJp
bmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhl
YykpKTsKKyAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoZXhlYywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBV
U3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRl
ZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcodG9UZXN0T2JqKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDIsIE1pc3NpbmdJ
c1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTExMTEsMTMgKzExMTQs
MTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAg
ICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7Ci0gICAgaW50IGludEFyZyhleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpKTsKKyAg
ICBpbnQgaW50QXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1Vu
ZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGNvbnN0
IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgxKS50b1N0cmlu
ZyhleGVjKSkpOworICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0cmluZyhNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpLmlzRW1wdHko
KSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIE1pc3NpbmdJ
c1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYykpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMiwgTWlz
c2luZ0lzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTEzNSwxMCAr
MTEzOCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncwogICAgIFRlc3RPYmoqIGltcCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0cmluZyhleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOworICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
KHVzdHJpbmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5n
SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYykpKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1
bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMSwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIApAQCAtMTE1NywxMCArMTE2MCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMi
KSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgY29uc3QgU3RyaW5nJiBzdHJBcmco
dXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAg
Y29uc3QgU3RyaW5nJiBzdHJBcmcodXN0cmluZ1RvU3RyaW5nKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkuaXNFbXB0eSgpID8gVVN0cmluZygpIDog
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKS50b1N0
cmluZyhleGVjKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmco
dG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKHRvVGVz
dE9iaihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQp
KSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0xMTc3LDcgKzExODAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXpl
ZFZhbHVlKEV4ZWNTdGF0ZQogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0
PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkQXJnKFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZEFyZyhTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNy
ZWF0ZShleGVjLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRl
ZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcC0+c2VyaWFsaXplZFZhbHVl
KHNlcmlhbGl6ZWRBcmcpOwpAQCAtMTE5Miw3ICsxMTk1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbklkYktleShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4o
YXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0
ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOwogICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIFJlZlB0cjxJREJLZXk+IGtl
eShjcmVhdGVJREJLZXlGcm9tVmFsdWUoZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBS
ZWZQdHI8SURCS2V5PiBrZXkoY3JlYXRlSURCS2V5RnJvbVZhbHVlKGV4ZWMsIE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaW1wLT5pZGJLZXkoa2V5KTsKQEAgLTEyMDcsNyArMTIxMCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRp
b25zT2JqZWN0KEV4ZWNTdGF0ZSoKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAgICAgVGVzdE9i
aiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAg
T3B0aW9uc09iamVjdCogb28odG9PcHRpb25zT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDApKSk7Cisg
ICAgT3B0aW9uc09iamVjdCogb28odG9PcHRpb25zT2JqZWN0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAKQEAgLTEyMTcsNyArMTIyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KEV4ZWNTdGF0ZSoKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICBPcHRp
b25zT2JqZWN0KiBvb28odG9PcHRpb25zT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAg
T3B0aW9uc09iamVjdCogb29vKHRvT3B0aW9uc09iamVjdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIGltcC0+b3B0aW9uc09iamVjdChvbywgb29vKTsKQEAgLTEyNzAsNyArMTI3Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0
b21BcmdzQW5kRXhjZXB0aW9uKEV4CiAgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0
QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAxKSk7CiAgICAgc2l6ZV90IG1h
eFN0YWNrU2l6ZSA9IGltcC0+c2hvdWxkQ2FwdHVyZUZ1bGxTdGFja1RyYWNlKCkgPyBTY3JpcHRD
YWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUgOiAxOwogICAgIFJlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2soZXhlYywgbWF4U3Rh
Y2tTaXplKSk7Ci0gICAgbG9nKiBpbnRBcmcodG9sb2coZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAg
ICBsb2cqIGludEFyZyh0b2xvZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNz
aW5nSXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcC0+Y3VzdG9t
QXJnc0FuZEV4Y2VwdGlvbihpbnRBcmcsIHNjcmlwdEFyZ3VtZW50cywgY2FsbFN0YWNrLCBlYyk7
CkBAIC0xMzM0LDcgKzEzMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZEFyZyhFeAogICAgIEZyYW1l
KiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKICAgICBpZiAoIWR5bmFtaWNG
cmFtZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAg
ICBpbnQgaW50QXJnKGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYykpOworICAgIGludCBp
bnRBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVk
KS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wLT53aXRoRHlu
YW1pY0ZyYW1lQW5kQXJnKGR5bmFtaWNGcmFtZSwgaW50QXJnKTsKQEAgLTEzNTIsNyArMTM1NSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRHluYW1pY0ZyYW1lQW5kT3B0aW9uCiAgICAgRnJhbWUqIGR5bmFtaWNGcmFtZSA9IHRv
RHluYW1pY0ZyYW1lKGV4ZWMpOwogICAgIGlmICghZHluYW1pY0ZyYW1lKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGludCBpbnRBcmcoZXhlYy0+
YXJndW1lbnQoMCkudG9JbnQzMihleGVjKSk7CisgICAgaW50IGludEFyZyhNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTM2Miw3ICsxMzY1LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJh
bWVBbmRPcHRpb24KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICB9CiAKLSAgICBpbnQgb3B0aW9uYWxBcmcoZXhlYy0+YXJndW1lbnQoMSkudG9JbnQz
MihleGVjKSk7CisgICAgaW50IG9wdGlvbmFsQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDEsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIGltcC0+d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnKGR5bmFtaWNG
cmFtZSwgaW50QXJnLCBvcHRpb25hbEFyZyk7CkBAIC0xMzgwLDcgKzEzODMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFt
aWNGcmFtZUFuZFVzZXJHZQogICAgIEZyYW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFt
ZShleGVjKTsKICAgICBpZiAoIWR5bmFtaWNGcmFtZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbnQgaW50QXJnKGV4ZWMtPmFyZ3VtZW50KDAp
LnRvSW50MzIoZXhlYykpOworICAgIGludCBpbnRBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaW1wLT53aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmUoZHluYW1p
Y0ZyYW1lLCBpbnRBcmcsIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KTsKQEAgLTEzOTgsNyArMTQwMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlCiAgICAgRnJh
bWUqIGR5bmFtaWNGcmFtZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMpOwogICAgIGlmICghZHluYW1p
Y0ZyYW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
ICAgIGludCBpbnRBcmcoZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKSk7CisgICAgaW50
IGludEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmlu
ZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTQwOCw3ICsx
NDExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2UKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICBpbnQgb3B0aW9uYWxBcmcoZXhl
Yy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKSk7CisgICAgaW50IG9wdGlvbmFsQXJnKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9JbnQzMihl
eGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcC0+d2l0aER5bmFtaWNGcmFtZUFu
ZFVzZXJHZXN0dXJlQVNBRChkeW5hbWljRnJhbWUsIGludEFyZywgb3B0aW9uYWxBcmcsIFNjcmlw
dENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKQEAgLTE1MDMsNyArMTUwNiw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmcoRXhlCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQogCi0gICAgaW50IG9wdChleGVjLT5hcmd1bWVudCgw
KS50b0ludDMyKGV4ZWMpKTsKKyAgICBpbnQgb3B0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIGltcC0+bWV0aG9kV2l0aE9wdGlvbmFsQXJnKG9wdCk7CkBAIC0xNTE4LDcg
KzE1MjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZv
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKLSAgICBpbnQgbm9uT3B0KGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYykp
OworICAgIGludCBub25PcHQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2lu
Z0lzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAg
LTE1MjgsNyArMTUzMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQogCi0gICAgaW50IG9wdChl
eGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpKTsKKyAgICBpbnQgb3B0KE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDEsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcC0+bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kT3B0aW9uYWxBcmcobm9uT3B0LCBvcHQpOwpAQCAtMTU0Myw3ICsxNTQ2LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0EKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2Fz
dDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAgICAgVGVzdE9iaiog
aW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaW50
IG5vbk9wdChleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpKTsKKyAgICBpbnQgbm9uT3B0
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9J
bnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0xNTUzLDcgKzE1NTYsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIH0KIAotICAgIGludCBvcHQxKGV4ZWMtPmFyZ3VtZW50KDEp
LnRvSW50MzIoZXhlYykpOworICAgIGludCBvcHQxKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDEsIE1pc3NpbmdJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIGlmIChhcmdzQ291bnQgPD0gMikgewpAQCAtMTU2MSw3ICsxNTY0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhOb25PcHRpb25hbEFyZ0EKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICBpbnQgb3B0MihleGVjLT5hcmd1bWVudCgyKS50
b0ludDMyKGV4ZWMpKTsKKyAgICBpbnQgb3B0MihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVj
LCAyLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBpbXAtPm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJn
cyhub25PcHQsIG9wdDEsIG9wdDIpOwpAQCAtMTU5Myw3ICsxNTk2LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25D
YWxsYmFja0FyZ0EKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rl
c3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAgICAgVGVzdE9iaiogaW1wID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaW50IG5vbkNh
bGxiYWNrKGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYykpOworICAgIGludCBub25DYWxs
YmFjayhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQp
LnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDw9IDEgfHwgIWV4ZWMtPmFyZ3VtZW50KDEpLmlzT2JqZWN0KCkpIHsKQEAg
LTE2NzksMTAgKzE2ODIsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSgKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFs
dWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RP
Ymo6OnNfaW5mbyk7CiAgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5h
cmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoZXhlYy0+
YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYykpKTsKKyAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyh1
c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgTWlzc2luZ0lz
VW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpKSk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIHN0ckFyZyk7
CkBAIC0xNjk3LDcgKzE3MDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKAogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNW
YWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVz
dE9iajo6c19pbmZvKTsKICAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMt
PmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogCkBAIC0xNzA3LDcgKzE3MTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qy
KAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIH0K
IAotICAgIGludCBpbnRBcmcoZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKSk7CisgICAg
aW50IGludEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBNaXNzaW5nSXNVbmRl
ZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXAtPm92
ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBpbnRBcmcpOwpAQCAtMTcyMiw3ICsxNzI1LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMygKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAgICAgVGVzdE9i
aiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAg
Y29uc3QgU3RyaW5nJiBzdHJBcmcodXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRv
U3RyaW5nKGV4ZWMpKSk7CisgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcodXN0cmluZ1RvU3RyaW5n
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIE1pc3NpbmdJc1VuZGVmaW5lZCkuaXNF
bXB0eSgpID8gVVN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlz
c2luZ0lzVW5kZWZpbmVkKS50b1N0cmluZyhleGVjKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qoc3RyQXJnKTsKQEAgLTE3MzcsNyArMTc0MCw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDQoCiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOwogICAgIFRl
c3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIGludCBpbnRBcmcoZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKSk7CisgICAgaW50
IGludEFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmlu
ZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXAtPm92ZXJs
b2FkZWRNZXRob2QoaW50QXJnKTsKQEAgLTE3NjksNyArMTc3Miw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDYoCiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0
T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOwogICAgIFRlc3RPYmoqIGltcCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIERPTVN0cmluZ0xp
c3QqIGxpc3RBcmcodG9ET01TdHJpbmdMaXN0KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgRE9N
U3RyaW5nTGlzdCogbGlzdEFyZyh0b0RPTVN0cmluZ0xpc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QobGlzdEFyZyk7CkBAIC0xNzg0LDcgKzE3ODcsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q3KAogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0
YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
LSAgICBET01TdHJpbmdMaXN0KiBhcnJheUFyZyh0b0RPTVN0cmluZ0xpc3QoZXhlYy0+YXJndW1l
bnQoMCkpKTsKKyAgICBET01TdHJpbmdMaXN0KiBhcnJheUFyZyh0b0RPTVN0cmluZ0xpc3QoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgTWlzc2luZ0lzVW5kZWZpbmVkKSkpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QoYXJyYXlBcmcpOwpA
QCAtMTg0MSw3ICsxODQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKEUKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgIH0KIAotICAgIGludCBhcmcoZXhlYy0+
YXJndW1lbnQoMCkudG9JbnQzMihleGVjKSk7CisgICAgaW50IGFyZyhNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTkyOSw2ICsxOTMyLDEyIEBAIEpTVmFsdWUganNUZXN0
T2JqQ09OU1RfVkFMVUVfMTQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlm
aWVyJikKICAgICByZXR1cm4ganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50PigweDFhYmMpKTsKIH0K
IAorSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAg
IHJldHVybiBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQ+KDE1KSk7Cit9CisKIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0T2JqKiBpbXBsKQogewogICAgIHJldHVybiB3cmFwPEpTVGVzdE9iaj4oZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA5Y2RhMDg2ZjRlZTA1ZTI3YmQ4YjY2NzIz
ZTdkMmQwMDM2NDc4NjA2Li42ZDMxOGY0ZmI0NWUzYTgyZmQyNTJjMjQyMjU0OWZjZDc5MmU2OWUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCkBAIC0yNTUsNiArMjU1LDcgQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNU
X1ZBTFVFXzExKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OkkKIEpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0T2Jq
Q09OU1RfVkFMVUVfMTMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK0pTQzo6
SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmgKaW5kZXggNTg2ZTAwMjM2NzY4MDg3MWVlODM1YzFkMjc5Mzc1NzEwNzdl
MjEzNi4uOGI2N2E5N2VhNWM3YjNmYmIzY2M4OTVhNzdmOWE1OWFjZDUxZGM1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RP
YmouaApAQCAtNDksNyArNDksOCBAQCBlbnVtIHsKICAgICBET01fQ09OU1RfVkFMVUVfMTEgPSAw
eGZmZmZmZmZmLAogICAgIERPTV9DT05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAgRE9NX0NPTlNU
X1ZBTFVFXzEzID0gMFgyMCwKLSAgICBET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMKKyAgICBE
T01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMsCisgICAgRE9NX0NPTlNUX0lNUEwgPSAxNQogfTsK
IAogQGludGVyZmFjZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggMWQ2YzI4NjUxZDJkMjhh
OGEzZGY2NDYwODI3MGE5YTcwOTc4OGJjOS4uNTFkOTQ3ZTc5YjgzNjE4ZjI0ZTAwOTM2MjFmMDlj
YjQyYjQ1ZmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbApAQCAtMTkwLDUgKzE5MCw2IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTIgPSAweDAxOwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xMyA9IDBYMjA7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENPTlNUX1ZBTFVFXzE0ID0gMHgxYWJjOworICAgICAgICBjb25zdCBbUmVm
bGVjdD1DT05TVF9KQVZBU0NSSVBUXSB1bnNpZ25lZCBzaG9ydCBDT05TVF9JTVBMID0gMTU7CiAg
ICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggZjY1Mjg2MzJlYjU1OTMwMWE1YWY5MWU0MmFiNTI2MDlj
MGI0NTNhYy4uYzZlNzMyOTljMTlmNjVlMjZmNTI1ZmI3MjljNDI0Nzc0ZDY4NGIyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKQEAgLTEzODcsNiArMTM4Nyw3IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQ29uc3RhbnQg
VGVzdE9iakNvbnN0c1tdID0gewogICAgIHsiQ09OU1RfVkFMVUVfMTIiLCBzdGF0aWNfY2FzdDxz
aWduZWQgaW50PigweDAxKX0sCiAgICAgeyJDT05TVF9WQUxVRV8xMyIsIHN0YXRpY19jYXN0PHNp
Z25lZCBpbnQ+KDBYMjApfSwKICAgICB7IkNPTlNUX1ZBTFVFXzE0Iiwgc3RhdGljX2Nhc3Q8c2ln
bmVkIGludD4oMHgxYWJjKX0sCisgICAgeyJDT05TVF9KQVZBU0NSSVBUIiwgc3RhdGljX2Nhc3Q8
c2lnbmVkIGludD4oMTUpfSwKIH07CiAKIApAQCAtMTQwMSw2ICsxNDAyLDcgQEAgQ09NUElMRV9B
U1NFUlQoMHhmZmZmZmZmZiA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMSwgVGVzdE9iakVudW1D
T05TVF9WQUxVRV8xMUkKIENPTVBJTEVfQVNTRVJUKDB4MDEgPT0gVGVzdE9iajo6Q09OU1RfVkFM
VUVfMTIsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTJJc1dyb25nVXNlRG9udENoZWNrRW51bXMp
OwogQ09NUElMRV9BU1NFUlQoMFgyMCA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMywgVGVzdE9i
akVudW1DT05TVF9WQUxVRV8xM0lzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiBDT01QSUxFX0FT
U0VSVCgweDFhYmMgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTQsIFRlc3RPYmpFbnVtQ09OU1Rf
VkFMVUVfMTRJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOworQ09NUElMRV9BU1NFUlQoMTUgPT0g
VGVzdE9iajo6Q09OU1RfSU1QTCwgVGVzdE9iakVudW1DT05TVF9JTVBMSXNXcm9uZ1VzZURvbnRD
aGVja0VudW1zKTsKIAogc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
PiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gZGVzYykKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjN2FmMWIxNjAyYWI0NTE3ZTAxYTk5ZWM5ZGVkOTdi
N2ZiMzY3MTNhLi42MzQwNjE2MmM5MDU4MDVhZDE3MWJkZDI2OTUyYzNkNWZlNGNhY2QwIDEwMDc1
NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMjcgIEFubmEgQ2F2ZW5kZXIgIDxhbm5hY2NAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0XSB3b3JrIGZvciBjb25zdGFudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90
cmFjay90cmFjay1jb25zdGFudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRp
YS90cmFjay90cmFjay1jb25zdGFudHMuaHRtbDogQWRkZWQuCisKIDIwMTEtMTAtMjcgIEpvaG4g
R3JlZ2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIG1vcmUgdGVzdCBleHBl
Y3RhdGlvbnMgYW5kIGNocm9taXVtIHJlc3VsdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jb25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTUzY2My
YjcwNTY5MDg0MGNmMzliMDE5NjdmZDAxOGU4ODc2YjVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitUZXN0IFRleHRUcmFjayBjb25zdGFudHMuCisKK0VYUEVDVEVEIChUZXh0VHJh
Y2suTk9ORSA9PSAnMCcpIE9LCitFWFBFQ1RFRCAoVGV4dFRyYWNrLkxPQURJTkcgPT0gJzEnKSBP
SworRVhQRUNURUQgKFRleHRUcmFjay5MT0FERUQgPT0gJzInKSBPSworRVhQRUNURUQgKFRleHRU
cmFjay5FUlJPUiA9PSAnMycpIE9LCisKK0VYUEVDVEVEIChUZXh0VHJhY2suRElTQUJMRUQgPT0g
JzAnKSBPSworRVhQRUNURUQgKFRleHRUcmFjay5ISURERU4gPT0gJzEnKSBPSworRVhQRUNURUQg
KFRleHRUcmFjay5TSE9XSU5HID09ICcyJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2MzYzN2Y0
Y2IyZWU0NzM2NjBhNDBlNThiMWQ2YzM3ZGYxZWI5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sCkBAIC0wLDAgKzEsMjUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0uLi92aWRl
by10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgICAgZnVuY3Rpb24gZG9UZXN0ICgpIAorICAgICAgICB7CisgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoIlRleHRUcmFjay5OT05FIiwgMCk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
IlRleHRUcmFjay5MT0FESU5HIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRU
cmFjay5MT0FERUQiLCAyKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiVGV4dFRyYWNrLkVS
Uk9SIiwgMyk7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5ESVNBQkxFRCIsIDApOworICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJUZXh0VHJhY2suSElEREVOIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
IlRleHRUcmFjay5TSE9XSU5HIiwgMik7CisgICAgICAgIAorICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVz
dCgpIj4KKyAgICA8cD5UZXN0IFRleHRUcmFjayBjb25zdGFudHMuPC9wPgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112869</attachid>
            <date>2011-10-28 08:48:22 -0700</date>
            <delta_ts>2011-11-01 10:21:00 -0700</delta_ts>
            <desc>function for getting reflect name + swapping order</desc>
            <filename>bug-70951-20111028084821.patch</filename>
            <type>text/plain</type>
            <size>15287</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNGM0ODQ0MDExNWZiNTFk
MWNhZDM1YmQwODYyY2ExYTQxMzFlMTZhLi5hNmNhYjU1NzIyMjVkZTkzYzYwMWZiMTQwNDRjNjRh
YzVhMmJlMzBmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjggIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0
Q29uc3RhbnROYW1lKTogRnVuY3Rpb24gZm9yIHJldHJpZXZpbmcgW1JlZmxlY3RdIG5hbWUuCisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6IENoZWNrIGZvciBbUmVmbGVjdF0gYW5kIGFzc2lnbiBu
YW1lIGFjY29yZGluZ2x5LgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IENoZWNr
IGZvciBbUmVmbGVjdF0gYW5kIGFzc2lnbiBuYW1lIGFjY29yZGluZ2x5LgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbik6IENoZWNrIGZvciBbUmVmbGVjdF0gYW5kIGFzc2lnbiBuYW1lIGFjY29yZGlu
Z2x5LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
Lmg6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHA6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDT05TVF9JTVBMKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmg6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5oOiBVcGRhdGUgdGVzdCBmaWxlLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDogVXBkYXRlIHRlc3QgZmlsZS4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDogVXBkYXRlIHRlc3QgZmls
ZS4KKwogMjAxMS0xMC0yOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmVzZXQgbGluZSBudW1iZXJzIGZvciBzY3JpcHRzIGdlbmVyYXRlZCB3aXRoIGRv
Y3VtZW50LndyaXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCBlYTNhYWFhYTQ5MmY0NjZiNTYwMjI4YmVkYzkxNzUxNzVh
NzYxMjIwLi42OTNkY2Y0YTRkMjUwNzJlYjFiNWQxZThmMGI1MjA1NmUxZTBlYWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtMjMxLDYgKzIzMSwxMyBAQCBzdWIgR2V0Q2FsbGJhY2tDbGFzc05hbWUKICAgICByZXR1cm4g
IkpTJGNsYXNzTmFtZSI7CiB9CiAKK3N1YiBHZXROYW1lCit7CisgICAgbXkgJGF0dHJpYnV0ZSA9
IHNoaWZ0OworICAgIG15ICRyZWZsZWN0ID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlJlZmxlY3QifTsKKyAgICByZXR1cm4gJHJlZmxlY3QgPyAkcmVmbGVjdCA6ICRhdHRyaWJ1
dGUtPm5hbWU7Cit9CisKIHN1YiBJbmRleEdldHRlclJldHVybnNTdHJpbmdzCiB7CiAgICAgbXkg
JHR5cGUgPSBzaGlmdDsKQEAgLTExMTEsNyArMTExOCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCIvLyBDb25zdGFudHNcblxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRk
YXRhTm9kZS0+Y29uc3RhbnRzfSkgewotICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAk
aW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjb25zdGFudC0+bmFt
ZSk7CisgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNv
ZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0TmFtZSgkY29uc3RhbnQpKTsKICAgICAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTtcbiIpOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMTM1NCw4ICsxMzYxLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KIAogICAgICAgICAjIEZJWE1FOiB3ZSBzaG91bGQgbm90IG5lZWQgYSBmdW5jdGlvbiBmb3Ig
ZXZlcnkgY29uc3RhbnQuCiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRhTm9k
ZS0+Y29uc3RhbnRzfSkgewotICAgICAgICAgICAgcHVzaChAaGFzaEtleXMsICRjb25zdGFudC0+
bmFtZSk7Ci0gICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4g
JGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNvbnN0YW50LT5uYW1lKTsKKyAgICAgICAgICAg
IG15ICRuYW1lID0gR2V0TmFtZSgkY29uc3RhbnQpOworICAgICAgICAgICAgcHVzaChAaGFzaEtl
eXMsICRuYW1lKTsKKyAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAgICAgICAgICAgICBwdXNo
KEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIw
Iik7CiAgICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICJEb250RGVsZXRlIHwgUmVhZE9u
bHkiKTsKQEAgLTEzODMsOCArMTM5MSw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAK
ICAgICAjIEZJWE1FOiB3ZSBzaG91bGQgbm90IG5lZWQgYSBmdW5jdGlvbiBmb3IgZXZlcnkgY29u
c3RhbnQuCiAgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9
KSB7Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAkY29uc3RhbnQtPm5hbWUpOwotICAgICAgICBt
eSAkZ2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3Vj
Zmlyc3QoJGNvbnN0YW50LT5uYW1lKTsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXROYW1lKCRjb25z
dGFudCk7CisgICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7CisgICAgICAgIG15ICRnZXR0
ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgk
bmFtZSk7CiAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwogICAgICAgICBwdXNo
KEBoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICJEb250RGVs
ZXRlIHwgUmVhZE9ubHkiKTsKQEAgLTIwNzIsNyArMjA4MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLy8gQ29uc3RhbnQgZ2V0dGVy
c1xuXG4iKTsKIAogICAgICAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNv
bnN0YW50c30pIHsKLSAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY29uc3RhbnQtPm5hbWUpOworICAgICAg
ICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KEdldE5hbWUoJGNvbnN0YW50KSk7CiAKICAgICAgICAgICAgICMgRklYTUU6
IHRoaXMgY2FzdHMgaW50byBpbnQgdG8gbWF0Y2ggb3VyIHByZXZpb3VzIGJlaGF2aW9yIHdoaWNo
IHR1cm5lZCAweEZGRkZGRkZGIGluIC0xIGZvciBOb2RlRmlsdGVyLlNIT1dfQUxMCiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtnZXR0ZXJ9KEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZmM5YzM3YzE1Mzg3
YzE1ODUxODU5ZjdmMGViNzMxZmE5NGRmNWQ5Zi4uMWYwZjQ2NTQ0ZjY2ODI1OTgxM2FmZDRmMzA0
MzhkY2UxODZmMGExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTIxMjEsNyArMjEyMSw4IEBAIEVORAogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgInN0YXRpYyBjb25zdCBCYXRjaGVkQ29uc3RhbnQgJHtpbnRlcmZh
Y2VOYW1lfUNvbnN0c1tdID0ge1xuIik7CiAgICAgfQogICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50
IChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSkgewotICAgICAgICBteSAkbmFtZSA9ICRjb25zdGFu
dC0+bmFtZTsKKyAgICAgICAgbXkgJHJlZmxlY3QgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJSZWZsZWN0In07CisgICAgICAgIG15ICRuYW1lID0gJHJlZmxlY3QgPyAkcmVmbGVj
dCA6ICRjb25zdGFudC0+bmFtZTsKICAgICAgICAgbXkgJHZhbHVlID0gJGNvbnN0YW50LT52YWx1
ZTsKICAgICAgICAgbXkgJGF0dHJFeHQgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0cmlidXRlczsK
ICAgICAgICAgaWYgKCRhdHRyRXh0LT57IkVuYWJsZWRBdFJ1bnRpbWUifSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouaAppbmRleCAwYjQ4YjNiNzZmNTZjNTQwMzUwOTQzMTYzNzE2NTlkODFmMzk2MzA4Li5mMDQy
N2VhNDY4M2I5ZThiY2U2NDc4ZWQ4MmExYThjMjQ4YzM0OWEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaApA
QCAtNTgsNyArNTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMSA9
IDB4ZmZmZmZmZmYsCiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAg
ICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMyA9IDBYMjAsCi0gICAgICAgIFdFQkRPTV9DT05TVF9W
QUxVRV8xNCA9IDB4MWFiYworICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMs
CisgICAgICAgIFdFQkRPTV9DT05TVF9KQVZBU0NSSVBUID0gMTUKICAgICB9OwogCiAgICAgaW50
IHJlYWRPbmx5SW50QXR0cigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA2NjM3NmRiMWI5N2QyYjU2
MzZhNmFkOTU3MzI3MDdkOTQ1ZDUzYjQzLi5iNzUxY2IyMjhhMTdjOTVlNmFiM2Y1N2RmMWRkOTg0
YWM3ODM4ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTU4LDYgKzE1OCw3IEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogICAgIHsg
IkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEy
KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmlu
c2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
akNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJ
QyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzE0IiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJB
VE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAorICAgIHsgIkNPTlNUX0lNUEwi
LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSU1QTCksIChpbnRwdHJfdCkwIFRIVU5L
X0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7IDAsIDAs
IDAsIDAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9CiB9
OwogCkBAIC0xNzUsNiArMTc2LDcgQEAgQ09NUElMRV9BU1NFUlQoMHhmZmZmZmZmZiA9PSBUZXN0
T2JqOjpDT05TVF9WQUxVRV8xMSwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xMUkKIENPTVBJTEVf
QVNTRVJUKDB4MDEgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTIsIFRlc3RPYmpFbnVtQ09OU1Rf
VkFMVUVfMTJJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOwogQ09NUElMRV9BU1NFUlQoMFgyMCA9
PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMywgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xM0lzV3Jv
bmdVc2VEb250Q2hlY2tFbnVtcyk7CiBDT01QSUxFX0FTU0VSVCgweDFhYmMgPT0gVGVzdE9iajo6
Q09OU1RfVkFMVUVfMTQsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTRJc1dyb25nVXNlRG9udENo
ZWNrRW51bXMpOworQ09NUElMRV9BU1NFUlQoMTUgPT0gVGVzdE9iajo6Q09OU1RfSkFWQVNDUklQ
VCwgVGVzdE9iakVudW1DT05TVF9KQVZBU0NSSVBUSXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsK
IAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
T2JqQ29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgJkpTVGVzdE9i
akNvbnN0cnVjdG9yVGFibGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqQ29uc3Ry
dWN0b3IpIH07CiAKQEAgLTIyNSw2ICsyMjcsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiQ09OU1RfVkFMVUVf
MTIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMTIpLCAoaW50cHRyX3Qp
MCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAg
eyAiQ09OU1RfVkFMVUVfMTMiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVf
MTMpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRy
aW5zaWMpIH0sCiAgICAgeyAiQ09OU1RfVkFMVUVfMTQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQ09OU1RfVkFMVUVfMTQpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklO
U0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCisgICAgeyAiQ09OU1RfSU1QTCIsIERvbnREZWxldGUg
fCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpDT05TVF9JTVBMKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDAp
IElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgInZvaWRNZXRob2QiLCBEb250
RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKSwgKGludHB0cl90KTAgVEhVTktf
R0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgInZvaWRN
ZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RX
aXRoQXJncyksIChpbnRwdHJfdCkzIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpO
b0ludHJpbnNpYykgfSwKICAgICB7ICJpbnRNZXRob2QiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24s
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25JbnRNZXRob2QpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklO
U0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCkBAIC0xOTI5LDYgKzE5MzIsMTIgQEAgSlNWYWx1ZSBq
c1Rlc3RPYmpDT05TVF9WQUxVRV8xNChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElk
ZW50aWZpZXImKQogICAgIHJldHVybiBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQ+KDB4MWFiYykp
OwogfQogCitKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX0lNUEwoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAg
cmV0dXJuIGpzTnVtYmVyKHN0YXRpY19jYXN0PGludD4oMTUpKTsKK30KKwogSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFRlc3RPYmoqIGltcGwpCiB7CiAgICAgcmV0dXJuIHdyYXA8SlNUZXN0T2JqPihleGVjLCBn
bG9iYWxPYmplY3QsIGltcGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDljZGEwODZmNGVlMDVlMjdiZDhiNjY3MjNl
N2QyZDAwMzY0Nzg2MDYuLmVhODFlMGY3NmI0OTBmNmQxZWNkMjBhYmE3YWMyYTM2YjNiODYyNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKQEAgLTI1NSw2ICsyNTUsNyBAQCBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ09OU1Rf
VkFMVUVfMTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SQogSlND
OjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpD
T05TVF9WQUxVRV8xMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMTQoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOworSlNDOjpK
U1ZhbHVlIGpzVGVzdE9iakNPTlNUX0lNUEwoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAppbmRleCA1ODZlMDAyMzY3NjgwODcxZWU4MzVjMWQyNzkzNzU3MTA3N2UyMTM2Li4x
ZThjYjBiNWVhMGJmN2Y3ODRjNjJmMWUyYTAwZWM3MWM5ODljMTczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBA
IC00OSw3ICs0OSw4IEBAIGVudW0gewogICAgIERPTV9DT05TVF9WQUxVRV8xMSA9IDB4ZmZmZmZm
ZmYsCiAgICAgRE9NX0NPTlNUX1ZBTFVFXzEyID0gMHgwMSwKICAgICBET01fQ09OU1RfVkFMVUVf
MTMgPSAwWDIwLAotICAgIERPTV9DT05TVF9WQUxVRV8xNCA9IDB4MWFiYworICAgIERPTV9DT05T
VF9WQUxVRV8xNCA9IDB4MWFiYywKKyAgICBET01fQ09OU1RfSkFWQVNDUklQVCA9IDE1CiB9Owog
CiBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCAxZDZjMjg2NTFkMmQyOGE4
YTNkZjY0NjA4MjcwYTlhNzA5Nzg4YmM5Li41Zjc2Y2RiNDA5NjVjNjRiZTFhZDVlNTEwYTQwMTY1
ZGJkYTg2Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsCkBAIC0xOTAsNSArMTkwLDYgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xMiA9IDB4MDE7CiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENPTlNUX1ZBTFVFXzEzID0gMFgyMDsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTQgPSAweDFhYmM7CisgICAgICAgIGNvbnN0IFtSZWZs
ZWN0PUNPTlNUX0lNUExdIHVuc2lnbmVkIHNob3J0IENPTlNUX0pBVkFTQ1JJUFQgPSAxNTsKICAg
ICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcAppbmRleCBmNjUyODYzMmViNTU5MzAxYTVhZjkxZTQyYWI1MjYwOWMw
YjQ1M2FjLi5mMzExZTczZjI5ZTBmNDc2MDZlZGNlYjZlOTE1MTJhMjYyMDY1ZjFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcApAQCAtMTM4Nyw2ICsxMzg3LDcgQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRDb25zdGFudCBU
ZXN0T2JqQ29uc3RzW10gPSB7CiAgICAgeyJDT05TVF9WQUxVRV8xMiIsIHN0YXRpY19jYXN0PHNp
Z25lZCBpbnQ+KDB4MDEpfSwKICAgICB7IkNPTlNUX1ZBTFVFXzEzIiwgc3RhdGljX2Nhc3Q8c2ln
bmVkIGludD4oMFgyMCl9LAogICAgIHsiQ09OU1RfVkFMVUVfMTQiLCBzdGF0aWNfY2FzdDxzaWdu
ZWQgaW50PigweDFhYmMpfSwKKyAgICB7IkNPTlNUX0lNUEwiLCBzdGF0aWNfY2FzdDxzaWduZWQg
aW50PigxNSl9LAogfTsKIAogCkBAIC0xNDAxLDYgKzE0MDIsNyBAQCBDT01QSUxFX0FTU0VSVCgw
eGZmZmZmZmZmID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzExLCBUZXN0T2JqRW51bUNPTlNUX1ZB
TFVFXzExSQogQ09NUElMRV9BU1NFUlQoMHgwMSA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMiwg
VGVzdE9iakVudW1DT05TVF9WQUxVRV8xMklzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiBDT01Q
SUxFX0FTU0VSVCgwWDIwID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzEzLCBUZXN0T2JqRW51bUNP
TlNUX1ZBTFVFXzEzSXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKIENPTVBJTEVfQVNTRVJUKDB4
MWFiYyA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xNCwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8x
NElzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CitDT01QSUxFX0FTU0VSVCgxNSA9PSBUZXN0T2Jq
OjpDT05TVF9KQVZBU0NSSVBULCBUZXN0T2JqRW51bUNPTlNUX0pBVkFTQ1JJUFRJc1dyb25nVXNl
RG9udENoZWNrRW51bXMpOwogCiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiBkZXNjKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFiYzI4NzZiMzQxZDJiMzM3N2IwNzQ4Y2M0
OTVlMGNkMzNlYTUwYzcuLjZkOTEyNzkzOGNjOTIyYTFiN2Q0ZWZiOTdiOGQ2MTc2OTIzZThjNzMg
MTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMC0yOCAgQW5uYSBDYXZlbmRlciAgPGFubmFj
Y0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZXMgW1JlZmxlY3RdIHdvcmsgZm9yIGNvbnN0
YW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IG1lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sOiBBZGRlZC4KKwogMjAxMS0xMC0yOCAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCBza2lwZWQgZmFpbGluZyB0ZXN0IGluc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3RlZC1jYWxs
LWZyYW1lLWFmdGVyLWZvcm1hdHRpbmctc291cmNlLmh0bWwuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1jb25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MTUzY2MyYjcwNTY5MDg0MGNmMzliMDE5NjdmZDAxOGU4ODc2YjVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitUZXN0IFRleHRUcmFjayBjb25zdGFudHMuCisKK0VYUEVDVEVEIChU
ZXh0VHJhY2suTk9ORSA9PSAnMCcpIE9LCitFWFBFQ1RFRCAoVGV4dFRyYWNrLkxPQURJTkcgPT0g
JzEnKSBPSworRVhQRUNURUQgKFRleHRUcmFjay5MT0FERUQgPT0gJzInKSBPSworRVhQRUNURUQg
KFRleHRUcmFjay5FUlJPUiA9PSAnMycpIE9LCisKK0VYUEVDVEVEIChUZXh0VHJhY2suRElTQUJM
RUQgPT0gJzAnKSBPSworRVhQRUNURUQgKFRleHRUcmFjay5ISURERU4gPT0gJzEnKSBPSworRVhQ
RUNURUQgKFRleHRUcmFjay5TSE9XSU5HID09ICcyJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2
MzYzN2Y0Y2IyZWU0NzM2NjBhNDBlNThiMWQ2YzM3ZGYxZWI5OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sCkBAIC0wLDAgKzEs
MjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0u
Li92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gZG9UZXN0ICgpIAorICAgICAgICB7CisgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5OT05FIiwgMCk7CisgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoIlRleHRUcmFjay5MT0FESU5HIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
IlRleHRUcmFjay5MT0FERUQiLCAyKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiVGV4dFRy
YWNrLkVSUk9SIiwgMyk7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5ESVNBQkxFRCIsIDApOworICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJUZXh0VHJhY2suSElEREVOIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoIlRleHRUcmFjay5TSE9XSU5HIiwgMik7CisgICAgICAgIAorICAgICAgICAgICAgZW5k
VGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
ImRvVGVzdCgpIj4KKyAgICA8cD5UZXN0IFRleHRUcmFjayBjb25zdGFudHMuPC9wPgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113188</attachid>
            <date>2011-11-01 10:21:05 -0700</date>
            <delta_ts>2011-11-01 14:32:57 -0700</delta_ts>
            <desc>only modify the constant with the reflected name for implemenmtation value</desc>
            <filename>bug-70951-20111101102104.patch</filename>
            <type>text/plain</type>
            <size>17730</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5NzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMzg0ZWY4Yjg3YTgzMmNi
YTMwN2FjMDI4Yjg3NTQzMjg5YjhhZDViLi44NjBhMWNmNTAxMjVjMjI1N2IwOGM2OWU4NzVlNTIw
MTExYmU3MmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTEtMDEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKEdlbmVy
YXRlQ29tcGlsZVRpbWVDaGVja0ZvckVudW1zSWZOZWVkZWQpOgorICAgICAgICAgICAgQ2hlY2sg
Zm9yIFtSZWZsZWN0XSBhbmQgYXNzaWduIG5hbWUgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaDogVXBkYXRlIHRlc3QgZmls
ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogVXBk
YXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJ
UFQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDogVXBk
YXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmg6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOiBVcGRhdGUgdGVzdCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOiBVcGRhdGUgdGVzdCBmaWxlLgorICAgICAgICAq
IGh0bWwvVGV4dFRyYWNrLmlkbDogU3dhcHBpbmcgY29uc3RhbnQgbmFtZSBleHBvc2VkIHRvIEph
dmFTY3JpcHQgYW5kCisgICAgICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gbmFtZS4KKwogMjAx
MS0xMS0wMSAgTWlrZSBSZWVkICA8cmVlZEBnb29nbGUuY29tPgogCiAgICAgICAgIFtza2lhXSBj
YWxsIHJlYWRQaXhlbHMgb24gY2FudmFzIGluc3RlYWQgb2YgZGV2aWNlICh3aWxsIGJlIHByaXZh
dGUgb24gZGV2aWNlIHNvb24pIGFuZCBjaGVjayBmb3IgZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCA3ZWI2NzZmZTYwNGI4
MzlhNTgxYWY5Mzg4ZGI3ZGZhMDg5YzJjNjMzLi5jY2M1ZTk4NjM1YzMxZWQ4ZWY2MWM3YWNlZDUx
MDIyNTRjYjY0NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yLnBtCkBAIC01NjgsNyArNTY4LDggQEAgc3ViIEdlbmVyYXRlQ29tcGlsZVRp
bWVDaGVja0ZvckVudW1zSWZOZWVkZWQKICAgICBpZiAoU2hvdWxkQ2hlY2tFbnVtcygkZGF0YU5v
ZGUpICYmIEB7JGRhdGFOb2RlLT5jb25zdGFudHN9KSB7CiAgICAgICAgIHB1c2goQGNoZWNrcywg
IlxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRhTm9kZS0+Y29uc3Rh
bnRzfSkgewotICAgICAgICAgICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CisgICAgICAg
ICAgICBteSAkcmVmbGVjdCA9ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxl
Y3QifTsKKyAgICAgICAgICAgIG15ICRuYW1lID0gICRyZWZsZWN0ID8gJHJlZmxlY3QgOiAkY29u
c3RhbnQtPm5hbWU7CiAgICAgICAgICAgICBteSAkdmFsdWUgPSAkY29uc3RhbnQtPnZhbHVlOwog
ICAgICAgICAgICAgcHVzaChAY2hlY2tzLCAiQ09NUElMRV9BU1NFUlQoJHZhbHVlID09ICR7aW50
ZXJmYWNlTmFtZX06OiRuYW1lLCAke2ludGVyZmFjZU5hbWV9RW51bSR7bmFtZX1Jc1dyb25nVXNl
RG9udENoZWNrRW51bXMpO1xuIik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggMGI0
OGIzYjc2ZjU2YzU0MDM1MDk0MzE2MzcxNjU5ZDgxZjM5NjMwOC4uZjA0MjdlYTQ2ODNiOWU4YmNl
NjQ3OGVkODJhMWE4YzI0OGMzNDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTU4LDcgKzU4LDgg
QEAgcHVibGljOgogICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTEgPSAweGZmZmZmZmZmLAog
ICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTIgPSAweDAxLAogICAgICAgICBXRUJET01fQ09O
U1RfVkFMVUVfMTMgPSAwWDIwLAotICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTQgPSAweDFh
YmMKKyAgICAgICAgV0VCRE9NX0NPTlNUX1ZBTFVFXzE0ID0gMHgxYWJjLAorICAgICAgICBXRUJE
T01fQ09OU1RfSkFWQVNDUklQVCA9IDE1CiAgICAgfTsKIAogICAgIGludCByZWFkT25seUludEF0
dHIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggNjYzNzZkYjFiOTdkMmI1NjM2YTZhZDk1NzMyNzA3
ZDk0NWQ1M2I0My4uMzNlNmFjYmVkNjk3N2M3MTllNGIwMGJlZDNiN2Y2NmVjN2RkYWZlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKQEAgLTE1OCw2ICsxNTgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUg
SlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZVZhbHVlc1tdID0KICAgICB7ICJDT05TVF9WQUxVRV8x
MiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMiksIChpbnRwdHJfdCkw
IFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7
ICJDT05TVF9WQUxVRV8xMyIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8x
MyksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJp
bnNpYykgfSwKICAgICB7ICJDT05TVF9WQUxVRV8xNCIsIERvbnREZWxldGUgfCBSZWFkT25seSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDT05TVF9WQUxVRV8xNCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5T
SUMoREZHOjpOb0ludHJpbnNpYykgfSwKKyAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCBUSFVOS19H
RU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAwLCAwLCAw
LCAwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfQogfTsK
IApAQCAtMTc1LDYgKzE3Niw3IEBAIENPTVBJTEVfQVNTRVJUKDB4ZmZmZmZmZmYgPT0gVGVzdE9i
ajo6Q09OU1RfVkFMVUVfMTEsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTFJCiBDT01QSUxFX0FT
U0VSVCgweDAxID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzEyLCBUZXN0T2JqRW51bUNPTlNUX1ZB
TFVFXzEySXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKIENPTVBJTEVfQVNTRVJUKDBYMjAgPT0g
VGVzdE9iajo6Q09OU1RfVkFMVUVfMTMsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTNJc1dyb25n
VXNlRG9udENoZWNrRW51bXMpOwogQ09NUElMRV9BU1NFUlQoMHgxYWJjID09IFRlc3RPYmo6OkNP
TlNUX1ZBTFVFXzE0LCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzE0SXNXcm9uZ1VzZURvbnRDaGVj
a0VudW1zKTsKK0NPTVBJTEVfQVNTRVJUKDE1ID09IFRlc3RPYmo6OkNPTlNUX0lNUEwsIFRlc3RP
YmpFbnVtQ09OU1RfSU1QTElzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiAKIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iakNvbnN0cnVjdG9y
IiwgJkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRh
YmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9iakNvbnN0cnVjdG9yKSB9OwogCkBA
IC0yMjUsNiArMjI3LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJB
VE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVF
XzEzIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90
KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAg
IHsgIkNPTlNUX1ZBTFVFXzE0IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVF
XzE0KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50
cmluc2ljKSB9LAorICAgIHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9u
bHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqQ09OU1RfSkFWQVNDUklQVCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJ
TlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJ2b2lkTWV0aG9kIiwgRG9udERl
bGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5LX0dF
TkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJ2b2lkTWV0
aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0
aEFyZ3MpLCAoaW50cHRyX3QpMyBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9J
bnRyaW5zaWMpIH0sCiAgICAgeyAiaW50TWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uSW50TWV0aG9kKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJ
QyhERkc6Ok5vSW50cmluc2ljKSB9LApAQCAtMTkyOSw2ICsxOTMyLDEyIEBAIEpTVmFsdWUganNU
ZXN0T2JqQ09OU1RfVkFMVUVfMTQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVu
dGlmaWVyJikKICAgICByZXR1cm4ganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50PigweDFhYmMpKTsK
IH0KIAorSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwor
ICAgIHJldHVybiBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQ+KDE1KSk7Cit9CisKIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0T2JqKiBpbXBsKQogewogICAgIHJldHVybiB3cmFwPEpTVGVzdE9iaj4oZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA5Y2RhMDg2ZjRlZTA1ZTI3YmQ4YjY2
NzIzZTdkMmQwMDM2NDc4NjA2Li42ZDMxOGY0ZmI0NWUzYTgyZmQyNTJjMjQyMjU0OWZjZDc5MmU2
OWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oCkBAIC0yNTUsNiArMjU1LDcgQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNP
TlNUX1ZBTFVFXzExKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OkkK
IEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0
T2JqQ09OU1RfVkFMVUVfMTMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK0pT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmgKaW5kZXggNTg2ZTAwMjM2NzY4MDg3MWVlODM1YzFkMjc5Mzc1NzEw
NzdlMjEzNi4uMWU4Y2IwYjVlYTBiZjdmNzg0YzYyZjFlMmEwMGVjNzFjOTg5YzE3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaApAQCAtNDksNyArNDksOCBAQCBlbnVtIHsKICAgICBET01fQ09OU1RfVkFMVUVfMTEg
PSAweGZmZmZmZmZmLAogICAgIERPTV9DT05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAgRE9NX0NP
TlNUX1ZBTFVFXzEzID0gMFgyMCwKLSAgICBET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMKKyAg
ICBET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMsCisgICAgRE9NX0NPTlNUX0pBVkFTQ1JJUFQg
PSAxNQogfTsKIAogQGludGVyZmFjZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggMWQ2YzI4
NjUxZDJkMjhhOGEzZGY2NDYwODI3MGE5YTcwOTc4OGJjOS4uNWY3NmNkYjQwOTY1YzY0YmUxYWQ1
ZTUxMGE0MDE2NWRiZGE4NmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMTkwLDUgKzE5MCw2IEBAIG1vZHVsZSB0ZXN0IHsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTIgPSAweDAxOwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xMyA9IDBYMjA7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUX1ZBTFVFXzE0ID0gMHgxYWJjOworICAgICAgICBj
b25zdCBbUmVmbGVjdD1DT05TVF9JTVBMXSB1bnNpZ25lZCBzaG9ydCBDT05TVF9KQVZBU0NSSVBU
ID0gMTU7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggZjY1Mjg2MzJlYjU1OTMwMWE1YWY5MWU0
MmFiNTI2MDljMGI0NTNhYy4uYzZlNzMyOTljMTlmNjVlMjZmNTI1ZmI3MjljNDI0Nzc0ZDY4NGIy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKQEAgLTEzODcsNiArMTM4Nyw3IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVk
Q29uc3RhbnQgVGVzdE9iakNvbnN0c1tdID0gewogICAgIHsiQ09OU1RfVkFMVUVfMTIiLCBzdGF0
aWNfY2FzdDxzaWduZWQgaW50PigweDAxKX0sCiAgICAgeyJDT05TVF9WQUxVRV8xMyIsIHN0YXRp
Y19jYXN0PHNpZ25lZCBpbnQ+KDBYMjApfSwKICAgICB7IkNPTlNUX1ZBTFVFXzE0Iiwgc3RhdGlj
X2Nhc3Q8c2lnbmVkIGludD4oMHgxYWJjKX0sCisgICAgeyJDT05TVF9KQVZBU0NSSVBUIiwgc3Rh
dGljX2Nhc3Q8c2lnbmVkIGludD4oMTUpfSwKIH07CiAKIApAQCAtMTQwMSw2ICsxNDAyLDcgQEAg
Q09NUElMRV9BU1NFUlQoMHhmZmZmZmZmZiA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMSwgVGVz
dE9iakVudW1DT05TVF9WQUxVRV8xMUkKIENPTVBJTEVfQVNTRVJUKDB4MDEgPT0gVGVzdE9iajo6
Q09OU1RfVkFMVUVfMTIsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTJJc1dyb25nVXNlRG9udENo
ZWNrRW51bXMpOwogQ09NUElMRV9BU1NFUlQoMFgyMCA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8x
MywgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xM0lzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiBD
T01QSUxFX0FTU0VSVCgweDFhYmMgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTQsIFRlc3RPYmpF
bnVtQ09OU1RfVkFMVUVfMTRJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOworQ09NUElMRV9BU1NF
UlQoMTUgPT0gVGVzdE9iajo6Q09OU1RfSU1QTCwgVGVzdE9iakVudW1DT05TVF9JTVBMSXNXcm9u
Z1VzZURvbnRDaGVja0VudW1zKTsKIAogc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmlkbAppbmRl
eCBkMTQwNDJkMDg1Njk3MDg4Y2M3OWUzZDI5YmZmYzNiOTI4OWUwZjAzLi41YmI4NGZlMTdhYzhm
MGJlOWM0Y2Y2MGM2NzJmNjA0YzZjM2YzMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRUcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaWRs
CkBAIC0zMywxNSArMzMsMTUgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGxhbmd1YWdlOwogCi0gICAgICAgIGNvbnN0IFtSZWZsZWN0PU5PTkVdIHVuc2lnbmVkIHNo
b3J0IE5vbmUgPSAwOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1MT0FESU5HXSB1bnNpZ25lZCBz
aG9ydCBMb2FkaW5nID0gMTsKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9TE9BREVEXSB1bnNpZ25l
ZCBzaG9ydCBMb2FkZWQgPSAyOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1FUlJPUl0gdW5zaWdu
ZWQgc2hvcnQgRXJyb3IgPSAzOworICAgICAgICBjb25zdCBbUmVmbGVjdD1Ob25lXSB1bnNpZ25l
ZCBzaG9ydCBOT05FID0gMDsKKyAgICAgICAgY29uc3QgW1JlZmxlY3Q9TG9hZGluZ10gdW5zaWdu
ZWQgc2hvcnQgTE9BRElORyA9IDE7CisgICAgICAgIGNvbnN0IFtSZWZsZWN0PUxvYWRlZF0gdW5z
aWduZWQgc2hvcnQgTE9BREVEID0gMjsKKyAgICAgICAgY29uc3QgW1JlZmxlY3Q9RXJyb3JdIHVu
c2lnbmVkIHNob3J0IEVSUk9SID0gMzsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0IHJlYWR5U3RhdGU7CiAKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9RElTQUJMRURd
IHVuc2lnbmVkIHNob3J0IERpc2FibGVkID0gMDsKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9SElE
REVOXSB1bnNpZ25lZCBzaG9ydCBIaWRkZW4gPSAxOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1T
SE9XSU5HXSB1bnNpZ25lZCBzaG9ydCBTaG93aW5nID0gMjsKKyAgICAgICAgY29uc3QgW1JlZmxl
Y3Q9RGlzYWJsZWRdIHVuc2lnbmVkIHNob3J0IERJU0FCTEVEID0gMDsKKyAgICAgICAgY29uc3Qg
W1JlZmxlY3Q9SGlkZGVuXSB1bnNpZ25lZCBzaG9ydCBISURERU4gPSAxOworICAgICAgICBjb25z
dCBbUmVmbGVjdD1TaG93aW5nXSB1bnNpZ25lZCBzaG9ydCBTSE9XSU5HID0gMjsKICAgICAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG1vZGUKICAgICAgICAgICAgIHNldHRlciByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YWI5ZmZhNTZiZTYzNWQxNjFlZDc3ZGM1MGM1OGMz
NjdhMTgwYTcxLi4yZWExOWMxYWQyNDE0MjI1YjU4ZmJhNzY4Y2IyZDE0ZGViYjBhNDY5IDEwMDc1
NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMDEgIEFubmEgQ2F2ZW5kZXIgIDxhbm5hY2NAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0XSB3b3JrIGZvciBjb25zdGFudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90
cmFjay90cmFjay1jb25zdGFudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRp
YS90cmFjay90cmFjay1jb25zdGFudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJh
Y2svdHJhY2stbG9hZC1lcnJvci1yZWFkeVN0YXRlLmh0bWw6IFVwZGF0ZWQgd2l0aCBuZXcgY29u
c3QgbmFtZS4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tZWxlbWVudC1y
ZWFkeVN0YXRlLmh0bWw6IFVwZGF0ZWQgd2l0aCBuZXcgY29uc3QgbmFtZS4KKyAgICAgICAgKiBt
ZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3JjLXJlYWR5U3RhdGUuaHRtbDogVXBkYXRlZCB3
aXRoIG5ldyBjb25zdCBuYW1lLgorICAgICAgICAKKyAgICAgICAgVklERU9fVFJBQ0sgaXMgbm90
IGVuYWJsZWQgb24gdGhlc2UgcG9ydHMsIHNvIHNraXBwaW5nIHRoaXMgdGVzdDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoK
KwogMjAxMS0xMS0wMSAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4K
IAogICAgICAgICBbRUZMXSBVbnJldmlld2VkLiBBZGQgc29tZSBwaXhlbCBiYXNlbGluZXMgZm9y
IHRlc3RzIGluIGZhc3QvLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNr
LWNvbnN0YW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE1M2NjMmI3MDU2OTA4NDBjZjM5
YjAxOTY3ZmQwMThlODg3NmI1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWNvbnN0YW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVz
dCBUZXh0VHJhY2sgY29uc3RhbnRzLgorCitFWFBFQ1RFRCAoVGV4dFRyYWNrLk5PTkUgPT0gJzAn
KSBPSworRVhQRUNURUQgKFRleHRUcmFjay5MT0FESU5HID09ICcxJykgT0sKK0VYUEVDVEVEIChU
ZXh0VHJhY2suTE9BREVEID09ICcyJykgT0sKK0VYUEVDVEVEIChUZXh0VHJhY2suRVJST1IgPT0g
JzMnKSBPSworCitFWFBFQ1RFRCAoVGV4dFRyYWNrLkRJU0FCTEVEID09ICcwJykgT0sKK0VYUEVD
VEVEIChUZXh0VHJhY2suSElEREVOID09ICcxJykgT0sKK0VYUEVDVEVEIChUZXh0VHJhY2suU0hP
V0lORyA9PSAnMicpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jb25zdGFudHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L3RyYWNrLWNvbnN0YW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NjM2MzdmNGNiMmVlNDczNjYwYTQw
ZTU4YjFkNmMzN2RmMWViOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jb25zdGFudHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0
aW9uIGRvVGVzdCAoKSAKKyAgICAgICAgeworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJUZXh0
VHJhY2suTk9ORSIsIDApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJUZXh0VHJhY2suTE9B
RElORyIsIDEpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJUZXh0VHJhY2suTE9BREVEIiwg
Mik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5FUlJPUiIsIDMpOworICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJU
ZXh0VHJhY2suRElTQUJMRUQiLCAwKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiVGV4dFRy
YWNrLkhJRERFTiIsIDEpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJUZXh0VHJhY2suU0hP
V0lORyIsIDIpOworICAgICAgICAKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisgICAgPHA+
VGVzdCBUZXh0VHJhY2sgY29uc3RhbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZXJyb3ItcmVhZHlTdGF0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1lcnJvci1yZWFkeVN0YXRl
Lmh0bWwKaW5kZXggNTNmMzk4YTM4Yzk3MTYxYjI2ZGJlZDg3YjEwMDdjZWY5NzdmODM4Yy4uZjdl
NmU4ZTk0ZDhlYjEyNmFjMTQ1YzlmNDI1NzIzYjZhMzBlYmFkYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1lcnJvci1yZWFkeVN0YXRlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1lcnJvci1yZWFkeVN0YXRlLmh0bWwK
QEAgLTExLDcgKzExLDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIkVWRU5UKGVycm9yKSIpOwogICAgICAgICAgICAgICAgIHRyYWNrID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3RUcmFja0Vycm9yJyk7IAotICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5FcnJvcik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0cmFjay50cmFjay5yZWFkeVN0YXRlIiwgVGV4dFRy
YWNrLkVSUk9SKTsKICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1lbGVt
ZW50LXJlYWR5U3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWxvYWQt
ZnJvbS1lbGVtZW50LXJlYWR5U3RhdGUuaHRtbAppbmRleCBjZjA0NjQ4YjBlZDA2MWMwZjAzNTkx
N2E0YzQ0YzExOGIxMGNhODFjLi5iZmM2NTdmY2E5YTMyOGEyODIyMjhkOTIwNzIwY2Y2ZjI0Njdm
MGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20t
ZWxlbWVudC1yZWFkeVN0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stbG9hZC1mcm9tLWVsZW1lbnQtcmVhZHlTdGF0ZS5odG1sCkBAIC0xMSw3ICsxMSw3IEBACiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJFVkVOVChsb2FkKSIp
OwogICAgICAgICAgICAgICAgIHRyYWNrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RU
cmFja1NyYycpOyAKLSAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrLnRyYWNrLnJl
YWR5U3RhdGUiLCBUZXh0VHJhY2suTG9hZGVkKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInRyYWNrLnRyYWNrLnJlYWR5U3RhdGUiLCBUZXh0VHJhY2suTE9BREVEKTsKICAgICAgICAg
ICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1zcmMtcmVhZHlTdGF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLXNyYy1yZWFkeVN0YXRlLmh0bWwK
aW5kZXggNjFlYmIyZDBkYzMwODhmNTY3NmEzMTY5YmMwNDVkMWRlZjQ5Nzc2Ni4uOWM4YWYzMWJi
YWJlMzY4NDMxNDg3YjYwMGI1ZjM4ODhmNmQ5ODQyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLXNyYy1yZWFkeVN0YXRlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLXNyYy1yZWFkeVN0YXRlLmh0bWwK
QEAgLTE2LDEyICsxNiwxMiBAQAogICAgICAgICAgICAgZnVuY3Rpb24gdHJhY2tMb2FkZWQoKQog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiRVZFTlQobG9hZCki
KTsKLSAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrLnRyYWNrLnJlYWR5U3RhdGUi
LCBUZXh0VHJhY2suTG9hZGVkKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNr
LnRyYWNrLnJlYWR5U3RhdGUiLCBUZXh0VHJhY2suTE9BREVEKTsKICAgICAgICAgICAgICAgICBl
bmRUZXN0KCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRyYWNrID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3RUcmFja0VtcHR5Jyk7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInRyYWNrLnRyYWNrLnJlYWR5U3RhdGUiLCBUZXh0VHJhY2suTm9uZSk7CisgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInRyYWNrLnRyYWNrLnJlYWR5U3RhdGUiLCBUZXh0VHJhY2suTk9ORSk7
CiAgICAgICAgICAgICB0cmFjay5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkg
eyB0cmFja0xvYWRlZCgpOyB9LCB0cnVlKTsKICAgICAgICAgICAgIHRyYWNrLnNyYyA9ICJjYXB0
aW9ucy13ZWJ2dHQvdGMwMDQtd2VidnR0LWZpbGUudnR0IjsgICAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZAppbmRleCBkYmQ5ZWFhZDBiYjNhYWZiZWI2NmYwZjhmMWIwNGRjNjYzOGQxZGUxLi4w
ZmVmMTVkNjQ5NzMxOTkyMjkwZDcyMTRhYmI3ZGVkMTFiOWVjYTQ3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZApAQCAtNDIxLDYgKzQyMSw3IEBAIGZhc3QvZG9tL01pY3JvRGF0YQogCiAjIFRl
c3RzIGZvciA8dHJhY2s+LiAgRmVhdHVyZSBpcyBub3QgeWV0IGZ1bmN0aW9uYWwuCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzY2OAorbWVkaWEvdHJhY2svdHJh
Y2stY29uc3RhbnRzLmh0bWwKIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZXJyb3ItcmVhZHlTdGF0
ZS5odG1sCiBtZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tZWxlbWVudC1yZWFkeVN0YXRlLmh0
bWwKIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1zcmMtcmVhZHlTdGF0ZS5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDZlNmJkZjBkMDA1NTM5OTg4Yzk2NDY5Nzg2Y2ZkODFi
OTliZjgxYWMuLjNmMmFiNzA4MGMyNTExYTljMDkyMDFhODcxNWQ5YzI0NTBkNWM4NmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xNDA1LDYgKzE0MDUsNyBAQCBmYXN0L211dGF0aW9u
CiAKICMgVGVzdHMgZm9yIDx0cmFjaz4uICBGZWF0dXJlIGlzIG5vdCB5ZXQgZnVuY3Rpb25hbC4K
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNjY4CittZWRpYS90
cmFjay90cmFjay1jb25zdGFudHMuaHRtbAogbWVkaWEvdHJhY2svdHJhY2stbG9hZC1lcnJvci1y
ZWFkeVN0YXRlLmh0bWwKIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1lbGVtZW50LXJlYWR5
U3RhdGUuaHRtbAogbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLXNyYy1yZWFkeVN0YXRlLmh0
bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113223</attachid>
            <date>2011-11-01 14:33:02 -0700</date>
            <delta_ts>2011-11-01 17:29:49 -0700</delta_ts>
            <desc>fixing = typo and adding better description in changelog</desc>
            <filename>bug-70951-20111101143300.patch</filename>
            <type>text/plain</type>
            <size>18155</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5OTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NmNjMzkwOWMzZjFmZGJk
MzIyOGJhNWFjODBkM2IxNjM2NGY5MjllLi5kZTg5MGU5MDQ5MDJiM2ZkOTYyZjIwYTkzMjc0ZjZm
Y2Y3YTQxNjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMTEtMDEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMuCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIHBs
YXRmb3JtLXNwZWNpZmljIGRlZmluZSBjb25mbGljdHMsIHNwZWNpZmljYWxseQorICAgICAgICBU
ZXh0VHJhY2s6OkVSUk9SIGNvbmZsaWN0cyB3aXRoIGEgd2luZG93cyBkZWZpbmUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk1MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNr
L3RyYWNrLWNvbnN0YW50cy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3IucG06CisgICAgICAgIChHZW5lcmF0ZUNvbXBpbGVUaW1lQ2hlY2tGb3JFbnVtc0lm
TmVlZGVkKToKKyAgICAgICAgICAgIENoZWNrIGZvciBbUmVmbGVjdF0gYW5kIGFzc2lnbiBuYW1l
IGFjY29yZGluZ2x5LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJE
T01UZXN0T2JqLmg6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6IFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOiBVcGRhdGUgdGVzdCBmaWxlLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDogVXBkYXRlIHRlc3Qg
ZmlsZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDog
VXBkYXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKiBodG1sL1RleHRUcmFjay5pZGw6IFN3YXBwaW5n
IGNvbnN0YW50IG5hbWUgZXhwb3NlZCB0byBKYXZhU2NyaXB0IGFuZAorICAgICAgICAgICAgdGhl
IGltcGxlbWVudGF0aW9uIG5hbWUuCisKIDIwMTEtMTEtMDEgIERvbWluaWMgQ29vbmV5ICA8ZG9t
aW5pY2NAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgYW5kIGJv
eC1zaXppbmc6IGJvcmRlci1ib3ggY2FsY3VsYXRlcyBjb250ZW50LWJveCBoZWlnaHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCA3
ZWI2NzZmZTYwNGI4MzlhNTgxYWY5Mzg4ZGI3ZGZhMDg5YzJjNjMzLi4yMGRkYzUyOWIxMDFmMjk1
ZjM5YmVmMmEwNDI2Y2UwNWNmMTAxMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC01NjgsNyArNTY4LDggQEAgc3ViIEdlbmVy
YXRlQ29tcGlsZVRpbWVDaGVja0ZvckVudW1zSWZOZWVkZWQKICAgICBpZiAoU2hvdWxkQ2hlY2tF
bnVtcygkZGF0YU5vZGUpICYmIEB7JGRhdGFOb2RlLT5jb25zdGFudHN9KSB7CiAgICAgICAgIHB1
c2goQGNoZWNrcywgIlxuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRh
Tm9kZS0+Y29uc3RhbnRzfSkgewotICAgICAgICAgICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5h
bWU7CisgICAgICAgICAgICBteSAkcmVmbGVjdCA9ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlJlZmxlY3QifTsKKyAgICAgICAgICAgIG15ICRuYW1lID0gJHJlZmxlY3QgPyAkcmVm
bGVjdCA6ICRjb25zdGFudC0+bmFtZTsKICAgICAgICAgICAgIG15ICR2YWx1ZSA9ICRjb25zdGFu
dC0+dmFsdWU7CiAgICAgICAgICAgICBwdXNoKEBjaGVja3MsICJDT01QSUxFX0FTU0VSVCgkdmFs
dWUgPT0gJHtpbnRlcmZhY2VOYW1lfTo6JG5hbWUsICR7aW50ZXJmYWNlTmFtZX1FbnVtJHtuYW1l
fUlzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7XG4iKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmou
aAppbmRleCAwYjQ4YjNiNzZmNTZjNTQwMzUwOTQzMTYzNzE2NTlkODFmMzk2MzA4Li5mMDQyN2Vh
NDY4M2I5ZThiY2U2NDc4ZWQ4MmExYThjMjQ4YzM0OWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaApAQCAt
NTgsNyArNTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMSA9IDB4
ZmZmZmZmZmYsCiAgICAgICAgIFdFQkRPTV9DT05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAgICAg
IFdFQkRPTV9DT05TVF9WQUxVRV8xMyA9IDBYMjAsCi0gICAgICAgIFdFQkRPTV9DT05TVF9WQUxV
RV8xNCA9IDB4MWFiYworICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMsCisg
ICAgICAgIFdFQkRPTV9DT05TVF9KQVZBU0NSSVBUID0gMTUKICAgICB9OwogCiAgICAgaW50IHJl
YWRPbmx5SW50QXR0cigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA2NjM3NmRiMWI5N2QyYjU2MzZh
NmFkOTU3MzI3MDdkOTQ1ZDUzYjQzLi4zM2U2YWNiZWQ2OTc3YzcxOWU0YjAwYmVkM2I3ZjY2ZWM3
ZGRhZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTU4LDYgKzE1OCw3IEBAIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogICAgIHsgIkNP
TlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEyKSwg
KGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2lj
KSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNP
TlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhE
Rkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzE0IiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9S
KDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAorICAgIHsgIkNPTlNUX0pBVkFTQ1JJ
UFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFWQVNDUklQVCksIChpbnRwdHJf
dCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAg
ICB7IDAsIDAsIDAsIDAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmlu
c2ljKSB9CiB9OwogCkBAIC0xNzUsNiArMTc2LDcgQEAgQ09NUElMRV9BU1NFUlQoMHhmZmZmZmZm
ZiA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMSwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xMUkK
IENPTVBJTEVfQVNTRVJUKDB4MDEgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTIsIFRlc3RPYmpF
bnVtQ09OU1RfVkFMVUVfMTJJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOwogQ09NUElMRV9BU1NF
UlQoMFgyMCA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMywgVGVzdE9iakVudW1DT05TVF9WQUxV
RV8xM0lzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiBDT01QSUxFX0FTU0VSVCgweDFhYmMgPT0g
VGVzdE9iajo6Q09OU1RfVkFMVUVfMTQsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTRJc1dyb25n
VXNlRG9udENoZWNrRW51bXMpOworQ09NUElMRV9BU1NFUlQoMTUgPT0gVGVzdE9iajo6Q09OU1Rf
SU1QTCwgVGVzdE9iakVudW1DT05TVF9JTVBMSXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKIAog
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0T2Jq
Q29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgJkpTVGVzdE9iakNv
bnN0cnVjdG9yVGFibGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqQ29uc3RydWN0
b3IpIH07CiAKQEAgLTIyNSw2ICsyMjcsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUg
SlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiQ09OU1RfVkFMVUVfMTIi
LCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMTIpLCAoaW50cHRyX3QpMCBU
SFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAi
Q09OU1RfVkFMVUVfMTMiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMTMp
LCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5z
aWMpIH0sCiAgICAgeyAiQ09OU1RfVkFMVUVfMTQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
Q09OU1RfVkFMVUVfMTQpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lD
KERGRzo6Tm9JbnRyaW5zaWMpIH0sCisgICAgeyAiQ09OU1RfSkFWQVNDUklQVCIsIERvbnREZWxl
dGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKSwgKGludHB0cl90KTAgVEhVTktfR0VO
RVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgInZvaWRNZXRo
b2QiLCBEb250RGVsZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKSwgKGludHB0cl90
KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAg
IHsgInZvaWRNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZv
aWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5T
SUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJpbnRNZXRob2QiLCBEb250RGVsZXRlIHwg
RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25JbnRNZXRob2QpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1Io
MCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCkBAIC0xOTI5LDYgKzE5MzIsMTIgQEAg
SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xNChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUs
IGNvbnN0IElkZW50aWZpZXImKQogICAgIHJldHVybiBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQ+
KDB4MWFiYykpOwogfQogCitKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBVTlVTRURfUEFS
QU0oZXhlYyk7CisgICAgcmV0dXJuIGpzTnVtYmVyKHN0YXRpY19jYXN0PGludD4oMTUpKTsKK30K
KwogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPYmoqIGltcGwpCiB7CiAgICAgcmV0dXJuIHdyYXA8SlNU
ZXN0T2JqPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDljZGEwODZmNGVl
MDVlMjdiZDhiNjY3MjNlN2QyZDAwMzY0Nzg2MDYuLjZkMzE4ZjRmYjQ1ZTNhODJmZDI1MmMyNDIy
NTQ5ZmNkNzkyZTY5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTI1NSw2ICsyNTUsNyBAQCBKU0M6OkpTVmFsdWUg
anNUZXN0T2JqQ09OU1RfVkFMVUVfMTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNv
bnN0IEpTQzo6SQogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIEpTQzo6SlNW
YWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ09OU1Rf
VkFMVUVfMTQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA1ODZlMDAyMzY3NjgwODcxZWU4MzVj
MWQyNzkzNzU3MTA3N2UyMTM2Li4xZThjYjBiNWVhMGJmN2Y3ODRjNjJmMWUyYTAwZWM3MWM5ODlj
MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5oCkBAIC00OSw3ICs0OSw4IEBAIGVudW0gewogICAgIERPTV9DT05T
VF9WQUxVRV8xMSA9IDB4ZmZmZmZmZmYsCiAgICAgRE9NX0NPTlNUX1ZBTFVFXzEyID0gMHgwMSwK
ICAgICBET01fQ09OU1RfVkFMVUVfMTMgPSAwWDIwLAotICAgIERPTV9DT05TVF9WQUxVRV8xNCA9
IDB4MWFiYworICAgIERPTV9DT05TVF9WQUxVRV8xNCA9IDB4MWFiYywKKyAgICBET01fQ09OU1Rf
SkFWQVNDUklQVCA9IDE1CiB9OwogCiBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01PYmplY3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApp
bmRleCAxZDZjMjg2NTFkMmQyOGE4YTNkZjY0NjA4MjcwYTlhNzA5Nzg4YmM5Li41Zjc2Y2RiNDA5
NjVjNjRiZTFhZDVlNTEwYTQwMTY1ZGJkYTg2Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xOTAsNSArMTkwLDYgQEAgbW9k
dWxlIHRlc3QgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xMiA9
IDB4MDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUX1ZBTFVFXzEzID0gMFgy
MDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTQgPSAweDFhYmM7
CisgICAgICAgIGNvbnN0IFtSZWZsZWN0PUNPTlNUX0lNUExdIHVuc2lnbmVkIHNob3J0IENPTlNU
X0pBVkFTQ1JJUFQgPSAxNTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCBmNjUyODYzMmViNTU5
MzAxYTVhZjkxZTQyYWI1MjYwOWMwYjQ1M2FjLi5jNmU3MzI5OWMxOWY2NWUyNmY1MjVmYjcyOWM0
MjQ3NzRkNjg0YjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTM4Nyw2ICsxMzg3LDcgQEAgc3RhdGljIGNv
bnN0IEJhdGNoZWRDb25zdGFudCBUZXN0T2JqQ29uc3RzW10gPSB7CiAgICAgeyJDT05TVF9WQUxV
RV8xMiIsIHN0YXRpY19jYXN0PHNpZ25lZCBpbnQ+KDB4MDEpfSwKICAgICB7IkNPTlNUX1ZBTFVF
XzEzIiwgc3RhdGljX2Nhc3Q8c2lnbmVkIGludD4oMFgyMCl9LAogICAgIHsiQ09OU1RfVkFMVUVf
MTQiLCBzdGF0aWNfY2FzdDxzaWduZWQgaW50PigweDFhYmMpfSwKKyAgICB7IkNPTlNUX0pBVkFT
Q1JJUFQiLCBzdGF0aWNfY2FzdDxzaWduZWQgaW50PigxNSl9LAogfTsKIAogCkBAIC0xNDAxLDYg
KzE0MDIsNyBAQCBDT01QSUxFX0FTU0VSVCgweGZmZmZmZmZmID09IFRlc3RPYmo6OkNPTlNUX1ZB
TFVFXzExLCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzExSQogQ09NUElMRV9BU1NFUlQoMHgwMSA9
PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMiwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xMklzV3Jv
bmdVc2VEb250Q2hlY2tFbnVtcyk7CiBDT01QSUxFX0FTU0VSVCgwWDIwID09IFRlc3RPYmo6OkNP
TlNUX1ZBTFVFXzEzLCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzEzSXNXcm9uZ1VzZURvbnRDaGVj
a0VudW1zKTsKIENPTVBJTEVfQVNTRVJUKDB4MWFiYyA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8x
NCwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8xNElzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CitD
T01QSUxFX0FTU0VSVCgxNSA9PSBUZXN0T2JqOjpDT05TVF9JTVBMLCBUZXN0T2JqRW51bUNPTlNU
X0lNUExJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOwogCiBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJz
aXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJh
Y2suaWRsCmluZGV4IGQxNDA0MmQwODU2OTcwODhjYzc5ZTNkMjliZmZjM2I5Mjg5ZTBmMDMuLjg4
OGM5MTViZGE3OTI0M2EzOWZkZTI1NWY5MmE4MjM3YjlmYmQ5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
eHRUcmFjay5pZGwKQEAgLTMzLDE1ICszMywxNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7CiAKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9Tk9ORV0g
dW5zaWduZWQgc2hvcnQgTm9uZSA9IDA7Ci0gICAgICAgIGNvbnN0IFtSZWZsZWN0PUxPQURJTkdd
IHVuc2lnbmVkIHNob3J0IExvYWRpbmcgPSAxOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1MT0FE
RURdIHVuc2lnbmVkIHNob3J0IExvYWRlZCA9IDI7Ci0gICAgICAgIGNvbnN0IFtSZWZsZWN0PUVS
Uk9SXSB1bnNpZ25lZCBzaG9ydCBFcnJvciA9IDM7CisgICAgICAgIC8vIFJlZmxlY3QgaXMgdXNl
ZCBoZXJlIHRvIGF2b2lkIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluZSBjb25mbGljdHMKKyAgICAg
ICAgLy8gKGkuZS4gVGV4dFRyYWNrOjpFUlJPUiBjb25mbGljdHMgd2l0aCBhIHdpbmRvd3MgZGVm
aW5lKS4KKyAgICAgICAgY29uc3QgW1JlZmxlY3Q9Tm9uZV0gdW5zaWduZWQgc2hvcnQgTk9ORSA9
IDA7CisgICAgICAgIGNvbnN0IFtSZWZsZWN0PUxvYWRpbmddIHVuc2lnbmVkIHNob3J0IExPQURJ
TkcgPSAxOworICAgICAgICBjb25zdCBbUmVmbGVjdD1Mb2FkZWRdIHVuc2lnbmVkIHNob3J0IExP
QURFRCA9IDI7CisgICAgICAgIGNvbnN0IFtSZWZsZWN0PUVycm9yXSB1bnNpZ25lZCBzaG9ydCBF
UlJPUiA9IDM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFk
eVN0YXRlOwogCi0gICAgICAgIGNvbnN0IFtSZWZsZWN0PURJU0FCTEVEXSB1bnNpZ25lZCBzaG9y
dCBEaXNhYmxlZCA9IDA7Ci0gICAgICAgIGNvbnN0IFtSZWZsZWN0PUhJRERFTl0gdW5zaWduZWQg
c2hvcnQgSGlkZGVuID0gMTsKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9U0hPV0lOR10gdW5zaWdu
ZWQgc2hvcnQgU2hvd2luZyA9IDI7CisgICAgICAgIGNvbnN0IFtSZWZsZWN0PURpc2FibGVkXSB1
bnNpZ25lZCBzaG9ydCBESVNBQkxFRCA9IDA7CisgICAgICAgIGNvbnN0IFtSZWZsZWN0PUhpZGRl
bl0gdW5zaWduZWQgc2hvcnQgSElEREVOID0gMTsKKyAgICAgICAgY29uc3QgW1JlZmxlY3Q9U2hv
d2luZ10gdW5zaWduZWQgc2hvcnQgU0hPV0lORyA9IDI7CiAgICAgICAgIGF0dHJpYnV0ZSB1bnNp
Z25lZCBzaG9ydCBtb2RlCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYjdmYTRmMThhYTYxNzZjYzY2YzlhNTIyOWUyNjJlOWU0ZTY4ZGE3My4uYWE2
MWE5NDkyZDg0NGQ1NzRlZDZhYmQ3NDgyZDcyYjlhMzQ5Mjc3ZSAxMDA3NTUKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDExLTExLTAxICBBbm5hIENhdmVuZGVyICA8YW5uYWNjQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBNYWtlcyBbUmVmbGVjdF0gd29yayBmb3IgY29uc3RhbnRzLgorICAgICAgICBUaGlz
IGlzIG5lZWRlZCB0byBhdm9pZCBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbmUgY29uZmxpY3RzLCBz
cGVjaWZpY2FsbHkKKyAgICAgICAgVGV4dFRyYWNrOjpFUlJPUiBjb25mbGljdHMgd2l0aCBhIHdp
bmRvd3MgZGVmaW5lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzA5NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBtZWRpYS90cmFjay90cmFjay1sb2FkLWVycm9yLXJlYWR5U3RhdGUuaHRtbDogVXBkYXRl
ZCB3aXRoIG5ldyBjb25zdCBuYW1lLgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQt
ZnJvbS1lbGVtZW50LXJlYWR5U3RhdGUuaHRtbDogVXBkYXRlZCB3aXRoIG5ldyBjb25zdCBuYW1l
LgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1zcmMtcmVhZHlTdGF0ZS5o
dG1sOiBVcGRhdGVkIHdpdGggbmV3IGNvbnN0IG5hbWUuCisgICAgICAgIAorICAgICAgICBWSURF
T19UUkFDSyBpcyBub3QgZW5hYmxlZCBvbiB0aGVzZSBwb3J0cywgc28gc2tpcHBpbmcgdGhpcyB0
ZXN0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Ta2lwcGVkOgorCiAyMDExLTExLTAxICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsIGFuZCBib3gtc2l6aW5n
OiBib3JkZXItYm94IGNhbGN1bGF0ZXMgY29udGVudC1ib3ggaGVpZ2h0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jb25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMTUzY2MyYjcwNTY5MDg0MGNmMzliMDE5NjdmZDAxOGU4ODc2YjVmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IFRleHRUcmFjayBjb25zdGFudHMuCisKK0VYUEVD
VEVEIChUZXh0VHJhY2suTk9ORSA9PSAnMCcpIE9LCitFWFBFQ1RFRCAoVGV4dFRyYWNrLkxPQURJ
TkcgPT0gJzEnKSBPSworRVhQRUNURUQgKFRleHRUcmFjay5MT0FERUQgPT0gJzInKSBPSworRVhQ
RUNURUQgKFRleHRUcmFjay5FUlJPUiA9PSAnMycpIE9LCisKK0VYUEVDVEVEIChUZXh0VHJhY2su
RElTQUJMRUQgPT0gJzAnKSBPSworRVhQRUNURUQgKFRleHRUcmFjay5ISURERU4gPT0gJzEnKSBP
SworRVhQRUNURUQgKFRleHRUcmFjay5TSE9XSU5HID09ICcyJykgT0sKK0VORCBPRiBURVNUCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjk2MzYzN2Y0Y2IyZWU0NzM2NjBhNDBlNThiMWQ2YzM3ZGYxZWI5OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sCkBAIC0w
LDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gZG9UZXN0ICgpIAorICAgICAgICB7CisgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5OT05FIiwgMCk7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5MT0FESU5HIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoIlRleHRUcmFjay5MT0FERUQiLCAyKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
VGV4dFRyYWNrLkVSUk9SIiwgMyk7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5ESVNBQkxFRCIsIDApOworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJUZXh0VHJhY2suSElEREVOIiwgMSk7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5TSE9XSU5HIiwgMik7CisgICAgICAgIAorICAgICAgICAg
ICAgZW5kVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9ImRvVGVzdCgpIj4KKyAgICA8cD5UZXN0IFRleHRUcmFjayBjb25zdGFudHMuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stbG9hZC1lcnJvci1yZWFkeVN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90
cmFjay1sb2FkLWVycm9yLXJlYWR5U3RhdGUuaHRtbAppbmRleCA1M2YzOThhMzhjOTcxNjFiMjZk
YmVkODdiMTAwN2NlZjk3N2Y4MzhjLi5mN2U2ZThlOTRkOGViMTI2YWMxNDVjOWY0MjU3MjNiNmEz
MGViYWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWVy
cm9yLXJlYWR5U3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1s
b2FkLWVycm9yLXJlYWR5U3RhdGUuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiRVZFTlQoZXJyb3IpIik7CiAgICAgICAg
ICAgICAgICAgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFRyYWNrRXJyb3In
KTsgCi0gICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0cmFjay50cmFjay5yZWFkeVN0YXRl
IiwgVGV4dFRyYWNrLkVycm9yKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNr
LnRyYWNrLnJlYWR5U3RhdGUiLCBUZXh0VHJhY2suRVJST1IpOwogICAgICAgICAgICAgICAgIGVu
ZFRlc3QoKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2stbG9hZC1mcm9tLWVsZW1lbnQtcmVhZHlTdGF0ZS5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLWVsZW1lbnQtcmVhZHlTdGF0ZS5odG1sCmlu
ZGV4IGNmMDQ2NDhiMGVkMDYxYzBmMDM1OTE3YTRjNDRjMTE4YjEwY2E4MWMuLmJmYzY1N2ZjYTlh
MzI4YTI4MjIyOGQ5MjA3MjBjZjZmMjQ2N2YwZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1lbGVtZW50LXJlYWR5U3RhdGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tZWxlbWVudC1yZWFkeVN0YXRl
Lmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkVWRU5UKGxvYWQpIik7CiAgICAgICAgICAgICAgICAgdHJhY2sgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFRyYWNrU3JjJyk7IAotICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5Mb2FkZWQpOwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRl
eHRUcmFjay5MT0FERUQpOwogICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9t
LXNyYy1yZWFkeVN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2Fk
LWZyb20tc3JjLXJlYWR5U3RhdGUuaHRtbAppbmRleCA2MWViYjJkMGRjMzA4OGY1Njc2YTMxNjli
YzA0NWQxZGVmNDk3NzY2Li45YzhhZjMxYmJhYmUzNjg0MzE0ODdiNjAwYjVmMzg4OGY2ZDk4NDIw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3Jj
LXJlYWR5U3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2Fk
LWZyb20tc3JjLXJlYWR5U3RhdGUuaHRtbApAQCAtMTYsMTIgKzE2LDEyIEBACiAgICAgICAgICAg
ICBmdW5jdGlvbiB0cmFja0xvYWRlZCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCJFVkVOVChsb2FkKSIpOwotICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5Mb2FkZWQpOworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5M
T0FERUQpOwogICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFRyYWNrRW1wdHkn
KTsKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRl
eHRUcmFjay5Ob25lKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVh
ZHlTdGF0ZSIsIFRleHRUcmFjay5OT05FKTsKICAgICAgICAgICAgIHRyYWNrLmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7IHRyYWNrTG9hZGVkKCk7IH0sIHRydWUpOwogICAg
ICAgICAgICAgdHJhY2suc3JjID0gImNhcHRpb25zLXdlYnZ0dC90YzAwNC13ZWJ2dHQtZmlsZS52
dHQiOyAgIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IGRiZDllYWFkMGJiM2FhZmJl
YjY2ZjBmOGYxYjA0ZGM2NjM4ZDFkZTEuLjBmZWYxNWQ2NDk3MzE5OTIyOTBkNzIxNGFiYjdkZWQx
MWI5ZWNhNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC00MjEsNiArNDIxLDcgQEAg
ZmFzdC9kb20vTWljcm9EYXRhCiAKICMgVGVzdHMgZm9yIDx0cmFjaz4uICBGZWF0dXJlIGlzIG5v
dCB5ZXQgZnVuY3Rpb25hbC4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQzNjY4CittZWRpYS90cmFjay90cmFjay1jb25zdGFudHMuaHRtbAogbWVkaWEvdHJhY2sv
dHJhY2stbG9hZC1lcnJvci1yZWFkeVN0YXRlLmh0bWwKIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQt
ZnJvbS1lbGVtZW50LXJlYWR5U3RhdGUuaHRtbAogbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9t
LXNyYy1yZWFkeVN0YXRlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNmU2YmRm
MGQwMDU1Mzk5ODhjOTY0Njk3ODZjZmQ4MWI5OWJmODFhYy4uM2YyYWI3MDgwYzI1MTFhOWMwOTIw
MWE4NzE1ZDljMjQ1MGQ1Yzg2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTE0MDUs
NiArMTQwNSw3IEBAIGZhc3QvbXV0YXRpb24KIAogIyBUZXN0cyBmb3IgPHRyYWNrPi4gIEZlYXR1
cmUgaXMgbm90IHlldCBmdW5jdGlvbmFsLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDM2NjgKK21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sCiBtZWRp
YS90cmFjay90cmFjay1sb2FkLWVycm9yLXJlYWR5U3RhdGUuaHRtbAogbWVkaWEvdHJhY2svdHJh
Y2stbG9hZC1mcm9tLWVsZW1lbnQtcmVhZHlTdGF0ZS5odG1sCiBtZWRpYS90cmFjay90cmFjay1s
b2FkLWZyb20tc3JjLXJlYWR5U3RhdGUuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113264</attachid>
            <date>2011-11-01 17:29:53 -0700</date>
            <delta_ts>2011-11-01 18:52:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-70951-20111101172952.patch</filename>
            <type>text/plain</type>
            <size>21098</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkwMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTMzMTkyMjRlYzUxY2E1
N2UxZjY0NDMzMWMyODRhZDM4YjIwZGE5Li4wNWIzMmFjYjhjNmJmZGNiOTAzNDA4YzgyY2Q2OWEz
ODk0YmUyNmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMDEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0
XSB3b3JrIGZvciBjb25zdGFudHMuCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIHBs
YXRmb3JtLXNwZWNpZmljIGRlZmluZSBjb25mbGljdHMsIHNwZWNpZmljYWxseQorICAgICAgICBU
ZXh0VHJhY2s6OkVSUk9SIGNvbmZsaWN0cyB3aXRoIGEgd2luZG93cyBkZWZpbmUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk1MQorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3Ry
YWNrLWNvbnN0YW50cy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3IucG06CisgICAgICAgIChHZW5lcmF0ZUNvbXBpbGVUaW1lQ2hlY2tGb3JFbnVtc0lmTmVl
ZGVkKToKKyAgICAgICAgICAgIENoZWNrIGZvciBbUmVmbGVjdF0gYW5kIGFzc2lnbiBuYW1lIGFj
Y29yZGluZ2x5LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmg6ICBVcGRhdGUgdGVzdCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwOiAgVXBkYXRlIHRlc3QgZmlsZS4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaDogIFVwZGF0ZSB0ZXN0IGZpbGUuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOiAgVXBkYXRlIHRlc3QgZmlsZS4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6ICBVcGRhdGUgdGVz
dCBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
OiAgVXBkYXRlIHRlc3QgZmlsZS4KKworICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2su
Y3BwOiBVc2UgbmV3IERPTSBjb25zdCBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVU
ZXh0VHJhY2s6OmN1ZUxvYWRpbmdTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxl
VGV4dFRyYWNrOjpjdWVMb2FkaW5nQ29tcGxldGVkKToKKyAgICAgICAgKiBodG1sL1RleHRUcmFj
ay5jcHA6ICBVc2UgbmV3IERPTSBjb25zdCBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrOjpUZXh0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRNb2RlKToK
KyAgICAgICAgKiBodG1sL1RleHRUcmFjay5oOiAgVXNlIG5ldyBET00gY29uc3QgbmFtZS4KKyAg
ICAgICAgKiBodG1sL1RleHRUcmFjay5pZGw6ICBVc2UgUmVmbGVjdCBmb3IgRVJST1IsIGJ1dCBs
ZWF2ZSBvdGhlciBET00gY29uc3QgbmFtZXMuCisKIDIwMTEtMTEtMDEgIEVtaWwgQSBFa2x1bmQg
IDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFN3aXRjaCBQb3B1cE1lbnVDbGllbnQgdG8g
bGF5b3V0IGFic3RyYWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3IucG0KaW5kZXggN2ViNjc2ZmU2MDRiODM5YTU4MWFmOTM4OGRiN2RmYTA4
OWMyYzYzMy4uMjBkZGM1MjliMTAxZjI5NWYzOWJlZjJhMDQyNmNlMDVjZjEwMTA1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQpAQCAt
NTY4LDcgKzU2OCw4IEBAIHN1YiBHZW5lcmF0ZUNvbXBpbGVUaW1lQ2hlY2tGb3JFbnVtc0lmTmVl
ZGVkCiAgICAgaWYgKFNob3VsZENoZWNrRW51bXMoJGRhdGFOb2RlKSAmJiBAeyRkYXRhTm9kZS0+
Y29uc3RhbnRzfSkgewogICAgICAgICBwdXNoKEBjaGVja3MsICJcbiIpOwogICAgICAgICBmb3Jl
YWNoIG15ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNvbnN0YW50c30pIHsKLSAgICAgICAgICAg
IG15ICRuYW1lID0gJGNvbnN0YW50LT5uYW1lOworICAgICAgICAgICAgbXkgJHJlZmxlY3QgPSAk
Y29uc3RhbnQtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In07CisgICAgICAgICAgICBt
eSAkbmFtZSA9ICRyZWZsZWN0ID8gJHJlZmxlY3QgOiAkY29uc3RhbnQtPm5hbWU7CiAgICAgICAg
ICAgICBteSAkdmFsdWUgPSAkY29uc3RhbnQtPnZhbHVlOwogICAgICAgICAgICAgcHVzaChAY2hl
Y2tzLCAiQ09NUElMRV9BU1NFUlQoJHZhbHVlID09ICR7aW50ZXJmYWNlTmFtZX06OiRuYW1lLCAk
e2ludGVyZmFjZU5hbWV9RW51bSR7bmFtZX1Jc1dyb25nVXNlRG9udENoZWNrRW51bXMpO1xuIik7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggMGI0OGIzYjc2ZjU2YzU0MDM1MDk0MzE2
MzcxNjU5ZDgxZjM5NjMwOC4uZjA0MjdlYTQ2ODNiOWU4YmNlNjQ3OGVkODJhMWE4YzI0OGMzNDlh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTU4LDcgKzU4LDggQEAgcHVibGljOgogICAgICAgICBX
RUJET01fQ09OU1RfVkFMVUVfMTEgPSAweGZmZmZmZmZmLAogICAgICAgICBXRUJET01fQ09OU1Rf
VkFMVUVfMTIgPSAweDAxLAogICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTMgPSAwWDIwLAot
ICAgICAgICBXRUJET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMKKyAgICAgICAgV0VCRE9NX0NP
TlNUX1ZBTFVFXzE0ID0gMHgxYWJjLAorICAgICAgICBXRUJET01fQ09OU1RfSkFWQVNDUklQVCA9
IDE1CiAgICAgfTsKIAogICAgIGludCByZWFkT25seUludEF0dHIoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
aW5kZXggNjYzNzZkYjFiOTdkMmI1NjM2YTZhZDk1NzMyNzA3ZDk0NWQ1M2I0My4uMzNlNmFjYmVk
Njk3N2M3MTllNGIwMGJlZDNiN2Y2NmVjN2RkYWZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE1OCw2ICsx
NTgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqQ29uc3RydWN0b3JU
YWJsZVZhbHVlc1tdID0KICAgICB7ICJDT05TVF9WQUxVRV8xMiIsIERvbnREZWxldGUgfCBSZWFk
T25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpDT05TVF9WQUxVRV8xMiksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJ
TlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJDT05TVF9WQUxVRV8xMyIsIERv
bnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMyksIChpbnRwdHJfdCkwIFRIVU5L
X0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJDT05T
VF9WQUxVRV8xNCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xNCksIChp
bnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykg
fSwKKyAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNP
TlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lD
KERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAwLCAwLCAwLCAwIFRIVU5LX0dFTkVSQVRPUigw
KSBJTlRSSU5TSUMoREZHOjpOb0ludHJpbnNpYykgfQogfTsKIApAQCAtMTc1LDYgKzE3Niw3IEBA
IENPTVBJTEVfQVNTRVJUKDB4ZmZmZmZmZmYgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTEsIFRl
c3RPYmpFbnVtQ09OU1RfVkFMVUVfMTFJCiBDT01QSUxFX0FTU0VSVCgweDAxID09IFRlc3RPYmo6
OkNPTlNUX1ZBTFVFXzEyLCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzEySXNXcm9uZ1VzZURvbnRD
aGVja0VudW1zKTsKIENPTVBJTEVfQVNTRVJUKDBYMjAgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVf
MTMsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTNJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOwog
Q09NUElMRV9BU1NFUlQoMHgxYWJjID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzE0LCBUZXN0T2Jq
RW51bUNPTlNUX1ZBTFVFXzE0SXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsKK0NPTVBJTEVfQVNT
RVJUKDE1ID09IFRlc3RPYmo6OkNPTlNUX0lNUEwsIFRlc3RPYmpFbnVtQ09OU1RfSU1QTElzV3Jv
bmdVc2VEb250Q2hlY2tFbnVtcyk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iakNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yT2Jq
ZWN0OjpzX2luZm8sICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE9iakNvbnN0cnVjdG9yKSB9OwogCkBAIC0yMjUsNiArMjI3LDcgQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10g
PQogICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNU
X1ZBTFVFXzEyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6
Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDAp
IElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAogICAgIHsgIkNPTlNUX1ZBTFVFXzE0Iiwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KSwgKGludHB0cl90KTAgVEhV
TktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9LAorICAgIHsgIkNP
TlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFWQVNDUklQ
VCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMoREZHOjpOb0ludHJp
bnNpYykgfSwKICAgICB7ICJ2b2lkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVm9pZE1ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSBJTlRSSU5TSUMo
REZHOjpOb0ludHJpbnNpYykgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVs
ZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMyBU
SFVOS19HRU5FUkFUT1IoMCkgSU5UUklOU0lDKERGRzo6Tm9JbnRyaW5zaWMpIH0sCiAgICAgeyAi
aW50TWV0aG9kIiwgRG9udERlbGV0ZSB8IEZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uSW50TWV0aG9kKSwgKGlu
dHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIElOVFJJTlNJQyhERkc6Ok5vSW50cmluc2ljKSB9
LApAQCAtMTkyOSw2ICsxOTMyLDEyIEBAIEpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMTQo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKICAgICByZXR1cm4g
anNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50PigweDFhYmMpKTsKIH0KIAorSlNWYWx1ZSBqc1Rlc3RP
YmpDT05TVF9KQVZBU0NSSVBUKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSwgY29uc3QgSWRlbnRp
ZmllciYpCit7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIHJldHVybiBqc051bWJlcihz
dGF0aWNfY2FzdDxpbnQ+KDE1KSk7Cit9CisKIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T2JqKiBpbXBs
KQogewogICAgIHJldHVybiB3cmFwPEpTVGVzdE9iaj4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAppbmRleCA5Y2RhMDg2ZjRlZTA1ZTI3YmQ4YjY2NzIzZTdkMmQwMDM2NDc4NjA2Li42
ZDMxOGY0ZmI0NWUzYTgyZmQyNTJjMjQyMjU0OWZjZDc5MmU2OWUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0yNTUs
NiArMjU1LDcgQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzExKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OkkKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RP
YmpDT05TVF9WQUxVRV8xMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlND
OjpJZGVudGlmaWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMTMoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogSlND
OjpKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzE0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpD
T05TVF9KQVZBU0NSSVBUKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6
OklkZW50aWZpZXImKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5k
ZXggNTg2ZTAwMjM2NzY4MDg3MWVlODM1YzFkMjc5Mzc1NzEwNzdlMjEzNi4uMWU4Y2IwYjVlYTBi
ZjdmNzg0YzYyZjFlMmEwMGVjNzFjOTg5YzE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNDksNyArNDks
OCBAQCBlbnVtIHsKICAgICBET01fQ09OU1RfVkFMVUVfMTEgPSAweGZmZmZmZmZmLAogICAgIERP
TV9DT05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAgRE9NX0NPTlNUX1ZBTFVFXzEzID0gMFgyMCwK
LSAgICBET01fQ09OU1RfVkFMVUVfMTQgPSAweDFhYmMKKyAgICBET01fQ09OU1RfVkFMVUVfMTQg
PSAweDFhYmMsCisgICAgRE9NX0NPTlNUX0pBVkFTQ1JJUFQgPSAxNQogfTsKIAogQGludGVyZmFj
ZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggMWQ2YzI4NjUxZDJkMjhhOGEzZGY2NDYwODI3
MGE5YTcwOTc4OGJjOS4uNWY3NmNkYjQwOTY1YzY0YmUxYWQ1ZTUxMGE0MDE2NWRiZGE4NmM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bApAQCAtMTkwLDUgKzE5MCw2IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTIgPSAweDAxOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBDT05TVF9WQUxVRV8xMyA9IDBYMjA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENPTlNUX1ZBTFVFXzE0ID0gMHgxYWJjOworICAgICAgICBjb25zdCBbUmVmbGVjdD1DT05TVF9J
TVBMXSB1bnNpZ25lZCBzaG9ydCBDT05TVF9KQVZBU0NSSVBUID0gMTU7CiAgICAgfTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKaW5kZXggZjY1Mjg2MzJlYjU1OTMwMWE1YWY5MWU0MmFiNTI2MDljMGI0NTNhYy4uYzZl
NzMyOTljMTlmNjVlMjZmNTI1ZmI3MjljNDI0Nzc0ZDY4NGIyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTEz
ODcsNiArMTM4Nyw3IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQ29uc3RhbnQgVGVzdE9iakNvbnN0
c1tdID0gewogICAgIHsiQ09OU1RfVkFMVUVfMTIiLCBzdGF0aWNfY2FzdDxzaWduZWQgaW50Pigw
eDAxKX0sCiAgICAgeyJDT05TVF9WQUxVRV8xMyIsIHN0YXRpY19jYXN0PHNpZ25lZCBpbnQ+KDBY
MjApfSwKICAgICB7IkNPTlNUX1ZBTFVFXzE0Iiwgc3RhdGljX2Nhc3Q8c2lnbmVkIGludD4oMHgx
YWJjKX0sCisgICAgeyJDT05TVF9KQVZBU0NSSVBUIiwgc3RhdGljX2Nhc3Q8c2lnbmVkIGludD4o
MTUpfSwKIH07CiAKIApAQCAtMTQwMSw2ICsxNDAyLDcgQEAgQ09NUElMRV9BU1NFUlQoMHhmZmZm
ZmZmZiA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMSwgVGVzdE9iakVudW1DT05TVF9WQUxVRV8x
MUkKIENPTVBJTEVfQVNTRVJUKDB4MDEgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTIsIFRlc3RP
YmpFbnVtQ09OU1RfVkFMVUVfMTJJc1dyb25nVXNlRG9udENoZWNrRW51bXMpOwogQ09NUElMRV9B
U1NFUlQoMFgyMCA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMywgVGVzdE9iakVudW1DT05TVF9W
QUxVRV8xM0lzV3JvbmdVc2VEb250Q2hlY2tFbnVtcyk7CiBDT01QSUxFX0FTU0VSVCgweDFhYmMg
PT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTQsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfMTRJc1dy
b25nVXNlRG9udENoZWNrRW51bXMpOworQ09NUElMRV9BU1NFUlQoMTUgPT0gVGVzdE9iajo6Q09O
U1RfSU1QTCwgVGVzdE9iakVudW1DT05TVF9JTVBMSXNXcm9uZ1VzZURvbnRDaGVja0VudW1zKTsK
IAogc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVW
OFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVz
YykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHAKaW5kZXggM2Q2
ZjhjMzdlMTlmNzEwMzMyMjgwZjY1ODQyNzI2NzU0YmI3YmUwNS4uMDJiNzUzMDJhMDI5YjFjNGZm
ZTlmOTJiY2IwMDY2ZGI1OTMzNWVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9M
b2FkYWJsZVRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRl
eHRUcmFjay5jcHAKQEAgLTYwLDE0ICs2MCwxNCBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpj
dWVMb2FkaW5nU3RhcnRlZChUZXh0VHJhY2tMb2FkZXIqIGxvYWRlcikKIHsKICAgICBBU1NFUlRf
VU5VU0VEKGxvYWRlciwgbV9sb2FkZXIgPT0gbG9hZGVyKTsKICAgICAKLSAgICBzZXRSZWFkeVN0
YXRlKFRleHRUcmFjazo6TG9hZGluZyk7CisgICAgc2V0UmVhZHlTdGF0ZShUZXh0VHJhY2s6OkxP
QURJTkcpOwogfQogCiB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpjdWVMb2FkaW5nQ29tcGxldGVk
KFRleHRUcmFja0xvYWRlciogbG9hZGVyLCBib29sIGxvYWRpbmdGYWlsZWQpCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChsb2FkZXIsIG1fbG9hZGVyID09IGxvYWRlcik7CiAKLSAgICBsb2FkaW5nRmFp
bGVkID8gc2V0UmVhZHlTdGF0ZShUZXh0VHJhY2s6OkVycm9yKSA6IHNldFJlYWR5U3RhdGUoVGV4
dFRyYWNrOjpMb2FkZWQpOworICAgIGxvYWRpbmdGYWlsZWQgPyBzZXRSZWFkeVN0YXRlKFRleHRU
cmFjazo6SFRNTF9FUlJPUikgOiBzZXRSZWFkeVN0YXRlKFRleHRUcmFjazo6TE9BREVEKTsKIAog
ICAgIGlmIChtX2xvYWRpbmdDbGllbnQpCiAgICAgICAgIG1fbG9hZGluZ0NsaWVudC0+dGV4dFRy
YWNrTG9hZGluZ0NvbXBsZXRlZCh0aGlzLCBsb2FkaW5nRmFpbGVkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dFRyYWNrLmNwcAppbmRleCBiOTVlMjAzYjU2ZGQ4NWU4MzdhZjQ3MWIxMTJkYWQ3MDE4MmMwZDc0
Li5kYjE2YThlYjhmMzQzYzZhMzA5YTAzNzdkNWQ4ODM2YzUwZGJjOWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0VHJhY2suY3BwCkBAIC00Miw4ICs0Miw4IEBAIFRleHRUcmFjazo6VGV4dFRyYWNrKFRl
eHRUcmFja0NsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYK
ICAgICA6IG1fa2luZChraW5kKQogICAgICwgbV9sYWJlbChsYWJlbCkKICAgICAsIG1fbGFuZ3Vh
Z2UobGFuZ3VhZ2UpCi0gICAgLCBtX3JlYWR5U3RhdGUoVGV4dFRyYWNrOjpOb25lKQotICAgICwg
bV9tb2RlKFRleHRUcmFjazo6U2hvd2luZykKKyAgICAsIG1fcmVhZHlTdGF0ZShUZXh0VHJhY2s6
Ok5PTkUpCisgICAgLCBtX21vZGUoVGV4dFRyYWNrOjpTSE9XSU5HKQogICAgICwgbV9jbGllbnQo
Y2xpZW50KQogewogfQpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZSh1
bnNpZ25lZCBzaG9ydCBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICAvLyA0LjguMTAu
MTIuNSBPbiBzZXR0aW5nIHRoZSBtb2RlLCBpZiB0aGUgbmV3IHZhbHVlIGlzIG5vdCBlaXRoZXIg
MCwgMSwgb3IgMiwKICAgICAvLyB0aGUgdXNlciBhZ2VudCBtdXN0IHRocm93IGFuIElOVkFMSURf
QUNDRVNTX0VSUiBleGNlcHRpb24uCi0gICAgaWYgKG1vZGUgPT0gVGV4dFRyYWNrOjpEaXNhYmxl
ZCB8fCBtb2RlID09IFRleHRUcmFjazo6SGlkZGVuIHx8IG1vZGUgPT0gVGV4dFRyYWNrOjpTaG93
aW5nKSB7CisgICAgaWYgKG1vZGUgPT0gVGV4dFRyYWNrOjpESVNBQkxFRCB8fCBtb2RlID09IFRl
eHRUcmFjazo6SElEREVOIHx8IG1vZGUgPT0gVGV4dFRyYWNrOjpTSE9XSU5HKSB7CiAgICAgICAg
IG1fbW9kZSA9IHN0YXRpY19jYXN0PE1vZGU+KG1vZGUpOwogICAgICAgICBpZiAobV9jbGllbnQp
CiAgICAgICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9kZUNoYW5nZWQodGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0VHJhY2suaAppbmRleCA3ZDFmNjZhM2YxZWIwYzc3Y2EzMjY5NjM2ZDVjMGE4YzFj
MmRjMmU3Li44MDBhMGVlYjM0ZDYzMjFhZjM5NDY2NTc3NzY3YjIyZTlmOWJjMTZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dFRyYWNrLmgKQEAgLTYzLDEwICs2MywxMCBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IGxhYmVsKCkgY29uc3Q7CiAgICAgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Q7CiAKLSAgICBlbnVt
IFJlYWR5U3RhdGUgeyBOb25lID0gMCwgTG9hZGluZyA9IDEsIExvYWRlZCA9IDIsIEVycm9yID0g
MyB9OworICAgIGVudW0gUmVhZHlTdGF0ZSB7IE5PTkUgPSAwLCBMT0FESU5HID0gMSwgTE9BREVE
ID0gMiwgSFRNTF9FUlJPUiA9IDMgfTsKICAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25z
dDsKIAotICAgIGVudW0gTW9kZSB7IERpc2FibGVkID0gMCwgSGlkZGVuID0gMSwgU2hvd2luZyA9
IDIgfTsKKyAgICBlbnVtIE1vZGUgeyBESVNBQkxFRCA9IDAsIEhJRERFTiA9IDEsIFNIT1dJTkcg
PSAyIH07CiAgICAgTW9kZSBtb2RlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNb2RlKHVuc2lnbmVk
IHNob3J0LCBFeGNlcHRpb25Db2RlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmlkbAppbmRl
eCBkMTQwNDJkMDg1Njk3MDg4Y2M3OWUzZDI5YmZmYzNiOTI4OWUwZjAzLi5hZTQyNzEyYzljNWE0
YzA0NzM0NjIyMTI4YWQ4ODAyNjljOWNiMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRUcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaWRs
CkBAIC0zMywxNSArMzMsMTYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGxhbmd1YWdlOwogCi0gICAgICAgIGNvbnN0IFtSZWZsZWN0PU5PTkVdIHVuc2lnbmVkIHNo
b3J0IE5vbmUgPSAwOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1MT0FESU5HXSB1bnNpZ25lZCBz
aG9ydCBMb2FkaW5nID0gMTsKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9TE9BREVEXSB1bnNpZ25l
ZCBzaG9ydCBMb2FkZWQgPSAyOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1FUlJPUl0gdW5zaWdu
ZWQgc2hvcnQgRXJyb3IgPSAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT05FID0g
MDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTE9BRElORyA9IDE7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IExPQURFRCA9IDI7CisgICAgICAgIC8vIFJlZmxlY3QgaXMgdXNl
ZCBmb3IgVGV4dFRyYWNrOjpFUlJPUiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIGEgd2luZG93
cyBkZWZpbmUuCisgICAgICAgIGNvbnN0IFtSZWZsZWN0PUhUTUxfRVJST1JdIHVuc2lnbmVkIHNo
b3J0IEVSUk9SID0gMzsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
IHJlYWR5U3RhdGU7CiAKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9RElTQUJMRURdIHVuc2lnbmVk
IHNob3J0IERpc2FibGVkID0gMDsKLSAgICAgICAgY29uc3QgW1JlZmxlY3Q9SElEREVOXSB1bnNp
Z25lZCBzaG9ydCBIaWRkZW4gPSAxOwotICAgICAgICBjb25zdCBbUmVmbGVjdD1TSE9XSU5HXSB1
bnNpZ25lZCBzaG9ydCBTaG93aW5nID0gMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
RElTQUJMRUQgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBISURERU4gPSAxOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTSE9XSU5HID0gMjsKICAgICAgICAgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IG1vZGUKICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAwMmE5MTk3NzMzZTFjZDgyMjJlZmY2OGI3YzljNWU0OWY5NGE3
NjUyLi5jNTlmOTMzMmY5YjA2NWIwYWMxYzA0MzM2OTY2NDFkMzk2ZDBiMWJkIDEwMDc1NQotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTEtMTEtMDEgIEFubmEgQ2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIE1ha2VzIFtSZWZsZWN0XSB3b3JrIGZvciBjb25zdGFudHMuCisgICAg
ICAgIFRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluZSBjb25m
bGljdHMsIHNwZWNpZmljYWxseQorICAgICAgICBUZXh0VHJhY2s6OkVSUk9SIGNvbmZsaWN0cyB3
aXRoIGEgd2luZG93cyBkZWZpbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZXJyb3ItcmVhZHlTdGF0ZS5odG1sOiAg
VXBkYXRlZCB3aXRoIG5ldyBjb25zdCBuYW1lLgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNr
LWxvYWQtZnJvbS1lbGVtZW50LXJlYWR5U3RhdGUuaHRtbDogIFVwZGF0ZWQgd2l0aCBuZXcgY29u
c3QgbmFtZS4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3JjLXJlYWR5
U3RhdGUuaHRtbDogIFVwZGF0ZWQgd2l0aCBuZXcgY29uc3QgbmFtZS4KKyAgICAgICAgCisgICAg
ICAgIFZJREVPX1RSQUNLIGlzIG5vdCBlbmFibGVkIG9uIHRoZXNlIHBvcnRzLCBzbyBza2lwcGlu
ZyB0aGlzIHRlc3Q6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTEtMTEtMDEgIEpvaG4gR3JlZ2cgIDxqb2hubnln
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSBnZXR0ZXItb24td2luZG93LW9iamVj
dDIuaHRtbCBhZnRlciByOTkwMDUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jb25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTUzY2MyYjcwNTY5MDg0
MGNmMzliMDE5NjdmZDAxOGU4ODc2YjVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svdHJhY2stY29uc3RhbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitUZXN0IFRleHRUcmFjayBjb25zdGFudHMuCisKK0VYUEVDVEVEIChUZXh0VHJhY2suTk9ORSA9
PSAnMCcpIE9LCitFWFBFQ1RFRCAoVGV4dFRyYWNrLkxPQURJTkcgPT0gJzEnKSBPSworRVhQRUNU
RUQgKFRleHRUcmFjay5MT0FERUQgPT0gJzInKSBPSworRVhQRUNURUQgKFRleHRUcmFjay5FUlJP
UiA9PSAnMycpIE9LCisKK0VYUEVDVEVEIChUZXh0VHJhY2suRElTQUJMRUQgPT0gJzAnKSBPSwor
RVhQRUNURUQgKFRleHRUcmFjay5ISURERU4gPT0gJzEnKSBPSworRVhQRUNURUQgKFRleHRUcmFj
ay5TSE9XSU5HID09ICcyJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2stY29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2MzYzN2Y0Y2IyZWU0NzM2
NjBhNDBlNThiMWQ2YzM3ZGYxZWI5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0Lmpz
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAg
ZnVuY3Rpb24gZG9UZXN0ICgpIAorICAgICAgICB7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
IlRleHRUcmFjay5OT05FIiwgMCk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFj
ay5MT0FESU5HIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFjay5MT0FE
RUQiLCAyKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiVGV4dFRyYWNrLkVSUk9SIiwgMyk7
CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoIlRleHRUcmFjay5ESVNBQkxFRCIsIDApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJU
ZXh0VHJhY2suSElEREVOIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIlRleHRUcmFj
ay5TSE9XSU5HIiwgMik7CisgICAgICAgIAorICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKyAg
ICA8cD5UZXN0IFRleHRUcmFjayBjb25zdGFudHMuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1lcnJvci1yZWFkeVN0
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWVycm9yLXJlYWR5
U3RhdGUuaHRtbAppbmRleCA1M2YzOThhMzhjOTcxNjFiMjZkYmVkODdiMTAwN2NlZjk3N2Y4Mzhj
Li5mN2U2ZThlOTRkOGViMTI2YWMxNDVjOWY0MjU3MjNiNmEzMGViYWRiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWVycm9yLXJlYWR5U3RhdGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWVycm9yLXJlYWR5U3RhdGUu
aHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiRVZFTlQoZXJyb3IpIik7CiAgICAgICAgICAgICAgICAgdHJhY2sgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFRyYWNrRXJyb3InKTsgCi0gICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJ0cmFjay50cmFjay5yZWFkeVN0YXRlIiwgVGV4dFRyYWNrLkVycm9yKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrLnRyYWNrLnJlYWR5U3RhdGUiLCBU
ZXh0VHJhY2suRVJST1IpOwogICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9t
LWVsZW1lbnQtcmVhZHlTdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
bG9hZC1mcm9tLWVsZW1lbnQtcmVhZHlTdGF0ZS5odG1sCmluZGV4IGNmMDQ2NDhiMGVkMDYxYzBm
MDM1OTE3YTRjNDRjMTE4YjEwY2E4MWMuLmJmYzY1N2ZjYTlhMzI4YTI4MjIyOGQ5MjA3MjBjZjZm
MjQ2N2YwZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWxvYWQt
ZnJvbS1lbGVtZW50LXJlYWR5U3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1sb2FkLWZyb20tZWxlbWVudC1yZWFkeVN0YXRlLmh0bWwKQEAgLTExLDcgKzExLDcg
QEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkVWRU5UKGxv
YWQpIik7CiAgICAgICAgICAgICAgICAgdHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdFRyYWNrU3JjJyk7IAotICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJh
Y2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5Mb2FkZWQpOworICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5MT0FERUQpOwogICAg
ICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLXNyYy1yZWFkeVN0YXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3JjLXJlYWR5U3RhdGUu
aHRtbAppbmRleCA2MWViYjJkMGRjMzA4OGY1Njc2YTMxNjliYzA0NWQxZGVmNDk3NzY2Li45Yzhh
ZjMxYmJhYmUzNjg0MzE0ODdiNjAwYjVmMzg4OGY2ZDk4NDIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3JjLXJlYWR5U3RhdGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3JjLXJlYWR5U3RhdGUu
aHRtbApAQCAtMTYsMTIgKzE2LDEyIEBACiAgICAgICAgICAgICBmdW5jdGlvbiB0cmFja0xvYWRl
ZCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJFVkVOVChs
b2FkKSIpOwotICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlT
dGF0ZSIsIFRleHRUcmFjay5Mb2FkZWQpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5MT0FERUQpOwogICAgICAgICAgICAg
ICAgIGVuZFRlc3QoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgdHJhY2sgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFRyYWNrRW1wdHknKTsKLSAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5Ob25lKTsKKyAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sudHJhY2sucmVhZHlTdGF0ZSIsIFRleHRUcmFjay5O
T05FKTsKICAgICAgICAgICAgIHRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlv
biAoKSB7IHRyYWNrTG9hZGVkKCk7IH0sIHRydWUpOwogICAgICAgICAgICAgdHJhY2suc3JjID0g
ImNhcHRpb25zLXdlYnZ0dC90YzAwNC13ZWJ2dHQtZmlsZS52dHQiOyAgIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCmluZGV4IGRiZDllYWFkMGJiM2FhZmJlYjY2ZjBmOGYxYjA0ZGM2NjM4ZDFk
ZTEuLjBmZWYxNWQ2NDk3MzE5OTIyOTBkNzIxNGFiYjdkZWQxMWI5ZWNhNDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCkBAIC00MjEsNiArNDIxLDcgQEAgZmFzdC9kb20vTWljcm9EYXRhCiAK
ICMgVGVzdHMgZm9yIDx0cmFjaz4uICBGZWF0dXJlIGlzIG5vdCB5ZXQgZnVuY3Rpb25hbC4KICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNjY4CittZWRpYS90cmFj
ay90cmFjay1jb25zdGFudHMuaHRtbAogbWVkaWEvdHJhY2svdHJhY2stbG9hZC1lcnJvci1yZWFk
eVN0YXRlLmh0bWwKIG1lZGlhL3RyYWNrL3RyYWNrLWxvYWQtZnJvbS1lbGVtZW50LXJlYWR5U3Rh
dGUuaHRtbAogbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLXNyYy1yZWFkeVN0YXRlLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNmU2YmRmMGQwMDU1Mzk5ODhjOTY0Njk3ODZj
ZmQ4MWI5OWJmODFhYy4uM2YyYWI3MDgwYzI1MTFhOWMwOTIwMWE4NzE1ZDljMjQ1MGQ1Yzg2ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTE0MDUsNiArMTQwNSw3IEBAIGZhc3QvbXV0
YXRpb24KIAogIyBUZXN0cyBmb3IgPHRyYWNrPi4gIEZlYXR1cmUgaXMgbm90IHlldCBmdW5jdGlv
bmFsLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2NjgKK21l
ZGlhL3RyYWNrL3RyYWNrLWNvbnN0YW50cy5odG1sCiBtZWRpYS90cmFjay90cmFjay1sb2FkLWVy
cm9yLXJlYWR5U3RhdGUuaHRtbAogbWVkaWEvdHJhY2svdHJhY2stbG9hZC1mcm9tLWVsZW1lbnQt
cmVhZHlTdGF0ZS5odG1sCiBtZWRpYS90cmFjay90cmFjay1sb2FkLWZyb20tc3JjLXJlYWR5U3Rh
dGUuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>