<?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>24303</bug_id>
          
          <creation_ts>2009-03-02 15:54:09 -0800</creation_ts>
          <short_desc>Using keyboard select RTL text, Highlight goes to opposite direction from FF&amp;IE</short_desc>
          <delta_ts>2009-03-27 16:24:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xiaomei Ji">xji</reporter>
          <assigned_to name="Xiaomei Ji">xji</assigned_to>
          <cc>mitz</cc>
    
    <cc>playmobil</cc>
    
    <cc>progame+wk</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111916</commentid>
    <comment_count>0</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-02 15:54:09 -0800</bug_when>
    <thetext>Test case is attached.

Currently, Chrome/Webkit text selection always follows logical order, no 
matter on bidi text or on pure RTL text, no matter in an RTL text box (for 
example, set dir=&quot;rtl&quot;) or in LTR text box.

By logical order, I mean shift-left-arrow moves cursor logically backward, 
while shift-right-arrow moves cursor logically forward.


But that is not the case for FF and IE.

For FF&amp;IE, in LTR text box, text selection followings logical order, same 
as Chrome.


But in RTL text box, FF&amp;IE follows anti-logical order.

Given the pure RTL text in the test file, text selection follows the same 
order as visual order.
Given the 1st bidi text example in the test file, text selection follows 
anti-logical order, which means shift-left-arrow moves cursor logically 
forward, while shift-right-arrow moves cursor logically backward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111917</commentid>
    <comment_count>1</comment_count>
      <attachid>28200</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-02 15:55:50 -0800</bug_when>
    <thetext>Created attachment 28200
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111918</commentid>
    <comment_count>2</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-02 15:59:44 -0800</bug_when>
    <thetext>Also in Chrome bug:
http://code.google.com/p/chromium/issues/detail?id=8141

I am not a native speaker, and I am not sure which way is better.
Would like to get a confirmation that this is designed by intention or this is a bug.

Following is a comment from a native speaker in Chrome&apos;s bugdb.

&quot;all i know is that as a Hebrew native speaker (and i can speak for most Israelis as 
99% here use windows) having to click right to select left is very confusing
i am sure there is a reason for that in an LTR aligned box as it&apos;s that way in 
windows too, but in an RTL box we all got used to... meaning the direction we are 
clicking ;)&quot;
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111919</commentid>
    <comment_count>3</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-02 16:00:16 -0800</bug_when>
    <thetext>screenshot from progame:

&quot;i made a screenshot comparing the behaviour of Chrome/IE/FF while selecting text in 
an RTLed textbox

http://img24.imageshack.us/img24/7484/chromeselectrtl.jpg
&quot;

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112113</commentid>
    <comment_count>4</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-03 17:35:19 -0800</bug_when>
    <thetext>The character and word text selection (using shift-arrow and ctrl-shift-arrow) difference of Webkit and FF/IE is:
although they all use logical order in text selection in LTR text box,
in RTL text box, Webkit still use logical order (shift+right arrow moves text forward, and shift+left arrow moves text backward), but FF/IE uses reversed logical order (shift+right arrow moves text backward, and shift+left arrow moves text forward).

If this is a bug in WebKit,
can we change SelectionController::modifyExtendingRightForward(),
in the cases of CharacterGranularity and WordGranularity, check whether
&quot;pos.deepEquivalent().node()-&gt;renderer()-&gt;style()-&gt;direction() == WebCore::RTL&quot;,
extend selection to leftBackward if it is RTL, and extend selection to rightForward if it is LTR?

Or maybe introduce a new method to handle the forward/backward based on element style as above.

Same applies to SelectionController::modifyExtendingLeftBackward().

Please let me know whether this is a bug and whether the above works without complication, and I can start to work on the fix.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112347</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-03-04 23:07:04 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; If this is a bug in WebKit,
&gt; can we change SelectionController::modifyExtendingRightForward(),
&gt; in the cases of CharacterGranularity and WordGranularity, check whether
&gt; &quot;pos.deepEquivalent().node()-&gt;renderer()-&gt;style()-&gt;direction() ==
&gt; WebCore::RTL&quot;,
&gt; extend selection to leftBackward if it is RTL, and extend selection to
&gt; rightForward if it is LTR?
&gt; 
&gt; Or maybe introduce a new method to handle the forward/backward based on element
&gt; style as above.
&gt; 
&gt; Same applies to SelectionController::modifyExtendingLeftBackward().

I think the methods should be split into modifyExtendingForward(), modifyExtendingBackward(), which should retain the existing behavior, and modifyExtendingRight() and modifiyExtendingLeft(), which should behave &quot;visually&quot;, essentially mimicking what was done for modifyMoving* in &lt;http://trac.webkit.org/changeset/32605&gt;.

I do not think that examining the direction property of the renderer would lead to the best results. I am unfamiliar with the Windows and Firefox behavior, but in the Cocoa text system on Mac OS X, the actual direction of the text runs (i.e. the resolved bidi level) is ultimately used to determine the position to move the selection&apos;s extent to; this is very similar to how moving the selection works in WebKit following r32605. So I think a better approximation of the desired behavior would be to use VisualPosition::right() and VisualPosition::left() to determine where to move the extent to, and refine as necessary and as possible when the extent is at a boundary between levels, although as long as Selection is limited to a single range, there is only so much that can be done to maintain the &quot;visual&quot; behavior in the bidirectional cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112434</commentid>
    <comment_count>6</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-05 12:49:10 -0800</bug_when>
    <thetext>Maybe I did not understand what you mean by &quot;visually&quot; completely.

I attached the Firefox selection process.

I think Firefox does not use &quot;visual&quot; selection in RTL text box, it is still logical order, but it is a mirrored (or reversed) logical order. 

Using the test case that illustrates FF behavior, if we are using &quot;visual order&quot; (VisualPosition::left()), when the cursor is between &apos;x&apos; and &apos;y&apos;, when we press shift+left_arrow, 
should the highlight highlights character &apos;x&apos;? Or by &quot;refine as
necessary and as possible when the extent is at a boundary between levels&quot;, it is able to highlight only character &apos;y&apos;?
(the positions around &quot;xyz&quot; are: &apos;(9) (8)x(6)y(7)z(5) (4)C(3)B(2)A(1)dummy_RTL&apos;)

Even worse, when the cursor is between &apos;y&apos; and &apos;z&apos;, using VisualPosition::left(), shift-left_arrow will select character &apos;y&apos; (it is within the same run, should not be any complication), but FF selects character &apos;z&apos;.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112435</commentid>
    <comment_count>7</comment_count>
      <attachid>28321</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-05 12:51:18 -0800</bug_when>
    <thetext>Created attachment 28321
FF text selection by pressing shift-left_arrow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112438</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-03-05 13:13:25 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=28321) [review]
&gt; FF text selection by pressing shift-left_arrow

I see. That is definitely not the way the Cocoa text system on Mac OS X works, so a setting may be required to satisfy different platforms&apos; conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112451</commentid>
    <comment_count>9</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-03-05 14:31:06 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I see. That is definitely not the way the Cocoa text system on Mac OS X works,
&gt; so a setting may be required to satisfy different platforms&apos; conventions.

I should have qualified that: that is not the way Mac OS X Leopard (10.5) works, but I was told that it matches Tiger&apos;s (10.4) behavior.

I think WebKit&apos;s current behavior is the worst possible. A patch that implemented the Firefox/Tiger behavior would be an improvement and would be useful for the Mac port, at least for the Tiger build; a patch that implemented &quot;visual&quot; selection would be better for current Mac OS X versions, and could also be used on Tiger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112482</commentid>
    <comment_count>10</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-05 17:06:18 -0800</bug_when>
    <thetext>Hi Mitz,

Thanks for your comments!

I am not familiar with Mac OS, I just tried a little bit on TextEdit in Mac OS 10.5 and 10.4. I am a bit confused on the behavior. 

Looks like the TextEdit in Mac OS 10.4 matches that of current WebKit (different from FF when the whole text paragraph is in *RTL* level). 

In TextEdit in Mac OS 10.5, if the cursor is between &apos;x&apos; and &apos;y&apos; in my example, press shift+left_arrow highlights *both* &apos;y&apos; and &apos;z&apos;, press again un-highlights both &apos;y&apos; and &apos;z&apos; ..... (I am not familiar with Mac, but the highlights on the boundary looks weird to me).  If the cursor is between &apos;x&apos; and &apos;y&apos;, and press shift+right_arrow, it selects &apos;y&apos;, press again, it un-selects &apos;y&apos; but selects &apos;x&apos;.....

But I am not sure whether I am testing on RTL environment (I just set the alignment to be right aligned, and seems the text is in right-to-left direction as well). 

If my observation is wrong and if it is not too much trouble, could you please use a similar HTML document to show the selection of the bidi text in both RTL and LTR text box in the Cocoa text system on Mac OS X 10.5 and 10.4? Appreciate your help.

Thanks,
Xiaomei

P.S. I am trying to figure this out because I think your preferred patch is:
1. having a setting to distinguish platform
2. implement the same behavior as FF in windows
3. implement the same behavior as Cocoa text system in Mac OS 10.5 in Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114283</commentid>
    <comment_count>11</comment_count>
      <attachid>28747</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-18 23:21:28 -0700</bug_when>
    <thetext>Created attachment 28747
patch w/ Layout test

The expected behavior in Mac is unclear to me.
So, I am fixing this in windows only.
It matches the Firefox and Internet Explorer behavior in Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114330</commentid>
    <comment_count>12</comment_count>
      <attachid>28747</attachid>
    <who name="">mitz</who>
    <bug_when>2009-03-19 10:24:54 -0700</bug_when>
    <thetext>Comment on attachment 28747
patch w/ Layout test


&gt; +2009-03-18  Xiaomei Ji  &lt;xji@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Tests: editing/selection/extend-selection-bidi-start-with-english-in-rtl.html
&gt; +               editing/selection/extend-selection-bidi-start-with-hebrew-in-rtl.html
&gt; +               editing/selection/extend-selection-english-in-rtl.html
&gt; +               editing/selection/extend-selection-hebrew-in-rtl.html
&gt; +
&gt; +        * editing/SelectionController.cpp:
&gt; +        (WebCore::SelectionController::modifyExtendingRightForward):
&gt; +        (WebCore::SelectionController::modifyExtendingForward):
&gt; +        (WebCore::SelectionController::modifyExtendingLeftBackward):
&gt; +        (WebCore::SelectionController::modifyExtendingBackward):
&gt; +        * editing/SelectionController.h:
&gt; +

The change log entry needs to include the bug&apos;s title and a link to it. It should also list the changes to each function.

