<?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>50633</bug_id>
          
          <creation_ts>2010-12-07 09:15:29 -0800</creation_ts>
          <short_desc>Make WebKitCSSMatrix more efficient for use in WebGL</short_desc>
          <delta_ts>2022-02-28 04:04:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110001</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>abarth</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>dmurph</cc>
    
    <cc>eoconnor</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>kbr</cc>
    
    <cc>krit</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>318238</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-12-07 09:15:29 -0800</bug_when>
    <thetext>Currently CSSMatrix has an immutable API. None of the calls for multiply(), inverse(), etc. change the CSSMatrix, but rather they return a new CSSMatrix with the changed value. A set of API&apos;s that mutate the CSSMatrix would result in many fewer objects being created, which would significantly improve performance in WebGL. These API could be added to the existing CSSMatrix. API needed would be: multiply(), inverse(), translate(), scale(), rotate() and rotateAxisAngle(). We could add a suffix to the new functions, such as invertMatrix().

Also, there is currently no way to get the values out of a CSSMatrix other than using the mXX attributes and picking out each value separately. I experimentally added a copy() function to CSSMatrix. It is passed a Float32Array with space for 16 elements, and the values are placed in it. This gave me a 30% increase in WebGL performance on the spinning box demo.

Adding these 2 features to CSSMatrix would greatly improve WebGL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318282</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-12-07 10:07:44 -0800</bug_when>
    <thetext>Maybe it&apos;s time to rename CSSMatrix to make it non CSS-specific. It should really be shared with SVGTransform too.

I think these new suggestions are fine, as long as we can maintain compatibility with the existing API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419628</commentid>
    <comment_count>2</comment_count>
      <attachid>96968</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-06-13 10:22:15 -0700</bug_when>
    <thetext>Created attachment 96968
Patch

Proposed Patch.
The patch was tested using https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/webkit/MatrixTest.html test with modifications. Together with callgrind analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419870</commentid>
    <comment_count>3</comment_count>
      <attachid>96968</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-13 14:24:46 -0700</bug_when>
    <thetext>Comment on attachment 96968
Patch

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

This mostly looks okay, but the naming of the copy operations should be made consistent. Couple of other minor issues.

&gt; LayoutTests/transforms/cssmatrix-3d-interface.xhtml:244
&gt; +shouldBe(&apos;parseFloat(m.m11)&apos;, &apos;538&apos;);

I&apos;m not sure this is the best way to write this. I&apos;ve seen problems in other tests where floating point values like &quot;1.0e12&quot; weren&apos;t handled correctly. For situations where you&apos;re doing a simple truncation to integer I would suggest using Math.floor(). For example: shouldBe(&apos;Math.floor(m.m11)&apos;, &apos;538&apos;);

&gt; Source/WebCore/css/WebKitCSSMatrix.h:106
&gt;      // The following math function return a new matrix with the 
&gt;      // specified operation applied. The this value is not modified.

This comment isn&apos;t accurate any more. Either group the in-place operations together in their own section or adjust this comment. Also, the new entry points need documentation.

&gt; Source/WebCore/css/WebKitCSSMatrix.idl:63
&gt; +        void copy(in Float32Array array);
&gt; +        void copy64(in Float64Array array);

These methods can and should be named identically; WebKit&apos;s code generators (both JSC and V8) support overloaded methods. Personally I would probably name these &quot;copyTo&quot; or &quot;toArray&quot;.

&gt; Source/WebCore/css/WebKitCSSMatrix.idl:67
&gt; +        void multiplyMatrix(in WebKitCSSMatrix secondMatrix);

This and all of the other new entry points need documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419873</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-06-13 14:28:19 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 96968 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96968&amp;action=review
&gt; 
&gt; This mostly looks okay, but the naming of the copy operations should be made consistent. Couple of other minor issues.

I agree about the copy operations. I&apos;d also like to see better names for the other functions. translateMatrix() just doesn&apos;t seem like it is the mutable sibling of translate(). A while back Dean came up with a naming convention that seemed reasonable, but I don&apos;t remember what it was. Dean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427027</commentid>
    <comment_count>5</comment_count>
      <attachid>98521</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-06-24 11:48:20 -0700</bug_when>
    <thetext>Created attachment 98521
Patch

Update patch with the changes proposed by Kenneth Russell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427156</commentid>
    <comment_count>6</comment_count>
      <attachid>98521</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-06-24 14:40:43 -0700</bug_when>
    <thetext>Comment on attachment 98521
Patch

Thanks for the updates. This looks fine to me. I think Chris or Simon should take a look and make the final call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427163</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-24 14:50:47 -0700</bug_when>
    <thetext>selfMultiply() is pretty ugly.

I wish the non-const methods were like &apos;multiplied&apos;, and the mutable versions were &apos;multiply&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427166</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-06-24 14:52:13 -0700</bug_when>
    <thetext>I don&apos;t really like the self* naming because it doesn&apos;t really make sense. I can&apos;t think of much better, but maybe something like &quot;multiplyInPlace&quot;?

Simon suggests in IRC that the const versions could be called multipliedBy and the non-const versions multiply. That&apos;s pretty good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427180</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-06-24 15:04:27 -0700</bug_when>
    <thetext>Or, let&apos;s just bite the bullet and move to a new API -&gt; WebKitMatrix or something.

Have the methods mutable by default, and non-mutable methods available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427193</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-06-24 15:17:21 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Or, let&apos;s just bite the bullet and move to a new API -&gt; WebKitMatrix or something.
&gt; 
&gt; Have the methods mutable by default, and non-mutable methods available.

I like that idea. We can make this class accepted where CSSMatrix and SVGMatrix are accepted today. And eventually this can become the preferred class for all our Matrix needs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433815</commentid>
    <comment_count>11</comment_count>
      <attachid>98521</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-07-07 17:41:14 -0700</bug_when>
    <thetext>Comment on attachment 98521
Patch

R-, consensus is against the self* naming convention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458660</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-08-29 19:47:45 -0700</bug_when>
    <thetext>We should also add a copy() function to copy the Matrix into a Float32Array so it can be passed to WebGL. And maybe a ctor that takes a Float32Array would be useful, too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486427</commentid>
    <comment_count>13</comment_count>
      <attachid>111526</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-10-18 16:36:39 -0700</bug_when>
    <thetext>Created attachment 111526
Patch

Proposed patch. Implement WebKitMatrix, a new API for matrix operations. It has mutable and non mutable methods making it better to be used by WebGL in terms of performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486428</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 16:41:37 -0700</bug_when>
    <thetext>Attachment 111526 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/tran...&quot; exit_code: 1

Source/WebCore/WebCore.vcproj/WebCore.vcproj:25640:  mismatched tag  [xml/syntax] [5]
Total errors found: 1 in 20 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>486431</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-18 16:47:03 -0700</bug_when>
    <thetext>What&apos;s the standardization track for this &quot;Matrix&quot; class? Is it OK to introduce a class with a generic name like &quot;Matrix&quot; into the global namespace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486484</commentid>
    <comment_count>16</comment_count>
      <attachid>111526</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 17:58:57 -0700</bug_when>
    <thetext>Comment on attachment 111526
Patch

Attachment 111526 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10138199

New failing tests:
transforms/webkitmatrix-3d-interface.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486715</commentid>
    <comment_count>17</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-10-19 06:11:32 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; What&apos;s the standardization track for this &quot;Matrix&quot; class? Is it OK to introduce a class with a generic name like &quot;Matrix&quot; into the global namespace?

There is not a standard for this &quot;Matrix&quot; class. It was based in the comments #9, #10 and #12. I think the main problem right now is  the CSSMatrix and SVGMatrix interfaces always create new matrices, this additional &quot;new Matrix&quot; creates an overhead. The idea proposed by comments #7 and #8 are fine for me, too. Chris, Dean any opinion here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486772</commentid>
    <comment_count>18</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-19 07:22:49 -0700</bug_when>
    <thetext>We should avoid adding new web-facing API without it being on a standards track.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486832</commentid>
    <comment_count>19</comment_count>
      <attachid>111631</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-10-19 08:57:50 -0700</bug_when>
    <thetext>Created attachment 111631
Patch

Proposed patch. Implement mutable methods for WebKitCSSMatrix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486898</commentid>
    <comment_count>20</comment_count>
      <attachid>111651</attachid>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-10-19 11:27:11 -0700</bug_when>
    <thetext>Created attachment 111651
Patch

Updated patch. Implement mutable methods for WebKitCSSMatrix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487040</commentid>
    <comment_count>21</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-10-19 15:06:14 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #15)
&gt; &gt; What&apos;s the standardization track for this &quot;Matrix&quot; class? Is it OK to introduce a class with a generic name like &quot;Matrix&quot; into the global namespace?
&gt; 
&gt; There is not a standard for this &quot;Matrix&quot; class. It was based in the comments #9, #10 and #12. I think the main problem right now is  the CSSMatrix and SVGMatrix interfaces always create new matrices, this additional &quot;new Matrix&quot; creates an overhead. The idea proposed by comments #7 and #8 are fine for me, too. Chris, Dean any opinion here?

As Simon said, we need some plan for how this will be interoperable. It&apos;s risky to put API in place before there is at least a specification somewhere. (The risk is that one of the WebKit ports ships with it and then we&apos;ll have pressure to continue supporting it).

The good news is that Matrix is hopefully a pretty simple API that won&apos;t be controversial. We definitely want it - I&apos;m sure Mozilla do too. How about sending the IDL to public-webapps@w3.org and see if anyone speaks up against it before landing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488003</commentid>
    <comment_count>22</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-10-20 17:03:57 -0700</bug_when>
    <thetext>e-mail sent: 
http://lists.w3.org/Archives/Public/public-webapps/2011OctDec/0376.html


(In reply to comment #21)
&gt; (In reply to comment #17)
&gt; &gt; (In reply to comment #15)
&gt; &gt; &gt; What&apos;s the standardization track for this &quot;Matrix&quot; class? Is it OK to introduce a class with a generic name like &quot;Matrix&quot; into the global namespace?
&gt; &gt; 
&gt; &gt; There is not a standard for this &quot;Matrix&quot; class. It was based in the comments #9, #10 and #12. I think the main problem right now is  the CSSMatrix and SVGMatrix interfaces always create new matrices, this additional &quot;new Matrix&quot; creates an overhead. The idea proposed by comments #7 and #8 are fine for me, too. Chris, Dean any opinion here?
&gt; 
&gt; As Simon said, we need some plan for how this will be interoperable. It&apos;s risky to put API in place before there is at least a specification somewhere. (The risk is that one of the WebKit ports ships with it and then we&apos;ll have pressure to continue supporting it).
&gt; 
&gt; The good news is that Matrix is hopefully a pretty simple API that won&apos;t be controversial. We definitely want it - I&apos;m sure Mozilla do too. How about sending the IDL to public-webapps@w3.org and see if anyone speaks up against it before landing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489684</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-24 15:05:35 -0700</bug_when>
    <thetext>*** Bug 52488 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525803</commentid>
    <comment_count>24</comment_count>
      <attachid>111651</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2011-12-21 16:23:55 -0800</bug_when>
    <thetext>Comment on attachment 111651
Patch

Patch looks good. But please fix Mac build issue and resubmit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534476</commentid>
    <comment_count>25</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-01-11 18:19:43 -0800</bug_when>
    <thetext>i will be updating the patch soon.
(In reply to comment #24)
&gt; (From update of attachment 111651 [details])
&gt; Patch looks good. But please fix Mac build issue and resubmit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535096</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-12 13:08:36 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; i will be updating the patch soon.
&gt; (In reply to comment #24)
&gt; &gt; (From update of attachment 111651 [details] [details])
&gt; &gt; Patch looks good. But please fix Mac build issue and resubmit

Have you looked at Dean&apos;s Matrix4x4 proposal? Please make sure your work and his proposal are aligned, one way or the other. Thanks...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634365</commentid>
    <comment_count>27</comment_count>
    <who name="Daniel Murphy">dmurph</who>
    <bug_when>2012-05-25 15:45:18 -0700</bug_when>
    <thetext>Any developments with this?  What&apos;s the current status?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634370</commentid>
    <comment_count>28</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2012-05-25 15:51:03 -0700</bug_when>
    <thetext>After: http://lists.w3.org/Archives/Public/public-fx/2012JanMar/0007.html
I am waiting a updated proposal. Dean, do you mind if i send a new updated proposal? 

(In reply to comment #27)
&gt; Any developments with this?  What&apos;s the current status?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634489</commentid>
    <comment_count>29</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-05-25 17:54:34 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; After: http://lists.w3.org/Archives/Public/public-fx/2012JanMar/0007.html
&gt; I am waiting a updated proposal. Dean, do you mind if i send a new updated proposal? 

Go for it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96968</attachid>
            <date>2011-06-13 10:22:15 -0700</date>
            <delta_ts>2011-06-24 11:48:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Make-WebKitCSSMatrix-more-efficient-for-use-in-WebGL.patch</filename>
            <type>text/plain</type>
            <size>24210</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSA2MWYwYTg5MGM1MjhmNzZmMDE3MWQwYzQ1YTQ5ZmU0M2JhZDljNzUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IE1vbiwgMTMgSnVuIDIwMTEgMTA6NTM6NTQgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdM
CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxMiArKwogLi4uL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3Rl
ZC50eHQgfCAgIDkwICsrKysrKysrKysrKysrCiAuLi4vdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2Qt
aW50ZXJmYWNlLnhodG1sICAgICAgICB8ICAxMDcgKysrKysrKysrKysrKysrKwogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysKIFNv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwICAgICAgICAgICAgIHwgIDEzMSAr
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5o
ICAgICAgICAgICAgICAgfCAgIDEzICsrCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0
cml4LmlkbCAgICAgICAgICAgICB8ICAgIDkgKysKIDcgZmlsZXMgY2hhbmdlZCwgMzg1IGluc2Vy
dGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjZmQ4YzMuLjRmMjFkNjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNi0xMyAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub2xpdmVp
cmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGlu
IFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDYzMworCisgICAgICAgIE1ha2UgV2ViS2l0Q1NTTWF0cml4IG1vcmUgZWZmaWNpZW50IGZvciB1
c2UgaW4gV2ViR0wKKworICAgICAgICAqIHRyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFj
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJm
YWNlLnhodG1sOgorCiAyMDExLTA2LTEzICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUm9iIEJ1aXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dAppbmRl
eCA5NWFiZTUyLi41Y2RhN2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nz
c21hdHJpeC0zZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RyYW5z
Zm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3RlZC50eHQKQEAgLTE4MCw2ICsxODAs
MjQgQEAgUEFTUyBtLm00MiBpcyAwCiBQQVNTIG0ubTQzIGlzIDAKIFBBU1MgbS5tNDQgaXMgMQog
CitUZXN0IG11bHRpcGx5TWF0cml4CitQQVNTIHBhcnNlRmxvYXQobS5tMTEpIGlzIDUzOAorUEFT
UyBwYXJzZUZsb2F0KG0ubTEyKSBpcyA2MTIKK1BBU1MgcGFyc2VGbG9hdChtLm0xMykgaXMgNjg2
CitQQVNTIHBhcnNlRmxvYXQobS5tMTQpIGlzIDc2MAorUEFTUyBwYXJzZUZsb2F0KG0ubTIxKSBp
cyA2NTAKK1BBU1MgcGFyc2VGbG9hdChtLm0yMikgaXMgNzQwCitQQVNTIHBhcnNlRmxvYXQobS5t
MjMpIGlzIDgzMAorUEFTUyBwYXJzZUZsb2F0KG0ubTI0KSBpcyA5MjAKK1BBU1MgcGFyc2VGbG9h
dChtLm0zMSkgaXMgNzYyCitQQVNTIHBhcnNlRmxvYXQobS5tMzIpIGlzIDg2OAorUEFTUyBwYXJz
ZUZsb2F0KG0ubTMzKSBpcyA5NzQKK1BBU1MgcGFyc2VGbG9hdChtLm0zNCkgaXMgMTA4MAorUEFT
UyBwYXJzZUZsb2F0KG0ubTQxKSBpcyA4NzQKK1BBU1MgcGFyc2VGbG9hdChtLm00MikgaXMgOTk2
CitQQVNTIHBhcnNlRmxvYXQobS5tNDMpIGlzIDExMTgKK1BBU1MgcGFyc2VGbG9hdChtLm00NCkg
aXMgMTI0MAorCiBUZXN0IGludmVyc2UKIFBBU1MgcGFyc2VGbG9hdChtMi5tMTEpIGlzIDAuNQog
UEFTUyBwYXJzZUZsb2F0KG0yLm0xMikgaXMgMApAQCAtMjU1LDYgKzI3MywyNCBAQCBQQVNTIG0u
bTQyIGlzIDAKIFBBU1MgbS5tNDMgaXMgMAogUEFTUyBtLm00NCBpcyAxCiAKK1Rlc3QgdHJhbnNs
YXRlTWF0cml4CitQQVNTIG0ubTExIGlzIDEKK1BBU1MgbS5tMTIgaXMgMAorUEFTUyBtLm0xMyBp
cyAwCitQQVNTIG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0yMiBpcyAxCitQ
QVNTIG0ubTIzIGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBtLm0zMSBpcyAwCitQQVNTIG0u
bTMyIGlzIDAKK1BBU1MgbS5tMzMgaXMgMQorUEFTUyBtLm0zNCBpcyAwCitQQVNTIG0ubTQxIGlz
IDEwCitQQVNTIG0ubTQyIGlzIDIwCitQQVNTIG0ubTQzIGlzIDMwCitQQVNTIG0ubTQ0IGlzIDEK
KwogVGVzdCBzY2FsZQogUEFTUyBtMi5tMTEgaXMgMTAKIFBBU1MgbTIubTEyIGlzIDAKQEAgLTI5
MSw2ICszMjcsMjQgQEAgUEFTUyBtLm00MiBpcyAwCiBQQVNTIG0ubTQzIGlzIDAKIFBBU1MgbS5t
NDQgaXMgMQogCitUZXN0IHNjYWxlTWF0cml4CitQQVNTIG0ubTExIGlzIDEwCitQQVNTIG0ubTEy
IGlzIDAKK1BBU1MgbS5tMTMgaXMgMAorUEFTUyBtLm0xNCBpcyAwCitQQVNTIG0ubTIxIGlzIDAK
K1BBU1MgbS5tMjIgaXMgMjAKK1BBU1MgbS5tMjMgaXMgMAorUEFTUyBtLm0yNCBpcyAwCitQQVNT
IG0ubTMxIGlzIDAKK1BBU1MgbS5tMzIgaXMgMAorUEFTUyBtLm0zMyBpcyAzMAorUEFTUyBtLm0z
NCBpcyAwCitQQVNTIG0ubTQxIGlzIDAKK1BBU1MgbS5tNDIgaXMgMAorUEFTUyBtLm00MyBpcyAw
CitQQVNTIG0ubTQ0IGlzIDEKKwogVGVzdCByb3RhdGUKIFBBU1MgcGFyc2VGbG9hdChtMi5tMTEu
dG9QcmVjaXNpb24oNikpIGlzIDAuODEzNzk4CiBQQVNTIHBhcnNlRmxvYXQobTIubTEyLnRvUHJl
Y2lzaW9uKDYpKSBpcyAwLjQ2OTg0NgpAQCAtMzI3LDYgKzM4MSwyNCBAQCBQQVNTIG0ubTQyIGlz
IDAKIFBBU1MgbS5tNDMgaXMgMAogUEFTUyBtLm00NCBpcyAxCiAKK1Rlc3Qgcm90YXRlTWF0cml4
CitQQVNTIHBhcnNlRmxvYXQobS5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODEzNzk4CitQQVNT
IHBhcnNlRmxvYXQobS5tMTIudG9QcmVjaXNpb24oNikpIGlzIDAuNDY5ODQ2CitQQVNTIHBhcnNl
RmxvYXQobS5tMTMudG9QcmVjaXNpb24oNikpIGlzIC0wLjM0MjAyCitQQVNTIHBhcnNlRmxvYXQo
bS5tMTQudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm0yMS50b1ByZWNp
c2lvbig2KSkgaXMgLTAuNDQwOTcKK1BBU1MgcGFyc2VGbG9hdChtLm0yMi50b1ByZWNpc2lvbig2
KSkgaXMgMC44ODI1NjQKK1BBU1MgcGFyc2VGbG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSkgaXMg
MC4xNjMxNzYKK1BBU1MgcGFyc2VGbG9hdChtLm0yNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFT
UyBwYXJzZUZsb2F0KG0ubTMxLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjM3ODUyMgorUEFTUyBwYXJz
ZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjAxODAyODMKK1BBU1MgcGFyc2VGbG9h
dChtLm0zMy50b1ByZWNpc2lvbig2KSkgaXMgMC45MjU0MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0z
NC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9u
KDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDIudG9QcmVjaXNpb24oNikpIGlzIDAKK1BB
U1MgcGFyc2VGbG9hdChtLm00My50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0
KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKSBpcyAxCisKIFRlc3Qgcm90YXRlQXhpc0FuZ2xlCiBQQVNT
IHBhcnNlRmxvYXQobTIubTExLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjgwNDczOAogUEFTUyBwYXJz
ZUZsb2F0KG0yLm0xMi50b1ByZWNpc2lvbig2KSkgaXMgMC41MDU4NzkKQEAgLTM2Myw2ICs0MzUs
MjQgQEAgUEFTUyBtLm00MiBpcyAwCiBQQVNTIG0ubTQzIGlzIDAKIFBBU1MgbS5tNDQgaXMgMQog
CitUZXN0IHJvdGF0ZUF4aXNBbmdsZU1hdHJpeAorUEFTUyBwYXJzZUZsb2F0KG0ubTExLnRvUHJl
Y2lzaW9uKDYpKSBpcyAwLjgwNDczOAorUEFTUyBwYXJzZUZsb2F0KG0ubTEyLnRvUHJlY2lzaW9u
KDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0ubTEzLnRvUHJlY2lzaW9uKDYpKSBp
cyAtMC4zMTA2MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSkgaXMgMAor
UEFTUyBwYXJzZUZsb2F0KG0ubTIxLnRvUHJlY2lzaW9uKDYpKSBpcyAtMC4zMTA2MTcKK1BBU1Mg
cGFyc2VGbG9hdChtLm0yMi50b1ByZWNpc2lvbig2KSkgaXMgMC44MDQ3MzgKK1BBU1MgcGFyc2VG
bG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSkgaXMgMC41MDU4NzkKK1BBU1MgcGFyc2VGbG9hdCht
Lm0yNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTMxLnRvUHJlY2lz
aW9uKDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYp
KSBpcyAtMC4zMTA2MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0zMy50b1ByZWNpc2lvbig2KSkgaXMg
MC44MDQ3MzgKK1BBU1MgcGFyc2VGbG9hdChtLm0zNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFT
UyBwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQo
bS5tNDIudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00My50b1ByZWNp
c2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKSBpcyAx
CisKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnho
dG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1s
CmluZGV4IDdkOWFjYzYuLjBkNWUwMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zZm9y
bXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS54aHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zv
cm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UueGh0bWwKQEAgLTIzNiw2ICsyMzYsMjkgQEAgc2hv
dWxkQmUoJ20ubTQyJywgJzAnKTsKIHNob3VsZEJlKCdtLm00MycsICcwJyk7CiBzaG91bGRCZSgn
bS5tNDQnLCAnMScpOwogCitkZWJ1ZygiIikKK2RlYnVnKCJUZXN0IG11bHRpcGx5TWF0cml4IikK
K20gPSAgbmV3IFdlYktpdENTU01hdHJpeCgibWF0cml4M2QoMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYpIik7CittMiA9IG5ldyBXZWJLaXRDU1NN
YXRyaXgoIm1hdHJpeDNkKDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsMjYsIDI3
LCAyOCwgMjksIDMwLCAzMSwgMzIpIik7CittLm11bHRpcGx5TWF0cml4KG0yKQorc2hvdWxkQmUo
J3BhcnNlRmxvYXQobS5tMTEpJywgJzUzOCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTIp
JywgJzYxMicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTMpJywgJzY4NicpOworc2hvdWxk
QmUoJ3BhcnNlRmxvYXQobS5tMTQpJywgJzc2MCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MjEpJywgJzY1MCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjIpJywgJzc0MCcpOworc2hv
dWxkQmUoJ3BhcnNlRmxvYXQobS5tMjMpJywgJzgzMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQo
bS5tMjQpJywgJzkyMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzEpJywgJzc2MicpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzIpJywgJzg2OCcpOworc2hvdWxkQmUoJ3BhcnNlRmxv
YXQobS5tMzMpJywgJzk3NCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzQpJywgJzEwODAn
KTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQxKScsICc4NzQnKTsKK3Nob3VsZEJlKCdwYXJz
ZUZsb2F0KG0ubTQyKScsICc5OTYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQzKScsICcx
MTE4Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00NCknLCAnMTI0MCcpOworCisKIGRlYnVn
KCIiKTsKIGRlYnVnKCJUZXN0IGludmVyc2UiKTsKIG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCJt
YXRyaXgzZCgyLCAwLCAwLCAwLCAwLCAyLCAwLCAwLCAwLCAwLCAyLCAwLCAxMCwgMjAsIDMwLCAx
KSIpOwpAQCAtMzIzLDYgKzM0NiwyNyBAQCBzaG91bGRCZSgnbS5tNDMnLCAnMCcpOwogc2hvdWxk
QmUoJ20ubTQ0JywgJzEnKTsKIAogZGVidWcoIiIpOworZGVidWcoIlRlc3QgdHJhbnNsYXRlTWF0
cml4Iik7CittID0gbmV3IFdlYktpdENTU01hdHJpeCgpOworbS50cmFuc2xhdGVNYXRyaXgoMTAs
IDIwLCAzMCk7CitzaG91bGRCZSgnbS5tMTEnLCAnMScpOworc2hvdWxkQmUoJ20ubTEyJywgJzAn
KTsKK3Nob3VsZEJlKCdtLm0xMycsICcwJyk7CitzaG91bGRCZSgnbS5tMTQnLCAnMCcpOworc2hv
dWxkQmUoJ20ubTIxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMicsICcxJyk7CitzaG91bGRCZSgn
bS5tMjMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTI0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMScs
ICcwJyk7CitzaG91bGRCZSgnbS5tMzInLCAnMCcpOworc2hvdWxkQmUoJ20ubTMzJywgJzEnKTsK
K3Nob3VsZEJlKCdtLm0zNCcsICcwJyk7CitzaG91bGRCZSgnbS5tNDEnLCAnMTAnKTsKK3Nob3Vs
ZEJlKCdtLm00MicsICcyMCcpOworc2hvdWxkQmUoJ20ubTQzJywgJzMwJyk7CitzaG91bGRCZSgn
bS5tNDQnLCAnMScpOworCitkZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCBzY2FsZSIpOwogbSA9IG5l
dyBXZWJLaXRDU1NNYXRyaXgoKTsKIG0yID0gbS5zY2FsZSgxMCwgMjAsIDMwKTsKQEAgLTM2Myw2
ICs0MDcsMjcgQEAgc2hvdWxkQmUoJ20ubTQzJywgJzAnKTsKIHNob3VsZEJlKCdtLm00NCcsICcx
Jyk7CiAKIGRlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHNjYWxlTWF0cml4Iik7CittID0gbmV3IFdl
YktpdENTU01hdHJpeCgpOworbS5zY2FsZU1hdHJpeCgxMCwgMjAsIDMwKTsKK3Nob3VsZEJlKCdt
Lm0xMScsICcxMCcpOworc2hvdWxkQmUoJ20ubTEyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0xMycs
ICcwJyk7CitzaG91bGRCZSgnbS5tMTQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTIxJywgJzAnKTsK
K3Nob3VsZEJlKCdtLm0yMicsICcyMCcpOworc2hvdWxkQmUoJ20ubTIzJywgJzAnKTsKK3Nob3Vs
ZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMzEnLCAnMCcpOworc2hvdWxkQmUoJ20u
bTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMycsICczMCcpOworc2hvdWxkQmUoJ20ubTM0Jywg
JzAnKTsKK3Nob3VsZEJlKCdtLm00MScsICcwJyk7CitzaG91bGRCZSgnbS5tNDInLCAnMCcpOwor
c2hvdWxkQmUoJ20ubTQzJywgJzAnKTsKK3Nob3VsZEJlKCdtLm00NCcsICcxJyk7CisKK2RlYnVn
KCIiKTsKIGRlYnVnKCJUZXN0IHJvdGF0ZSIpOwogbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsK
IG0yID0gbS5yb3RhdGUoMTAsIDIwLCAzMCk7CkBAIC00MDMsNiArNDY4LDI3IEBAIHNob3VsZEJl
KCdtLm00MycsICcwJyk7CiBzaG91bGRCZSgnbS5tNDQnLCAnMScpOwogCiBkZWJ1ZygiIik7Citk
ZWJ1ZygiVGVzdCByb3RhdGVNYXRyaXgiKTsKK20gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7Citt
LnJvdGF0ZU1hdHJpeCgxMCwgMjAsIDMwKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTExLnRv
UHJlY2lzaW9uKDYpKScsICcwLjgxMzc5OCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTIu
dG9QcmVjaXNpb24oNikpJywgJzAuNDY5ODQ2Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0x
My50b1ByZWNpc2lvbig2KSknLCAnLTAuMzQyMDInKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0u
bTE0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMS50
b1ByZWNpc2lvbig2KSknLCAnLTAuNDQwOTcnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIy
LnRvUHJlY2lzaW9uKDYpKScsICcwLjg4MjU2NCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MjMudG9QcmVjaXNpb24oNikpJywgJzAuMTYzMTc2Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0yNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzEu
dG9QcmVjaXNpb24oNikpJywgJzAuMzc4NTIyJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0z
Mi50b1ByZWNpc2lvbig2KSknLCAnMC4wMTgwMjgzJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0zMy50b1ByZWNpc2lvbig2KSknLCAnMC45MjU0MTcnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTM0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00
MS50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDIudG9Q
cmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQzLnRvUHJlY2lz
aW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00NC50b1ByZWNpc2lvbig2
KSknLCAnMScpOworCitkZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCByb3RhdGVBeGlzQW5nbGUiKTsK
IG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7CiBtMiA9IG0ucm90YXRlQXhpc0FuZ2xlKDAuNzA3
LCAwLjcwNywgMC43MDcsIDQ1KTsKQEAgLTQ0Myw2ICs1MjksMjcgQEAgc2hvdWxkQmUoJ20ubTQz
JywgJzAnKTsKIHNob3VsZEJlKCdtLm00NCcsICcxJyk7CiAKIGRlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0IHJvdGF0ZUF4aXNBbmdsZU1hdHJpeCIpOworbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsK
K20ucm90YXRlQXhpc0FuZ2xlTWF0cml4KDAuNzA3LCAwLjcwNywgMC43MDcsIDQ1KTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTExLnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDczOCcpOworc2hv
dWxkQmUoJ3BhcnNlRmxvYXQobS5tMTIudG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtLm0xMy50b1ByZWNpc2lvbig2KSknLCAnLTAuMzEwNjE3Jyk7
CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hv
dWxkQmUoJ3BhcnNlRmxvYXQobS5tMjEudG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjIudG9QcmVjaXNpb24oNikpJywgJzAuODA0NzM4Jyk7
CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSknLCAnMC41MDU4Nzkn
KTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtLm0zMS50b1ByZWNpc2lvbig2KSknLCAnMC41MDU4NzknKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYpKScsICctMC4zMTA2MTcn
KTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDcz
OCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzQudG9QcmVjaXNpb24oNikpJywgJzAnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUo
J3BhcnNlRmxvYXQobS5tNDMudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJz
ZUZsb2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKScsICcxJyk7CisKK2RlYnVnKCIiKTsKIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE5ZWQzNTEu
LjUzN2JmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0wNi0xMyAgSWdvciBP
bGl2ZWlyYSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYktpdENTU01hdHJpeCBtb3Jl
IGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MDYzMworCisgICAgICAgIENyZWF0ZSBXZWJLaXRDU1NNYXRy
aXggbWV0aG9kcyB0aGF0IGRvIG5vdCByZXF1aXJlIGEgbmV3IFdlYktpdENTU01hdHJpeCBvYmpl
Y3QKKyAgICAgICAgYmVpbmcgY3JlYXRlZCwgaW5zdGVhZCwgbW9kaWZpZXMgdGhlIFdlYktpdENT
U01hdHJpeC4KKworICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4Ojpjb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktp
dENTU01hdHJpeDo6Y29weTY0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6
bXVsdGlwbHlNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4Ojp0cmFu
c2xhdGVNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4OjpzY2FsZU1h
dHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnJvdGF0ZU1hdHJpeCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnJvdGF0ZUF4aXNBbmdsZU1hdHJp
eCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnNrZXdYTWF0cml4KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6c2tld1lNYXRyaXgpOgorICAgICAgICAq
IGNzcy9XZWJLaXRDU1NNYXRyaXguaDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4Lmlk
bDoKKwogMjAxMS0wNi0xMyAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU01hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4
LmNwcAppbmRleCAyNmZlMjg2Li4xMDRkZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTTWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMu
aCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgorI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5o
IgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTg0LDYgKzg2LDUyIEBAIHZvaWQgV2ViS2l0Q1NTTWF0cml4OjpzZXRNYXRyaXhWYWx1ZShjb25z
dCBTdHJpbmcmIHN0cmluZywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIGVjID0gU1lOVEFY
X0VSUjsKIH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6OmNvcHkoRmxvYXQzMkFycmF5KiBhcnJh
eSkKK3sKKyAgICBpZiAoIWFycmF5IHx8IGFycmF5LT5sZW5ndGgoKSA8IDE2KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhcnJheS0+c2V0KDAsIG1fbWF0cml4Lm0xMSgpKTsKKyAgICBhcnJheS0+
c2V0KDEsIG1fbWF0cml4Lm0xMigpKTsKKyAgICBhcnJheS0+c2V0KDIsIG1fbWF0cml4Lm0xMygp
KTsKKyAgICBhcnJheS0+c2V0KDMsIG1fbWF0cml4Lm0xNCgpKTsKKyAgICBhcnJheS0+c2V0KDQs
IG1fbWF0cml4Lm0yMSgpKTsKKyAgICBhcnJheS0+c2V0KDUsIG1fbWF0cml4Lm0yMigpKTsKKyAg
ICBhcnJheS0+c2V0KDYsIG1fbWF0cml4Lm0yMygpKTsKKyAgICBhcnJheS0+c2V0KDcsIG1fbWF0
cml4Lm0yNCgpKTsKKyAgICBhcnJheS0+c2V0KDgsIG1fbWF0cml4Lm0zMSgpKTsKKyAgICBhcnJh
eS0+c2V0KDksIG1fbWF0cml4Lm0zMigpKTsKKyAgICBhcnJheS0+c2V0KDEwLCBtX21hdHJpeC5t
MzMoKSk7CisgICAgYXJyYXktPnNldCgxMSwgbV9tYXRyaXgubTM0KCkpOworICAgIGFycmF5LT5z
ZXQoMTIsIG1fbWF0cml4Lm00MSgpKTsKKyAgICBhcnJheS0+c2V0KDEzLCBtX21hdHJpeC5tNDIo
KSk7CisgICAgYXJyYXktPnNldCgxNCwgbV9tYXRyaXgubTQzKCkpOworICAgIGFycmF5LT5zZXQo
MTUsIG1fbWF0cml4Lm00NCgpKTsKK30KKwordm9pZCBXZWJLaXRDU1NNYXRyaXg6OmNvcHk2NChG
bG9hdDY0QXJyYXkqIGFycmF5KQoreworICAgIGlmICghYXJyYXkgfHwgYXJyYXktPmxlbmd0aCgp
IDwgMTYpCisgICAgICAgIHJldHVybjsKKworICAgIGFycmF5LT5zZXQoMCwgbV9tYXRyaXgubTEx
KCkpOworICAgIGFycmF5LT5zZXQoMSwgbV9tYXRyaXgubTEyKCkpOworICAgIGFycmF5LT5zZXQo
MiwgbV9tYXRyaXgubTEzKCkpOworICAgIGFycmF5LT5zZXQoMywgbV9tYXRyaXgubTE0KCkpOwor
ICAgIGFycmF5LT5zZXQoNCwgbV9tYXRyaXgubTIxKCkpOworICAgIGFycmF5LT5zZXQoNSwgbV9t
YXRyaXgubTIyKCkpOworICAgIGFycmF5LT5zZXQoNiwgbV9tYXRyaXgubTIzKCkpOworICAgIGFy
cmF5LT5zZXQoNywgbV9tYXRyaXgubTI0KCkpOworICAgIGFycmF5LT5zZXQoOCwgbV9tYXRyaXgu
bTMxKCkpOworICAgIGFycmF5LT5zZXQoOSwgbV9tYXRyaXgubTMyKCkpOworICAgIGFycmF5LT5z
ZXQoMTAsIG1fbWF0cml4Lm0zMygpKTsKKyAgICBhcnJheS0+c2V0KDExLCBtX21hdHJpeC5tMzQo
KSk7CisgICAgYXJyYXktPnNldCgxMiwgbV9tYXRyaXgubTQxKCkpOworICAgIGFycmF5LT5zZXQo
MTMsIG1fbWF0cml4Lm00MigpKTsKKyAgICBhcnJheS0+c2V0KDE0LCBtX21hdHJpeC5tNDMoKSk7
CisgICAgYXJyYXktPnNldCgxNSwgbV9tYXRyaXgubTQ0KCkpOworfQorCiAvLyBQZXJmb3JtIGEg
Y29uY2F0ZW5hdGlvbiBvZiB0aGUgbWF0cmljZXMgKHRoaXMgKiBzZWNvbmRNYXRyaXgpCiBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4OjptdWx0aXBseShXZWJLaXRD
U1NNYXRyaXgqIHNlY29uZE1hdHJpeCkgY29uc3QKIHsKQEAgLTkzLDYgKzE0MSwxNCBAQCBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4OjptdWx0aXBseShXZWJLaXRD
U1NNYXRyaXgqIHNlY29uZE1hdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShU
cmFuc2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LT5tX21h
dHJpeCkpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6bXVsdGlwbHlNYXRyaXgoV2ViS2l0
Q1NTTWF0cml4KiBzZWNvbmRNYXRyaXgpCit7CisgICAgaWYgKCFzZWNvbmRNYXRyaXgpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fbWF0cml4Lm11bHRpcGx5KHNlY29uZE1hdHJpeC0+bV9tYXRy
aXgpOworfQorCiBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpp
bnZlcnNlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAgIGlmICghbV9tYXRyaXguaXNJ
bnZlcnRpYmxlKCkpIHsKQEAgLTExNCw2ICsxNzAsMTggQEAgUGFzc1JlZlB0cjxXZWJLaXRDU1NN
YXRyaXg+IFdlYktpdENTU01hdHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91
YmwKICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0cml4OjpjcmVhdGUoVHJhbnNmb3JtYXRpb25NYXRy
aXgobV9tYXRyaXgpLnRyYW5zbGF0ZTNkKHgsIHksIHopKTsKIH0KIAordm9pZCBXZWJLaXRDU1NN
YXRyaXg6OnRyYW5zbGF0ZU1hdHJpeChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KQorewor
ICAgIGlmIChpc25hbih4KSkKKyAgICAgICAgeCA9IDA7CisgICAgaWYgKGlzbmFuKHkpKQorICAg
ICAgICB5ID0gMDsKKyAgICBpZiAoaXNuYW4oeikpCisgICAgICAgIHogPSAwOworCisgICAgbV9t
YXRyaXgudHJhbnNsYXRlM2QoeCwgeSwgeik7Cit9CisKIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0
cml4PiBXZWJLaXRDU1NNYXRyaXg6OnNjYWxlKGRvdWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVks
IGRvdWJsZSBzY2FsZVopIGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKHNjYWxlWCkpCkBAIC0xMjUs
NiArMTkzLDE4IEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6
OnNjYWxlKGRvdWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVksCiAgICAgcmV0dXJuIFdlYktpdENT
U01hdHJpeDo6Y3JlYXRlKFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KS5zY2FsZTNkKHNj
YWxlWCwgc2NhbGVZLCBzY2FsZVopKTsKIH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNjYWxl
TWF0cml4KGRvdWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVksIGRvdWJsZSBzY2FsZVopCit7Cisg
ICAgaWYgKGlzbmFuKHNjYWxlWCkpCisgICAgICAgIHNjYWxlWCA9IDE7CisgICAgaWYgKGlzbmFu
KHNjYWxlWSkpCisgICAgICAgIHNjYWxlWSA9IHNjYWxlWDsKKyAgICBpZiAoaXNuYW4oc2NhbGVa
KSkKKyAgICAgICAgc2NhbGVaID0gMTsKKworICAgIG1fbWF0cml4LnNjYWxlM2Qoc2NhbGVYLCBz
Y2FsZVksIHNjYWxlWik7Cit9CisKIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRD
U1NNYXRyaXg6OnJvdGF0ZShkb3VibGUgcm90WCwgZG91YmxlIHJvdFksIGRvdWJsZSByb3RaKSBj
b25zdAogewogICAgIGlmIChpc25hbihyb3RYKSkKQEAgLTE0Myw2ICsyMjMsMjUgQEAgUGFzc1Jl
ZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6cm90YXRlKGRvdWJsZSByb3RY
LCBkb3VibGUgcm90WSwgZG8KICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0cml4OjpjcmVhdGUoVHJh
bnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLnJvdGF0ZTNkKHJvdFgsIHJvdFksIHJvdFopKTsK
IH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6OnJvdGF0ZU1hdHJpeChkb3VibGUgcm90WCwgZG91
YmxlIHJvdFksIGRvdWJsZSByb3RaKQoreworICAgIGlmIChpc25hbihyb3RYKSkKKyAgICAgICAg
cm90WCA9IDA7CisKKyAgICBpZiAoaXNuYW4ocm90WSkgJiYgaXNuYW4ocm90WikpIHsKKyAgICAg
ICAgcm90WiA9IHJvdFg7CisgICAgICAgIHJvdFggPSAwOworICAgICAgICByb3RZID0gMDsKKyAg
ICB9CisKKyAgICBpZiAoaXNuYW4ocm90WSkpCisgICAgICAgIHJvdFkgPSAwOworICAgIGlmIChp
c25hbihyb3RaKSkKKyAgICAgICAgcm90WiA9IDA7CisKKyAgICBtX21hdHJpeC5yb3RhdGUzZChy
b3RYLCByb3RZLCByb3RaKTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktp
dENTU01hdHJpeDo6cm90YXRlQXhpc0FuZ2xlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHos
IGRvdWJsZSBhbmdsZSkgY29uc3QKIHsKICAgICBpZiAoaXNuYW4oeCkpCkBAIC0xNTgsNiArMjU3
LDIyIEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnJvdGF0
ZUF4aXNBbmdsZShkb3VibGUgeCwgZG91YmxlIHksCiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJp
eDo6Y3JlYXRlKFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KS5yb3RhdGUzZCh4LCB5LCB6
LCBhbmdsZSkpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6cm90YXRlQXhpc0FuZ2xlTWF0
cml4KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkKK3sKKyAgICBp
ZiAoaXNuYW4oeCkpCisgICAgICAgIHggPSAwOworICAgIGlmIChpc25hbih5KSkKKyAgICAgICAg
eSA9IDA7CisgICAgaWYgKGlzbmFuKHopKQorICAgICAgICB6ID0gMDsKKyAgICBpZiAoaXNuYW4o
YW5nbGUpKQorICAgICAgICBhbmdsZSA9IDA7CisgICAgaWYgKCF4ICYmICF5ICYmICF6KQorICAg
ICAgICB6ID0gMTsKKworICAgIG1fbWF0cml4LnJvdGF0ZTNkKHgsIHksIHosIGFuZ2xlKTsKK30K
KwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2tld1goZG91
YmxlIGFuZ2xlKSBjb25zdAogewogICAgIGlmIChpc25hbihhbmdsZSkpCkBAIC0xNjUsNiArMjgw
LDE0IEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnNrZXdY
KGRvdWJsZSBhbmdsZSkgY29uc3QKICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0cml4OjpjcmVhdGUo
VHJhbnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLnNrZXdYKGFuZ2xlKSk7CiB9CiAKK3ZvaWQg
V2ViS2l0Q1NTTWF0cml4Ojpza2V3WE1hdHJpeChkb3VibGUgYW5nbGUpCit7CisgICAgaWYgKGlz
bmFuKGFuZ2xlKSkKKyAgICAgICAgYW5nbGUgPSAwOworCisgICAgbV9tYXRyaXguc2tld1goYW5n
bGUpOworfQorCiBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpz
a2V3WShkb3VibGUgYW5nbGUpIGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKGFuZ2xlKSkKQEAgLTE3
Miw2ICsyOTUsMTQgQEAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJp
eDo6c2tld1koZG91YmxlIGFuZ2xlKSBjb25zdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6
OmNyZWF0ZShUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkuc2tld1koYW5nbGUpKTsKIH0K
IAordm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNrZXdZTWF0cml4KGRvdWJsZSBhbmdsZSkKK3sKKyAg
ICBpZiAoaXNuYW4oYW5nbGUpKQorICAgICAgICBhbmdsZSA9IDA7CisKKyAgICBtX21hdHJpeC5z
a2V3WShhbmdsZSk7Cit9CisKIFN0cmluZyBXZWJLaXRDU1NNYXRyaXg6OnRvU3RyaW5nKCkgY29u
c3QKIHsKICAgICAvLyBGSVhNRSAtIE5lZWQgdG8gZW5zdXJlIHZhbGlkIENTUyBmbG9hdGluZyBw
b2ludCB2YWx1ZXMgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY3
NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaAppbmRleCAxMDdiZjhiLi5jOWQ4NmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCkBAIC0zMyw2ICszMyw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmxvYXQzMkFycmF5OworY2xhc3MgRmxvYXQ2
NEFycmF5OworCiBjbGFzcyBXZWJLaXRDU1NNYXRyaXggOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJL
aXRDU1NNYXRyaXg+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NN
YXRyaXg+IGNyZWF0ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbSkKQEAgLTk1LDEyICs5
OCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNNDQoZG91YmxlIGYpIHsgbV9tYXRyaXguc2V0
TTQ0KGYpOyB9CiAgCiAgICAgdm9pZCBzZXRNYXRyaXhWYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CisKKyAgICB2b2lkIGNvcHkoRmxvYXQzMkFycmF5Kik7CisgICAgdm9pZCBj
b3B5NjQoRmxvYXQ2NEFycmF5Kik7CiAgICAgCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtYXRoIGZ1
bmN0aW9uIHJldHVybiBhIG5ldyBtYXRyaXggd2l0aCB0aGUgCiAgICAgLy8gc3BlY2lmaWVkIG9w
ZXJhdGlvbiBhcHBsaWVkLiBUaGUgdGhpcyB2YWx1ZSBpcyBub3QgbW9kaWZpZWQuCiAgICAgCiAg
ICAgLy8gTXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vjb25kTWF0cml4LCBvbiB0aGUgcmlnaHQg
KHJlc3VsdCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCiAgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NN
YXRyaXg+IG11bHRpcGx5KFdlYktpdENTU01hdHJpeCogc2Vjb25kTWF0cml4KSBjb25zdDsKKyAg
ICB2b2lkIG11bHRpcGx5TWF0cml4KFdlYktpdENTU01hdHJpeCAqc2Vjb25kTWF0cml4KTsKICAg
ICAKICAgICAvLyBSZXR1cm4gdGhlIGludmVyc2Ugb2YgdGhpcyBtYXRyaXguIFRocm93IGFuIGV4
Y2VwdGlvbiBpZiB0aGUgbWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlCiAgICAgUGFzc1JlZlB0cjxX
ZWJLaXRDU1NNYXRyaXg+IGludmVyc2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwpAQCAtMTEwLDYg
KzExNyw3IEBAIHB1YmxpYzoKICAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3Vn
aCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8g
dGhlIHRyYW5zbGF0aW9uIHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gdHJhbnNsYXRpb24o
eCx5LHopICogdGhpcykKICAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gdHJhbnNsYXRl
KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopIGNvbnN0OworICAgIHZvaWQgdHJhbnNsYXRl
TWF0cml4KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopOwogICAgIAogICAgIC8vIFJldHVy
bnMgdGhpcyBtYXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIFBhc3Np
bmcgc2NhbGVYIG9yIHNjYWxlWiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNzaW5n
IHNjYWxlWSBvZiBOYU4gCkBAIC0xMTcsNiArMTI1LDcgQEAgcHVibGljOgogICAgIC8vIE9wZXJh
dGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVk
IGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUgc2NhbGUgdmFsdWVzIG9uIHRoZSBsZWZ0IChy
ZXN1bHQgPSBzY2FsZSh4LHkseikgKiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0
cml4PiBzY2FsZShkb3VibGUgc2NhbGVYLCBkb3VibGUgc2NhbGVZLCBkb3VibGUgc2NhbGVaKSBj
b25zdDsKKyAgICB2b2lkIHNjYWxlTWF0cml4KGRvdWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVks
IGRvdWJsZSBzY2FsZVopOwogCiAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5
IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90
YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgpAQCAtMTI0LDI0
ICsxMzMsMjggQEAgcHVibGljOgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhv
dWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAv
LyB0aGUgcm90YXRpb24gdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSByb3RhdGlvbih4LHks
eikgKiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiByb3RhdGUoZG91Ymxl
IHJvdFgsIGRvdWJsZSByb3RZLCBkb3VibGUgcm90WikgY29uc3Q7CisgICAgdm9pZCByb3RhdGVN
YXRyaXgoZG91YmxlIHJvdFgsIGRvdWJsZSByb3RZLCBkb3VibGUgcm90Wik7CiAgICAgCiAgICAg
Ly8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGFib3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0
aGUgcGFzc2VkIGFuZ2xlLgogICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBv
ZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDApIHVzZSBhIHZhbHVlCiAgICAgLy8gT3BlcmF0aW9u
IGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkg
YSBtYXRyaXggd2l0aAogICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHJl
c3VsdCA9IHJvdGF0aW9uKHgseSx6LGFuZ2xlKSAqIHRoaXMpCiAgICAgUGFzc1JlZlB0cjxXZWJL
aXRDU1NNYXRyaXg+IHJvdGF0ZUF4aXNBbmdsZShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6
LCBkb3VibGUgYW5nbGUpIGNvbnN0OworICAgIHZvaWQgcm90YXRlQXhpc0FuZ2xlTWF0cml4KGRv
dWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSk7CiAgICAgCiAgICAgLy8g
UmV0dXJuIHRoaXMgbWF0cml4IHNrZXdlZCBhbG9uZyB0aGUgWCBheGlzIGJ5IHRoZSBwYXNzZWQg
dmFsdWVzLgogICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgogICAg
IC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBt
dWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUgc2tldyB2YWx1ZXMgb24gdGhl
IGxlZnQgKHJlc3VsdCA9IHNrZXdYKGFuZ2xlKSAqIHRoaXMpCiAgICAgUGFzc1JlZlB0cjxXZWJL
aXRDU1NNYXRyaXg+IHNrZXdYKGRvdWJsZSBhbmdsZSkgY29uc3Q7CisgICAgdm9pZCBza2V3WE1h
dHJpeChkb3VibGUgYW5nbGUpOwogCiAgICAgLy8gUmV0dXJuIHRoaXMgbWF0cml4IHNrZXdlZCBh
bG9uZyB0aGUgWSBheGlzIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIFBhc3NpbmcgYSBO
YU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQg
YXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgK
ICAgICAvLyB0aGUgc2tldyB2YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3VsdCA9IHNrZXdZKGFuZ2xl
KSAqIHRoaXMpCiAgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IHNrZXdZKGRvdWJsZSBh
bmdsZSkgY29uc3Q7CisgICAgdm9pZCBza2V3WU1hdHJpeChkb3VibGUgYW5nbGUpOwogCiAgICAg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF0cml4OyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCmluZGV4
IGQzMmNkOTcuLjVhYzY0ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NNYXRyaXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRs
CkBAIC01OSw5ICs1OSwxMiBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgYXR0cmlidXRlIGRvdWJs
ZSBtNDQ7CiAKICAgICAgICAgdm9pZCBzZXRNYXRyaXhWYWx1ZShpbiBET01TdHJpbmcgc3RyaW5n
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgY29weShpbiBGbG9hdDMyQXJy
YXkgYXJyYXkpOworICAgICAgICB2b2lkIGNvcHk2NChpbiBGbG9hdDY0QXJyYXkgYXJyYXkpOwog
ICAgICAgICAKICAgICAgICAgLy8gTXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vjb25kTWF0cml4
LCBvbiB0aGUgcmlnaHQgKHJlc3VsdCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCiAgICAgICAgIFtJ
bW11dGFibGVdIFdlYktpdENTU01hdHJpeCBtdWx0aXBseShpbiBXZWJLaXRDU1NNYXRyaXggc2Vj
b25kTWF0cml4KTsKKyAgICAgICAgdm9pZCBtdWx0aXBseU1hdHJpeChpbiBXZWJLaXRDU1NNYXRy
aXggc2Vjb25kTWF0cml4KTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybiB0aGUgaW52ZXJz
ZSBvZiB0aGlzIG1hdHJpeC4gVGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBtYXRyaXggaXMgbm90
IGludmVydGlibGUKICAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IGludmVyc2Uo
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CkBAIC02OSwyOSArNzIsMzUgQEAgbW9kdWxlIGNzcyB7
CiAgICAgICAgIC8vIFJldHVybiB0aGlzIG1hdHJpeCB0cmFuc2xhdGVkIGJ5IHRoZSBwYXNzZWQg
dmFsdWVzLgogICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4g
VGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucyAgICAKICAg
ICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHRyYW5zbGF0ZShpbiBkb3VibGUgeCwg
aW4gZG91YmxlIHksIGluIGRvdWJsZSB6KTsKKyAgICAgICAgdm9pZCB0cmFuc2xhdGVNYXRyaXgo
aW4gZG91YmxlIHgsIGluIGRvdWJsZSB5LCBpbiBkb3VibGUgeik7CiAgICAgICAgIAogICAgICAg
ICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHNjYWxlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAg
ICAgICAgLy8gUGFzc2luZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFsdWUgb2Yg
MSwgYnV0IHBhc3Npbmcgc2NhbGVZIG9mIE5hTiAKICAgICAgICAgLy8gbWFrZXMgaXQgdGhlIHNh
bWUgYXMgc2NhbGVYLiBUaGlzIGFsbG93cyB0aGUgM0QgZm9ybSB0byB1c2VkIGZvciAyRCBvcGVy
YXRpb25zCiAgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBzY2FsZShpbiBkb3Vi
bGUgc2NhbGVYLCBpbiBkb3VibGUgc2NhbGVZLCBpbiBkb3VibGUgc2NhbGVaKTsKKyAgICAgICAg
dm9pZCBzY2FsZU1hdHJpeChpbiBkb3VibGUgc2NhbGVYLCBpbiBkb3VibGUgc2NhbGVZLCBpbiBk
b3VibGUgc2NhbGVaKTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXgg
cm90YXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gSWYgcm90WSBhbmQgcm90
WiBhcmUgTmFOLCByb3RhdGUgYWJvdXQgWiAocm90WD0wLCByb3RhdGVZPTAsIHJvdGF0ZVo9cm90
WCkuCiAgICAgICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlvbiB2YWx1ZSBvZiAwIGZvciBh
bnkgcGFzc2VkIE5hTi4gICAgCiAgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBy
b3RhdGUoaW4gZG91YmxlIHJvdFgsIGluIGRvdWJsZSByb3RZLCBpbiBkb3VibGUgcm90Wik7Cisg
ICAgICAgIHZvaWQgcm90YXRlTWF0cml4KGluIGRvdWJsZSByb3RYLCBpbiBkb3VibGUgcm90WSwg
aW4gZG91YmxlIHJvdFopOwogICAgICAgICAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJp
eCByb3RhdGVkIGFib3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2VkIGFuZ2xlLgogICAg
ICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4gSWYgdGhlIGF4aXMg
aXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQogICAgICAgICAvLyBvZiAoMCwwLDEpLgogICAgICAgICBb
SW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRlQXhpc0FuZ2xlKGluIGRvdWJsZSB4LCBp
biBkb3VibGUgeSwgaW4gZG91YmxlIHosIGluIGRvdWJsZSBhbmdsZSk7CisgICAgICAgIHZvaWQg
cm90YXRlQXhpc0FuZ2xlTWF0cml4KGluIGRvdWJsZSB4LCBpbiBkb3VibGUgeSwgaW4gZG91Ymxl
IHosIGluIGRvdWJsZSBhbmdsZSk7CiAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCBz
a2V3ZWQgYWxvbmcgdGhlIFggYXhpcyBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8g
UGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCiAgICAgICAgIFtJbW11dGFibGVd
IFdlYktpdENTU01hdHJpeCBza2V3WChpbiBkb3VibGUgYW5nbGUpOworICAgICAgICB2b2lkIHNr
ZXdYTWF0cml4KGluIGRvdWJsZSBhbmdsZSk7CiAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1h
dHJpeCBza2V3ZWQgYWxvbmcgdGhlIFkgYXhpcyBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAg
ICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCiAgICAgICAgIFtJbW11
dGFibGVdIFdlYktpdENTU01hdHJpeCBza2V3WShpbiBkb3VibGUgYW5nbGUpOworICAgICAgICB2
b2lkIHNrZXdZTWF0cml4KGluIGRvdWJsZSBhbmdsZSk7CiAKICAgICAgICAgW0RvbnRFbnVtXSBE
T01TdHJpbmcgdG9TdHJpbmcoKTsKICAgICB9OwotLSAKMS43LjQuMQoK
</data>
<flag name="review"
          id="90776"
          type_id="1"
          status="-"
          setter="kbr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98521</attachid>
            <date>2011-06-24 11:48:20 -0700</date>
            <delta_ts>2011-10-18 16:36:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Make-WebKitCSSMatrix-more-efficient-for-use-in-WebGL.patch</filename>
            <type>text/plain</type>
            <size>25664</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAwNDhmNTgyMmIzMTc5YjFhYTc2NjlmODNiMGI1MzZlYWQ0MTM2ZWIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjQgSnVuIDIwMTEgMTQ6MjA6NDEgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdM
CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxMiArKwogLi4uL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3Rl
ZC50eHQgfCAgIDkwICsrKysrKysrKysrKysKIC4uLi90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1p
bnRlcmZhY2UueGh0bWwgICAgICAgIHwgIDEwNyArKysrKysrKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKwogU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAgICAgICAgICAgICAgfCAgMTMzICsr
KysrKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4Lmgg
ICAgICAgICAgICAgICB8ICAgMjUgKysrKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NN
YXRyaXguaWRsICAgICAgICAgICAgIHwgICAyMCArKystCiA3IGZpbGVzIGNoYW5nZWQsIDQwNSBp
bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyY2ZkOGMzLi45YzQ5ODgwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMjQgIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9s
aXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSBXZWJLaXRDU1NNYXRyaXggbW9yZSBlZmZpY2llbnQgZm9yIHVz
ZSBpbiBXZWJHTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA2MzMKKworICAgICAgICBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBm
b3IgdXNlIGluIFdlYkdMCisKKyAgICAgICAgKiB0cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRl
cmZhY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHRyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWlu
dGVyZmFjZS54aHRtbDoKKwogMjAxMS0wNi0xMyAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3RlZC50eHQK
aW5kZXggOTVhYmU1Mi4uNTA2NTY1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jt
cy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90
cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CkBAIC0xODAsNiAr
MTgwLDI0IEBAIFBBU1MgbS5tNDIgaXMgMAogUEFTUyBtLm00MyBpcyAwCiBQQVNTIG0ubTQ0IGlz
IDEKIAorVGVzdCBzZWxmTXVsdGlwbHkKK1BBU1MgTWF0aC5mbG9vcihtLm0xMSkgaXMgNTM4CitQ
QVNTIE1hdGguZmxvb3IobS5tMTIpIGlzIDYxMgorUEFTUyBNYXRoLmZsb29yKG0ubTEzKSBpcyA2
ODYKK1BBU1MgTWF0aC5mbG9vcihtLm0xNCkgaXMgNzYwCitQQVNTIE1hdGguZmxvb3IobS5tMjEp
IGlzIDY1MAorUEFTUyBNYXRoLmZsb29yKG0ubTIyKSBpcyA3NDAKK1BBU1MgTWF0aC5mbG9vciht
Lm0yMykgaXMgODMwCitQQVNTIE1hdGguZmxvb3IobS5tMjQpIGlzIDkyMAorUEFTUyBNYXRoLmZs
b29yKG0ubTMxKSBpcyA3NjIKK1BBU1MgTWF0aC5mbG9vcihtLm0zMikgaXMgODY4CitQQVNTIE1h
dGguZmxvb3IobS5tMzMpIGlzIDk3NAorUEFTUyBNYXRoLmZsb29yKG0ubTM0KSBpcyAxMDgwCitQ
QVNTIE1hdGguZmxvb3IobS5tNDEpIGlzIDg3NAorUEFTUyBNYXRoLmZsb29yKG0ubTQyKSBpcyA5
OTYKK1BBU1MgTWF0aC5mbG9vcihtLm00MykgaXMgMTExOAorUEFTUyBNYXRoLmZsb29yKG0ubTQ0
KSBpcyAxMjQwCisKIFRlc3QgaW52ZXJzZQogUEFTUyBwYXJzZUZsb2F0KG0yLm0xMSkgaXMgMC41
CiBQQVNTIHBhcnNlRmxvYXQobTIubTEyKSBpcyAwCkBAIC0yNTUsNiArMjczLDI0IEBAIFBBU1Mg
bS5tNDIgaXMgMAogUEFTUyBtLm00MyBpcyAwCiBQQVNTIG0ubTQ0IGlzIDEKIAorVGVzdCBzZWxm
VHJhbnNsYXRlCitQQVNTIG0ubTExIGlzIDEKK1BBU1MgbS5tMTIgaXMgMAorUEFTUyBtLm0xMyBp
cyAwCitQQVNTIG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0yMiBpcyAxCitQ
QVNTIG0ubTIzIGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBtLm0zMSBpcyAwCitQQVNTIG0u
bTMyIGlzIDAKK1BBU1MgbS5tMzMgaXMgMQorUEFTUyBtLm0zNCBpcyAwCitQQVNTIG0ubTQxIGlz
IDEwCitQQVNTIG0ubTQyIGlzIDIwCitQQVNTIG0ubTQzIGlzIDMwCitQQVNTIG0ubTQ0IGlzIDEK
KwogVGVzdCBzY2FsZQogUEFTUyBtMi5tMTEgaXMgMTAKIFBBU1MgbTIubTEyIGlzIDAKQEAgLTI5
MSw2ICszMjcsMjQgQEAgUEFTUyBtLm00MiBpcyAwCiBQQVNTIG0ubTQzIGlzIDAKIFBBU1MgbS5t
NDQgaXMgMQogCitUZXN0IHNlbGZTY2FsZQorUEFTUyBtLm0xMSBpcyAxMAorUEFTUyBtLm0xMiBp
cyAwCitQQVNTIG0ubTEzIGlzIDAKK1BBU1MgbS5tMTQgaXMgMAorUEFTUyBtLm0yMSBpcyAwCitQ
QVNTIG0ubTIyIGlzIDIwCitQQVNTIG0ubTIzIGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBt
Lm0zMSBpcyAwCitQQVNTIG0ubTMyIGlzIDAKK1BBU1MgbS5tMzMgaXMgMzAKK1BBU1MgbS5tMzQg
aXMgMAorUEFTUyBtLm00MSBpcyAwCitQQVNTIG0ubTQyIGlzIDAKK1BBU1MgbS5tNDMgaXMgMAor
UEFTUyBtLm00NCBpcyAxCisKIFRlc3Qgcm90YXRlCiBQQVNTIHBhcnNlRmxvYXQobTIubTExLnRv
UHJlY2lzaW9uKDYpKSBpcyAwLjgxMzc5OAogUEFTUyBwYXJzZUZsb2F0KG0yLm0xMi50b1ByZWNp
c2lvbig2KSkgaXMgMC40Njk4NDYKQEAgLTMyNyw2ICszODEsMjQgQEAgUEFTUyBtLm00MiBpcyAw
CiBQQVNTIG0ubTQzIGlzIDAKIFBBU1MgbS5tNDQgaXMgMQogCitUZXN0IHNlbGZSb3RhdGUKK1BB
U1MgcGFyc2VGbG9hdChtLm0xMS50b1ByZWNpc2lvbig2KSkgaXMgMC44MTM3OTgKK1BBU1MgcGFy
c2VGbG9hdChtLm0xMi50b1ByZWNpc2lvbig2KSkgaXMgMC40Njk4NDYKK1BBU1MgcGFyc2VGbG9h
dChtLm0xMy50b1ByZWNpc2lvbig2KSkgaXMgLTAuMzQyMDIKK1BBU1MgcGFyc2VGbG9hdChtLm0x
NC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTIxLnRvUHJlY2lzaW9u
KDYpKSBpcyAtMC40NDA5NworUEFTUyBwYXJzZUZsb2F0KG0ubTIyLnRvUHJlY2lzaW9uKDYpKSBp
cyAwLjg4MjU2NAorUEFTUyBwYXJzZUZsb2F0KG0ubTIzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjE2
MzE3NgorUEFTUyBwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBh
cnNlRmxvYXQobS5tMzEudG9QcmVjaXNpb24oNikpIGlzIDAuMzc4NTIyCitQQVNTIHBhcnNlRmxv
YXQobS5tMzIudG9QcmVjaXNpb24oNikpIGlzIDAuMDE4MDI4MworUEFTUyBwYXJzZUZsb2F0KG0u
bTMzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjkyNTQxNworUEFTUyBwYXJzZUZsb2F0KG0ubTM0LnRv
UHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDEudG9QcmVjaXNpb24oNikp
IGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBw
YXJzZUZsb2F0KG0ubTQzLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5t
NDQudG9QcmVjaXNpb24oNikpIGlzIDEKKwogVGVzdCByb3RhdGVBeGlzQW5nbGUKIFBBU1MgcGFy
c2VGbG9hdChtMi5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODA0NzM4CiBQQVNTIHBhcnNlRmxv
YXQobTIubTEyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjUwNTg3OQpAQCAtMzYzLDYgKzQzNSwyNCBA
QCBQQVNTIG0ubTQyIGlzIDAKIFBBU1MgbS5tNDMgaXMgMAogUEFTUyBtLm00NCBpcyAxCiAKK1Rl
c3Qgc2VsZlJvdGF0ZUF4aXNBbmdsZQorUEFTUyBwYXJzZUZsb2F0KG0ubTExLnRvUHJlY2lzaW9u
KDYpKSBpcyAwLjgwNDczOAorUEFTUyBwYXJzZUZsb2F0KG0ubTEyLnRvUHJlY2lzaW9uKDYpKSBp
cyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0ubTEzLnRvUHJlY2lzaW9uKDYpKSBpcyAtMC4z
MTA2MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBw
YXJzZUZsb2F0KG0ubTIxLnRvUHJlY2lzaW9uKDYpKSBpcyAtMC4zMTA2MTcKK1BBU1MgcGFyc2VG
bG9hdChtLm0yMi50b1ByZWNpc2lvbig2KSkgaXMgMC44MDQ3MzgKK1BBU1MgcGFyc2VGbG9hdCht
Lm0yMy50b1ByZWNpc2lvbig2KSkgaXMgMC41MDU4NzkKK1BBU1MgcGFyc2VGbG9hdChtLm0yNC50
b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTMxLnRvUHJlY2lzaW9uKDYp
KSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYpKSBpcyAt
MC4zMTA2MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0zMy50b1ByZWNpc2lvbig2KSkgaXMgMC44MDQ3
MzgKK1BBU1MgcGFyc2VGbG9hdChtLm0zNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJz
ZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDIu
dG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00My50b1ByZWNpc2lvbig2
KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKSBpcyAxCisKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1sIGIv
TGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1sCmluZGV4
IDdkOWFjYzYuLmQ5ZTFmMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3Nz
bWF0cml4LTNkLWludGVyZmFjZS54aHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nz
c21hdHJpeC0zZC1pbnRlcmZhY2UueGh0bWwKQEAgLTIzNiw2ICsyMzYsMjkgQEAgc2hvdWxkQmUo
J20ubTQyJywgJzAnKTsKIHNob3VsZEJlKCdtLm00MycsICcwJyk7CiBzaG91bGRCZSgnbS5tNDQn
LCAnMScpOwogCitkZWJ1ZygiIikKK2RlYnVnKCJUZXN0IHNlbGZNdWx0aXBseSIpCittID0gIG5l
dyBXZWJLaXRDU1NNYXRyaXgoIm1hdHJpeDNkKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2KSIpOworbTIgPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCJt
YXRyaXgzZCgxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LDI2LCAyNywgMjgsIDI5
LCAzMCwgMzEsIDMyKSIpOworbS5zZWxmTXVsdGlwbHkobTIpCitzaG91bGRCZSgnTWF0aC5mbG9v
cihtLm0xMSknLCAnNTM4Jyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0xMiknLCAnNjEyJyk7
CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0xMyknLCAnNjg2Jyk7CitzaG91bGRCZSgnTWF0aC5m
bG9vcihtLm0xNCknLCAnNzYwJyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0yMSknLCAnNjUw
Jyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0yMiknLCAnNzQwJyk7CitzaG91bGRCZSgnTWF0
aC5mbG9vcihtLm0yMyknLCAnODMwJyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0yNCknLCAn
OTIwJyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0zMSknLCAnNzYyJyk7CitzaG91bGRCZSgn
TWF0aC5mbG9vcihtLm0zMiknLCAnODY4Jyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0zMykn
LCAnOTc0Jyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtLm0zNCknLCAnMTA4MCcpOworc2hvdWxk
QmUoJ01hdGguZmxvb3IobS5tNDEpJywgJzg3NCcpOworc2hvdWxkQmUoJ01hdGguZmxvb3IobS5t
NDIpJywgJzk5NicpOworc2hvdWxkQmUoJ01hdGguZmxvb3IobS5tNDMpJywgJzExMTgnKTsKK3No
b3VsZEJlKCdNYXRoLmZsb29yKG0ubTQ0KScsICcxMjQwJyk7CisKKwogZGVidWcoIiIpOwogZGVi
dWcoIlRlc3QgaW52ZXJzZSIpOwogbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoIm1hdHJpeDNkKDIs
IDAsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIDAsIDIsIDAsIDEwLCAyMCwgMzAsIDEpIik7CkBAIC0z
MjMsNiArMzQ2LDI3IEBAIHNob3VsZEJlKCdtLm00MycsICcwJyk7CiBzaG91bGRCZSgnbS5tNDQn
LCAnMScpOwogCiBkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBzZWxmVHJhbnNsYXRlIik7CittID0g
bmV3IFdlYktpdENTU01hdHJpeCgpOworbS5zZWxmVHJhbnNsYXRlKDEwLCAyMCwgMzApOworc2hv
dWxkQmUoJ20ubTExJywgJzEnKTsKK3Nob3VsZEJlKCdtLm0xMicsICcwJyk7CitzaG91bGRCZSgn
bS5tMTMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTE0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMScs
ICcwJyk7CitzaG91bGRCZSgnbS5tMjInLCAnMScpOworc2hvdWxkQmUoJ20ubTIzJywgJzAnKTsK
K3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMzEnLCAnMCcpOworc2hvdWxk
QmUoJ20ubTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMycsICcxJyk7CitzaG91bGRCZSgnbS5t
MzQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzEwJyk7CitzaG91bGRCZSgnbS5tNDInLCAn
MjAnKTsKK3Nob3VsZEJlKCdtLm00MycsICczMCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsK
KworZGVidWcoIiIpOwogZGVidWcoIlRlc3Qgc2NhbGUiKTsKIG0gPSBuZXcgV2ViS2l0Q1NTTWF0
cml4KCk7CiBtMiA9IG0uc2NhbGUoMTAsIDIwLCAzMCk7CkBAIC0zNjMsNiArNDA3LDI3IEBAIHNo
b3VsZEJlKCdtLm00MycsICcwJyk7CiBzaG91bGRCZSgnbS5tNDQnLCAnMScpOwogCiBkZWJ1Zygi
Iik7CitkZWJ1ZygiVGVzdCBzZWxmU2NhbGUiKTsKK20gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7
CittLnNlbGZTY2FsZSgxMCwgMjAsIDMwKTsKK3Nob3VsZEJlKCdtLm0xMScsICcxMCcpOworc2hv
dWxkQmUoJ20ubTEyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0xMycsICcwJyk7CitzaG91bGRCZSgn
bS5tMTQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTIxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMics
ICcyMCcpOworc2hvdWxkQmUoJ20ubTIzJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7
CitzaG91bGRCZSgnbS5tMzEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTMyJywgJzAnKTsKK3Nob3Vs
ZEJlKCdtLm0zMycsICczMCcpOworc2hvdWxkQmUoJ20ubTM0JywgJzAnKTsKK3Nob3VsZEJlKCdt
Lm00MScsICcwJyk7CitzaG91bGRCZSgnbS5tNDInLCAnMCcpOworc2hvdWxkQmUoJ20ubTQzJywg
JzAnKTsKK3Nob3VsZEJlKCdtLm00NCcsICcxJyk7CisKK2RlYnVnKCIiKTsKIGRlYnVnKCJUZXN0
IHJvdGF0ZSIpOwogbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsKIG0yID0gbS5yb3RhdGUoMTAs
IDIwLCAzMCk7CkBAIC00MDMsNiArNDY4LDI3IEBAIHNob3VsZEJlKCdtLm00MycsICcwJyk7CiBz
aG91bGRCZSgnbS5tNDQnLCAnMScpOwogCiBkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBzZWxmUm90
YXRlIik7CittID0gbmV3IFdlYktpdENTU01hdHJpeCgpOworbS5zZWxmUm90YXRlKDEwLCAyMCwg
MzApOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTEudG9QcmVjaXNpb24oNikpJywgJzAuODEz
Nzk4Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMi50b1ByZWNpc2lvbig2KSknLCAnMC40
Njk4NDYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEzLnRvUHJlY2lzaW9uKDYpKScsICct
MC4zNDIwMicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTQudG9QcmVjaXNpb24oNikpJywg
JzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIxLnRvUHJlY2lzaW9uKDYpKScsICctMC40
NDA5NycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjIudG9QcmVjaXNpb24oNikpJywgJzAu
ODgyNTY0Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSknLCAn
MC4xNjMxNzYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9uKDYpKScs
ICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zMS50b1ByZWNpc2lvbig2KSknLCAnMC4z
Nzg1MjInKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYpKScsICcw
LjAxODAyODMnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lzaW9uKDYpKScs
ICcwLjkyNTQxNycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzQudG9QcmVjaXNpb24oNikp
JywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9uKDYpKScsICcw
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSknLCAnMCcpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDMudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKScsICcxJyk7CisKK2RlYnVnKCIi
KTsKIGRlYnVnKCJUZXN0IHJvdGF0ZUF4aXNBbmdsZSIpOwogbSA9IG5ldyBXZWJLaXRDU1NNYXRy
aXgoKTsKIG0yID0gbS5yb3RhdGVBeGlzQW5nbGUoMC43MDcsIDAuNzA3LCAwLjcwNywgNDUpOwpA
QCAtNDQzLDYgKzUyOSwyNyBAQCBzaG91bGRCZSgnbS5tNDMnLCAnMCcpOwogc2hvdWxkQmUoJ20u
bTQ0JywgJzEnKTsKIAogZGVidWcoIiIpOworZGVidWcoIlRlc3Qgc2VsZlJvdGF0ZUF4aXNBbmds
ZSIpOworbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsKK20uc2VsZlJvdGF0ZUF4aXNBbmdsZSgw
LjcwNywgMC43MDcsIDAuNzA3LCA0NSk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMS50b1By
ZWNpc2lvbig2KSknLCAnMC44MDQ3MzgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEyLnRv
UHJlY2lzaW9uKDYpKScsICcwLjUwNTg3OScpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTMu
dG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MTQudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIxLnRv
UHJlY2lzaW9uKDYpKScsICctMC4zMTA2MTcnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIy
LnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDczOCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MjMudG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0yNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzEu
dG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0z
Mi50b1ByZWNpc2lvbig2KSknLCAnLTAuMzEwNjE3Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0zMy50b1ByZWNpc2lvbig2KSknLCAnMC44MDQ3MzgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTM0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00
MS50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDIudG9Q
cmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQzLnRvUHJlY2lz
aW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00NC50b1ByZWNpc2lvbig2
KSknLCAnMScpOworCitkZWJ1ZygiIik7CiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOWVkMzUxLi5lODFkYjAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTEtMDYtMjQgIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9saXZlaXJhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBXZWJLaXRDU1NNYXRyaXggbW9yZSBlZmZpY2llbnQgZm9yIHVzZSBpbiBXZWJH
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MzMK
KworICAgICAgICBDcmVhdGUgV2ViS2l0Q1NTTWF0cml4IG1ldGhvZHMgdGhhdCBkbyBub3QgcmVx
dWlyZSBhIG5ldyBXZWJLaXRDU1NNYXRyaXggb2JqZWN0CisgICAgICAgIGJlaW5nIGNyZWF0ZWQs
IGluc3RlYWQsIG1vZGlmaWVzIHRoZSBXZWJLaXRDU1NNYXRyaXguCisKKyAgICAgICAgKiBjc3Mv
V2ViS2l0Q1NTTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6
c2V0TWF0cml4VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4Ojp0b0Fy
cmF5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6c2VsZk11bHRpcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6c2VsZlRyYW5zbGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnNlbGZTY2FsZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRDU1NNYXRyaXg6OnNlbGZSb3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0Q1NTTWF0cml4OjpzZWxmUm90YXRlQXhpc0FuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU01hdHJpeDo6c2VsZlNrZXdYKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01h
dHJpeDo6c2VsZlNrZXdZKToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4Lmg6CisgICAg
ICAgICogY3NzL1dlYktpdENTU01hdHJpeC5pZGw6CisKIDIwMTEtMDYtMTMgIERpcmsgU2NodWx6
ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSb2IgQnVpcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKaW5kZXggMjZmZTI4Ni4uMWUwOWMxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKQEAgLTMyLDYgKzMyLDggQEAK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGbG9hdDMyQXJyYXku
aCIKKyNpbmNsdWRlICJGbG9hdDY0QXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03NywxMyArNzksNTkgQEAgdm9pZCBXZWJLaXRD
U1NNYXRyaXg6OnNldE1hdHJpeFZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KLSAgICAgICAgCisKICAgICAgICAgLy8gc2V0IHRoZSBtYXRyaXgKICAgICAgICAgbV9tYXRy
aXggPSB0OwogICAgIH0gZWxzZSBpZiAoIXN0cmluZy5pc0VtcHR5KCkpIC8vIFRoZXJlIGlzIHNv
bWV0aGluZyB0aGVyZSBidXQgcGFyc2luZyBmYWlsZWQKICAgICAgICAgZWMgPSBTWU5UQVhfRVJS
OwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6dG9BcnJheShGbG9hdDMyQXJyYXkqIGFycmF5
KQoreworICAgIGlmICghYXJyYXkgfHwgYXJyYXktPmxlbmd0aCgpIDwgMTYpCisgICAgICAgIHJl
dHVybjsKKworICAgIGFycmF5LT5zZXQoMCwgbV9tYXRyaXgubTExKCkpOworICAgIGFycmF5LT5z
ZXQoMSwgbV9tYXRyaXgubTEyKCkpOworICAgIGFycmF5LT5zZXQoMiwgbV9tYXRyaXgubTEzKCkp
OworICAgIGFycmF5LT5zZXQoMywgbV9tYXRyaXgubTE0KCkpOworICAgIGFycmF5LT5zZXQoNCwg
bV9tYXRyaXgubTIxKCkpOworICAgIGFycmF5LT5zZXQoNSwgbV9tYXRyaXgubTIyKCkpOworICAg
IGFycmF5LT5zZXQoNiwgbV9tYXRyaXgubTIzKCkpOworICAgIGFycmF5LT5zZXQoNywgbV9tYXRy
aXgubTI0KCkpOworICAgIGFycmF5LT5zZXQoOCwgbV9tYXRyaXgubTMxKCkpOworICAgIGFycmF5
LT5zZXQoOSwgbV9tYXRyaXgubTMyKCkpOworICAgIGFycmF5LT5zZXQoMTAsIG1fbWF0cml4Lm0z
MygpKTsKKyAgICBhcnJheS0+c2V0KDExLCBtX21hdHJpeC5tMzQoKSk7CisgICAgYXJyYXktPnNl
dCgxMiwgbV9tYXRyaXgubTQxKCkpOworICAgIGFycmF5LT5zZXQoMTMsIG1fbWF0cml4Lm00Migp
KTsKKyAgICBhcnJheS0+c2V0KDE0LCBtX21hdHJpeC5tNDMoKSk7CisgICAgYXJyYXktPnNldCgx
NSwgbV9tYXRyaXgubTQ0KCkpOworfQorCit2b2lkIFdlYktpdENTU01hdHJpeDo6dG9BcnJheShG
bG9hdDY0QXJyYXkqIGFycmF5KQoreworICAgIGlmICghYXJyYXkgfHwgYXJyYXktPmxlbmd0aCgp
IDwgMTYpCisgICAgICAgIHJldHVybjsKKworICAgIGFycmF5LT5zZXQoMCwgbV9tYXRyaXgubTEx
KCkpOworICAgIGFycmF5LT5zZXQoMSwgbV9tYXRyaXgubTEyKCkpOworICAgIGFycmF5LT5zZXQo
MiwgbV9tYXRyaXgubTEzKCkpOworICAgIGFycmF5LT5zZXQoMywgbV9tYXRyaXgubTE0KCkpOwor
ICAgIGFycmF5LT5zZXQoNCwgbV9tYXRyaXgubTIxKCkpOworICAgIGFycmF5LT5zZXQoNSwgbV9t
YXRyaXgubTIyKCkpOworICAgIGFycmF5LT5zZXQoNiwgbV9tYXRyaXgubTIzKCkpOworICAgIGFy
cmF5LT5zZXQoNywgbV9tYXRyaXgubTI0KCkpOworICAgIGFycmF5LT5zZXQoOCwgbV9tYXRyaXgu
bTMxKCkpOworICAgIGFycmF5LT5zZXQoOSwgbV9tYXRyaXgubTMyKCkpOworICAgIGFycmF5LT5z
ZXQoMTAsIG1fbWF0cml4Lm0zMygpKTsKKyAgICBhcnJheS0+c2V0KDExLCBtX21hdHJpeC5tMzQo
KSk7CisgICAgYXJyYXktPnNldCgxMiwgbV9tYXRyaXgubTQxKCkpOworICAgIGFycmF5LT5zZXQo
MTMsIG1fbWF0cml4Lm00MigpKTsKKyAgICBhcnJheS0+c2V0KDE0LCBtX21hdHJpeC5tNDMoKSk7
CisgICAgYXJyYXktPnNldCgxNSwgbV9tYXRyaXgubTQ0KCkpOworfQorCiAvLyBQZXJmb3JtIGEg
Y29uY2F0ZW5hdGlvbiBvZiB0aGUgbWF0cmljZXMgKHRoaXMgKiBzZWNvbmRNYXRyaXgpCiBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4OjptdWx0aXBseShXZWJLaXRD
U1NNYXRyaXgqIHNlY29uZE1hdHJpeCkgY29uc3QKIHsKQEAgLTkzLDYgKzE0MSwxNCBAQCBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4OjptdWx0aXBseShXZWJLaXRD
U1NNYXRyaXgqIHNlY29uZE1hdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShU
cmFuc2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LT5tX21h
dHJpeCkpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6c2VsZk11bHRpcGx5KFdlYktpdENT
U01hdHJpeCogc2Vjb25kTWF0cml4KQoreworICAgIGlmICghc2Vjb25kTWF0cml4KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX21hdHJpeC5tdWx0aXBseShzZWNvbmRNYXRyaXgtPm1fbWF0cml4
KTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6aW52
ZXJzZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIW1fbWF0cml4LmlzSW52
ZXJ0aWJsZSgpKSB7CkBAIC0xMTQsNiArMTcwLDE4IEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0
cml4PiBXZWJLaXRDU1NNYXRyaXg6OnRyYW5zbGF0ZShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJs
CiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJpeDo6Y3JlYXRlKFRyYW5zZm9ybWF0aW9uTWF0cml4
KG1fbWF0cml4KS50cmFuc2xhdGUzZCh4LCB5LCB6KSk7CiB9CiAKK3ZvaWQgV2ViS2l0Q1NTTWF0
cml4OjpzZWxmVHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopCit7CisgICAg
aWYgKGlzbmFuKHgpKQorICAgICAgICB4ID0gMDsKKyAgICBpZiAoaXNuYW4oeSkpCisgICAgICAg
IHkgPSAwOworICAgIGlmIChpc25hbih6KSkKKyAgICAgICAgeiA9IDA7CisKKyAgICBtX21hdHJp
eC50cmFuc2xhdGUzZCh4LCB5LCB6KTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+
IFdlYktpdENTU01hdHJpeDo6c2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91
YmxlIHNjYWxlWikgY29uc3QKIHsKICAgICBpZiAoaXNuYW4oc2NhbGVYKSkKQEAgLTEyNSw2ICsx
OTMsMTggQEAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2Nh
bGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwKICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0
cml4OjpjcmVhdGUoVHJhbnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLnNjYWxlM2Qoc2NhbGVY
LCBzY2FsZVksIHNjYWxlWikpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6c2VsZlNjYWxl
KGRvdWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVksIGRvdWJsZSBzY2FsZVopCit7CisgICAgaWYg
KGlzbmFuKHNjYWxlWCkpCisgICAgICAgIHNjYWxlWCA9IDE7CisgICAgaWYgKGlzbmFuKHNjYWxl
WSkpCisgICAgICAgIHNjYWxlWSA9IHNjYWxlWDsKKyAgICBpZiAoaXNuYW4oc2NhbGVaKSkKKyAg
ICAgICAgc2NhbGVaID0gMTsKKworICAgIG1fbWF0cml4LnNjYWxlM2Qoc2NhbGVYLCBzY2FsZVks
IHNjYWxlWik7Cit9CisKIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRy
aXg6OnJvdGF0ZShkb3VibGUgcm90WCwgZG91YmxlIHJvdFksIGRvdWJsZSByb3RaKSBjb25zdAog
ewogICAgIGlmIChpc25hbihyb3RYKSkKQEAgLTE0Myw2ICsyMjMsMjUgQEAgUGFzc1JlZlB0cjxX
ZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6cm90YXRlKGRvdWJsZSByb3RYLCBkb3Vi
bGUgcm90WSwgZG8KICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0cml4OjpjcmVhdGUoVHJhbnNmb3Jt
YXRpb25NYXRyaXgobV9tYXRyaXgpLnJvdGF0ZTNkKHJvdFgsIHJvdFksIHJvdFopKTsKIH0KIAor
dm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNlbGZSb3RhdGUoZG91YmxlIHJvdFgsIGRvdWJsZSByb3RZ
LCBkb3VibGUgcm90WikKK3sKKyAgICBpZiAoaXNuYW4ocm90WCkpCisgICAgICAgIHJvdFggPSAw
OworCisgICAgaWYgKGlzbmFuKHJvdFkpICYmIGlzbmFuKHJvdFopKSB7CisgICAgICAgIHJvdFog
PSByb3RYOworICAgICAgICByb3RYID0gMDsKKyAgICAgICAgcm90WSA9IDA7CisgICAgfQorCisg
ICAgaWYgKGlzbmFuKHJvdFkpKQorICAgICAgICByb3RZID0gMDsKKyAgICBpZiAoaXNuYW4ocm90
WikpCisgICAgICAgIHJvdFogPSAwOworCisgICAgbV9tYXRyaXgucm90YXRlM2Qocm90WCwgcm90
WSwgcm90Wik7Cit9CisKIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRy
aXg6OnJvdGF0ZUF4aXNBbmdsZShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUg
YW5nbGUpIGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKHgpKQpAQCAtMTU4LDYgKzI1NywyMiBAQCBQ
YXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpyb3RhdGVBeGlzQW5n
bGUoZG91YmxlIHgsIGRvdWJsZSB5LAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0
ZShUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkucm90YXRlM2QoeCwgeSwgeiwgYW5nbGUp
KTsKIH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNlbGZSb3RhdGVBeGlzQW5nbGUoZG91Ymxl
IHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91YmxlIGFuZ2xlKQoreworICAgIGlmIChpc25hbih4
KSkKKyAgICAgICAgeCA9IDA7CisgICAgaWYgKGlzbmFuKHkpKQorICAgICAgICB5ID0gMDsKKyAg
ICBpZiAoaXNuYW4oeikpCisgICAgICAgIHogPSAwOworICAgIGlmIChpc25hbihhbmdsZSkpCisg
ICAgICAgIGFuZ2xlID0gMDsKKyAgICBpZiAoIXggJiYgIXkgJiYgIXopCisgICAgICAgIHogPSAx
OworCisgICAgbV9tYXRyaXgucm90YXRlM2QoeCwgeSwgeiwgYW5nbGUpOworfQorCiBQYXNzUmVm
UHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpza2V3WChkb3VibGUgYW5nbGUp
IGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKGFuZ2xlKSkKQEAgLTE2NSw2ICsyODAsMTQgQEAgUGFz
c1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2tld1goZG91YmxlIGFu
Z2xlKSBjb25zdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFuc2Zvcm1h
dGlvbk1hdHJpeChtX21hdHJpeCkuc2tld1goYW5nbGUpKTsKIH0KIAordm9pZCBXZWJLaXRDU1NN
YXRyaXg6OnNlbGZTa2V3WChkb3VibGUgYW5nbGUpCit7CisgICAgaWYgKGlzbmFuKGFuZ2xlKSkK
KyAgICAgICAgYW5nbGUgPSAwOworCisgICAgbV9tYXRyaXguc2tld1goYW5nbGUpOworfQorCiBQ
YXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpza2V3WShkb3VibGUg
YW5nbGUpIGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKGFuZ2xlKSkKQEAgLTE3Miw2ICsyOTUsMTQg
QEAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2tld1koZG91
YmxlIGFuZ2xlKSBjb25zdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFu
c2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkuc2tld1koYW5nbGUpKTsKIH0KIAordm9pZCBXZWJL
aXRDU1NNYXRyaXg6OnNlbGZTa2V3WShkb3VibGUgYW5nbGUpCit7CisgICAgaWYgKGlzbmFuKGFu
Z2xlKSkKKyAgICAgICAgYW5nbGUgPSAwOworCisgICAgbV9tYXRyaXguc2tld1koYW5nbGUpOwor
fQorCiBTdHJpbmcgV2ViS2l0Q1NTTWF0cml4Ojp0b1N0cmluZygpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUUgLSBOZWVkIHRvIGVuc3VyZSB2YWxpZCBDU1MgZmxvYXRpbmcgcG9pbnQgdmFsdWVzICho
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NzQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTTWF0cml4LmgKaW5kZXggMTA3YmY4Yi4uNDQ0YTljYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NNYXRyaXguaApAQCAtMzMsNiArMzMsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIEZsb2F0MzJBcnJheTsKK2NsYXNzIEZsb2F0NjRBcnJheTsKKwogY2xh
c3MgV2ViS2l0Q1NTTWF0cml4IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0Q1NTTWF0cml4PiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBjcmVhdGUo
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG0pCkBAIC05NSwxMiArOTgsMTYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0TTQ0KGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE00NChmKTsgfQogIAog
ICAgIHZvaWQgc2V0TWF0cml4VmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIAotICAgIC8vIFRoZSBmb2xsb3dpbmcgbWF0aCBmdW5jdGlvbiByZXR1cm4gYSBuZXcgbWF0
cml4IHdpdGggdGhlIAotICAgIC8vIHNwZWNpZmllZCBvcGVyYXRpb24gYXBwbGllZC4gVGhlIHRo
aXMgdmFsdWUgaXMgbm90IG1vZGlmaWVkLgorCisgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1l
bnRzIGZvciBhIHNpbmdsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICB2b2lkIHRv
QXJyYXkoRmxvYXQzMkFycmF5Kik7CisgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1lbnRzIGZv
ciBhIGRvdWJsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICB2b2lkIHRvQXJyYXko
RmxvYXQ2NEFycmF5Kik7CiAgICAgCiAgICAgLy8gTXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vj
b25kTWF0cml4LCBvbiB0aGUgcmlnaHQgKHJlc3VsdCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCiAg
ICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IG11bHRpcGx5KFdlYktpdENTU01hdHJpeCog
c2Vjb25kTWF0cml4KSBjb25zdDsKKyAgICAvLyBNdWx0aXBseSB0aGlzIG1hdHJpeCBieSBzZWNv
bmRNYXRyaXgsIG9uIHRoZSByaWdodCAodGhpcyA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCisgICAg
dm9pZCBzZWxmTXVsdGlwbHkoV2ViS2l0Q1NTTWF0cml4ICpzZWNvbmRNYXRyaXgpOwogICAgIAog
ICAgIC8vIFJldHVybiB0aGUgaW52ZXJzZSBvZiB0aGlzIG1hdHJpeC4gVGhyb3cgYW4gZXhjZXB0
aW9uIGlmIHRoZSBtYXRyaXggaXMgbm90IGludmVydGlibGUKICAgICBQYXNzUmVmUHRyPFdlYktp
dENTU01hdHJpeD4gaW52ZXJzZShFeGNlcHRpb25Db2RlJikgY29uc3Q7CkBAIC0xMTAsNiArMTE3
LDggQEAgcHVibGljOgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRo
ZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUg
dHJhbnNsYXRpb24gdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSB0cmFuc2xhdGlvbih4LHks
eikgKiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiB0cmFuc2xhdGUoZG91
YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikgY29uc3Q7CisgICAgLy8gVHJhbnNsYXRlIHRoaXMg
bWF0cml4IHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzCisgICAgdm9pZCBzZWxmVHJhbnNsYXRlKGRv
dWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopOwogICAgIAogICAgIC8vIFJldHVybnMgdGhpcyBt
YXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIFBhc3Npbmcgc2NhbGVY
IG9yIHNjYWxlWiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNzaW5nIHNjYWxlWSBv
ZiBOYU4gCkBAIC0xMTcsNiArMTI2LDggQEAgcHVibGljOgogICAgIC8vIE9wZXJhdGlvbiBpcyBw
ZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0
cml4IHdpdGgKICAgICAvLyB0aGUgc2NhbGUgdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSBz
Y2FsZSh4LHkseikgKiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBzY2Fs
ZShkb3VibGUgc2NhbGVYLCBkb3VibGUgc2NhbGVZLCBkb3VibGUgc2NhbGVaKSBjb25zdDsKKyAg
ICAvLyBTY2FsZSB0aGlzIG1hdHJpeCB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcworICAgIHZvaWQg
c2VsZlNjYWxlKGRvdWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVksIGRvdWJsZSBzY2FsZVopOwog
CiAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVz
LgogICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9
MCwgcm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgpAQCAtMTI0LDI0ICsxMzUsMzIgQEAgcHVibGlj
OgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJp
eCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUgcm90YXRpb24gdmFs
dWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSByb3RhdGlvbih4LHkseikgKiB0aGlzKQogICAgIFBh
c3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiByb3RhdGUoZG91YmxlIHJvdFgsIGRvdWJsZSByb3RZ
LCBkb3VibGUgcm90WikgY29uc3Q7CisgICAgLy8gUm90YXRlIHRoaXMgbWF0cml4IHVzaW5nIHRo
ZSBwYXNzZWQgdmFsdWVzLgorICAgIHZvaWQgc2VsZlJvdGF0ZShkb3VibGUgcm90WCwgZG91Ymxl
IHJvdFksIGRvdWJsZSByb3RaKTsKICAgICAKICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJv
dGF0ZWQgYWJvdXQgdGhlIHBhc3NlZCBheGlzIGJ5IHRoZSBwYXNzZWQgYW5nbGUuCiAgICAgLy8g
UGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIElmIHRoZSBheGlzIGlzICgwLDAs
MCkgdXNlIGEgdmFsdWUKICAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0
aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhl
IHJvdGF0aW9uIHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gcm90YXRpb24oeCx5LHosYW5n
bGUpICogdGhpcykKICAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gcm90YXRlQXhpc0Fu
Z2xlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkgY29uc3Q7Cisg
ICAgLy8gUm90YXRlIHRoaXMgbWF0cml4IHVzaW5nIHRoZSBwYXNzZWQgYXhpcyBhbmQgYW5nbGUK
KyAgICB2b2lkIHNlbGZSb3RhdGVBeGlzQW5nbGUoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUg
eiwgZG91YmxlIGFuZ2xlKTsKICAgICAKICAgICAvLyBSZXR1cm4gdGhpcyBtYXRyaXggc2tld2Vk
IGFsb25nIHRoZSBYIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gUGFzc2luZyBh
IE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCiAgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1l
ZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0
aAogICAgIC8vIHRoZSBza2V3IHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gc2tld1goYW5n
bGUpICogdGhpcykKICAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gc2tld1goZG91Ymxl
IGFuZ2xlKSBjb25zdDsKKyAgICAvLyBTa2V3IHRoaXMgbWF0cml4IGFsb25nIHRoZSBYIGF4aXMg
dXNpbmcgdGhlIHBhc3NlZCB2YWx1ZS4KKyAgICB2b2lkIHNlbGZTa2V3WChkb3VibGUgYW5nbGUp
OwogCiAgICAgLy8gUmV0dXJuIHRoaXMgbWF0cml4IHNrZXdlZCBhbG9uZyB0aGUgWSBheGlzIGJ5
IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1
ZSBvZiAwLgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlz
IG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUgc2tldyB2
YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3VsdCA9IHNrZXdZKGFuZ2xlKSAqIHRoaXMpCiAgICAgUGFz
c1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IHNrZXdZKGRvdWJsZSBhbmdsZSkgY29uc3Q7CisgICAg
Ly8gU2tldyB0aGlzIG1hdHJpeCBhbG9uZyB0aGUgWSBheGlzIHVzaW5nIHRoZSBwYXNzZWQgdmFs
dWUuCisgICAgdm9pZCBzZWxmU2tld1koZG91YmxlIGFuZ2xlKTsKIAogICAgIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX21hdHJpeDsgfQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbAppbmRleCBkMzJjZDk3Li5m
YmQ4M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbApAQCAtNTksOSAr
NTksMTUgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgbTQ0OwogCiAg
ICAgICAgIHZvaWQgc2V0TWF0cml4VmFsdWUoaW4gRE9NU3RyaW5nIHN0cmluZykgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICAvLyBDb3B5IHRoZSBtYXRyaXggZWxlbWVudHMgZm9yIGEg
c2luZ2xlIHByZWNpc2lvbiBmbG9hdCBwb2ludCBhcnJheQorICAgICAgICB2b2lkIHRvQXJyYXko
aW4gRmxvYXQzMkFycmF5IGFycmF5KTsKKyAgICAgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1l
bnRzIGZvciBhIGRvdWJsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICAgICAgdm9p
ZCB0b0FycmF5KGluIEZsb2F0NjRBcnJheSBhcnJheSk7CiAgICAgICAgIAotICAgICAgICAvLyBN
dWx0aXBseSB0aGlzIG1hdHJpeCBieSBzZWNvbmRNYXRyaXgsIG9uIHRoZSByaWdodCAocmVzdWx0
ID0gdGhpcyAqIHNlY29uZE1hdHJpeCkKKyAgICAgICAgLy8gTXVsdGlwbHkgdGhpcyBtYXRyaXgg
Ynkgc2Vjb25kTWF0cml4LCBvbiB0aGUgcmlnaHQgYW5kIHJldHVybiB0aGUgcmVzdWx0KHJlc3Vs
dCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCiAgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01h
dHJpeCBtdWx0aXBseShpbiBXZWJLaXRDU1NNYXRyaXggc2Vjb25kTWF0cml4KTsKKyAgICAgICAg
Ly8gTXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vjb25kTWF0cml4LCBvbiB0aGUgcmlnaHQgKHRo
aXMgPSB0aGlzICogc2Vjb25kTWF0cml4KQorICAgICAgICB2b2lkIHNlbGZNdWx0aXBseShpbiBX
ZWJLaXRDU1NNYXRyaXggc2Vjb25kTWF0cml4KTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVy
biB0aGUgaW52ZXJzZSBvZiB0aGlzIG1hdHJpeC4gVGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBt
YXRyaXggaXMgbm90IGludmVydGlibGUKICAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0
cml4IGludmVyc2UoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CkBAIC02OSwyOSArNzUsNDEgQEAg
bW9kdWxlIGNzcyB7CiAgICAgICAgIC8vIFJldHVybiB0aGlzIG1hdHJpeCB0cmFuc2xhdGVkIGJ5
IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEg
dmFsdWUgb2YgMC4gVGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0
aW9ucyAgICAKICAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHRyYW5zbGF0ZShp
biBkb3VibGUgeCwgaW4gZG91YmxlIHksIGluIGRvdWJsZSB6KTsKKyAgICAgICAgLy8gVHJhbnNs
YXRlIHRoaXMgbWF0cml4IHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzCisgICAgICAgIHZvaWQgc2Vs
ZlRyYW5zbGF0ZShpbiBkb3VibGUgeCwgaW4gZG91YmxlIHksIGluIGRvdWJsZSB6KTsKICAgICAg
ICAgCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQg
dmFsdWVzLgogICAgICAgICAvLyBQYXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFOIHVzZXMg
YSB2YWx1ZSBvZiAxLCBidXQgcGFzc2luZyBzY2FsZVkgb2YgTmFOIAogICAgICAgICAvLyBtYWtl
cyBpdCB0aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQg
Zm9yIDJEIG9wZXJhdGlvbnMKICAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNj
YWxlKGluIGRvdWJsZSBzY2FsZVgsIGluIGRvdWJsZSBzY2FsZVksIGluIGRvdWJsZSBzY2FsZVop
OworICAgICAgICAvLyBTY2FsZSB0aGlzIG1hdHJpeCB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcwor
ICAgICAgICB2b2lkIHNlbGZTY2FsZShpbiBkb3VibGUgc2NhbGVYLCBpbiBkb3VibGUgc2NhbGVZ
LCBpbiBkb3VibGUgc2NhbGVaKTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBt
YXRyaXggcm90YXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gSWYgcm90WSBh
bmQgcm90WiBhcmUgTmFOLCByb3RhdGUgYWJvdXQgWiAocm90WD0wLCByb3RhdGVZPTAsIHJvdGF0
ZVo9cm90WCkuCiAgICAgICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlvbiB2YWx1ZSBvZiAw
IGZvciBhbnkgcGFzc2VkIE5hTi4gICAgCiAgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01h
dHJpeCByb3RhdGUoaW4gZG91YmxlIHJvdFgsIGluIGRvdWJsZSByb3RZLCBpbiBkb3VibGUgcm90
Wik7CisgICAgICAgIC8vIFJvdGF0ZSB0aGlzIG1hdHJpeCB1c2luZyB0aGUgcGFzc2VkIHZhbHVl
cy4KKyAgICAgICAgdm9pZCBzZWxmUm90YXRlKGluIGRvdWJsZSByb3RYLCBpbiBkb3VibGUgcm90
WSwgaW4gZG91YmxlIHJvdFopOwogICAgICAgICAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1h
dHJpeCByb3RhdGVkIGFib3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2VkIGFuZ2xlLgog
ICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4gSWYgdGhlIGF4
aXMgaXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQogICAgICAgICAvLyBvZiAoMCwwLDEpLgogICAgICAg
ICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRlQXhpc0FuZ2xlKGluIGRvdWJsZSB4
LCBpbiBkb3VibGUgeSwgaW4gZG91YmxlIHosIGluIGRvdWJsZSBhbmdsZSk7CisgICAgICAgIC8v
IFJvdGF0ZSB0aGlzIG1hdHJpeCB1c2luZyB0aGUgcGFzc2VkIGF4aXMgYW5kIGFuZ2xlCisgICAg
ICAgIHZvaWQgc2VsZlJvdGF0ZUF4aXNBbmdsZShpbiBkb3VibGUgeCwgaW4gZG91YmxlIHksIGlu
IGRvdWJsZSB6LCBpbiBkb3VibGUgYW5nbGUpOwogCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBt
YXRyaXggc2tld2VkIGFsb25nIHRoZSBYIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAg
ICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgogICAgICAgICBbSW1t
dXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggc2tld1goaW4gZG91YmxlIGFuZ2xlKTsKKyAgICAgICAg
Ly8gU2tldyB0aGlzIG1hdHJpeCBhbG9uZyB0aGUgWCBheGlzIHVzaW5nIHRoZSBwYXNzZWQgdmFs
dWUuCisgICAgICAgIHZvaWQgc2VsZlNrZXdYKGluIGRvdWJsZSBhbmdsZSk7CiAKICAgICAgICAg
Ly8gUmV0dXJucyB0aGlzIG1hdHJpeCBza2V3ZWQgYWxvbmcgdGhlIFkgYXhpcyBieSB0aGUgcGFz
c2VkIHZhbHVlcy4KICAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9m
IDAuCiAgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBza2V3WShpbiBkb3VibGUg
YW5nbGUpOworICAgICAgICAvLyBTa2V3IHRoaXMgbWF0cml4IGFsb25nIHRoZSBZIGF4aXMgdXNp
bmcgdGhlIHBhc3NlZCB2YWx1ZS4KKyAgICAgICAgdm9pZCBzZWxmU2tld1koaW4gZG91YmxlIGFu
Z2xlKTsKIAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogICAgIH07
Ci0tIAoxLjcuNC4xCgo=
</data>
<flag name="review"
          id="92760"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111526</attachid>
            <date>2011-10-18 16:36:39 -0700</date>
            <delta_ts>2011-10-19 08:57:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Make-WebKitCSSMatrix-more-efficient-for-use-in-WebGL.patch</filename>
            <type>text/plain</type>
            <size>90381</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBjNDA4ZGFkYzEzODZhMmYyYmViYmQ2ZmI5ZTM4YzliNTc4ZjQxNDQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMTggT2N0IDIwMTEgMTM6MjE6MDkgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdM
CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxMiArCiAuLi4vd2Via2l0bWF0cml4LTNkLWludGVyZmFjZS1leHBlY3RlZC50eHQgICAg
ICAgICB8ICA0NTkgKysrKysrKysrKysrKysrKwogLi4uL3RyYW5zZm9ybXMvd2Via2l0bWF0cml4
LTNkLWludGVyZmFjZS54aHRtbCAgICAgfCAgNTYxICsrKysrKysrKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDk3
ICsrKysKIFNvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSAgICAgICAgICAgICAgICAg
IHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgICAg
ICAgICB8ICAgIDEgKwogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSAgICAgICAg
ICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDkgKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qICAgICAgIHwgIDExNyArKysrCiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICAgMTggKwogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCAgfCAgICAxICsKIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCAgIHwgICAgNiArCiAuLi4vV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE1hdHJpeEN1c3RvbS5jcHAgICB8ICAgNDkgKysKIFNv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRNYXRyaXguY3BwICAgICAgICAgICAgICAgIHwgIDMyNyAr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRNYXRyaXguaCAgICAgICAgICAg
ICAgICAgIHwgIDIxNiArKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdE1hdHJpeC5p
ZGwgICAgICAgICAgICAgICAgfCAgMTUyICsrKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsICAgICAgICAgICAgICAgICAgfCAgICAyICsKIDIwIGZpbGVzIGNoYW5nZWQsIDIw
MzkgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy90cmFuc2Zvcm1zL3dlYmtpdG1hdHJpeC0zZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy93ZWJraXRtYXRyaXgt
M2QtaW50ZXJmYWNlLnhodG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJLaXRNYXRyaXhDdXN0b20uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdE1hdHJpeC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0TWF0cml4LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0TWF0cml4LmlkbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMTFkMzNlLi42MTIyYmQ3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTggIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9s
aXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJLaXRDU1NNYXRyaXggbW9y
ZSBlZmZpY2llbnQgZm9yIHVzZSBpbiBXZWJHTAorCisgICAgICAgIE1ha2UgV2ViS2l0Q1NTTWF0
cml4IG1vcmUgZWZmaWNpZW50IGZvciB1c2UgaW4gV2ViR0wKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNjMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0cmFuc2Zvcm1zL3dlYmtpdG1hdHJpeC0zZC1p
bnRlcmZhY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2Zvcm1zL3dlYmtp
dG1hdHJpeC0zZC1pbnRlcmZhY2UueGh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTEyICBQYXZlbCBQ
b2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGZpeCBoYW5kbGluZyBvZiBzb3VyY2UgbWFwcGluZyBlbnRyaWVzIHdpdGggbm8gbWFwcGlu
Zy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvd2Via2l0bWF0cml4LTNkLWlu
dGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL3dlYmtpdG1hdHJp
eC0zZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmI3NWVlNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1z
L3dlYmtpdG1hdHJpeC0zZC1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDU5IEBA
CitUaGlzIHRlc3QgZXhlcmNpc2VzIHRoZSBXZWJLaXRNYXRyaXggM0QgaW50ZXJmYWNlCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitXZWJLaXRNYXRyaXggY29uc3RydWN0b3JzCitQ
QVNTIGRlZmF1bHQgY29uc3RydWN0b3IKK1BBU1Mgb2JqZWN0IGNvbnN0cnVjdG9yCitQQVNTIHN0
cmluZyBjb25zdHJ1Y3RvcgorCitUZXN0IHRvU3RyaW5nCitQQVNTIGFbMF0gaXMgIm1hdHJpeDNk
IgorUEFTUyBwYXJzZUZsb2F0KGEyWzBdKSBpcyAxCitQQVNTIHBhcnNlRmxvYXQoYTJbMV0pIGlz
IDAKK1BBU1MgcGFyc2VGbG9hdChhMlsyXSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KGEyWzNdKSBp
cyAxCitQQVNTIHBhcnNlRmxvYXQoYTJbNF0pIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChhMls1XSkg
aXMgMQorUEFTUyBwYXJzZUZsb2F0KGEyWzZdKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQoYTJbN10p
IGlzIDAKK1BBU1MgcGFyc2VGbG9hdChhMls4XSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KGEyWzld
KSBpcyAwCitQQVNTIHBhcnNlRmxvYXQoYTJbMTBdKSBpcyAxCitQQVNTIHBhcnNlRmxvYXQoYTJb
MTFdKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQoYTJbMTJdKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQo
YTJbMTNdKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQoYTJbMTRdKSBpcyAwCitQQVNTIHBhcnNlRmxv
YXQoYTNbMF0pIGlzIDEKK1BBU1MgYTNbMV0gaXMgIiIKKworVGVzdCBiYWQgaW5wdXQgdG8gc3Ry
aW5nIGNvbnN0cnVjdG9yCitQQVNTIG5ldyBXZWJLaXRNYXRyaXgoImJhbmFuYSIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KKworVGVzdCBhdHRy
aWJ1dGVzIG9uIGRlZmF1bHQgbWF0cml4CitQQVNTIG0ubTExIGlzIDEKK1BBU1MgbS5tMTIgaXMg
MAorUEFTUyBtLm0xMyBpcyAwCitQQVNTIG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFT
UyBtLm0yMiBpcyAxCitQQVNTIG0ubTIzIGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBtLm0z
MSBpcyAwCitQQVNTIG0ubTMyIGlzIDAKK1BBU1MgbS5tMzMgaXMgMQorUEFTUyBtLm0zNCBpcyAw
CitQQVNTIG0ubTQxIGlzIDAKK1BBU1MgbS5tNDIgaXMgMAorUEFTUyBtLm00MyBpcyAwCitQQVNT
IG0ubTQ0IGlzIDEKKworVGVzdCBhdHRyaWJ1dGVzIG9uIGN1c3RvbSBtYXRyaXgKK1BBU1MgbS5t
MTEgaXMgMTEKK1BBU1MgbS5tMTIgaXMgMTIKK1BBU1MgbS5tMTMgaXMgMTMKK1BBU1MgbS5tMTQg
aXMgMTQKK1BBU1MgbS5tMjEgaXMgMjEKK1BBU1MgbS5tMjIgaXMgMjIKK1BBU1MgbS5tMjMgaXMg
MjMKK1BBU1MgbS5tMjQgaXMgMjQKK1BBU1MgbS5tMzEgaXMgMzEKK1BBU1MgbS5tMzIgaXMgMzIK
K1BBU1MgbS5tMzMgaXMgMzMKK1BBU1MgbS5tMzQgaXMgMzQKK1BBU1MgbS5tNDEgaXMgNDEKK1BB
U1MgbS5tNDIgaXMgNDIKK1BBU1MgbS5tNDMgaXMgNDMKK1BBU1MgbS5tNDQgaXMgNDQKKworVGVz
dCBzZXRNYXRyaXhWYWx1ZSAtIHNldCB0byBtYXRyaXgoKQorUEFTUyBtLm0xMSBpcyAxMQorUEFT
UyBtLm0xMiBpcyAxMgorUEFTUyBtLm0xMyBpcyAxMworUEFTUyBtLm0xNCBpcyAxNAorUEFTUyBt
Lm0yMSBpcyAyMQorUEFTUyBtLm0yMiBpcyAyMgorUEFTUyBtLm0yMyBpcyAyMworUEFTUyBtLm0y
NCBpcyAyNAorUEFTUyBtLm0zMSBpcyAzMQorUEFTUyBtLm0zMiBpcyAzMgorUEFTUyBtLm0zMyBp
cyAzMworUEFTUyBtLm0zNCBpcyAzNAorUEFTUyBtLm00MSBpcyA0MQorUEFTUyBtLm00MiBpcyA0
MgorUEFTUyBtLm00MyBpcyA0MworUEFTUyBtLm00NCBpcyA0NAorCitUZXN0IHNldE1hdHJpeFZh
bHVlIC0gc2V0IHRvIHRyYW5zbGF0ZSgxMHB4LCAyMHB4LCAzMHB4KSBzY2FsZSgyLCAzLCA0KQor
UEFTUyBtLm0xMSBpcyAyCitQQVNTIG0ubTEyIGlzIDAKK1BBU1MgbS5tMTMgaXMgMAorUEFTUyBt
Lm0xNCBpcyAwCitQQVNTIG0ubTIxIGlzIDAKK1BBU1MgbS5tMjIgaXMgMworUEFTUyBtLm0yMyBp
cyAwCitQQVNTIG0ubTI0IGlzIDAKK1BBU1MgbS5tMzEgaXMgMAorUEFTUyBtLm0zMiBpcyAwCitQ
QVNTIG0ubTMzIGlzIDQKK1BBU1MgbS5tMzQgaXMgMAorUEFTUyBtLm00MSBpcyAxMAorUEFTUyBt
Lm00MiBpcyAyMAorUEFTUyBtLm00MyBpcyAzMAorUEFTUyBtLm00NCBpcyAxCisKK1Rlc3QgdGhy
b3dpbmcgZXhjZXB0aW9uIGZyb20gc2V0TWF0cml4VmFsdWUKK1BBU1MgbS5zZXRNYXRyaXhWYWx1
ZSgiYmFuYW5hIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0
aW9uIDEyLgorUEFTUyBtLnNldE1hdHJpeFZhbHVlKCJ0cmFuc2xhdGUzZCgxMGVtLCAyMCUsIDQw
KSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4K
K1BBU1MgbS5zZXRNYXRyaXhWYWx1ZSgidHJhbnNsYXRlM2QoMTBweCwgMjBweCwgMzBweCkgc2Nh
bGUzZCgpIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9u
IDEyLgorCitUZXN0IG11bHRpcGx5CitQQVNTIHBhcnNlRmxvYXQobS5tMTEpIGlzIDUzOAorUEFT
UyBwYXJzZUZsb2F0KG0ubTEyKSBpcyA2MTIKK1BBU1MgcGFyc2VGbG9hdChtLm0xMykgaXMgNjg2
CitQQVNTIHBhcnNlRmxvYXQobS5tMTQpIGlzIDc2MAorUEFTUyBwYXJzZUZsb2F0KG0ubTIxKSBp
cyA2NTAKK1BBU1MgcGFyc2VGbG9hdChtLm0yMikgaXMgNzQwCitQQVNTIHBhcnNlRmxvYXQobS5t
MjMpIGlzIDgzMAorUEFTUyBwYXJzZUZsb2F0KG0ubTI0KSBpcyA5MjAKK1BBU1MgcGFyc2VGbG9h
dChtLm0zMSkgaXMgNzYyCitQQVNTIHBhcnNlRmxvYXQobS5tMzIpIGlzIDg2OAorUEFTUyBwYXJz
ZUZsb2F0KG0ubTMzKSBpcyA5NzQKK1BBU1MgcGFyc2VGbG9hdChtLm0zNCkgaXMgMTA4MAorUEFT
UyBwYXJzZUZsb2F0KG0ubTQxKSBpcyA4NzQKK1BBU1MgcGFyc2VGbG9hdChtLm00MikgaXMgOTk2
CitQQVNTIHBhcnNlRmxvYXQobS5tNDMpIGlzIDExMTgKK1BBU1MgcGFyc2VGbG9hdChtLm00NCkg
aXMgMTI0MAorCitUZXN0IG11bHRpcGx5IGluIGFuIGFmZmluZSBtYXRyaXgKK1BBU1MgcGFyc2VG
bG9hdChtLm0xMSkgaXMgMzEKK1BBU1MgcGFyc2VGbG9hdChtLm0xMikgaXMgNDYKK1BBU1MgcGFy
c2VGbG9hdChtLm0xMykgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTE0KSBpcyAwCitQQVNTIHBh
cnNlRmxvYXQobS5tMjEpIGlzIDM5CitQQVNTIHBhcnNlRmxvYXQobS5tMjIpIGlzIDU4CitQQVNT
IHBhcnNlRmxvYXQobS5tMjMpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm0yNCkgaXMgMAorUEFT
UyBwYXJzZUZsb2F0KG0ubTMxKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tMzIpIGlzIDAKK1BB
U1MgcGFyc2VGbG9hdChtLm0zMykgaXMgMQorUEFTUyBwYXJzZUZsb2F0KG0ubTM0KSBpcyAwCitQ
QVNTIHBhcnNlRmxvYXQobS5tNDEpIGlzIDUyCitQQVNTIHBhcnNlRmxvYXQobS5tNDIpIGlzIDc2
CitQQVNTIHBhcnNlRmxvYXQobS5tNDMpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00NCkgaXMg
MQorCitUZXN0IHRoYXQgbXVsdGlwbHkgd29ya3MgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbgorUEFT
UyB0eC5tMTEgaXMgMgorUEFTUyB0eC5tMTIgaXMgMAorUEFTUyB0eC5tMTMgaXMgMAorUEFTUyB0
eC5tMTQgaXMgMAorUEFTUyB0eC5tMjEgaXMgMAorUEFTUyB0eC5tMjIgaXMgMQorUEFTUyB0eC5t
MjMgaXMgMAorUEFTUyB0eC5tMjQgaXMgMAorUEFTUyB0eC5tMzEgaXMgMAorUEFTUyB0eC5tMzIg
aXMgMAorUEFTUyB0eC5tMzMgaXMgMQorUEFTUyB0eC5tMzQgaXMgMAorUEFTUyB0eC5tNDEgaXMg
MTAwCitQQVNTIHR4Lm00MiBpcyAwCitQQVNTIHR4Lm00MyBpcyAwCitQQVNTIHR4Lm00NCBpcyAx
CisKK1Rlc3QgbXVsdGlwbGllZEJ5CitQQVNTIE1hdGguZmxvb3IobTMubTExKSBpcyA1MzgKK1BB
U1MgTWF0aC5mbG9vcihtMy5tMTIpIGlzIDYxMgorUEFTUyBNYXRoLmZsb29yKG0zLm0xMykgaXMg
Njg2CitQQVNTIE1hdGguZmxvb3IobTMubTE0KSBpcyA3NjAKK1BBU1MgTWF0aC5mbG9vcihtMy5t
MjEpIGlzIDY1MAorUEFTUyBNYXRoLmZsb29yKG0zLm0yMikgaXMgNzQwCitQQVNTIE1hdGguZmxv
b3IobTMubTIzKSBpcyA4MzAKK1BBU1MgTWF0aC5mbG9vcihtMy5tMjQpIGlzIDkyMAorUEFTUyBN
YXRoLmZsb29yKG0zLm0zMSkgaXMgNzYyCitQQVNTIE1hdGguZmxvb3IobTMubTMyKSBpcyA4NjgK
K1BBU1MgTWF0aC5mbG9vcihtMy5tMzMpIGlzIDk3NAorUEFTUyBNYXRoLmZsb29yKG0zLm0zNCkg
aXMgMTA4MAorUEFTUyBNYXRoLmZsb29yKG0zLm00MSkgaXMgODc0CitQQVNTIE1hdGguZmxvb3Io
bTMubTQyKSBpcyA5OTYKK1BBU1MgTWF0aC5mbG9vcihtMy5tNDMpIGlzIDExMTgKK1BBU1MgTWF0
aC5mbG9vcihtMy5tNDQpIGlzIDEyNDAKKworVGVzdCBpbW11dGFiaWxpdHkgb2YgbXVsdGlwbGll
ZEJ5CitQQVNTIHBhcnNlRmxvYXQobS5tMTEpIGlzIDEKK1BBU1MgcGFyc2VGbG9hdChtLm0xMikg
aXMgMgorUEFTUyBwYXJzZUZsb2F0KG0ubTEzKSBpcyAzCitQQVNTIHBhcnNlRmxvYXQobS5tMTQp
IGlzIDQKK1BBU1MgcGFyc2VGbG9hdChtLm0yMSkgaXMgNQorUEFTUyBwYXJzZUZsb2F0KG0ubTIy
KSBpcyA2CitQQVNTIHBhcnNlRmxvYXQobS5tMjMpIGlzIDcKK1BBU1MgcGFyc2VGbG9hdChtLm0y
NCkgaXMgOAorUEFTUyBwYXJzZUZsb2F0KG0ubTMxKSBpcyA5CitQQVNTIHBhcnNlRmxvYXQobS5t
MzIpIGlzIDEwCitQQVNTIHBhcnNlRmxvYXQobS5tMzMpIGlzIDExCitQQVNTIHBhcnNlRmxvYXQo
bS5tMzQpIGlzIDEyCitQQVNTIHBhcnNlRmxvYXQobS5tNDEpIGlzIDEzCitQQVNTIHBhcnNlRmxv
YXQobS5tNDIpIGlzIDE0CitQQVNTIHBhcnNlRmxvYXQobS5tNDMpIGlzIDE1CitQQVNTIHBhcnNl
RmxvYXQobS5tNDQpIGlzIDE2CisKK1Rlc3QgaW52ZXJzZQorUEFTUyBwYXJzZUZsb2F0KG0yLm0x
MSkgaXMgMC41CitQQVNTIHBhcnNlRmxvYXQobTIubTEyKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQo
bTIubTEzKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobTIubTE0KSBpcyAwCitQQVNTIHBhcnNlRmxv
YXQobTIubTIxKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobTIubTIyKSBpcyAwLjUKK1BBU1MgcGFy
c2VGbG9hdChtMi5tMjMpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtMi5tMjQpIGlzIDAKK1BBU1Mg
cGFyc2VGbG9hdChtMi5tMzEpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtMi5tMzIpIGlzIDAKK1BB
U1MgcGFyc2VGbG9hdChtMi5tMzMpIGlzIDAuNQorUEFTUyBwYXJzZUZsb2F0KG0yLm0zNCkgaXMg
MAorUEFTUyBwYXJzZUZsb2F0KG0yLm00MSkgaXMgLTUKK1BBU1MgcGFyc2VGbG9hdChtMi5tNDIp
IGlzIC0xMAorUEFTUyBwYXJzZUZsb2F0KG0yLm00MykgaXMgLTE1CitQQVNTIHBhcnNlRmxvYXQo
bTIubTQ0KSBpcyAxCisKK1Rlc3QgaW1tdXRhYmlsaXR5IG9mIGludmVyc2UKK1BBU1MgcGFyc2VG
bG9hdChtLm0xMSkgaXMgMgorUEFTUyBwYXJzZUZsb2F0KG0ubTEyKSBpcyAwCitQQVNTIHBhcnNl
RmxvYXQobS5tMTMpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm0xNCkgaXMgMAorUEFTUyBwYXJz
ZUZsb2F0KG0ubTIxKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tMjIpIGlzIDIKK1BBU1MgcGFy
c2VGbG9hdChtLm0yMykgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTI0KSBpcyAwCitQQVNTIHBh
cnNlRmxvYXQobS5tMzEpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm0zMikgaXMgMAorUEFTUyBw
YXJzZUZsb2F0KG0ubTMzKSBpcyAyCitQQVNTIHBhcnNlRmxvYXQobS5tMzQpIGlzIDAKK1BBU1Mg
cGFyc2VGbG9hdChtLm00MSkgaXMgMTAKK1BBU1MgcGFyc2VGbG9hdChtLm00MikgaXMgMjAKK1BB
U1MgcGFyc2VGbG9hdChtLm00MykgaXMgMzAKK1BBU1MgcGFyc2VGbG9hdChtLm00NCkgaXMgMQor
CitUZXN0IHRocm93aW5nIGV4Y2VwdGlvbiBmcm9tIGludmVyc2UKK1BBU1MgbS5pbnZlcnNlKCkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5
LgorCitUZXN0IHRyYW5zbGF0ZQorUEFTUyBtLm0xMSBpcyAxCitQQVNTIG0ubTEyIGlzIDAKK1BB
U1MgbS5tMTMgaXMgMAorUEFTUyBtLm0xNCBpcyAwCitQQVNTIG0ubTIxIGlzIDAKK1BBU1MgbS5t
MjIgaXMgMQorUEFTUyBtLm0yMyBpcyAwCitQQVNTIG0ubTI0IGlzIDAKK1BBU1MgbS5tMzEgaXMg
MAorUEFTUyBtLm0zMiBpcyAwCitQQVNTIG0ubTMzIGlzIDEKK1BBU1MgbS5tMzQgaXMgMAorUEFT
UyBtLm00MSBpcyAxMAorUEFTUyBtLm00MiBpcyAyMAorUEFTUyBtLm00MyBpcyAzMAorUEFTUyBt
Lm00NCBpcyAxCisKK1Rlc3QgdHJhbnNsYXRlZEJ5CitQQVNTIG0yLm0xMSBpcyAxCitQQVNTIG0y
Lm0xMiBpcyAwCitQQVNTIG0yLm0xMyBpcyAwCitQQVNTIG0yLm0xNCBpcyAwCitQQVNTIG0yLm0y
MSBpcyAwCitQQVNTIG0yLm0yMiBpcyAxCitQQVNTIG0yLm0yMyBpcyAwCitQQVNTIG0yLm0yNCBp
cyAwCitQQVNTIG0yLm0zMSBpcyAwCitQQVNTIG0yLm0zMiBpcyAwCitQQVNTIG0yLm0zMyBpcyAx
CitQQVNTIG0yLm0zNCBpcyAwCitQQVNTIG0yLm00MSBpcyAxMAorUEFTUyBtMi5tNDIgaXMgMjAK
K1BBU1MgbTIubTQzIGlzIDMwCitQQVNTIG0yLm00NCBpcyAxCisKK1Rlc3QgaW1tdXRhYmlsaXR5
IG9mIHRyYW5zbGF0ZWRCeQorUEFTUyBtLm0xMSBpcyAxCitQQVNTIG0ubTEyIGlzIDAKK1BBU1Mg
bS5tMTMgaXMgMAorUEFTUyBtLm0xNCBpcyAwCitQQVNTIG0ubTIxIGlzIDAKK1BBU1MgbS5tMjIg
aXMgMQorUEFTUyBtLm0yMyBpcyAwCitQQVNTIG0ubTI0IGlzIDAKK1BBU1MgbS5tMzEgaXMgMAor
UEFTUyBtLm0zMiBpcyAwCitQQVNTIG0ubTMzIGlzIDEKK1BBU1MgbS5tMzQgaXMgMAorUEFTUyBt
Lm00MSBpcyAwCitQQVNTIG0ubTQyIGlzIDAKK1BBU1MgbS5tNDMgaXMgMAorUEFTUyBtLm00NCBp
cyAxCisKK1Rlc3Qgc2NhbGUKK1BBU1MgbS5tMTEgaXMgMTAKK1BBU1MgbS5tMTIgaXMgMAorUEFT
UyBtLm0xMyBpcyAwCitQQVNTIG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0y
MiBpcyAyMAorUEFTUyBtLm0yMyBpcyAwCitQQVNTIG0ubTI0IGlzIDAKK1BBU1MgbS5tMzEgaXMg
MAorUEFTUyBtLm0zMiBpcyAwCitQQVNTIG0ubTMzIGlzIDMwCitQQVNTIG0ubTM0IGlzIDAKK1BB
U1MgbS5tNDEgaXMgMAorUEFTUyBtLm00MiBpcyAwCitQQVNTIG0ubTQzIGlzIDAKK1BBU1MgbS5t
NDQgaXMgMQorCitUZXN0IHNjYWxlZEJ5CitQQVNTIG0yLm0xMSBpcyAxMAorUEFTUyBtMi5tMTIg
aXMgMAorUEFTUyBtMi5tMTMgaXMgMAorUEFTUyBtMi5tMTQgaXMgMAorUEFTUyBtMi5tMjEgaXMg
MAorUEFTUyBtMi5tMjIgaXMgMjAKK1BBU1MgbTIubTIzIGlzIDAKK1BBU1MgbTIubTI0IGlzIDAK
K1BBU1MgbTIubTMxIGlzIDAKK1BBU1MgbTIubTMyIGlzIDAKK1BBU1MgbTIubTMzIGlzIDMwCitQ
QVNTIG0yLm0zNCBpcyAwCitQQVNTIG0yLm00MSBpcyAwCitQQVNTIG0yLm00MiBpcyAwCitQQVNT
IG0yLm00MyBpcyAwCitQQVNTIG0yLm00NCBpcyAxCisKK1Rlc3QgaW1tdXRhYmlsaXR5IG9mIHNj
YWxlZEJ5CitQQVNTIG0ubTExIGlzIDEKK1BBU1MgbS5tMTIgaXMgMAorUEFTUyBtLm0xMyBpcyAw
CitQQVNTIG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0yMiBpcyAxCitQQVNT
IG0ubTIzIGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBtLm0zMSBpcyAwCitQQVNTIG0ubTMy
IGlzIDAKK1BBU1MgbS5tMzMgaXMgMQorUEFTUyBtLm0zNCBpcyAwCitQQVNTIG0ubTQxIGlzIDAK
K1BBU1MgbS5tNDIgaXMgMAorUEFTUyBtLm00MyBpcyAwCitQQVNTIG0ubTQ0IGlzIDEKKworVGVz
dCByb3RhdGUKK1BBU1MgcGFyc2VGbG9hdChtLm0xMS50b1ByZWNpc2lvbig2KSkgaXMgMC44MTM3
OTgKK1BBU1MgcGFyc2VGbG9hdChtLm0xMi50b1ByZWNpc2lvbig2KSkgaXMgMC40Njk4NDYKK1BB
U1MgcGFyc2VGbG9hdChtLm0xMy50b1ByZWNpc2lvbig2KSkgaXMgLTAuMzQyMDIKK1BBU1MgcGFy
c2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTIx
LnRvUHJlY2lzaW9uKDYpKSBpcyAtMC40NDA5NworUEFTUyBwYXJzZUZsb2F0KG0ubTIyLnRvUHJl
Y2lzaW9uKDYpKSBpcyAwLjg4MjU2NAorUEFTUyBwYXJzZUZsb2F0KG0ubTIzLnRvUHJlY2lzaW9u
KDYpKSBpcyAwLjE2MzE3NgorUEFTUyBwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9uKDYpKSBp
cyAwCitQQVNTIHBhcnNlRmxvYXQobS5tMzEudG9QcmVjaXNpb24oNikpIGlzIDAuMzc4NTIyCitQ
QVNTIHBhcnNlRmxvYXQobS5tMzIudG9QcmVjaXNpb24oNikpIGlzIDAuMDE4MDI4MworUEFTUyBw
YXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjkyNTQxNworUEFTUyBwYXJzZUZs
b2F0KG0ubTM0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDEudG9Q
cmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSkg
aXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQzLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBh
cnNlRmxvYXQobS5tNDQudG9QcmVjaXNpb24oNikpIGlzIDEKKworVGVzdCByb3RhdGVkQnkKK1BB
U1MgcGFyc2VGbG9hdChtMi5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODEzNzk4CitQQVNTIHBh
cnNlRmxvYXQobTIubTEyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjQ2OTg0NgorUEFTUyBwYXJzZUZs
b2F0KG0yLm0xMy50b1ByZWNpc2lvbig2KSkgaXMgLTAuMzQyMDIKK1BBU1MgcGFyc2VGbG9hdCht
Mi5tMTQudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtMi5tMjEudG9QcmVj
aXNpb24oNikpIGlzIC0wLjQ0MDk3CitQQVNTIHBhcnNlRmxvYXQobTIubTIyLnRvUHJlY2lzaW9u
KDYpKSBpcyAwLjg4MjU2NAorUEFTUyBwYXJzZUZsb2F0KG0yLm0yMy50b1ByZWNpc2lvbig2KSkg
aXMgMC4xNjMxNzYKK1BBU1MgcGFyc2VGbG9hdChtMi5tMjQudG9QcmVjaXNpb24oNikpIGlzIDAK
K1BBU1MgcGFyc2VGbG9hdChtMi5tMzEudG9QcmVjaXNpb24oNikpIGlzIDAuMzc4NTIyCitQQVNT
IHBhcnNlRmxvYXQobTIubTMyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjAxODAyODMKK1BBU1MgcGFy
c2VGbG9hdChtMi5tMzMudG9QcmVjaXNpb24oNikpIGlzIDAuOTI1NDE3CitQQVNTIHBhcnNlRmxv
YXQobTIubTM0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobTIubTQxLnRv
UHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobTIubTQyLnRvUHJlY2lzaW9uKDYp
KSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobTIubTQzLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNT
IHBhcnNlRmxvYXQobTIubTQ0LnRvUHJlY2lzaW9uKDYpKSBpcyAxCisKK1Rlc3QgaW1tdXRhYmls
aXR5IG9mIHJvdGF0ZWRCeQorUEFTUyBtLm0xMSBpcyAxCitQQVNTIG0ubTEyIGlzIDAKK1BBU1Mg
bS5tMTMgaXMgMAorUEFTUyBtLm0xNCBpcyAwCitQQVNTIG0ubTIxIGlzIDAKK1BBU1MgbS5tMjIg
aXMgMQorUEFTUyBtLm0yMyBpcyAwCitQQVNTIG0ubTI0IGlzIDAKK1BBU1MgbS5tMzEgaXMgMAor
UEFTUyBtLm0zMiBpcyAwCitQQVNTIG0ubTMzIGlzIDEKK1BBU1MgbS5tMzQgaXMgMAorUEFTUyBt
Lm00MSBpcyAwCitQQVNTIG0ubTQyIGlzIDAKK1BBU1MgbS5tNDMgaXMgMAorUEFTUyBtLm00NCBp
cyAxCisKK1Rlc3Qgcm90YXRlQXhpc0FuZ2xlCitQQVNTIHBhcnNlRmxvYXQobS5tMTEudG9QcmVj
aXNpb24oNikpIGlzIDAuODA0NzM4CitQQVNTIHBhcnNlRmxvYXQobS5tMTIudG9QcmVjaXNpb24o
NikpIGlzIDAuNTA1ODc5CitQQVNTIHBhcnNlRmxvYXQobS5tMTMudG9QcmVjaXNpb24oNikpIGlz
IC0wLjMxMDYxNworUEFTUyBwYXJzZUZsb2F0KG0ubTE0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQ
QVNTIHBhcnNlRmxvYXQobS5tMjEudG9QcmVjaXNpb24oNikpIGlzIC0wLjMxMDYxNworUEFTUyBw
YXJzZUZsb2F0KG0ubTIyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjgwNDczOAorUEFTUyBwYXJzZUZs
b2F0KG0ubTIzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0u
bTI0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tMzEudG9QcmVjaXNp
b24oNikpIGlzIDAuNTA1ODc5CitQQVNTIHBhcnNlRmxvYXQobS5tMzIudG9QcmVjaXNpb24oNikp
IGlzIC0wLjMxMDYxNworUEFTUyBwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lzaW9uKDYpKSBpcyAw
LjgwNDczOAorUEFTUyBwYXJzZUZsb2F0KG0ubTM0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNT
IHBhcnNlRmxvYXQobS5tNDEudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdCht
Lm00Mi50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQzLnRvUHJlY2lz
aW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDQudG9QcmVjaXNpb24oNikpIGlzIDEK
KworVGVzdCByb3RhdGVkQXhpc0FuZ2xlQnkKK1BBU1MgcGFyc2VGbG9hdChtMi5tMTEudG9QcmVj
aXNpb24oNikpIGlzIDAuODA0NzM4CitQQVNTIHBhcnNlRmxvYXQobTIubTEyLnRvUHJlY2lzaW9u
KDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0yLm0xMy50b1ByZWNpc2lvbig2KSkg
aXMgLTAuMzEwNjE3CitQQVNTIHBhcnNlRmxvYXQobTIubTE0LnRvUHJlY2lzaW9uKDYpKSBpcyAw
CitQQVNTIHBhcnNlRmxvYXQobTIubTIxLnRvUHJlY2lzaW9uKDYpKSBpcyAtMC4zMTA2MTcKK1BB
U1MgcGFyc2VGbG9hdChtMi5tMjIudG9QcmVjaXNpb24oNikpIGlzIDAuODA0NzM4CitQQVNTIHBh
cnNlRmxvYXQobTIubTIzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZs
b2F0KG0yLm0yNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0yLm0zMS50
b1ByZWNpc2lvbig2KSkgaXMgMC41MDU4NzkKK1BBU1MgcGFyc2VGbG9hdChtMi5tMzIudG9QcmVj
aXNpb24oNikpIGlzIC0wLjMxMDYxNworUEFTUyBwYXJzZUZsb2F0KG0yLm0zMy50b1ByZWNpc2lv
big2KSkgaXMgMC44MDQ3MzgKK1BBU1MgcGFyc2VGbG9hdChtMi5tMzQudG9QcmVjaXNpb24oNikp
IGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtMi5tNDEudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1Mg
cGFyc2VGbG9hdChtMi5tNDIudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdCht
Mi5tNDMudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtMi5tNDQudG9QcmVj
aXNpb24oNikpIGlzIDEKKworVGVzdCBpbW11dGFiaWxpdHkgb2Ygcm90YXRlZEF4aXNBbmdsZUJ5
CitQQVNTIG0ubTExIGlzIDEKK1BBU1MgbS5tMTIgaXMgMAorUEFTUyBtLm0xMyBpcyAwCitQQVNT
IG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0yMiBpcyAxCitQQVNTIG0ubTIz
IGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBtLm0zMSBpcyAwCitQQVNTIG0ubTMyIGlzIDAK
K1BBU1MgbS5tMzMgaXMgMQorUEFTUyBtLm0zNCBpcyAwCitQQVNTIG0ubTQxIGlzIDAKK1BBU1Mg
bS5tNDIgaXMgMAorUEFTUyBtLm00MyBpcyAwCitQQVNTIG0ubTQ0IGlzIDEKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3RyYW5zZm9ybXMvd2Via2l0bWF0cml4LTNkLWludGVyZmFjZS54aHRtbCBiL0xh
eW91dFRlc3RzL3RyYW5zZm9ybXMvd2Via2l0bWF0cml4LTNkLWludGVyZmFjZS54aHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGI3YzU5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy93ZWJraXRtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1s
CkBAIC0wLDAgKzEsNTYxIEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2Ny
aXB0PgorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGV4ZXJjaXNlcyB0aGUgV2ViS2l0TWF0cml4
IDNEIGludGVyZmFjZSIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiV2ViS2l0TWF0cml4IGNvbnN0
cnVjdG9ycyIpOworCit2YXIgbSA9IG51bGw7CittID0gbmV3IFdlYktpdE1hdHJpeCgpOworaWYg
KG0pCisgIHRlc3RQYXNzZWQoImRlZmF1bHQgY29uc3RydWN0b3IiKTsKK2Vsc2UKKyAgdGVzdEZh
aWxlZCgiZGVmYXVsdCBjb25zdHJ1Y3RvciIpOworCit2YXIgbTIgPSBuZXcgV2ViS2l0TWF0cml4
KG0pOworaWYgKG0yKQorICB0ZXN0UGFzc2VkKCJvYmplY3QgY29uc3RydWN0b3IiKTsKK2Vsc2UK
KyAgdGVzdEZhaWxlZCgib2JqZWN0IGNvbnN0cnVjdG9yIik7CisKK20gPSBuZXcgV2ViS2l0TWF0
cml4KCJtYXRyaXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAw
LCAxKSIpOworaWYgKG0pCisgIHRlc3RQYXNzZWQoInN0cmluZyBjb25zdHJ1Y3RvciIpOworZWxz
ZQorICB0ZXN0RmFpbGVkKCJzdHJpbmcgY29uc3RydWN0b3IiKTsKKworZGVidWcoIiIpOworZGVi
dWcoIlRlc3QgdG9TdHJpbmciKTsKK3ZhciBtID0gbmV3IFdlYktpdE1hdHJpeCgibWF0cml4M2Qo
MSwgMCwgMCwgMSwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSkiKTsKK3ZhciBz
ID0gbS50b1N0cmluZygpOwordmFyIGEgPSBzLnNwbGl0KCcoJyk7CitzaG91bGRCZSgnYVswXScs
ICcibWF0cml4M2QiJyk7Cit2YXIgYTIgPSBhWzFdLnNwbGl0KCcsJyk7CitzaG91bGRCZSgncGFy
c2VGbG9hdChhMlswXSknLCAnMScpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQoYTJbMV0pJywgJzAn
KTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KGEyWzJdKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VG
bG9hdChhMlszXSknLCAnMScpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQoYTJbNF0pJywgJzAnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KGEyWzVdKScsICcxJyk7CitzaG91bGRCZSgncGFyc2VGbG9h
dChhMls2XSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQoYTJbN10pJywgJzAnKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KGEyWzhdKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChh
Mls5XSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQoYTJbMTBdKScsICcxJyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChhMlsxMV0pJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KGEy
WzEyXSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQoYTJbMTNdKScsICcwJyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChhMlsxNF0pJywgJzAnKTsKK3ZhciBhMyA9IGEyWzE1XS5zcGxpdCgi
KSIpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQoYTNbMF0pJywgJzEnKTsKK3Nob3VsZEJlKCdhM1sx
XScsICciIicpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBiYWQgaW5wdXQgdG8gc3RyaW5n
IGNvbnN0cnVjdG9yIik7CitzaG91bGRUaHJvdygnbmV3IFdlYktpdE1hdHJpeCgiYmFuYW5hIikn
KTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgYXR0cmlidXRlcyBvbiBkZWZhdWx0IG1hdHJp
eCIpOworbSA9IG5ldyBXZWJLaXRNYXRyaXgoKTsKK3Nob3VsZEJlKCdtLm0xMScsICcxJyk7Citz
aG91bGRCZSgnbS5tMTInLCAnMCcpOworc2hvdWxkQmUoJ20ubTEzJywgJzAnKTsKK3Nob3VsZEJl
KCdtLm0xNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMjEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTIy
JywgJzEnKTsKK3Nob3VsZEJlKCdtLm0yMycsICcwJyk7CitzaG91bGRCZSgnbS5tMjQnLCAnMCcp
Oworc2hvdWxkQmUoJ20ubTMxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMicsICcwJyk7CitzaG91
bGRCZSgnbS5tMzMnLCAnMScpOworc2hvdWxkQmUoJ20ubTM0JywgJzAnKTsKK3Nob3VsZEJlKCdt
Lm00MScsICcwJyk7CitzaG91bGRCZSgnbS5tNDInLCAnMCcpOworc2hvdWxkQmUoJ20ubTQzJywg
JzAnKTsKK3Nob3VsZEJlKCdtLm00NCcsICcxJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0
IGF0dHJpYnV0ZXMgb24gY3VzdG9tIG1hdHJpeCIpOworbSA9IG5ldyBXZWJLaXRNYXRyaXgoIm1h
dHJpeDNkKDExLCAxMiwgMTMsIDE0LCAyMSwgMjIsIDIzLCAyNCwgMzEsIDMyLCAzMywgMzQsIDQx
LCA0MiwgNDMsIDQ0KSIpOworc2hvdWxkQmUoJ20ubTExJywgJzExJyk7CitzaG91bGRCZSgnbS5t
MTInLCAnMTInKTsKK3Nob3VsZEJlKCdtLm0xMycsICcxMycpOworc2hvdWxkQmUoJ20ubTE0Jywg
JzE0Jyk7CitzaG91bGRCZSgnbS5tMjEnLCAnMjEnKTsKK3Nob3VsZEJlKCdtLm0yMicsICcyMicp
Oworc2hvdWxkQmUoJ20ubTIzJywgJzIzJyk7CitzaG91bGRCZSgnbS5tMjQnLCAnMjQnKTsKK3No
b3VsZEJlKCdtLm0zMScsICczMScpOworc2hvdWxkQmUoJ20ubTMyJywgJzMyJyk7CitzaG91bGRC
ZSgnbS5tMzMnLCAnMzMnKTsKK3Nob3VsZEJlKCdtLm0zNCcsICczNCcpOworc2hvdWxkQmUoJ20u
bTQxJywgJzQxJyk7CitzaG91bGRCZSgnbS5tNDInLCAnNDInKTsKK3Nob3VsZEJlKCdtLm00Mycs
ICc0MycpOworc2hvdWxkQmUoJ20ubTQ0JywgJzQ0Jyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0IHNldE1hdHJpeFZhbHVlIC0gc2V0IHRvIG1hdHJpeCgpIik7CittID0gbmV3IFdlYktpdE1h
dHJpeCgpOworbS5zZXRNYXRyaXhWYWx1ZSgibWF0cml4M2QoMTEsIDEyLCAxMywgMTQsIDIxLCAy
MiwgMjMsIDI0LCAzMSwgMzIsIDMzLCAzNCwgNDEsIDQyLCA0MywgNDQpIik7CitzaG91bGRCZSgn
bS5tMTEnLCAnMTEnKTsKK3Nob3VsZEJlKCdtLm0xMicsICcxMicpOworc2hvdWxkQmUoJ20ubTEz
JywgJzEzJyk7CitzaG91bGRCZSgnbS5tMTQnLCAnMTQnKTsKK3Nob3VsZEJlKCdtLm0yMScsICcy
MScpOworc2hvdWxkQmUoJ20ubTIyJywgJzIyJyk7CitzaG91bGRCZSgnbS5tMjMnLCAnMjMnKTsK
K3Nob3VsZEJlKCdtLm0yNCcsICcyNCcpOworc2hvdWxkQmUoJ20ubTMxJywgJzMxJyk7CitzaG91
bGRCZSgnbS5tMzInLCAnMzInKTsKK3Nob3VsZEJlKCdtLm0zMycsICczMycpOworc2hvdWxkQmUo
J20ubTM0JywgJzM0Jyk7CitzaG91bGRCZSgnbS5tNDEnLCAnNDEnKTsKK3Nob3VsZEJlKCdtLm00
MicsICc0MicpOworc2hvdWxkQmUoJ20ubTQzJywgJzQzJyk7CitzaG91bGRCZSgnbS5tNDQnLCAn
NDQnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qgc2V0TWF0cml4VmFsdWUgLSBzZXQgdG8g
dHJhbnNsYXRlKDEwcHgsIDIwcHgsIDMwcHgpIHNjYWxlKDIsIDMsIDQpIik7CittID0gbmV3IFdl
YktpdE1hdHJpeCgpOworbS5zZXRNYXRyaXhWYWx1ZSgidHJhbnNsYXRlM2QoMTBweCwgMjBweCwg
MzBweCkgc2NhbGUzZCgyLCAzLCA0KSIpOworc2hvdWxkQmUoJ20ubTExJywgJzInKTsKK3Nob3Vs
ZEJlKCdtLm0xMicsICcwJyk7CitzaG91bGRCZSgnbS5tMTMnLCAnMCcpOworc2hvdWxkQmUoJ20u
bTE0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMScsICcwJyk7CitzaG91bGRCZSgnbS5tMjInLCAn
MycpOworc2hvdWxkQmUoJ20ubTIzJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7Citz
aG91bGRCZSgnbS5tMzEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTMyJywgJzAnKTsKK3Nob3VsZEJl
KCdtLm0zMycsICc0Jyk7CitzaG91bGRCZSgnbS5tMzQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQx
JywgJzEwJyk7CitzaG91bGRCZSgnbS5tNDInLCAnMjAnKTsKK3Nob3VsZEJlKCdtLm00MycsICcz
MCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qg
dGhyb3dpbmcgZXhjZXB0aW9uIGZyb20gc2V0TWF0cml4VmFsdWUiKTsKK3Nob3VsZFRocm93KCdt
LnNldE1hdHJpeFZhbHVlKCJiYW5hbmEiKScpOworc2hvdWxkVGhyb3coJ20uc2V0TWF0cml4VmFs
dWUoInRyYW5zbGF0ZTNkKDEwZW0sIDIwJSwgNDApIiknKTsKK3Nob3VsZFRocm93KCdtLnNldE1h
dHJpeFZhbHVlKCJ0cmFuc2xhdGUzZCgxMHB4LCAyMHB4LCAzMHB4KSBzY2FsZTNkKCkiKScpOwor
CitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBtdWx0aXBseSIpOworbSA9ICBuZXcgV2ViS2l0TWF0
cml4KCJtYXRyaXgzZCggMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEs
IDEyLCAxMywgMTQsIDE1LCAxNikiKTsKK20yID0gbmV3IFdlYktpdE1hdHJpeCgibWF0cml4M2Qo
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAz
MSwgMzIpIik7CittLm11bHRpcGx5KG0yKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTExKScs
ICc1MzgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEyKScsICc2MTInKTsKK3Nob3VsZEJl
KCdwYXJzZUZsb2F0KG0ubTEzKScsICc2ODYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTE0
KScsICc3NjAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIxKScsICc2NTAnKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTIyKScsICc3NDAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0u
bTIzKScsICc4MzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0KScsICc5MjAnKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMxKScsICc3NjInKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTMyKScsICc4NjgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMzKScsICc5NzQnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTM0KScsICcxMDgwJyk7CitzaG91bGRCZSgncGFyc2VG
bG9hdChtLm00MSknLCAnODc0Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00MiknLCAnOTk2
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00MyknLCAnMTExOCcpOworc2hvdWxkQmUoJ3Bh
cnNlRmxvYXQobS5tNDQpJywgJzEyNDAnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgbXVs
dGlwbHkgaW4gYW4gYWZmaW5lIG1hdHJpeCIpOworbSA9ICBuZXcgV2ViS2l0TWF0cml4KCJtYXRy
aXgzZCgxLCAyLCAwLCAwLCAzLCA0LCAwLCAwLCAwLCAwLCAxLCAwLCA1LCA2LCAwLCAxKSIpOwor
bTIgPSBuZXcgV2ViS2l0TWF0cml4KCJtYXRyaXgzZCg3LCA4LCAwLCAwLCA5LCAxMCwgMCwgMCwg
MCwgMCwgMSwgMCwgMTEsIDEyLCAwLCAxKSIpOworbS5tdWx0aXBseShtMik7CitzaG91bGRCZSgn
cGFyc2VGbG9hdChtLm0xMSknLCAnMzEnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEyKScs
ICc0NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTMpJywgJzAnKTsKK3Nob3VsZEJlKCdw
YXJzZUZsb2F0KG0ubTE0KScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMSknLCAn
MzknKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIyKScsICc1OCcpOworc2hvdWxkQmUoJ3Bh
cnNlRmxvYXQobS5tMjMpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0KScsICcw
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zMSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNl
RmxvYXQobS5tMzIpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMzKScsICcxJyk7
CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zNCknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxv
YXQobS5tNDEpJywgJzUyJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00MiknLCAnNzYnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQzKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9h
dChtLm00NCknLCAnMScpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aGF0IG11bHRpcGx5
IHdvcmtzIGluIHRoZSByaWdodCBkaXJlY3Rpb24iKTsKK3ZhciB0eCA9IG5ldyBXZWJLaXRNYXRy
aXgoIm1hdHJpeDNkKCAxLCAgMCwgIDAsICAwLCAgMCwgIDEsICAwLCAgMCwgIDAsIDAsIDEsIDAs
IDEwMCwgMCwgMCwgMSkiKTsKK3ZhciBzeCA9IG5ldyBXZWJLaXRNYXRyaXgoIm1hdHJpeDNkKCAy
LCAgMCwgIDAsICAwLCAgMCwgIDEsICAwLCAgMCwgIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEpIik7
Cit0eC5tdWx0aXBseShzeCk7CitzaG91bGRCZSgndHgubTExJywgJzInKTsKK3Nob3VsZEJlKCd0
eC5tMTInLCAnMCcpOworc2hvdWxkQmUoJ3R4Lm0xMycsICcwJyk7CitzaG91bGRCZSgndHgubTE0
JywgJzAnKTsKK3Nob3VsZEJlKCd0eC5tMjEnLCAnMCcpOworc2hvdWxkQmUoJ3R4Lm0yMicsICcx
Jyk7CitzaG91bGRCZSgndHgubTIzJywgJzAnKTsKK3Nob3VsZEJlKCd0eC5tMjQnLCAnMCcpOwor
c2hvdWxkQmUoJ3R4Lm0zMScsICcwJyk7CitzaG91bGRCZSgndHgubTMyJywgJzAnKTsKK3Nob3Vs
ZEJlKCd0eC5tMzMnLCAnMScpOworc2hvdWxkQmUoJ3R4Lm0zNCcsICcwJyk7CitzaG91bGRCZSgn
dHgubTQxJywgJzEwMCcpOworc2hvdWxkQmUoJ3R4Lm00MicsICcwJyk7CitzaG91bGRCZSgndHgu
bTQzJywgJzAnKTsKK3Nob3VsZEJlKCd0eC5tNDQnLCAnMScpOworCitkZWJ1ZygiIikKK2RlYnVn
KCJUZXN0IG11bHRpcGxpZWRCeSIpCit2YXIgbSA9ICBuZXcgV2ViS2l0TWF0cml4KCJtYXRyaXgz
ZCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiki
KTsKK3ZhciBtMiA9IG5ldyBXZWJLaXRNYXRyaXgoIm1hdHJpeDNkKDE3LCAxOCwgMTksIDIwLCAy
MSwgMjIsIDIzLCAyNCwgMjUsMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIpIik7Cit2YXIgbTMg
PSBtLm11bHRpcGxpZWRCeShtMikKK3Nob3VsZEJlKCdNYXRoLmZsb29yKG0zLm0xMSknLCAnNTM4
Jyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtMy5tMTIpJywgJzYxMicpOworc2hvdWxkQmUoJ01h
dGguZmxvb3IobTMubTEzKScsICc2ODYnKTsKK3Nob3VsZEJlKCdNYXRoLmZsb29yKG0zLm0xNCkn
LCAnNzYwJyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtMy5tMjEpJywgJzY1MCcpOworc2hvdWxk
QmUoJ01hdGguZmxvb3IobTMubTIyKScsICc3NDAnKTsKK3Nob3VsZEJlKCdNYXRoLmZsb29yKG0z
Lm0yMyknLCAnODMwJyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtMy5tMjQpJywgJzkyMCcpOwor
c2hvdWxkQmUoJ01hdGguZmxvb3IobTMubTMxKScsICc3NjInKTsKK3Nob3VsZEJlKCdNYXRoLmZs
b29yKG0zLm0zMiknLCAnODY4Jyk7CitzaG91bGRCZSgnTWF0aC5mbG9vcihtMy5tMzMpJywgJzk3
NCcpOworc2hvdWxkQmUoJ01hdGguZmxvb3IobTMubTM0KScsICcxMDgwJyk7CitzaG91bGRCZSgn
TWF0aC5mbG9vcihtMy5tNDEpJywgJzg3NCcpOworc2hvdWxkQmUoJ01hdGguZmxvb3IobTMubTQy
KScsICc5OTYnKTsKK3Nob3VsZEJlKCdNYXRoLmZsb29yKG0zLm00MyknLCAnMTExOCcpOworc2hv
dWxkQmUoJ01hdGguZmxvb3IobTMubTQ0KScsICcxMjQwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVn
KCJUZXN0IGltbXV0YWJpbGl0eSBvZiBtdWx0aXBsaWVkQnkiKTsKK3Nob3VsZEJlKCdwYXJzZUZs
b2F0KG0ubTExKScsICcxJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMiknLCAnMicpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTMpJywgJzMnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTE0KScsICc0Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMSknLCAnNScpOworc2hv
dWxkQmUoJ3BhcnNlRmxvYXQobS5tMjIpJywgJzYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0u
bTIzKScsICc3Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yNCknLCAnOCcpOworc2hvdWxk
QmUoJ3BhcnNlRmxvYXQobS5tMzEpJywgJzknKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMy
KScsICcxMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzMpJywgJzExJyk7CitzaG91bGRC
ZSgncGFyc2VGbG9hdChtLm0zNCknLCAnMTInKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQx
KScsICcxMycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDIpJywgJzE0Jyk7CitzaG91bGRC
ZSgncGFyc2VGbG9hdChtLm00MyknLCAnMTUnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQ0
KScsICcxNicpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBpbnZlcnNlIik7CittID0gbmV3
IFdlYktpdE1hdHJpeCgibWF0cml4M2QoMiwgMCwgMCwgMCwgMCwgMiwgMCwgMCwgMCwgMCwgMiwg
MCwgMTAsIDIwLCAzMCwgMSkiKTsKK20yID0gbS5pbnZlcnNlKCk7CisKK3Nob3VsZEJlKCdwYXJz
ZUZsb2F0KG0yLm0xMSknLCAnMC41Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMTIpJywg
JzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm0xMyknLCAnMCcpOworc2hvdWxkQmUoJ3Bh
cnNlRmxvYXQobTIubTE0KScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMjEpJywg
JzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm0yMiknLCAnMC41Jyk7CitzaG91bGRCZSgn
cGFyc2VGbG9hdChtMi5tMjMpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm0yNCkn
LCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTMxKScsICcwJyk7CitzaG91bGRCZSgn
cGFyc2VGbG9hdChtMi5tMzIpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm0zMykn
LCAnMC41Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMzQpJywgJzAnKTsKK3Nob3VsZEJl
KCdwYXJzZUZsb2F0KG0yLm00MSknLCAnLTUnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm00
MiknLCAnLTEwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tNDMpJywgJy0xNScpOworc2hv
dWxkQmUoJ3BhcnNlRmxvYXQobTIubTQ0KScsICcxJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0IGltbXV0YWJpbGl0eSBvZiBpbnZlcnNlIik7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0x
MSknLCAnMicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTIpJywgJzAnKTsKK3Nob3VsZEJl
KCdwYXJzZUZsb2F0KG0ubTEzKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xNCkn
LCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjEpJywgJzAnKTsKK3Nob3VsZEJlKCdw
YXJzZUZsb2F0KG0ubTIyKScsICcyJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMyknLCAn
MCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjQpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJz
ZUZsb2F0KG0ubTMxKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zMiknLCAnMCcp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzMpJywgJzInKTsKK3Nob3VsZEJlKCdwYXJzZUZs
b2F0KG0ubTM0KScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00MSknLCAnMTAnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQyKScsICcyMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxv
YXQobS5tNDMpJywgJzMwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00NCknLCAnMScpOwor
CitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aHJvd2luZyBleGNlcHRpb24gZnJvbSBpbnZlcnNl
Iik7CittID0gbmV3IFdlYktpdE1hdHJpeCgibWF0cml4M2QoMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCkiKTsgLy8gbm90IGludmVydGlibGUKK3Nob3VsZFRo
cm93KCdtLmludmVyc2UoKScpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0cmFuc2xhdGUi
KTsKK3ZhciBtID0gbmV3IFdlYktpdE1hdHJpeCgpOworbS50cmFuc2xhdGUoMTAsIDIwLCAzMCk7
CitzaG91bGRCZSgnbS5tMTEnLCAnMScpOworc2hvdWxkQmUoJ20ubTEyJywgJzAnKTsKK3Nob3Vs
ZEJlKCdtLm0xMycsICcwJyk7CitzaG91bGRCZSgnbS5tMTQnLCAnMCcpOworc2hvdWxkQmUoJ20u
bTIxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMicsICcxJyk7CitzaG91bGRCZSgnbS5tMjMnLCAn
MCcpOworc2hvdWxkQmUoJ20ubTI0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMScsICcwJyk7Citz
aG91bGRCZSgnbS5tMzInLCAnMCcpOworc2hvdWxkQmUoJ20ubTMzJywgJzEnKTsKK3Nob3VsZEJl
KCdtLm0zNCcsICcwJyk7CitzaG91bGRCZSgnbS5tNDEnLCAnMTAnKTsKK3Nob3VsZEJlKCdtLm00
MicsICcyMCcpOworc2hvdWxkQmUoJ20ubTQzJywgJzMwJyk7CitzaG91bGRCZSgnbS5tNDQnLCAn
MScpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0cmFuc2xhdGVkQnkiKTsKK20gPSBuZXcg
V2ViS2l0TWF0cml4KCk7Cit2YXIgbTIgPSAgbS50cmFuc2xhdGVkQnkoMTAsIDIwLCAzMCk7Citz
aG91bGRCZSgnbTIubTExJywgJzEnKTsKK3Nob3VsZEJlKCdtMi5tMTInLCAnMCcpOworc2hvdWxk
QmUoJ20yLm0xMycsICcwJyk7CitzaG91bGRCZSgnbTIubTE0JywgJzAnKTsKK3Nob3VsZEJlKCdt
Mi5tMjEnLCAnMCcpOworc2hvdWxkQmUoJ20yLm0yMicsICcxJyk7CitzaG91bGRCZSgnbTIubTIz
JywgJzAnKTsKK3Nob3VsZEJlKCdtMi5tMjQnLCAnMCcpOworc2hvdWxkQmUoJ20yLm0zMScsICcw
Jyk7CitzaG91bGRCZSgnbTIubTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtMi5tMzMnLCAnMScpOwor
c2hvdWxkQmUoJ20yLm0zNCcsICcwJyk7CitzaG91bGRCZSgnbTIubTQxJywgJzEwJyk7CitzaG91
bGRCZSgnbTIubTQyJywgJzIwJyk7CitzaG91bGRCZSgnbTIubTQzJywgJzMwJyk7CitzaG91bGRC
ZSgnbTIubTQ0JywgJzEnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgaW1tdXRhYmlsaXR5
IG9mIHRyYW5zbGF0ZWRCeSIpOworc2hvdWxkQmUoJ20ubTExJywgJzEnKTsKK3Nob3VsZEJlKCdt
Lm0xMicsICcwJyk7CitzaG91bGRCZSgnbS5tMTMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTE0Jywg
JzAnKTsKK3Nob3VsZEJlKCdtLm0yMScsICcwJyk7CitzaG91bGRCZSgnbS5tMjInLCAnMScpOwor
c2hvdWxkQmUoJ20ubTIzJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRC
ZSgnbS5tMzEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0z
MycsICcxJyk7CitzaG91bGRCZSgnbS5tMzQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzAn
KTsKK3Nob3VsZEJlKCdtLm00MicsICcwJyk7CitzaG91bGRCZSgnbS5tNDMnLCAnMCcpOworc2hv
dWxkQmUoJ20ubTQ0JywgJzEnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qgc2NhbGUiKTsK
K20gPSBuZXcgV2ViS2l0TWF0cml4KCk7CittLnNjYWxlKDEwLCAyMCwgMzApOworc2hvdWxkQmUo
J20ubTExJywgJzEwJyk7CitzaG91bGRCZSgnbS5tMTInLCAnMCcpOworc2hvdWxkQmUoJ20ubTEz
JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0xNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMjEnLCAnMCcp
Oworc2hvdWxkQmUoJ20ubTIyJywgJzIwJyk7CitzaG91bGRCZSgnbS5tMjMnLCAnMCcpOworc2hv
dWxkQmUoJ20ubTI0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMScsICcwJyk7CitzaG91bGRCZSgn
bS5tMzInLCAnMCcpOworc2hvdWxkQmUoJ20ubTMzJywgJzMwJyk7CitzaG91bGRCZSgnbS5tMzQn
LCAnMCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm00MicsICcwJyk7
CitzaG91bGRCZSgnbS5tNDMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKKworZGVi
dWcoIiIpOworZGVidWcoIlRlc3Qgc2NhbGVkQnkiKTsKK20gPSBuZXcgV2ViS2l0TWF0cml4KCk7
Cit2YXIgbTIgPSBtLnNjYWxlZEJ5KDEwLCAyMCwgMzApOworc2hvdWxkQmUoJ20yLm0xMScsICcx
MCcpOworc2hvdWxkQmUoJ20yLm0xMicsICcwJyk7CitzaG91bGRCZSgnbTIubTEzJywgJzAnKTsK
K3Nob3VsZEJlKCdtMi5tMTQnLCAnMCcpOworc2hvdWxkQmUoJ20yLm0yMScsICcwJyk7CitzaG91
bGRCZSgnbTIubTIyJywgJzIwJyk7CitzaG91bGRCZSgnbTIubTIzJywgJzAnKTsKK3Nob3VsZEJl
KCdtMi5tMjQnLCAnMCcpOworc2hvdWxkQmUoJ20yLm0zMScsICcwJyk7CitzaG91bGRCZSgnbTIu
bTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtMi5tMzMnLCAnMzAnKTsKK3Nob3VsZEJlKCdtMi5tMzQn
LCAnMCcpOworc2hvdWxkQmUoJ20yLm00MScsICcwJyk7CitzaG91bGRCZSgnbTIubTQyJywgJzAn
KTsKK3Nob3VsZEJlKCdtMi5tNDMnLCAnMCcpOworc2hvdWxkQmUoJ20yLm00NCcsICcxJyk7CisK
K2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGltbXV0YWJpbGl0eSBvZiBzY2FsZWRCeSIpOworc2hv
dWxkQmUoJ20ubTExJywgJzEnKTsKK3Nob3VsZEJlKCdtLm0xMicsICcwJyk7CitzaG91bGRCZSgn
bS5tMTMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTE0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMScs
ICcwJyk7CitzaG91bGRCZSgnbS5tMjInLCAnMScpOworc2hvdWxkQmUoJ20ubTIzJywgJzAnKTsK
K3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMzEnLCAnMCcpOworc2hvdWxk
QmUoJ20ubTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMycsICcxJyk7CitzaG91bGRCZSgnbS5t
MzQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm00MicsICcw
Jyk7CitzaG91bGRCZSgnbS5tNDMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKKwor
ZGVidWcoIiIpOworZGVidWcoIlRlc3Qgcm90YXRlIik7CittID0gbmV3IFdlYktpdE1hdHJpeCgp
OworbS5yb3RhdGUoMTAsIDIwLCAzMCk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMS50b1By
ZWNpc2lvbig2KSknLCAnMC44MTM3OTgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEyLnRv
UHJlY2lzaW9uKDYpKScsICcwLjQ2OTg0NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTMu
dG9QcmVjaXNpb24oNikpJywgJy0wLjM0MjAyJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0x
NC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjEudG9Q
cmVjaXNpb24oNikpJywgJy0wLjQ0MDk3Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMi50
b1ByZWNpc2lvbig2KSknLCAnMC44ODI1NjQnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIz
LnRvUHJlY2lzaW9uKDYpKScsICcwLjE2MzE3NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MjQudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMxLnRv
UHJlY2lzaW9uKDYpKScsICcwLjM3ODUyMicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzIu
dG9QcmVjaXNpb24oNikpJywgJzAuMDE4MDI4MycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MzMudG9QcmVjaXNpb24oNikpJywgJzAuOTI1NDE3Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0zNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDEu
dG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQyLnRvUHJl
Y2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00My50b1ByZWNpc2lv
big2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDQudG9QcmVjaXNpb24oNikp
JywgJzEnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qgcm90YXRlZEJ5Iik7CittID0gbmV3
IFdlYktpdE1hdHJpeCgpOworbTIgPSBtLnJvdGF0ZWRCeSgxMCwgMjAsIDMwKTsKK3Nob3VsZEJl
KCdwYXJzZUZsb2F0KG0yLm0xMS50b1ByZWNpc2lvbig2KSknLCAnMC44MTM3OTgnKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0yLm0xMi50b1ByZWNpc2lvbig2KSknLCAnMC40Njk4NDYnKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KG0yLm0xMy50b1ByZWNpc2lvbig2KSknLCAnLTAuMzQyMDInKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm0xNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hv
dWxkQmUoJ3BhcnNlRmxvYXQobTIubTIxLnRvUHJlY2lzaW9uKDYpKScsICctMC40NDA5NycpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTIyLnRvUHJlY2lzaW9uKDYpKScsICcwLjg4MjU2NCcp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTIzLnRvUHJlY2lzaW9uKDYpKScsICcwLjE2MzE3
NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTI0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7
CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMzEudG9QcmVjaXNpb24oNikpJywgJzAuMzc4NTIy
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMzIudG9QcmVjaXNpb24oNikpJywgJzAuMDE4
MDI4MycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTMzLnRvUHJlY2lzaW9uKDYpKScsICcw
LjkyNTQxNycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTM0LnRvUHJlY2lzaW9uKDYpKScs
ICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tNDEudG9QcmVjaXNpb24oNikpJywgJzAn
KTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm00Mi50b1ByZWNpc2lvbig2KSknLCAnMCcpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTQzLnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtMi5tNDQudG9QcmVjaXNpb24oNikpJywgJzEnKTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3QgaW1tdXRhYmlsaXR5IG9mIHJvdGF0ZWRCeSIpOworc2hvdWxkQmUo
J20ubTExJywgJzEnKTsKK3Nob3VsZEJlKCdtLm0xMicsICcwJyk7CitzaG91bGRCZSgnbS5tMTMn
LCAnMCcpOworc2hvdWxkQmUoJ20ubTE0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMScsICcwJyk7
CitzaG91bGRCZSgnbS5tMjInLCAnMScpOworc2hvdWxkQmUoJ20ubTIzJywgJzAnKTsKK3Nob3Vs
ZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMzEnLCAnMCcpOworc2hvdWxkQmUoJ20u
bTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMycsICcxJyk7CitzaG91bGRCZSgnbS5tMzQnLCAn
MCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm00MicsICcwJyk7Citz
aG91bGRCZSgnbS5tNDMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3Qgcm90YXRlQXhpc0FuZ2xlIik7CittID0gbmV3IFdlYktpdE1hdHJp
eCgpOworbS5yb3RhdGVBeGlzQW5nbGUoMC43MDcsIDAuNzA3LCAwLjcwNywgNDUpOworc2hvdWxk
QmUoJ3BhcnNlRmxvYXQobS5tMTEudG9QcmVjaXNpb24oNikpJywgJzAuODA0NzM4Jyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtLm0xMi50b1ByZWNpc2lvbig2KSknLCAnMC41MDU4NzknKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEzLnRvUHJlY2lzaW9uKDYpKScsICctMC4zMTA2MTcnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTE0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtLm0yMS50b1ByZWNpc2lvbig2KSknLCAnLTAuMzEwNjE3Jyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtLm0yMi50b1ByZWNpc2lvbig2KSknLCAnMC44MDQ3MzgnKTsK
K3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIzLnRvUHJlY2lzaW9uKDYpKScsICcwLjUwNTg3OScp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjQudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMxLnRvUHJlY2lzaW9uKDYpKScsICcwLjUwNTg3OScpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzIudG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzMudG9QcmVjaXNpb24oNikpJywgJzAuODA0NzM4
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDEudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTQyLnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgn
cGFyc2VGbG9hdChtLm00My50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNl
RmxvYXQobS5tNDQudG9QcmVjaXNpb24oNikpJywgJzEnKTsKKworZGVidWcoIiIpOworZGVidWco
IlRlc3Qgcm90YXRlZEF4aXNBbmdsZUJ5Iik7CittID0gbmV3IFdlYktpdE1hdHJpeCgpOworbTIg
PSBtLnJvdGF0ZWRBeGlzQW5nbGVCeSgwLjcwNywgMC43MDcsIDAuNzA3LCA0NSk7CitzaG91bGRC
ZSgncGFyc2VGbG9hdChtMi5tMTEudG9QcmVjaXNpb24oNikpJywgJzAuODA0NzM4Jyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtMi5tMTIudG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtMi5tMTMudG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTE0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtMi5tMjEudG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTIyLnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDcz
OCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTIzLnRvUHJlY2lzaW9uKDYpKScsICcwLjUw
NTg3OScpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTI0LnRvUHJlY2lzaW9uKDYpKScsICcw
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMzEudG9QcmVjaXNpb24oNikpJywgJzAuNTA1
ODc5Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tMzIudG9QcmVjaXNpb24oNikpJywgJy0w
LjMxMDYxNycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTMzLnRvUHJlY2lzaW9uKDYpKScs
ICcwLjgwNDczOCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTM0LnRvUHJlY2lzaW9uKDYp
KScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtMi5tNDEudG9QcmVjaXNpb24oNikpJywg
JzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0yLm00Mi50b1ByZWNpc2lvbig2KSknLCAnMCcp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobTIubTQzLnRvUHJlY2lzaW9uKDYpKScsICcwJyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtMi5tNDQudG9QcmVjaXNpb24oNikpJywgJzEnKTsKKworZGVi
dWcoIiIpOworZGVidWcoIlRlc3QgaW1tdXRhYmlsaXR5IG9mIHJvdGF0ZWRBeGlzQW5nbGVCeSIp
Oworc2hvdWxkQmUoJ20ubTExJywgJzEnKTsKK3Nob3VsZEJlKCdtLm0xMicsICcwJyk7CitzaG91
bGRCZSgnbS5tMTMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTE0JywgJzAnKTsKK3Nob3VsZEJlKCdt
Lm0yMScsICcwJyk7CitzaG91bGRCZSgnbS5tMjInLCAnMScpOworc2hvdWxkQmUoJ20ubTIzJywg
JzAnKTsKK3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMzEnLCAnMCcpOwor
c2hvdWxkQmUoJ20ubTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMycsICcxJyk7CitzaG91bGRC
ZSgnbS5tMzQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm00
MicsICcwJyk7CitzaG91bGRCZSgnbS5tNDMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEn
KTsKKworZGVidWcoIiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDgyOTI1ZWEuLmExMDk4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0xMzAsNiArMTMwLDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgY3NzL1dlYktpdENT
U0tleWZyYW1lc1J1bGUuaWRsCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5pZGwKICAgICBjc3Mv
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsCisgICAgY3NzL1dlYktpdE1hdHJpeC5pZGwKIAog
ICAgIGRvbS9BdHRyLmlkbAogICAgIGRvbS9CZWZvcmVMb2FkRXZlbnQuaWRsCkBAIC00OTEsNiAr
NDkyLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNS
dWxlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwCiAgICAgY3NzL1dlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmNwcAorICAgIGNzcy9XZWJLaXRNYXRyaXguY3BwCiAKICAgICBkb20vQWN0
aXZlRE9NT2JqZWN0LmNwcAogICAgIGRvbS9BdHRyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY0MzM2MGEu
LjZlYWRiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDAgQEAKKzIwMTEtMTAtMTggIElnb3Ig
T2xpdmVpcmEgIDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTWFrZSBX
ZWJLaXRDU1NNYXRyaXggbW9yZSBlZmZpY2llbnQgZm9yIHVzZSBpbiBXZWJHTAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MzMKKworICAgICAgICBU
aGlzIHBhdGNoIGNyZWF0ZXMgYSBuZXcgQVBJOiBXZWJLaXRNYXRyaXguIFVubGlrZSBXZWJLaXRD
U1NNYXRyaXgsIGl0IGltcGxlbWVudHMgCisgICAgICAgIG11dGFibGUgbWF0cml4IG9wZXJhdGlv
bnMsIGJ1dCBhZGRpdGlvbmFsbHkgaXQgZXhwb3NlIG5vbiBtdXRhYmxlIG1ldGhvZHMgYXMgd2Vs
bC4KKyAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiB0cmFuc2Zvcm1zL3dlYmtpdG1hdHJpeC0zZC1pbnRlcmZhY2UueGh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5lcmF0b3JzLnByaToKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgICogVXNlSlNDLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvdzo6d2ViS2l0TWF0cml4KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdE1hdHJp
eEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRNYXRyaXhDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0SlNXZWJLaXRNYXRyaXgpOgorICAgICAgICAqIGNzcy9XZWJLaXRN
YXRyaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6V2ViS2l0
TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6c2V0TWF0cml4VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4Ojp+V2ViS2l0TWF0cml4KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6dG9BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRNYXRyaXg6Om11bHRpcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6
bXVsdGlwbGllZEJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6aW52ZXJzZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnRyYW5zbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnRyYW5zbGF0ZWRCeSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRNYXRyaXg6OnNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6c2Nh
bGVkQnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4Ojpyb3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4Ojpyb3RhdGVkQnkpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0TWF0cml4Ojpyb3RhdGVBeGlzQW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0
TWF0cml4Ojpyb3RhdGVkQXhpc0FuZ2xlQnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0
cml4Ojpza2V3WCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNrZXdlZFhCeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNrZXdZKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdE1hdHJpeDo6c2tld2VkWUJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1h
dHJpeDo6dG9TdHJpbmcpOgorICAgICAgICAqIGNzcy9XZWJLaXRNYXRyaXguaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRNYXRyaXg6OmEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4OjpiKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6Yyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRNYXRyaXg6OmQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4OjplKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6Zik6CisgICAgICAgIChXZWJDb3JlOjpXZWJL
aXRNYXRyaXg6OnNldEEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4OjpzZXRCKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6c2V0Qyk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRNYXRyaXg6OnNldEQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0TWF0cml4Ojpz
ZXRFKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1hdHJpeDo6c2V0Rik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0xMSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRy
aXg6Om0xMik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0xMyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0xNCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
YXRyaXg6Om0yMSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0yMik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0yMyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJL
aXRNYXRyaXg6Om0yNCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0zMSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0zMik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRNYXRyaXg6Om0zMyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om0zNCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om00MSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRNYXRyaXg6Om00Mik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om00
Myk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6Om00NCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRNYXRyaXg6OnNldE0xMSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRy
aXg6OnNldE0xMik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE0xMyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE0xNCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRNYXRyaXg6OnNldE0yMSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6
OnNldE0yMik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE0yMyk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE0yNCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRNYXRyaXg6OnNldE0zMSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNl
dE0zMik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE0zMyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE0zNCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJL
aXRNYXRyaXg6OnNldE00MSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE00
Mik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE00Myk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRNYXRyaXg6OnNldE00NCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
YXRyaXg6OnRyYW5zZm9ybSk6CisgICAgICAgICogY3NzL1dlYktpdE1hdHJpeC5pZGw6IEFkZGVk
LgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMS0xMC0xMiAgUGF2ZWwgUG9k
aXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBmaXggaGFuZGxpbmcgb2Ygc291cmNlIG1hcHBpbmcgZW50cmllcyB3aXRoIG5vIG1hcHBpbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKaW5kZXggM2ViNjk0ZC4uZTU3MGRiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NvZGVHZW5lcmF0b3JzLnByaQpAQCAtMTAxLDYgKzEwMSw3IEBAIElETF9CSU5ESU5HUyAr
PSBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRsIFwKICAgICBjc3MvV2ViS2l0
Q1NTTWF0cml4LmlkbCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCisg
ICAgY3NzL1dlYktpdE1hdHJpeC5pZGwgXAogICAgIGRvbS9BdHRyLmlkbCBcCiAgICAgZG9tL0Jl
Zm9yZUxvYWRFdmVudC5pZGwgXAogICAgIGRvbS9DaGFyYWN0ZXJEYXRhLmlkbCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0OTZjYzI3Li5mY2Y1NWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU1NCw2ICs1NTQsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAg
ICBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBcCiAgICAgV2ViS2l0RmxhZ3MgXAogICAgIFdlYktp
dExvc2VDb250ZXh0IFwKKyAgICBXZWJLaXRNYXRyaXggXAogICAgIFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIgXAogICAgIFdlYktpdFBvaW50IFwKICAgICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzM1ZGQ2Zi4uZDI4NzhmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NTQsNiArNTU0LDggQEAgd2ViY29yZV9idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdExvc2VDb250ZXh0
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdExvc2VDb250ZXh0LmggXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRNYXRyaXguY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0TWF0cml4LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRQb2ludC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRQb2lu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNw
cCBcCkBAIC04MjgsNiArODMwLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9t
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNYXRyaXhDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50
Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0
b20uY3BwIFwKQEAgLTEwNzcsNiArMTA4MCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdE1hdHJpeC5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRNYXRyaXguaCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFr
ZQppbmRleCA1ZjZkYWE2Li40MGY3YjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VK
U0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xMjMsNiArMTIz
LDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4
Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0TWF0cml4Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzIxMTg3OC4uNWU0Nzc3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTE1NSw2ICsxMTU1LDcgQEAKICAgICAgICAgICAgICdjc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NN
YXRyaXguaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRs
JywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0TWF0cml4LmlkbCcsCiAgICAgICAgICAgICAnZG9t
L0F0dHIuaWRsJywKICAgICAgICAgICAgICdkb20vQmVmb3JlTG9hZEV2ZW50LmlkbCcsCiAgICAg
ICAgICAgICAnZG9tL0NEQVRBU2VjdGlvbi5pZGwnLApAQCAtMTkzOSw2ICsxOTQwLDcgQEAKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9t
LmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRNYXRyaXhDdXN0b20uY3Bw
JywgCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCcsCkBA
IC0yNDU0LDYgKzI0NTYsOCBAQAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXguY3Bw
JywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTTWF0cml4LmgnLAogICAgICAgICAgICAgJ2Nz
cy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRN
YXRyaXguY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0TWF0cml4LmgnLAogICAgICAgICAg
ICAgJ2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvQXBwbHlCbG9ja0Vs
ZW1lbnRDb21tYW5kLmNwcCcsCkBAIC03MDI2LDYgKzcwMzAsOSBAQAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9ET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbScsCiAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZUludGVybmFsLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NV2ViS2l0TWF0cml4LmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0TWF0cml4Lm1tJywKKyAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdE1hdHJpeElu
dGVybmFsLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvRE9NV2hlZWxFdmVudC5tbScsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XaGVlbEV2ZW50SW50ZXJuYWwuaCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01YUGF0aEV4cHJlc3Np
b24ubW0nLApAQCAtODAzMiw2ICs4MDM5LDggQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTTWF0cml4LmgnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oJywKKyAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TWF0cml4LmNwcCcs
CisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dl
YktpdE1hdHJpeC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViS2l0TG9zZUNvbnRleHQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TG9zZUNvbnRleHQuaCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYjBjNGJkOC4uYTVhNGY0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM0Niw2ICszNDYsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9q
cy9KU1dlYktpdE1hdHJpeEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRQb2ludEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcCBcCkBAIC00NTYsNiArNDU3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dl
YktpdENTU0tleWZyYW1lc1J1bGUuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBc
CiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisgICAgY3NzL1dlYktpdE1h
dHJpeC5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKICAgICBkb20vQXR0ci5j
cHAgXAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwIFwKQEAgLTE0OTAsNiArMTQ5Miw3IEBAIEhFQURF
UlMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggXAogICAgIGNzcy9XZWJL
aXRDU1NNYXRyaXguaCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorICAg
IGNzcy9XZWJLaXRNYXRyaXguaCBcCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5oIFwKICAgICBk
b20vQXR0ci5oIFwKICAgICBkb20vQXR0cmlidXRlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmM2NkMzdkLi5lODAxNjY0IDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjI5NjYsNiAr
MjI5NjYsNjMgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU1dlYktpdE1hdHJpeC5jcHAiCisJCQkJPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOYW1lPSJEZWJ1Z3xXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxl
Q29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGVDb25m
aWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2wK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Lz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxl
PgorICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0TWF0cml4LmgiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KKwor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5j
cHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMzM2MzMsNiArMzM2OTAsMTQg
QEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NNYXRyaXguaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRNYXRyaXguY3BwIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRNYXRyaXguaCIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAg
PC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAiCiAJCQkJPgpAQCAtNjUwODAsNiArNjUxNDUsNTggQEAKIAkJCQkJCS8+
CiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRNYXRyaXhDdXN0b20u
Y3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnfFdp
bjMyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZXxXaW4zMiIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8VG9vbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L0ZpbGVDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxGaWxlQ29uZmlndXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRv
b2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9GaWxlPgogCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCIKIAkJCQkJPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY3ODIxODIu
LmQwY2QxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTg5ODUsNiArODk4NSwxNSBAQAogCQk3N0VGNjJGMTEyRjlEQjc0MDBD
NzdCRDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVt
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc4OTIzRkE0MTQ0RTJFN0MwMDM4
NzAzRSAvKiBKU1dlYktpdE1hdHJpeEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYktpdE1hdHJpeEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTc4RjcxNDUzMTQ0RTE5RUEwMDEyM0Q2QyAvKiBXZWJLaXRNYXRyaXguY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0TWF0cml4LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzhGNzE0NTQxNDRFMTlFQTAwMTIzRDZDIC8q
IFdlYktpdE1hdHJpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRN
YXRyaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzhGNzE0NTUxNDRFMTlFQTAw
MTIzRDZDIC8qIFdlYktpdE1hdHJpeC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0
TWF0cml4LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzhGNzE5QkMxNDRFMjY2
QjAwMTIzRDZDIC8qIEpTV2ViS2l0TWF0cml4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEpTV2ViS2l0TWF0cml4LmNwcDsgcGF0aCA9IC4uLy4uL1dlYktpdEJ1aWxk
L1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE1hdHJpeC5jcHA7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNzhGNzE5QkQxNDRFMjY2QjAwMTIzRDZDIC8qIEpT
V2ViS2l0TWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViS2l0
TWF0cml4Lmg7IHBhdGggPSAuLi8uLi9XZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNXZWJLaXRNYXRyaXguaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owor
CQk3OEY3MTlDQTE0NEUyOUMyMDAxMjNENkMgLyogRE9NV2ViS2l0TWF0cml4LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERPTVdlYktpdE1hdHJpeC5oOyBwYXRoID0gLi4vLi4v
V2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdE1hdHJp
eC5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTc4RjcxOUNCMTQ0RTI5QzIwMDEy
M0Q2QyAvKiBET01XZWJLaXRNYXRyaXgubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBET01XZWJLaXRNYXRyaXgubW07IHBhdGggPSAuLi8uLi9XZWJLaXRCdWlsZC9S
ZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NV2ViS2l0TWF0cml4Lm1tOyBzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTc4RjcxOUNDMTQ0RTI5QzIwMDEyM0Q2QyAvKiBET01X
ZWJLaXRNYXRyaXhJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBE
T01XZWJLaXRNYXRyaXhJbnRlcm5hbC5oOyBwYXRoID0gLi4vLi4vV2ViS2l0QnVpbGQvUmVsZWFz
ZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdE1hdHJpeEludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpT
Q29tcG9zaXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NvbXBvc2l0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRp
b25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3Np
dGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzM4LDYgKzE1
NzQ3LDkgQEAKIAkJODU5NjdEQ0EwQUE4QkYwRjAwNUZFREVFIC8qIENTUyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzhGNzE5Q0ExNDRFMjlDMjAwMTIz
RDZDIC8qIERPTVdlYktpdE1hdHJpeC5oICovLAorCQkJCTc4RjcxOUNCMTQ0RTI5QzIwMDEyM0Q2
QyAvKiBET01XZWJLaXRNYXRyaXgubW0gKi8sCisJCQkJNzhGNzE5Q0MxNDRFMjlDMjAwMTIzRDZD
IC8qIERPTVdlYktpdE1hdHJpeEludGVybmFsLmggKi8sCiAJCQkJODU4QzM4QTEwQUE4RjIwNDAw
QjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLywKIAkJCQk4NThDMzhBMjBBQThGMjA0MDBCMTg3QTQg
LyogRE9NQ291bnRlci5tbSAqLywKIAkJCQk4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0QgLyogRE9N
Q1NTQ2hhcnNldFJ1bGUuaCAqLywKQEAgLTE4MTI1LDYgKzE4MTM3LDggQEAKIAkJQTgzQjc5MEUw
Q0NBRkY5NzAwMEIwODI1IC8qIENTUyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNzhGNzE5QkMxNDRFMjY2QjAwMTIzRDZDIC8qIEpTV2ViS2l0TWF0cml4
LmNwcCAqLywKKwkJCQk3OEY3MTlCRDE0NEUyNjZCMDAxMjNENkMgLyogSlNXZWJLaXRNYXRyaXgu
aCAqLywKIAkJCQlCQ0MwNjU4MzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCAq
LywKIAkJCQlCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8sCiAJ
CQkJQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovLApA
QCAtMTk1MzksNiArMTk1NTMsNyBAQAogCQlCQzRFREVGNzBDMDhGNDE0MDA3RURENDkgLyogQ3Vz
dG9tICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3ODky
M0ZBNDE0NEUyRTdDMDAzODcwM0UgLyogSlNXZWJLaXRNYXRyaXhDdXN0b20uY3BwICovLAogCQkJ
CUE4NUYyMjA4MTQzMDM3N0QwMDdDQzg4NCAvKiBKU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwICov
LAogCQkJCUJDMjc1Q0IyMTFDNUU4NUMwMEM5MjA2QyAvKiBKU0FycmF5QnVmZmVyQ3VzdG9tLmNw
cCAqLywKIAkJCQk4NjI0M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdI
ZWxwZXIuaCAqLywKQEAgLTIwNDk3LDYgKzIwNTEyLDkgQEAKIAkJRjUyM0QxODQwMkRFNDJFODAx
ODYzNUNBIC8qIGNzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJNzhGNzE0NTMxNDRFMTlFQTAwMTIzRDZDIC8qIFdlYktpdE1hdHJpeC5jcHAgKi8sCisJ
CQkJNzhGNzE0NTQxNDRFMTlFQTAwMTIzRDZDIC8qIFdlYktpdE1hdHJpeC5oICovLAorCQkJCTc4
RjcxNDU1MTQ0RTE5RUEwMDEyM0Q2QyAvKiBXZWJLaXRNYXRyaXguaWRsICovLAogCQkJCTkzQ0E0
QzlDMDlERjkzRkEwMERGODY3NyAvKiBtYWtldG9rZW5pemVyICovLAogCQkJCUE4MEU2Q0RBMEEx
OTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggKi8sCiAJCQkJOTMwNzA1QzcwOUUwQzk1RjAwQjE3
RkU0IC8qIENvdW50ZXIuaWRsICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggNTZmN2NjYS4uYTRhNDQzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0x
NTEsNiArMTUxLDcgQEAKICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNXZWJLaXRNYXRy
aXhDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRCYXNl
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAppbmRleCA3MDM1YjFkLi4wMjJkMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVk
ZSAiSlNVaW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2luY2x1ZGUg
IkpTV2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiSlNXZWJLaXRNYXRyaXguaCIKICNpbmNs
dWRlICJKU1dlYktpdFBvaW50LmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIkpTWFNMVFByb2Nlc3Nvci5oIgpAQCAtNTIyLDYgKzUyMywxMSBAQCBKU1ZhbHVlIEpT
RE9NV2luZG93Ojp3ZWJLaXRDU1NNYXRyaXgoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAg
IHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yPihl
eGVjLCB0aGlzKTsKIH0KKworSlNWYWx1ZSBKU0RPTVdpbmRvdzo6d2ViS2l0TWF0cml4KEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNXZWJL
aXRNYXRyaXhDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7Cit9CiAgCiBKU1ZhbHVlIEpTRE9NV2lu
ZG93OjphcnJheUJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE1hdHJpeEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdE1hdHJpeEN1c3RvbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FiN2U0NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0TWF0cml4Q3VzdG9tLmNwcApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dlYktpdE1hdHJp
eC5oIgorCisjaW5jbHVkZSAiV2ViS2l0TWF0cml4LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U1dlYktpdE1hdHJpeENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1dlYktpdE1hdHJpeChFeGVjU3Rh
dGUqIGV4ZWMpCit7CisgICAgSlNXZWJLaXRNYXRyaXhDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3Rv
ciA9IHN0YXRpY19jYXN0PEpTV2ViS2l0TWF0cml4Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUo
KSk7CisgICAgU3RyaW5nIHM7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAxKQor
ICAgICAgICBzID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4
ZWMpKTsKKyAgICAKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBSZWZQdHI8V2ViS2l0
TWF0cml4PiBtYXRyaXggPSBXZWJLaXRNYXRyaXg6OmNyZWF0ZShzLCBlYyk7CisgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9E
T01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgV2ViS2l0TWF0
cml4LCBtYXRyaXguZ2V0KCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdE1hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0TWF0cml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wMjY2ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdE1h
dHJpeC5jcHAKQEAgLTAsMCArMSwzMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViS2l0TWF0cml4LmgiCisKKyNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oIgorI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMu
aCIKKyNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3
b3Jkcy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGbG9hdDMyQXJy
YXkuaCIKKyNpbmNsdWRlICJGbG9hdDY0QXJyYXkuaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYktpdE1hdHJpeDo6V2ViS2l0TWF0cml4
KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtKQorICAgIDogbV9tYXRyaXgobSkKK3sKK30K
KworV2ViS2l0TWF0cml4OjpXZWJLaXRNYXRyaXgoY29uc3QgU3RyaW5nJiBzLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBzZXRNYXRyaXhWYWx1ZShzLCBlYyk7Cit9CisKK1dlYktpdE1hdHJp
eDo6V2ViS2l0TWF0cml4KGNvbnN0IEZsb2F0MzJBcnJheSYgYXJyYXkpCit7CisgICAgaWYgKGFy
cmF5Lmxlbmd0aCgpIDwgMTYpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWF0cml4LnNldE1h
dHJpeChhcnJheS5pdGVtKDApLCBhcnJheS5pdGVtKDEpLCBhcnJheS5pdGVtKDIpLCBhcnJheS5p
dGVtKDMpLAorICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5pdGVtKDQpLCBhcnJheS5pdGVt
KDUpLCBhcnJheS5pdGVtKDYpLCBhcnJheS5pdGVtKDcpLAorICAgICAgICAgICAgICAgICAgICAg
ICBhcnJheS5pdGVtKDgpLCBhcnJheS5pdGVtKDkpLCBhcnJheS5pdGVtKDEwKSwgYXJyYXkuaXRl
bSgxMSksCisgICAgICAgICAgICAgICAgICAgICAgIGFycmF5Lml0ZW0oMTIpLCBhcnJheS5pdGVt
KDEzKSwgYXJyYXkuaXRlbSgxNCksIGFycmF5Lml0ZW0oMTUpKTsKK30KKwordm9pZCBXZWJLaXRN
YXRyaXg6OnNldE1hdHJpeFZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRGVj
bGFyYXRpb24gPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CisgICAgaWYg
KENTU1BhcnNlcjo6cGFyc2VWYWx1ZShzdHlsZURlY2xhcmF0aW9uLmdldCgpLCBDU1NQcm9wZXJ0
eVdlYmtpdFRyYW5zZm9ybSwgc3RyaW5nLCB0cnVlLCB0cnVlKSkgeworICAgICAgICAvLyBDb252
ZXJ0IHRvIFRyYW5zZm9ybU9wZXJhdGlvbnMuIFRoaXMgY2FuIGZhaWwgaWYgYSBwcm9wZXJ0eQor
ICAgICAgICAvLyByZXF1aXJlcyBzdHlsZSAoaS5lLiwgcGFyYW0gdXNlcyAnZW1zJyBvciAnZXhz
JykKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IHN0eWxlRGVjbGFyYXRpb24tPmdl
dFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOworCisgICAgICAg
IC8vIENoZWNrIGZvciBhICJub25lIiBvciBlbXB0eSB0cmFuc2Zvcm0uIEluIHRoZXNlIGNhc2Vz
IHdlIGNhbiB1c2UgdGhlIGRlZmF1bHQgaWRlbnRpdHkgbWF0cml4LgorICAgICAgICBpZiAoIXZh
bHVlIHx8ICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIChzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKSktPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJh
dGlvbnM7CisgICAgICAgIGlmICghQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlVHJhbnNmb3JtT3Bl
cmF0aW9ucyh2YWx1ZS5nZXQoKSwgMCwgMCwgb3BlcmF0aW9ucykpIHsKKyAgICAgICAgICAgIGVj
ID0gU1lOVEFYX0VSUjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IC8vIENvbnZlcnQgdHJhbnNmb3JtIG9wZXJhdGlvbnMgdG8gYSBUcmFuc2Zvcm1hdGlvbk1hdHJp
eC4gVGhpcyBjYW4gZmFpbAorICAgICAgICAvLyBpZiBhIHBhcmFtIGhhcyBhIHBlcmNlbnRhZ2Ug
KCclJykKKyAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG9wZXJhdGlvbnMub3BlcmF0aW9ucygpLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICBpZiAob3BlcmF0aW9ucy5vcGVyYXRpb25zKClbaV0uZ2V0KCktPmFwcGx5KHQs
IEludFNpemUoMCwgMCkpKSB7CisgICAgICAgICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IC8vIHNldCB0aGUgbWF0cml4CisgICAgICAgIG1fbWF0cml4ID0gdDsKKyAgICB9IGVsc2UgaWYg
KCFzdHJpbmcuaXNFbXB0eSgpKSAvLyBUaGVyZSBpcyBzb21ldGhpbmcgdGhlcmUgYnV0IHBhcnNp
bmcgZmFpbGVkCisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKK30KKworV2ViS2l0TWF0cml4Ojp+
V2ViS2l0TWF0cml4KCkKK3sKK30KKwordm9pZCBXZWJLaXRNYXRyaXg6OnRvQXJyYXkoRmxvYXQz
MkFycmF5KiBhcnJheSkKK3sKKyAgICBpZiAoIWFycmF5IHx8IGFycmF5LT5sZW5ndGgoKSA8IDE2
KQorICAgICAgICByZXR1cm47CisKKyAgICBhcnJheS0+c2V0KDAsIG1fbWF0cml4Lm0xMSgpKTsK
KyAgICBhcnJheS0+c2V0KDEsIG1fbWF0cml4Lm0xMigpKTsKKyAgICBhcnJheS0+c2V0KDIsIG1f
bWF0cml4Lm0xMygpKTsKKyAgICBhcnJheS0+c2V0KDMsIG1fbWF0cml4Lm0xNCgpKTsKKyAgICBh
cnJheS0+c2V0KDQsIG1fbWF0cml4Lm0yMSgpKTsKKyAgICBhcnJheS0+c2V0KDUsIG1fbWF0cml4
Lm0yMigpKTsKKyAgICBhcnJheS0+c2V0KDYsIG1fbWF0cml4Lm0yMygpKTsKKyAgICBhcnJheS0+
c2V0KDcsIG1fbWF0cml4Lm0yNCgpKTsKKyAgICBhcnJheS0+c2V0KDgsIG1fbWF0cml4Lm0zMSgp
KTsKKyAgICBhcnJheS0+c2V0KDksIG1fbWF0cml4Lm0zMigpKTsKKyAgICBhcnJheS0+c2V0KDEw
LCBtX21hdHJpeC5tMzMoKSk7CisgICAgYXJyYXktPnNldCgxMSwgbV9tYXRyaXgubTM0KCkpOwor
ICAgIGFycmF5LT5zZXQoMTIsIG1fbWF0cml4Lm00MSgpKTsKKyAgICBhcnJheS0+c2V0KDEzLCBt
X21hdHJpeC5tNDIoKSk7CisgICAgYXJyYXktPnNldCgxNCwgbV9tYXRyaXgubTQzKCkpOworICAg
IGFycmF5LT5zZXQoMTUsIG1fbWF0cml4Lm00NCgpKTsKK30KKwordm9pZCBXZWJLaXRNYXRyaXg6
OnRvQXJyYXkoRmxvYXQ2NEFycmF5KiBhcnJheSkKK3sKKyAgICBpZiAoIWFycmF5IHx8IGFycmF5
LT5sZW5ndGgoKSA8IDE2KQorICAgICAgICByZXR1cm47CisKKyAgICBhcnJheS0+c2V0KDAsIG1f
bWF0cml4Lm0xMSgpKTsKKyAgICBhcnJheS0+c2V0KDEsIG1fbWF0cml4Lm0xMigpKTsKKyAgICBh
cnJheS0+c2V0KDIsIG1fbWF0cml4Lm0xMygpKTsKKyAgICBhcnJheS0+c2V0KDMsIG1fbWF0cml4
Lm0xNCgpKTsKKyAgICBhcnJheS0+c2V0KDQsIG1fbWF0cml4Lm0yMSgpKTsKKyAgICBhcnJheS0+
c2V0KDUsIG1fbWF0cml4Lm0yMigpKTsKKyAgICBhcnJheS0+c2V0KDYsIG1fbWF0cml4Lm0yMygp
KTsKKyAgICBhcnJheS0+c2V0KDcsIG1fbWF0cml4Lm0yNCgpKTsKKyAgICBhcnJheS0+c2V0KDgs
IG1fbWF0cml4Lm0zMSgpKTsKKyAgICBhcnJheS0+c2V0KDksIG1fbWF0cml4Lm0zMigpKTsKKyAg
ICBhcnJheS0+c2V0KDEwLCBtX21hdHJpeC5tMzMoKSk7CisgICAgYXJyYXktPnNldCgxMSwgbV9t
YXRyaXgubTM0KCkpOworICAgIGFycmF5LT5zZXQoMTIsIG1fbWF0cml4Lm00MSgpKTsKKyAgICBh
cnJheS0+c2V0KDEzLCBtX21hdHJpeC5tNDIoKSk7CisgICAgYXJyYXktPnNldCgxNCwgbV9tYXRy
aXgubTQzKCkpOworICAgIGFycmF5LT5zZXQoMTUsIG1fbWF0cml4Lm00NCgpKTsKK30KKworUGFz
c1JlZlB0cjxXZWJLaXRNYXRyaXg+IFdlYktpdE1hdHJpeDo6bXVsdGlwbGllZEJ5KFdlYktpdE1h
dHJpeCogc2Vjb25kTWF0cml4KSBjb25zdAoreworICAgIGlmICghc2Vjb25kTWF0cml4KQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBXZWJLaXRNYXRyaXg6OmNyZWF0ZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeChtX21hdHJpeCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LT5tX21hdHJpeCkp
OworfQorCit2b2lkIFdlYktpdE1hdHJpeDo6bXVsdGlwbHkoV2ViS2l0TWF0cml4KiBzZWNvbmRN
YXRyaXgpCit7CisgICAgaWYgKCFzZWNvbmRNYXRyaXgpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fbWF0cml4Lm11bHRpcGx5KHNlY29uZE1hdHJpeC0+bV9tYXRyaXgpOworfQorCitQYXNzUmVm
UHRyPFdlYktpdE1hdHJpeD4gV2ViS2l0TWF0cml4OjppbnZlcnNlKEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAoreworICAgIGlmICghbV9tYXRyaXguaXNJbnZlcnRpYmxlKCkpIHsKKyAgICAgICAg
ZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg
cmV0dXJuIFdlYktpdE1hdHJpeDo6Y3JlYXRlKG1fbWF0cml4LmludmVyc2UoKSk7Cit9CisKK1Bh
c3NSZWZQdHI8V2ViS2l0TWF0cml4PiBXZWJLaXRNYXRyaXg6OnRyYW5zbGF0ZWRCeShkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSB6KSBjb25zdAoreworICAgIGlmIChpc25hbih4KSkKKyAgICAg
ICAgeCA9IDA7CisgICAgaWYgKGlzbmFuKHkpKQorICAgICAgICB5ID0gMDsKKyAgICBpZiAoaXNu
YW4oeikpCisgICAgICAgIHogPSAwOworICAgIHJldHVybiBXZWJLaXRNYXRyaXg6OmNyZWF0ZShU
cmFuc2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkudHJhbnNsYXRlM2QoeCwgeSwgeikpOworfQor
Cit2b2lkIFdlYktpdE1hdHJpeDo6dHJhbnNsYXRlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91Ymxl
IHopCit7CisgICAgaWYgKGlzbmFuKHgpKQorICAgICAgICB4ID0gMDsKKyAgICBpZiAoaXNuYW4o
eSkpCisgICAgICAgIHkgPSAwOworICAgIGlmIChpc25hbih6KSkKKyAgICAgICAgeiA9IDA7CisK
KyAgICBtX21hdHJpeC50cmFuc2xhdGUzZCh4LCB5LCB6KTsKK30KKworUGFzc1JlZlB0cjxXZWJL
aXRNYXRyaXg+IFdlYktpdE1hdHJpeDo6c2NhbGVkQnkoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNj
YWxlWSwgZG91YmxlIHNjYWxlWikgY29uc3QKK3sKKyAgICBpZiAoaXNuYW4oc2NhbGVYKSkKKyAg
ICAgICAgc2NhbGVYID0gMTsKKyAgICBpZiAoaXNuYW4oc2NhbGVZKSkKKyAgICAgICAgc2NhbGVZ
ID0gc2NhbGVYOworICAgIGlmIChpc25hbihzY2FsZVopKQorICAgICAgICBzY2FsZVogPSAxOwor
ICAgIHJldHVybiBXZWJLaXRNYXRyaXg6OmNyZWF0ZShUcmFuc2Zvcm1hdGlvbk1hdHJpeChtX21h
dHJpeCkuc2NhbGUzZChzY2FsZVgsIHNjYWxlWSwgc2NhbGVaKSk7Cit9CisKK3ZvaWQgV2ViS2l0
TWF0cml4OjpzY2FsZShkb3VibGUgc2NhbGVYLCBkb3VibGUgc2NhbGVZLCBkb3VibGUgc2NhbGVa
KQoreworICAgIGlmIChpc25hbihzY2FsZVgpKQorICAgICAgICBzY2FsZVggPSAxOworICAgIGlm
IChpc25hbihzY2FsZVkpKQorICAgICAgICBzY2FsZVkgPSBzY2FsZVg7CisgICAgaWYgKGlzbmFu
KHNjYWxlWikpCisgICAgICAgIHNjYWxlWiA9IDE7CisKKyAgICBtX21hdHJpeC5zY2FsZTNkKHNj
YWxlWCwgc2NhbGVZLCBzY2FsZVopOworfQorCitQYXNzUmVmUHRyPFdlYktpdE1hdHJpeD4gV2Vi
S2l0TWF0cml4Ojpyb3RhdGVkQnkoZG91YmxlIHJvdFgsIGRvdWJsZSByb3RZLCBkb3VibGUgcm90
WikgY29uc3QKK3sKKyAgICBpZiAoaXNuYW4ocm90WCkpCisgICAgICAgIHJvdFggPSAwOworCisg
ICAgaWYgKGlzbmFuKHJvdFkpICYmIGlzbmFuKHJvdFopKSB7CisgICAgICAgIHJvdFogPSByb3RY
OworICAgICAgICByb3RYID0gMDsKKyAgICAgICAgcm90WSA9IDA7CisgICAgfQorCisgICAgaWYg
KGlzbmFuKHJvdFkpKQorICAgICAgICByb3RZID0gMDsKKyAgICBpZiAoaXNuYW4ocm90WikpCisg
ICAgICAgIHJvdFogPSAwOworICAgIHJldHVybiBXZWJLaXRNYXRyaXg6OmNyZWF0ZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeChtX21hdHJpeCkucm90YXRlM2Qocm90WCwgcm90WSwgcm90WikpOworfQor
Cit2b2lkIFdlYktpdE1hdHJpeDo6cm90YXRlKGRvdWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91
YmxlIHJvdFopCit7CisgICAgaWYgKGlzbmFuKHJvdFgpKQorICAgICAgICByb3RYID0gMDsKKwor
ICAgIGlmIChpc25hbihyb3RZKSAmJiBpc25hbihyb3RaKSkgeworICAgICAgICByb3RaID0gcm90
WDsKKyAgICAgICAgcm90WCA9IDA7CisgICAgICAgIHJvdFkgPSAwOworICAgIH0KKworICAgIGlm
IChpc25hbihyb3RZKSkKKyAgICAgICAgcm90WSA9IDA7CisgICAgaWYgKGlzbmFuKHJvdFopKQor
ICAgICAgICByb3RaID0gMDsKKyAgICBtX21hdHJpeC5yb3RhdGUzZChyb3RYLCByb3RZLCByb3Ra
KTsKK30KKworUGFzc1JlZlB0cjxXZWJLaXRNYXRyaXg+IFdlYktpdE1hdHJpeDo6cm90YXRlZEF4
aXNBbmdsZUJ5KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkgY29u
c3QKK3sKKyAgICBpZiAoaXNuYW4oeCkpCisgICAgICAgIHggPSAwOworICAgIGlmIChpc25hbih5
KSkKKyAgICAgICAgeSA9IDA7CisgICAgaWYgKGlzbmFuKHopKQorICAgICAgICB6ID0gMDsKKyAg
ICBpZiAoaXNuYW4oYW5nbGUpKQorICAgICAgICBhbmdsZSA9IDA7CisgICAgaWYgKCF4ICYmICF5
ICYmICF6KQorICAgICAgICB6ID0gMTsKKyAgICByZXR1cm4gV2ViS2l0TWF0cml4OjpjcmVhdGUo
VHJhbnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLnJvdGF0ZTNkKHgsIHksIHosIGFuZ2xlKSk7
Cit9CisKK3ZvaWQgV2ViS2l0TWF0cml4Ojpyb3RhdGVBeGlzQW5nbGUoZG91YmxlIHgsIGRvdWJs
ZSB5LCBkb3VibGUgeiwgZG91YmxlIGFuZ2xlKQoreworICAgIGlmIChpc25hbih4KSkKKyAgICAg
ICAgeCA9IDA7CisgICAgaWYgKGlzbmFuKHkpKQorICAgICAgICB5ID0gMDsKKyAgICBpZiAoaXNu
YW4oeikpCisgICAgICAgIHogPSAwOworICAgIGlmIChpc25hbihhbmdsZSkpCisgICAgICAgIGFu
Z2xlID0gMDsKKyAgICBpZiAoIXggJiYgIXkgJiYgIXopCisgICAgICAgIHogPSAxOworICAgIG1f
bWF0cml4LnJvdGF0ZTNkKHgsIHksIHosIGFuZ2xlKTsKK30KKworUGFzc1JlZlB0cjxXZWJLaXRN
YXRyaXg+IFdlYktpdE1hdHJpeDo6c2tld2VkWEJ5KGRvdWJsZSBhbmdsZSkgY29uc3QKK3sKKyAg
ICBpZiAoaXNuYW4oYW5nbGUpKQorICAgICAgICBhbmdsZSA9IDA7CisgICAgcmV0dXJuIFdlYktp
dE1hdHJpeDo6Y3JlYXRlKFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KS5za2V3WChhbmds
ZSkpOworfQorCit2b2lkIFdlYktpdE1hdHJpeDo6c2tld1goZG91YmxlIGFuZ2xlKQoreworICAg
IGlmIChpc25hbihhbmdsZSkpCisgICAgICAgIGFuZ2xlID0gMDsKKyAgICBtX21hdHJpeC5za2V3
WChhbmdsZSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViS2l0TWF0cml4PiBXZWJLaXRNYXRyaXg6OnNr
ZXdlZFlCeShkb3VibGUgYW5nbGUpIGNvbnN0Cit7CisgICAgaWYgKGlzbmFuKGFuZ2xlKSkKKyAg
ICAgICAgYW5nbGUgPSAwOworICAgIHJldHVybiBXZWJLaXRNYXRyaXg6OmNyZWF0ZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeChtX21hdHJpeCkuc2tld1koYW5nbGUpKTsKK30KKwordm9pZCBXZWJLaXRN
YXRyaXg6OnNrZXdZKGRvdWJsZSBhbmdsZSkKK3sKKyAgICBpZiAoaXNuYW4oYW5nbGUpKQorICAg
ICAgICBhbmdsZSA9IDA7CisgICAgbV9tYXRyaXguc2tld1koYW5nbGUpOworfQorCitTdHJpbmcg
V2ViS2l0TWF0cml4Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgLy8gRklYTUUgLSBOZWVkIHRv
IGVuc3VyZSB2YWxpZCBDU1MgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIChodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NzQpCisgICAgaWYgKG1fbWF0cml4LmlzQWZmaW5l
KCkpCisgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgibWF0cml4KCVmLCAlZiwgJWYsICVm
LCAlZiwgJWYpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9tYXRyaXguYSgp
LCBtX21hdHJpeC5iKCksIG1fbWF0cml4LmMoKSwgbV9tYXRyaXguZCgpLCBtX21hdHJpeC5lKCks
IG1fbWF0cml4LmYoKSk7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJtYXRyaXgzZCglZiwg
JWYsICVmLCAlZiwgJWYsICVmLCAlZiwgJWYsICVmLCAlZiwgJWYsICVmLCAlZiwgJWYsICVmLCAl
ZikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWF0cml4Lm0xMSgpLCBtX21hdHJp
eC5tMTIoKSwgbV9tYXRyaXgubTEzKCksIG1fbWF0cml4Lm0xNCgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fbWF0cml4Lm0yMSgpLCBtX21hdHJpeC5tMjIoKSwgbV9tYXRyaXgubTIz
KCksIG1fbWF0cml4Lm0yNCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWF0cml4
Lm0zMSgpLCBtX21hdHJpeC5tMzIoKSwgbV9tYXRyaXgubTMzKCksIG1fbWF0cml4Lm0zNCgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbWF0cml4Lm00MSgpLCBtX21hdHJpeC5tNDIo
KSwgbV9tYXRyaXgubTQzKCksIG1fbWF0cml4Lm00NCgpKTsKK30KKworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0TWF0cml4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0TWF0cml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDY4M2IyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRNYXRyaXguaApAQCAtMCwwICsxLDIxNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViS2l0TWF0
cml4X2gKKyNkZWZpbmUgV2ViS2l0TWF0cml4X2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9u
TWF0cml4LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZsb2F0MzJBcnJheTsKK2NsYXNzIEZsb2F0NjRBcnJheTsKKworY2xhc3MgV2Vi
S2l0TWF0cml4IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0TWF0cml4PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0TWF0cml4PiBjcmVhdGUoY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIG0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktp
dE1hdHJpeChtKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0TWF0cml4
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzLCBFeGNlcHRpb25Db2RlJiBlYykKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TWF0cml4KHMsIGVjKSk7CisgICAgfQorCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0TWF0cml4PiBjcmVhdGUoY29uc3QgRmxvYXQzMkFy
cmF5JiBhcnJheSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TWF0
cml4KGFycmF5KSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViS2l0TWF0cml4KCk7CisKKyAg
ICB2b2lkIHNldE1hdHJpeFZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwor
ICAgIGRvdWJsZSBhKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXguYSgpOyB9CisgICAgZG91Ymxl
IGIoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5iKCk7IH0KKyAgICBkb3VibGUgYygpIGNvbnN0
IHsgcmV0dXJuIG1fbWF0cml4LmMoKTsgfQorICAgIGRvdWJsZSBkKCkgY29uc3QgeyByZXR1cm4g
bV9tYXRyaXguZCgpOyB9CisgICAgZG91YmxlIGUoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5l
KCk7IH0KKyAgICBkb3VibGUgZigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmYoKTsgfQorCisg
ICAgdm9pZCBzZXRBKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldEEoZik7IH0KKyAgICB2b2lkIHNl
dEIoZG91YmxlIGYpIHsgbV9tYXRyaXguc2V0QihmKTsgfQorICAgIHZvaWQgc2V0Qyhkb3VibGUg
ZikgeyBtX21hdHJpeC5zZXRDKGYpOyB9CisgICAgdm9pZCBzZXREKGRvdWJsZSBmKSB7IG1fbWF0
cml4LnNldEQoZik7IH0KKyAgICB2b2lkIHNldEUoZG91YmxlIGYpIHsgbV9tYXRyaXguc2V0RShm
KTsgfQorICAgIHZvaWQgc2V0Rihkb3VibGUgZikgeyBtX21hdHJpeC5zZXRGKGYpOyB9CisKKyAg
ICBkb3VibGUgbTExKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTExKCk7IH0KKyAgICBkb3Vi
bGUgbTEyKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTEyKCk7IH0KKyAgICBkb3VibGUgbTEz
KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTEzKCk7IH0KKyAgICBkb3VibGUgbTE0KCkgY29u
c3QgeyByZXR1cm4gbV9tYXRyaXgubTE0KCk7IH0KKyAgICBkb3VibGUgbTIxKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXRyaXgubTIxKCk7IH0KKyAgICBkb3VibGUgbTIyKCkgY29uc3QgeyByZXR1cm4g
bV9tYXRyaXgubTIyKCk7IH0KKyAgICBkb3VibGUgbTIzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRy
aXgubTIzKCk7IH0KKyAgICBkb3VibGUgbTI0KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTI0
KCk7IH0KKyAgICBkb3VibGUgbTMxKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTMxKCk7IH0K
KyAgICBkb3VibGUgbTMyKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTMyKCk7IH0KKyAgICBk
b3VibGUgbTMzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTMzKCk7IH0KKyAgICBkb3VibGUg
bTM0KCkgY29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTM0KCk7IH0KKyAgICBkb3VibGUgbTQxKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXRyaXgubTQxKCk7IH0KKyAgICBkb3VibGUgbTQyKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXRyaXgubTQyKCk7IH0KKyAgICBkb3VibGUgbTQzKCkgY29uc3QgeyByZXR1
cm4gbV9tYXRyaXgubTQzKCk7IH0KKyAgICBkb3VibGUgbTQ0KCkgY29uc3QgeyByZXR1cm4gbV9t
YXRyaXgubTQ0KCk7IH0KKworICAgIHZvaWQgc2V0TTExKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNl
dE0xMShmKTsgfQorICAgIHZvaWQgc2V0TTEyKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0xMihm
KTsgfQorICAgIHZvaWQgc2V0TTEzKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0xMyhmKTsgfQor
ICAgIHZvaWQgc2V0TTE0KGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0xNChmKTsgfQorICAgIHZv
aWQgc2V0TTIxKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0yMShmKTsgfQorICAgIHZvaWQgc2V0
TTIyKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0yMihmKTsgfQorICAgIHZvaWQgc2V0TTIzKGRv
dWJsZSBmKSB7IG1fbWF0cml4LnNldE0yMyhmKTsgfQorICAgIHZvaWQgc2V0TTI0KGRvdWJsZSBm
KSB7IG1fbWF0cml4LnNldE0yNChmKTsgfQorICAgIHZvaWQgc2V0TTMxKGRvdWJsZSBmKSB7IG1f
bWF0cml4LnNldE0zMShmKTsgfQorICAgIHZvaWQgc2V0TTMyKGRvdWJsZSBmKSB7IG1fbWF0cml4
LnNldE0zMihmKTsgfQorICAgIHZvaWQgc2V0TTMzKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0z
MyhmKTsgfQorICAgIHZvaWQgc2V0TTM0KGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE0zNChmKTsg
fQorICAgIHZvaWQgc2V0TTQxKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE00MShmKTsgfQorICAg
IHZvaWQgc2V0TTQyKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE00MihmKTsgfQorICAgIHZvaWQg
c2V0TTQzKGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE00MyhmKTsgfQorICAgIHZvaWQgc2V0TTQ0
KGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE00NChmKTsgfQorCisgICAgLy8gQ29weSB0aGUgbWF0
cml4IGVsZW1lbnRzIGZvciBhIHNpbmdsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAg
ICB2b2lkIHRvQXJyYXkoRmxvYXQzMkFycmF5Kik7CisgICAgLy8gQ29weSB0aGUgbWF0cml4IGVs
ZW1lbnRzIGZvciBhIGRvdWJsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICB2b2lk
IHRvQXJyYXkoRmxvYXQ2NEFycmF5Kik7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIG1hdGggZnVu
Y3Rpb24gcmV0dXJuIGEgbmV3IG1hdHJpeCB3aXRoIHRoZQorICAgIC8vIHNwZWNpZmllZCBvcGVy
YXRpb24gYXBwbGllZC4gVGhlIHRoaXMgdmFsdWUgaXMgbm90IG1vZGlmaWVkLgorCisgICAgLy8g
TXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vjb25kTWF0cml4LCBvbiB0aGUgcmlnaHQgKHJlc3Vs
dCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCisgICAgUGFzc1JlZlB0cjxXZWJLaXRNYXRyaXg+IG11
bHRpcGxpZWRCeShXZWJLaXRNYXRyaXgqIHNlY29uZE1hdHJpeCkgY29uc3Q7CisKKyAgICAvLyBN
dWx0aXBseSBpdHNlbGYgYnkgYSBzZWNvbmRNYXRyaXgsIG9uIHRoZSByaWdodCAodGhpcyA9IHRo
aXMgKiBzZWNvbmRNYXRyaXgpCisgICAgdm9pZCBtdWx0aXBseShXZWJLaXRNYXRyaXgqIHNlY29u
ZE1hdHJpeCk7CisKKyAgICAvLyBSZXR1cm4gdGhlIGludmVyc2Ugb2YgdGhpcyBtYXRyaXguIFRo
cm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUgbWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlCisgICAgUGFz
c1JlZlB0cjxXZWJLaXRNYXRyaXg+IGludmVyc2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworCisg
ICAgLy8gUmV0dXJuIHRoaXMgbWF0cml4IHRyYW5zbGF0ZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMu
CisgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMgYWxsb3dz
IHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKKyAgICAvLyBPcGVyYXRpb24g
aXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBh
IG1hdHJpeCB3aXRoCisgICAgLy8gdGhlIHRyYW5zbGF0aW9uIHZhbHVlcyBvbiB0aGUgbGVmdCAo
cmVzdWx0ID0gdHJhbnNsYXRpb24oeCx5LHopICogdGhpcykKKyAgICBQYXNzUmVmUHRyPFdlYktp
dE1hdHJpeD4gdHJhbnNsYXRlZEJ5KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopIGNvbnN0
OworCisgICAgLy8gVHJhbnNsYXRlIGl0c2VsZiB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcy4KKyAg
ICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4gVGhpcyBhbGxvd3MgdGhl
IDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucworICAgIC8vIE9wZXJhdGlvbiBpcyBw
ZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0
cml4IHdpdGgKKyAgICAvLyB0aGUgdHJhbnNsYXRpb24gdmFsdWVzIG9uIHRoZSBsZWZ0ICh0aGlz
ID0gdHJhbnNsYXRpb24oeCx5LHopICogdGhpcykKKyAgICB2b2lkIHRyYW5zbGF0ZShkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSB6KTsKKworICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXggc2Nh
bGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgorICAgIC8vIFBhc3Npbmcgc2NhbGVYIG9yIHNjYWxl
WiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNzaW5nIHNjYWxlWSBvZiBOYU4KKyAg
ICAvLyBtYWtlcyBpdCB0aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3Jt
IHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKKyAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVk
IGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRo
CisgICAgLy8gdGhlIHNjYWxlIHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gc2NhbGUoeCx5
LHopICogdGhpcykKKyAgICBQYXNzUmVmUHRyPFdlYktpdE1hdHJpeD4gc2NhbGVkQnkoZG91Ymxl
IHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91YmxlIHNjYWxlWikgY29uc3Q7CisKKyAgICAvLyBT
Y2FsZSBpdHNlbGYgdXNpbmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgLy8gUGFzc2luZyBzY2Fs
ZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFsdWUgb2YgMSwgYnV0IHBhc3Npbmcgc2NhbGVZ
IG9mIE5hTgorICAgIC8vIG1ha2VzIGl0IHRoZSBzYW1lIGFzIHNjYWxlWC4gVGhpcyBhbGxvd3Mg
dGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucworICAgIC8vIE9wZXJhdGlvbiBp
cyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEg
bWF0cml4IHdpdGgKKyAgICAvLyB0aGUgc2NhbGUgdmFsdWVzIG9uIHRoZSBsZWZ0ICh0aGlzID0g
c2NhbGUoeCx5LHopICogdGhpcykKKyAgICB2b2lkIHNjYWxlKGRvdWJsZSBzY2FsZVgsIGRvdWJs
ZSBzY2FsZVksIGRvdWJsZSBzY2FsZVopOworCisgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCBy
b3RhdGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgorICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJl
IE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgor
ICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlvbiB2YWx1ZSBvZiAwIGZvciBhbnkgcGFzc2Vk
IE5hTi4KKyAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBt
YXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCisgICAgLy8gdGhlIHJvdGF0aW9u
IHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gcm90YXRpb24oeCx5LHopICogdGhpcykKKyAg
ICBQYXNzUmVmUHRyPFdlYktpdE1hdHJpeD4gcm90YXRlZEJ5KGRvdWJsZSByb3RYLCBkb3VibGUg
cm90WSwgZG91YmxlIHJvdFopIGNvbnN0OworCisgICAgLy8gUm90YXRlIGl0c2VsZiB1c2luZyB0
aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4sIHJvdGF0
ZSBhYm91dCBaIChyb3RYPTAsIHJvdGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KKyAgICAvLyBPdGhl
cndpc2UgdXNlIGEgcm90YXRpb24gdmFsdWUgb2YgMCBmb3IgYW55IHBhc3NlZCBOYU4uCisgICAg
Ly8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11
bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24g
dGhlIGxlZnQgKHRoaXMgPSByb3RhdGlvbih4LHkseikgKiB0aGlzKQorICAgIHZvaWQgcm90YXRl
KGRvdWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91YmxlIHJvdFopOworCisgICAgLy8gUmV0dXJu
cyB0aGlzIG1hdHJpeCByb3RhdGVkIGFib3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2Vk
IGFuZ2xlLgorICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0
aGUgYXhpcyBpcyAoMCwwLDApIHVzZSBhIHZhbHVlCisgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZv
cm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXgg
d2l0aAorICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3VsdCA9IHJv
dGF0aW9uKHgseSx6LGFuZ2xlKSAqIHRoaXMpCisgICAgUGFzc1JlZlB0cjxXZWJLaXRNYXRyaXg+
IHJvdGF0ZWRBeGlzQW5nbGVCeShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUg
YW5nbGUpIGNvbnN0OworCisgICAgLy8gUm90YXRlIGl0c2VsZiB1c2luZyB0aGUgcGFzc2VkIGF4
aXMgYnkgdGhlIHBhc3NlZCBhbmdsZS4KKyAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEg
dmFsdWUgb2YgMC4gSWYgdGhlIGF4aXMgaXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQorICAgIC8vIE9w
ZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBs
aWVkIGJ5IGEgbWF0cml4IHdpdGgKKyAgICAvLyB0aGUgcm90YXRpb24gdmFsdWVzIG9uIHRoZSBs
ZWZ0ICh0aGlzID0gcm90YXRpb24oeCx5LHosYW5nbGUpICogdGhpcykKKyAgICB2b2lkIHJvdGF0
ZUF4aXNBbmdsZShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUgYW5nbGUpOwor
CisgICAgLy8gUmV0dXJuIHRoaXMgbWF0cml4IHNrZXdlZCBhbG9uZyB0aGUgWCBheGlzIGJ5IHRo
ZSBwYXNzZWQgdmFsdWVzLgorICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBv
ZiAwLgorICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1h
dHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKKyAgICAvLyB0aGUgc2tldyB2YWx1
ZXMgb24gdGhlIGxlZnQgKHJlc3VsdCA9IHNrZXdYKGFuZ2xlKSAqIHRoaXMpCisgICAgUGFzc1Jl
ZlB0cjxXZWJLaXRNYXRyaXg+IHNrZXdlZFhCeShkb3VibGUgYW5nbGUpIGNvbnN0OworCisgICAg
Ly8gU2tldyBpdHNlbGYgYWxvbmcgdGhlIFggYXhpcyB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcy4K
KyAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4KKyAgICAvLyBPcGVy
YXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGll
ZCBieSBhIG1hdHJpeCB3aXRoCisgICAgLy8gdGhlIHNrZXcgdmFsdWVzIG9uIHRoZSBsZWZ0ICh0
aGlzID0gc2tld1goYW5nbGUpICogdGhpcykKKyAgICB2b2lkIHNrZXdYKGRvdWJsZSBhbmdsZSk7
CisKKyAgICAvLyBSZXR1cm4gdGhpcyBtYXRyaXggc2tld2VkIGFsb25nIHRoZSBZIGF4aXMgYnkg
dGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVl
IG9mIDAuCisgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMg
bWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSBza2V3IHZh
bHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gc2tld1koYW5nbGUpICogdGhpcykKKyAgICBQYXNz
UmVmUHRyPFdlYktpdE1hdHJpeD4gc2tld2VkWUJ5KGRvdWJsZSBhbmdsZSkgY29uc3Q7CisKKyAg
ICAvLyBTa2V3IGl0c2VsZiBhbG9uZyB0aGUgWSBheGlzIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVz
LgorICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgorICAgIC8vIE9w
ZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0aXBs
aWVkIGJ5IGEgbWF0cml4IHdpdGgKKyAgICAvLyB0aGUgc2tldyB2YWx1ZXMgb24gdGhlIGxlZnQg
KHRoaXMgPSBza2V3WShhbmdsZSkgKiB0aGlzKQorICAgIHZvaWQgc2tld1koZG91YmxlIGFuZ2xl
KTsKKworICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0oKSBjb25zdCB7
IHJldHVybiBtX21hdHJpeDsgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKK3By
b3RlY3RlZDoKKyAgICBXZWJLaXRNYXRyaXgoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsK
KyAgICBXZWJLaXRNYXRyaXgoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFdl
YktpdE1hdHJpeChjb25zdCBGbG9hdDMyQXJyYXkmKTsKKworICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IG1fbWF0cml4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
V2ViS2l0TWF0cml4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRNYXRy
aXguaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdE1hdHJpeC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI1MDgwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRNYXRyaXguaWRsCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
bW9kdWxlIGNzcyB7CisKKyAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCA/OgorICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEpTQ3VzdG9tQ29u
c3RydWN0b3IsCisgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAorICAgICAgICBDb25z
dHJ1Y3RvcihpbiBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFsdWVdIERPTVN0cmluZyBjc3NWYWx1
ZSksCisgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAorICAgIF0gV2ViS2l0TWF0
cml4IHsKKworICAgICAgICAvLyBUaGVzZSBhdHRyaWJ1dGVzIGFyZSBzaW1wbGUgYWxpYXNlcyBm
b3IgY2VydGFpbiBlbGVtZW50cyBvZiB0aGUgNHg0IG1hdHJpeAorICAgICAgICBhdHRyaWJ1dGUg
ZG91YmxlIGE7IC8vIGFsaWFzIGZvciBtMTEKKyAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBiOyAv
LyBhbGlhcyBmb3IgbTEyCisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgYzsgLy8gYWxpYXMgZm9y
IG0yMQorICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGQ7IC8vIGFsaWFzIGZvciBtMjIKKyAgICAg
ICAgYXR0cmlidXRlIGRvdWJsZSBlOyAvLyBhbGlhcyBmb3IgbTQxCisgICAgICAgIGF0dHJpYnV0
ZSBkb3VibGUgZjsgLy8gYWxpYXMgZm9yIG00MgorCisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUg
bTExOworICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIG0xMjsKKyAgICAgICAgYXR0cmlidXRlIGRv
dWJsZSBtMTM7CisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgbTE0OworICAgICAgICBhdHRyaWJ1
dGUgZG91YmxlIG0yMTsKKyAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBtMjI7CisgICAgICAgIGF0
dHJpYnV0ZSBkb3VibGUgbTIzOworICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIG0yNDsKKyAgICAg
ICAgYXR0cmlidXRlIGRvdWJsZSBtMzE7CisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgbTMyOwor
ICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIG0zMzsKKyAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBt
MzQ7CisgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgbTQxOworICAgICAgICBhdHRyaWJ1dGUgZG91
YmxlIG00MjsKKyAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBtNDM7CisgICAgICAgIGF0dHJpYnV0
ZSBkb3VibGUgbTQ0OworCisgICAgICAgIHZvaWQgc2V0TWF0cml4VmFsdWUoaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgc3RyaW5nKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisKKyAgICAgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1lbnRzIGZvciBhIHNpbmds
ZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICAgICAgdm9pZCB0b0FycmF5KGluIEZs
b2F0MzJBcnJheSBhcnJheSk7CisgICAgICAgIC8vIENvcHkgdGhlIG1hdHJpeCBlbGVtZW50cyBm
b3IgYSBkb3VibGUgcHJlY2lzaW9uIGZsb2F0IHBvaW50IGFycmF5CisgICAgICAgIHZvaWQgdG9B
cnJheShpbiBGbG9hdDY0QXJyYXkgYXJyYXkpOworCisgICAgICAgIC8vIE11bHRpcGx5IHRoaXMg
bWF0cml4IGJ5IHNlY29uZE1hdHJpeCwgb24gdGhlIHJpZ2h0IChyZXN1bHQgPSB0aGlzICogc2Vj
b25kTWF0cml4KQorICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRNYXRyaXggbXVsdGlwbGllZEJ5
KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gV2ViS2l0TWF0cml4IHNlY29uZE1h
dHJpeCk7CisKKyAgICAgICAgLy8gTXVsdGlwbHkgaXRzZWxmIGJ5IGEgc2Vjb25kTWF0cml4LCBv
biB0aGUgcmlnaHQgKHRoaXMgPSB0aGlzICogc2Vjb25kTWF0cml4KQorICAgICAgICB2b2lkIG11
bHRpcGx5KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gV2ViS2l0TWF0cml4IHNl
Y29uZE1hdHJpeCk7CisKKyAgICAgICAgLy8gUmV0dXJuIHRoZSBpbnZlcnNlIG9mIHRoaXMgbWF0
cml4LiBUaHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIG1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZQor
ICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRNYXRyaXggaW52ZXJzZSgpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKworICAgICAgICAvLyBSZXR1cm4gdGhpcyBtYXRyaXggdHJhbnNsYXRlZCBieSB0
aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZh
bHVlIG9mIDAuIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlv
bnMKKyAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0TWF0cml4IHRyYW5zbGF0ZWRCeShpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSB4LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gZG91YmxlIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgeik7CisKKyAg
ICAgICAgLy8gVHJhbnNsYXRlIGl0c2VsZiB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAg
ICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMgYWxsb3dzIHRo
ZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKKyAgICAgICAgdm9pZCB0cmFuc2xh
dGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgeCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUg
eSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBkb3VibGUgeik7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCBzY2FsZWQg
YnkgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgICAgIC8vIFBhc3Npbmcgc2NhbGVYIG9yIHNjYWxl
WiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNzaW5nIHNjYWxlWSBvZiBOYU4KKyAg
ICAgICAgLy8gbWFrZXMgaXQgdGhlIHNhbWUgYXMgc2NhbGVYLiBUaGlzIGFsbG93cyB0aGUgM0Qg
Zm9ybSB0byB1c2VkIGZvciAyRCBvcGVyYXRpb25zCisgICAgICAgIFtJbW11dGFibGVdIFdlYktp
dE1hdHJpeCBzY2FsZWRCeShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJs
ZSBzY2FsZVgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBzY2FsZVksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIGRvdWJsZSBzY2FsZVopOworCisgICAgICAgIC8vIFNjYWxlIGl0c2VsZiB1c2lu
ZyB0aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAgICAgLy8gUGFzc2luZyBzY2FsZVggb3Igc2NhbGVa
IGFzIE5hTiB1c2VzIGEgdmFsdWUgb2YgMSwgYnV0IHBhc3Npbmcgc2NhbGVZIG9mIE5hTgorICAg
ICAgICAvLyBtYWtlcyBpdCB0aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBm
b3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKKyAgICAgICAgdm9pZCBzY2FsZShpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBzY2FsZVgsCisgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgc2NhbGVZLAor
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91
YmxlIHNjYWxlWik7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5
IHRoZSBwYXNzZWQgdmFsdWVzLgorICAgICAgICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4s
IHJvdGF0ZSBhYm91dCBaIChyb3RYPTAsIHJvdGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KKyAgICAg
ICAgLy8gT3RoZXJ3aXNlIHVzZSBhIHJvdGF0aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQg
TmFOLgorICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRNYXRyaXggcm90YXRlZEJ5KGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHJvdFgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBkb3VibGUgcm90WSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSByb3RaKTsKKwor
ICAgICAgICAvLyBSb3RhdGUgaXRzZWxmIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgorICAgICAg
ICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4sIHJvdGF0ZSBhYm91dCBaIChyb3RYPTAsIHJv
dGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KKyAgICAgICAgLy8gT3RoZXJ3aXNlIHVzZSBhIHJvdGF0
aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQgTmFOLgorICAgICAgICB2b2lkIHJvdGF0ZShp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSByb3RYLAorICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSByb3RZ
LAorICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IGRvdWJsZSByb3RaKTsKKworICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQg
YWJvdXQgdGhlIHBhc3NlZCBheGlzIGJ5IHRoZSBwYXNzZWQgYW5nbGUuCisgICAgICAgIC8vIFBh
c3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDAp
IHVzZSBhIHZhbHVlCisgICAgICAgIC8vIG9mICgwLDAsMSkuCisgICAgICAgIFtJbW11dGFibGVd
IFdlYktpdE1hdHJpeCByb3RhdGVkQXhpc0FuZ2xlQnkoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVm
YXVsdFZhbHVlXSBkb3VibGUgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJs
ZSB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHosCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgYW5nbGUpOworCisgICAgICAgIC8vIFJvdGF0ZSBp
dHNlbGYgdXNpbmcgdGhlIHBhc3NlZCBheGlzIGJ5IHRoZSBwYXNzZWQgYW5nbGUuCisgICAgICAg
IHZvaWQgcm90YXRlQXhpc0FuZ2xlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
ZG91YmxlIHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHosCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91
YmxlIGFuZ2xlKTsKKworICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHNrZXdlZCBhbG9u
ZyB0aGUgWCBheGlzIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgorICAgICAgICAvLyBQYXNzaW5nIGEg
TmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4KKyAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0TWF0
cml4IHNrZXdlZFhCeShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBh
bmdsZSk7CisKKyAgICAgICAgLy8gU2tldyBpdHNlbGYgYWxvbmcgdGhlIFggYXhpcyB1c2luZyB0
aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZh
bHVlIG9mIDAuCisgICAgICAgIHZvaWQgc2tld1goaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBkb3VibGUgYW5nbGUpOworCisgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXgg
c2tld2VkIGFsb25nIHRoZSBZIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgICAgIC8v
IFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgorICAgICAgICBbSW1tdXRhYmxl
XSBXZWJLaXRNYXRyaXggc2tld2VkWUJ5KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1
ZV0gZG91YmxlIGFuZ2xlKTsKKworICAgICAgICAvLyBTa2V3IGl0c2VsZiBhbG9uZyB0aGUgWSBh
eGlzIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgorICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdp
bGwgdXNlIGEgdmFsdWUgb2YgMC4KKyAgICAgICAgdm9pZCBza2V3WShpbiBbT3B0aW9uYWw9Q2Fs
bFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBhbmdsZSk7CisKKyAgICAgICAgW0RvbnRFbnVtXSBE
T01TdHJpbmcgdG9TdHJpbmcoKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKaW5kZXggNWI2YzA5My4uZGRjMWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApA
QCAtNTYxLDYgKzU2MSw4IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGF0dHJpYnV0ZSBb
SlNDQ3VzdG9tR2V0dGVyXSBXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvciBXZWJLaXRDU1NNYXRy
aXg7IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKIAorICAgICAgICBhdHRyaWJ1dGUg
W0pTQ0N1c3RvbUdldHRlcl0gV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IgV2ViS2l0TWF0cml4
OyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9wZXJhdG9yCisKICAgICAgICAgYXR0cmlidXRlIFtK
U0NDdXN0b21HZXR0ZXJdIFdlYktpdFBvaW50Q29uc3RydWN0b3IgV2ViS2l0UG9pbnQ7IC8vIFVz
YWJsZSB3aXRoIG5ldyB0aGUgb3BlcmF0b3IKIAogICAgICAgICBhdHRyaWJ1dGUgQ2xpcGJvYXJk
Q29uc3RydWN0b3IgQ2xpcGJvYXJkOwotLSAKMS43LjQuMQoK
</data>
<flag name="commit-queue"
          id="109380"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111631</attachid>
            <date>2011-10-19 08:57:50 -0700</date>
            <delta_ts>2011-10-19 11:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Make-WebKitCSSMatrix-more-efficient-for-use-in-WebGL.patch</filename>
            <type>text/plain</type>
            <size>31803</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSBhOTRjMGEyZDk3OWE5MzNjNTY1NzE1MGQzZTIzOTI5NTY5NWMzYzM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMTkgT2N0IDIwMTEgMTE6Mjk6MjEgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdM
CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxMiArKwogLi4uL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3Rl
ZC50eHQgfCAgIDkwICsrKysrKysrKysrKysKIC4uLi90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1p
bnRlcmZhY2UueGh0bWwgICAgICAgIHwgIDEwNyArKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArKysrCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCAgICAgICAgICAgICB8ICAxNDEgKysr
KysrKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaCAg
ICAgICAgICAgICAgIHwgICA2NyArKysrKysrKystCiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTTWF0cml4LmlkbCAgICAgICAgICAgICB8ICAgNTAgKysrKysrKy0KIDcgZmlsZXMgY2hhbmdl
ZCwgNDc3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyZjM4ZGQzLi4x
MzkzM2JjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTkgIElnb3IgT2xpdmVpcmEg
IDxpZ29yLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJLaXRDU1NN
YXRyaXggbW9yZSBlZmZpY2llbnQgZm9yIHVzZSBpbiBXZWJHTAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MzMKKworICAgICAgICBBZGQgdGVzdHMg
Zm9yIHRoZSBtdXRhYmxlIG1ldGhvZHMgaW4gV2ViS2l0Q1NTTWF0cml4LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdHJhbnNmb3Jtcy9jc3NtYXRy
aXgtM2QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zL2Nzc21h
dHJpeC0zZC1pbnRlcmZhY2UueGh0bWw6CisKIDIwMTEtMTAtMTggIERpcmsgUHJhbmtlICA8ZHBy
YW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGEgbmV3IGNocm9taXVtIGJhc2VsaW5l
IGZvciBmYXN0L211bHRpY29sL3ZlcnRpY2FsLXJsL3J1bGUtc3R5bGUuaHRtbC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UtZXhw
ZWN0ZWQudHh0CmluZGV4IDk1YWJlNTIuLjk5MzAxNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4dApA
QCAtMTgwLDYgKzE4MCwyNCBAQCBQQVNTIG0ubTQyIGlzIDAKIFBBU1MgbS5tNDMgaXMgMAogUEFT
UyBtLm00NCBpcyAxCiAKK1Rlc3QgbXVsdGlwbGllZEJ5CitQQVNTIHBhcnNlRmxvYXQobS5tMTEp
IGlzIDUzOAorUEFTUyBwYXJzZUZsb2F0KG0ubTEyKSBpcyA2MTIKK1BBU1MgcGFyc2VGbG9hdCht
Lm0xMykgaXMgNjg2CitQQVNTIHBhcnNlRmxvYXQobS5tMTQpIGlzIDc2MAorUEFTUyBwYXJzZUZs
b2F0KG0ubTIxKSBpcyA2NTAKK1BBU1MgcGFyc2VGbG9hdChtLm0yMikgaXMgNzQwCitQQVNTIHBh
cnNlRmxvYXQobS5tMjMpIGlzIDgzMAorUEFTUyBwYXJzZUZsb2F0KG0ubTI0KSBpcyA5MjAKK1BB
U1MgcGFyc2VGbG9hdChtLm0zMSkgaXMgNzYyCitQQVNTIHBhcnNlRmxvYXQobS5tMzIpIGlzIDg2
OAorUEFTUyBwYXJzZUZsb2F0KG0ubTMzKSBpcyA5NzQKK1BBU1MgcGFyc2VGbG9hdChtLm0zNCkg
aXMgMTA4MAorUEFTUyBwYXJzZUZsb2F0KG0ubTQxKSBpcyA4NzQKK1BBU1MgcGFyc2VGbG9hdCht
Lm00MikgaXMgOTk2CitQQVNTIHBhcnNlRmxvYXQobS5tNDMpIGlzIDExMTgKK1BBU1MgcGFyc2VG
bG9hdChtLm00NCkgaXMgMTI0MAorCiBUZXN0IGludmVyc2UKIFBBU1MgcGFyc2VGbG9hdChtMi5t
MTEpIGlzIDAuNQogUEFTUyBwYXJzZUZsb2F0KG0yLm0xMikgaXMgMApAQCAtMjU1LDYgKzI3Mywy
NCBAQCBQQVNTIG0ubTQyIGlzIDAKIFBBU1MgbS5tNDMgaXMgMAogUEFTUyBtLm00NCBpcyAxCiAK
K1Rlc3QgdHJhbnNsYXRlZEJ5CitQQVNTIG0ubTExIGlzIDEKK1BBU1MgbS5tMTIgaXMgMAorUEFT
UyBtLm0xMyBpcyAwCitQQVNTIG0ubTE0IGlzIDAKK1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0y
MiBpcyAxCitQQVNTIG0ubTIzIGlzIDAKK1BBU1MgbS5tMjQgaXMgMAorUEFTUyBtLm0zMSBpcyAw
CitQQVNTIG0ubTMyIGlzIDAKK1BBU1MgbS5tMzMgaXMgMQorUEFTUyBtLm0zNCBpcyAwCitQQVNT
IG0ubTQxIGlzIDEwCitQQVNTIG0ubTQyIGlzIDIwCitQQVNTIG0ubTQzIGlzIDMwCitQQVNTIG0u
bTQ0IGlzIDEKKwogVGVzdCBzY2FsZQogUEFTUyBtMi5tMTEgaXMgMTAKIFBBU1MgbTIubTEyIGlz
IDAKQEAgLTI5MSw2ICszMjcsMjQgQEAgUEFTUyBtLm00MiBpcyAwCiBQQVNTIG0ubTQzIGlzIDAK
IFBBU1MgbS5tNDQgaXMgMQogCitUZXN0IHNjYWxlZEJ5CitQQVNTIG0ubTExIGlzIDEwCitQQVNT
IG0ubTEyIGlzIDAKK1BBU1MgbS5tMTMgaXMgMAorUEFTUyBtLm0xNCBpcyAwCitQQVNTIG0ubTIx
IGlzIDAKK1BBU1MgbS5tMjIgaXMgMjAKK1BBU1MgbS5tMjMgaXMgMAorUEFTUyBtLm0yNCBpcyAw
CitQQVNTIG0ubTMxIGlzIDAKK1BBU1MgbS5tMzIgaXMgMAorUEFTUyBtLm0zMyBpcyAzMAorUEFT
UyBtLm0zNCBpcyAwCitQQVNTIG0ubTQxIGlzIDAKK1BBU1MgbS5tNDIgaXMgMAorUEFTUyBtLm00
MyBpcyAwCitQQVNTIG0ubTQ0IGlzIDEKKwogVGVzdCByb3RhdGUKIFBBU1MgcGFyc2VGbG9hdCht
Mi5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODEzNzk4CiBQQVNTIHBhcnNlRmxvYXQobTIubTEy
LnRvUHJlY2lzaW9uKDYpKSBpcyAwLjQ2OTg0NgpAQCAtMzI3LDYgKzM4MSwyNCBAQCBQQVNTIG0u
bTQyIGlzIDAKIFBBU1MgbS5tNDMgaXMgMAogUEFTUyBtLm00NCBpcyAxCiAKK1Rlc3Qgcm90YXRl
ZEJ5CitQQVNTIHBhcnNlRmxvYXQobS5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODEzNzk4CitQ
QVNTIHBhcnNlRmxvYXQobS5tMTIudG9QcmVjaXNpb24oNikpIGlzIDAuNDY5ODQ2CitQQVNTIHBh
cnNlRmxvYXQobS5tMTMudG9QcmVjaXNpb24oNikpIGlzIC0wLjM0MjAyCitQQVNTIHBhcnNlRmxv
YXQobS5tMTQudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm0yMS50b1By
ZWNpc2lvbig2KSkgaXMgLTAuNDQwOTcKK1BBU1MgcGFyc2VGbG9hdChtLm0yMi50b1ByZWNpc2lv
big2KSkgaXMgMC44ODI1NjQKK1BBU1MgcGFyc2VGbG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSkg
aXMgMC4xNjMxNzYKK1BBU1MgcGFyc2VGbG9hdChtLm0yNC50b1ByZWNpc2lvbig2KSkgaXMgMAor
UEFTUyBwYXJzZUZsb2F0KG0ubTMxLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjM3ODUyMgorUEFTUyBw
YXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjAxODAyODMKK1BBU1MgcGFyc2VG
bG9hdChtLm0zMy50b1ByZWNpc2lvbig2KSkgaXMgMC45MjU0MTcKK1BBU1MgcGFyc2VGbG9hdCht
Lm0zNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lz
aW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDIudG9QcmVjaXNpb24oNikpIGlzIDAK
K1BBU1MgcGFyc2VGbG9hdChtLm00My50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZs
b2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKSBpcyAxCisKIFRlc3Qgcm90YXRlQXhpc0FuZ2xlCiBQ
QVNTIHBhcnNlRmxvYXQobTIubTExLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjgwNDczOAogUEFTUyBw
YXJzZUZsb2F0KG0yLm0xMi50b1ByZWNpc2lvbig2KSkgaXMgMC41MDU4NzkKQEAgLTM2Myw2ICs0
MzUsMjQgQEAgUEFTUyBtLm00MiBpcyAwCiBQQVNTIG0ubTQzIGlzIDAKIFBBU1MgbS5tNDQgaXMg
MQogCitUZXN0IHJvdGF0ZWRBeGlzQW5nbGVCeQorUEFTUyBwYXJzZUZsb2F0KG0ubTExLnRvUHJl
Y2lzaW9uKDYpKSBpcyAwLjgwNDczOAorUEFTUyBwYXJzZUZsb2F0KG0ubTEyLnRvUHJlY2lzaW9u
KDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0ubTEzLnRvUHJlY2lzaW9uKDYpKSBp
cyAtMC4zMTA2MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSkgaXMgMAor
UEFTUyBwYXJzZUZsb2F0KG0ubTIxLnRvUHJlY2lzaW9uKDYpKSBpcyAtMC4zMTA2MTcKK1BBU1Mg
cGFyc2VGbG9hdChtLm0yMi50b1ByZWNpc2lvbig2KSkgaXMgMC44MDQ3MzgKK1BBU1MgcGFyc2VG
bG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSkgaXMgMC41MDU4NzkKK1BBU1MgcGFyc2VGbG9hdCht
Lm0yNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTMxLnRvUHJlY2lz
aW9uKDYpKSBpcyAwLjUwNTg3OQorUEFTUyBwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYp
KSBpcyAtMC4zMTA2MTcKK1BBU1MgcGFyc2VGbG9hdChtLm0zMy50b1ByZWNpc2lvbig2KSkgaXMg
MC44MDQ3MzgKK1BBU1MgcGFyc2VGbG9hdChtLm0zNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFT
UyBwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQo
bS5tNDIudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00My50b1ByZWNp
c2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKSBpcyAx
CisKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnho
dG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1s
CmluZGV4IDdkOWFjYzYuLmRjZWZkYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zZm9y
bXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS54aHRtbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zv
cm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UueGh0bWwKQEAgLTIzNyw2ICsyMzcsMjggQEAgc2hv
dWxkQmUoJ20ubTQzJywgJzAnKTsKIHNob3VsZEJlKCdtLm00NCcsICcxJyk7CiAKIGRlYnVnKCIi
KTsKK2RlYnVnKCJUZXN0IG11bHRpcGxpZWRCeSIpOworbSA9ICBuZXcgV2ViS2l0Q1NTTWF0cml4
KCJtYXRyaXgzZCggMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEy
LCAxMywgMTQsIDE1LCAxNikiKTsKK20yID0gbmV3IFdlYktpdENTU01hdHJpeCgibWF0cml4M2Qo
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAz
MSwgMzIpIik7CittLm11bHRpcGxpZWRCeShtMik7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0x
MSknLCAnNTM4Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMiknLCAnNjEyJyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtLm0xMyknLCAnNjg2Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0xNCknLCAnNzYwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMSknLCAnNjUwJyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtLm0yMiknLCAnNzQwJyk7CitzaG91bGRCZSgncGFyc2VGbG9h
dChtLm0yMyknLCAnODMwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yNCknLCAnOTIwJyk7
CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zMSknLCAnNzYyJyk7CitzaG91bGRCZSgncGFyc2VG
bG9hdChtLm0zMiknLCAnODY4Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zMyknLCAnOTc0
Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zNCknLCAnMTA4MCcpOworc2hvdWxkQmUoJ3Bh
cnNlRmxvYXQobS5tNDEpJywgJzg3NCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDIpJywg
Jzk5NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDMpJywgJzExMTgnKTsKK3Nob3VsZEJl
KCdwYXJzZUZsb2F0KG0ubTQ0KScsICcxMjQwJyk7CisKK2RlYnVnKCIiKTsKIGRlYnVnKCJUZXN0
IGludmVyc2UiKTsKIG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCJtYXRyaXgzZCgyLCAwLCAwLCAw
LCAwLCAyLCAwLCAwLCAwLCAwLCAyLCAwLCAxMCwgMjAsIDMwLCAxKSIpOwogbTIgPSBtLmludmVy
c2UoKTsKQEAgLTMyMyw2ICszNDUsMjcgQEAgc2hvdWxkQmUoJ20ubTQzJywgJzAnKTsKIHNob3Vs
ZEJlKCdtLm00NCcsICcxJyk7CiAKIGRlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRyYW5zbGF0ZWRC
eSIpOwordmFyIG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7CittLnRyYW5zbGF0ZWRCeSgxMCwg
MjAsIDMwKTsKK3Nob3VsZEJlKCdtLm0xMScsICcxJyk7CitzaG91bGRCZSgnbS5tMTInLCAnMCcp
Oworc2hvdWxkQmUoJ20ubTEzJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0xNCcsICcwJyk7CitzaG91
bGRCZSgnbS5tMjEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTIyJywgJzEnKTsKK3Nob3VsZEJlKCdt
Lm0yMycsICcwJyk7CitzaG91bGRCZSgnbS5tMjQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTMxJywg
JzAnKTsKK3Nob3VsZEJlKCdtLm0zMicsICcwJyk7CitzaG91bGRCZSgnbS5tMzMnLCAnMScpOwor
c2hvdWxkQmUoJ20ubTM0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm00MScsICcxMCcpOworc2hvdWxk
QmUoJ20ubTQyJywgJzIwJyk7CitzaG91bGRCZSgnbS5tNDMnLCAnMzAnKTsKK3Nob3VsZEJlKCdt
Lm00NCcsICcxJyk7CisKK2RlYnVnKCIiKTsKIGRlYnVnKCJUZXN0IHNjYWxlIik7CiBtID0gbmV3
IFdlYktpdENTU01hdHJpeCgpOwogbTIgPSBtLnNjYWxlKDEwLCAyMCwgMzApOwpAQCAtMzYzLDYg
KzQwNiwyNyBAQCBzaG91bGRCZSgnbS5tNDMnLCAnMCcpOwogc2hvdWxkQmUoJ20ubTQ0JywgJzEn
KTsKIAogZGVidWcoIiIpOworZGVidWcoIlRlc3Qgc2NhbGVkQnkiKTsKK20gPSBuZXcgV2ViS2l0
Q1NTTWF0cml4KCk7CittLnNjYWxlZEJ5KDEwLCAyMCwgMzApOworc2hvdWxkQmUoJ20ubTExJywg
JzEwJyk7CitzaG91bGRCZSgnbS5tMTInLCAnMCcpOworc2hvdWxkQmUoJ20ubTEzJywgJzAnKTsK
K3Nob3VsZEJlKCdtLm0xNCcsICcwJyk7CitzaG91bGRCZSgnbS5tMjEnLCAnMCcpOworc2hvdWxk
QmUoJ20ubTIyJywgJzIwJyk7CitzaG91bGRCZSgnbS5tMjMnLCAnMCcpOworc2hvdWxkQmUoJ20u
bTI0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0zMScsICcwJyk7CitzaG91bGRCZSgnbS5tMzInLCAn
MCcpOworc2hvdWxkQmUoJ20ubTMzJywgJzMwJyk7CitzaG91bGRCZSgnbS5tMzQnLCAnMCcpOwor
c2hvdWxkQmUoJ20ubTQxJywgJzAnKTsKK3Nob3VsZEJlKCdtLm00MicsICcwJyk7CitzaG91bGRC
ZSgnbS5tNDMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKKworZGVidWcoIiIpOwog
ZGVidWcoIlRlc3Qgcm90YXRlIik7CiBtID0gbmV3IFdlYktpdENTU01hdHJpeCgpOwogbTIgPSBt
LnJvdGF0ZSgxMCwgMjAsIDMwKTsKQEAgLTQwMyw2ICs0NjcsMjggQEAgc2hvdWxkQmUoJ20ubTQz
JywgJzAnKTsKIHNob3VsZEJlKCdtLm00NCcsICcxJyk7CiAKIGRlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0IHJvdGF0ZWRCeSIpOworbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsKK20ucm90YXRlZEJ5
KDEwLCAyMCwgMzApOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTEudG9QcmVjaXNpb24oNikp
JywgJzAuODEzNzk4Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMi50b1ByZWNpc2lvbig2
KSknLCAnMC40Njk4NDYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEzLnRvUHJlY2lzaW9u
KDYpKScsICctMC4zNDIwMicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTQudG9QcmVjaXNp
b24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIxLnRvUHJlY2lzaW9uKDYp
KScsICctMC40NDA5NycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjIudG9QcmVjaXNpb24o
NikpJywgJzAuODgyNTY0Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMy50b1ByZWNpc2lv
big2KSknLCAnMC4xNjMxNzYnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lz
aW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0zMS50b1ByZWNpc2lvbig2
KSknLCAnMC4zNzg1MjInKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9u
KDYpKScsICcwLjAxODAyODMnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lz
aW9uKDYpKScsICcwLjkyNTQxNycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzQudG9QcmVj
aXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9u
KDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSkn
LCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDMudG9QcmVjaXNpb24oNikpJywgJzAn
KTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKScsICcxJyk7CisK
KworZGVidWcoIiIpOwogZGVidWcoIlRlc3Qgcm90YXRlQXhpc0FuZ2xlIik7CiBtID0gbmV3IFdl
YktpdENTU01hdHJpeCgpOwogbTIgPSBtLnJvdGF0ZUF4aXNBbmdsZSgwLjcwNywgMC43MDcsIDAu
NzA3LCA0NSk7CkBAIC00NDMsNiArNTI5LDI3IEBAIHNob3VsZEJlKCdtLm00MycsICcwJyk7CiBz
aG91bGRCZSgnbS5tNDQnLCAnMScpOwogCiBkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCByb3RhdGVk
QXhpc0FuZ2xlQnkiKTsKK20gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7CittLnJvdGF0ZWRBeGlz
QW5nbGVCeSgwLjcwNywgMC43MDcsIDAuNzA3LCA0NSk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0xMS50b1ByZWNpc2lvbig2KSknLCAnMC44MDQ3MzgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTEyLnRvUHJlY2lzaW9uKDYpKScsICcwLjUwNTg3OScpOworc2hvdWxkQmUoJ3BhcnNlRmxv
YXQobS5tMTMudG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycpOworc2hvdWxkQmUoJ3BhcnNl
RmxvYXQobS5tMTQudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTIxLnRvUHJlY2lzaW9uKDYpKScsICctMC4zMTA2MTcnKTsKK3Nob3VsZEJlKCdwYXJzZUZs
b2F0KG0ubTIyLnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDczOCcpOworc2hvdWxkQmUoJ3BhcnNl
RmxvYXQobS5tMjMudG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7CitzaG91bGRCZSgncGFy
c2VGbG9hdChtLm0yNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxv
YXQobS5tMzEudG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7CitzaG91bGRCZSgncGFyc2VG
bG9hdChtLm0zMi50b1ByZWNpc2lvbig2KSknLCAnLTAuMzEwNjE3Jyk7CitzaG91bGRCZSgncGFy
c2VGbG9hdChtLm0zMy50b1ByZWNpc2lvbig2KSknLCAnMC44MDQ3MzgnKTsKK3Nob3VsZEJlKCdw
YXJzZUZsb2F0KG0ubTM0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VG
bG9hdChtLm00MS50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQo
bS5tNDIudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQz
LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00NC50b1By
ZWNpc2lvbig2KSknLCAnMScpOworCitkZWJ1ZygiIik7CiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZjQwMzI2Li41ZGIwMDhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMTAtMTkgIElnb3IgT2xpdmVpcmEgIDxpZ29yLm9s
aXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJLaXRDU1NNYXRyaXggbW9y
ZSBlZmZpY2llbnQgZm9yIHVzZSBpbiBXZWJHTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2MzMKKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgbXV0YWJsZSBtZXRob2RzIGZvciBXZWJLaXRDU1NNYXRyaXguIFRoZSBtdXRhYmxlIG1ldGhv
ZHMKKyAgICAgICAgY2FuIG1ha2UgV2ViS2l0Q1NTTWF0cml4IGluIFdlYkdMIG1vcmUgZWZmaWNp
ZW50LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y3NzL1dlYktpdENTU01hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRy
aXg6OldlYktpdENTU01hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6
OnRvQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4OjpzZXRNYXRyaXhW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6Om11bHRpcGxpZWRCeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OmludmVyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViS2l0Q1NTTWF0cml4Ojp0cmFuc2xhdGVkQnkpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViS2l0Q1NTTWF0cml4OjpzY2FsZWRCeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRD
U1NNYXRyaXg6OnJvdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnJv
dGF0ZWRCeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnJvdGF0ZWRBeGlz
QW5nbGVCeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnNrZXdlZFhCeSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnNrZXdlZFlCeSk6CisgICAgICAg
ICogY3NzL1dlYktpdENTU01hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTTWF0
cml4OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguaWRsOgorCiAyMDEx
LTEwLTE4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHRoZSBi
dWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKaW5kZXggMjZmZTI4Ni4u
YjQwMjAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAKQEAgLTIwLDcg
KzIwLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAt
MzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUg
IkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIkZsb2F0NjRBcnJheS5oIgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDcgKzQzLDcgQEAg
V2ViS2l0Q1NTTWF0cml4OjpXZWJLaXRDU1NNYXRyaXgoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG0pCiB7CiB9CiAKLVdlYktpdENTU01hdHJpeDo6V2ViS2l0Q1NTTWF0cml4KGNvbnN0IFN0
cmluZyYgcywgRXhjZXB0aW9uQ29kZSYgZWMpIAorV2ViS2l0Q1NTTWF0cml4OjpXZWJLaXRDU1NN
YXRyaXgoY29uc3QgU3RyaW5nJiBzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBzZXRNYXRy
aXhWYWx1ZShzLCBlYyk7CiB9CkBAIC01MCwxMSArNTIsNTcgQEAgV2ViS2l0Q1NTTWF0cml4Ojp+
V2ViS2l0Q1NTTWF0cml4KCkKIHsKIH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6OnRvQXJyYXko
RmxvYXQzMkFycmF5KiBhcnJheSkKK3sKKyAgICBpZiAoIWFycmF5IHx8IGFycmF5LT5sZW5ndGgo
KSA8IDE2KQorICAgICAgICByZXR1cm47CisKKyAgICBhcnJheS0+c2V0KDAsIG1fbWF0cml4Lm0x
MSgpKTsKKyAgICBhcnJheS0+c2V0KDEsIG1fbWF0cml4Lm0xMigpKTsKKyAgICBhcnJheS0+c2V0
KDIsIG1fbWF0cml4Lm0xMygpKTsKKyAgICBhcnJheS0+c2V0KDMsIG1fbWF0cml4Lm0xNCgpKTsK
KyAgICBhcnJheS0+c2V0KDQsIG1fbWF0cml4Lm0yMSgpKTsKKyAgICBhcnJheS0+c2V0KDUsIG1f
bWF0cml4Lm0yMigpKTsKKyAgICBhcnJheS0+c2V0KDYsIG1fbWF0cml4Lm0yMygpKTsKKyAgICBh
cnJheS0+c2V0KDcsIG1fbWF0cml4Lm0yNCgpKTsKKyAgICBhcnJheS0+c2V0KDgsIG1fbWF0cml4
Lm0zMSgpKTsKKyAgICBhcnJheS0+c2V0KDksIG1fbWF0cml4Lm0zMigpKTsKKyAgICBhcnJheS0+
c2V0KDEwLCBtX21hdHJpeC5tMzMoKSk7CisgICAgYXJyYXktPnNldCgxMSwgbV9tYXRyaXgubTM0
KCkpOworICAgIGFycmF5LT5zZXQoMTIsIG1fbWF0cml4Lm00MSgpKTsKKyAgICBhcnJheS0+c2V0
KDEzLCBtX21hdHJpeC5tNDIoKSk7CisgICAgYXJyYXktPnNldCgxNCwgbV9tYXRyaXgubTQzKCkp
OworICAgIGFycmF5LT5zZXQoMTUsIG1fbWF0cml4Lm00NCgpKTsKK30KKwordm9pZCBXZWJLaXRD
U1NNYXRyaXg6OnRvQXJyYXkoRmxvYXQ2NEFycmF5KiBhcnJheSkKK3sKKyAgICBpZiAoIWFycmF5
IHx8IGFycmF5LT5sZW5ndGgoKSA8IDE2KQorICAgICAgICByZXR1cm47CisKKyAgICBhcnJheS0+
c2V0KDAsIG1fbWF0cml4Lm0xMSgpKTsKKyAgICBhcnJheS0+c2V0KDEsIG1fbWF0cml4Lm0xMigp
KTsKKyAgICBhcnJheS0+c2V0KDIsIG1fbWF0cml4Lm0xMygpKTsKKyAgICBhcnJheS0+c2V0KDMs
IG1fbWF0cml4Lm0xNCgpKTsKKyAgICBhcnJheS0+c2V0KDQsIG1fbWF0cml4Lm0yMSgpKTsKKyAg
ICBhcnJheS0+c2V0KDUsIG1fbWF0cml4Lm0yMigpKTsKKyAgICBhcnJheS0+c2V0KDYsIG1fbWF0
cml4Lm0yMygpKTsKKyAgICBhcnJheS0+c2V0KDcsIG1fbWF0cml4Lm0yNCgpKTsKKyAgICBhcnJh
eS0+c2V0KDgsIG1fbWF0cml4Lm0zMSgpKTsKKyAgICBhcnJheS0+c2V0KDksIG1fbWF0cml4Lm0z
MigpKTsKKyAgICBhcnJheS0+c2V0KDEwLCBtX21hdHJpeC5tMzMoKSk7CisgICAgYXJyYXktPnNl
dCgxMSwgbV9tYXRyaXgubTM0KCkpOworICAgIGFycmF5LT5zZXQoMTIsIG1fbWF0cml4Lm00MSgp
KTsKKyAgICBhcnJheS0+c2V0KDEzLCBtX21hdHJpeC5tNDIoKSk7CisgICAgYXJyYXktPnNldCgx
NCwgbV9tYXRyaXgubTQzKCkpOworICAgIGFycmF5LT5zZXQoMTUsIG1fbWF0cml4Lm00NCgpKTsK
K30KKwogdm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNldE1hdHJpeFZhbHVlKGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+IHN0eWxlRGVjbGFyYXRpb24gPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6Y3JlYXRlKCk7CiAgICAgaWYgKENTU1BhcnNlcjo6cGFyc2VWYWx1ZShzdHlsZURlY2xhcmF0
aW9uLmdldCgpLCBDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSwgc3RyaW5nLCB0cnVlLCB0cnVl
KSkgewotICAgICAgICAvLyBDb252ZXJ0IHRvIFRyYW5zZm9ybU9wZXJhdGlvbnMuIFRoaXMgY2Fu
IGZhaWwgaWYgYSBwcm9wZXJ0eSAKKyAgICAgICAgLy8gQ29udmVydCB0byBUcmFuc2Zvcm1PcGVy
YXRpb25zLiBUaGlzIGNhbiBmYWlsIGlmIGEgcHJvcGVydHkKICAgICAgICAgLy8gcmVxdWlyZXMg
c3R5bGUgKGkuZS4sIHBhcmFtIHVzZXMgJ2Vtcycgb3IgJ2V4cycpCiAgICAgICAgIFJlZlB0cjxD
U1NWYWx1ZT4gdmFsdWUgPSBzdHlsZURlY2xhcmF0aW9uLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKIApAQCAtNjcsNyArMTE1LDcgQEAgdm9pZCBXZWJL
aXRDU1NNYXRyaXg6OnNldE1hdHJpeFZhbHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICAvLyBDb252ZXJ0IHRyYW5zZm9y
bSBvcGVyYXRpb25zIHRvIGEgVHJhbnNmb3JtYXRpb25NYXRyaXguIFRoaXMgY2FuIGZhaWwKICAg
ICAgICAgLy8gaWYgYSBwYXJhbSBoYXMgYSBwZXJjZW50YWdlICgnJScpCiAgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHQ7CkBAIC03Nyw3ICsxMjUsNyBAQCB2b2lkIFdlYktpdENTU01hdHJp
eDo6c2V0TWF0cml4VmFsdWUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICAvLyBzZXQgdGhlIG1hdHJpeAogICAgICAgICBtX21hdHJpeCA9IHQ7
CiAgICAgfSBlbHNlIGlmICghc3RyaW5nLmlzRW1wdHkoKSkgLy8gVGhlcmUgaXMgc29tZXRoaW5n
IHRoZXJlIGJ1dCBwYXJzaW5nIGZhaWxlZApAQCAtOTMsMTMgKzE0MSwyMSBAQCBQYXNzUmVmUHRy
PFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4OjptdWx0aXBseShXZWJLaXRDU1NNYXRy
aXgqIHNlY29uZE1hdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeChtX21hdHJpeCkubXVsdGlwbHkoc2Vjb25kTWF0cml4LT5tX21hdHJpeCkp
OwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6bXVsdGlwbGllZEJ5KFdlYktpdENTU01hdHJp
eCogc2Vjb25kTWF0cml4KQoreworICAgIGlmICghc2Vjb25kTWF0cml4KQorICAgICAgICByZXR1
cm47CisKKyAgICBtX21hdHJpeC5tdWx0aXBseShzZWNvbmRNYXRyaXgtPm1fbWF0cml4KTsKK30K
KwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6aW52ZXJzZShF
eGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIW1fbWF0cml4LmlzSW52ZXJ0aWJs
ZSgpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShtX21h
dHJpeC5pbnZlcnNlKCkpOwogfQogCkBAIC0xMTQsNiArMTcwLDE4IEBAIFBhc3NSZWZQdHI8V2Vi
S2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnRyYW5zbGF0ZShkb3VibGUgeCwgZG91Ymxl
IHksIGRvdWJsCiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJpeDo6Y3JlYXRlKFRyYW5zZm9ybWF0
aW9uTWF0cml4KG1fbWF0cml4KS50cmFuc2xhdGUzZCh4LCB5LCB6KSk7CiB9CiAKK3ZvaWQgV2Vi
S2l0Q1NTTWF0cml4Ojp0cmFuc2xhdGVkQnkoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikK
K3sKKyAgICBpZiAoaXNuYW4oeCkpCisgICAgICAgIHggPSAwOworICAgIGlmIChpc25hbih5KSkK
KyAgICAgICAgeSA9IDA7CisgICAgaWYgKGlzbmFuKHopKQorICAgICAgICB6ID0gMDsKKworICAg
IG1fbWF0cml4LnRyYW5zbGF0ZTNkKHgsIHksIHopOworfQorCiBQYXNzUmVmUHRyPFdlYktpdENT
U01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4OjpzY2FsZShkb3VibGUgc2NhbGVYLCBkb3VibGUgc2Nh
bGVZLCBkb3VibGUgc2NhbGVaKSBjb25zdAogewogICAgIGlmIChpc25hbihzY2FsZVgpKQpAQCAt
MTI1LDExICsxOTMsMjMgQEAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01h
dHJpeDo6c2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwKICAgICByZXR1cm4gV2Vi
S2l0Q1NTTWF0cml4OjpjcmVhdGUoVHJhbnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLnNjYWxl
M2Qoc2NhbGVYLCBzY2FsZVksIHNjYWxlWikpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6
c2NhbGVkQnkoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91YmxlIHNjYWxlWikKK3sK
KyAgICBpZiAoaXNuYW4oc2NhbGVYKSkKKyAgICAgICAgc2NhbGVYID0gMTsKKyAgICBpZiAoaXNu
YW4oc2NhbGVZKSkKKyAgICAgICAgc2NhbGVZID0gc2NhbGVYOworICAgIGlmIChpc25hbihzY2Fs
ZVopKQorICAgICAgICBzY2FsZVogPSAxOworCisgICAgbV9tYXRyaXguc2NhbGUzZChzY2FsZVgs
IHNjYWxlWSwgc2NhbGVaKTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktp
dENTU01hdHJpeDo6cm90YXRlKGRvdWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91YmxlIHJvdFop
IGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKHJvdFgpKQogICAgICAgICByb3RYID0gMDsKLSAgICAg
ICAgCisKICAgICBpZiAoaXNuYW4ocm90WSkgJiYgaXNuYW4ocm90WikpIHsKICAgICAgICAgcm90
WiA9IHJvdFg7CiAgICAgICAgIHJvdFggPSAwOwpAQCAtMTQzLDYgKzIyMywyNCBAQCBQYXNzUmVm
UHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpyb3RhdGUoZG91YmxlIHJvdFgs
IGRvdWJsZSByb3RZLCBkbwogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFu
c2Zvcm1hdGlvbk1hdHJpeChtX21hdHJpeCkucm90YXRlM2Qocm90WCwgcm90WSwgcm90WikpOwog
fQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6cm90YXRlZEJ5KGRvdWJsZSByb3RYLCBkb3VibGUg
cm90WSwgZG91YmxlIHJvdFopCit7CisgICAgaWYgKGlzbmFuKHJvdFgpKQorICAgICAgICByb3RY
ID0gMDsKKworICAgIGlmIChpc25hbihyb3RZKSAmJiBpc25hbihyb3RaKSkgeworICAgICAgICBy
b3RaID0gcm90WDsKKyAgICAgICAgcm90WCA9IDA7CisgICAgICAgIHJvdFkgPSAwOworICAgIH0K
KworICAgIGlmIChpc25hbihyb3RZKSkKKyAgICAgICAgcm90WSA9IDA7CisgICAgaWYgKGlzbmFu
KHJvdFopKQorICAgICAgICByb3RaID0gMDsKKyAgICBtX21hdHJpeC5yb3RhdGUzZChyb3RYLCBy
b3RZLCByb3RaKTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01h
dHJpeDo6cm90YXRlQXhpc0FuZ2xlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJs
ZSBhbmdsZSkgY29uc3QKIHsKICAgICBpZiAoaXNuYW4oeCkpCkBAIC0xNTgsNiArMjU2LDIxIEBA
IFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnJvdGF0ZUF4aXNB
bmdsZShkb3VibGUgeCwgZG91YmxlIHksCiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJpeDo6Y3Jl
YXRlKFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KS5yb3RhdGUzZCh4LCB5LCB6LCBhbmds
ZSkpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6cm90YXRlZEF4aXNBbmdsZUJ5KGRvdWJs
ZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkKK3sKKyAgICBpZiAoaXNuYW4o
eCkpCisgICAgICAgIHggPSAwOworICAgIGlmIChpc25hbih5KSkKKyAgICAgICAgeSA9IDA7Cisg
ICAgaWYgKGlzbmFuKHopKQorICAgICAgICB6ID0gMDsKKyAgICBpZiAoaXNuYW4oYW5nbGUpKQor
ICAgICAgICBhbmdsZSA9IDA7CisgICAgaWYgKCF4ICYmICF5ICYmICF6KQorICAgICAgICB6ID0g
MTsKKyAgICBtX21hdHJpeC5yb3RhdGUzZCh4LCB5LCB6LCBhbmdsZSk7Cit9CisKIFBhc3NSZWZQ
dHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnNrZXdYKGRvdWJsZSBhbmdsZSkg
Y29uc3QKIHsKICAgICBpZiAoaXNuYW4oYW5nbGUpKQpAQCAtMTY1LDYgKzI3OCwxMyBAQCBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpza2V3WChkb3VibGUgYW5n
bGUpIGNvbnN0CiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJpeDo6Y3JlYXRlKFRyYW5zZm9ybWF0
aW9uTWF0cml4KG1fbWF0cml4KS5za2V3WChhbmdsZSkpOwogfQogCit2b2lkIFdlYktpdENTU01h
dHJpeDo6c2tld2VkWEJ5KGRvdWJsZSBhbmdsZSkKK3sKKyAgICBpZiAoaXNuYW4oYW5nbGUpKQor
ICAgICAgICBhbmdsZSA9IDA7CisgICAgbV9tYXRyaXguc2tld1goYW5nbGUpOworfQorCiBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpza2V3WShkb3VibGUgYW5n
bGUpIGNvbnN0CiB7CiAgICAgaWYgKGlzbmFuKGFuZ2xlKSkKQEAgLTE3Miw2ICsyOTIsMTMgQEAg
UGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2tld1koZG91Ymxl
IGFuZ2xlKSBjb25zdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFuc2Zv
cm1hdGlvbk1hdHJpeChtX21hdHJpeCkuc2tld1koYW5nbGUpKTsKIH0KIAordm9pZCBXZWJLaXRD
U1NNYXRyaXg6OnNrZXdlZFlCeShkb3VibGUgYW5nbGUpCit7CisgICAgaWYgKGlzbmFuKGFuZ2xl
KSkKKyAgICAgICAgYW5nbGUgPSAwOworICAgIG1fbWF0cml4LnNrZXdZKGFuZ2xlKTsKK30KKwog
U3RyaW5nIFdlYktpdENTU01hdHJpeDo6dG9TdHJpbmcoKSBjb25zdAogewogICAgIC8vIEZJWE1F
IC0gTmVlZCB0byBlbnN1cmUgdmFsaWQgQ1NTIGZsb2F0aW5nIHBvaW50IHZhbHVlcyAoaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjc0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU01hdHJpeC5oCmluZGV4IDEwN2JmOGIuLmU3Zjc2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTTWF0cml4LmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBGbG9hdDMyQXJyYXk7CitjbGFzcyBGbG9hdDY0QXJyYXk7CisKIGNsYXNzIFdl
YktpdENTU01hdHJpeCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdENTU01hdHJpeD4gewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gY3JlYXRlKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtKQpAQCAtNDMsNyArNDYsMTIgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRDU1NNYXRyaXgocywgZWMpKTsK
ICAgICB9Ci0gICAgCisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IGNy
ZWF0ZShjb25zdCBGbG9hdDMyQXJyYXkmIGFycmF5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJLaXRDU1NNYXRyaXgoYXJyYXkpKTsKKyAgICB9CisKICAgICB2aXJ0dWFs
IH5XZWJLaXRDU1NNYXRyaXgoKTsKIAogICAgIGRvdWJsZSBhKCkgY29uc3QgeyByZXR1cm4gbV9t
YXRyaXguYSgpOyB9CkBAIC05Myw3ICsxMDEsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TTQy
KGRvdWJsZSBmKSB7IG1fbWF0cml4LnNldE00MihmKTsgfQogICAgIHZvaWQgc2V0TTQzKGRvdWJs
ZSBmKSB7IG1fbWF0cml4LnNldE00MyhmKTsgfQogICAgIHZvaWQgc2V0TTQ0KGRvdWJsZSBmKSB7
IG1fbWF0cml4LnNldE00NChmKTsgfQotIAorCisgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1l
bnRzIGZvciBhIHNpbmdsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICB2b2lkIHRv
QXJyYXkoRmxvYXQzMkFycmF5Kik7CisgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1lbnRzIGZv
ciBhIGRvdWJsZSBwcmVjaXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICB2b2lkIHRvQXJyYXko
RmxvYXQ2NEFycmF5Kik7CisKICAgICB2b2lkIHNldE1hdHJpeFZhbHVlKGNvbnN0IFN0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICAKICAgICAvLyBUaGUgZm9sbG93aW5nIG1hdGggZnVuY3Rp
b24gcmV0dXJuIGEgbmV3IG1hdHJpeCB3aXRoIHRoZSAKQEAgLTEwMSw3ICsxMTQsMTAgQEAgcHVi
bGljOgogICAgIAogICAgIC8vIE11bHRpcGx5IHRoaXMgbWF0cml4IGJ5IHNlY29uZE1hdHJpeCwg
b24gdGhlIHJpZ2h0IChyZXN1bHQgPSB0aGlzICogc2Vjb25kTWF0cml4KQogICAgIFBhc3NSZWZQ
dHI8V2ViS2l0Q1NTTWF0cml4PiBtdWx0aXBseShXZWJLaXRDU1NNYXRyaXgqIHNlY29uZE1hdHJp
eCkgY29uc3Q7Ci0gICAgCisKKyAgICAvLyBNdWx0aXBseSBpdHNlbGYgYnkgYSBzZWNvbmRNYXRy
aXgsIG9uIHRoZSByaWdodCAodGhpcyA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCisgICAgdm9pZCBt
dWx0aXBsaWVkQnkoV2ViS2l0Q1NTTWF0cml4KiBzZWNvbmRNYXRyaXgpOworCiAgICAgLy8gUmV0
dXJuIHRoZSBpbnZlcnNlIG9mIHRoaXMgbWF0cml4LiBUaHJvdyBhbiBleGNlcHRpb24gaWYgdGhl
IG1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4
PiBpbnZlcnNlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICAKQEAgLTExMCw3ICsxMjYsMTMg
QEAgcHVibGljOgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0
aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUgdHJh
bnNsYXRpb24gdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSB0cmFuc2xhdGlvbih4LHkseikg
KiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiB0cmFuc2xhdGUoZG91Ymxl
IHgsIGRvdWJsZSB5LCBkb3VibGUgeikgY29uc3Q7Ci0gICAgCisKKyAgICAvLyBUcmFuc2xhdGUg
aXRzZWxmIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgorICAgIC8vIFBhc3NpbmcgYSBOYU4gd2ls
bCB1c2UgYSB2YWx1ZSBvZiAwLiBUaGlzIGFsbG93cyB0aGUgM0QgZm9ybSB0byB1c2VkIGZvciAy
RCBvcGVyYXRpb25zCisgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhl
IHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSB0
cmFuc2xhdGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHRoaXMgPSB0cmFuc2xhdGlvbih4LHkseikg
KiB0aGlzKQorICAgIHZvaWQgdHJhbnNsYXRlZEJ5KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91Ymxl
IHopOworCiAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCBzY2FsZWQgYnkgdGhlIHBhc3NlZCB2
YWx1ZXMuCiAgICAgLy8gUGFzc2luZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFs
dWUgb2YgMSwgYnV0IHBhc3Npbmcgc2NhbGVZIG9mIE5hTiAKICAgICAvLyBtYWtlcyBpdCB0aGUg
c2FtZSBhcyBzY2FsZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9w
ZXJhdGlvbnMKQEAgLTExOCwzMSArMTQwLDYzIEBAIHB1YmxpYzoKICAgICAvLyB0aGUgc2NhbGUg
dmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSBzY2FsZSh4LHkseikgKiB0aGlzKQogICAgIFBh
c3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBzY2FsZShkb3VibGUgc2NhbGVYLCBkb3VibGUgc2Nh
bGVZLCBkb3VibGUgc2NhbGVaKSBjb25zdDsKIAorICAgIC8vIFNjYWxlIGl0c2VsZiB1c2luZyB0
aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAvLyBQYXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFO
IHVzZXMgYSB2YWx1ZSBvZiAxLCBidXQgcGFzc2luZyBzY2FsZVkgb2YgTmFOCisgICAgLy8gbWFr
ZXMgaXQgdGhlIHNhbWUgYXMgc2NhbGVYLiBUaGlzIGFsbG93cyB0aGUgM0QgZm9ybSB0byB1c2Vk
IGZvciAyRCBvcGVyYXRpb25zCisgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91
Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8v
IHRoZSBzY2FsZSB2YWx1ZXMgb24gdGhlIGxlZnQgKHRoaXMgPSBzY2FsZSh4LHkseikgKiB0aGlz
KQorICAgIHZvaWQgc2NhbGVkQnkoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91Ymxl
IHNjYWxlWik7CisKICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYnkgdGhlIHBh
c3NlZCB2YWx1ZXMuCiAgICAgLy8gSWYgcm90WSBhbmQgcm90WiBhcmUgTmFOLCByb3RhdGUgYWJv
dXQgWiAocm90WD0wLCByb3RhdGVZPTAsIHJvdGF0ZVo9cm90WCkuCiAgICAgLy8gT3RoZXJ3aXNl
IHVzZSBhIHJvdGF0aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQgTmFOLiAgICAKICAgICAv
LyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVs
dGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHJvdGF0aW9uIHZhbHVlcyBvbiB0
aGUgbGVmdCAocmVzdWx0ID0gcm90YXRpb24oeCx5LHopICogdGhpcykKICAgICBQYXNzUmVmUHRy
PFdlYktpdENTU01hdHJpeD4gcm90YXRlKGRvdWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91Ymxl
IHJvdFopIGNvbnN0OwotICAgIAorCisgICAgLy8gUm90YXRlIGl0c2VsZiB1c2luZyB0aGUgcGFz
c2VkIHZhbHVlcy4KKyAgICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4sIHJvdGF0ZSBhYm91
dCBaIChyb3RYPTAsIHJvdGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KKyAgICAvLyBPdGhlcndpc2Ug
dXNlIGEgcm90YXRpb24gdmFsdWUgb2YgMCBmb3IgYW55IHBhc3NlZCBOYU4uCisgICAgLy8gT3Bl
cmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxp
ZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24gdGhlIGxl
ZnQgKHRoaXMgPSByb3RhdGlvbih4LHkseikgKiB0aGlzKQorICAgIHZvaWQgcm90YXRlZEJ5KGRv
dWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91YmxlIHJvdFopOworCiAgICAgLy8gUmV0dXJucyB0
aGlzIG1hdHJpeCByb3RhdGVkIGFib3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2VkIGFu
Z2xlLgogICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0aGUg
YXhpcyBpcyAoMCwwLDApIHVzZSBhIHZhbHVlCiAgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1l
ZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0
aAogICAgIC8vIHRoZSByb3RhdGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3VsdCA9IHJvdGF0
aW9uKHgseSx6LGFuZ2xlKSAqIHRoaXMpCiAgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+
IHJvdGF0ZUF4aXNBbmdsZShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUgYW5n
bGUpIGNvbnN0OwotICAgIAorCisgICAgLy8gUm90YXRlIGl0c2VsZiB1c2luZyB0aGUgcGFzc2Vk
IGF4aXMgYnkgdGhlIHBhc3NlZCBhbmdsZS4KKyAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNl
IGEgdmFsdWUgb2YgMC4gSWYgdGhlIGF4aXMgaXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQorICAgIC8v
IE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0
aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKKyAgICAvLyB0aGUgcm90YXRpb24gdmFsdWVzIG9uIHRo
ZSBsZWZ0ICh0aGlzID0gcm90YXRpb24oeCx5LHosYW5nbGUpICogdGhpcykKKyAgICB2b2lkIHJv
dGF0ZWRBeGlzQW5nbGVCeShkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6LCBkb3VibGUgYW5n
bGUpOworCiAgICAgLy8gUmV0dXJuIHRoaXMgbWF0cml4IHNrZXdlZCBhbG9uZyB0aGUgWCBheGlz
IGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2
YWx1ZSBvZiAwLgogICAgIC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0
aGlzIG1hdHJpeCBpcyBtdWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKICAgICAvLyB0aGUgc2tl
dyB2YWx1ZXMgb24gdGhlIGxlZnQgKHJlc3VsdCA9IHNrZXdYKGFuZ2xlKSAqIHRoaXMpCiAgICAg
UGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IHNrZXdYKGRvdWJsZSBhbmdsZSkgY29uc3Q7CiAK
KyAgICAvLyBTa2V3IGl0c2VsZiBhbG9uZyB0aGUgWCBheGlzIHVzaW5nIHRoZSBwYXNzZWQgdmFs
dWVzLgorICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgorICAgIC8v
IE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBtdWx0
aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKKyAgICAvLyB0aGUgc2tldyB2YWx1ZXMgb24gdGhlIGxl
ZnQgKHRoaXMgPSBza2V3WChhbmdsZSkgKiB0aGlzKQorICAgIHZvaWQgc2tld2VkWEJ5KGRvdWJs
ZSBhbmdsZSk7CisKICAgICAvLyBSZXR1cm4gdGhpcyBtYXRyaXggc2tld2VkIGFsb25nIHRoZSBZ
IGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVz
ZSBhIHZhbHVlIG9mIDAuCiAgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2gg
dGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAogICAgIC8vIHRo
ZSBza2V3IHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gc2tld1koYW5nbGUpICogdGhpcykK
ICAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gc2tld1koZG91YmxlIGFuZ2xlKSBjb25z
dDsKIAorICAgIC8vIFNrZXcgaXRzZWxmIGFsb25nIHRoZSBZIGF4aXMgdXNpbmcgdGhlIHBhc3Nl
ZCB2YWx1ZXMuCisgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCisg
ICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlz
IG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSBza2V3IHZhbHVlcyBvbiB0
aGUgbGVmdCAodGhpcyA9IHNrZXdZKGFuZ2xlKSAqIHRoaXMpCisgICAgdm9pZCBza2V3ZWRZQnko
ZG91YmxlIGFuZ2xlKTsKKwogICAgIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0oKSBjb25zdCB7IHJldHVybiBtX21hdHJpeDsgfQogICAgIAogICAgIFN0cmluZyB0b1N0cmlu
ZygpIGNvbnN0OwpAQCAtMTUwLDYgKzIwNCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBX
ZWJLaXRDU1NNYXRyaXgoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICBXZWJLaXRD
U1NNYXRyaXgoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFdlYktpdENTU01h
dHJpeChjb25zdCBGbG9hdDMyQXJyYXkmKTsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1f
bWF0cml4OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRy
aXguaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwKaW5kZXggMjFi
NzA4Zi4uMDk5MjE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01h
dHJpeC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwKQEAg
LTU5LDExICs1OSwxOSBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBt
NDM7CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgbTQ0OwogCisgICAgICAgIC8vIENvcHkgdGhl
IG1hdHJpeCBlbGVtZW50cyBmb3IgYSBzaW5nbGUgcHJlY2lzaW9uIGZsb2F0IHBvaW50IGFycmF5
CisgICAgICAgIHZvaWQgdG9BcnJheShpbiBGbG9hdDMyQXJyYXkgYXJyYXkpOworICAgICAgICAv
LyBDb3B5IHRoZSBtYXRyaXggZWxlbWVudHMgZm9yIGEgZG91YmxlIHByZWNpc2lvbiBmbG9hdCBw
b2ludCBhcnJheQorICAgICAgICB2b2lkIHRvQXJyYXkoaW4gRmxvYXQ2NEFycmF5IGFycmF5KTsK
KwogICAgICAgICB2b2lkIHNldE1hdHJpeFZhbHVlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIHN0cmluZykgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAg
ICAKICAgICAgICAgLy8gTXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vjb25kTWF0cml4LCBvbiB0
aGUgcmlnaHQgKHJlc3VsdCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCiAgICAgICAgIFtJbW11dGFi
bGVdIFdlYktpdENTU01hdHJpeCBtdWx0aXBseShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0
VmFsdWVdIFdlYktpdENTU01hdHJpeCBzZWNvbmRNYXRyaXgpOwotICAgICAgICAKKworICAgICAg
ICAvLyBNdWx0aXBseSBpdHNlbGYgYnkgYSBzZWNvbmRNYXRyaXgsIG9uIHRoZSByaWdodCAodGhp
cyA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCisgICAgICAgIHZvaWQgbXVsdGlwbGllZEJ5KGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gV2ViS2l0Q1NTTWF0cml4IHNlY29uZE1hdHJp
eCk7CisKICAgICAgICAgLy8gUmV0dXJuIHRoZSBpbnZlcnNlIG9mIHRoaXMgbWF0cml4LiBUaHJv
dyBhbiBleGNlcHRpb24gaWYgdGhlIG1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZQogICAgICAgICBb
SW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggaW52ZXJzZSgpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgCkBAIC03MiwyMSArODAsNDIgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIFtJ
bW11dGFibGVdIFdlYktpdENTU01hdHJpeCB0cmFuc2xhdGUoaW4gW09wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSBkb3VibGUgeCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUg
eSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgeik7Ci0gICAgICAgIAorCisgICAg
ICAgIC8vIFRyYW5zbGF0ZSBpdHNlbGYgdXNpbmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgICAg
IC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBUaGlzIGFsbG93cyB0aGUg
M0QgZm9ybSB0byB1c2VkIGZvciAyRCBvcGVyYXRpb25zCisgICAgICAgIHZvaWQgdHJhbnNsYXRl
ZEJ5KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91
YmxlIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gZG91YmxlIHopOworCisKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJp
eCBzY2FsZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgICAgIC8vIFBhc3Npbmcgc2NhbGVY
IG9yIHNjYWxlWiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNzaW5nIHNjYWxlWSBv
ZiBOYU4gCiAgICAgICAgIC8vIG1ha2VzIGl0IHRoZSBzYW1lIGFzIHNjYWxlWC4gVGhpcyBhbGxv
d3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucwogICAgICAgICBbSW1tdXRh
YmxlXSBXZWJLaXRDU1NNYXRyaXggc2NhbGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBkb3VibGUgc2NhbGVYLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHNjYWxlWSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBzY2FsZVopOwotICAgICAgICAKKworICAgICAg
ICAvLyBTY2FsZSBpdHNlbGYgdXNpbmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgICAgIC8vIFBh
c3Npbmcgc2NhbGVYIG9yIHNjYWxlWiBhcyBOYU4gdXNlcyBhIHZhbHVlIG9mIDEsIGJ1dCBwYXNz
aW5nIHNjYWxlWSBvZiBOYU4KKyAgICAgICAgLy8gbWFrZXMgaXQgdGhlIHNhbWUgYXMgc2NhbGVY
LiBUaGlzIGFsbG93cyB0aGUgM0QgZm9ybSB0byB1c2VkIGZvciAyRCBvcGVyYXRpb25zCisgICAg
ICAgIHZvaWQgc2NhbGVkQnkoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3Vi
bGUgc2NhbGVYLAorICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gZG91YmxlIHNjYWxlWSwKKyAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBzY2FsZVopOworCiAgICAgICAgIC8v
IFJldHVybnMgdGhpcyBtYXRyaXggcm90YXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAg
ICAgLy8gSWYgcm90WSBhbmQgcm90WiBhcmUgTmFOLCByb3RhdGUgYWJvdXQgWiAocm90WD0wLCBy
b3RhdGVZPTAsIHJvdGF0ZVo9cm90WCkuCiAgICAgICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3Rh
dGlvbiB2YWx1ZSBvZiAwIGZvciBhbnkgcGFzc2VkIE5hTi4gICAgCiAgICAgICAgIFtJbW11dGFi
bGVdIFdlYktpdENTU01hdHJpeCByb3RhdGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBkb3VibGUgcm90WCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgcm90WSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgcm90Wik7Ci0gICAgICAgIAorCisgICAgICAgIC8v
IFJvdGF0ZSBpdHNlbGYgdXNpbmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgICAgIC8vIElmIHJv
dFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRlWT0wLCBy
b3RhdGVaPXJvdFgpLgorICAgICAgICAvLyBPdGhlcndpc2UgdXNlIGEgcm90YXRpb24gdmFsdWUg
b2YgMCBmb3IgYW55IHBhc3NlZCBOYU4uCisgICAgICAgIHZvaWQgcm90YXRlZEJ5KGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHJvdFgsCisgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHJvdFksCisg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
ZG91YmxlIHJvdFopOworCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXggcm90YXRlZCBh
Ym91dCB0aGUgcGFzc2VkIGF4aXMgYnkgdGhlIHBhc3NlZCBhbmdsZS4KICAgICAgICAgLy8gUGFz
c2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuIElmIHRoZSBheGlzIGlzICgwLDAsMCkg
dXNlIGEgdmFsdWUKICAgICAgICAgLy8gb2YgKDAsMCwxKS4KQEAgLTk0LDE1ICsxMjMsMjggQEAg
bW9kdWxlIGNzcyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgeSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgeiwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSBkb3VibGUgYW5nbGUpOworICAgICAgICAvLyBSb3RhdGUgaXRzZWxmIHVz
aW5nIHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2VkIGFuZ2xlLgorICAgICAgICB2b2lkIHJv
dGF0ZWRBeGlzQW5nbGVCeShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJs
ZSB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdp
dGhEZWZhdWx0VmFsdWVdIGRvdWJsZSB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSB6LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IGRvdWJsZSBhbmdsZSk7CiAKICAgICAgICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCBza2V3ZWQg
YWxvbmcgdGhlIFggYXhpcyBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gUGFzc2lu
ZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCiAgICAgICAgIFtJbW11dGFibGVdIFdlYktp
dENTU01hdHJpeCBza2V3WChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJs
ZSBhbmdsZSk7CiAKKyAgICAgICAgLy8gU2tldyBpdHNlbGYgYWxvbmcgdGhlIFggYXhpcyB1c2lu
ZyB0aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBh
IHZhbHVlIG9mIDAuCisgICAgICAgIHZvaWQgc2tld2VkWEJ5KGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gZG91YmxlIGFuZ2xlKTsKKwogICAgICAgICAvLyBSZXR1cm5zIHRoaXMg
bWF0cml4IHNrZXdlZCBhbG9uZyB0aGUgWSBheGlzIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAg
ICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4KICAgICAgICAgW0lt
bXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNrZXdZKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gZG91YmxlIGFuZ2xlKTsKIAorICAgICAgICAvLyBTa2V3IGl0c2VsZiBhbG9uZyB0
aGUgWSBheGlzIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgorICAgICAgICAvLyBQYXNzaW5nIGEg
TmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4KKyAgICAgICAgdm9pZCBza2V3ZWRZQnkoaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgYW5nbGUpOworCiAgICAgICAgIFtE
b250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAgICAgfTsKIAotLSAKMS43LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111651</attachid>
            <date>2011-10-19 11:27:11 -0700</date>
            <delta_ts>2022-02-28 04:04:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Make-WebKitCSSMatrix-more-efficient-for-use-in-WebGL.patch</filename>
            <type>text/plain</type>
            <size>29365</size>
            <attacher name="Igor Trindade Oliveira">igor.oliveira</attacher>
            
              <data encoding="base64">RnJvbSAzYTZhNGQ1OGQ4ZGZmNDQxZThkNzkyZWQ3NjIzNzNlZWVmZWU1MGRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIE9saXZlaXJhIDxpZ29yLm9saXZlaXJhQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFdlZCwgMTkgT2N0IDIwMTEgMTM6NTg6MTEgLTA0MDAKU3ViamVjdDogW1BB
VENIXSBNYWtlIFdlYktpdENTU01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdM
CgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxMiArKwogLi4uL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS1leHBlY3Rl
ZC50eHQgfCAgIDkwICsrKysrKysrKysrKysrCiAuLi4vdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2Qt
aW50ZXJmYWNlLnhodG1sICAgICAgICB8ICAxMDcgKysrKysrKysrKysrKysrKwogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysKIFNv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwICAgICAgICAgICAgIHwgIDEyNyAr
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5o
ICAgICAgICAgICAgICAgfCAgIDU1ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU01hdHJpeC5pZGwgICAgICAgICAgICAgfCAgIDUwICsrKysrKystCiA3IGZpbGVzIGNoYW5n
ZWQsIDQ2MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMDU3YWNhLi5j
NzhmYjg2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE5ICBJZ29yIE9saXZlaXJh
ICA8aWdvci5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIE1ha2UgV2ViS2l0Q1NT
TWF0cml4IG1vcmUgZWZmaWNpZW50IGZvciB1c2UgaW4gV2ViR0wKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNjMzCisKKyAgICAgICAgQWRkIHRlc3Rz
IGZvciB0aGUgbXV0YWJsZSBtZXRob2RzIGluIFdlYktpdENTU01hdHJpeC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRyYW5zZm9ybXMvY3NzbWF0
cml4LTNkLWludGVyZmFjZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogdHJhbnNmb3Jtcy9jc3Nt
YXRyaXgtM2QtaW50ZXJmYWNlLnhodG1sOgorCiAyMDExLTEwLTE5ICBEaXJrIFNjaHVsemUgIDxr
cml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk3ODYz
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJm
YWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWlu
dGVyZmFjZS1leHBlY3RlZC50eHQKaW5kZXggOTVhYmU1Mi4uOTkzMDE0ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UtZXhw
ZWN0ZWQudHh0CkBAIC0xODAsNiArMTgwLDI0IEBAIFBBU1MgbS5tNDIgaXMgMAogUEFTUyBtLm00
MyBpcyAwCiBQQVNTIG0ubTQ0IGlzIDEKIAorVGVzdCBtdWx0aXBsaWVkQnkKK1BBU1MgcGFyc2VG
bG9hdChtLm0xMSkgaXMgNTM4CitQQVNTIHBhcnNlRmxvYXQobS5tMTIpIGlzIDYxMgorUEFTUyBw
YXJzZUZsb2F0KG0ubTEzKSBpcyA2ODYKK1BBU1MgcGFyc2VGbG9hdChtLm0xNCkgaXMgNzYwCitQ
QVNTIHBhcnNlRmxvYXQobS5tMjEpIGlzIDY1MAorUEFTUyBwYXJzZUZsb2F0KG0ubTIyKSBpcyA3
NDAKK1BBU1MgcGFyc2VGbG9hdChtLm0yMykgaXMgODMwCitQQVNTIHBhcnNlRmxvYXQobS5tMjQp
IGlzIDkyMAorUEFTUyBwYXJzZUZsb2F0KG0ubTMxKSBpcyA3NjIKK1BBU1MgcGFyc2VGbG9hdCht
Lm0zMikgaXMgODY4CitQQVNTIHBhcnNlRmxvYXQobS5tMzMpIGlzIDk3NAorUEFTUyBwYXJzZUZs
b2F0KG0ubTM0KSBpcyAxMDgwCitQQVNTIHBhcnNlRmxvYXQobS5tNDEpIGlzIDg3NAorUEFTUyBw
YXJzZUZsb2F0KG0ubTQyKSBpcyA5OTYKK1BBU1MgcGFyc2VGbG9hdChtLm00MykgaXMgMTExOAor
UEFTUyBwYXJzZUZsb2F0KG0ubTQ0KSBpcyAxMjQwCisKIFRlc3QgaW52ZXJzZQogUEFTUyBwYXJz
ZUZsb2F0KG0yLm0xMSkgaXMgMC41CiBQQVNTIHBhcnNlRmxvYXQobTIubTEyKSBpcyAwCkBAIC0y
NTUsNiArMjczLDI0IEBAIFBBU1MgbS5tNDIgaXMgMAogUEFTUyBtLm00MyBpcyAwCiBQQVNTIG0u
bTQ0IGlzIDEKIAorVGVzdCB0cmFuc2xhdGVkQnkKK1BBU1MgbS5tMTEgaXMgMQorUEFTUyBtLm0x
MiBpcyAwCitQQVNTIG0ubTEzIGlzIDAKK1BBU1MgbS5tMTQgaXMgMAorUEFTUyBtLm0yMSBpcyAw
CitQQVNTIG0ubTIyIGlzIDEKK1BBU1MgbS5tMjMgaXMgMAorUEFTUyBtLm0yNCBpcyAwCitQQVNT
IG0ubTMxIGlzIDAKK1BBU1MgbS5tMzIgaXMgMAorUEFTUyBtLm0zMyBpcyAxCitQQVNTIG0ubTM0
IGlzIDAKK1BBU1MgbS5tNDEgaXMgMTAKK1BBU1MgbS5tNDIgaXMgMjAKK1BBU1MgbS5tNDMgaXMg
MzAKK1BBU1MgbS5tNDQgaXMgMQorCiBUZXN0IHNjYWxlCiBQQVNTIG0yLm0xMSBpcyAxMAogUEFT
UyBtMi5tMTIgaXMgMApAQCAtMjkxLDYgKzMyNywyNCBAQCBQQVNTIG0ubTQyIGlzIDAKIFBBU1Mg
bS5tNDMgaXMgMAogUEFTUyBtLm00NCBpcyAxCiAKK1Rlc3Qgc2NhbGVkQnkKK1BBU1MgbS5tMTEg
aXMgMTAKK1BBU1MgbS5tMTIgaXMgMAorUEFTUyBtLm0xMyBpcyAwCitQQVNTIG0ubTE0IGlzIDAK
K1BBU1MgbS5tMjEgaXMgMAorUEFTUyBtLm0yMiBpcyAyMAorUEFTUyBtLm0yMyBpcyAwCitQQVNT
IG0ubTI0IGlzIDAKK1BBU1MgbS5tMzEgaXMgMAorUEFTUyBtLm0zMiBpcyAwCitQQVNTIG0ubTMz
IGlzIDMwCitQQVNTIG0ubTM0IGlzIDAKK1BBU1MgbS5tNDEgaXMgMAorUEFTUyBtLm00MiBpcyAw
CitQQVNTIG0ubTQzIGlzIDAKK1BBU1MgbS5tNDQgaXMgMQorCiBUZXN0IHJvdGF0ZQogUEFTUyBw
YXJzZUZsb2F0KG0yLm0xMS50b1ByZWNpc2lvbig2KSkgaXMgMC44MTM3OTgKIFBBU1MgcGFyc2VG
bG9hdChtMi5tMTIudG9QcmVjaXNpb24oNikpIGlzIDAuNDY5ODQ2CkBAIC0zMjcsNiArMzgxLDI0
IEBAIFBBU1MgbS5tNDIgaXMgMAogUEFTUyBtLm00MyBpcyAwCiBQQVNTIG0ubTQ0IGlzIDEKIAor
VGVzdCByb3RhdGVkQnkKK1BBU1MgcGFyc2VGbG9hdChtLm0xMS50b1ByZWNpc2lvbig2KSkgaXMg
MC44MTM3OTgKK1BBU1MgcGFyc2VGbG9hdChtLm0xMi50b1ByZWNpc2lvbig2KSkgaXMgMC40Njk4
NDYKK1BBU1MgcGFyc2VGbG9hdChtLm0xMy50b1ByZWNpc2lvbig2KSkgaXMgLTAuMzQyMDIKK1BB
U1MgcGFyc2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0
KG0ubTIxLnRvUHJlY2lzaW9uKDYpKSBpcyAtMC40NDA5NworUEFTUyBwYXJzZUZsb2F0KG0ubTIy
LnRvUHJlY2lzaW9uKDYpKSBpcyAwLjg4MjU2NAorUEFTUyBwYXJzZUZsb2F0KG0ubTIzLnRvUHJl
Y2lzaW9uKDYpKSBpcyAwLjE2MzE3NgorUEFTUyBwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9u
KDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tMzEudG9QcmVjaXNpb24oNikpIGlzIDAuMzc4
NTIyCitQQVNTIHBhcnNlRmxvYXQobS5tMzIudG9QcmVjaXNpb24oNikpIGlzIDAuMDE4MDI4Mwor
UEFTUyBwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjkyNTQxNworUEFTUyBw
YXJzZUZsb2F0KG0ubTM0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5t
NDEudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1MgcGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lv
big2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0ubTQzLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQ
QVNTIHBhcnNlRmxvYXQobS5tNDQudG9QcmVjaXNpb24oNikpIGlzIDEKKwogVGVzdCByb3RhdGVB
eGlzQW5nbGUKIFBBU1MgcGFyc2VGbG9hdChtMi5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODA0
NzM4CiBQQVNTIHBhcnNlRmxvYXQobTIubTEyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjUwNTg3OQpA
QCAtMzYzLDYgKzQzNSwyNCBAQCBQQVNTIG0ubTQyIGlzIDAKIFBBU1MgbS5tNDMgaXMgMAogUEFT
UyBtLm00NCBpcyAxCiAKK1Rlc3Qgcm90YXRlZEF4aXNBbmdsZUJ5CitQQVNTIHBhcnNlRmxvYXQo
bS5tMTEudG9QcmVjaXNpb24oNikpIGlzIDAuODA0NzM4CitQQVNTIHBhcnNlRmxvYXQobS5tMTIu
dG9QcmVjaXNpb24oNikpIGlzIDAuNTA1ODc5CitQQVNTIHBhcnNlRmxvYXQobS5tMTMudG9QcmVj
aXNpb24oNikpIGlzIC0wLjMxMDYxNworUEFTUyBwYXJzZUZsb2F0KG0ubTE0LnRvUHJlY2lzaW9u
KDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tMjEudG9QcmVjaXNpb24oNikpIGlzIC0wLjMx
MDYxNworUEFTUyBwYXJzZUZsb2F0KG0ubTIyLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjgwNDczOAor
UEFTUyBwYXJzZUZsb2F0KG0ubTIzLnRvUHJlY2lzaW9uKDYpKSBpcyAwLjUwNTg3OQorUEFTUyBw
YXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5t
MzEudG9QcmVjaXNpb24oNikpIGlzIDAuNTA1ODc5CitQQVNTIHBhcnNlRmxvYXQobS5tMzIudG9Q
cmVjaXNpb24oNikpIGlzIC0wLjMxMDYxNworUEFTUyBwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lz
aW9uKDYpKSBpcyAwLjgwNDczOAorUEFTUyBwYXJzZUZsb2F0KG0ubTM0LnRvUHJlY2lzaW9uKDYp
KSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDEudG9QcmVjaXNpb24oNikpIGlzIDAKK1BBU1Mg
cGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSkgaXMgMAorUEFTUyBwYXJzZUZsb2F0KG0u
bTQzLnRvUHJlY2lzaW9uKDYpKSBpcyAwCitQQVNTIHBhcnNlRmxvYXQobS5tNDQudG9QcmVjaXNp
b24oNikpIGlzIDEKKwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1p
bnRlcmZhY2UueGh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRl
cmZhY2UueGh0bWwKaW5kZXggN2Q5YWNjNi4uZGNlZmRiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1sCisrKyBiL0xheW91dFRl
c3RzL3RyYW5zZm9ybXMvY3NzbWF0cml4LTNkLWludGVyZmFjZS54aHRtbApAQCAtMjM3LDYgKzIz
NywyOCBAQCBzaG91bGRCZSgnbS5tNDMnLCAnMCcpOwogc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsK
IAogZGVidWcoIiIpOworZGVidWcoIlRlc3QgbXVsdGlwbGllZEJ5Iik7CittID0gIG5ldyBXZWJL
aXRDU1NNYXRyaXgoIm1hdHJpeDNkKCAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDks
IDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2KSIpOworbTIgPSBuZXcgV2ViS2l0Q1NTTWF0cml4
KCJtYXRyaXgzZCgxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4
LCAyOSwgMzAsIDMxLCAzMikiKTsKK20ubXVsdGlwbGllZEJ5KG0yKTsKK3Nob3VsZEJlKCdwYXJz
ZUZsb2F0KG0ubTExKScsICc1MzgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEyKScsICc2
MTInKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEzKScsICc2ODYnKTsKK3Nob3VsZEJlKCdw
YXJzZUZsb2F0KG0ubTE0KScsICc3NjAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIxKScs
ICc2NTAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIyKScsICc3NDAnKTsKK3Nob3VsZEJl
KCdwYXJzZUZsb2F0KG0ubTIzKScsICc4MzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0
KScsICc5MjAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMxKScsICc3NjInKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTMyKScsICc4NjgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0u
bTMzKScsICc5NzQnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTM0KScsICcxMDgwJyk7Citz
aG91bGRCZSgncGFyc2VGbG9hdChtLm00MSknLCAnODc0Jyk7CitzaG91bGRCZSgncGFyc2VGbG9h
dChtLm00MiknLCAnOTk2Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00MyknLCAnMTExOCcp
Oworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDQpJywgJzEyNDAnKTsKKworZGVidWcoIiIpOwog
ZGVidWcoIlRlc3QgaW52ZXJzZSIpOwogbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoIm1hdHJpeDNk
KDIsIDAsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIDAsIDIsIDAsIDEwLCAyMCwgMzAsIDEpIik7CiBt
MiA9IG0uaW52ZXJzZSgpOwpAQCAtMzIzLDYgKzM0NSwyNyBAQCBzaG91bGRCZSgnbS5tNDMnLCAn
MCcpOwogc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKIAogZGVidWcoIiIpOworZGVidWcoIlRlc3Qg
dHJhbnNsYXRlZEJ5Iik7Cit2YXIgbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsKK20udHJhbnNs
YXRlZEJ5KDEwLCAyMCwgMzApOworc2hvdWxkQmUoJ20ubTExJywgJzEnKTsKK3Nob3VsZEJlKCdt
Lm0xMicsICcwJyk7CitzaG91bGRCZSgnbS5tMTMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTE0Jywg
JzAnKTsKK3Nob3VsZEJlKCdtLm0yMScsICcwJyk7CitzaG91bGRCZSgnbS5tMjInLCAnMScpOwor
c2hvdWxkQmUoJ20ubTIzJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yNCcsICcwJyk7CitzaG91bGRC
ZSgnbS5tMzEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTMyJywgJzAnKTsKK3Nob3VsZEJlKCdtLm0z
MycsICcxJyk7CitzaG91bGRCZSgnbS5tMzQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQxJywgJzEw
Jyk7CitzaG91bGRCZSgnbS5tNDInLCAnMjAnKTsKK3Nob3VsZEJlKCdtLm00MycsICczMCcpOwor
c2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKKworZGVidWcoIiIpOwogZGVidWcoIlRlc3Qgc2NhbGUi
KTsKIG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7CiBtMiA9IG0uc2NhbGUoMTAsIDIwLCAzMCk7
CkBAIC0zNjMsNiArNDA2LDI3IEBAIHNob3VsZEJlKCdtLm00MycsICcwJyk7CiBzaG91bGRCZSgn
bS5tNDQnLCAnMScpOwogCiBkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBzY2FsZWRCeSIpOworbSA9
IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsKK20uc2NhbGVkQnkoMTAsIDIwLCAzMCk7CitzaG91bGRC
ZSgnbS5tMTEnLCAnMTAnKTsKK3Nob3VsZEJlKCdtLm0xMicsICcwJyk7CitzaG91bGRCZSgnbS5t
MTMnLCAnMCcpOworc2hvdWxkQmUoJ20ubTE0JywgJzAnKTsKK3Nob3VsZEJlKCdtLm0yMScsICcw
Jyk7CitzaG91bGRCZSgnbS5tMjInLCAnMjAnKTsKK3Nob3VsZEJlKCdtLm0yMycsICcwJyk7Citz
aG91bGRCZSgnbS5tMjQnLCAnMCcpOworc2hvdWxkQmUoJ20ubTMxJywgJzAnKTsKK3Nob3VsZEJl
KCdtLm0zMicsICcwJyk7CitzaG91bGRCZSgnbS5tMzMnLCAnMzAnKTsKK3Nob3VsZEJlKCdtLm0z
NCcsICcwJyk7CitzaG91bGRCZSgnbS5tNDEnLCAnMCcpOworc2hvdWxkQmUoJ20ubTQyJywgJzAn
KTsKK3Nob3VsZEJlKCdtLm00MycsICcwJyk7CitzaG91bGRCZSgnbS5tNDQnLCAnMScpOworCitk
ZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCByb3RhdGUiKTsKIG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4
KCk7CiBtMiA9IG0ucm90YXRlKDEwLCAyMCwgMzApOwpAQCAtNDAzLDYgKzQ2NywyOCBAQCBzaG91
bGRCZSgnbS5tNDMnLCAnMCcpOwogc2hvdWxkQmUoJ20ubTQ0JywgJzEnKTsKIAogZGVidWcoIiIp
OworZGVidWcoIlRlc3Qgcm90YXRlZEJ5Iik7CittID0gbmV3IFdlYktpdENTU01hdHJpeCgpOwor
bS5yb3RhdGVkQnkoMTAsIDIwLCAzMCk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0xMS50b1By
ZWNpc2lvbig2KSknLCAnMC44MTM3OTgnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTEyLnRv
UHJlY2lzaW9uKDYpKScsICcwLjQ2OTg0NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMTMu
dG9QcmVjaXNpb24oNikpJywgJy0wLjM0MjAyJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0x
NC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMjEudG9Q
cmVjaXNpb24oNikpJywgJy0wLjQ0MDk3Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm0yMi50
b1ByZWNpc2lvbig2KSknLCAnMC44ODI1NjQnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTIz
LnRvUHJlY2lzaW9uKDYpKScsICcwLjE2MzE3NicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MjQudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMxLnRv
UHJlY2lzaW9uKDYpKScsICcwLjM3ODUyMicpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzIu
dG9QcmVjaXNpb24oNikpJywgJzAuMDE4MDI4MycpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5t
MzMudG9QcmVjaXNpb24oNikpJywgJzAuOTI1NDE3Jyk7CitzaG91bGRCZSgncGFyc2VGbG9hdCht
Lm0zNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDEu
dG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0KG0ubTQyLnRvUHJl
Y2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgncGFyc2VGbG9hdChtLm00My50b1ByZWNpc2lv
big2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tNDQudG9QcmVjaXNpb24oNikp
JywgJzEnKTsKKworCitkZWJ1ZygiIik7CiBkZWJ1ZygiVGVzdCByb3RhdGVBeGlzQW5nbGUiKTsK
IG0gPSBuZXcgV2ViS2l0Q1NTTWF0cml4KCk7CiBtMiA9IG0ucm90YXRlQXhpc0FuZ2xlKDAuNzA3
LCAwLjcwNywgMC43MDcsIDQ1KTsKQEAgLTQ0Myw2ICs1MjksMjcgQEAgc2hvdWxkQmUoJ20ubTQz
JywgJzAnKTsKIHNob3VsZEJlKCdtLm00NCcsICcxJyk7CiAKIGRlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0IHJvdGF0ZWRBeGlzQW5nbGVCeSIpOworbSA9IG5ldyBXZWJLaXRDU1NNYXRyaXgoKTsKK20u
cm90YXRlZEF4aXNBbmdsZUJ5KDAuNzA3LCAwLjcwNywgMC43MDcsIDQ1KTsKK3Nob3VsZEJlKCdw
YXJzZUZsb2F0KG0ubTExLnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDczOCcpOworc2hvdWxkQmUo
J3BhcnNlRmxvYXQobS5tMTIudG9QcmVjaXNpb24oNikpJywgJzAuNTA1ODc5Jyk7CitzaG91bGRC
ZSgncGFyc2VGbG9hdChtLm0xMy50b1ByZWNpc2lvbig2KSknLCAnLTAuMzEwNjE3Jyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtLm0xNC50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUo
J3BhcnNlRmxvYXQobS5tMjEudG9QcmVjaXNpb24oNikpJywgJy0wLjMxMDYxNycpOworc2hvdWxk
QmUoJ3BhcnNlRmxvYXQobS5tMjIudG9QcmVjaXNpb24oNikpJywgJzAuODA0NzM4Jyk7CitzaG91
bGRCZSgncGFyc2VGbG9hdChtLm0yMy50b1ByZWNpc2lvbig2KSknLCAnMC41MDU4NzknKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KG0ubTI0LnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRC
ZSgncGFyc2VGbG9hdChtLm0zMS50b1ByZWNpc2lvbig2KSknLCAnMC41MDU4NzknKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTMyLnRvUHJlY2lzaW9uKDYpKScsICctMC4zMTA2MTcnKTsKK3No
b3VsZEJlKCdwYXJzZUZsb2F0KG0ubTMzLnRvUHJlY2lzaW9uKDYpKScsICcwLjgwNDczOCcpOwor
c2hvdWxkQmUoJ3BhcnNlRmxvYXQobS5tMzQudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3Vs
ZEJlKCdwYXJzZUZsb2F0KG0ubTQxLnRvUHJlY2lzaW9uKDYpKScsICcwJyk7CitzaG91bGRCZSgn
cGFyc2VGbG9hdChtLm00Mi50b1ByZWNpc2lvbig2KSknLCAnMCcpOworc2hvdWxkQmUoJ3BhcnNl
RmxvYXQobS5tNDMudG9QcmVjaXNpb24oNikpJywgJzAnKTsKK3Nob3VsZEJlKCdwYXJzZUZsb2F0
KG0ubTQ0LnRvUHJlY2lzaW9uKDYpKScsICcxJyk7CisKK2RlYnVnKCIiKTsKIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1NjQ3ZTguLjM4Zjlm
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0xMC0xOSAgSWdvciBPbGl2ZWly
YSAgPGlnb3Iub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBNYWtlIFdlYktpdENT
U01hdHJpeCBtb3JlIGVmZmljaWVudCBmb3IgdXNlIGluIFdlYkdMCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDYzMworCisgICAgICAgIFRoaXMgcGF0
Y2ggaW1wbGVtZW50cyBtdXRhYmxlIG1ldGhvZHMgZm9yIFdlYktpdENTU01hdHJpeC4gVGhlIG11
dGFibGUgbWV0aG9kcworICAgICAgICBjYW4gbWFrZSBXZWJLaXRDU1NNYXRyaXggaW4gV2ViR0wg
bW9yZSBlZmZpY2llbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU01hdHJpeDo6dG9BcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRy
aXg6Om11bHRpcGxpZWRCeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnRy
YW5zbGF0ZWRCeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OnNjYWxlZEJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6cm90YXRlZEJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6cm90YXRlZEF4aXNBbmdsZUJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdENTU01hdHJpeDo6c2tld2VkWEJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdENTU01hdHJpeDo6c2tld2VkWUJ5KToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NT
TWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZSk6Cisg
ICAgICAgICogY3NzL1dlYktpdENTU01hdHJpeC5pZGw6CisKIDIwMTEtMTAtMTkgIERpcmsgU2No
dWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByOTc4NjMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCmluZGV4IGY2MTcx
OWUuLmI0MDIwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRy
aXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwCkBAIC0z
Miw2ICszMiw4IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAi
RmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiRmxvYXQ2NEFycmF5LmgiCiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsNiArNTIsNTIgQEAg
V2ViS2l0Q1NTTWF0cml4Ojp+V2ViS2l0Q1NTTWF0cml4KCkKIHsKIH0KIAordm9pZCBXZWJLaXRD
U1NNYXRyaXg6OnRvQXJyYXkoRmxvYXQzMkFycmF5KiBhcnJheSkKK3sKKyAgICBpZiAoIWFycmF5
IHx8IGFycmF5LT5sZW5ndGgoKSA8IDE2KQorICAgICAgICByZXR1cm47CisKKyAgICBhcnJheS0+
c2V0KDAsIG1fbWF0cml4Lm0xMSgpKTsKKyAgICBhcnJheS0+c2V0KDEsIG1fbWF0cml4Lm0xMigp
KTsKKyAgICBhcnJheS0+c2V0KDIsIG1fbWF0cml4Lm0xMygpKTsKKyAgICBhcnJheS0+c2V0KDMs
IG1fbWF0cml4Lm0xNCgpKTsKKyAgICBhcnJheS0+c2V0KDQsIG1fbWF0cml4Lm0yMSgpKTsKKyAg
ICBhcnJheS0+c2V0KDUsIG1fbWF0cml4Lm0yMigpKTsKKyAgICBhcnJheS0+c2V0KDYsIG1fbWF0
cml4Lm0yMygpKTsKKyAgICBhcnJheS0+c2V0KDcsIG1fbWF0cml4Lm0yNCgpKTsKKyAgICBhcnJh
eS0+c2V0KDgsIG1fbWF0cml4Lm0zMSgpKTsKKyAgICBhcnJheS0+c2V0KDksIG1fbWF0cml4Lm0z
MigpKTsKKyAgICBhcnJheS0+c2V0KDEwLCBtX21hdHJpeC5tMzMoKSk7CisgICAgYXJyYXktPnNl
dCgxMSwgbV9tYXRyaXgubTM0KCkpOworICAgIGFycmF5LT5zZXQoMTIsIG1fbWF0cml4Lm00MSgp
KTsKKyAgICBhcnJheS0+c2V0KDEzLCBtX21hdHJpeC5tNDIoKSk7CisgICAgYXJyYXktPnNldCgx
NCwgbV9tYXRyaXgubTQzKCkpOworICAgIGFycmF5LT5zZXQoMTUsIG1fbWF0cml4Lm00NCgpKTsK
K30KKwordm9pZCBXZWJLaXRDU1NNYXRyaXg6OnRvQXJyYXkoRmxvYXQ2NEFycmF5KiBhcnJheSkK
K3sKKyAgICBpZiAoIWFycmF5IHx8IGFycmF5LT5sZW5ndGgoKSA8IDE2KQorICAgICAgICByZXR1
cm47CisKKyAgICBhcnJheS0+c2V0KDAsIG1fbWF0cml4Lm0xMSgpKTsKKyAgICBhcnJheS0+c2V0
KDEsIG1fbWF0cml4Lm0xMigpKTsKKyAgICBhcnJheS0+c2V0KDIsIG1fbWF0cml4Lm0xMygpKTsK
KyAgICBhcnJheS0+c2V0KDMsIG1fbWF0cml4Lm0xNCgpKTsKKyAgICBhcnJheS0+c2V0KDQsIG1f
bWF0cml4Lm0yMSgpKTsKKyAgICBhcnJheS0+c2V0KDUsIG1fbWF0cml4Lm0yMigpKTsKKyAgICBh
cnJheS0+c2V0KDYsIG1fbWF0cml4Lm0yMygpKTsKKyAgICBhcnJheS0+c2V0KDcsIG1fbWF0cml4
Lm0yNCgpKTsKKyAgICBhcnJheS0+c2V0KDgsIG1fbWF0cml4Lm0zMSgpKTsKKyAgICBhcnJheS0+
c2V0KDksIG1fbWF0cml4Lm0zMigpKTsKKyAgICBhcnJheS0+c2V0KDEwLCBtX21hdHJpeC5tMzMo
KSk7CisgICAgYXJyYXktPnNldCgxMSwgbV9tYXRyaXgubTM0KCkpOworICAgIGFycmF5LT5zZXQo
MTIsIG1fbWF0cml4Lm00MSgpKTsKKyAgICBhcnJheS0+c2V0KDEzLCBtX21hdHJpeC5tNDIoKSk7
CisgICAgYXJyYXktPnNldCgxNCwgbV9tYXRyaXgubTQzKCkpOworICAgIGFycmF5LT5zZXQoMTUs
IG1fbWF0cml4Lm00NCgpKTsKK30KKwogdm9pZCBXZWJLaXRDU1NNYXRyaXg6OnNldE1hdHJpeFZh
bHVlKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQ
dHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlRGVjbGFyYXRpb24gPSBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CkBAIC05Myw2ICsxNDEsMTQgQEAgUGFzc1Jl
ZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6bXVsdGlwbHkoV2ViS2l0Q1NT
TWF0cml4KiBzZWNvbmRNYXQKICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0cml4OjpjcmVhdGUoVHJh
bnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLm11bHRpcGx5KHNlY29uZE1hdHJpeC0+bV9tYXRy
aXgpKTsKIH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6Om11bHRpcGxpZWRCeShXZWJLaXRDU1NN
YXRyaXgqIHNlY29uZE1hdHJpeCkKK3sKKyAgICBpZiAoIXNlY29uZE1hdHJpeCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9tYXRyaXgubXVsdGlwbHkoc2Vjb25kTWF0cml4LT5tX21hdHJpeCk7
Cit9CisKIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OmludmVy
c2UoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX21hdHJpeC5pc0ludmVy
dGlibGUoKSkgewpAQCAtMTE0LDYgKzE3MCwxOCBAQCBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJp
eD4gV2ViS2l0Q1NTTWF0cml4Ojp0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibAog
ICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCht
X21hdHJpeCkudHJhbnNsYXRlM2QoeCwgeSwgeikpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJp
eDo6dHJhbnNsYXRlZEJ5KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopCit7CisgICAgaWYg
KGlzbmFuKHgpKQorICAgICAgICB4ID0gMDsKKyAgICBpZiAoaXNuYW4oeSkpCisgICAgICAgIHkg
PSAwOworICAgIGlmIChpc25hbih6KSkKKyAgICAgICAgeiA9IDA7CisKKyAgICBtX21hdHJpeC50
cmFuc2xhdGUzZCh4LCB5LCB6KTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdl
YktpdENTU01hdHJpeDo6c2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91Ymxl
IHNjYWxlWikgY29uc3QKIHsKICAgICBpZiAoaXNuYW4oc2NhbGVYKSkKQEAgLTEyNSw2ICsxOTMs
MTggQEAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2NhbGUo
ZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwKICAgICByZXR1cm4gV2ViS2l0Q1NTTWF0cml4
OjpjcmVhdGUoVHJhbnNmb3JtYXRpb25NYXRyaXgobV9tYXRyaXgpLnNjYWxlM2Qoc2NhbGVYLCBz
Y2FsZVksIHNjYWxlWikpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6c2NhbGVkQnkoZG91
YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91YmxlIHNjYWxlWikKK3sKKyAgICBpZiAoaXNu
YW4oc2NhbGVYKSkKKyAgICAgICAgc2NhbGVYID0gMTsKKyAgICBpZiAoaXNuYW4oc2NhbGVZKSkK
KyAgICAgICAgc2NhbGVZID0gc2NhbGVYOworICAgIGlmIChpc25hbihzY2FsZVopKQorICAgICAg
ICBzY2FsZVogPSAxOworCisgICAgbV9tYXRyaXguc2NhbGUzZChzY2FsZVgsIHNjYWxlWSwgc2Nh
bGVaKTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6
cm90YXRlKGRvdWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91YmxlIHJvdFopIGNvbnN0CiB7CiAg
ICAgaWYgKGlzbmFuKHJvdFgpKQpAQCAtMTQzLDYgKzIyMywyNCBAQCBQYXNzUmVmUHRyPFdlYktp
dENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpyb3RhdGUoZG91YmxlIHJvdFgsIGRvdWJsZSBy
b3RZLCBkbwogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFuc2Zvcm1hdGlv
bk1hdHJpeChtX21hdHJpeCkucm90YXRlM2Qocm90WCwgcm90WSwgcm90WikpOwogfQogCit2b2lk
IFdlYktpdENTU01hdHJpeDo6cm90YXRlZEJ5KGRvdWJsZSByb3RYLCBkb3VibGUgcm90WSwgZG91
YmxlIHJvdFopCit7CisgICAgaWYgKGlzbmFuKHJvdFgpKQorICAgICAgICByb3RYID0gMDsKKwor
ICAgIGlmIChpc25hbihyb3RZKSAmJiBpc25hbihyb3RaKSkgeworICAgICAgICByb3RaID0gcm90
WDsKKyAgICAgICAgcm90WCA9IDA7CisgICAgICAgIHJvdFkgPSAwOworICAgIH0KKworICAgIGlm
IChpc25hbihyb3RZKSkKKyAgICAgICAgcm90WSA9IDA7CisgICAgaWYgKGlzbmFuKHJvdFopKQor
ICAgICAgICByb3RaID0gMDsKKyAgICBtX21hdHJpeC5yb3RhdGUzZChyb3RYLCByb3RZLCByb3Ra
KTsKK30KKwogUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6cm90
YXRlQXhpc0FuZ2xlKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkg
Y29uc3QKIHsKICAgICBpZiAoaXNuYW4oeCkpCkBAIC0xNTgsNiArMjU2LDIxIEBAIFBhc3NSZWZQ
dHI8V2ViS2l0Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnJvdGF0ZUF4aXNBbmdsZShkb3Vi
bGUgeCwgZG91YmxlIHksCiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJpeDo6Y3JlYXRlKFRyYW5z
Zm9ybWF0aW9uTWF0cml4KG1fbWF0cml4KS5yb3RhdGUzZCh4LCB5LCB6LCBhbmdsZSkpOwogfQog
Cit2b2lkIFdlYktpdENTU01hdHJpeDo6cm90YXRlZEF4aXNBbmdsZUJ5KGRvdWJsZSB4LCBkb3Vi
bGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkKK3sKKyAgICBpZiAoaXNuYW4oeCkpCisgICAg
ICAgIHggPSAwOworICAgIGlmIChpc25hbih5KSkKKyAgICAgICAgeSA9IDA7CisgICAgaWYgKGlz
bmFuKHopKQorICAgICAgICB6ID0gMDsKKyAgICBpZiAoaXNuYW4oYW5nbGUpKQorICAgICAgICBh
bmdsZSA9IDA7CisgICAgaWYgKCF4ICYmICF5ICYmICF6KQorICAgICAgICB6ID0gMTsKKyAgICBt
X21hdHJpeC5yb3RhdGUzZCh4LCB5LCB6LCBhbmdsZSk7Cit9CisKIFBhc3NSZWZQdHI8V2ViS2l0
Q1NTTWF0cml4PiBXZWJLaXRDU1NNYXRyaXg6OnNrZXdYKGRvdWJsZSBhbmdsZSkgY29uc3QKIHsK
ICAgICBpZiAoaXNuYW4oYW5nbGUpKQpAQCAtMTY1LDYgKzI3OCwxMyBAQCBQYXNzUmVmUHRyPFdl
YktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpza2V3WChkb3VibGUgYW5nbGUpIGNvbnN0
CiAgICAgcmV0dXJuIFdlYktpdENTU01hdHJpeDo6Y3JlYXRlKFRyYW5zZm9ybWF0aW9uTWF0cml4
KG1fbWF0cml4KS5za2V3WChhbmdsZSkpOwogfQogCit2b2lkIFdlYktpdENTU01hdHJpeDo6c2tl
d2VkWEJ5KGRvdWJsZSBhbmdsZSkKK3sKKyAgICBpZiAoaXNuYW4oYW5nbGUpKQorICAgICAgICBh
bmdsZSA9IDA7CisgICAgbV9tYXRyaXguc2tld1goYW5nbGUpOworfQorCiBQYXNzUmVmUHRyPFdl
YktpdENTU01hdHJpeD4gV2ViS2l0Q1NTTWF0cml4Ojpza2V3WShkb3VibGUgYW5nbGUpIGNvbnN0
CiB7CiAgICAgaWYgKGlzbmFuKGFuZ2xlKSkKQEAgLTE3Miw2ICsyOTIsMTMgQEAgUGFzc1JlZlB0
cjxXZWJLaXRDU1NNYXRyaXg+IFdlYktpdENTU01hdHJpeDo6c2tld1koZG91YmxlIGFuZ2xlKSBj
b25zdAogICAgIHJldHVybiBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShUcmFuc2Zvcm1hdGlvbk1h
dHJpeChtX21hdHJpeCkuc2tld1koYW5nbGUpKTsKIH0KIAordm9pZCBXZWJLaXRDU1NNYXRyaXg6
OnNrZXdlZFlCeShkb3VibGUgYW5nbGUpCit7CisgICAgaWYgKGlzbmFuKGFuZ2xlKSkKKyAgICAg
ICAgYW5nbGUgPSAwOworICAgIG1fbWF0cml4LnNrZXdZKGFuZ2xlKTsKK30KKwogU3RyaW5nIFdl
YktpdENTU01hdHJpeDo6dG9TdHJpbmcoKSBjb25zdAogewogICAgIC8vIEZJWE1FIC0gTmVlZCB0
byBlbnN1cmUgdmFsaWQgQ1NTIGZsb2F0aW5nIHBvaW50IHZhbHVlcyAoaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjc0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU01hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01h
dHJpeC5oCmluZGV4IDRhNjczMDMuLmJkMzk0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
TWF0cml4LmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBGbG9hdDMyQXJyYXk7CitjbGFzcyBGbG9hdDY0QXJyYXk7CisKIGNsYXNzIFdlYktpdENTU01h
dHJpeCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdENTU01hdHJpeD4gewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gY3JlYXRlKGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiBtKQpAQCAtNDQsNiArNDcsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYktpdENTU01hdHJpeChzLCBlYykpOwogICAgIH0KIAorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gY3JlYXRlKGNvbnN0IEZsb2F0MzJBcnJh
eSYgYXJyYXkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdENTU01h
dHJpeChhcnJheSkpOworICAgIH0KKwogICAgIHZpcnR1YWwgfldlYktpdENTU01hdHJpeCgpOwog
CiAgICAgZG91YmxlIGEoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5hKCk7IH0KQEAgLTk0LDYg
KzEwMiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNNDMoZG91YmxlIGYpIHsgbV9tYXRyaXgu
c2V0TTQzKGYpOyB9CiAgICAgdm9pZCBzZXRNNDQoZG91YmxlIGYpIHsgbV9tYXRyaXguc2V0TTQ0
KGYpOyB9CiAKKyAgICAvLyBDb3B5IHRoZSBtYXRyaXggZWxlbWVudHMgZm9yIGEgc2luZ2xlIHBy
ZWNpc2lvbiBmbG9hdCBwb2ludCBhcnJheQorICAgIHZvaWQgdG9BcnJheShGbG9hdDMyQXJyYXkq
KTsKKyAgICAvLyBDb3B5IHRoZSBtYXRyaXggZWxlbWVudHMgZm9yIGEgZG91YmxlIHByZWNpc2lv
biBmbG9hdCBwb2ludCBhcnJheQorICAgIHZvaWQgdG9BcnJheShGbG9hdDY0QXJyYXkqKTsKKwog
ICAgIHZvaWQgc2V0TWF0cml4VmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgLy8gVGhlIGZvbGxvd2luZyBtYXRoIGZ1bmN0aW9uIHJldHVybiBhIG5ldyBtYXRyaXgg
d2l0aCB0aGUKQEAgLTEwMiw2ICsxMTUsOSBAQCBwdWJsaWM6CiAgICAgLy8gTXVsdGlwbHkgdGhp
cyBtYXRyaXggYnkgc2Vjb25kTWF0cml4LCBvbiB0aGUgcmlnaHQgKHJlc3VsdCA9IHRoaXMgKiBz
ZWNvbmRNYXRyaXgpCiAgICAgUGFzc1JlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IG11bHRpcGx5KFdl
YktpdENTU01hdHJpeCogc2Vjb25kTWF0cml4KSBjb25zdDsKIAorICAgIC8vIE11bHRpcGx5IGl0
c2VsZiBieSBhIHNlY29uZE1hdHJpeCwgb24gdGhlIHJpZ2h0ICh0aGlzID0gdGhpcyAqIHNlY29u
ZE1hdHJpeCkKKyAgICB2b2lkIG11bHRpcGxpZWRCeShXZWJLaXRDU1NNYXRyaXgqIHNlY29uZE1h
dHJpeCk7CisKICAgICAvLyBSZXR1cm4gdGhlIGludmVyc2Ugb2YgdGhpcyBtYXRyaXguIFRocm93
IGFuIGV4Y2VwdGlvbiBpZiB0aGUgbWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlCiAgICAgUGFzc1Jl
ZlB0cjxXZWJLaXRDU1NNYXRyaXg+IGludmVyc2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCkBA
IC0xMTEsNiArMTI3LDEyIEBAIHB1YmxpYzoKICAgICAvLyB0aGUgdHJhbnNsYXRpb24gdmFsdWVz
IG9uIHRoZSBsZWZ0IChyZXN1bHQgPSB0cmFuc2xhdGlvbih4LHkseikgKiB0aGlzKQogICAgIFBh
c3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiB0cmFuc2xhdGUoZG91YmxlIHgsIGRvdWJsZSB5LCBk
b3VibGUgeikgY29uc3Q7CiAKKyAgICAvLyBUcmFuc2xhdGUgaXRzZWxmIHVzaW5nIHRoZSBwYXNz
ZWQgdmFsdWVzLgorICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBU
aGlzIGFsbG93cyB0aGUgM0QgZm9ybSB0byB1c2VkIGZvciAyRCBvcGVyYXRpb25zCisgICAgLy8g
T3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRp
cGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSB0cmFuc2xhdGlvbiB2YWx1ZXMgb24g
dGhlIGxlZnQgKHRoaXMgPSB0cmFuc2xhdGlvbih4LHkseikgKiB0aGlzKQorICAgIHZvaWQgdHJh
bnNsYXRlZEJ5KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopOworCiAgICAgLy8gUmV0dXJu
cyB0aGlzIG1hdHJpeCBzY2FsZWQgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gUGFzc2lu
ZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFsdWUgb2YgMSwgYnV0IHBhc3Npbmcg
c2NhbGVZIG9mIE5hTgogICAgIC8vIG1ha2VzIGl0IHRoZSBzYW1lIGFzIHNjYWxlWC4gVGhpcyBh
bGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucwpAQCAtMTE4LDYgKzE0
MCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHNjYWxlIHZhbHVlcyBvbiB0aGUgbGVmdCAocmVz
dWx0ID0gc2NhbGUoeCx5LHopICogdGhpcykKICAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJp
eD4gc2NhbGUoZG91YmxlIHNjYWxlWCwgZG91YmxlIHNjYWxlWSwgZG91YmxlIHNjYWxlWikgY29u
c3Q7CiAKKyAgICAvLyBTY2FsZSBpdHNlbGYgdXNpbmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAg
Ly8gUGFzc2luZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2VzIGEgdmFsdWUgb2YgMSwgYnV0
IHBhc3Npbmcgc2NhbGVZIG9mIE5hTgorICAgIC8vIG1ha2VzIGl0IHRoZSBzYW1lIGFzIHNjYWxl
WC4gVGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucworICAg
IC8vIE9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgYXMgdGhvdWdoIHRoZSB0aGlzIG1hdHJpeCBpcyBt
dWx0aXBsaWVkIGJ5IGEgbWF0cml4IHdpdGgKKyAgICAvLyB0aGUgc2NhbGUgdmFsdWVzIG9uIHRo
ZSBsZWZ0ICh0aGlzID0gc2NhbGUoeCx5LHopICogdGhpcykKKyAgICB2b2lkIHNjYWxlZEJ5KGRv
dWJsZSBzY2FsZVgsIGRvdWJsZSBzY2FsZVksIGRvdWJsZSBzY2FsZVopOworCiAgICAgLy8gUmV0
dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgIC8vIElm
IHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRlWT0w
LCByb3RhdGVaPXJvdFgpLgogICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlvbiB2YWx1ZSBv
ZiAwIGZvciBhbnkgcGFzc2VkIE5hTi4KQEAgLTEyNSwyNCArMTU0LDQ5IEBAIHB1YmxpYzoKICAg
ICAvLyB0aGUgcm90YXRpb24gdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSByb3RhdGlvbih4
LHkseikgKiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiByb3RhdGUoZG91
YmxlIHJvdFgsIGRvdWJsZSByb3RZLCBkb3VibGUgcm90WikgY29uc3Q7CiAKKyAgICAvLyBSb3Rh
dGUgaXRzZWxmIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgorICAgIC8vIElmIHJvdFkgYW5kIHJv
dFogYXJlIE5hTiwgcm90YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRlWT0wLCByb3RhdGVaPXJv
dFgpLgorICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlvbiB2YWx1ZSBvZiAwIGZvciBhbnkg
cGFzc2VkIE5hTi4KKyAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUg
dGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCisgICAgLy8gdGhlIHJv
dGF0aW9uIHZhbHVlcyBvbiB0aGUgbGVmdCAodGhpcyA9IHJvdGF0aW9uKHgseSx6KSAqIHRoaXMp
CisgICAgdm9pZCByb3RhdGVkQnkoZG91YmxlIHJvdFgsIGRvdWJsZSByb3RZLCBkb3VibGUgcm90
Wik7CisKICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYWJvdXQgdGhlIHBhc3Nl
ZCBheGlzIGJ5IHRoZSBwYXNzZWQgYW5nbGUuCiAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVz
ZSBhIHZhbHVlIG9mIDAuIElmIHRoZSBheGlzIGlzICgwLDAsMCkgdXNlIGEgdmFsdWUKICAgICAv
LyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVs
dGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCiAgICAgLy8gdGhlIHJvdGF0aW9uIHZhbHVlcyBvbiB0
aGUgbGVmdCAocmVzdWx0ID0gcm90YXRpb24oeCx5LHosYW5nbGUpICogdGhpcykKICAgICBQYXNz
UmVmUHRyPFdlYktpdENTU01hdHJpeD4gcm90YXRlQXhpc0FuZ2xlKGRvdWJsZSB4LCBkb3VibGUg
eSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkgY29uc3Q7CiAKKyAgICAvLyBSb3RhdGUgaXRzZWxm
IHVzaW5nIHRoZSBwYXNzZWQgYXhpcyBieSB0aGUgcGFzc2VkIGFuZ2xlLgorICAgIC8vIFBhc3Np
bmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDApIHVz
ZSBhIHZhbHVlCisgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRo
aXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSByb3Rh
dGlvbiB2YWx1ZXMgb24gdGhlIGxlZnQgKHRoaXMgPSByb3RhdGlvbih4LHkseixhbmdsZSkgKiB0
aGlzKQorICAgIHZvaWQgcm90YXRlZEF4aXNBbmdsZUJ5KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91
YmxlIHosIGRvdWJsZSBhbmdsZSk7CisKICAgICAvLyBSZXR1cm4gdGhpcyBtYXRyaXggc2tld2Vk
IGFsb25nIHRoZSBYIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgLy8gUGFzc2luZyBh
IE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCiAgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1l
ZCBhcyB0aG91Z2ggdGhlIHRoaXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0
aAogICAgIC8vIHRoZSBza2V3IHZhbHVlcyBvbiB0aGUgbGVmdCAocmVzdWx0ID0gc2tld1goYW5n
bGUpICogdGhpcykKICAgICBQYXNzUmVmUHRyPFdlYktpdENTU01hdHJpeD4gc2tld1goZG91Ymxl
IGFuZ2xlKSBjb25zdDsKIAorICAgIC8vIFNrZXcgaXRzZWxmIGFsb25nIHRoZSBYIGF4aXMgdXNp
bmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZh
bHVlIG9mIDAuCisgICAgLy8gT3BlcmF0aW9uIGlzIHBlcmZvcm1lZCBhcyB0aG91Z2ggdGhlIHRo
aXMgbWF0cml4IGlzIG11bHRpcGxpZWQgYnkgYSBtYXRyaXggd2l0aAorICAgIC8vIHRoZSBza2V3
IHZhbHVlcyBvbiB0aGUgbGVmdCAodGhpcyA9IHNrZXdYKGFuZ2xlKSAqIHRoaXMpCisgICAgdm9p
ZCBza2V3ZWRYQnkoZG91YmxlIGFuZ2xlKTsKKwogICAgIC8vIFJldHVybiB0aGlzIG1hdHJpeCBz
a2V3ZWQgYWxvbmcgdGhlIFkgYXhpcyBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAvLyBQYXNz
aW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4KICAgICAvLyBPcGVyYXRpb24gaXMgcGVy
Zm9ybWVkIGFzIHRob3VnaCB0aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJp
eCB3aXRoCiAgICAgLy8gdGhlIHNrZXcgdmFsdWVzIG9uIHRoZSBsZWZ0IChyZXN1bHQgPSBza2V3
WShhbmdsZSkgKiB0aGlzKQogICAgIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWF0cml4PiBza2V3WShk
b3VibGUgYW5nbGUpIGNvbnN0OwogCisgICAgLy8gU2tldyBpdHNlbGYgYWxvbmcgdGhlIFkgYXhp
cyB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNl
IGEgdmFsdWUgb2YgMC4KKyAgICAvLyBPcGVyYXRpb24gaXMgcGVyZm9ybWVkIGFzIHRob3VnaCB0
aGUgdGhpcyBtYXRyaXggaXMgbXVsdGlwbGllZCBieSBhIG1hdHJpeCB3aXRoCisgICAgLy8gdGhl
IHNrZXcgdmFsdWVzIG9uIHRoZSBsZWZ0ICh0aGlzID0gc2tld1koYW5nbGUpICogdGhpcykKKyAg
ICB2b2lkIHNrZXdlZFlCeShkb3VibGUgYW5nbGUpOworCiAgICAgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4OyB9CiAKICAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKQEAgLTE1MCw2ICsyMDQsNyBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgV2ViS2l0Q1NTTWF0cml4KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7
CiAgICAgV2ViS2l0Q1NTTWF0cml4KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBXZWJLaXRDU1NNYXRyaXgoY29uc3QgRmxvYXQzMkFycmF5Jik7CiAKICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBtX21hdHJpeDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTTWF0cml4LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXgu
aWRsCmluZGV4IDIxYjcwOGYuLjA5OTIxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NNYXRyaXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NN
YXRyaXguaWRsCkBAIC01OSwxMSArNTksMTkgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIGF0dHJp
YnV0ZSBkb3VibGUgbTQzOwogICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIG00NDsKIAorICAgICAg
ICAvLyBDb3B5IHRoZSBtYXRyaXggZWxlbWVudHMgZm9yIGEgc2luZ2xlIHByZWNpc2lvbiBmbG9h
dCBwb2ludCBhcnJheQorICAgICAgICB2b2lkIHRvQXJyYXkoaW4gRmxvYXQzMkFycmF5IGFycmF5
KTsKKyAgICAgICAgLy8gQ29weSB0aGUgbWF0cml4IGVsZW1lbnRzIGZvciBhIGRvdWJsZSBwcmVj
aXNpb24gZmxvYXQgcG9pbnQgYXJyYXkKKyAgICAgICAgdm9pZCB0b0FycmF5KGluIEZsb2F0NjRB
cnJheSBhcnJheSk7CisKICAgICAgICAgdm9pZCBzZXRNYXRyaXhWYWx1ZShpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBzdHJpbmcpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgCiAgICAgICAgIC8vIE11bHRpcGx5IHRoaXMgbWF0cml4IGJ5IHNlY29u
ZE1hdHJpeCwgb24gdGhlIHJpZ2h0IChyZXN1bHQgPSB0aGlzICogc2Vjb25kTWF0cml4KQogICAg
ICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggbXVsdGlwbHkoaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBXZWJLaXRDU1NNYXRyaXggc2Vjb25kTWF0cml4KTsKLSAgICAg
ICAgCisKKyAgICAgICAgLy8gTXVsdGlwbHkgaXRzZWxmIGJ5IGEgc2Vjb25kTWF0cml4LCBvbiB0
aGUgcmlnaHQgKHRoaXMgPSB0aGlzICogc2Vjb25kTWF0cml4KQorICAgICAgICB2b2lkIG11bHRp
cGxpZWRCeShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIFdlYktpdENTU01hdHJp
eCBzZWNvbmRNYXRyaXgpOworCiAgICAgICAgIC8vIFJldHVybiB0aGUgaW52ZXJzZSBvZiB0aGlz
IG1hdHJpeC4gVGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBtYXRyaXggaXMgbm90IGludmVydGli
bGUKICAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IGludmVyc2UoKSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIApAQCAtNzIsMjEgKzgwLDQyIEBAIG1vZHVsZSBjc3Mg
ewogICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggdHJhbnNsYXRlKGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHgsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gZG91YmxlIHksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHopOwotICAg
ICAgICAKKworICAgICAgICAvLyBUcmFuc2xhdGUgaXRzZWxmIHVzaW5nIHRoZSBwYXNzZWQgdmFs
dWVzLgorICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4gVGhp
cyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucworICAgICAgICB2
b2lkIHRyYW5zbGF0ZWRCeShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJs
ZSB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIGRvdWJsZSB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSB6KTsKKworCiAgICAgICAgIC8vIFJldHVy
bnMgdGhpcyBtYXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBQ
YXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFOIHVzZXMgYSB2YWx1ZSBvZiAxLCBidXQgcGFz
c2luZyBzY2FsZVkgb2YgTmFOIAogICAgICAgICAvLyBtYWtlcyBpdCB0aGUgc2FtZSBhcyBzY2Fs
ZVguIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKICAg
ICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNjYWxlKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHNjYWxlWCwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRv
dWJsZSBzY2FsZVksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgc2NhbGVaKTsKLSAgICAg
ICAgCisKKyAgICAgICAgLy8gU2NhbGUgaXRzZWxmIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgor
ICAgICAgICAvLyBQYXNzaW5nIHNjYWxlWCBvciBzY2FsZVogYXMgTmFOIHVzZXMgYSB2YWx1ZSBv
ZiAxLCBidXQgcGFzc2luZyBzY2FsZVkgb2YgTmFOCisgICAgICAgIC8vIG1ha2VzIGl0IHRoZSBz
YW1lIGFzIHNjYWxlWC4gVGhpcyBhbGxvd3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3Bl
cmF0aW9ucworICAgICAgICB2b2lkIHNjYWxlZEJ5KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gZG91YmxlIHNjYWxlWCwKKyAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBzY2FsZVksCisgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgc2NhbGVaKTsK
KwogICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYnkgdGhlIHBhc3NlZCB2
YWx1ZXMuCiAgICAgICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90YXRlIGFib3V0
IFogKHJvdFg9MCwgcm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgogICAgICAgICAvLyBPdGhlcndp
c2UgdXNlIGEgcm90YXRpb24gdmFsdWUgb2YgMCBmb3IgYW55IHBhc3NlZCBOYU4uICAgIAogICAg
ICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRlKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHJvdFgsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91
YmxlIHJvdFksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHJvdFopOwotICAgICAgICAK
KworICAgICAgICAvLyBSb3RhdGUgaXRzZWxmIHVzaW5nIHRoZSBwYXNzZWQgdmFsdWVzLgorICAg
ICAgICAvLyBJZiByb3RZIGFuZCByb3RaIGFyZSBOYU4sIHJvdGF0ZSBhYm91dCBaIChyb3RYPTAs
IHJvdGF0ZVk9MCwgcm90YXRlWj1yb3RYKS4KKyAgICAgICAgLy8gT3RoZXJ3aXNlIHVzZSBhIHJv
dGF0aW9uIHZhbHVlIG9mIDAgZm9yIGFueSBwYXNzZWQgTmFOLgorICAgICAgICB2b2lkIHJvdGF0
ZWRCeShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSByb3RYLAorICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRv
dWJsZSByb3RZLAorICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIGRvdWJsZSByb3RaKTsKKwogICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0
cml4IHJvdGF0ZWQgYWJvdXQgdGhlIHBhc3NlZCBheGlzIGJ5IHRoZSBwYXNzZWQgYW5nbGUuCiAg
ICAgICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhp
cyBpcyAoMCwwLDApIHVzZSBhIHZhbHVlCiAgICAgICAgIC8vIG9mICgwLDAsMSkuCkBAIC05NCwx
NSArMTIzLDI4IEBAIG1vZHVsZSBjc3MgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
ZG91YmxlIHksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIHosIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIGFuZ2xlKTsKKyAgICAgICAgLy8gUm90
YXRlIGl0c2VsZiB1c2luZyB0aGUgcGFzc2VkIGF4aXMgYnkgdGhlIHBhc3NlZCBhbmdsZS4KKyAg
ICAgICAgdm9pZCByb3RhdGVkQXhpc0FuZ2xlQnkoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBkb3VibGUgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUgeSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBkb3VibGUg
eiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSBkb3VibGUgYW5nbGUpOwogCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBt
YXRyaXggc2tld2VkIGFsb25nIHRoZSBYIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAg
ICAgIC8vIFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgogICAgICAgICBbSW1t
dXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggc2tld1goaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBkb3VibGUgYW5nbGUpOwogCisgICAgICAgIC8vIFNrZXcgaXRzZWxmIGFsb25nIHRo
ZSBYIGF4aXMgdXNpbmcgdGhlIHBhc3NlZCB2YWx1ZXMuCisgICAgICAgIC8vIFBhc3NpbmcgYSBO
YU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgorICAgICAgICB2b2lkIHNrZXdlZFhCeShpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBhbmdsZSk7CisKICAgICAgICAgLy8g
UmV0dXJucyB0aGlzIG1hdHJpeCBza2V3ZWQgYWxvbmcgdGhlIFkgYXhpcyBieSB0aGUgcGFzc2Vk
IHZhbHVlcy4KICAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAu
CiAgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBza2V3WShpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGRvdWJsZSBhbmdsZSk7CiAKKyAgICAgICAgLy8gU2tldyBp
dHNlbGYgYWxvbmcgdGhlIFkgYXhpcyB1c2luZyB0aGUgcGFzc2VkIHZhbHVlcy4KKyAgICAgICAg
Ly8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVlIG9mIDAuCisgICAgICAgIHZvaWQgc2tl
d2VkWUJ5KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gZG91YmxlIGFuZ2xlKTsK
KwogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogICAgIH07CiAKLS0g
CjEuNy40LjEKCg==
</data>
<flag name="review"
          id="109532"
          type_id="1"
          status="-"
          setter="cmarrin"
    />
          </attachment>
      

    </bug>

</bugzilla>