&gt;  VisiblePosition SelectionController::modifyExtendingRightForward(TextGranularity granularity)
&gt;  {
&gt;      VisiblePosition pos(m_sel.extent(), m_sel.affinity());
&gt; +
&gt; +#if PLATFORM(WIN_OS)
&gt; +    WebCore::Node *n = pos.deepEquivalent().node();
&gt; +    if (n) {
&gt; +        WebCore::RenderObject* renderer = n-&gt;renderer();
&gt; +        if (renderer) {
&gt; +            if (renderer-&gt;style()-&gt;direction() == WebCore::RTL) {
&gt; +                return modifyExtendingBackward(granularity, pos);
&gt; +            }
&gt; +        }  
&gt; +    }
&gt; +#endif

modifyExtendingRightForward() is called from both the RIGHT and FORWARD cases of modify(), but this new behavior is the &quot;extend right&quot; behavior, so it is wrong to do it in the FORWARD case. Like I said before, I think you need to define both modifyExtendingRight() and modifyExtendinForward(), implementing the new behavior in the former (and leaving existing behavior in the latter), and then change modify() to call the appropriate function in every case.

I don&apos;t think these changes should be limited to WIN_OS or to any specific platform. For now, this is supposed to be an improvement over the existing behavior for all platforms.

You are checking the direction of the node&apos;s renderer, but is this what Firefox does? I was under the impression that it uses the direction of the enclosing block. You can see if your patch behaves like Firefox in these cases:
&lt;div&gt;Lorem &lt;span style=&quot;direction: rtl&quot;&gt;ipsum dolor sit&lt;/span&gt; amet&lt;/div&gt;
&lt;div&gt;Lorem &lt;span dir=&quot;rtl&quot;&gt;ipsum dolor sit&lt;/span&gt; amet&lt;/div&gt;

&gt; Index: LayoutTests/ChangeLog
&gt; ===================================================================
&gt; --- LayoutTests/ChangeLog	(revision 41823)
&gt; +++ LayoutTests/ChangeLog	(working copy)
&gt; @@ -1,3 +1,32 @@
&gt; +2009-03-18  Xiaomei Ji  &lt;xji@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

This should also reference the bug.

&gt; +        * editing/selection/extend-selection-bidi-start-with-english-in-rtl.html: Added.
&gt; +        * editing/selection/extend-selection-bidi-start-with-hebrew-in-rtl.html: Added.
&gt; +        * editing/selection/extend-selection-english-in-rtl.html: Added.
&gt; +        * editing/selection/extend-selection-hebrew-in-rtl.html: Added.

Can these be combined into a single test?

&gt; +        * platform/mac/editing/selection/extend-selection-bidi-start-with-english-in-rtl-expected.checksum: Added.
&gt; +        * platform/mac/editing/selection/extend-selection-bidi-start-with-english-in-rtl-expected.png: Added.
&gt; +        * platform/mac/editing/selection/extend-selection-bidi-start-with-english-in-rtl-expected.txt: Added.

These should be text-only tests (using layoutTestController.dumpAsText). And since the change should not be platform-specific, there shouldn&apos;t be platform-specific results.

&gt; +        extendSelectionForwardByCharacterCommand();

As mentioned above, the behavior of &quot;forward&quot; should not change. You should be testing the behavior of extending &quot;right&quot; and &quot;left&quot;. You are not testing word, sentence, line and paragraph granularities. If you change them (like this patch does) then you should test all of them. But are you sure you want to change the behavior for all granularities?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114356</commentid>
    <comment_count>13</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-19 13:05:49 -0700</bug_when>
    <thetext>Hi Mitz,

Thanks for your quick review!
Please see my comments inlined.


(In reply to comment #12)
&gt; (From update of attachment 28747 [review])
&gt; 
&gt; &gt; +2009-03-18  Xiaomei Ji  &lt;xji@chromium.org&gt;
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Tests: editing/selection/extend-selection-bidi-start-with-english-in-rtl.html
&gt; &gt; +               editing/selection/extend-selection-bidi-start-with-hebrew-in-rtl.html
&gt; &gt; +               editing/selection/extend-selection-english-in-rtl.html
&gt; &gt; +               editing/selection/extend-selection-hebrew-in-rtl.html
&gt; &gt; +
&gt; &gt; +        * editing/SelectionController.cpp:
&gt; &gt; +        (WebCore::SelectionController::modifyExtendingRightForward):
&gt; &gt; +        (WebCore::SelectionController::modifyExtendingForward):
&gt; &gt; +        (WebCore::SelectionController::modifyExtendingLeftBackward):
&gt; &gt; +        (WebCore::SelectionController::modifyExtendingBackward):
&gt; &gt; +        * editing/SelectionController.h:
&gt; &gt; +
&gt; 
&gt; The change log entry needs to include the bug&apos;s title and a link to it. It
&gt; should also list the changes to each function.

Will do.

&gt; 
&gt; &gt;  VisiblePosition SelectionController::modifyExtendingRightForward(TextGranularity granularity)
&gt; &gt;  {
&gt; &gt;      VisiblePosition pos(m_sel.extent(), m_sel.affinity());
&gt; &gt; +
&gt; &gt; +#if PLATFORM(WIN_OS)
&gt; &gt; +    WebCore::Node *n = pos.deepEquivalent().node();
&gt; &gt; +    if (n) {
&gt; &gt; +        WebCore::RenderObject* renderer = n-&gt;renderer();
&gt; &gt; +        if (renderer) {
&gt; &gt; +            if (renderer-&gt;style()-&gt;direction() == WebCore::RTL) {
&gt; &gt; +                return modifyExtendingBackward(granularity, pos);
&gt; &gt; +            }
&gt; &gt; +        }  
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; 
&gt; modifyExtendingRightForward() is called from both the RIGHT and FORWARD cases
&gt; of modify(), but this new behavior is the &quot;extend right&quot; behavior, so it is
&gt; wrong to do it in the FORWARD case. Like I said before, I think you need to
&gt; define both modifyExtendingRight() and modifyExtendinForward(), implementing
&gt; the new behavior in the former (and leaving existing behavior in the latter),
&gt; and then change modify() to call the appropriate function in every case.

I did not split into modifyExtendingRight() and modifyExtendingForward() because I thought &quot;Right&quot; implies visual.
I will do as what you suggested.

&gt; 
&gt; I don&apos;t think these changes should be limited to WIN_OS or to any specific
&gt; platform. For now, this is supposed to be an improvement over the existing
&gt; behavior for all platforms.

Will do that.


&gt; 
&gt; You are checking the direction of the node&apos;s renderer, but is this what Firefox
&gt; does? I was under the impression that it uses the direction of the enclosing
&gt; block. You can see if your patch behaves like Firefox in these cases:
&gt; &lt;div&gt;Lorem &lt;span style=&quot;direction: rtl&quot;&gt;ipsum dolor sit&lt;/span&gt; amet&lt;/div&gt;
&gt; &lt;div&gt;Lorem &lt;span dir=&quot;rtl&quot;&gt;ipsum dolor sit&lt;/span&gt; amet&lt;/div&gt;

You are right.
I will make the change.

&gt; 
&gt; &gt; Index: LayoutTests/ChangeLog
&gt; &gt; ===================================================================
&gt; &gt; --- LayoutTests/ChangeLog	(revision 41823)
&gt; &gt; +++ LayoutTests/ChangeLog	(working copy)
&gt; &gt; @@ -1,3 +1,32 @@
&gt; &gt; +2009-03-18  Xiaomei Ji  &lt;xji@chromium.org&gt;
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; 
&gt; This should also reference the bug.

Will do.

&gt; 
&gt; &gt; +        * editing/selection/extend-selection-bidi-start-with-english-in-rtl.html: Added.
&gt; &gt; +        * editing/selection/extend-selection-bidi-start-with-hebrew-in-rtl.html: Added.
&gt; &gt; +        * editing/selection/extend-selection-english-in-rtl.html: Added.
&gt; &gt; +        * editing/selection/extend-selection-hebrew-in-rtl.html: Added.
&gt; 
&gt; Can these be combined into a single test?

I will try.

&gt; 
&gt; &gt; +        * platform/mac/editing/selection/extend-selection-bidi-start-with-english-in-rtl-expected.checksum: Added.
&gt; &gt; +        * platform/mac/editing/selection/extend-selection-bidi-start-with-english-in-rtl-expected.png: Added.
&gt; &gt; +        * platform/mac/editing/selection/extend-selection-bidi-start-with-english-in-rtl-expected.txt: Added.
&gt; 
&gt; These should be text-only tests (using layoutTestController.dumpAsText). And
&gt; since the change should not be platform-specific, there shouldn&apos;t be
&gt; platform-specific results.

I was following the extend-selection-bidi.html test.
Will try to use layoutTestController.dumpAsText.
Do you mean after which, the png and checksum files are not necessary (if the text files show difference)?

&gt; 
&gt; &gt; +        extendSelectionForwardByCharacterCommand();
&gt; 
&gt; As mentioned above, the behavior of &quot;forward&quot; should not change. You should be
&gt; testing the behavior of extending &quot;right&quot; and &quot;left&quot;. You are not testing word,
&gt; sentence, line and paragraph granularities. If you change them (like this patch
&gt; does) then you should test all of them. But are you sure you want to change the
&gt; behavior for all granularities?
&gt; 

You are right.
I think it would be better to restrict such change to only character and word  for now. And I will introduce the 2 new functionalities and test them out on 2 granularities.

Thanks,
Xiaomei
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114358</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-03-19 13:08:02 -0700</bug_when>
    <thetext>(In reply to comment #13)

&gt; Will try to use layoutTestController.dumpAsText.
&gt; Do you mean after which, the png and checksum files are not necessary (if the
&gt; text files show difference)?

Yes, if you use dumpAsText, PNG and checksum files will not be created and should not be checked in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114618</commentid>
    <comment_count>15</comment_count>
      <attachid>28815</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-20 18:32:25 -0700</bug_when>
    <thetext>Created attachment 28815
patch w/ Layout test (version 2)

There is one part I am not sure.

Looks like FF does not across block boundary when extending selection.
But currently, Webkit across block boundary while extending selection if the blocks are parent-child. It can extend selection inward or outward.
For example: 
&lt;div&gt; whatever &lt;div dir=&quot;rtl&quot;&gt; just a test&lt;/div&gt; end&lt;/div&gt;
selection can be extended from the block &quot;just a test&quot; to &quot;whatever ... end&quot;, and vice versa.

In the current fix, when checking the directionality of enclosing block 
(SelectionController::directionOfEnclosingBlock()), I used the starting point of the selection (m_sel.base().node()), not the ending point (m_sel.extend().node()).

So, for the above, if the selection start at the outer block, the direction is always treated as LTR even when it reaches the inner block. If the selection starts at the inner block, the direction is always treated as RTL even when it reaches the outer block.

Otherwise, the selection will be on and off by one character when it reaches the direction change boundary. Or maybe we can check whether the current extent reaches the enclosing block boundary and stops extending if it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115350</commentid>
    <comment_count>16</comment_count>
      <attachid>28815</attachid>
    <who name="">mitz</who>
    <bug_when>2009-03-26 10:49:02 -0700</bug_when>
    <thetext>Comment on attachment 28815
patch w/ Layout test (version 2)

&gt; Looks like FF does not across block boundary when extending selection.
&gt; But currently, Webkit across block boundary while extending selection if the
&gt; blocks are parent-child. It can extend selection inward or outward.
&gt; For example: 
&gt; &lt;div&gt; whatever &lt;div dir=&quot;rtl&quot;&gt; just a test&lt;/div&gt; end&lt;/div&gt;
&gt; selection can be extended from the block &quot;just a test&quot; to &quot;whatever ... end&quot;,
&gt; and vice versa.
&gt;
&gt; In the current fix, when checking the directionality of enclosing block 
&gt; (SelectionController::directionOfEnclosingBlock()), I used the starting point
&gt; of the selection (m_sel.base().node()), not the ending point
&gt; (m_sel.extend().node()).

What does Firefox do when the selection already crosses a block boundary and the extent is in a block that has different directionality from the base? I think using the directionality of the block enclosing the extent makes more sense, because the extent is what is being modified, although I realize that it may be weird when crossing into a different direction, like you said.

&gt; +TextDirection SelectionController::directionOfEnclosingBlock() {
&gt; +    Node *n = m_sel.base().node();

The * should go next to &quot;Node&quot;.

&gt; +    Node* enclosingBlockNode = enclosingBlock(n);
&gt; +    if (enclosingBlockNode) {

You can write this as
       if (Node* enclosingBlockNode = enclosingBlock(n))...

or better yet, you can save some indentation by reversing the condition and turning this into an early return:
       if (!enclosingBlockNode)
           return LTR;

&gt; +        WebCore::RenderObject* renderer = enclosingBlockNode-&gt;renderer();

Since this function is in the WebCore namespace, you shouldn&apos;t add the &quot;WebCore::&quot; prefix.

&gt; +        if (renderer) {
&gt; +            if (renderer-&gt;style()-&gt;direction() == WebCore::RTL) {
&gt; +                return RTL;
&gt; +            }

The WebKit coding style is to omit braces around single-line blocks like the above. But the inner if statement is unnecessary. You can simply write
           if (renderer)
               return renderer-&gt;style()-&gt;direction();

&gt; +        case CharacterGranularity:
&gt; +            if (directionOfEnclosingBlock() == RTL) {
&gt; +                pos = pos.previous(true);
&gt; +            } else {
&gt; +                pos = pos.next(true);
&gt; +            }

Please remove the braces around those single-line blocks.

In existing WebCore code, sometimes the code for the RTL case comes first and sometimes it comes second. In new code, I would rather make the LTR case come first.

&gt; +        case WordGranularity:
&gt; +            if (directionOfEnclosingBlock() == RTL) {
&gt; +                pos = previousWordPosition(pos);
&gt; +            } else {
&gt; +                pos = nextWordPosition(pos);
&gt; +            }

Ditto re: braces and order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115575</commentid>
    <comment_count>17</comment_count>
      <attachid>29016</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 11:30:02 -0700</bug_when>
    <thetext>Created attachment 29016
webkit extend selection when pressing shift+right-arrow twice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115577</commentid>
    <comment_count>18</comment_count>
      <attachid>29018</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 11:32:15 -0700</bug_when>
    <thetext>Created attachment 29018
webkit extend selection when press shift+right-arrow twice, then shift+left-arrow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115578</commentid>
    <comment_count>19</comment_count>
      <attachid>29019</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 11:36:05 -0700</bug_when>
    <thetext>Created attachment 29019
FireFox extend selection snapshot (comparing with Webkit)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115579</commentid>
    <comment_count>20</comment_count>
      <attachid>29020</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 11:36:33 -0700</bug_when>
    <thetext>Created attachment 29020
Webkit extend selection snapshot (comparing with FF)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115584</commentid>
    <comment_count>21</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 12:15:44 -0700</bug_when>
    <thetext>Hi Mitz,

Thanks for the review!
Please see my comments inlined.


(In reply to comment #16)
&gt; (From update of attachment 28815 [review])
&gt; &gt; Looks like FF does not across block boundary when extending selection.
&gt; &gt; But currently, Webkit across block boundary while extending selection if the
&gt; &gt; blocks are parent-child. It can extend selection inward or outward.
&gt; &gt; For example: 
&gt; &gt; &lt;div&gt; whatever &lt;div dir=&quot;rtl&quot;&gt; just a test&lt;/div&gt; end&lt;/div&gt;
&gt; &gt; selection can be extended from the block &quot;just a test&quot; to &quot;whatever ... end&quot;,
&gt; &gt; and vice versa.
&gt; &gt;
&gt; &gt; In the current fix, when checking the directionality of enclosing block 
&gt; &gt; (SelectionController::directionOfEnclosingBlock()), I used the starting point
&gt; &gt; of the selection (m_sel.base().node()), not the ending point
&gt; &gt; (m_sel.extend().node()).
&gt; 
&gt; What does Firefox do when the selection already crosses a block boundary and
&gt; the extent is in a block that has different directionality from the base? I
&gt; think using the directionality of the block enclosing the extent makes more
&gt; sense, because the extent is what is being modified, although I realize that it
&gt; may be weird when crossing into a different direction, like you said.
&gt; 

I&apos;ve changed the code to use the directionality of the block enclosing the extent.

I finally figured out how FF does selection across block boundary.
I thought it does not. But actually it does, and it does in a way that an implicit/control character is inserted between block boundary. 

I have attached 2 snapshots showing you the difference of FF selection and Webkit selection (after using the direction of the enclosing block contains the extent, not the base in the fix).

For example:
&lt;div contenteditable &gt;Lorem &lt;span  style=&quot;direction: rtl&quot;&gt;ipsum dolor&lt;div &gt; what ever you want &lt;/div&gt; sit&lt;/span&gt; amet&lt;/div&gt;,

Although not showing visually in selection, but from the cursor movement and selection range, an implicit/control character is inserted between &apos;r&apos; in &quot;dolor&apos; and &apos;w&apos; in &apos;what&quot;.
So, if cursor is between &apos;o&apos; and &apos;r&apos; in &apos;dolor&apos;, press shift-right-arrow highlights &apos;r&apos;, press it again does not show anything visually, but it actually selects the implicit character. 

At this state, if press shift-left-arrow, it will select &apos;w&apos;. 
But if press shift-right-arrow, it un-selects the implicit character (which not showing visually), if press shift-left-arrow then, it un-selects &apos;r&apos;.

So, if the cursor is between &apos;o&apos; and &apos;r&apos;, press shift-right-arrow once select &apos;r&apos;, press shift-right-arrow in odd number of times, then, press shift-left-arrow will select &apos;w&apos;. But if press shift-right-arrow in even number of times,
 then, press shift-left-arrow will un-select &apos;r&apos;, because press shift-right-arrow in even number of times actually selects and un-selects the implicit/control character, although the selection does not show any visual effect.

Webkit behaves similar with the only difference that it highlights/un-highlights the implicit character selection.


For FF to selection from &quot;what ever you want&quot; to &quot;sit amet&quot; when the highlight already covers &apos;t&apos; in &apos;want&apos;, you need to press shift-left-arrow twice, then, shift-right-arrow twice to select to &apos;s&apos; in &apos;sit. I do not now why.

In WebKit, you just need to press shift-left-arrow once to select the implicit character, then, shift-right-arrow once to select &apos;s&apos; in &apos;sit&apos;.


For another example, 
&lt;div contenteditable &gt;Lorem &lt;div dir=&quot;rtl&quot;&gt; what ever you want &lt;/div&gt; amet&lt;/div&gt;

For FF to continue selection from &quot;Lorem&quot; to &apos;w&apos;, it needs to press shift-right arrow twice, then shift-left-arrow once.
While Webkit needs to press shift-right arrow once, then shift-left-arrow once.

I tried in Mac, seems FF in Mac behaves the same as in Windows.

By comparing Webkit with FF, I do not think WebKit is worse.
The only weird thing in Webkit is the select/un-select of implicit character when continuing press shift-right-arrow after selecting &quot;Loren ipsum dolor&quot;,
while FF&apos;s selection stays the same.

But in a 2nd thought, Webkit visually shows what happen. It might be even better.

And if I copy what selected from FF or Webkit(with the selection of implicit character) and paste them, the text pasted does not show differences.
 



&gt; &gt; +TextDirection SelectionController::directionOfEnclosingBlock() {
&gt; &gt; +    Node *n = m_sel.base().node();
&gt; 
&gt; The * should go next to &quot;Node&quot;.

Done.


&gt; 
&gt; &gt; +    Node* enclosingBlockNode = enclosingBlock(n);
&gt; &gt; +    if (enclosingBlockNode) {
&gt; 
&gt; You can write this as
&gt;        if (Node* enclosingBlockNode = enclosingBlock(n))...
&gt; 
&gt; or better yet, you can save some indentation by reversing the condition and
&gt; turning this into an early return:
&gt;        if (!enclosingBlockNode)
&gt;            return LTR;

Used the 2nd suggestion.


&gt; 
&gt; &gt; +        WebCore::RenderObject* renderer = enclosingBlockNode-&gt;renderer();
&gt; 
&gt; Since this function is in the WebCore namespace, you shouldn&apos;t add the
&gt; &quot;WebCore::&quot; prefix.

Removed.


&gt; 
&gt; &gt; +        if (renderer) {
&gt; &gt; +            if (renderer-&gt;style()-&gt;direction() == WebCore::RTL) {
&gt; &gt; +                return RTL;
&gt; &gt; +            }
&gt; 
&gt; The WebKit coding style is to omit braces around single-line blocks like the
&gt; above. But the inner if statement is unnecessary. You can simply write
&gt;            if (renderer)
&gt;                return renderer-&gt;style()-&gt;direction();

Done.


&gt; 
&gt; &gt; +        case CharacterGranularity:
&gt; &gt; +            if (directionOfEnclosingBlock() == RTL) {
&gt; &gt; +                pos = pos.previous(true);
&gt; &gt; +            } else {
&gt; &gt; +                pos = pos.next(true);
&gt; &gt; +            }
&gt; 
&gt; Please remove the braces around those single-line blocks.

Done.


&gt; 
&gt; In existing WebCore code, sometimes the code for the RTL case comes first and
&gt; sometimes it comes second. In new code, I would rather make the LTR case come
&gt; first.

Done.


&gt; 
&gt; &gt; +        case WordGranularity:
&gt; &gt; +            if (directionOfEnclosingBlock() == RTL) {
&gt; &gt; +                pos = previousWordPosition(pos);
&gt; &gt; +            } else {
&gt; &gt; +                pos = nextWordPosition(pos);
&gt; &gt; +            }
&gt; 
&gt; Ditto re: braces and order.
&gt; 

Done.

Will attach the patch for review soon.

Thanks,
Xiaomei

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115636</commentid>
    <comment_count>22</comment_count>
      <attachid>29031</attachid>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 15:59:00 -0700</bug_when>
    <thetext>Created attachment 29031
patch w/ Layout test (version 3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115638</commentid>
    <comment_count>23</comment_count>
      <attachid>29031</attachid>
    <who name="">mitz</who>
    <bug_when>2009-03-27 16:05:35 -0700</bug_when>
    <thetext>Comment on attachment 29031
patch w/ Layout test (version 3)

Great! r=me

Please don&apos;t make include this change when landing:

&gt; Property changes on: LayoutTests/editing/selection/extend-selection.html
&gt; ___________________________________________________________________
&gt; Name: svn:executable
&gt;    + *
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115639</commentid>
    <comment_count>24</comment_count>
    <who name="Xiaomei Ji">xji</who>
    <bug_when>2009-03-27 16:12:49 -0700</bug_when>
    <thetext>Hi Mitz,

Thanks for your quick review!
And thanks very much for all your help on my questions, emails, comments, feedbacks, code reviews, etc.

Xiaomei


(In reply to comment #23)
&gt; (From update of attachment 29031 [review])
&gt; Great! r=me
&gt; 
&gt; Please don&apos;t make include this change when landing:
&gt; 
&gt; &gt; Property changes on: LayoutTests/editing/selection/extend-selection.html
&gt; &gt; ___________________________________________________________________
&gt; &gt; Name: svn:executable
&gt; &gt;    + *
&gt; &gt; 
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115643</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-27 16:24:22 -0700</bug_when>
    <thetext>Landed as:  http://trac.webkit.org/changeset/42054</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28200</attachid>
            <date>2009-03-02 15:55:50 -0800</date>
            <delta_ts>2009-03-02 15:55:50 -0800</delta_ts>
            <desc>test case</desc>
            <filename>text_highlight.html</filename>
            <type>text/html</type>
            <size>386</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">77u/PGh0bWwgZGlyPSJydGwiPg0KPGRpdiBjb250ZW50ZWRpdGFibGU+DQphYmMgJiMxNDg4OyYj
MTQ4OTsmIzE0OTA7IDEyMyAmIzE0OTE7JiMxNDkyOyYjMTQ5MzsgZGVmDQo8L2Rpdj4NCjxkaXYg
Y29udGVudGVkaXRhYmxlPg0KJiMxNDg4OyYjMTQ4OTsmIzE0OTA7IDEyMyAmIzE0OTE7JiMxNDky
OyYjMTQ5MzsgZGVmICYjMTQ5NDsmIzE0OTU7JiMxNDk2Ow0KPC9kaXY+DQo8ZGl2IGNvbnRlbnRl
ZGl0YWJsZT4NCiYjMTQ4ODsmIzE0ODk7JiMxNDkwOyAmIzE0OTE7JiMxNDkyOyYjMTQ5MzsgJiMx
NDg4OyYjMTQ4OTsmIzE0OTA7ICYjMTQ5MTsmIzE0OTI7JiMxNDkzOyAmIzE0ODg7JiMxNDg5OyYj
MTQ5MDsgJiMxNDkxOyYjMTQ5MjsmIzE0OTM7DQo8L2Rpdj4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28321</attachid>
            <date>2009-03-05 12:51:18 -0800</date>
            <delta_ts>2009-03-05 12:51:18 -0800</delta_ts>
            <desc>FF text selection by pressing shift-left_arrow</desc>
            <filename>shift-arrow-in-FF.html</filename>
            <type>text/html</type>
            <size>1472</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">77u/PGh0bWwgZGlyPSJydGwiPg0KPGhlYWQ+DQo8c3R5bGU+DQouaGlnaGxpZ2h0IHsNCiAgYmFj
a2dyb3VuZC1jb2xvcjojMDAwMEZGOw0KfQ0KLnRleHRib3ggew0KICBiYWNrZ3JvdW5kLWNvbG9y
OiM4MDgwODA7DQp9DQoNCjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keT4NCkdpdmVuIHRoZSBmb2xs
b3dpbmcgdGV4dCA8YnIgLz4NCg0KPGRpdiBjbGFzcz0idGV4dGJveCI+DQomIzE0ODg7JiMxNDg5
OyYjMTQ5MDsgeHl6ICYjMTQ5MTsmIzE0OTI7JiMxNDkzOyBkZWYgJiMxNDk0OyYjMTQ5NTsmIzE0
OTY7DQo8L2Rpdj4NCg0KPHA+Rm9sbG93aW5nIHNob3dzIHRoZSBzZWxlY3Rpb24gb2YgRmlyZUZv
eCB3aGVuIHByZXNzaW5nIHNoaWZ0LWxlZnQtYXJyb3c8YnIgLz4NCkN1cnNvciBzdGFydHMgYmV0
d2VlbiAneCcgYW5kICd5JyBjaGFyYWN0ZXI8YnIgLz4NCg0KPGRpdiBjbGFzcz0idGV4dGJveCI+
DQo8ZGl2Pg0KJiMxNDg4OyYjMTQ4OTsmIzE0OTA7IHg8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij55
PC9zcGFuPnogJiMxNDkxOyYjMTQ5MjsmIzE0OTM7IGRlZiAmIzE0OTQ7JiMxNDk1OyYjMTQ5NjsN
CjwvZGl2Pg0KPGRpdj4NCiYjMTQ4ODsmIzE0ODk7JiMxNDkwOyB4PHNwYW4gY2xhc3M9ImhpZ2hs
aWdodCI+eXo8L3NwYW4+ICYjMTQ5MTsmIzE0OTI7JiMxNDkzOyBkZWYgJiMxNDk0OyYjMTQ5NTsm
IzE0OTY7DQo8L2Rpdj4NCjxkaXY+DQomIzE0ODg7JiMxNDg5OyYjMTQ5MDsgeDxzcGFuIGNsYXNz
PSJoaWdobGlnaHQiPnl6IDwvc3Bhbj4mIzE0OTE7JiMxNDkyOyYjMTQ5MzsgZGVmICYjMTQ5NDsm
IzE0OTU7JiMxNDk2Ow0KPC9kaXY+DQo8ZGl2Pg0KJiMxNDg4OyYjMTQ4OTsmIzE0OTA7IHg8c3Bh
biBjbGFzcz0iaGlnaGxpZ2h0Ij55eiAmIzE0OTE7PC9zcGFuPiYjMTQ5MjsmIzE0OTM7IGRlZiAm
IzE0OTQ7JiMxNDk1OyYjMTQ5NjsNCjwvZGl2Pg0KPGRpdj4NCiYjMTQ4ODsmIzE0ODk7JiMxNDkw
OyB4PHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+eXogJiMxNDkxOyYjMTQ5Mjs8L3NwYW4+JiMxNDkz
OyBkZWYgJiMxNDk0OyYjMTQ5NTsmIzE0OTY7DQo8L2Rpdj4NCjxkaXY+DQomIzE0ODg7JiMxNDg5
OyYjMTQ5MDsgeDxzcGFuIGNsYXNzPSJoaWdobGlnaHQiPnl6ICYjMTQ5MTsmIzE0OTI7JiMxNDkz
Ozwvc3Bhbj4gZGVmICYjMTQ5NDsmIzE0OTU7JiMxNDk2Ow0KPC9kaXY+DQo8ZGl2Pg0KJiMxNDg4
OyYjMTQ4OTsmIzE0OTA7IHg8c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij55eiAmIzE0OTE7JiMxNDky
OyYjMTQ5MzsgPC9zcGFuPmRlZiAmIzE0OTQ7JiMxNDk1OyYjMTQ5NjsNCjwvZGl2Pg0KPGRpdj4N
CiYjMTQ4ODsmIzE0ODk7JiMxNDkwOyB4PHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+eXogJiMxNDkx
OyYjMTQ5MjsmIzE0OTM7IGQ8L3NwYW4+ZWYgJiMxNDk0OyYjMTQ5NTsmIzE0OTY7DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvcD4NCjwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28747</attachid>
            <date>2009-03-18 23:21:28 -0700</date>
            <delta_ts>2009-03-19 10:24:54 -0700</delta_ts>
            <desc>patch w/ Layout test</desc>
            <filename>24303.patch</filename>
            <type>text/plain</type>
            <size>32767</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTgyMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDMtMTggIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1lbmds
aXNoLWluLXJ0bC5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1oZWJyZXctaW4tcnRsLmh0bWwKKyAgICAgICAgICAg
ICAgIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5nbGlzaC1pbi1ydGwuaHRt
bAorICAgICAgICAgICAgICAgZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJy
ZXctaW4tcnRsLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRp
bmdSaWdodEZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6
bW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250
cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdMZWZ0QmFja3dhcmQpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQpOgorICAgICAgICAq
IGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5oOgorCiAyMDA5LTAzLTE4ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAJKHJl
dmlzaW9uIDQxODIzKQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsNiArMjU1LDI0IEBAIHZvaWQgU2VsZWN0aW9uQ29udHJv
bGxlcjo6d2lsbEJlTW9kaWZpZWQKIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVy
Ojptb2RpZnlFeHRlbmRpbmdSaWdodEZvcndhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQogewogICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zZWwuZXh0ZW50KCksIG1fc2VsLmFmZmlu
aXR5KCkpOworCisjaWYgUExBVEZPUk0oV0lOX09TKQorICAgIFdlYkNvcmU6Ok5vZGUgKm4gPSBw
b3MuZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCk7CisgICAgaWYgKG4pIHsKKyAgICAgICAgV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG4tPnJlbmRlcmVyKCk7CisgICAgICAgIGlmIChy
ZW5kZXJlcikgeworICAgICAgICAgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5kaXJlY3Rpb24o
KSA9PSBXZWJDb3JlOjpSVEwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbW9kaWZ5RXh0ZW5k
aW5nQmFja3dhcmQoZ3JhbnVsYXJpdHksIHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
IAorICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIG1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoZ3Jh
bnVsYXJpdHksIHBvcyk7Cit9ICAgIAorICAgICAgICAKK1Zpc2libGVQb3NpdGlvbiBTZWxlY3Rp
b25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdGb3J3YXJkKFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgVmlzaWJsZVBvc2l0aW9uJiBwb3MpCit7CiAgICAgc3dpdGNoIChncmFudWxhcml0
eSkgewogICAgICAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgogICAgICAgICAgICAgcG9z
ID0gcG9zLm5leHQodHJ1ZSk7CkBAIC0zNjksNyArMzg3LDI0IEBAIFZpc2libGVQb3NpdGlvbiBT
ZWxlY3Rpb25Db250cm9sbGVyOjptb2QKIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9s
bGVyOjptb2RpZnlFeHRlbmRpbmdMZWZ0QmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zZWwuZXh0ZW50KCksIG1fc2VsLmFm
ZmluaXR5KCkpOwotICAgICAgICAKKworI2lmIFBMQVRGT1JNKFdJTl9PUykKKyAgICBXZWJDb3Jl
OjpOb2RlICpuID0gcG9zLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgIGlmIChuKSB7Cisg
ICAgICAgIFdlYkNvcmU6OlJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBuLT5yZW5kZXJlcigpOwor
ICAgICAgICBpZiAocmVuZGVyZXIpIHsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlci0+c3R5bGUo
KS0+ZGlyZWN0aW9uKCkgPT0gV2ViQ29yZTo6UlRMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IG1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoZ3JhbnVsYXJpdHksIHBvcyk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gIAorICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIG1vZGlmeUV4dGVuZGlu
Z0JhY2t3YXJkKGdyYW51bGFyaXR5LCBwb3MpOworfQorICAgICAgIAorVmlzaWJsZVBvc2l0aW9u
IFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ0JhY2t3YXJkKFRleHRHcmFudWxh
cml0eSBncmFudWxhcml0eSwgVmlzaWJsZVBvc2l0aW9uJiBwb3MpCit7CiAgICAgLy8gRXh0ZW5k
aW5nIGEgc2VsZWN0aW9uIGJhY2t3YXJkIGJ5IHdvcmQgb3IgY2hhcmFjdGVyIGZyb20ganVzdCBh
ZnRlciBhIHRhYmxlIHNlbGVjdHMKICAgICAvLyB0aGUgdGFibGUuICBUaGlzICJtYWtlcyBzZW5z
ZSIgZnJvbSB0aGUgdXNlciBwZXJzcGVjdGl2ZSwgZXNwLiB3aGVuIGRlbGV0aW5nLgogICAgIC8v
IEl0IHdhcyBkb25lIGhlcmUgaW5zdGVhZCBvZiBpbiBWaXNpYmxlUG9zaXRpb24gYmVjYXVzZSB3
ZSB3YW50IFZQcyB0byBpdGVyYXRlCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmgJKHJldmlzaW9uIDQxODIzKQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDkgKzEzMSwxMSBAQCBwcml2YXRlOgogICAg
IGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCiAgICAg
VmlzaWJsZVBvc2l0aW9uIG1vZGlmeUV4dGVuZGluZ1JpZ2h0Rm9yd2FyZChUZXh0R3JhbnVsYXJp
dHkpOworICAgIFZpc2libGVQb3NpdGlvbiBtb2RpZnlFeHRlbmRpbmdGb3J3YXJkKFRleHRHcmFu
dWxhcml0eSwgVmlzaWJsZVBvc2l0aW9uJiBwb3MpOwogICAgIFZpc2libGVQb3NpdGlvbiBtb2Rp
ZnlNb3ZpbmdSaWdodChUZXh0R3JhbnVsYXJpdHkpOwogICAgIFZpc2libGVQb3NpdGlvbiBtb2Rp
ZnlNb3ZpbmdGb3J3YXJkKFRleHRHcmFudWxhcml0eSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIG1v
ZGlmeUV4dGVuZGluZ0xlZnRCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkpOworICAgIFZpc2libGVQ
b3NpdGlvbiBtb2RpZnlFeHRlbmRpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHksIFZpc2libGVQ
b3NpdGlvbiYgcG9zKTsKICAgICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5TW92aW5nTGVmdChUZXh0
R3JhbnVsYXJpdHkpOwogICAgIFZpc2libGVQb3NpdGlvbiBtb2RpZnlNb3ZpbmdCYWNrd2FyZChU
ZXh0R3JhbnVsYXJpdHkpOwogCkBAIC0xODcsMyArMTg5LDQgQEAgdm9pZCBzaG93VHJlZShjb25z
dCBXZWJDb3JlOjpTZWxlY3Rpb25DbwogI2VuZGlmCiAKICNlbmRpZiAvLyBTZWxlY3Rpb25Db250
cm9sbGVyX2gKKwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDE4MjMpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAwOS0wMy0xOCAgWGlhb21l
aSBKaSAgPHhqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJp
ZGktc3RhcnQtd2l0aC1lbmdsaXNoLWluLXJ0bC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1oZWJyZXctaW4t
cnRsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tZW5nbGlzaC1pbi1ydGwuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGkt
c3RhcnQtd2l0aC1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlk
aS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1z
dGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFy
dC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGktc3Rh
cnQtd2l0aC1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13
aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1l
eHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5nbGlzaC1pbi1ydGwtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWhlYnJldy1pbi1y
dGwtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0
aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFy
dC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0
YXJ0LXdpdGgtZW5nbGlzaC1pbi1ydGwtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0YXJ0
LXdpdGgtaGVicmV3LWluLXJ0bC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFy
dC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0
bC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZW5nbGlzaC1pbi1ydGwtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJy
ZXctaW4tcnRsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMDktMDMtMTggIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0
YXJ0LXdpdGgtZW5nbGlzaC1pbi1ydGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1lbmdsaXNo
LWluLXJ0bC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0YXJ0LXdpdGgtZW5nbGlzaC1pbi1ydGwuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAor77u/PGh0bWwgZGlyPSJydGwiPgorPGhlYWQ+
Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hh
cnNldD11dGYtOCI+Cis8c3R5bGU+CisuZWRpdGluZyB7CisgICAgYm9yZGVyOiAycHggc29saWQg
cmVkOworICAgIHBhZGRpbmc6IDEycHg7CisgICAgZm9udC1zaXplOiAyNHB4OworfQorCisuc2Vs
ZWN0ZWQgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNhZmRhZmY7Cit9Cis8L3N0eWxlPgorPHNj
cmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9K
YXZhU2NyaXB0IiA+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBlZGl0aW5nVGVzdCgp
IHsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSB7CisgICAgICAgIG1vdmVTZWxlY3Rpb25G
b3J3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCA5
OyBpKyspIHsKKyAgICAgICAgZXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFu
ZCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorCis8dGl0bGU+RWRpdGluZyBUZXN0PC90aXRsZT4K
KzwvaGVhZD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRpdGluZyI+
Cis8c3BhbiBpZD0idGVzdCI+YWJjICYjMTQ4ODsmIzE0ODk7JiMxNDkwOyB4eXogJiMxNDkxOyYj
MTQ5MjsmIzE0OTM7IGRlZjwvc3Bhbj4KKzwvZGl2PgorPHNjcmlwdD4KK3J1bkVkaXRpbmdUZXN0
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1y
dGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1oZWJyZXctaW4tcnRsLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJp
ZGktc3RhcnQtd2l0aC1oZWJyZXctaW4tcnRsLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzcgQEAKK++7vzxodG1sIGRpcj0icnRsIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHN0eWxlPgor
LmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAxMnB4
OworICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKworLnNlbGVjdGVkIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiAjYWZkYWZmOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMg
bGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgZm9yIChpID0gMDsgaSA8
IDk7IGkrKykgeworICAgICAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFu
ZCgpOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSB7CisgICAgICAgIGV4dGVu
ZFNlbGVjdGlvbkZvcndhcmRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICB9Cit9Cis8L3Njcmlw
dD4KKworPHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8ZGl2IGNvbnRlbnRl
ZGl0YWJsZSBpZD0icm9vdCIgY2xhc3M9ImVkaXRpbmciPgorPHNwYW4gaWQ9InRlc3QiPiYjMTQ4
ODsmIzE0ODk7JiMxNDkwOyB4eXogJiMxNDkxOyYjMTQ5MjsmIzE0OTM7IGRlZiAmIzE0OTQ7JiMx
NDk1OyYjMTQ5Njs8L3NwYW4+Cis8L2Rpdj4KKzxzY3JpcHQ+CitydW5FZGl0aW5nVGVzdCgpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNo
LWluLXJ0bC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0bC5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDM3IEBACivvu788aHRtbCBkaXI9InJ0bCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzxz
dHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGlu
ZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0cHg7Cit9CisKKy5zZWxlY3RlZCB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogI2FmZGFmZjsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0uLi9lZGl0
aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3Nj
cmlwdD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIGVkaXRpbmdUZXN0KCkgeworICAgIGZvciAoaSA9
IDA7IGkgPCA5OyBpKyspIHsKKyAgICAgICAgbW92ZVNlbGVjdGlvbkZvcndhcmRCeUNoYXJhY3Rl
ckNvbW1hbmQoKTsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IDk7IGkrKykgeworICAgICAg
ICBleHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAgfQorfQor
PC9zY3JpcHQ+CisKKzx0aXRsZT5FZGl0aW5nIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPGRpdiBj
b250ZW50ZWRpdGFibGUgaWQ9InJvb3QiIGNsYXNzPSJlZGl0aW5nIj4KKzxzcGFuIGlkPSJ0ZXN0
Ij5hYmMgZWZkIGRhYmViIGdyYm4gdGhqam4gPC9zcGFuPgorPC9kaXY+Cis8c2NyaXB0PgorcnVu
RWRpdGluZ1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1oZWJyZXctaW4tcnRsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWhlYnJldy1pbi1ydGwuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAor77u/PGh0bWwgZGlyPSJydGwiPgorPGhlYWQ+Cis8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCI+Cis8c3R5bGU+CisuZWRpdGluZyB7CisgICAgYm9yZGVyOiAycHggc29saWQgcmVk
OworICAgIHBhZGRpbmc6IDEycHg7CisgICAgZm9udC1zaXplOiAyNHB4OworfQorCisuc2VsZWN0
ZWQgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNhZmRhZmY7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZh
U2NyaXB0IiA+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsK
KyAgICBmb3IgKGkgPSAwOyBpIDwgOTsgaSsrKSB7CisgICAgICAgIG1vdmVTZWxlY3Rpb25Gb3J3
YXJkQnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCA5OyBp
KyspIHsKKyAgICAgICAgZXh0ZW5kU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29tbWFuZCgp
OworICAgIH0KK30KKzwvc2NyaXB0PgorCis8dGl0bGU+RWRpdGluZyBUZXN0PC90aXRsZT4KKzwv
aGVhZD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJyb290IiBjbGFzcz0iZWRpdGluZyI+Cis8
c3BhbiBpZD0idGVzdCI+JiMxNDg4OyYjMTQ4OTsmIzE0OTA7ICYjMTQ5MTsmIzE0OTI7JiMxNDkz
OyAmIzE0ODg7JiMxNDg5OyYjMTQ5MDsgJiMxNDkxOyYjMTQ5MjsmIzE0OTM7ICYjMTQ4ODsmIzE0
ODk7JiMxNDkwOyAmIzE0OTE7JiMxNDkyOyYjMTQ5Mzs8L3NwYW4+Cis8L2Rpdj4KKzxzY3JpcHQ+
CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlv
bi1iaWRpLXN0YXJ0LXdpdGgtZW5nbGlzaC1pbi1ydGwtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVu
ZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLmNoZWNr
c3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2Vs
ZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4
cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis0ZjI4NjllNGQ2OTlj
MWMxMDU5ZDI5MGY0NzFhMjY0MQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWJpZGktc3RhcnQtd2l0aC1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJl
Z2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDMgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4
NTg0CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHg1NiBbYm9yZGVy
OiAoMnB4IHNvbGlkICNGRjAwMDApXQorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMjAxeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1NjksMTQp
IHNpemUgMjAxeDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTY5LDE0KSB3aWR0aCAzMTog
ImRlZiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2MDAsMTQpIHdpZHRoIDQ5IFJUTDogIiBc
eHs1RDN9XHh7NUQ0fVx4ezVENX0gIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY0OSwxNCkg
d2lkdGggMzU6ICJ4eXoiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjg0LDE0KSB3aWR0aCA1
MiBSVEw6ICIgXHh7NUQwfVx4ezVEMX1ceHs1RDJ9ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICg3MzYsMTQpIHdpZHRoIDM0OiAiYWJjIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gOSBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElWfSBvZiBjaGlsZCAxIHtCT0RZ
fSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlv
biAxOCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElW
fSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rp
b24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVu
ZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQuY2hlY2tz
dW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0YXJ0LXdpdGgtaGVicmV3LWluLXJ0bC1leHBl
Y3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorZGYxODg5NTBlNzNhZjFi
ODRiY2EyZDFiMGMzNGQ4OWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1i
aWRpLXN0YXJ0LXdpdGgtaGVicmV3LWluLXJ0bC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rp
b24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1z
ZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVk
aXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAzIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAor
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4NTYgW2JvcmRlcjogKDJw
eCBzb2xpZCAjRkYwMDAwKV0KKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDIwOHgyOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTYyLDE0KSBzaXpl
IDIwOHgyOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDU2MiwxNCkgd2lkdGggNDcgUlRMOiAi
IFx4ezVENn1ceHs1RDd9XHh7NUQ4fSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2MDksMTQp
IHdpZHRoIDMxOiAiZGVmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY0MCwxNCkgd2lkdGgg
NDkgUlRMOiAiIFx4ezVEM31ceHs1RDR9XHh7NUQ1fSAiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNjg5LDE0KSB3aWR0aCAzNTogInh5eiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3MjQs
MTQpIHdpZHRoIDQ2IFJUTDogIlx4ezVEMH1ceHs1RDF9XHh7NUQyfSAiCisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlv
biA5IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9
IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDE4IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtTUEFO
fSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9m
IGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rp
b24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC5jaGVja3N1bQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0
ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxIEBACitjN2E0ZjdkOTc2MzgyODg0Zjg3ZmFkNDcwNTEwZDU0MwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24v
ZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzMgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRC
ZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHg1NiBbYm9yZGVyOiAoMnB4IHNvbGlkICNGRjAwMDAp
XQorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjM2eDI4CisgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MzQsMTQpIHNpemUgMjM2eDI4CisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNTM0LDE0KSB3aWR0aCAyMzY6ICJhYmMgZWZkIGRhYmViIGdyYm4g
dGhqam4iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorc2Vs
ZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiA5IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtT
UEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9
IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE4IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9
IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLWV4
cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQu
Y2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLmNoZWNr
c3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACithMjU0YmNmYmNkNWJkMmEzNmM0MzVjNzBi
ZWRlZWUyOApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWhlYnJldy1pbi1y
dGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2Vs
ZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24taGVicmV3LWluLXJ0bC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRp
dGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDMgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Cisg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHg1NiBbYm9yZGVyOiAoMnB4
IHNvbGlkICNGRjAwMDApXQorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgMjYxeDI4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MDksMTQpIHNpemUg
MjYxeDI4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTA5LDE0KSB3aWR0aCAyNjEgUlRMOiAi
XHh7NUQwfVx4ezVEMX1ceHs1RDJ9IFx4ezVEM31ceHs1RDR9XHh7NUQ1fSBceHs1RDB9XHh7NUQx
fVx4ezVEMn0gXHh7NUQzfVx4ezVENH1ceHs1RDV9IFx4ezVEMH1ceHs1RDF9XHh7NUQyfSBceHs1
RDN9XHh7NUQ0fVx4ezVENX0iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiA5IG9mIGNoaWxkIDAgeyN0ZXh0fSBv
ZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNo
aWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE4IG9m
IGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNo
aWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRp
LXN0YXJ0LXdpdGgtZW5nbGlzaC1pbi1ydGwtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9u
L2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitlMWMyMTQ0ZDk4ODE1NDhiMDg4
N2YxOTIyMDNhMmZkMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC5jaGVja3N1
bQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGkt
c3RhcnQtd2l0aC1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0
aW9uLWJpZGktc3RhcnQtd2l0aC1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4
dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQuY2hl
Y2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2NlMDdkM2JiYWFjMDM5OThjMmQ2YmVm
N2E4YjJjMjQzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwtZXhwZWN0ZWQuY2hlY2tzdW0KX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWlu
LXJ0bC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNoLWluLXJ0bC1l
eHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLWV4cGVj
dGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis1MGZmNjMwNDNkNjdiNDc0
NzIwZTQ4ZWY5MzM2ZjQyZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtc2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
TmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24taGVicmV3LWluLXJ0bC1leHBl
Y3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZWRp
dGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLmNo
ZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24taGVicmV3LWluLXJ0bC1leHBlY3RlZC5jaGVja3N1
bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorZjJlNWZmYjVkNWU0OGU3ZmVjMTgwZThkMWNi
ZGViYzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlv
bi1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLmNoZWNrc3VtCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRs
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0YXJ0LXdpdGgtZW5nbGlzaC1pbi1ydGwtZXhw
ZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbQoKCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWhlYnJldy1pbi1ydGwt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVj
dGlvbi9leHRlbmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1oZWJyZXctaW4tcnRsLWV4cGVj
dGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9v
Y3RldC1zdHJlYW0KCgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Nl
bGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnBuZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46
bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVj
dGlvbi1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWlt
ZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXct
aW4tcnRsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtl
ZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1oZWJyZXctaW4tcnRsLWV4cGVjdGVkLnBuZwpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0KCgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9l
eHRlbmQtc2VsZWN0aW9uLWJpZGktc3RhcnQtd2l0aC1lbmdsaXNoLWluLXJ0bC1leHBlY3RlZC5w
bmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlw
ZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVu
ZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnBuZwpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgpOYW1lOiBzdm46bWltZS10eXBl
CiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgoKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1iaWRpLXN0YXJ0LXdp
dGgtaGVicmV3LWluLXJ0bC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTog
ZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYmlkaS1zdGFydC13aXRoLWhl
YnJldy1pbi1ydGwtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUK
ICAgKyAqCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
CgoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtc2VsZWN0aW9uLWVuZ2xpc2gtaW4tcnRsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1lbmdsaXNo
LWluLXJ0bC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICAr
ICoKTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1z
ZWxlY3Rpb24taGVicmV3LWluLXJ0bC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlz
cGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24taGVicmV3LWluLXJ0
bC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKTmFt
ZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCg==
</data>
<flag name="review"
          id="14176"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28815</attachid>
            <date>2009-03-20 18:32:25 -0700</date>
            <delta_ts>2009-03-26 10:49:02 -0700</delta_ts>
            <desc>patch w/ Layout test (version 2)</desc>
            <filename>24303.patch</filename>
            <type>text/plain</type>
            <size>44980</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTg4NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzMDMKKyAgICAgICAgVXNp
bmcga2V5Ym9hcmQgc2VsZWN0IFJUTCB0ZXh0LCBIaWdobGlnaHRzIGdvZXMgdG8gb3Bwb3NpdGUg
ZGlyZWN0aW9uIGZyb20gRmlyZWZveCBhbmQgSUUuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1NlbGVj
dGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxl
cjo6ZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jayk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdSaWdodCk6IEFkZGVkLiBDdXJyZW5j
dGx5IAorICAgICAgICBpbXBsZW1lbnRlZCBmb3IgY2hhcmFjdGVyIGFuZCB3b3JkIGdyYW51bGFy
aXR5LCBhbGwgb3RoZXIgZ3JhbnVsYXJpdGllcworICAgICAgICBhcmUgdHJlYXRlZCBhcyAiZm9y
d2FyZCIuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRl
bmRpbmdGb3J3YXJkKTogUmVuYW1lZCAKKyAgICAgICAgbW9kaWZ5RXh0ZW5kaW5nUmlnaHRGb3J3
YXJkKCkgdG8gdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6Om1v
ZGlmeUV4dGVuZGluZ0xlZnQpOiBBZGRlZC4gQ3VycmVuY3RseQorICAgICAgICBpbXBsZW1lbnRl
ZCBmb3IgY2hhcmFjdGVyIGFuZCB3b3JkIGdyYW51bGFyaXR5LCBhbGwgb3RoZXIgZ3JhbnVsYXJp
dGllcworICAgICAgICBhcmUgdHJlYXRlZCBhcyAiYmFja3dhcmQiLgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQpOiBSZW5hbWVk
CisgICAgICAgIG1vZGlmeUV4dGVuZGluZ0xlZnRCYWNrd2FyZCgpIHRvIHRoaXMuCisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnkpOiBDaGFuZ2UgdG8gY2FsbCBl
aXRoZXIgdGhlIAorICAgICAgICBsZWZ0L3JpZ2h0IG9yIGJhY2t3YXJkL2ZvcndhcmQgbWV0aG9k
cyBkZXBlbmRpbmcgb24gdGhlICdkaXInIGFyZ3VtZW50CisgICAgICAgIGZvciBleHRlbmRzLgor
ICAgICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5oOgorCiAyMDA5LTAzLTIwICBE
YXZlIE1vb3JlICA8ZGF2ZW1vb3JlQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVy
LmNwcAkocmV2aXNpb24gNDE4MjMpCisrKyBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Miw3ICsyNTIsNTggQEAgdm9pZCBTZWxlY3Rp
b25Db250cm9sbGVyOjp3aWxsQmVNb2RpZmllZAogICAgIH0KIH0KIAotVmlzaWJsZVBvc2l0aW9u
IFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ1JpZ2h0Rm9yd2FyZChUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCitUZXh0RGlyZWN0aW9uIFNlbGVjdGlvbkNvbnRyb2xsZXI6
OmRpcmVjdGlvbk9mRW5jbG9zaW5nQmxvY2soKSB7CisgICAgTm9kZSAqbiA9IG1fc2VsLmJhc2Uo
KS5ub2RlKCk7CisgICAgTm9kZSogZW5jbG9zaW5nQmxvY2tOb2RlID0gZW5jbG9zaW5nQmxvY2so
bik7CisgICAgaWYgKGVuY2xvc2luZ0Jsb2NrTm9kZSkgeworICAgICAgICBXZWJDb3JlOjpSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gZW5jbG9zaW5nQmxvY2tOb2RlLT5yZW5kZXJlcigpOworICAg
ICAgICBpZiAocmVuZGVyZXIpIHsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlci0+c3R5bGUoKS0+
ZGlyZWN0aW9uKCkgPT0gV2ViQ29yZTo6UlRMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFJU
TDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gTFRSOworfQor
CitWaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nUmln
aHQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIFZpc2libGVQb3NpdGlvbiBw
b3MobV9zZWwuZXh0ZW50KCksIG1fc2VsLmFmZmluaXR5KCkpOworCisgICAgLy8gVGhlIGRpZmZl
cmVuY2UgYmV0d2VlbiBtb2RpZnlFeHRlbmRpbmdSaWdodCBhbmQgbW9kaWZ5RXh0ZW5kaW5nRm9y
d2FyZCBpczoKKyAgICAvLyBtb2RpZnlFeHRlbmRpbmdGb3J3YXJkIGFsd2F5cyBleHRlbmRzIGZv
cndhcmQgbG9naWNhbGx5LgorICAgIC8vIG1vZGlmeUV4dGVuZGluZ1JpZ2h0IGJlaGF2ZXMgdGhl
IHNhbWUgYXMgbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZCBleGNlcHQgZm9yIGV4dGVuZGluZyBjaGFy
YWN0ZXIgb3Igd29yZCwKKyAgICAvLyBpdCBleHRlbmRzIGZvcndhcmQgbG9naWNhbGx5IGlmIHRo
ZSBlbmNsb3NpbmcgYmxvY2sgaXMgTFRSIGRpcmVjdGlvbiwKKyAgICAvLyBidXQgaXQgZXh0ZW5k
cyBiYWNrd2FyZCBsb2dpY2FsbHkgaWYgdGhlIGVuY2xvc2luZyBibG9jayBpcyBSVEwgZGlyZWN0
aW9uLgorICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgY2FzZSBDaGFyYWN0ZXJH
cmFudWxhcml0eToKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkg
PT0gUlRMKSB7CisgICAgICAgICAgICAgICAgcG9zID0gcG9zLnByZXZpb3VzKHRydWUpOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBwb3MubmV4dCh0cnVlKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdvcmRHcmFu
dWxhcml0eToKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0g
UlRMKSB7CisgICAgICAgICAgICAgICAgcG9zID0gcHJldmlvdXNXb3JkUG9zaXRpb24ocG9zKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcG9zID0gbmV4dFdvcmRQb3Np
dGlvbihwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICAgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6Cisg
ICAgICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgICAgIGNhc2UgU2VudGVuY2VC
b3VuZGFyeToKKyAgICAgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGNhc2UgUGFyYWdy
YXBoQm91bmRhcnk6CisgICAgICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgYWxsIG9mIHRoZSBhYm92ZT8KKyAgICAgICAgICAgIHBvcyA9
IG1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoZ3JhbnVsYXJpdHkpOworICAgIH0KKyAgICByZXR1cm4g
cG9zOworfSAgICAKKyAgICAgICAgCitWaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29udHJvbGxl
cjo6bW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhtX3NlbC5leHRlbnQoKSwgbV9zZWwuYWZmaW5pdHko
KSk7CiAgICAgc3dpdGNoIChncmFudWxhcml0eSkgewpAQCAtMzY2LDEwICs0MTcsNDYgQEAgVmlz
aWJsZVBvc2l0aW9uIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZAogICAgIHJldHVybiBwb3M7CiB9
CiAKLVZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdM
ZWZ0QmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQorVmlzaWJsZVBvc2l0aW9u
IFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ0xlZnQoVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQogewogICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zZWwuZXh0ZW50KCks
IG1fc2VsLmFmZmluaXR5KCkpOwotICAgICAgICAKKworICAgIC8vIFRoZSBkaWZmZXJlbmNlIGJl
dHdlZW4gbW9kaWZ5RXh0ZW5kaW5nTGVmdCBhbmQgbW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQgaXM6
CisgICAgLy8gbW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQgYWx3YXlzIGV4dGVuZHMgYmFja3dhcmQg
bG9naWNhbGx5LgorICAgIC8vIG1vZGlmeUV4dGVuZGluZ0xlZnQgYmVoYXZlcyB0aGUgc2FtZSBh
cyBtb2RpZnlFeHRlbmRpbmdCYWNrd2FyZCBleGNlcHQgZm9yIGV4dGVuZGluZyBjaGFyYWN0ZXIg
b3Igd29yZCwKKyAgICAvLyBpdCBleHRlbmRzIGJhY2t3YXJkIGxvZ2ljYWxseSBpZiB0aGUgZW5j
bG9zaW5nIGJsb2NrIGlzIExUUiBkaXJlY3Rpb24sCisgICAgLy8gYnV0IGl0IGV4dGVuZHMgZm9y
d2FyZCBsb2dpY2FsbHkgaWYgdGhlIGVuY2xvc2luZyBibG9jayBpcyBSVEwgZGlyZWN0aW9uLgor
ICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxh
cml0eToKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gUlRM
KSB7CisgICAgICAgICAgICAgICAgcG9zID0gcG9zLm5leHQodHJ1ZSk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIHBvcyA9IHBvcy5wcmV2aW91cyh0cnVlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdvcmRHcmFudWxhcml0
eToKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gUlRMKSB7
CisgICAgICAgICAgICAgICAgcG9zID0gbmV4dFdvcmRQb3NpdGlvbihwb3MpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBwcmV2aW91c1dvcmRQb3NpdGlvbihw
b3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2Vu
dGVuY2VHcmFudWxhcml0eToKKyAgICAgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgICAg
IGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgICAgIGNhc2UgU2VudGVuY2VCb3VuZGFy
eToKKyAgICAgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGNhc2UgUGFyYWdyYXBoQm91
bmRhcnk6CisgICAgICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgICAgIHBvcyA9
IG1vZGlmeUV4dGVuZGluZ0JhY2t3YXJkKGdyYW51bGFyaXR5KTsKKyAgICB9CisgICAgcmV0dXJu
IHBvczsKK30KKyAgICAgICAKK1Zpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjpt
b2RpZnlFeHRlbmRpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7Cisg
ICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhtX3NlbC5leHRlbnQoKSwgbV9zZWwuYWZmaW5pdHkoKSk7
CisKICAgICAvLyBFeHRlbmRpbmcgYSBzZWxlY3Rpb24gYmFja3dhcmQgYnkgd29yZCBvciBjaGFy
YWN0ZXIgZnJvbSBqdXN0IGFmdGVyIGEgdGFibGUgc2VsZWN0cwogICAgIC8vIHRoZSB0YWJsZS4g
IFRoaXMgIm1ha2VzIHNlbnNlIiBmcm9tIHRoZSB1c2VyIHBlcnNwZWN0aXZlLCBlc3AuIHdoZW4g
ZGVsZXRpbmcuCiAgICAgLy8gSXQgd2FzIGRvbmUgaGVyZSBpbnN0ZWFkIG9mIGluIFZpc2libGVQ
b3NpdGlvbiBiZWNhdXNlIHdlIHdhbnQgVlBzIHRvIGl0ZXJhdGUKQEAgLTUwMSwxMSArNTg4LDEx
IEBAIGJvb2wgU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5KEVBbHRlcmEKICAgICAgICAgICAg
IGlmIChhbHRlciA9PSBNT1ZFKQogICAgICAgICAgICAgICAgIHBvcyA9IG1vZGlmeU1vdmluZ1Jp
Z2h0KGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBwb3Mg
PSBtb2RpZnlFeHRlbmRpbmdSaWdodEZvcndhcmQoZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAg
ICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ1JpZ2h0KGdyYW51bGFyaXR5KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEZPUldBUkQ6CiAgICAgICAgICAgICBpZiAoYWx0ZXIgPT0g
RVhURU5EKQotICAgICAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ1JpZ2h0Rm9yd2Fy
ZChncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nRm9y
d2FyZChncmFudWxhcml0eSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcG9z
ID0gbW9kaWZ5TW92aW5nRm9yd2FyZChncmFudWxhcml0eSk7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTUxMywxMSArNjAwLDExIEBAIGJvb2wgU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5KEVB
bHRlcmEKICAgICAgICAgICAgIGlmIChhbHRlciA9PSBNT1ZFKQogICAgICAgICAgICAgICAgIHBv
cyA9IG1vZGlmeU1vdmluZ0xlZnQoZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ0xlZnRCYWNrd2FyZChncmFudWxhcml0
eSk7CisgICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nTGVmdChncmFudWxhcml0
eSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBCQUNLV0FSRDoKICAgICAgICAg
ICAgIGlmIChhbHRlciA9PSBFWFRFTkQpCi0gICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0
ZW5kaW5nTGVmdEJhY2t3YXJkKGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBwb3MgPSBt
b2RpZnlFeHRlbmRpbmdCYWNrd2FyZChncmFudWxhcml0eSk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5TW92aW5nQmFja3dhcmQoZ3JhbnVsYXJpdHkpOwog
ICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVy
LmgJKHJldmlzaW9uIDQxODIzKQorKysgV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDEwICsxMzAsMTQgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsK
IAotICAgIFZpc2libGVQb3NpdGlvbiBtb2RpZnlFeHRlbmRpbmdSaWdodEZvcndhcmQoVGV4dEdy
YW51bGFyaXR5KTsKKyAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbk9mRW5jbG9zaW5nQmxvY2so
KTsKKworICAgIFZpc2libGVQb3NpdGlvbiBtb2RpZnlFeHRlbmRpbmdSaWdodChUZXh0R3JhbnVs
YXJpdHkpOworICAgIFZpc2libGVQb3NpdGlvbiBtb2RpZnlFeHRlbmRpbmdGb3J3YXJkKFRleHRH
cmFudWxhcml0eSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIG1vZGlmeU1vdmluZ1JpZ2h0KFRleHRH
cmFudWxhcml0eSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIG1vZGlmeU1vdmluZ0ZvcndhcmQoVGV4
dEdyYW51bGFyaXR5KTsKLSAgICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5RXh0ZW5kaW5nTGVmdEJh
Y2t3YXJkKFRleHRHcmFudWxhcml0eSk7CisgICAgVmlzaWJsZVBvc2l0aW9uIG1vZGlmeUV4dGVu
ZGluZ0xlZnQoVGV4dEdyYW51bGFyaXR5KTsKKyAgICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5RXh0
ZW5kaW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5KTsKICAgICBWaXNpYmxlUG9zaXRpb24gbW9k
aWZ5TW92aW5nTGVmdChUZXh0R3JhbnVsYXJpdHkpOwogICAgIFZpc2libGVQb3NpdGlvbiBtb2Rp
ZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkpOwogCkBAIC0xODcsMyArMTkxLDQgQEAg
dm9pZCBzaG93VHJlZShjb25zdCBXZWJDb3JlOjpTZWxlY3Rpb25DbwogI2VuZGlmCiAKICNlbmRp
ZiAvLyBTZWxlY3Rpb25Db250cm9sbGVyX2gKKwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDE4ODQpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAwOS0wMy0yMCAgWGlhb21laSBKaSAgPHhqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDMwMworICAgICAgICBVc2luZyBrZXlib2FyZCBzZWxl
Y3QgUlRMIHRleHQsIEhpZ2hsaWdodHMgZ29lcyB0byBvcHBvc2l0ZSBkaXJlY3Rpb24gZnJvbSBG
aXJlZm94IGFuZCBJRS4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9l
eHRlbmQtc2VsZWN0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDA5LTAzLTIwICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5
YWtvdi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rp
b24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzU5IEBACithYmMg15DXkdeSIHh5eiDXk9eU15UgZGVmCivX
kNeR15IgeHl6INeT15TXlSBkZWYg15bXl9eYCivXkNeR15Ig15PXlNeVINeQ15HXkgorYWJjIGVm
ZCBkYWJlYgorTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQKK0xvcmVtIGlwc3VtIGRvbG9yCitq
dXN0IGEgdGVzdAorc2l0IGFtZXQKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0CitMb3JlbQor
aXBzdW0gZG9sb3Igc2l0CithbWV0CisKKworCitFeHRlbmRpbmcgYnkgY2hhcmFjdGVyCitUZXN0
IDEsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygx
LDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEs
OSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpLCAoMSwxNSksICgxLDE2
KSwgKDEsMTcpLCAoMSwxOCksICgxLDE5KSwgKDEsMjApXQorICBFeHRlbmRpbmcgbGVmdDogICJc
bmFiYyBBQkMgeHl6IERFRiBkZWZcbiJbKDEsMjApLCAoMSwxOSksICgxLDE4KSwgKDEsMTcpLCAo
MSwxNiksICgxLDE1KSwgKDEsMTQpLCAoMSwxMyksICgxLDEyKSwgKDEsMTEpLCAoMSwxMCksICgx
LDkpLCAoMSw4KSwgKDEsNyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgxLDMpLCAoMSwyKSwgKDEs
MSldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDEp
LCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSks
ICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpLCAoMSwxNSksICgxLDE2KSwg
KDEsMTcpLCAoMSwxOCksICgxLDE5KSwgKDEsMjApXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAi
XG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDIwKSwgKDEsMTkpLCAoMSwxOCksICgxLDE3KSwg
KDEsMTYpLCAoMSwxNSksICgxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAo
MSw5KSwgKDEsOCksICgxLDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgx
LDEpXQorVGVzdCAxLCBSVEw6CisgIEV4dGVuZGluZyBsZWZ0OiAiXG5hYmMgQUJDIHh5eiBERUYg
ZGVmXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAo
MSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpLCAoMSwx
NSksICgxLDE2KSwgKDEsMTcpLCAoMSwxOCksICgxLDE5KSwgKDEsMjApXQorICBFeHRlbmRpbmcg
cmlnaHQ6ICAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDIwKSwgKDEsMTkpLCAoMSwxOCks
ICgxLDE3KSwgKDEsMTYpLCAoMSwxNSksICgxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwg
KDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwg
KDEsMiksICgxLDEpXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIlxuYWJjIEFCQyB4eXogREVGIGRl
ZlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0KSwgKDEsNSksICgxLDYpLCAoMSw3KSwgKDEs
OCksICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEsMTIpLCAoMSwxMyksICgxLDE0KSwgKDEsMTUp
LCAoMSwxNiksICgxLDE3KSwgKDEsMTgpLCAoMSwxOSksICgxLDIwKV0KKyAgRXh0ZW5kaW5nIGJh
Y2t3YXJkOiAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDIwKSwgKDEsMTkpLCAoMSwxOCks
ICgxLDE3KSwgKDEsMTYpLCAoMSwxNSksICgxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwg
KDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwg
KDEsMiksICgxLDEpXQorCisKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyTGVmdAorICB2
YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyRm9yd2Fy
ZCBhbmQgcnRsRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIGx0ckJhY2t3YXJkCisg
IHZhbGlkYXRpbmcgbHRyQmFja3dhcmQgYW5kIHJ0bEJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRy
UmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBydGxSaWdodAorCisK
K1Rlc3QgMiwgTFRSOgorICBFeHRlbmRpbmcgcmlnaHQ6ICJcbkFCQyB4eXogREVGIGRlZiBHSElc
biJbKDEsMSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUpLCAoMSw2KSwgKDEsNyksICgxLDgp
LCAoMSw5KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKSwgKDEsMTMpLCAoMSwxNCksICgxLDE1KSwg
KDEsMTYpLCAoMSwxNyksICgxLDE4KSwgKDEsMTkpLCAoMSwyMCldCisgIEV4dGVuZGluZyBsZWZ0
OiAgIlxuQUJDIHh5eiBERUYgZGVmIEdISVxuIlsoMSwyMCksICgxLDE5KSwgKDEsMTgpLCAoMSwx
NyksICgxLDE2KSwgKDEsMTUpLCAoMSwxNCksICgxLDEzKSwgKDEsMTIpLCAoMSwxMSksICgxLDEw
KSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgxLDIp
LCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJb
KDEsMSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUpLCAoMSw2KSwgKDEsNyksICgxLDgpLCAo
MSw5KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKSwgKDEsMTMpLCAoMSwxNCksICgxLDE1KSwgKDEs
MTYpLCAoMSwxNyksICgxLDE4KSwgKDEsMTkpLCAoMSwyMCldCisgIEV4dGVuZGluZyBiYWNrd2Fy
ZDogICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJbKDEsMjApLCAoMSwxOSksICgxLDE4KSwgKDEs
MTcpLCAoMSwxNiksICgxLDE1KSwgKDEsMTQpLCAoMSwxMyksICgxLDEyKSwgKDEsMTEpLCAoMSwx
MCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgxLDMpLCAoMSwy
KSwgKDEsMSldCitUZXN0IDIsIFJUTDoKKyAgRXh0ZW5kaW5nIGxlZnQ6ICJcbkFCQyB4eXogREVG
IGRlZiBHSElcbiJbKDEsMSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUpLCAoMSw2KSwgKDEs
NyksICgxLDgpLCAoMSw5KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKSwgKDEsMTMpLCAoMSwxNCks
ICgxLDE1KSwgKDEsMTYpLCAoMSwxNyksICgxLDE4KSwgKDEsMTkpLCAoMSwyMCldCisgIEV4dGVu
ZGluZyByaWdodDogICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJbKDEsMjApLCAoMSwxOSksICgx
LDE4KSwgKDEsMTcpLCAoMSwxNiksICgxLDE1KSwgKDEsMTQpLCAoMSwxMyksICgxLDEyKSwgKDEs
MTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgx
LDMpLCAoMSwyKSwgKDEsMSldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAiXG5BQkMgeHl6IERFRiBk
ZWYgR0hJXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcp
LCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpLCAo
MSwxNSksICgxLDE2KSwgKDEsMTcpLCAoMSwxOCksICgxLDE5KSwgKDEsMjApXQorICBFeHRlbmRp
bmcgYmFja3dhcmQ6ICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJbKDEsMjApLCAoMSwxOSksICgx
LDE4KSwgKDEsMTcpLCAoMSwxNiksICgxLDE1KSwgKDEsMTQpLCAoMSwxMyksICgxLDEyKSwgKDEs
MTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgx
LDMpLCAoMSwyKSwgKDEsMSldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0
CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJG
b3J3YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dh
cmQKKyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGlu
ZyBsdHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0
CisKKworVGVzdCAzLCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIlxuQUJDIERFRiBBQkNcbiJb
KDEsMSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUpLCAoMSw2KSwgKDEsNyksICgxLDgpLCAo
MSw5KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiXG5BQkMg
REVGIEFCQ1xuIlsoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAo
MSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorICBFeHRlbmRpbmcgZm9y
d2FyZDogIlxuQUJDIERFRiBBQkNcbiJbKDEsMSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUp
LCAoMSw2KSwgKDEsNyksICgxLDgpLCAoMSw5KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKV0KKyAg
RXh0ZW5kaW5nIGJhY2t3YXJkOiAgIlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSwxMSksICgx
LDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgx
LDIpLCAoMSwxKV0KK1Rlc3QgMywgUlRMOgorICBFeHRlbmRpbmcgbGVmdDogIlxuQUJDIERFRiBB
QkNcbiJbKDEsMSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUpLCAoMSw2KSwgKDEsNyksICgx
LDgpLCAoMSw5KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAg
IlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSwxMSksICgxLDEwKSwgKDEsOSksICgxLDgpLCAo
MSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgxLDIpLCAoMSwxKV0KKyAgRXh0ZW5k
aW5nIGZvcndhcmQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQp
LCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwx
MildCisgIEV4dGVuZGluZyBiYWNrd2FyZDogIlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSwx
MSksICgxLDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEs
MyksICgxLDIpLCAoMSwxKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQK
KyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZv
cndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2Fy
ZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5n
IGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQK
KworCitUZXN0IDQsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiXG5hYmMgZWZkIGRhYmViXG4i
WygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwg
KDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpXQorICBFeHRlbmRp
bmcgbGVmdDogICJcbmFiYyBlZmQgZGFiZWJcbiJbKDEsMTQpLCAoMSwxMyksICgxLDEyKSwgKDEs
MTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgx
LDMpLCAoMSwyKSwgKDEsMSldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAiXG5hYmMgZWZkIGRhYmVi
XG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4
KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpXQorICBFeHRl
bmRpbmcgYmFja3dhcmQ6ICAiXG5hYmMgZWZkIGRhYmViXG4iWygxLDE0KSwgKDEsMTMpLCAoMSwx
MiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAoMSw2KSwgKDEsNSksICgx
LDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorVGVzdCA0LCBSVEw6CisgIEV4dGVuZGluZyBsZWZ0
OiAiXG5hYmMgZWZkIGRhYmViXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwg
KDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiksICgxLDEz
KSwgKDEsMTQpXQorICBFeHRlbmRpbmcgcmlnaHQ6ICAiXG5hYmMgZWZkIGRhYmViXG4iWygxLDE0
KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAo
MSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorICBFeHRlbmRpbmcgZm9y
d2FyZDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0KSwgKDEs
NSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEsMTIpLCAo
MSwxMyksICgxLDE0KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAiXG5hYmMgZWZkIGRhYmViXG4i
WygxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgx
LDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorCisKKyAgdmFs
aWRhdGluZyBsdHJSaWdodCBhbmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBs
dHJGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAorICB2YWxp
ZGF0aW5nIGx0ckxlZnQgYW5kIGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFja3dhcmQg
YW5kIHJ0bEJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFs
aWRhdGluZyBsdHJMZWZ0IGFuZCBydGxSaWdodAorCisKK1Rlc3QgNSwgTFRSOgorICBFeHRlbmRp
bmcgcmlnaHQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAs
NSksICgwLDYpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCks
ICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSksICgwLDEy
KSwgKDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAoMCwzKSwg
KDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgbGVmdDogICIgYW1ldCJbKDAsNSksICgwLDQpLCAo
MCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwxNCksICgw
LDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiks
ICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYpLCAoMCw1
KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2Fy
ZDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAs
NildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSks
ICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIpLCAoMCwx
MyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwg
KDAsNSldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogICIgYW1ldCJbKDAsNSksICgwLDQpLCAoMCwz
KSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwxNCksICgwLDEz
KSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgw
LDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYpLCAoMCw1KSwg
KDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorVGVzdCA1LCBSVEw6CisgIEV4dGVu
ZGluZyBsZWZ0OiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgw
LDUpLCAoMCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQp
LCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwx
MiksICgwLDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyks
ICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAgIiBhbWV0IlsoMCw1KSwgKDAsNCks
ICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxNSksICgwLDE0KSwg
KDAsMTMpLCAoMCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2
KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxvcmVtICJbKDAsNiksICgw
LDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCisgIEV4dGVuZGluZyBmb3J3
YXJkOiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAo
MCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1
KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwxMiksICgw
LDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQp
LCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAiIGFtZXQiWygwLDUpLCAoMCw0KSwgKDAs
MyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQpLCAoMCwx
MyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgwLDYpLCAo
MCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0gIlsoMCw2KSwgKDAsNSks
ICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KKworCisgIHZhbGlkYXRpbmcgbHRy
UmlnaHQgYW5kIGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAor
ICB2YWxpZGF0aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJM
ZWZ0IGFuZCBsdHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNr
d2FyZAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRy
TGVmdCBhbmQgcnRsUmlnaHQKKworCitUZXN0IDYsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAi
TG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KV0s
ICJpcHN1bSBkb2xvciJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KSwg
KDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSldLCAiIGp1c3QgYSB0ZXN0IlsoMCwx
KSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkp
LCAoMCwxMCksICgwLDExKSwgKDAsMTIpXSwgIiBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgw
LDQpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSldCisgIEV4dGVu
ZGluZyBsZWZ0OiAgIiBhbWV0IlsoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAi
IHNpdCJbKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiIGp1c3QgYSB0ZXN0IlsoMCwxMiks
ICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2KSwgKDAsNSksICgwLDQp
LCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIlsoMCwxMSksICgwLDEwKSwgKDAs
OSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwx
KV0sICJMb3JlbSAiWygwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgw
LDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwg
KDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNildLCAiaXBzdW0gZG9sb3IiWygwLDEpLCAoMCwyKSwg
KDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwg
KDAsMTEpXSwgIiBqdXN0IGEgdGVzdCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUp
LCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSksICgwLDEyKV0sICIg
c2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAo
MCwzKSwgKDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiIGFtZXQiWygwLDUp
LCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICIgc2l0IlsoMCw0KSwgKDAsMyksICgwLDIp
LCAoMCwxKV0sICIganVzdCBhIHRlc3QiWygwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAo
MCw4KSwgKDAsNyksICgwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAi
aXBzdW0gZG9sb3IiWygwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2KSwg
KDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxvcmVtICJbKDAsNiksICgwLDUp
LCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCitUZXN0IDYsIFJUTDoKKyAgRXh0
ZW5kaW5nIGxlZnQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwg
KDAsNSksICgwLDYpXSwgImlwc3VtIGRvbG9yIlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwg
KDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKV0sICIganVz
dCBhIHRlc3QiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNiksICgwLDcp
LCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwxMildLCAiIHNpdCJbKDAsMSksICgw
LDIpLCAoMCwzKSwgKDAsNCldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAo
MCw1KV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAgIiBhbWV0IlsoMCw1KSwgKDAsNCksICgwLDMpLCAo
MCwyKSwgKDAsMSldLCAiIHNpdCJbKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiIGp1c3Qg
YSB0ZXN0IlsoMCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2
KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIlsoMCwx
MSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgwLDUpLCAoMCw0KSwgKDAs
MyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAo
MCwyKSwgKDAsMSksICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJbKDAsMCks
ICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNildLCAiaXBzdW0gZG9sb3Ii
WygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwg
KDAsOSksICgwLDEwKSwgKDAsMTEpXSwgIiBqdXN0IGEgdGVzdCJbKDAsMSksICgwLDIpLCAoMCwz
KSwgKDAsNCksICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwx
MSksICgwLDEyKV0sICIgc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KV0sICIgYW1ldCJb
KDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6
ICIgYW1ldCJbKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIiBzaXQiWygwLDQp
LCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIiBqdXN0IGEgdGVzdCJbKDAsMTIpLCAoMCwxMSksICgw
LDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgw
LDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciJbKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwg
KDAsNyksICgwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0g
IlsoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KKworCisg
IHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBh
bmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQKKyAg
dmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3
YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0Cisg
IHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQKKworCitUZXN0IDcsIExUUjoKKyAgRXh0
ZW5kaW5nIHJpZ2h0OiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCks
ICgwLDUpLCAoMCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgw
LDQpLCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAo
MCwxMiksICgwLDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAs
MyksICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiIGFtZXQiWygwLDUpLCAoMCw0
KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQp
LCAoMCwxMyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgw
LDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0gIlsoMCw2KSwg
KDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KKyAgRXh0ZW5kaW5nIGZv
cndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSks
ICgwLDYpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgw
LDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSksICgwLDEyKSwg
KDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAs
NCksICgwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiIGFtZXQiWygwLDUpLCAoMCw0KSwg
KDAsMyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQpLCAo
MCwxMyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgwLDYp
LCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0gIlsoMCw2KSwgKDAs
NSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KK1Rlc3QgNywgUlRMOgorICBF
eHRlbmRpbmcgbGVmdDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQp
LCAoMCw1KSwgKDAsNildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAo
MCw0KSwgKDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwg
KDAsMTIpLCAoMCwxMyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgw
LDMpLCAoMCw0KSwgKDAsNSldCisgIEV4dGVuZGluZyByaWdodDogICIgYW1ldCJbKDAsNSksICgw
LDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwx
NCksICgwLDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwg
KDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYp
LCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorICBFeHRlbmRpbmcg
Zm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1
KSwgKDAsNildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwg
KDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIp
LCAoMCwxMyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAo
MCw0KSwgKDAsNSldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogIiBhbWV0IlsoMCw1KSwgKDAsNCks
ICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxNSksICgwLDE0KSwg
KDAsMTMpLCAoMCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2
KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxvcmVtICJbKDAsNiksICgw
LDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCisKKworICB2YWxpZGF0aW5n
IGx0clJpZ2h0IGFuZCBsdHJMZWZ0CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndh
cmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcg
bHRyTGVmdCBhbmQgbHRyQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRs
QmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5n
IGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisKKworVGVzdCA4LCBMVFI6CisgIEV4dGVuZGluZyByaWdo
dDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KV0sICJp
cHN1bSBkb2xvciBzaXQiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSks
ICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIpLCAoMCwx
MyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwg
KDAsNSldCisgIEV4dGVuZGluZyBsZWZ0OiAgIiBhbWV0IlsoMCw1KSwgKDAsNCksICgwLDMpLCAo
MCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxNSksICgwLDE0KSwgKDAsMTMpLCAo
MCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2KSwgKDAsNSks
ICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0sICJMb3JlbSAiWygwLDUpLCAoMCw0
KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAiTG9y
ZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpXSwgImlwc3VtIGRv
bG9yIHNpdCJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNiks
ICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwxMiksICgwLDEzKSwgKDAs
MTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KV0K
KyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIiBhbWV0IlsoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwy
KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxNSksICgwLDE0KSwgKDAsMTMpLCAoMCwx
MiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2KSwgKDAsNSksICgw
LDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0sICJMb3JlbSAiWygwLDUpLCAoMCw0KSwg
KDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCitUZXN0IDgsIFJUTDoKKyAgRXh0ZW5kaW5nIGxl
ZnQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSldLCAi
aXBzdW0gZG9sb3Igc2l0IlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUp
LCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSksICgwLDEyKSwgKDAs
MTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCks
ICgwLDUpXQorICBFeHRlbmRpbmcgcmlnaHQ6ICAiIGFtZXQiWygwLDUpLCAoMCw0KSwgKDAsMyks
ICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQpLCAoMCwxMyks
ICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgwLDYpLCAoMCw1
KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXSwgIkxvcmVtICJbKDAsNSksICgw
LDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJM
b3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSldLCAiaXBzdW0g
ZG9sb3Igc2l0IlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2
KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSksICgwLDEyKSwgKDAsMTMpLCAo
MCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUp
XQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICIgYW1ldCJbKDAsNSksICgwLDQpLCAoMCwzKSwgKDAs
MiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwxNCksICgwLDEzKSwgKDAs
MTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgwLDUpLCAo
MCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldLCAiTG9yZW0gIlsoMCw1KSwgKDAsNCks
ICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorCisKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBh
bmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJGb3J3YXJkCisgIHZhbGlk
YXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5k
IGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFja3dhcmQgYW5kIHJ0bEJhY2t3YXJkCisg
IHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFu
ZCBydGxSaWdodAorCisKKworCisKKworCitFeHRlbmRpbmcgYnkgd29yZAorVGVzdCAxLCBMVFI6
CisgIEV4dGVuZGluZyByaWdodDogIlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwxKSwgKDEs
NCksICgxLDgpLCAoMSwxMiksICgxLDE2KSwgKDEsMjApXQorICBFeHRlbmRpbmcgbGVmdDogICJc
bmFiYyBBQkMgeHl6IERFRiBkZWZcbiJbKDEsMjApLCAoMSwxNyksICgxLDEzKSwgKDEsOSksICgx
LDUpLCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJcbmFiYyBBQkMgeHl6IERFRiBkZWZc
biJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTIpLCAoMSwxNiksICgxLDIwKV0KKyAgRXh0ZW5k
aW5nIGJhY2t3YXJkOiAgIlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwyMCksICgxLDE3KSwg
KDEsMTMpLCAoMSw5KSwgKDEsNSksICgxLDEpXQorVGVzdCAxLCBSVEw6CisgIEV4dGVuZGluZyBs
ZWZ0OiAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDEy
KSwgKDEsMTYpLCAoMSwyMCldCisgIEV4dGVuZGluZyByaWdodDogICJcbmFiYyBBQkMgeHl6IERF
RiBkZWZcbiJbKDEsMjApLCAoMSwxNyksICgxLDEzKSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKyAg
RXh0ZW5kaW5nIGZvcndhcmQ6ICJcbmFiYyBBQkMgeHl6IERFRiBkZWZcbiJbKDEsMSksICgxLDQp
LCAoMSw4KSwgKDEsMTIpLCAoMSwxNiksICgxLDIwKV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAi
XG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDIwKSwgKDEsMTcpLCAoMSwxMyksICgxLDkpLCAo
MSw1KSwgKDEsMSldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0CisgIHZh
bGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3YXJk
IGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmQKKyAg
dmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJS
aWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisKKwor
VGVzdCAyLCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIlxuQUJDIHh5eiBERUYgZGVmIEdISVxu
IlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxMiksICgxLDE2KSwgKDEsMjApXQorICBFeHRlbmRp
bmcgbGVmdDogICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJbKDEsMjApLCAoMSwxNyksICgxLDEz
KSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJcbkFCQyB4eXog
REVGIGRlZiBHSElcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTIpLCAoMSwxNiksICgxLDIw
KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIlxuQUJDIHh5eiBERUYgZGVmIEdISVxuIlsoMSwy
MCksICgxLDE3KSwgKDEsMTMpLCAoMSw5KSwgKDEsNSksICgxLDEpXQorVGVzdCAyLCBSVEw6Cisg
IEV4dGVuZGluZyBsZWZ0OiAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4iWygxLDEpLCAoMSw0KSwg
KDEsOCksICgxLDEyKSwgKDEsMTYpLCAoMSwyMCldCisgIEV4dGVuZGluZyByaWdodDogICJcbkFC
QyB4eXogREVGIGRlZiBHSElcbiJbKDEsMjApLCAoMSwxNyksICgxLDEzKSwgKDEsOSksICgxLDUp
LCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJb
KDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTIpLCAoMSwxNiksICgxLDIwKV0KKyAgRXh0ZW5kaW5n
IGJhY2t3YXJkOiAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4iWygxLDIwKSwgKDEsMTcpLCAoMSwx
MyksICgxLDkpLCAoMSw1KSwgKDEsMSldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBs
dHJMZWZ0CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGlu
ZyBsdHJGb3J3YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRy
QmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFs
aWRhdGluZyBsdHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0
bFJpZ2h0CisKKworVGVzdCAzLCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIlxuQUJDIERFRiBB
QkNcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTIpXQorICBFeHRlbmRpbmcgbGVmdDogICJc
bkFCQyBERUYgQUJDXG4iWygxLDEyKSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKyAgRXh0ZW5kaW5n
IGZvcndhcmQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDEyKV0K
KyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSw5KSwg
KDEsNSksICgxLDEpXQorVGVzdCAzLCBSVEw6CisgIEV4dGVuZGluZyBsZWZ0OiAiXG5BQkMgREVG
IEFCQ1xuIlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxMildCisgIEV4dGVuZGluZyByaWdodDog
ICJcbkFCQyBERUYgQUJDXG4iWygxLDEyKSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKyAgRXh0ZW5k
aW5nIGZvcndhcmQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDEy
KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAiXG5BQkMgREVGIEFCQ1xuIlsoMSwxMiksICgxLDkp
LCAoMSw1KSwgKDEsMSldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0Cisg
IHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3
YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmQK
KyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGluZyBs
dHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisK
KworVGVzdCA0LCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIlxuYWJjIGVmZCBkYWJlYlxuIlso
MSwxKSwgKDEsNCksICgxLDgpLCAoMSwxNCldCisgIEV4dGVuZGluZyBsZWZ0OiAgIlxuYWJjIGVm
ZCBkYWJlYlxuIlsoMSwxNCksICgxLDkpLCAoMSw1KSwgKDEsMSldCisgIEV4dGVuZGluZyBmb3J3
YXJkOiAiXG5hYmMgZWZkIGRhYmViXG4iWygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDE0KV0KKyAg
RXh0ZW5kaW5nIGJhY2t3YXJkOiAgIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxNCksICgxLDkpLCAo
MSw1KSwgKDEsMSldCitUZXN0IDQsIFJUTDoKKyAgRXh0ZW5kaW5nIGxlZnQ6ICJcbmFiYyBlZmQg
ZGFiZWJcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTQpXQorICBFeHRlbmRpbmcgcmlnaHQ6
ICAiXG5hYmMgZWZkIGRhYmViXG4iWygxLDE0KSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKyAgRXh0
ZW5kaW5nIGZvcndhcmQ6ICJcbmFiYyBlZmQgZGFiZWJcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwg
KDEsMTQpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICJcbmFiYyBlZmQgZGFiZWJcbiJbKDEsMTQp
LCAoMSw5KSwgKDEsNSksICgxLDEpXQorCisKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRy
TGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJGb3J3YXJkCisgIHZhbGlkYXRpbmcg
bHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIGx0ckJh
Y2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFja3dhcmQgYW5kIHJ0bEJhY2t3YXJkCisgIHZhbGlk
YXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBydGxS
aWdodAorCisKK1Rlc3QgNSwgTFRSOgorICBFeHRlbmRpbmcgcmlnaHQ6ICJMb3JlbSAiWygwLDAp
LCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIgYW1l
dCJbKDAsNSldCisgIEV4dGVuZGluZyBsZWZ0OiAgIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBz
dW0gZG9sb3Igc2l0IlsoMCwxMiksICgwLDYpXSwgIkxvcmVtICJbKDAsNiksICgwLDApXQorICBF
eHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDUpXSwgImlwc3VtIGRvbG9yIHNp
dCJbKDAsNSksICgwLDExKSwgKDAsMTUpXSwgIiBhbWV0IlsoMCw1KV0KKyAgRXh0ZW5kaW5nIGJh
Y2t3YXJkOiAgIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxMiks
ICgwLDYpXSwgIkxvcmVtICJbKDAsNiksICgwLDApXQorVGVzdCA1LCBSVEw6CisgIEV4dGVuZGlu
ZyBsZWZ0OiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwg
KDAsMTEpLCAoMCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgcmlnaHQ6ICAiIGFt
ZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEyKSwgKDAsNildLCAiTG9y
ZW0gIlsoMCw2KSwgKDAsMCldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAiTG9yZW0gIlsoMCwwKSwg
KDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwgKDAsMTEpLCAoMCwxNSldLCAiIGFtZXQi
WygwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICIgYW1ldCJbKDAsNSksICgwLDEpXSwgImlw
c3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCwwKV0KKwor
CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdo
dCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQK
KyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJh
Y2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0
CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQKKworCitUZXN0IDYsIExUUjoKKyAg
RXh0ZW5kaW5nIHJpZ2h0OiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3IiWygw
LDUpLCAoMCwxMSldLCAiIGp1c3QgYSB0ZXN0IlsoMCw1KSwgKDAsNyksICgwLDEyKV0sICIgc2l0
IlsoMCw0KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVuZGluZyBsZWZ0OiAgIiBhbWV0IlsoMCw1
KSwgKDAsMSldLCAiIHNpdCJbKDAsMSldLCAiIGp1c3QgYSB0ZXN0IlsoMCw4KSwgKDAsNiksICgw
LDEpXSwgImlwc3VtIGRvbG9yIlsoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCwwKV0KKyAgRXh0
ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciJbKDAs
NSksICgwLDExKV0sICIganVzdCBhIHRlc3QiWygwLDUpLCAoMCw3KSwgKDAsMTIpXSwgIiBzaXQi
WygwLDQpXSwgIiBhbWV0IlsoMCw1KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIiBhbWV0Ilso
MCw1KSwgKDAsMSldLCAiIHNpdCJbKDAsMSldLCAiIGp1c3QgYSB0ZXN0IlsoMCw4KSwgKDAsNiks
ICgwLDEpXSwgImlwc3VtIGRvbG9yIlsoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCwwKV0KK1Rl
c3QgNiwgUlRMOgorICBFeHRlbmRpbmcgbGVmdDogIkxvcmVtICJbKDAsMCksICgwLDUpXSwgImlw
c3VtIGRvbG9yIlsoMCw1KSwgKDAsMTEpXSwgIiBqdXN0IGEgdGVzdCJbKDAsNSksICgwLDcpLCAo
MCwxMildLCAiIHNpdCJbKDAsNCldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgcmlnaHQ6
ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICIgc2l0IlsoMCwxKV0sICIganVzdCBhIHRlc3QiWygw
LDgpLCAoMCw2KSwgKDAsMSldLCAiaXBzdW0gZG9sb3IiWygwLDYpXSwgIkxvcmVtICJbKDAsNiks
ICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDUpXSwgImlw
c3VtIGRvbG9yIlsoMCw1KSwgKDAsMTEpXSwgIiBqdXN0IGEgdGVzdCJbKDAsNSksICgwLDcpLCAo
MCwxMildLCAiIHNpdCJbKDAsNCldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgYmFja3dh
cmQ6ICIgYW1ldCJbKDAsNSksICgwLDEpXSwgIiBzaXQiWygwLDEpXSwgIiBqdXN0IGEgdGVzdCJb
KDAsOCksICgwLDYpLCAoMCwxKV0sICJpcHN1bSBkb2xvciJbKDAsNildLCAiTG9yZW0gIlsoMCw2
KSwgKDAsMCldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0CisgIHZhbGlk
YXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3YXJkIGFu
ZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmQKKyAgdmFs
aWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJSaWdo
dCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisKKworVGVz
dCA3LCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIkxvcmVtICJbKDAsMCksICgwLDUpXSwgImlw
c3VtIGRvbG9yIHNpdCJbKDAsNSksICgwLDExKSwgKDAsMTUpXSwgIiBhbWV0IlsoMCw1KV0KKyAg
RXh0ZW5kaW5nIGxlZnQ6ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQi
WygwLDEyKSwgKDAsNildLCAiTG9yZW0gIlsoMCw2KSwgKDAsMCldCisgIEV4dGVuZGluZyBmb3J3
YXJkOiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwgKDAs
MTEpLCAoMCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiIGFt
ZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEyKSwgKDAsNildLCAiTG9y
ZW0gIlsoMCw2KSwgKDAsMCldCitUZXN0IDcsIFJUTDoKKyAgRXh0ZW5kaW5nIGxlZnQ6ICJMb3Jl
bSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1
KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVuZGluZyByaWdodDogICIgYW1ldCJbKDAsNSksICgw
LDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAo
MCwwKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1
bSBkb2xvciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIgYW1ldCJbKDAsNSldCisgIEV4
dGVuZGluZyBiYWNrd2FyZDogIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0
IlsoMCwxMiksICgwLDYpXSwgIkxvcmVtICJbKDAsNiksICgwLDApXQorCisKKyAgdmFsaWRhdGlu
ZyBsdHJSaWdodCBhbmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJGb3J3
YXJkCisgIHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAorICB2YWxpZGF0aW5n
IGx0ckxlZnQgYW5kIGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFja3dhcmQgYW5kIHJ0
bEJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFsaWRhdGlu
ZyBsdHJMZWZ0IGFuZCBydGxSaWdodAorCisKK1Rlc3QgOCwgTFRSOgorICBFeHRlbmRpbmcgcmln
aHQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUpLCAoMCwx
MSksICgwLDE1KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVuZGluZyBsZWZ0OiAgIiBhbWV0Ilso
MCw1KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxMiksICgwLDYpLCAoMCwwKV0sICJM
b3JlbSAiWygwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDUp
XSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsNSksICgwLDExKSwgKDAsMTUpXSwgIiBhbWV0IlsoMCw1
KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBzdW0g
ZG9sb3Igc2l0IlsoMCwxMiksICgwLDYpLCAoMCwwKV0sICJMb3JlbSAiWygwLDApXQorVGVzdCA4
LCBSVEw6CisgIEV4dGVuZGluZyBsZWZ0OiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0g
ZG9sb3Igc2l0IlsoMCw1KSwgKDAsMTEpLCAoMCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRl
bmRpbmcgcmlnaHQ6ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygw
LDEyKSwgKDAsNiksICgwLDApXSwgIkxvcmVtICJbKDAsMCldCisgIEV4dGVuZGluZyBmb3J3YXJk
OiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwgKDAsMTEp
LCAoMCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICIgYW1ldCJb
KDAsNSksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAoMCw2KSwgKDAsMCldLCAi
TG9yZW0gIlsoMCwwKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQKKyAg
dmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZvcndh
cmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2FyZAor
ICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0
clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQKKwor
CisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9leHRlbmQtc2VsZWN0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjI2IEBA
Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CisgICAgPHN0eWxlPgorICAgICAgICBkaXYudGVzdCB7
CisgICAgICAgICAgICAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlOworICAgICAgICAg
ICAgcGFkZGluZzogNHB4OworICAgICAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIGxpZ2h0Ymx1
ZTsKKyAgICAgICAgICAgIG1hcmdpbjogNHB4IDRweCA0cHggMjRweDsKKyAgICAgICAgICAgIG91
dGxpbmU6IG5vbmU7CisgICAgICAgICAgICBmb250LWZhbWlseTogTHVjaWRhIEdyYW5kZTsKKyAg
ICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiB0ZXN0LW51bWJlcjsKKyAgICAgICAgfQorICAg
ICAgICBkaXYudGVzdDpiZWZvcmUgeyBjb250ZW50OiBjb3VudGVyKHRlc3QtbnVtYmVyKTsgcG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiA4cHg7IGZvbnQtc2l6ZTogeC1zbWFsbDsgdGV4dC1hbGln
bjogcmlnaHQ7IHdpZHRoOiAyMHB4OyB9CisgICAgICAgIGRpdi50ZXN0IHNwYW4geyBiYWNrZ3Jv
dW5kLWNvbG9yOiAjZGVmOyB9CisgICAgICAgIGRpdi50ZXN0IGltZyB7IHdpZHRoOiAxZW07IGhl
aWdodDogMWVtOyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuOyB9CisgICAgICAgIGRpdi50
ZXN0IGltZyArIGltZyB7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsgfQorICAgICAgICBk
aXYudGVzdCBkaXYgeyBib3JkZXI6IDFweCBkYXNoZWQgcGluazsgcGFkZGluZzogM3B4OyBoZWln
aHQ6IDJlbTsgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcG9zaXRpb25zRXh0ZW5kaW5nSW5E
aXJlY3Rpb24oc2VsLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KQorICAgICAgICB7CisgICAgICAg
ICAgICB2YXIgcG9zaXRpb25zID0gW107CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAg
ICAgICAgICAgICAgIHBvc2l0aW9ucy5wdXNoKHsgbm9kZTogc2VsLmV4dGVudE5vZGUsIGJlZ2lu
OiBzZWwuYmFzZU9mZnNldCwgZW5kOiBzZWwuZXh0ZW50T2Zmc2V0IH0pOworICAgICAgICAgICAg
ICAgIHNlbC5tb2RpZnkoImV4dGVuZCIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOworICAgICAg
ICAgICAgICAgIGlmIChwb3NpdGlvbnNbcG9zaXRpb25zLmxlbmd0aCAtIDFdLm5vZGUgPT0gc2Vs
LmV4dGVudE5vZGUgJiYgcG9zaXRpb25zW3Bvc2l0aW9ucy5sZW5ndGggLSAxXS5lbmQgPT0gc2Vs
LmV4dGVudE9mZnNldCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
OworICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uczsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGZvbGQoc3RyaW5nKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0g
IiI7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgICAgIHZhciBjaGFyID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7CisgICAg
ICAgICAgICAgICAgaWYgKGNoYXIgPj0gMHgwNWQwKQorICAgICAgICAgICAgICAgICAgICBjaGFy
IC09IDB4MDU4ZjsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGFyID09IDEwKSB7CisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXFxuIjsKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCArPSBTdHJp
bmcuZnJvbUNoYXJDb2RlKGNoYXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxvZ1Bvc2l0aW9ucyhwb3Np
dGlvbnMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcG9zaXRp
b25zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHBvc2l0aW9uc1tpXS5ub2RlICE9IHBvc2l0aW9uc1tpIC0gMV0ubm9kZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiXSIpOworICAgICAgICAgICAgICAgICAgICBs
b2coIiwgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghaSB8fCBw
b3NpdGlvbnNbaV0ubm9kZSAhPSBwb3NpdGlvbnNbaSAtIDFdLm5vZGUpCisgICAgICAgICAgICAg
ICAgICAgIGxvZygocG9zaXRpb25zW2ldLm5vZGUgaW5zdGFuY2VvZiBUZXh0ID8gJyInICsgZm9s
ZChwb3NpdGlvbnNbaV0ubm9kZS5kYXRhKSArICciJyA6ICI8IiArIHBvc2l0aW9uc1tpXS5ub2Rl
LnRhZ05hbWUgKyAiPiIpICsgIlsiKTsKKyAgICAgICAgICAgICAgICBsb2coIigiICsgcG9zaXRp
b25zW2ldLmJlZ2luICsgIiwiICsgcG9zaXRpb25zW2ldLmVuZCArICIpIik7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBsb2coIl0iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGNoZWNrUmV2ZXJzZU9yZGVyKGlucHV0UG9zaXRpb25zLCBpbnB1dFJldmVyc2VQb3NpdGlvbnMp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBwb3NpdGlvbnMgPSBpbnB1dFBvc2l0aW9ucy5z
bGljZSgpOworICAgICAgICAgICAgdmFyIHJldmVyc2VQb3NpdGlvbnMgPSBpbnB1dFJldmVyc2VQ
b3NpdGlvbnMuc2xpY2UoKTsKKyAgICAgICAgICAgIHZhciBtaXNtYXRjaCA9IChwb3NpdGlvbnMu
bGVuZ3RoICE9IHJldmVyc2VQb3NpdGlvbnMubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChtaXNt
YXRjaCkKKyAgICAgICAgICAgICAgICBsb2coIldBUk5JTkc6IHBvc2l0aW9ucyBzaG91bGQgYmUg
dGhlIHNhbWUsIGJ1dCB0aGUgbGVuZ3RoIGFyZSBub3QgdGhlIHNhbWUgIiArICBwb3NpdGlvbnMu
bGVuZ3RoICsgIiB2cy4gIiArIHJldmVyc2VQb3NpdGlvbnMubGVuZ3RoICsgIlxuIik7CisgICAg
ICAgICAgICB3aGlsZSAoIW1pc21hdGNoKSB7CisgICAgICAgICAgICAgICAgdmFyIHBvcyA9IHBv
c2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBvcykKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgdmFyIHJldmVyc2VQb3MgPSByZXZlcnNlUG9z
aXRpb25zLnNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKHBvcy5ub2RlICE9IHJldmVyc2VQ
b3Mubm9kZSkgeworICAgICAgICAgICAgICAgICAgICBtaXNtYXRjaCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgIGxvZygiV0FSTklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0aGUgcmV2ZXJz
ZSwgYnV0IG5vZGUgYXJlIG5vdCB0aGUgcmV2ZXJzZVxuIik7CisgICAgICAgICAgICAgICAgfSAK
KyAgICAgICAgICAgICAgICBpZiAocG9zLmJlZ2luICE9IHJldmVyc2VQb3MuYmVnaW4pIHsKKyAg
ICAgICAgICAgICAgICAgICAgbWlzbWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBs
b2coIldBUk5JTkc6IHBvc2l0aW9ucyBzaG91bGQgYmUgdGhlIHNhbWUsIGJ1dCBiZWdpbiBhcmUg
bm90ICIgKyBwb3MuYmVnaW4gKyAiIHZzLiAiICsgcmV2ZXJzZVBvcy5iZWdpbiArICJcbiIpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocG9zLmVuZCAhPSByZXZlcnNl
UG9zLmVuZCkgeworICAgICAgICAgICAgICAgICAgICBtaXNtYXRjaCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgIGxvZygiV0FSTklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0aGUgc2FtZSwg
YnV0IGVuZCBhcmUgbm90ICIgKyBwb3MuZW5kICsgIiB2cy4gIiArIHJldmVyc2VQb3MuZW5kICsg
IlxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKwor
ICAgICAgICBmdW5jdGlvbiBjaGVja1NhbWVPcmRlcihpbnB1dFBvc2l0aW9ucywgaW5wdXRTYW1l
UG9zaXRpb25zKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcG9zaXRpb25zID0gaW5wdXRQ
b3NpdGlvbnMuc2xpY2UoKTsKKyAgICAgICAgICAgIHZhciBzYW1lUG9zaXRpb25zID0gaW5wdXRT
YW1lUG9zaXRpb25zLnNsaWNlKCk7CisgICAgICAgICAgICB2YXIgbWlzbWF0Y2ggPSBwb3NpdGlv
bnMubGVuZ3RoICE9IHNhbWVQb3NpdGlvbnMubGVuZ3RoOworICAgICAgICAgICAgaWYgKG1pc21h
dGNoKQorICAgICAgICAgICAgICAgIGxvZygiV0FSTklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0
aGUgc2FtZSwgYnV0IHRoZSBsZW5ndGggYXJlIG5vdCB0aGUgc2FtZSAiICsgIHBvc2l0aW9ucy5s
ZW5ndGggKyAiIHZzLiAiICsgc2FtZVBvc2l0aW9ucy5sZW5ndGggKyAiXG4iKTsKKyAgICAgICAg
ICAgIHdoaWxlICghbWlzbWF0Y2gpIHsKKyAgICAgICAgICAgICAgICB2YXIgcG9zID0gcG9zaXRp
b25zLnBvcCgpOworICAgICAgICAgICAgICAgIGlmICghcG9zKQorICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB2YXIgc2FtZVBvcyA9IHNhbWVQb3NpdGlvbnMucG9w
KCk7CisgICAgICAgICAgICAgICAgaWYgKHBvcy5ub2RlICE9IHNhbWVQb3Mubm9kZSkgeworICAg
ICAgICAgICAgICAgICAgICBtaXNtYXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGxv
ZygiV0FSTklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0aGUgc2FtZSwgYnV0IG5vZGUgYXJlIG5v
dCB0aGUgc2FtZVxuIik7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBpZiAo
cG9zLmJlZ2luICE9IHNhbWVQb3MuYmVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgbWlzbWF0
Y2ggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsb2coIldBUk5JTkc6IHBvc2l0aW9ucyBz
aG91bGQgYmUgdGhlIHNhbWUsIGJ1dCBiZWdpbiBhcmUgbm90IHRoZSBzYW1lICIgKyBwb3MuYmVn
aW4gKyAiIHZzLiAiICsgc2FtZVBvcy5iZWdpbiArICJcbiIpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAocG9zLmVuZCAhPSBzYW1lUG9zLmVuZCkgeworICAgICAgICAg
ICAgICAgICAgICBtaXNtYXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGxvZygiV0FS
TklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0aGUgc2FtZSwgYnV0IGVuZCBhcmUgbm90IHRoZSBz
YW1lICIgKyBwb3MuZW5kICsgIiB2cy4gIiArIHNhbWVQb3MuZW5kICsgIlxuIik7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGZ1bmN0aW9u
IGV4dGVuZGluZ1NlbGVjdGlvbihzZWwsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHZhciBwb3NpdGlvbnMgPSBwb3NpdGlvbnNFeHRlbmRpbmdJbkRpcmVj
dGlvbihzZWwsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgbG9nUG9zaXRp
b25zKHBvc2l0aW9ucyk7CisgICAgICAgICAgICBsb2coIlxuIik7CisgICAgICAgICAgICByZXR1
cm4gcG9zaXRpb25zOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdEV4dGVuZGlu
Z1NlbGVjdGlvbih0ZXN0cywgc2VsLCBncmFudWxhcml0eSkKKyAgICAgICAgeworICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgIHRlc3RzW2ldLnN0eWxlLmRpcmVjdGlvbiA9ICJsdHIiOworICAgICAgICAgICAgICAgIGxv
ZygiVGVzdCAiICsgKGkgKyAxKSArICIsIExUUjpcbiAgRXh0ZW5kaW5nIHJpZ2h0OiAiKTsKKyAg
ICAgICAgICAgICAgICBzZWwuc2V0UG9zaXRpb24odGVzdHNbaV0sIDApOworICAgICAgICAgICAg
ICAgIHZhciBsdHJSaWdodFBvcyA9IGV4dGVuZGluZ1NlbGVjdGlvbihzZWwsICJyaWdodCIsIGdy
YW51bGFyaXR5KTsKKyAgICAKKyAgICAgICAgICAgICAgICBsb2coIiAgRXh0ZW5kaW5nIGxlZnQ6
ICAiKTsKKyAgICAgICAgICAgICAgICB2YXIgbHRyTGVmdFBvcyA9IGV4dGVuZGluZ1NlbGVjdGlv
bihzZWwsICJsZWZ0IiwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgICAgICAgICAgICAgIGxvZygi
ICBFeHRlbmRpbmcgZm9yd2FyZDogIik7CisgICAgICAgICAgICAgICAgc2VsLnNldFBvc2l0aW9u
KHRlc3RzW2ldLCAwKTsKKyAgICAgICAgICAgICAgICB2YXIgbHRyRm9yd2FyZFBvcyA9IGV4dGVu
ZGluZ1NlbGVjdGlvbihzZWwsICJmb3J3YXJkIiwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgICAg
ICAgICAgICAgIGxvZygiICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiKTsKKyAgICAgICAgICAgICAg
ICB2YXIgbHRyQmFja3dhcmRQb3MgPSBleHRlbmRpbmdTZWxlY3Rpb24oc2VsLCAiYmFja3dhcmQi
LCBncmFudWxhcml0eSk7CisgICAgCisgICAgICAgICAgICAgICAgdGVzdHNbaV0uc3R5bGUuZGly
ZWN0aW9uID0gInJ0bCI7CisgICAgCisgICAgICAgICAgICAgICAgbG9nKCJUZXN0ICIgKyAoaSAr
IDEpICsgIiwgUlRMOlxuICBFeHRlbmRpbmcgbGVmdDogIik7CisgICAgICAgICAgICAgICAgc2Vs
LnNldFBvc2l0aW9uKHRlc3RzW2ldLCAwKTsKKyAgICAgICAgICAgICAgICB2YXIgcnRsTGVmdFBv
cyA9IGV4dGVuZGluZ1NlbGVjdGlvbihzZWwsICJsZWZ0IiwgZ3JhbnVsYXJpdHkpOworICAgIAor
ICAgICAgICAgICAgICAgIGxvZygiICBFeHRlbmRpbmcgcmlnaHQ6ICAiKTsKKyAgICAgICAgICAg
ICAgICB2YXIgcnRsUmlnaHRQb3MgPSBleHRlbmRpbmdTZWxlY3Rpb24oc2VsLCAicmlnaHQiLCBn
cmFudWxhcml0eSk7CisgICAgCisgICAgICAgICAgICAgICAgbG9nKCIgIEV4dGVuZGluZyBmb3J3
YXJkOiAiKTsKKyAgICAgICAgICAgICAgICBzZWwuc2V0UG9zaXRpb24odGVzdHNbaV0sIDApOwor
ICAgICAgICAgICAgICAgIHZhciBydGxGb3J3YXJkUG9zID0gZXh0ZW5kaW5nU2VsZWN0aW9uKHNl
bCwgImZvcndhcmQiLCBncmFudWxhcml0eSk7CisgICAgCisgICAgICAgICAgICAgICAgbG9nKCIg
IEV4dGVuZGluZyBiYWNrd2FyZDogIik7CisgICAgICAgICAgICAgICAgdmFyIHJ0bEJhY2t3YXJk
UG9zID0gZXh0ZW5kaW5nU2VsZWN0aW9uKHNlbCwgImJhY2t3YXJkIiwgZ3JhbnVsYXJpdHkpOwor
CisgICAgICAgICAgICAgICAgLy8gdmFsaWRhdGlvbnMKKyAgICAgICAgICAgICAgICBsb2coIlxu
XG4gIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnRcbiIpOworICAgICAgICAgICAgICAg
IGlmIChncmFudWxhcml0eSA9PSAiY2hhcmFjdGVyIikKKyAgICAgICAgICAgICAgICAgICAgY2hl
Y2tSZXZlcnNlT3JkZXIobHRyUmlnaHRQb3MsIGx0ckxlZnRQb3MpOworICAgICAgICAgICAgICAg
IC8vIE9yZGVyIG1pZ2h0IG5vdCBiZSByZXZlcnNlZCBmb3IgZXh0ZW5kaW5nIGJ5IHdvcmQgYmVj
YXVzZSB0aGUgMS1wb2ludCBzaGlmdCBieSBzcGFjZS4KKworICAgICAgICAgICAgICAgIGxvZygi
ICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJGb3J3YXJkXG4iKTsKKyAgICAgICAgICAgICAg
ICBjaGVja1NhbWVPcmRlcihsdHJSaWdodFBvcywgbHRyRm9yd2FyZFBvcyk7CisgICAgICAgICAg
ICAgICAgbG9nKCIgIHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZFxuIik7Cisg
ICAgICAgICAgICAgICAgY2hlY2tTYW1lT3JkZXIobHRyRm9yd2FyZFBvcywgcnRsRm9yd2FyZFBv
cyk7CisgICAgICAgICAgICAgICAgbG9nKCIgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFj
a3dhcmRcbiIpOworICAgICAgICAgICAgICAgIGNoZWNrU2FtZU9yZGVyKGx0ckxlZnRQb3MsIGx0
ckJhY2t3YXJkUG9zKTsKKyAgICAgICAgICAgICAgICBsb2coIiAgdmFsaWRhdGluZyBsdHJCYWNr
d2FyZCBhbmQgcnRsQmFja3dhcmRcbiIpOworICAgICAgICAgICAgICAgIGNoZWNrU2FtZU9yZGVy
KGx0ckJhY2t3YXJkUG9zLCBydGxCYWNrd2FyZFBvcyk7CisgICAgICAgICAgICAgICAgbG9nKCIg
IHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnRcbiIpOworICAgICAgICAgICAgICAgIGNo
ZWNrU2FtZU9yZGVyKGx0clJpZ2h0UG9zLCBydGxMZWZ0UG9zKTsKKyAgICAgICAgICAgICAgICBs
b2coIiAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBydGxSaWdodFxuIik7CisgICAgICAgICAgICAg
ICAgY2hlY2tTYW1lT3JkZXIobHRyTGVmdFBvcywgcnRsUmlnaHRQb3MpOworICAgICAgICAgICAg
ICAgIGxvZygiXG5cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgb25s
b2FkID0gZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAgICAgdmFyIHRl
c3RzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidGVzdCIpOworICAgICAgICAg
ICAgdmFyIHNlbCA9IGdldFNlbGVjdGlvbigpOworCisgICAgICAgICAgICBsb2coIlxuXG5cbkV4
dGVuZGluZyBieSBjaGFyYWN0ZXJcbiIpOworICAgICAgICAgICAgdGVzdEV4dGVuZGluZ1NlbGVj
dGlvbih0ZXN0cywgIHNlbCwgImNoYXJhY3RlciIpOworICAgICAgICAgICAgbG9nKCJcblxuXG5c
blxuRXh0ZW5kaW5nIGJ5IHdvcmRcbiIpOworICAgICAgICAgICAgdGVzdEV4dGVuZGluZ1NlbGVj
dGlvbih0ZXN0cywgIHNlbCwgIndvcmQiKTsKKyAgICAgICAgfQorCisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY29udGVudGVkaXRhYmxlIGNsYXNzPSJ0ZXN0Ij4KK2FiYyAm
IzE0ODg7JiMxNDg5OyYjMTQ5MDsgeHl6ICYjMTQ5MTsmIzE0OTI7JiMxNDkzOyBkZWYKKzwvZGl2
PgorPGRpdiBjb250ZW50ZWRpdGFibGUgY2xhc3M9InRlc3QiPgorJiMxNDg4OyYjMTQ4OTsmIzE0
OTA7IHh5eiAmIzE0OTE7JiMxNDkyOyYjMTQ5MzsgZGVmICYjMTQ5NDsmIzE0OTU7JiMxNDk2Owor
PC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBjbGFzcz0idGVzdCI+CismIzE0ODg7JiMxNDg5
OyYjMTQ5MDsgJiMxNDkxOyYjMTQ5MjsmIzE0OTM7ICYjMTQ4ODsmIzE0ODk7JiMxNDkwOworPC9k
aXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBjbGFzcz0idGVzdCI+CithYmMgZWZkIGRhYmViCis8
L2Rpdj4KKworPGRpdiBjb250ZW50ZWRpdGFibGUgIGNsYXNzPSJ0ZXN0Ij5Mb3JlbSA8c3BhbiAg
c3R5bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvciBzaXQ8L3NwYW4+IGFtZXQ8L2Rpdj4K
KzxkaXYgY29udGVudGVkaXRhYmxlICBjbGFzcz0idGVzdCI+TG9yZW0gPHNwYW4gIHN0eWxlPSJk
aXJlY3Rpb246IHJ0bCI+aXBzdW0gZG9sb3I8ZGl2ID4ganVzdCBhIHRlc3Q8L2Rpdj4gc2l0PC9z
cGFuPiBhbWV0PC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBjbGFzcz0idGVzdCI+TG9yZW0g
PHNwYW4gIGRpcj0icnRsIj5pcHN1bSBkb2xvciBzaXQ8L3NwYW4+IGFtZXQ8L2Rpdj4KKzxkaXYg
Y29udGVudGVkaXRhYmxlIGNsYXNzPSJ0ZXN0Ij5Mb3JlbSA8ZGl2ICBkaXI9InJ0bCI+aXBzdW0g
ZG9sb3Igc2l0PC9kaXY+IGFtZXQ8L2Rpdj4KKworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8
L2JvZHk+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtc2VsZWN0aW9uLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQog
ICArICoKCg==
</data>
<flag name="review"
          id="14223"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29016</attachid>
            <date>2009-03-27 11:30:02 -0700</date>
            <delta_ts>2009-03-27 11:30:02 -0700</delta_ts>
            <desc>webkit extend selection when pressing shift+right-arrow twice</desc>
            <filename>webkit_RR.jpg</filename>
            <type>image/jpeg</type>
            <size>8297</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABAApYDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2Btct
G1h9Nk1+xtr5pCkVkzx+aw7EKTuOee1af2a9/wCgh/5BWuZtlB+JqNgZFhcgH/trFWjq2s3Z16z0
LSprSG7uIZbhri5iaZFWMopUIroSxLj+IYAPWuelTU4KTbu79X0b8/I0lNqTStZW6Lsv8zV+zXv/
AEEP/IK0fZr3/oIf+QVribPxh4k1XW7DSbe20q1eRbuO4uJfMlAlt5FRikYK5U5GAXz83X5cNPb+
KfFeo6hJNpugxy6UJp4PMmaOMAxl03mQTMxBdcFfJyAepxzfso2vd/e/8w55bafcjr/s17/0EP8A
yCtRzrcW0Ek8+qJFDGpd5JI1VUUDJJJOAAO9cRpPi/xXqiaGDHo0T6vp0t2pEcrC3aPZkkbhvDbv
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29018</attachid>
            <date>2009-03-27 11:32:15 -0700</date>
            <delta_ts>2009-03-27 11:32:15 -0700</delta_ts>
            <desc>webkit extend selection when press shift+right-arrow twice, then shift+left-arrow</desc>
            <filename>webkit_RRL.jpg</filename>
            <type>image/jpeg</type>
            <size>11742</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABWAxoDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0bwU+
3whYjy5W5m5SJmH+tfuBW95v/TG5/wDAd/8ACqXw8/5Eqz/66Tf+jXrfmv7W3k8uWUB8ZIwTj8q1
xFVQnLmdtTKjT5oK3YzfN/6Y3P8A4Dv/AIUeb/0xuf8AwHf/AAq//atl/wA9v/HG/wAKP7Vsv+e3
/jjf4Vh9ap/zL7zb2EuzKHm/9Mbn/wAB3/wo83/pjc/+A7/4Vf8A7Vsv+e3/AI43+FH9q2X/AD2/
8cb/AAo+tU/5l94ewl2ZQ83/AKY3P/gO/wDhR5v/AExuf/Ad/wDCr/8Aatl/z2/8cb/Cj+1bL/nt
/wCON/hR9ap/zL7w9hLsyh5v/TG5/wDAd/8ACjzf+mNz/wCA7/4Vf/tWy/57f+ON/hR/atl/z2/8
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
MZ+bOFKKlvV+l/wbKskvnb8UjT0jxjqfiXUtOttOFpZGXTIdSmS4gabcruVZFdZF2kYOCVbOe2Oa
0fjDxH9k02QLpU002q3Wmyp5EkSuYxJsZW3ts/1fIIfrx05KKqp7sml5/wDpSX5Cgr7/ANe63+Yz
SfF/ivVE0MGPRon1fTpbtSI5WFu0ezJI3DeG3fd+Xb/ebHPS2niYn4exeJ7q3G7+zheSQxHjOzcQ
CaKKc9Iya/rWQoq80v66HGate6joPjOy8R6xHplwyaHeT7bG3aKTCeW3ls7M28DPBwvU/LzVrxpq
OpJoGraLry6deJe6Nc3UD21u0YiaIAlWDu27llIYY5XoKKKiasmvX/27/JDpO7i/T/23/Nl6TxPq
0Okanf6etkLHQY0W4guInaS52wpK+xwwEfyuAMq2SOcVf8Oa7ruua9qsU0enWun2E6oEQPLLKrxK
6/MSoQjcCflbqR23MUVq/jl6X/IzjpBMsXWt6jN43GgWElrCsNpHeTGe3aTzUaQqVVhIuwgDjKsD
ntjnldF1nXdR8XaVFE2m6bbtNqX2m1t4HdJDFOqsxbeu5iDwxXgliQc4BRUR+Jej/Mt7P1X5HWeM
9V1XQ9Fn1SxeyjtbSF5rl54GncgAYVEDoOeckuMY6HPHIp8QfE11pt1fQ2ekwxW+hQauN5kkZywY
smAVxkqQDk7cA/NnClFSno/66S/yRSSdv66x/wAy7q/xC1Dw3Y6td6va2zpb2lpdQraKxMfnuybW
3MPM2lc5GzPTC9a57SPiLrPjRNJbTLuC026yLZ5XsnUTKYHcboxOcAEEEbzn5TkYIJRWjSU7ea/9
KRCfu38v/bbnsw6c9aKKKkAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29019</attachid>
            <date>2009-03-27 11:36:05 -0700</date>
            <delta_ts>2009-03-27 11:36:05 -0700</delta_ts>
            <desc>FireFox extend selection snapshot (comparing with Webkit)</desc>
            <filename>FF-selection-enclosing-block.html</filename>
            <type>text/html</type>
            <size>2550</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">77u/PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT4NCi5oaWdobGlnaHQgew0KICBiYWNrZ3JvdW5kLWNv
bG9yOiMwMDAwRkY7DQp9DQouc2VwYXJhdG9yIHsNCiAgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAw
Ow0KfQ0KDQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHk+DQpHaXZlbiB0aGUgZm9sbG93aW5nIHRl
eHQgPGJyIC8+DQoNCjxkaXYgc3R5bGU9ImJvcmRlcjogc29saWQgdGhpbiB5ZWxsb3ciID5Mb3Jl
bSA8c3BhbiAgc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvcjxkaXYgPiB3aGF0IGV2
ZXIgeW91IHdhbnQgPC9kaXY+IHNpdDwvc3Bhbj4gYW1ldDwvZGl2PjwvZGl2Pg0KDQo8cD5Gb2xs
b3dpbmcgc2hvd3MgdGhlIHNlbGVjdGlvbiBvZiBGaXJlRm94IHdoZW4gcHJlc3Npbmcgc2hpZnQt
YXJyb3c8L3A+DQo8cCBjbGFzcz0ic2VwYXJhdG9yIj5DdXJzb3Igc3RhcnRzIGJldHdlZW4gJ28n
IGFuZCAncicgY2hhcmFjdGVyPC9wPg0KDQo8cD5wcmVzcyBzaGlmdC1yaWdodC1hcnJvdzwvcD4N
CjxkaXYgc3R5bGU9ImJvcmRlcjogc29saWQgdGhpbiB5ZWxsb3ciID5Mb3JlbSA8c3BhbiAgc3R5
bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+cjwv
c3Bhbj48ZGl2ID4gd2hhdCBldmVyIHlvdSB3YW50IDwvZGl2PiBzaXQ8L3NwYW4+IGFtZXQ8L2Rp
dj48L2Rpdj4NCg0KPHA+cHJlc3Mgc2hpZnQtcmlnaHQtYXJyb3cgYWdhaW48L3A+DQo8ZGl2IHN0
eWxlPSJib3JkZXI6IHNvbGlkIHRoaW4geWVsbG93Ij5Mb3JlbSA8c3BhbiAgc3R5bGU9ImRpcmVj
dGlvbjogcnRsIj5pcHN1bSBkb2xvPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+cjwvc3Bhbj48ZGl2
ID4gd2hhdCBldmVyIHlvdSB3YW50IDwvZGl2PiBzaXQ8L3NwYW4+IGFtZXQ8L2Rpdj48L2Rpdj4N
Cg0KPHA+cHJlc3Mgc2hpZnQtbGVmdC1hcnJvdzwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjogc29s
aWQgdGhpbiB5ZWxsb3ciPkxvcmVtIDxzcGFuICBzdHlsZT0iZGlyZWN0aW9uOiBydGwiPmlwc3Vt
IGRvbG88c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5yPC9zcGFuPjxkaXYgPiA8c3BhbiBjbGFzcz0i
aGlnaGxpZ2h0Ij53PC9zcGFuPmhhdCBldmVyIHlvdSB3YW50IDwvZGl2PiBzaXQ8L3NwYW4+IGFt
ZXQ8L2Rpdj48L2Rpdj4NCg0KPHAgY2xhc3M9InNlcGFyYXRvciI+ICBTdGFydHMgb3ZlciwgQ3Vy
c29yIHN0YXJ0cyBiZXR3ZWVuICdvJyBhbmQgJ3InIGNoYXJhY3RlciAgPC9wPg0KDQo8cD5wcmVz
cyBzaGlmdC1yaWdodC1hcnJvdzwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjogc29saWQgdGhpbiB5
ZWxsb3ciID5Mb3JlbSA8c3BhbiAgc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvPHNw
YW4gY2xhc3M9ImhpZ2hsaWdodCI+cjwvc3Bhbj48ZGl2ID4gd2hhdCBldmVyIHlvdSB3YW50IDwv
ZGl2PiBzaXQ8L3NwYW4+IGFtZXQ8L2Rpdj4NCg0KPHA+cHJlc3Mgc2hpZnQtbGVmdC1hcnJvdzwv
cD4NCjxkaXYgc3R5bGU9ImJvcmRlcjogc29saWQgdGhpbiB5ZWxsb3ciPkxvcmVtIDxzcGFuICBz
dHlsZT0iZGlyZWN0aW9uOiBydGwiPmlwc3VtIGRvbG9yPGRpdiA+IHdoYXQgZXZlciB5b3Ugd2Fu
dCA8L2Rpdj4gc2l0PC9zcGFuPiBhbWV0PC9kaXY+PC9kaXY+DQoNCjxwIGNsYXNzPSJzZXBhcmF0
b3IiPiAgU3RhcnRzIG92ZXIsIEN1cnNvciBzdGFydHMgYmV0d2VlbiAnbycgYW5kICdyJyBjaGFy
YWN0ZXIgIDwvcD4NCg0KDQo8cD5wcmVzcyBzaGlmdC1yaWdodC1hcnJvdzwvcD4NCjxkaXYgc3R5
bGU9ImJvcmRlcjogc29saWQgdGhpbiB5ZWxsb3ciPkxvcmVtIDxzcGFuICBzdHlsZT0iZGlyZWN0
aW9uOiBydGwiPmlwc3VtIGRvbG88c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5yPC9zcGFuPjxkaXYg
PiB3aGF0IGV2ZXIgeW91IHdhbnQgPC9kaXY+IHNpdDwvc3Bhbj4gYW1ldDwvZGl2Pg0KDQo8cD5w
cmVzcyBzaGlmdC1yaWdodC1hcnJvdyBhZ2FpbjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjogc29s
aWQgdGhpbiB5ZWxsb3ciID5Mb3JlbSA8c3BhbiAgc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1
bSBkb2xvPHNwYW4gY2xhc3M9ImhpZ2hsaWdodCI+cjwvc3Bhbj48ZGl2ID4gd2hhdCBldmVyIHlv
dSB3YW50IDwvZGl2PiBzaXQ8L3NwYW4+IGFtZXQ8L2Rpdj4NCjxwPnByZXNzIHNoaWZ0LXJpZ2h0
LWFycm93IGFnYWluPC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOiBzb2xpZCB0aGluIHllbGxvdyI+
TG9yZW0gPHNwYW4gIHN0eWxlPSJkaXJlY3Rpb246IHJ0bCI+aXBzdW0gZG9sbzxzcGFuIGNsYXNz
PSJoaWdobGlnaHQiPnI8L3NwYW4+PGRpdiA+IHdoYXQgZXZlciB5b3Ugd2FudCA8L2Rpdj4gc2l0
PC9zcGFuPiBhbWV0PC9kaXY+DQoNCjxwPnByZXNzIHNoaWZ0LWxlZnQtYXJyb3c8L3A+DQo8ZGl2
IHN0eWxlPSJib3JkZXI6IHNvbGlkIHRoaW4geWVsbG93Ij5Mb3JlbSA8c3BhbiAgc3R5bGU9ImRp
cmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvcjxkaXYgPiB3aGF0IGV2ZXIgeW91IHdhbnQgPC9kaXY+
IHNpdDwvc3Bhbj4gYW1ldDwvZGl2Pg0KDQo8L2JvZHk+DQo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29020</attachid>
            <date>2009-03-27 11:36:33 -0700</date>
            <delta_ts>2009-03-27 11:36:33 -0700</delta_ts>
            <desc>Webkit extend selection snapshot (comparing with FF)</desc>
            <filename>Webkit-selection-enclosing-block.html</filename>
            <type>text/html</type>
            <size>2194</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">77u/PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT4NCi5oaWdobGlnaHQgew0KICBiYWNrZ3JvdW5kLWNv
bG9yOiMwMDAwRkY7DQp9DQouc2VwYXJhdG9yIHsNCiAgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAw
Ow0KfQ0KDQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHk+DQpHaXZlbiB0aGUgZm9sbG93aW5nIHRl
eHQgPGJyIC8+DQoNCjxkaXYgc3R5bGU9ImJvcmRlcjogc29saWQgdGhpbiB5ZWxsb3ciID5Mb3Jl
bSA8c3BhbiAgc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvcjxkaXYgPiB3aGF0IGV2
ZXIgeW91IHdhbnQgPC9kaXY+IHNpdDwvc3Bhbj4gYW1ldDwvZGl2PjwvZGl2Pg0KDQo8cD5Gb2xs
b3dpbmcgc2hvd3MgdGhlIHNlbGVjdGlvbiBvZiBXZWJraXQgd2hlbiBwcmVzc2luZyBzaGlmdC1h
cnJvdzwvcD4NCjxwIGNsYXNzPSJzZXBhcmF0b3IiPkN1cnNvciBzdGFydHMgYmV0d2VlbiAnbycg
YW5kICdyJyBjaGFyYWN0ZXI8L3A+DQoNCjxwPnByZXNzIHNoaWZ0LXJpZ2h0LWFycm93PC9wPg0K
PGRpdiBzdHlsZT0iYm9yZGVyOiBzb2xpZCB0aGluIHllbGxvdyIgPkxvcmVtIDxzcGFuICBzdHls
ZT0iZGlyZWN0aW9uOiBydGwiPmlwc3VtIGRvbG88c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5yPC9z
cGFuPjxkaXYgPiB3aGF0IGV2ZXIgeW91IHdhbnQgPC9kaXY+IHNpdDwvc3Bhbj4gYW1ldDwvZGl2
PjwvZGl2Pg0KDQo8cD5wcmVzcyBzaGlmdC1yaWdodC1hcnJvdyBhZ2FpbjwvcD4NCjxpbWcgc3Jj
PWh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTI5MDE2IC8+DQoNCjxw
PnByZXNzIHNoaWZ0LWxlZnQtYXJyb3c8L3A+DQo8aW1nIHNyYz1odHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0yOTAxOCAvPg0KDQo8cCBjbGFzcz0ic2VwYXJhdG9yIj4g
IFN0YXJ0cyBvdmVyLCBDdXJzb3Igc3RhcnRzIGJldHdlZW4gJ28nIGFuZCAncicgY2hhcmFjdGVy
ICA8L3A+DQoNCjxwPnByZXNzIHNoaWZ0LXJpZ2h0LWFycm93PC9wPg0KPGRpdiBzdHlsZT0iYm9y
ZGVyOiBzb2xpZCB0aGluIHllbGxvdyI+TG9yZW0gPHNwYW4gIHN0eWxlPSJkaXJlY3Rpb246IHJ0
bCI+aXBzdW0gZG9sbzxzcGFuIGNsYXNzPSJoaWdobGlnaHQiPnI8L3NwYW4+PGRpdiA+IHdoYXQg
ZXZlciB5b3Ugd2FudCA8L2Rpdj4gc2l0PC9zcGFuPiBhbWV0PC9kaXY+PC9kaXY+DQoNCjxwPnBy
ZXNzIHNoaWZ0LWxlZnQtYXJyb3c8L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6IHNvbGlkIHRoaW4g
eWVsbG93Ij5Mb3JlbSA8c3BhbiAgc3R5bGU9ImRpcmVjdGlvbjogcnRsIj5pcHN1bSBkb2xvcjxk
aXYgPiB3aGF0IGV2ZXIgeW91IHdhbnQgPC9kaXY+IHNpdDwvc3Bhbj4gYW1ldDwvZGl2PjwvZGl2
Pg0KDQo8cCBjbGFzcz0ic2VwYXJhdG9yIj4gIFN0YXJ0cyBvdmVyLCBDdXJzb3Igc3RhcnRzIGJl
dHdlZW4gJ28nIGFuZCAncicgY2hhcmFjdGVyICA8L3A+DQoNCg0KPHA+cHJlc3Mgc2hpZnQtcmln
aHQtYXJyb3c8L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6IHNvbGlkIHRoaW4geWVsbG93IiA+TG9y
ZW0gPHNwYW4gIHN0eWxlPSJkaXJlY3Rpb246IHJ0bCI+aXBzdW0gZG9sbzxzcGFuIGNsYXNzPSJo
aWdobGlnaHQiPnI8L3NwYW4+PGRpdiA+IHdoYXQgZXZlciB5b3Ugd2FudCA8L2Rpdj4gc2l0PC9z
cGFuPiBhbWV0PC9kaXY+PC9kaXY+DQoNCjxwPnByZXNzIHNoaWZ0LXJpZ2h0LWFycm93IGFnYWlu
PC9wPg0KPGltZyBzcmM9aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9
MjkwMTYgLz4NCjxwPnByZXNzIHNoaWZ0LXJpZ2h0LWFycm93IGFnYWluPC9wPg0KPGRpdiBzdHls
ZT0iYm9yZGVyOiBzb2xpZCB0aGluIHllbGxvdyIgPkxvcmVtIDxzcGFuICBzdHlsZT0iZGlyZWN0
aW9uOiBydGwiPmlwc3VtIGRvbG88c3BhbiBjbGFzcz0iaGlnaGxpZ2h0Ij5yPC9zcGFuPjxkaXYg
PiB3aGF0IGV2ZXIgeW91IHdhbnQgPC9kaXY+IHNpdDwvc3Bhbj4gYW1ldDwvZGl2PjwvZGl2Pg0K
DQo8cD5wcmVzcyBzaGlmdC1sZWZ0LWFycm93PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOiBzb2xp
ZCB0aGluIHllbGxvdyI+TG9yZW0gPHNwYW4gIHN0eWxlPSJkaXJlY3Rpb246IHJ0bCI+aXBzdW0g
ZG9sb3I8ZGl2ID4gd2hhdCBldmVyIHlvdSB3YW50IDwvZGl2PiBzaXQ8L3NwYW4+IGFtZXQ8L2Rp
dj48L2Rpdj4NCg0KPC9ib2R5Pg0KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29031</attachid>
            <date>2009-03-27 15:59:00 -0700</date>
            <delta_ts>2009-03-27 16:05:35 -0700</delta_ts>
            <desc>patch w/ Layout test (version 3)</desc>
            <filename>24303.patch.v3</filename>
            <type>text/plain</type>
            <size>47320</size>
            <attacher name="Xiaomei Ji">xji</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjA1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzMDMKKyAgICAgICAgVXNp
bmcga2V5Ym9hcmQgc2VsZWN0IFJUTCB0ZXh0LCBIaWdobGlnaHRzIGdvZXMgdG8gb3Bwb3NpdGUg
ZGlyZWN0aW9uIGZyb20gRmlyZWZveCBhbmQgSUUuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1NlbGVj
dGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxl
cjo6ZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jayk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdSaWdodCk6IEFkZGVkLiBDdXJyZW5j
dGx5IAorICAgICAgICBpbXBsZW1lbnRlZCBmb3IgY2hhcmFjdGVyIGFuZCB3b3JkIGdyYW51bGFy
aXR5LCBhbGwgb3RoZXIgZ3JhbnVsYXJpdGllcworICAgICAgICBhcmUgdHJlYXRlZCBhcyAiZm9y
d2FyZCIuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRl
bmRpbmdGb3J3YXJkKTogUmVuYW1lZCAKKyAgICAgICAgbW9kaWZ5RXh0ZW5kaW5nUmlnaHRGb3J3
YXJkKCkgdG8gdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6Om1v
ZGlmeUV4dGVuZGluZ0xlZnQpOiBBZGRlZC4gQ3VycmVuY3RseQorICAgICAgICBpbXBsZW1lbnRl
ZCBmb3IgY2hhcmFjdGVyIGFuZCB3b3JkIGdyYW51bGFyaXR5LCBhbGwgb3RoZXIgZ3JhbnVsYXJp
dGllcworICAgICAgICBhcmUgdHJlYXRlZCBhcyAiYmFja3dhcmQiLgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQpOiBSZW5hbWVk
CisgICAgICAgIG1vZGlmeUV4dGVuZGluZ0xlZnRCYWNrd2FyZCgpIHRvIHRoaXMuCisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnkpOiBDaGFuZ2UgdG8gY2FsbCBl
aXRoZXIgdGhlIAorICAgICAgICBsZWZ0L3JpZ2h0IG9yIGJhY2t3YXJkL2ZvcndhcmQgbWV0aG9k
cyBkZXBlbmRpbmcgb24gdGhlICdkaXInIGFyZ3VtZW50CisgICAgICAgIGZvciBleHRlbmRzLgor
ICAgICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5oOgorCiAyMDA5LTAzLTI3ICBK
b2huIEFiZC1FbC1NYWxlayAgPGphbUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNw
cAkocmV2aXNpb24gNDE4MjMpCisrKyBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Miw3ICsyNTIsNTMgQEAgdm9pZCBTZWxlY3Rpb25D
b250cm9sbGVyOjp3aWxsQmVNb2RpZmllZAogICAgIH0KIH0KIAotVmlzaWJsZVBvc2l0aW9uIFNl
bGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ1JpZ2h0Rm9yd2FyZChUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkpCitUZXh0RGlyZWN0aW9uIFNlbGVjdGlvbkNvbnRyb2xsZXI6OmRp
cmVjdGlvbk9mRW5jbG9zaW5nQmxvY2soKSB7CisgICAgTm9kZSogbiA9IG1fc2VsLmV4dGVudCgp
Lm5vZGUoKTsKKyAgICBOb2RlKiBlbmNsb3NpbmdCbG9ja05vZGUgPSBlbmNsb3NpbmdCbG9jayhu
KTsKKyAgICBpZiAoIWVuY2xvc2luZ0Jsb2NrTm9kZSkKKyAgICAgICAgcmV0dXJuIExUUjsKKyAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZW5jbG9zaW5nQmxvY2tOb2RlLT5yZW5kZXJlcigp
OworICAgIGlmIChyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5zdHlsZSgpLT5k
aXJlY3Rpb24oKTsKKyAgICByZXR1cm4gTFRSOworfQorCitWaXNpYmxlUG9zaXRpb24gU2VsZWN0
aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nUmlnaHQoVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQoreworICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zZWwuZXh0ZW50KCksIG1fc2Vs
LmFmZmluaXR5KCkpOworCisgICAgLy8gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBtb2RpZnlFeHRl
bmRpbmdSaWdodCBhbmQgbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZCBpczoKKyAgICAvLyBtb2RpZnlF
eHRlbmRpbmdGb3J3YXJkIGFsd2F5cyBleHRlbmRzIGZvcndhcmQgbG9naWNhbGx5LgorICAgIC8v
IG1vZGlmeUV4dGVuZGluZ1JpZ2h0IGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9kaWZ5RXh0ZW5kaW5n
Rm9yd2FyZCBleGNlcHQgZm9yIGV4dGVuZGluZyBjaGFyYWN0ZXIgb3Igd29yZCwKKyAgICAvLyBp
dCBleHRlbmRzIGZvcndhcmQgbG9naWNhbGx5IGlmIHRoZSBlbmNsb3NpbmcgYmxvY2sgaXMgTFRS
IGRpcmVjdGlvbiwKKyAgICAvLyBidXQgaXQgZXh0ZW5kcyBiYWNrd2FyZCBsb2dpY2FsbHkgaWYg
dGhlIGVuY2xvc2luZyBibG9jayBpcyBSVEwgZGlyZWN0aW9uLgorICAgIHN3aXRjaCAoZ3JhbnVs
YXJpdHkpIHsKKyAgICAgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgICAg
IGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gTFRSKQorICAgICAgICAgICAgICAg
IHBvcyA9IHBvcy5uZXh0KHRydWUpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBwb3MgPSBwb3MucHJldmlvdXModHJ1ZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgICAgICBpZiAoZGly
ZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygpID09IExUUikKKyAgICAgICAgICAgICAgICBwb3MgPSBu
ZXh0V29yZFBvc2l0aW9uKHBvcyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cG9zID0gcHJldmlvdXNXb3JkUG9zaXRpb24ocG9zKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgICAgIGNhc2UgTGluZUdyYW51bGFy
aXR5OgorICAgICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgICAgICBjYXNlIFNl
bnRlbmNlQm91bmRhcnk6CisgICAgICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBjYXNl
IFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAg
ICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IGFsbCBvZiB0aGUgYWJvdmU/CisgICAgICAgICAg
ICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdGb3J3YXJkKGdyYW51bGFyaXR5KTsKKyAgICB9CisgICAg
cmV0dXJuIHBvczsKK30gICAgCisgICAgICAgIAorVmlzaWJsZVBvc2l0aW9uIFNlbGVjdGlvbkNv
bnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zZWwuZXh0ZW50KCksIG1fc2VsLmFm
ZmluaXR5KCkpOwogICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKQEAgLTM2NiwxMCArNDEyLDQ0
IEBAIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2QKICAgICByZXR1cm4g
cG9zOwogfQogCi1WaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0
ZW5kaW5nTGVmdEJhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK1Zpc2libGVQ
b3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdMZWZ0KFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBWaXNpYmxlUG9zaXRpb24gcG9zKG1fc2VsLmV4
dGVudCgpLCBtX3NlbC5hZmZpbml0eSgpKTsKLSAgICAgICAgCisKKyAgICAvLyBUaGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIG1vZGlmeUV4dGVuZGluZ0xlZnQgYW5kIG1vZGlmeUV4dGVuZGluZ0JhY2t3
YXJkIGlzOgorICAgIC8vIG1vZGlmeUV4dGVuZGluZ0JhY2t3YXJkIGFsd2F5cyBleHRlbmRzIGJh
Y2t3YXJkIGxvZ2ljYWxseS4KKyAgICAvLyBtb2RpZnlFeHRlbmRpbmdMZWZ0IGJlaGF2ZXMgdGhl
IHNhbWUgYXMgbW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQgZXhjZXB0IGZvciBleHRlbmRpbmcgY2hh
cmFjdGVyIG9yIHdvcmQsCisgICAgLy8gaXQgZXh0ZW5kcyBiYWNrd2FyZCBsb2dpY2FsbHkgaWYg
dGhlIGVuY2xvc2luZyBibG9jayBpcyBMVFIgZGlyZWN0aW9uLAorICAgIC8vIGJ1dCBpdCBleHRl
bmRzIGZvcndhcmQgbG9naWNhbGx5IGlmIHRoZSBlbmNsb3NpbmcgYmxvY2sgaXMgUlRMIGRpcmVj
dGlvbi4KKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgICAgIGNhc2UgQ2hhcmFjdGVy
R3JhbnVsYXJpdHk6CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygp
ID09IExUUikKKyAgICAgICAgICAgICAgICBwb3MgPSBwb3MucHJldmlvdXModHJ1ZSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcG9zID0gcG9zLm5leHQodHJ1ZSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgICAg
ICBpZiAoZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygpID09IExUUikKKyAgICAgICAgICAgICAg
ICBwb3MgPSBwcmV2aW91c1dvcmRQb3NpdGlvbihwb3MpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHBvcyA9IG5leHRXb3JkUG9zaXRpb24ocG9zKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgICAgIGNhc2UgTGlu
ZUdyYW51bGFyaXR5OgorICAgICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgICAg
ICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAg
ICAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBjYXNlIERvY3VtZW50Qm91bmRh
cnk6CisgICAgICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdCYWNrd2FyZChncmFudWxhcml0
eSk7CisgICAgfQorICAgIHJldHVybiBwb3M7Cit9CisgICAgICAgCitWaXNpYmxlUG9zaXRpb24g
U2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQoVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQoreworICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zZWwuZXh0ZW50
KCksIG1fc2VsLmFmZmluaXR5KCkpOworCiAgICAgLy8gRXh0ZW5kaW5nIGEgc2VsZWN0aW9uIGJh
Y2t3YXJkIGJ5IHdvcmQgb3IgY2hhcmFjdGVyIGZyb20ganVzdCBhZnRlciBhIHRhYmxlIHNlbGVj
dHMKICAgICAvLyB0aGUgdGFibGUuICBUaGlzICJtYWtlcyBzZW5zZSIgZnJvbSB0aGUgdXNlciBw
ZXJzcGVjdGl2ZSwgZXNwLiB3aGVuIGRlbGV0aW5nLgogICAgIC8vIEl0IHdhcyBkb25lIGhlcmUg
aW5zdGVhZCBvZiBpbiBWaXNpYmxlUG9zaXRpb24gYmVjYXVzZSB3ZSB3YW50IFZQcyB0byBpdGVy
YXRlCkBAIC01MDEsMTEgKzU4MSwxMSBAQCBib29sIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlm
eShFQWx0ZXJhCiAgICAgICAgICAgICBpZiAoYWx0ZXIgPT0gTU9WRSkKICAgICAgICAgICAgICAg
ICBwb3MgPSBtb2RpZnlNb3ZpbmdSaWdodChncmFudWxhcml0eSk7CiAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nUmlnaHRGb3J3YXJkKGdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdSaWdodChncmFu
dWxhcml0eSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBGT1JXQVJEOgogICAg
ICAgICAgICAgaWYgKGFsdGVyID09IEVYVEVORCkKLSAgICAgICAgICAgICAgICBwb3MgPSBtb2Rp
ZnlFeHRlbmRpbmdSaWdodEZvcndhcmQoZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIHBv
cyA9IG1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHBvcyA9IG1vZGlmeU1vdmluZ0ZvcndhcmQoZ3JhbnVsYXJpdHkp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC01MTMsMTEgKzU5MywxMSBAQCBib29sIFNlbGVjdGlv
bkNvbnRyb2xsZXI6Om1vZGlmeShFQWx0ZXJhCiAgICAgICAgICAgICBpZiAoYWx0ZXIgPT0gTU9W
RSkKICAgICAgICAgICAgICAgICBwb3MgPSBtb2RpZnlNb3ZpbmdMZWZ0KGdyYW51bGFyaXR5KTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdM
ZWZ0QmFja3dhcmQoZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4
dGVuZGluZ0xlZnQoZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQkFDS1dBUkQ6CiAgICAgICAgICAgICBpZiAoYWx0ZXIgPT0gRVhURU5EKQotICAgICAgICAg
ICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ0xlZnRCYWNrd2FyZChncmFudWxhcml0eSk7Cisg
ICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQoZ3JhbnVsYXJpdHkp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHBvcyA9IG1vZGlmeU1vdmluZ0Jh
Y2t3YXJkKGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRp
bmcvU2VsZWN0aW9uQ29udHJvbGxlci5oCShyZXZpc2lvbiA0MTgyMykKKysrIFdlYkNvcmUvZWRp
dGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMCArMTMw
LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQs
IEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5RXh0ZW5k
aW5nUmlnaHRGb3J3YXJkKFRleHRHcmFudWxhcml0eSk7CisgICAgVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCk7CisKKyAgICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5RXh0
ZW5kaW5nUmlnaHQoVGV4dEdyYW51bGFyaXR5KTsKKyAgICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5
RXh0ZW5kaW5nRm9yd2FyZChUZXh0R3JhbnVsYXJpdHkpOwogICAgIFZpc2libGVQb3NpdGlvbiBt
b2RpZnlNb3ZpbmdSaWdodChUZXh0R3JhbnVsYXJpdHkpOwogICAgIFZpc2libGVQb3NpdGlvbiBt
b2RpZnlNb3ZpbmdGb3J3YXJkKFRleHRHcmFudWxhcml0eSk7Ci0gICAgVmlzaWJsZVBvc2l0aW9u
IG1vZGlmeUV4dGVuZGluZ0xlZnRCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkpOworICAgIFZpc2li
bGVQb3NpdGlvbiBtb2RpZnlFeHRlbmRpbmdMZWZ0KFRleHRHcmFudWxhcml0eSk7CisgICAgVmlz
aWJsZVBvc2l0aW9uIG1vZGlmeUV4dGVuZGluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSk7CiAg
ICAgVmlzaWJsZVBvc2l0aW9uIG1vZGlmeU1vdmluZ0xlZnQoVGV4dEdyYW51bGFyaXR5KTsKICAg
ICBWaXNpYmxlUG9zaXRpb24gbW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5KTsK
IApAQCAtMTg3LDMgKzE5MSw0IEBAIHZvaWQgc2hvd1RyZWUoY29uc3QgV2ViQ29yZTo6U2VsZWN0
aW9uQ28KICNlbmRpZgogCiAjZW5kaWYgLy8gU2VsZWN0aW9uQ29udHJvbGxlcl9oCisKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQyMDUyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDMtMjAgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzMDMKKyAgICAg
ICAgVXNpbmcga2V5Ym9hcmQgc2VsZWN0IFJUTCB0ZXh0LCBIaWdobGlnaHRzIGdvZXMgdG8gb3Bw
b3NpdGUgZGlyZWN0aW9uIGZyb20gRmlyZWZveCBhbmQgSUUuCisKKyAgICAgICAgKiBlZGl0aW5n
L3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi5odG1sOiBBZGRlZC4KKwogMjAw
OS0wMy0yNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gRnJhc2VyCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9l
eHRlbmQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3NCBAQAorYWJjINeQ15HXkiB4eXog
15PXlNeVIGRlZgor15DXkdeSIHh5eiDXk9eU15UgZGVmINeW15fXmAor15DXkdeSINeT15TXlSDX
kNeR15IKK2FiYyBlZmQgZGFiZWIKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0CitMb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldAorTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQKK0xvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0CitMb3JlbQoraXBzdW0gZG9sb3Igc2l0CithbWV0dAorCisKKwor
RXh0ZW5kaW5nIGJ5IGNoYXJhY3RlcgorVGVzdCAxLCBMVFI6CisgIEV4dGVuZGluZyByaWdodDog
IlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0KSwgKDEs
NSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEsMTIpLCAo
MSwxMyksICgxLDE0KSwgKDEsMTUpLCAoMSwxNiksICgxLDE3KSwgKDEsMTgpLCAoMSwxOSksICgx
LDIwKV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDIw
KSwgKDEsMTkpLCAoMSwxOCksICgxLDE3KSwgKDEsMTYpLCAoMSwxNSksICgxLDE0KSwgKDEsMTMp
LCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAoMSw2KSwgKDEs
NSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIlxu
YWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0KSwgKDEsNSks
ICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEsMTIpLCAoMSwx
MyksICgxLDE0KSwgKDEsMTUpLCAoMSwxNiksICgxLDE3KSwgKDEsMTgpLCAoMSwxOSksICgxLDIw
KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwy
MCksICgxLDE5KSwgKDEsMTgpLCAoMSwxNyksICgxLDE2KSwgKDEsMTUpLCAoMSwxNCksICgxLDEz
KSwgKDEsMTIpLCAoMSwxMSksICgxLDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgx
LDUpLCAoMSw0KSwgKDEsMyksICgxLDIpLCAoMSwxKV0KK1Rlc3QgMSwgUlRMOgorICBFeHRlbmRp
bmcgbGVmdDogIlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAo
MSw0KSwgKDEsNSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDExKSwg
KDEsMTIpLCAoMSwxMyksICgxLDE0KSwgKDEsMTUpLCAoMSwxNiksICgxLDE3KSwgKDEsMTgpLCAo
MSwxOSksICgxLDIwKV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAgIlxuYWJjIEFCQyB4eXogREVGIGRl
ZlxuIlsoMSwyMCksICgxLDE5KSwgKDEsMTgpLCAoMSwxNyksICgxLDE2KSwgKDEsMTUpLCAoMSwx
NCksICgxLDEzKSwgKDEsMTIpLCAoMSwxMSksICgxLDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwg
KDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgxLDIpLCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZv
cndhcmQ6ICJcbmFiYyBBQkMgeHl6IERFRiBkZWZcbiJbKDEsMSksICgxLDIpLCAoMSwzKSwgKDEs
NCksICgxLDUpLCAoMSw2KSwgKDEsNyksICgxLDgpLCAoMSw5KSwgKDEsMTApLCAoMSwxMSksICgx
LDEyKSwgKDEsMTMpLCAoMSwxNCksICgxLDE1KSwgKDEsMTYpLCAoMSwxNyksICgxLDE4KSwgKDEs
MTkpLCAoMSwyMCldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogIlxuYWJjIEFCQyB4eXogREVGIGRl
ZlxuIlsoMSwyMCksICgxLDE5KSwgKDEsMTgpLCAoMSwxNyksICgxLDE2KSwgKDEsMTUpLCAoMSwx
NCksICgxLDEzKSwgKDEsMTIpLCAoMSwxMSksICgxLDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwg
KDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgxLDIpLCAoMSwxKV0KKworCisgIHZhbGlkYXRp
bmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9y
d2FyZAorICB2YWxpZGF0aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGlu
ZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBy
dGxCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRp
bmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQKKworCitUZXN0IDIsIExUUjoKKyAgRXh0ZW5kaW5nIHJp
Z2h0OiAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQp
LCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwx
MiksICgxLDEzKSwgKDEsMTQpLCAoMSwxNSksICgxLDE2KSwgKDEsMTcpLCAoMSwxOCksICgxLDE5
KSwgKDEsMjApXQorICBFeHRlbmRpbmcgbGVmdDogICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJb
KDEsMjApLCAoMSwxOSksICgxLDE4KSwgKDEsMTcpLCAoMSwxNiksICgxLDE1KSwgKDEsMTQpLCAo
MSwxMyksICgxLDEyKSwgKDEsMTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgxLDYp
LCAoMSw1KSwgKDEsNCksICgxLDMpLCAoMSwyKSwgKDEsMSldCisgIEV4dGVuZGluZyBmb3J3YXJk
OiAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAo
MSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMiks
ICgxLDEzKSwgKDEsMTQpLCAoMSwxNSksICgxLDE2KSwgKDEsMTcpLCAoMSwxOCksICgxLDE5KSwg
KDEsMjApXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4i
WygxLDIwKSwgKDEsMTkpLCAoMSwxOCksICgxLDE3KSwgKDEsMTYpLCAoMSwxNSksICgxLDE0KSwg
KDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgxLDcpLCAoMSw2
KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorVGVzdCAyLCBSVEw6CisgIEV4
dGVuZGluZyBsZWZ0OiAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4iWygxLDEpLCAoMSwyKSwgKDEs
MyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEs
MTEpLCAoMSwxMiksICgxLDEzKSwgKDEsMTQpLCAoMSwxNSksICgxLDE2KSwgKDEsMTcpLCAoMSwx
OCksICgxLDE5KSwgKDEsMjApXQorICBFeHRlbmRpbmcgcmlnaHQ6ICAiXG5BQkMgeHl6IERFRiBk
ZWYgR0hJXG4iWygxLDIwKSwgKDEsMTkpLCAoMSwxOCksICgxLDE3KSwgKDEsMTYpLCAoMSwxNSks
ICgxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgx
LDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorICBFeHRlbmRp
bmcgZm9yd2FyZDogIlxuQUJDIHh5eiBERUYgZGVmIEdISVxuIlsoMSwxKSwgKDEsMiksICgxLDMp
LCAoMSw0KSwgKDEsNSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDEx
KSwgKDEsMTIpLCAoMSwxMyksICgxLDE0KSwgKDEsMTUpLCAoMSwxNiksICgxLDE3KSwgKDEsMTgp
LCAoMSwxOSksICgxLDIwKV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAiXG5BQkMgeHl6IERFRiBk
ZWYgR0hJXG4iWygxLDIwKSwgKDEsMTkpLCAoMSwxOCksICgxLDE3KSwgKDEsMTYpLCAoMSwxNSks
ICgxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgx
LDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorCisKKyAgdmFs
aWRhdGluZyBsdHJSaWdodCBhbmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBs
dHJGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAorICB2YWxp
ZGF0aW5nIGx0ckxlZnQgYW5kIGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFja3dhcmQg
YW5kIHJ0bEJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFs
aWRhdGluZyBsdHJMZWZ0IGFuZCBydGxSaWdodAorCisKK1Rlc3QgMywgTFRSOgorICBFeHRlbmRp
bmcgcmlnaHQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgxLDQpLCAo
MSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAoMSwxMild
CisgIEV4dGVuZGluZyBsZWZ0OiAgIlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSwxMSksICgx
LDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgx
LDIpLCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEp
LCAoMSwyKSwgKDEsMyksICgxLDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSks
ICgxLDEwKSwgKDEsMTEpLCAoMSwxMildCisgIEV4dGVuZGluZyBiYWNrd2FyZDogICJcbkFCQyBE
RUYgQUJDXG4iWygxLDEyKSwgKDEsMTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgx
LDYpLCAoMSw1KSwgKDEsNCksICgxLDMpLCAoMSwyKSwgKDEsMSldCitUZXN0IDMsIFJUTDoKKyAg
RXh0ZW5kaW5nIGxlZnQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEpLCAoMSwyKSwgKDEsMyksICgx
LDQpLCAoMSw1KSwgKDEsNiksICgxLDcpLCAoMSw4KSwgKDEsOSksICgxLDEwKSwgKDEsMTEpLCAo
MSwxMildCisgIEV4dGVuZGluZyByaWdodDogICJcbkFCQyBERUYgQUJDXG4iWygxLDEyKSwgKDEs
MTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEsNyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgx
LDMpLCAoMSwyKSwgKDEsMSldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAiXG5BQkMgREVGIEFCQ1xu
IlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0KSwgKDEsNSksICgxLDYpLCAoMSw3KSwgKDEsOCks
ICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEsMTIpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICJc
bkFCQyBERUYgQUJDXG4iWygxLDEyKSwgKDEsMTEpLCAoMSwxMCksICgxLDkpLCAoMSw4KSwgKDEs
NyksICgxLDYpLCAoMSw1KSwgKDEsNCksICgxLDMpLCAoMSwyKSwgKDEsMSldCisKKworICB2YWxp
ZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0
ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlk
YXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBh
bmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxp
ZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisKKworVGVzdCA0LCBMVFI6CisgIEV4dGVuZGlu
ZyByaWdodDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0KSwg
KDEsNSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEsMTIp
LCAoMSwxMyksICgxLDE0KV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiXG5hYmMgZWZkIGRhYmViXG4i
WygxLDE0KSwgKDEsMTMpLCAoMSwxMiksICgxLDExKSwgKDEsMTApLCAoMSw5KSwgKDEsOCksICgx
LDcpLCAoMSw2KSwgKDEsNSksICgxLDQpLCAoMSwzKSwgKDEsMiksICgxLDEpXQorICBFeHRlbmRp
bmcgZm9yd2FyZDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxKSwgKDEsMiksICgxLDMpLCAoMSw0
KSwgKDEsNSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAoMSwxMCksICgxLDExKSwgKDEs
MTIpLCAoMSwxMyksICgxLDE0KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIlxuYWJjIGVmZCBk
YWJlYlxuIlsoMSwxNCksICgxLDEzKSwgKDEsMTIpLCAoMSwxMSksICgxLDEwKSwgKDEsOSksICgx
LDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgxLDIpLCAoMSwxKV0KK1Rl
c3QgNCwgUlRMOgorICBFeHRlbmRpbmcgbGVmdDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxKSwg
KDEsMiksICgxLDMpLCAoMSw0KSwgKDEsNSksICgxLDYpLCAoMSw3KSwgKDEsOCksICgxLDkpLCAo
MSwxMCksICgxLDExKSwgKDEsMTIpLCAoMSwxMyksICgxLDE0KV0KKyAgRXh0ZW5kaW5nIHJpZ2h0
OiAgIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxNCksICgxLDEzKSwgKDEsMTIpLCAoMSwxMSksICgx
LDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEsMyksICgx
LDIpLCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJcbmFiYyBlZmQgZGFiZWJcbiJbKDEs
MSksICgxLDIpLCAoMSwzKSwgKDEsNCksICgxLDUpLCAoMSw2KSwgKDEsNyksICgxLDgpLCAoMSw5
KSwgKDEsMTApLCAoMSwxMSksICgxLDEyKSwgKDEsMTMpLCAoMSwxNCldCisgIEV4dGVuZGluZyBi
YWNrd2FyZDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxNCksICgxLDEzKSwgKDEsMTIpLCAoMSwx
MSksICgxLDEwKSwgKDEsOSksICgxLDgpLCAoMSw3KSwgKDEsNiksICgxLDUpLCAoMSw0KSwgKDEs
MyksICgxLDIpLCAoMSwxKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQK
KyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZv
cndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2Fy
ZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5n
IGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQK
KworCitUZXN0IDUsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiTG9yZW0gIlsoMCwwKSwgKDAs
MSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KV0sICJpcHN1bSBkb2xvciBzaXQi
WygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwg
KDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwxMiksICgwLDEzKSwgKDAsMTQpLCAoMCwxNSldLCAi
IGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGxl
ZnQ6ICAiIGFtZXQiWygwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBk
b2xvciBzaXQiWygwLDE1KSwgKDAsMTQpLCAoMCwxMyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCks
ICgwLDkpLCAoMCw4KSwgKDAsNyksICgwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwg
KDAsMSldLCAiTG9yZW0gIlsoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEp
LCAoMCwwKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAs
MiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMSks
ICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwg
KDAsMTApLCAoMCwxMSksICgwLDEyKSwgKDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJb
KDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6
ICAiIGFtZXQiWygwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xv
ciBzaXQiWygwLDE1KSwgKDAsMTQpLCAoMCwxMyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgw
LDkpLCAoMCw4KSwgKDAsNyksICgwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAs
MSldLCAiTG9yZW0gIlsoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAo
MCwwKV0KK1Rlc3QgNSwgUlRMOgorICBFeHRlbmRpbmcgbGVmdDogIkxvcmVtICJbKDAsMCksICgw
LDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNildLCAiaXBzdW0gZG9sb3Igc2l0
IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCks
ICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIpLCAoMCwxMyksICgwLDE0KSwgKDAsMTUpXSwg
IiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSldCisgIEV4dGVuZGluZyBy
aWdodDogICIgYW1ldCJbKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3Vt
IGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwxNCksICgwLDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEw
KSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIp
LCAoMCwxKV0sICJMb3JlbSAiWygwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAs
MSksICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAo
MCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwx
KSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkp
LCAoMCwxMCksICgwLDExKSwgKDAsMTIpLCAoMCwxMyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0
IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSldCisgIEV4dGVuZGluZyBiYWNrd2Fy
ZDogIiBhbWV0IlsoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiaXBzdW0gZG9s
b3Igc2l0IlsoMCwxNSksICgwLDE0KSwgKDAsMTMpLCAoMCwxMiksICgwLDExKSwgKDAsMTApLCAo
MCw5KSwgKDAsOCksICgwLDcpLCAoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgw
LDEpXSwgIkxvcmVtICJbKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwg
KDAsMCldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0CisgIHZhbGlkYXRp
bmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3YXJkIGFuZCBy
dGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmQKKyAgdmFsaWRh
dGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBh
bmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisKKworVGVzdCA2
LCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwg
KDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAs
MiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwx
MCksICgwLDExKSwgKDAsMTIpLCAoMCwxMyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwx
KSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSldCisgIEV4dGVuZGluZyBsZWZ0OiAgIiBhbWV0
IlsoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0Ilso
MCwxNSksICgwLDE0KSwgKDAsMTMpLCAoMCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAs
OCksICgwLDcpLCAoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxv
cmVtICJbKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCisg
IEV4dGVuZGluZyBmb3J3YXJkOiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwg
KDAsNCksICgwLDUpLCAoMCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAs
MyksICgwLDQpLCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAs
MTEpLCAoMCwxMiksICgwLDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwy
KSwgKDAsMyksICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIiBhbWV0Ilso
MCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwx
NSksICgwLDE0KSwgKDAsMTMpLCAoMCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCks
ICgwLDcpLCAoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxvcmVt
ICJbKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCitUZXN0
IDYsIFJUTDoKKyAgRXh0ZW5kaW5nIGxlZnQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiks
ICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMSksICgw
LDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAs
MTApLCAoMCwxMSksICgwLDEyKSwgKDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAs
MSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgcmlnaHQ6ICAiIGFt
ZXQiWygwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQi
WygwLDE1KSwgKDAsMTQpLCAoMCwxMyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAo
MCw4KSwgKDAsNyksICgwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAi
TG9yZW0gIlsoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0K
KyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMp
LCAoMCw0KSwgKDAsNSksICgwLDYpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMSksICgwLDIpLCAo
MCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAo
MCwxMSksICgwLDEyKSwgKDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgw
LDIpLCAoMCwzKSwgKDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICIgYW1ldCJb
KDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAs
MTUpLCAoMCwxNCksICgwLDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgp
LCAoMCw3KSwgKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3Jl
bSAiWygwLDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorCisK
KyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0
IGFuZCBsdHJGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAor
ICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFj
a3dhcmQgYW5kIHJ0bEJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQK
KyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBydGxSaWdodAorCisKK1Rlc3QgNywgTFRSOgorICBF
eHRlbmRpbmcgcmlnaHQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0
KSwgKDAsNSksICgwLDYpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMSksICgwLDIpLCAoMCwzKSwg
KDAsNCksICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSks
ICgwLDEyKSwgKDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAo
MCwzKSwgKDAsNCksICgwLDUpXQorICBFeHRlbmRpbmcgbGVmdDogICIgYW1ldCJbKDAsNSksICgw
LDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwx
NCksICgwLDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwg
KDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYp
LCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorICBFeHRlbmRpbmcg
Zm9yd2FyZDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1
KSwgKDAsNildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwg
KDAsNSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIp
LCAoMCwxMyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAo
MCw0KSwgKDAsNSldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogICIgYW1ldCJbKDAsNSksICgwLDQp
LCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwxNCks
ICgwLDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAs
NiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYpLCAo
MCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorVGVzdCA3LCBSVEw6Cisg
IEV4dGVuZGluZyBsZWZ0OiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAs
NCksICgwLDUpLCAoMCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyks
ICgwLDQpLCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEp
LCAoMCwxMiksICgwLDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwg
KDAsMyksICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAgIiBhbWV0IlsoMCw1KSwg
KDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxNSksICgw
LDE0KSwgKDAsMTMpLCAoMCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcp
LCAoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxvcmVtICJbKDAs
NiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCisgIEV4dGVuZGlu
ZyBmb3J3YXJkOiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgw
LDUpLCAoMCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQp
LCAoMCw1KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwx
MiksICgwLDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyks
ICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAiIGFtZXQiWygwLDUpLCAoMCw0
KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQp
LCAoMCwxMyksICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgw
LDYpLCAoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0gIlsoMCw2KSwg
KDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KKworCisgIHZhbGlkYXRp
bmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9y
d2FyZAorICB2YWxpZGF0aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGlu
ZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBy
dGxCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRp
bmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQKKworCitUZXN0IDgsIExUUjoKKyAgRXh0ZW5kaW5nIHJp
Z2h0OiAiTG9yZW0gIlsoMCwwKSwgKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAo
MCw2KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1
KSwgKDAsNiksICgwLDcpLCAoMCw4KSwgKDAsOSksICgwLDEwKSwgKDAsMTEpLCAoMCwxMiksICgw
LDEzKSwgKDAsMTQpLCAoMCwxNSldLCAiIGFtZXQiWygwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQp
LCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiIGFtZXQiWygwLDUpLCAoMCw0KSwgKDAsMyks
ICgwLDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQpLCAoMCwxMyks
ICgwLDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgwLDYpLCAoMCw1
KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0gIlsoMCw2KSwgKDAsNSksICgw
LDQpLCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJM
b3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgwLDYpXSwg
Imlwc3VtIGRvbG9yIHNpdCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2
KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAsMTApLCAoMCwxMSksICgwLDEyKSwgKDAsMTMpLCAo
MCwxNCksICgwLDE1KV0sICIgYW1ldCJbKDAsMSksICgwLDIpLCAoMCwzKSwgKDAsNCksICgwLDUp
XQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiIGFtZXQiWygwLDUpLCAoMCw0KSwgKDAsMyksICgw
LDIpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDE1KSwgKDAsMTQpLCAoMCwxMyksICgw
LDEyKSwgKDAsMTEpLCAoMCwxMCksICgwLDkpLCAoMCw4KSwgKDAsNyksICgwLDYpLCAoMCw1KSwg
KDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSldLCAiTG9yZW0gIlsoMCw2KSwgKDAsNSksICgwLDQp
LCAoMCwzKSwgKDAsMiksICgwLDEpLCAoMCwwKV0KK1Rlc3QgOCwgUlRMOgorICBFeHRlbmRpbmcg
bGVmdDogIkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwg
KDAsNildLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAs
NSksICgwLDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIpLCAo
MCwxMyksICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0
KSwgKDAsNSldCisgIEV4dGVuZGluZyByaWdodDogICIgYW1ldCJbKDAsNSksICgwLDQpLCAoMCwz
KSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTUpLCAoMCwxNCksICgwLDEz
KSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwgKDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgw
LDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAoMCwxKV0sICJMb3JlbSAiWygwLDYpLCAoMCw1KSwg
KDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSksICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDog
IkxvcmVtICJbKDAsMCksICgwLDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KSwgKDAsNild
LCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAsNSksICgw
LDYpLCAoMCw3KSwgKDAsOCksICgwLDkpLCAoMCwxMCksICgwLDExKSwgKDAsMTIpLCAoMCwxMyks
ICgwLDE0KSwgKDAsMTUpXSwgIiBhbWV0IlsoMCwxKSwgKDAsMiksICgwLDMpLCAoMCw0KSwgKDAs
NSldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogIiBhbWV0IlsoMCw1KSwgKDAsNCksICgwLDMpLCAo
MCwyKSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxNSksICgwLDE0KSwgKDAsMTMpLCAo
MCwxMiksICgwLDExKSwgKDAsMTApLCAoMCw5KSwgKDAsOCksICgwLDcpLCAoMCw2KSwgKDAsNSks
ICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgIkxvcmVtICJbKDAsNiksICgwLDUpLCAoMCw0
KSwgKDAsMyksICgwLDIpLCAoMCwxKSwgKDAsMCldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0
IGFuZCBsdHJMZWZ0CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFs
aWRhdGluZyBsdHJGb3J3YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBh
bmQgbHRyQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQK
KyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQg
YW5kIHJ0bFJpZ2h0CisKKworCisKKworCisKK0V4dGVuZGluZyBieSB3b3JkCitUZXN0IDEsIExU
UjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDEpLCAo
MSw0KSwgKDEsOCksICgxLDEyKSwgKDEsMTYpLCAoMSwyMCldCisgIEV4dGVuZGluZyBsZWZ0OiAg
IlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwyMCksICgxLDE3KSwgKDEsMTMpLCAoMSw5KSwg
KDEsNSksICgxLDEpXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIlxuYWJjIEFCQyB4eXogREVGIGRl
ZlxuIlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxMiksICgxLDE2KSwgKDEsMjApXQorICBFeHRl
bmRpbmcgYmFja3dhcmQ6ICAiXG5hYmMgQUJDIHh5eiBERUYgZGVmXG4iWygxLDIwKSwgKDEsMTcp
LCAoMSwxMyksICgxLDkpLCAoMSw1KSwgKDEsMSldCitUZXN0IDEsIFJUTDoKKyAgRXh0ZW5kaW5n
IGxlZnQ6ICJcbmFiYyBBQkMgeHl6IERFRiBkZWZcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEs
MTIpLCAoMSwxNiksICgxLDIwKV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAgIlxuYWJjIEFCQyB4eXog
REVGIGRlZlxuIlsoMSwyMCksICgxLDE3KSwgKDEsMTMpLCAoMSw5KSwgKDEsNSksICgxLDEpXQor
ICBFeHRlbmRpbmcgZm9yd2FyZDogIlxuYWJjIEFCQyB4eXogREVGIGRlZlxuIlsoMSwxKSwgKDEs
NCksICgxLDgpLCAoMSwxMiksICgxLDE2KSwgKDEsMjApXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6
ICJcbmFiYyBBQkMgeHl6IERFRiBkZWZcbiJbKDEsMjApLCAoMSwxNyksICgxLDEzKSwgKDEsOSks
ICgxLDUpLCAoMSwxKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQKKyAg
dmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZvcndh
cmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2FyZAor
ICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0
clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQKKwor
CitUZXN0IDIsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiXG5BQkMgeHl6IERFRiBkZWYgR0hJ
XG4iWygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDEyKSwgKDEsMTYpLCAoMSwyMCldCisgIEV4dGVu
ZGluZyBsZWZ0OiAgIlxuQUJDIHh5eiBERUYgZGVmIEdISVxuIlsoMSwyMCksICgxLDE3KSwgKDEs
MTMpLCAoMSw5KSwgKDEsNSksICgxLDEpXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIlxuQUJDIHh5
eiBERUYgZGVmIEdISVxuIlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxMiksICgxLDE2KSwgKDEs
MjApXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiXG5BQkMgeHl6IERFRiBkZWYgR0hJXG4iWygx
LDIwKSwgKDEsMTcpLCAoMSwxMyksICgxLDkpLCAoMSw1KSwgKDEsMSldCitUZXN0IDIsIFJUTDoK
KyAgRXh0ZW5kaW5nIGxlZnQ6ICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJbKDEsMSksICgxLDQp
LCAoMSw4KSwgKDEsMTIpLCAoMSwxNiksICgxLDIwKV0KKyAgRXh0ZW5kaW5nIHJpZ2h0OiAgIlxu
QUJDIHh5eiBERUYgZGVmIEdISVxuIlsoMSwyMCksICgxLDE3KSwgKDEsMTMpLCAoMSw5KSwgKDEs
NSksICgxLDEpXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIlxuQUJDIHh5eiBERUYgZGVmIEdISVxu
IlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxMiksICgxLDE2KSwgKDEsMjApXQorICBFeHRlbmRp
bmcgYmFja3dhcmQ6ICJcbkFCQyB4eXogREVGIGRlZiBHSElcbiJbKDEsMjApLCAoMSwxNyksICgx
LDEzKSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5k
IGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0
aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBs
dHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2
YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQg
cnRsUmlnaHQKKworCitUZXN0IDMsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiXG5BQkMgREVG
IEFCQ1xuIlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxMildCisgIEV4dGVuZGluZyBsZWZ0OiAg
IlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSw5KSwgKDEsNSksICgxLDEpXQorICBFeHRlbmRp
bmcgZm9yd2FyZDogIlxuQUJDIERFRiBBQkNcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTIp
XQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiXG5BQkMgREVGIEFCQ1xuIlsoMSwxMiksICgxLDkp
LCAoMSw1KSwgKDEsMSldCitUZXN0IDMsIFJUTDoKKyAgRXh0ZW5kaW5nIGxlZnQ6ICJcbkFCQyBE
RUYgQUJDXG4iWygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDEyKV0KKyAgRXh0ZW5kaW5nIHJpZ2h0
OiAgIlxuQUJDIERFRiBBQkNcbiJbKDEsMTIpLCAoMSw5KSwgKDEsNSksICgxLDEpXQorICBFeHRl
bmRpbmcgZm9yd2FyZDogIlxuQUJDIERFRiBBQkNcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEs
MTIpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICJcbkFCQyBERUYgQUJDXG4iWygxLDEyKSwgKDEs
OSksICgxLDUpLCAoMSwxKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckxlZnQK
KyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckZv
cndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBsdHJCYWNrd2Fy
ZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAorICB2YWxpZGF0aW5n
IGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgcnRsUmlnaHQK
KworCitUZXN0IDQsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiXG5hYmMgZWZkIGRhYmViXG4i
WygxLDEpLCAoMSw0KSwgKDEsOCksICgxLDE0KV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiXG5hYmMg
ZWZkIGRhYmViXG4iWygxLDE0KSwgKDEsOSksICgxLDUpLCAoMSwxKV0KKyAgRXh0ZW5kaW5nIGZv
cndhcmQ6ICJcbmFiYyBlZmQgZGFiZWJcbiJbKDEsMSksICgxLDQpLCAoMSw4KSwgKDEsMTQpXQor
ICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiXG5hYmMgZWZkIGRhYmViXG4iWygxLDE0KSwgKDEsOSks
ICgxLDUpLCAoMSwxKV0KK1Rlc3QgNCwgUlRMOgorICBFeHRlbmRpbmcgbGVmdDogIlxuYWJjIGVm
ZCBkYWJlYlxuIlsoMSwxKSwgKDEsNCksICgxLDgpLCAoMSwxNCldCisgIEV4dGVuZGluZyByaWdo
dDogICJcbmFiYyBlZmQgZGFiZWJcbiJbKDEsMTQpLCAoMSw5KSwgKDEsNSksICgxLDEpXQorICBF
eHRlbmRpbmcgZm9yd2FyZDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwxKSwgKDEsNCksICgxLDgp
LCAoMSwxNCldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogIlxuYWJjIGVmZCBkYWJlYlxuIlsoMSwx
NCksICgxLDkpLCAoMSw1KSwgKDEsMSldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBs
dHJMZWZ0CisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGlu
ZyBsdHJGb3J3YXJkIGFuZCBydGxGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRy
QmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFs
aWRhdGluZyBsdHJSaWdodCBhbmQgcnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0
bFJpZ2h0CisKKworVGVzdCA1LCBMVFI6CisgIEV4dGVuZGluZyByaWdodDogIkxvcmVtICJbKDAs
MCksICgwLDUpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsNSksICgwLDExKSwgKDAsMTUpXSwgIiBh
bWV0IlsoMCw1KV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICJp
cHN1bSBkb2xvciBzaXQiWygwLDEyKSwgKDAsNildLCAiTG9yZW0gIlsoMCw2KSwgKDAsMCldCisg
IEV4dGVuZGluZyBmb3J3YXJkOiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Ig
c2l0IlsoMCw1KSwgKDAsMTEpLCAoMCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcg
YmFja3dhcmQ6ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEy
KSwgKDAsNildLCAiTG9yZW0gIlsoMCw2KSwgKDAsMCldCitUZXN0IDUsIFJUTDoKKyAgRXh0ZW5k
aW5nIGxlZnQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUp
LCAoMCwxMSksICgwLDE1KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVuZGluZyByaWdodDogICIg
YW1ldCJbKDAsNSksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAoMCw2KV0sICJM
b3JlbSAiWygwLDYpLCAoMCwwKV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDAp
LCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIgYW1l
dCJbKDAsNSldCisgIEV4dGVuZGluZyBiYWNrd2FyZDogIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAi
aXBzdW0gZG9sb3Igc2l0IlsoMCwxMiksICgwLDYpXSwgIkxvcmVtICJbKDAsNiksICgwLDApXQor
CisKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJp
Z2h0IGFuZCBsdHJGb3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2Fy
ZAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRy
QmFja3dhcmQgYW5kIHJ0bEJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExl
ZnQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFuZCBydGxSaWdodAorCisKK1Rlc3QgNiwgTFRSOgor
ICBFeHRlbmRpbmcgcmlnaHQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciBz
aXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVuZGluZyBs
ZWZ0OiAgIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxMiksICgw
LDYpXSwgIkxvcmVtICJbKDAsNiksICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVt
ICJbKDAsMCksICgwLDUpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsNSksICgwLDExKSwgKDAsMTUp
XSwgIiBhbWV0IlsoMCw1KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAgIiBhbWV0IlsoMCw1KSwg
KDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxMiksICgwLDYpXSwgIkxvcmVtICJbKDAsNiks
ICgwLDApXQorVGVzdCA2LCBSVEw6CisgIEV4dGVuZGluZyBsZWZ0OiAiTG9yZW0gIlsoMCwwKSwg
KDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwgKDAsMTEpLCAoMCwxNSldLCAiIGFtZXQi
WygwLDUpXQorICBFeHRlbmRpbmcgcmlnaHQ6ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1
bSBkb2xvciBzaXQiWygwLDEyKSwgKDAsNildLCAiTG9yZW0gIlsoMCw2KSwgKDAsMCldCisgIEV4
dGVuZGluZyBmb3J3YXJkOiAiTG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0
IlsoMCw1KSwgKDAsMTEpLCAoMCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgYmFj
a3dhcmQ6ICIgYW1ldCJbKDAsNSksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAo
MCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCwwKV0KKworCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQg
YW5kIGx0ckxlZnQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQgbHRyRm9yd2FyZAorICB2YWxp
ZGF0aW5nIGx0ckZvcndhcmQgYW5kIHJ0bEZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJMZWZ0IGFu
ZCBsdHJCYWNrd2FyZAorICB2YWxpZGF0aW5nIGx0ckJhY2t3YXJkIGFuZCBydGxCYWNrd2FyZAor
ICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBydGxMZWZ0CisgIHZhbGlkYXRpbmcgbHRyTGVmdCBh
bmQgcnRsUmlnaHQKKworCitUZXN0IDcsIExUUjoKKyAgRXh0ZW5kaW5nIHJpZ2h0OiAiTG9yZW0g
IlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwgKDAsMTEpLCAoMCwxNSld
LCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgbGVmdDogICIgYW1ldCJbKDAsNSksICgwLDEp
XSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCww
KV0KKyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBk
b2xvciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVu
ZGluZyBiYWNrd2FyZDogICIgYW1ldCJbKDAsNSksICgwLDEpXSwgImlwc3VtIGRvbG9yIHNpdCJb
KDAsMTIpLCAoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCwwKV0KK1Rlc3QgNywgUlRMOgorICBF
eHRlbmRpbmcgbGVmdDogIkxvcmVtICJbKDAsMCksICgwLDUpXSwgImlwc3VtIGRvbG9yIHNpdCJb
KDAsNSksICgwLDExKSwgKDAsMTUpXSwgIiBhbWV0IlsoMCw1KV0KKyAgRXh0ZW5kaW5nIHJpZ2h0
OiAgIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxMiksICgwLDYp
XSwgIkxvcmVtICJbKDAsNiksICgwLDApXQorICBFeHRlbmRpbmcgZm9yd2FyZDogIkxvcmVtICJb
KDAsMCksICgwLDUpXSwgImlwc3VtIGRvbG9yIHNpdCJbKDAsNSksICgwLDExKSwgKDAsMTUpXSwg
IiBhbWV0IlsoMCw1KV0KKyAgRXh0ZW5kaW5nIGJhY2t3YXJkOiAiIGFtZXQiWygwLDUpLCAoMCwx
KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEyKSwgKDAsNildLCAiTG9yZW0gIlsoMCw2KSwgKDAs
MCldCisKKworICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJMZWZ0CisgIHZhbGlkYXRpbmcg
bHRyUmlnaHQgYW5kIGx0ckZvcndhcmQKKyAgdmFsaWRhdGluZyBsdHJGb3J3YXJkIGFuZCBydGxG
b3J3YXJkCisgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmQKKyAgdmFsaWRhdGlu
ZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFja3dhcmQKKyAgdmFsaWRhdGluZyBsdHJSaWdodCBhbmQg
cnRsTGVmdAorICB2YWxpZGF0aW5nIGx0ckxlZnQgYW5kIHJ0bFJpZ2h0CisKKworVGVzdCA4LCBM
VFI6CisgIEV4dGVuZGluZyByaWdodDogIkxvcmVtICJbKDAsMCksICgwLDUpXSwgImlwc3VtIGRv
bG9yIHNpdCJbKDAsNSksICgwLDExKSwgKDAsMTUpXSwgIiBhbWV0IlsoMCw1KV0KKyAgRXh0ZW5k
aW5nIGxlZnQ6ICAiIGFtZXQiWygwLDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEy
KSwgKDAsNildLCAiTG9yZW0gIlsoMCw2KSwgKDAsMCldCisgIEV4dGVuZGluZyBmb3J3YXJkOiAi
TG9yZW0gIlsoMCwwKSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCw1KSwgKDAsMTEpLCAo
MCwxNSldLCAiIGFtZXQiWygwLDUpXQorICBFeHRlbmRpbmcgYmFja3dhcmQ6ICAiIGFtZXQiWygw
LDUpLCAoMCwxKV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDEyKSwgKDAsNildLCAiTG9yZW0gIlso
MCw2KSwgKDAsMCldCitUZXN0IDgsIFJUTDoKKyAgRXh0ZW5kaW5nIGxlZnQ6ICJMb3JlbSAiWygw
LDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIg
YW1ldCJbKDAsNSldCisgIEV4dGVuZGluZyByaWdodDogICIgYW1ldCJbKDAsNSksICgwLDEpXSwg
Imlwc3VtIGRvbG9yIHNpdCJbKDAsMTIpLCAoMCw2KV0sICJMb3JlbSAiWygwLDYpLCAoMCwwKV0K
KyAgRXh0ZW5kaW5nIGZvcndhcmQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xv
ciBzaXQiWygwLDUpLCAoMCwxMSksICgwLDE1KV0sICIgYW1ldCJbKDAsNSldCisgIEV4dGVuZGlu
ZyBiYWNrd2FyZDogIiBhbWV0IlsoMCw1KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwx
MiksICgwLDYpXSwgIkxvcmVtICJbKDAsNiksICgwLDApXQorCisKKyAgdmFsaWRhdGluZyBsdHJS
aWdodCBhbmQgbHRyTGVmdAorICB2YWxpZGF0aW5nIGx0clJpZ2h0IGFuZCBsdHJGb3J3YXJkCisg
IHZhbGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZAorICB2YWxpZGF0aW5nIGx0ckxl
ZnQgYW5kIGx0ckJhY2t3YXJkCisgIHZhbGlkYXRpbmcgbHRyQmFja3dhcmQgYW5kIHJ0bEJhY2t3
YXJkCisgIHZhbGlkYXRpbmcgbHRyUmlnaHQgYW5kIHJ0bExlZnQKKyAgdmFsaWRhdGluZyBsdHJM
ZWZ0IGFuZCBydGxSaWdodAorCisKKworCisKK0V4dGVuZGluZyBieSBjaGFyYWN0ZXIKK1Rlc3Qg
MSwgTFRSOgorICBFeHRlbmRpbmcgcmlnaHQ6ICJMb3JlbSAiWygwLDApLCAoMCwxKSwgKDAsMiks
ICgwLDMpLCAoMCw0KSwgKDAsNSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwwKSwgKDAsMSksICgw
LDIpLCAoMCwzKSwgKDAsNCksICgwLDUpLCAoMCw2KSwgKDAsNyksICgwLDgpLCAoMCw5KSwgKDAs
MTApLCAoMCwxMSksICgwLDEyKSwgKDAsMTMpLCAoMCwxNCksICgwLDE1KV0sICIgYW1ldHQiWygw
LDEpLCAoMCwyKSwgKDAsMyksICgwLDQpLCAoMCw1KV0KKyAgRXh0ZW5kaW5nIGxlZnQ6ICAiIGFt
ZXR0IlsoMCw2KSwgKDAsNSksICgwLDQpLCAoMCwzKSwgKDAsMiksICgwLDEpXSwgImlwc3VtIGRv
bG9yIHNpdCJbKDAsMTUpLCAoMCwxNCksICgwLDEzKSwgKDAsMTIpLCAoMCwxMSksICgwLDEwKSwg
KDAsOSksICgwLDgpLCAoMCw3KSwgKDAsNiksICgwLDUpLCAoMCw0KSwgKDAsMyksICgwLDIpLCAo
MCwxKSwgKDAsMCldLCAiTG9yZW0gIlsoMCw1KSwgKDAsNCksICgwLDMpLCAoMCwyKSwgKDAsMSld
CisKKworCisKKworRXh0ZW5kaW5nIGJ5IHdvcmQKK1Rlc3QgMSwgTFRSOgorICBFeHRlbmRpbmcg
cmlnaHQ6ICJMb3JlbSAiWygwLDApLCAoMCw1KV0sICJpcHN1bSBkb2xvciBzaXQiWygwLDUpLCAo
MCwxMSksICgwLDE1KV0sICIgYW1ldHQiWygwLDYpLCAoMCwxKV0KKyAgRXh0ZW5kaW5nIGxlZnQ6
ICAiIGFtZXR0IlsoMCw2KSwgKDAsMSldLCAiaXBzdW0gZG9sb3Igc2l0IlsoMCwxMiksICgwLDYp
LCAoMCwwKV0sICJMb3JlbSAiWygwLDApLCAoMCw1KV0KKwpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24uaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOTkgQEAKKzxoZWFkPgorICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4K
KyAgICA8c3R5bGU+CisgICAgICAgIGRpdi50ZXN0IHsKKyAgICAgICAgICAgIC13ZWJraXQtdXNl
ci1tb2RpZnk6IHJlYWQtd3JpdGU7CisgICAgICAgICAgICBwYWRkaW5nOiA0cHg7CisgICAgICAg
ICAgICBib3JkZXI6IDFweCBkYXNoZWQgbGlnaHRibHVlOworICAgICAgICAgICAgbWFyZ2luOiA0
cHggNHB4IDRweCAyNHB4OworICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKKyAgICAgICAgICAg
IGZvbnQtZmFtaWx5OiBMdWNpZGEgR3JhbmRlOworICAgICAgICAgICAgY291bnRlci1pbmNyZW1l
bnQ6IHRlc3QtbnVtYmVyOworICAgICAgICB9CisgICAgICAgIGRpdi50ZXN0OmJlZm9yZSB7IGNv
bnRlbnQ6IGNvdW50ZXIodGVzdC1udW1iZXIpOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDhw
eDsgZm9udC1zaXplOiB4LXNtYWxsOyB0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDIwcHg7IH0K
KyAgICAgICAgZGl2LnRlc3Qgc3BhbiB7IGJhY2tncm91bmQtY29sb3I6ICNkZWY7IH0KKyAgICAg
ICAgZGl2LnRlc3QgaW1nIHsgd2lkdGg6IDFlbTsgaGVpZ2h0OiAxZW07IGJhY2tncm91bmQtY29s
b3I6IGxpZ2h0Z3JlZW47IH0KKyAgICAgICAgZGl2LnRlc3QgaW1nICsgaW1nIHsgYmFja2dyb3Vu
ZC1jb2xvcjogbGlnaHRibHVlOyB9CisgICAgICAgIGRpdi50ZXN0IGRpdiB7IGJvcmRlcjogMXB4
IGRhc2hlZCBwaW5rOyBwYWRkaW5nOiAzcHg7IGhlaWdodDogMmVtOyB9CisgICAgPC9zdHlsZT4K
KyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBwb3NpdGlvbnNFeHRlbmRpbmdJbkRpcmVjdGlvbkZvckVuY2xvc2luZ0Jsb2Nr
KHNlbCwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkKKyAgICAgICAgeworICAgICAgICAgICAgdmFy
IHBvc2l0aW9ucyA9IFtdOworICAgICAgICAgICAgdmFyIGx0ck51bTsKKyAgICAgICAgICAgIHZh
ciBydGxOdW07CisgICAgICAgICAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gImNoYXJhY3RlciIpIHsK
KyAgICAgICAgICAgICAgICBsdHJOdW0gPSA1OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBsdHJOdW0gPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGdy
YW51bGFyaXR5ID09ICJjaGFyYWN0ZXIiKSB7CisgICAgICAgICAgICAgICAgcnRsTnVtID0gMTU7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJ0bE51bSA9IDM7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICB2YXIgaW5kZXggPSAwOworICAgICAgICAgICAgd2hpbGUg
KGluZGV4IDw9IGx0ck51bSkgeworICAgICAgICAgICAgICAgIHBvc2l0aW9ucy5wdXNoKHsgbm9k
ZTogc2VsLmV4dGVudE5vZGUsIGJlZ2luOiBzZWwuYmFzZU9mZnNldCwgZW5kOiBzZWwuZXh0ZW50
T2Zmc2V0IH0pOworICAgICAgICAgICAgICAgIHNlbC5tb2RpZnkoImV4dGVuZCIsIGRpcmVjdGlv
biwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgICsraW5kZXg7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB2YXIgYW50aURpcmVjdGlvbiA9IGRpcmVjdGlvbjsKKyAgICAgICAgICAg
IGlmIChhbnRpRGlyZWN0aW9uID09ICdsZWZ0JykgeworICAgICAgICAgICAgICAgIGFudGlEaXJl
Y3Rpb24gPSAicmlnaHQiOworICAgICAgICAgICAgfSBlbHNlIGlmIChhbnRpRGlyZWN0aW9uID0g
J3JpZ2h0JykgeworICAgICAgICAgICAgICAgIGFudGlEaXJlY3Rpb24gPSAibGVmdCI7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChp
bmRleCA8PSBydGxOdW0pIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbnMucHVzaCh7IG5vZGU6
IHNlbC5leHRlbnROb2RlLCBiZWdpbjogc2VsLmJhc2VPZmZzZXQsIGVuZDogc2VsLmV4dGVudE9m
ZnNldCB9KTsKKyAgICAgICAgICAgICAgICBzZWwubW9kaWZ5KCJleHRlbmQiLCBhbnRpRGlyZWN0
aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHZhciBpbmRleCA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaW5kZXgg
PCBsdHJOdW0pIHsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbnMucHVzaCh7IG5vZGU6IHNlbC5l
eHRlbnROb2RlLCBiZWdpbjogc2VsLmJhc2VPZmZzZXQsIGVuZDogc2VsLmV4dGVudE9mZnNldCB9
KTsKKyAgICAgICAgICAgICAgICBzZWwubW9kaWZ5KCJleHRlbmQiLCBkaXJlY3Rpb24sIGdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIHBvc2l0aW9uczsKKyAgICAgICAgfQorCisKKyAgICAgICAgZnVuY3Rpb24g
cG9zaXRpb25zRXh0ZW5kaW5nSW5EaXJlY3Rpb24oc2VsLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5
KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcG9zaXRpb25zID0gW107CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgcG9zaXRpb25z
LnB1c2goeyBub2RlOiBzZWwuZXh0ZW50Tm9kZSwgYmVnaW46IHNlbC5iYXNlT2Zmc2V0LCBlbmQ6
IHNlbC5leHRlbnRPZmZzZXQgfSk7CisgICAgICAgICAgICAgICAgc2VsLm1vZGlmeSgiZXh0ZW5k
IiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9u
c1twb3NpdGlvbnMubGVuZ3RoIC0gMV0ubm9kZSA9PSBzZWwuZXh0ZW50Tm9kZSAmJiBwb3NpdGlv
bnNbcG9zaXRpb25zLmxlbmd0aCAtIDFdLmVuZCA9PSBzZWwuZXh0ZW50T2Zmc2V0KQorICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4g
cG9zaXRpb25zOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZm9sZChzdHJpbmcpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSAiIjsKKyAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFy
IGNoYXIgPSBzdHJpbmcuY2hhckNvZGVBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hhciA+
PSAweDA1ZDApCisgICAgICAgICAgICAgICAgICAgIGNoYXIgLT0gMHgwNThmOworICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gMTApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
ICs9ICJcXG4iOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhcik7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gbG9nUG9zaXRpb25zKHBvc2l0aW9ucykKKyAgICAgICAgeworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3NpdGlvbnMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoaSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25z
W2ldLm5vZGUgIT0gcG9zaXRpb25zW2kgLSAxXS5ub2RlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nKCJdIik7CisgICAgICAgICAgICAgICAgICAgIGxvZygiLCAiKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFpIHx8IHBvc2l0aW9uc1tpXS5ub2RlICE9IHBv
c2l0aW9uc1tpIC0gMV0ubm9kZSkKKyAgICAgICAgICAgICAgICAgICAgbG9nKChwb3NpdGlvbnNb
aV0ubm9kZSBpbnN0YW5jZW9mIFRleHQgPyAnIicgKyBmb2xkKHBvc2l0aW9uc1tpXS5ub2RlLmRh
dGEpICsgJyInIDogIjwiICsgcG9zaXRpb25zW2ldLm5vZGUudGFnTmFtZSArICI+IikgKyAiWyIp
OworICAgICAgICAgICAgICAgIGxvZygiKCIgKyBwb3NpdGlvbnNbaV0uYmVnaW4gKyAiLCIgKyBw
b3NpdGlvbnNbaV0uZW5kICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZygi
XSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tSZXZlcnNlT3JkZXIoaW5w
dXRQb3NpdGlvbnMsIGlucHV0UmV2ZXJzZVBvc2l0aW9ucykKKyAgICAgICAgeworICAgICAgICAg
ICAgdmFyIHBvc2l0aW9ucyA9IGlucHV0UG9zaXRpb25zLnNsaWNlKCk7CisgICAgICAgICAgICB2
YXIgcmV2ZXJzZVBvc2l0aW9ucyA9IGlucHV0UmV2ZXJzZVBvc2l0aW9ucy5zbGljZSgpOworICAg
ICAgICAgICAgdmFyIG1pc21hdGNoID0gKHBvc2l0aW9ucy5sZW5ndGggIT0gcmV2ZXJzZVBvc2l0
aW9ucy5sZW5ndGgpOworICAgICAgICAgICAgaWYgKG1pc21hdGNoKQorICAgICAgICAgICAgICAg
IGxvZygiV0FSTklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0aGUgc2FtZSwgYnV0IHRoZSBsZW5n
dGggYXJlIG5vdCB0aGUgc2FtZSAiICsgIHBvc2l0aW9ucy5sZW5ndGggKyAiIHZzLiAiICsgcmV2
ZXJzZVBvc2l0aW9ucy5sZW5ndGggKyAiXG4iKTsKKyAgICAgICAgICAgIHdoaWxlICghbWlzbWF0
Y2gpIHsKKyAgICAgICAgICAgICAgICB2YXIgcG9zID0gcG9zaXRpb25zLnBvcCgpOworICAgICAg
ICAgICAgICAgIGlmICghcG9zKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB2YXIgcmV2ZXJzZVBvcyA9IHJldmVyc2VQb3NpdGlvbnMuc2hpZnQoKTsKKyAgICAg
ICAgICAgICAgICBpZiAocG9zLm5vZGUgIT0gcmV2ZXJzZVBvcy5ub2RlKSB7CisgICAgICAgICAg
ICAgICAgICAgIG1pc21hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJXQVJO
SU5HOiBwb3NpdGlvbnMgc2hvdWxkIGJlIHRoZSByZXZlcnNlLCBidXQgbm9kZSBhcmUgbm90IHRo
ZSByZXZlcnNlXG4iKTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGlmIChw
b3MuYmVnaW4gIT0gcmV2ZXJzZVBvcy5iZWdpbikgeworICAgICAgICAgICAgICAgICAgICBtaXNt
YXRjaCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGxvZygiV0FSTklORzogcG9zaXRpb25z
IHNob3VsZCBiZSB0aGUgc2FtZSwgYnV0IGJlZ2luIGFyZSBub3QgIiArIHBvcy5iZWdpbiArICIg
dnMuICIgKyByZXZlcnNlUG9zLmJlZ2luICsgIlxuIik7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmIChwb3MuZW5kICE9IHJldmVyc2VQb3MuZW5kKSB7CisgICAgICAgICAg
ICAgICAgICAgIG1pc21hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJXQVJO
SU5HOiBwb3NpdGlvbnMgc2hvdWxkIGJlIHRoZSBzYW1lLCBidXQgZW5kIGFyZSBub3QgIiArIHBv
cy5lbmQgKyAiIHZzLiAiICsgcmV2ZXJzZVBvcy5lbmQgKyAiXG4iKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNr
U2FtZU9yZGVyKGlucHV0UG9zaXRpb25zLCBpbnB1dFNhbWVQb3NpdGlvbnMpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBwb3NpdGlvbnMgPSBpbnB1dFBvc2l0aW9ucy5zbGljZSgpOworICAg
ICAgICAgICAgdmFyIHNhbWVQb3NpdGlvbnMgPSBpbnB1dFNhbWVQb3NpdGlvbnMuc2xpY2UoKTsK
KyAgICAgICAgICAgIHZhciBtaXNtYXRjaCA9IHBvc2l0aW9ucy5sZW5ndGggIT0gc2FtZVBvc2l0
aW9ucy5sZW5ndGg7CisgICAgICAgICAgICBpZiAobWlzbWF0Y2gpCisgICAgICAgICAgICAgICAg
bG9nKCJXQVJOSU5HOiBwb3NpdGlvbnMgc2hvdWxkIGJlIHRoZSBzYW1lLCBidXQgdGhlIGxlbmd0
aCBhcmUgbm90IHRoZSBzYW1lICIgKyAgcG9zaXRpb25zLmxlbmd0aCArICIgdnMuICIgKyBzYW1l
UG9zaXRpb25zLmxlbmd0aCArICJcbiIpOworICAgICAgICAgICAgd2hpbGUgKCFtaXNtYXRjaCkg
eworICAgICAgICAgICAgICAgIHZhciBwb3MgPSBwb3NpdGlvbnMucG9wKCk7CisgICAgICAgICAg
ICAgICAgaWYgKCFwb3MpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIHZhciBzYW1lUG9zID0gc2FtZVBvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICBp
ZiAocG9zLm5vZGUgIT0gc2FtZVBvcy5ub2RlKSB7CisgICAgICAgICAgICAgICAgICAgIG1pc21h
dGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJXQVJOSU5HOiBwb3NpdGlvbnMg
c2hvdWxkIGJlIHRoZSBzYW1lLCBidXQgbm9kZSBhcmUgbm90IHRoZSBzYW1lXG4iKTsKKyAgICAg
ICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGlmIChwb3MuYmVnaW4gIT0gc2FtZVBvcy5i
ZWdpbikgeworICAgICAgICAgICAgICAgICAgICBtaXNtYXRjaCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGxvZygiV0FSTklORzogcG9zaXRpb25zIHNob3VsZCBiZSB0aGUgc2FtZSwgYnV0
IGJlZ2luIGFyZSBub3QgdGhlIHNhbWUgIiArIHBvcy5iZWdpbiArICIgdnMuICIgKyBzYW1lUG9z
LmJlZ2luICsgIlxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChw
b3MuZW5kICE9IHNhbWVQb3MuZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIG1pc21hdGNoID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJXQVJOSU5HOiBwb3NpdGlvbnMgc2hvdWxk
IGJlIHRoZSBzYW1lLCBidXQgZW5kIGFyZSBub3QgdGhlIHNhbWUgIiArIHBvcy5lbmQgKyAiIHZz
LiAiICsgc2FtZVBvcy5lbmQgKyAiXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisKKyAgICAgICAgZnVuY3Rpb24gZXh0ZW5kaW5nU2VsZWN0aW9uKHNl
bCwgZGlyZWN0aW9uLCBncmFudWxhcml0eSwgb3B0aW9uKQorICAgICAgICB7CisgICAgICAgICAg
ICB2YXIgcG9zaXRpb25zOworICAgICAgICAgICAgaWYgKG9wdGlvbiA9PSAwKSB7CisgICAgICAg
ICAgICAgICAgcG9zaXRpb25zID0gcG9zaXRpb25zRXh0ZW5kaW5nSW5EaXJlY3Rpb24oc2VsLCBk
aXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgcG9zaXRpb25zID0gcG9zaXRpb25zRXh0ZW5kaW5nSW5EaXJlY3Rpb25Gb3JFbmNsb3Np
bmdCbG9jayhzZWwsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbG9nUG9zaXRpb25zKHBvc2l0aW9ucyk7CisgICAgICAgICAgICBsb2coIlxuIik7
CisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25zOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gdGVzdEV4dGVuZGluZ1NlbGVjdGlvbih0ZXN0cywgc2VsLCBncmFudWxhcml0eSkKKyAg
ICAgICAgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgICAgIHRlc3RzW2ldLnN0eWxlLmRpcmVjdGlvbiA9ICJsdHIiOwor
ICAgICAgICAgICAgICAgIGxvZygiVGVzdCAiICsgKGkgKyAxKSArICIsIExUUjpcbiAgRXh0ZW5k
aW5nIHJpZ2h0OiAiKTsKKyAgICAgICAgICAgICAgICBzZWwuc2V0UG9zaXRpb24odGVzdHNbaV0s
IDApOworICAgICAgICAgICAgICAgIHZhciBsdHJSaWdodFBvcyA9IGV4dGVuZGluZ1NlbGVjdGlv
bihzZWwsICJyaWdodCIsIGdyYW51bGFyaXR5LCAwKTsKKyAgICAKKyAgICAgICAgICAgICAgICBs
b2coIiAgRXh0ZW5kaW5nIGxlZnQ6ICAiKTsKKyAgICAgICAgICAgICAgICB2YXIgbHRyTGVmdFBv
cyA9IGV4dGVuZGluZ1NlbGVjdGlvbihzZWwsICJsZWZ0IiwgZ3JhbnVsYXJpdHksIDApOworICAg
IAorICAgICAgICAgICAgICAgIGxvZygiICBFeHRlbmRpbmcgZm9yd2FyZDogIik7CisgICAgICAg
ICAgICAgICAgc2VsLnNldFBvc2l0aW9uKHRlc3RzW2ldLCAwKTsKKyAgICAgICAgICAgICAgICB2
YXIgbHRyRm9yd2FyZFBvcyA9IGV4dGVuZGluZ1NlbGVjdGlvbihzZWwsICJmb3J3YXJkIiwgZ3Jh
bnVsYXJpdHksIDApOworICAgIAorICAgICAgICAgICAgICAgIGxvZygiICBFeHRlbmRpbmcgYmFj
a3dhcmQ6ICAiKTsKKyAgICAgICAgICAgICAgICB2YXIgbHRyQmFja3dhcmRQb3MgPSBleHRlbmRp
bmdTZWxlY3Rpb24oc2VsLCAiYmFja3dhcmQiLCBncmFudWxhcml0eSwgMCk7CisgICAgCisgICAg
ICAgICAgICAgICAgdGVzdHNbaV0uc3R5bGUuZGlyZWN0aW9uID0gInJ0bCI7CisgICAgCisgICAg
ICAgICAgICAgICAgbG9nKCJUZXN0ICIgKyAoaSArIDEpICsgIiwgUlRMOlxuICBFeHRlbmRpbmcg
bGVmdDogIik7CisgICAgICAgICAgICAgICAgc2VsLnNldFBvc2l0aW9uKHRlc3RzW2ldLCAwKTsK
KyAgICAgICAgICAgICAgICB2YXIgcnRsTGVmdFBvcyA9IGV4dGVuZGluZ1NlbGVjdGlvbihzZWws
ICJsZWZ0IiwgZ3JhbnVsYXJpdHksIDApOworICAgIAorICAgICAgICAgICAgICAgIGxvZygiICBF
eHRlbmRpbmcgcmlnaHQ6ICAiKTsKKyAgICAgICAgICAgICAgICB2YXIgcnRsUmlnaHRQb3MgPSBl
eHRlbmRpbmdTZWxlY3Rpb24oc2VsLCAicmlnaHQiLCBncmFudWxhcml0eSwgMCk7CisgICAgCisg
ICAgICAgICAgICAgICAgbG9nKCIgIEV4dGVuZGluZyBmb3J3YXJkOiAiKTsKKyAgICAgICAgICAg
ICAgICBzZWwuc2V0UG9zaXRpb24odGVzdHNbaV0sIDApOworICAgICAgICAgICAgICAgIHZhciBy
dGxGb3J3YXJkUG9zID0gZXh0ZW5kaW5nU2VsZWN0aW9uKHNlbCwgImZvcndhcmQiLCBncmFudWxh
cml0eSwgMCk7CisgICAgCisgICAgICAgICAgICAgICAgbG9nKCIgIEV4dGVuZGluZyBiYWNrd2Fy
ZDogIik7CisgICAgICAgICAgICAgICAgdmFyIHJ0bEJhY2t3YXJkUG9zID0gZXh0ZW5kaW5nU2Vs
ZWN0aW9uKHNlbCwgImJhY2t3YXJkIiwgZ3JhbnVsYXJpdHksIDApOworCisgICAgICAgICAgICAg
ICAgLy8gdmFsaWRhdGlvbnMKKyAgICAgICAgICAgICAgICBsb2coIlxuXG4gIHZhbGlkYXRpbmcg
bHRyUmlnaHQgYW5kIGx0ckxlZnRcbiIpOworICAgICAgICAgICAgICAgIGlmIChncmFudWxhcml0
eSA9PSAiY2hhcmFjdGVyIikKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tSZXZlcnNlT3JkZXIo
bHRyUmlnaHRQb3MsIGx0ckxlZnRQb3MpOworICAgICAgICAgICAgICAgIC8vIE9yZGVyIG1pZ2h0
IG5vdCBiZSByZXZlcnNlZCBmb3IgZXh0ZW5kaW5nIGJ5IHdvcmQgYmVjYXVzZSB0aGUgMS1wb2lu
dCBzaGlmdCBieSBzcGFjZS4KKworICAgICAgICAgICAgICAgIGxvZygiICB2YWxpZGF0aW5nIGx0
clJpZ2h0IGFuZCBsdHJGb3J3YXJkXG4iKTsKKyAgICAgICAgICAgICAgICBjaGVja1NhbWVPcmRl
cihsdHJSaWdodFBvcywgbHRyRm9yd2FyZFBvcyk7CisgICAgICAgICAgICAgICAgbG9nKCIgIHZh
bGlkYXRpbmcgbHRyRm9yd2FyZCBhbmQgcnRsRm9yd2FyZFxuIik7CisgICAgICAgICAgICAgICAg
Y2hlY2tTYW1lT3JkZXIobHRyRm9yd2FyZFBvcywgcnRsRm9yd2FyZFBvcyk7CisgICAgICAgICAg
ICAgICAgbG9nKCIgIHZhbGlkYXRpbmcgbHRyTGVmdCBhbmQgbHRyQmFja3dhcmRcbiIpOworICAg
ICAgICAgICAgICAgIGNoZWNrU2FtZU9yZGVyKGx0ckxlZnRQb3MsIGx0ckJhY2t3YXJkUG9zKTsK
KyAgICAgICAgICAgICAgICBsb2coIiAgdmFsaWRhdGluZyBsdHJCYWNrd2FyZCBhbmQgcnRsQmFj
a3dhcmRcbiIpOworICAgICAgICAgICAgICAgIGNoZWNrU2FtZU9yZGVyKGx0ckJhY2t3YXJkUG9z
LCBydGxCYWNrd2FyZFBvcyk7CisgICAgICAgICAgICAgICAgbG9nKCIgIHZhbGlkYXRpbmcgbHRy
UmlnaHQgYW5kIHJ0bExlZnRcbiIpOworICAgICAgICAgICAgICAgIGNoZWNrU2FtZU9yZGVyKGx0
clJpZ2h0UG9zLCBydGxMZWZ0UG9zKTsKKyAgICAgICAgICAgICAgICBsb2coIiAgdmFsaWRhdGlu
ZyBsdHJMZWZ0IGFuZCBydGxSaWdodFxuIik7CisgICAgICAgICAgICAgICAgY2hlY2tTYW1lT3Jk
ZXIobHRyTGVmdFBvcywgcnRsUmlnaHRQb3MpOworICAgICAgICAgICAgICAgIGxvZygiXG5cbiIp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdEV4dGVu
ZGluZ1NlbGVjdGlvbkZvckVuY2xvc2luZ0Jsb2NrKHRlc3RzLCBzZWwsIGdyYW51bGFyaXR5KQor
ICAgICAgICB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICAgICAgbG9nKCJUZXN0ICIgKyAoaSArIDEpICsgIiwgTFRSOlxu
ICBFeHRlbmRpbmcgcmlnaHQ6ICIpOworICAgICAgICAgICAgICAgIHNlbC5zZXRQb3NpdGlvbih0
ZXN0c1tpXSwgMCk7CisgICAgICAgICAgICAgICAgdmFyIGx0clJpZ2h0UG9zID0gZXh0ZW5kaW5n
U2VsZWN0aW9uKHNlbCwgInJpZ2h0IiwgZ3JhbnVsYXJpdHksIDEpOworICAgIAorICAgICAgICAg
ICAgICAgIGxvZygiICBFeHRlbmRpbmcgbGVmdDogICIpOworICAgICAgICAgICAgICAgIHZhciBs
dHJMZWZ0UG9zID0gZXh0ZW5kaW5nU2VsZWN0aW9uKHNlbCwgImxlZnQiLCBncmFudWxhcml0eSwg
MSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBvbmxvYWQgPSBmdW5jdGlv
bigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICB2YXIgdGVzdHMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ0ZXN0Iik7CisgICAgICAgICAgICB2YXIgc2VsID0g
Z2V0U2VsZWN0aW9uKCk7CisKKyAgICAgICAgICAgIGxvZygiXG5cblxuRXh0ZW5kaW5nIGJ5IGNo
YXJhY3RlclxuIik7CisgICAgICAgICAgICB0ZXN0RXh0ZW5kaW5nU2VsZWN0aW9uKHRlc3RzLCAg
c2VsLCAiY2hhcmFjdGVyIiwgMCk7CisgICAgICAgICAgICBsb2coIlxuXG5cblxuXG5FeHRlbmRp
bmcgYnkgd29yZFxuIik7CisgICAgICAgICAgICB0ZXN0RXh0ZW5kaW5nU2VsZWN0aW9uKHRlc3Rz
LCAgc2VsLCAid29yZCIsIDApOworCisgICAgICAgICAgICB0ZXN0cyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoInRlc3RFbmNsb3NpbmdCbG9jayIpOworICAgICAgICAgICAgc2Vs
ID0gZ2V0U2VsZWN0aW9uKCk7CisKKyAgICAgICAgICAgIGxvZygiXG5cblxuRXh0ZW5kaW5nIGJ5
IGNoYXJhY3RlclxuIik7CisgICAgICAgICAgICB0ZXN0RXh0ZW5kaW5nU2VsZWN0aW9uRm9yRW5j
bG9zaW5nQmxvY2sodGVzdHMsICBzZWwsICJjaGFyYWN0ZXIiLCAxKTsKKyAgICAgICAgICAgIGxv
ZygiXG5cblxuXG5cbkV4dGVuZGluZyBieSB3b3JkXG4iKTsKKyAgICAgICAgICAgIHRlc3RFeHRl
bmRpbmdTZWxlY3Rpb25Gb3JFbmNsb3NpbmdCbG9jayh0ZXN0cywgIHNlbCwgIndvcmQiLCAxKTsK
KyAgICAgICAgfQorCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY29udGVu
dGVkaXRhYmxlIGNsYXNzPSJ0ZXN0Ij4KK2FiYyAmIzE0ODg7JiMxNDg5OyYjMTQ5MDsgeHl6ICYj
MTQ5MTsmIzE0OTI7JiMxNDkzOyBkZWYKKzwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFibGUgY2xh
c3M9InRlc3QiPgorJiMxNDg4OyYjMTQ4OTsmIzE0OTA7IHh5eiAmIzE0OTE7JiMxNDkyOyYjMTQ5
MzsgZGVmICYjMTQ5NDsmIzE0OTU7JiMxNDk2OworPC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJs
ZSBjbGFzcz0idGVzdCI+CismIzE0ODg7JiMxNDg5OyYjMTQ5MDsgJiMxNDkxOyYjMTQ5MjsmIzE0
OTM7ICYjMTQ4ODsmIzE0ODk7JiMxNDkwOworPC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBj
bGFzcz0idGVzdCI+CithYmMgZWZkIGRhYmViCis8L2Rpdj4KKworCis8ZGl2IGNvbnRlbnRlZGl0
YWJsZSAgY2xhc3M9InRlc3QiPkxvcmVtIDxzcGFuICBzdHlsZT0iZGlyZWN0aW9uOiBydGwiPmlw
c3VtIGRvbG9yIHNpdDwvc3Bhbj4gYW1ldDwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFibGUgY2xh
c3M9InRlc3QiPkxvcmVtIDxzcGFuICBkaXI9InJ0bCI+aXBzdW0gZG9sb3Igc2l0PC9zcGFuPiBh
bWV0PC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSAgY2xhc3M9InRlc3QiPkxvcmVtIDxzcGFu
ICBzdHlsZT0iZGlyZWN0aW9uOiBsdHIiPmlwc3VtIGRvbG9yIHNpdDwvc3Bhbj4gYW1ldDwvZGl2
PgorPGRpdiBjb250ZW50ZWRpdGFibGUgY2xhc3M9InRlc3QiPkxvcmVtIDxzcGFuICBkaXI9Imx0
ciI+aXBzdW0gZG9sb3Igc2l0PC9zcGFuPiBhbWV0PC9kaXY+CisKKzxkaXYgY29udGVudGVkaXRh
YmxlIGNsYXNzPSJ0ZXN0RW5jbG9zaW5nQmxvY2siPkxvcmVtIDxkaXYgIGRpcj0icnRsIj5pcHN1
bSBkb2xvciBzaXQ8L2Rpdj4gYW1ldHQ8L2Rpdj4KKworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+
Cis8L2JvZHk+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9leHRlbmQtc2VsZWN0aW9uLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJs
ZQogICArICoKCg==
</data>
<flag name="review"
          id="14372"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>